diff --git a/node_modules b/node_modules new file mode 120000 index 0000000000..acabd91b6f --- /dev/null +++ b/node_modules @@ -0,0 +1 @@ +/home/runner/work/TypeAgent/TypeAgent/ts/packages/vscode-chat/node_modules \ No newline at end of file diff --git a/ts/docs/plans/structured-output/PLAN.md b/ts/docs/plans/structured-output/PLAN.md index 92740edc5e..4c2bdda914 100644 --- a/ts/docs/plans/structured-output/PLAN.md +++ b/ts/docs/plans/structured-output/PLAN.md @@ -370,6 +370,23 @@ derived fallback (no throw, no regression): Client-side sort / filter on `TableBlock` in `chat-ui`, honoring `readonly` / `sortable` / `filterable`. chat-ui clients only. +**Phase 4b — client-side pagination (done).** Optional +`TableBlock.pageSize`: when set (and `rows.length > pageSize`), `chat-ui` +renders the first `pageSize` rows and reveals the rest in batches via a +"Show more" control. All rows still ship in one payload — this is a pure +rendering concern, so replay/DisplayLog stay unchanged and the +markdown/text fallbacks render every row. Pagination composes with sort +(re-caps after reorder) and filter (a live query suspends the cap and +shows all matches). No agent-driven/server-side paging: fetching more +rows on demand needs the same round-trip channel as row-actions and is +deferred with open question #3. + +**Pinned columns — reserved, not built.** `TableColumn.pinned?: "left" | +"right"` is carried in the type for forward-compat (like `cell.href` / +`block.action`) but no client wires up sticky rendering yet. Sticky +columns only pay off for wide, horizontally-scrolling tables, which no +adopter emits today; wire the `position: sticky` CSS when one does. + ### Phase 5 — First adopter: `github-cli` _(after 1; visually validated by 3)_ Rewrite `formatListResults` and the list/view actions in @@ -384,6 +401,27 @@ Example — the `prList` table: an `#id` **link** column → `url`, a **text** title column, a **badge** state column (`DRAFT`/`OPEN` colored by tone), a **code** branch column; `sortable: true`. +**Status: complete.** All display-producing paths now emit +`StructuredContent`: + +- List actions (`prList`, `issueList`, `myAssignedIssues`, `searchRepos`) + → `buildStructuredListResult` (heading + interactive table). +- `repoView` → `buildStructuredRepoView` (heading + `keyValue`). +- Dependabot alerts → `buildStructuredDependabotResult` (badge severity + table). +- Contributors → `buildStructuredContributorsResult` (ranked table). +- Single `prView` / `issueView` → `buildStructuredPrView` / + `buildStructuredIssueView` (heading + `keyValue` metadata + optional + body text block). +- Focused field answers (stars / forks / language / watchers / + description) → `buildStructuredField` (heading + single `keyValue` + pair + natural-language summary; `rawData` carries `{ repo, field, +value }`). + +Remaining markdown/text paths are intentional: mutation/create success +messages, `statusPrint`, and the raw-output fallback carry no structured +data. `githubCliStructuredResults.spec.ts` covers all builders. + ### Phase 6 — Programmatic "or otherwise" _(after 1 + 5)_ - `packages/commandExecutor/src/commandServer.ts` forwards `rawData` as @@ -393,6 +431,140 @@ by tone), a **code** branch column; `sortable: true`. to read `rawData` directly, dropping the `extractText` + `tryParseJson` workaround. +### Phase 7 — Broader agent rollout _(after 5; per-agent, parallelizable)_ + +`github-cli` is the reference adopter, but every list-, table-, or +record-shaped agent result throws away structure today. Convert the rest +in the order below. The order is driven by (a) how naturally the output +maps to blocks, (b) user-facing value, and (c) conversion cost. Each +agent follows the `github-cli` template: emit `StructuredContent` via +`createStructuredContent` / `createTable` / `fromRecords` with `rawData`, +keep the derived markdown/text fallback at parity, and update the +handler's unit tests. + +Agents already committed to custom HTML/iframe or a WebSocket/RPC bridge +(`image`, `video`, `settings`, `chat`, `code`, `visualStudio`, +`browser`, `markdown`, `montage`, `turtle`, `player`, `playerLocal`) are +**out of scope** for v1 — they render their own UI and don't flow through +the block-document fallback path. Short status/confirmation agents +(`timer`, `windowsClock`, `greeting`, `desktop`, `vampire`, +`androidMobile`, `powershell`, `utility`, `studio`) are **low value** and +deferred until a clear need appears. + +**Wave A — high fit (clear list/table/record output):** + +| # | Agent | Shape today | Target blocks | +| --- | ---------- | ---------------------------------- | --------------------------------------------------------------- | +| 1 | `list` | markdown bullet lists | `heading` + `list` | +| 2 | `calendar` | HTML event views (`appendDisplay`) | `heading` + `table` (agenda) + `card`/`keyValue` (event detail) | +| 3 | `email` | HTML message lists + threads | `heading` + `table` (inbox/list) + `keyValue` (message detail) | +| 4 | `weather` | text forecast | `keyValue` (current) + `table` (multi-day forecast) | +| 5 | `ipconfig` | markdown key/values | `heading` + `keyValue` (per-adapter sections) | + +**Wave B — medium fit (structured data mixed with text):** + +| # | Agent | Shape today | Target blocks | +| --- | --------------- | -------------------------- | ------------------------------------- | +| 6 | `discord` | text channel/message lists | `heading` + `list`/`table` | +| 7 | `taskflow` | text task listings | `table` (name / description / usage) | +| 8 | `onboarding` | markdown wizard status | `heading` + `keyValue` (phase status) | +| 9 | `screencapture` | image + markdown metadata | `image` + `heading`/`keyValue` | + +`osNotifications` was initially a Wave B candidate but is **out of scope**: +each notification is an individual toast/inline event pushed via +`context.notify` (single-line, intentionally plain text for clean CLI +rendering), not a list-shaped action result. Its action results are +short status confirmations. + +**Out of scope (v1):** `image`, `video`, `settings`, `chat`, `code`, +`visualStudio`, `browser`, `markdown`, `montage`, `turtle`, `player`, +`playerLocal` (custom UI / RPC bridge). + +**Deferred (low value):** `timer`, `windowsClock`, `greeting`, +`desktop`, `vampire`, `androidMobile`, `powershell`, `utility`, `studio` +(short text/status confirmations). + +### Phase 8 — RPC / custom-UI agents _(after 7; mostly out of scope)_ + +These are the twelve agents Wave A/B set aside as "custom UI / RPC +bridge." The distinguishing property is **where the display is produced**: +their user-facing output does not flow through +`ActionResult.displayContent` as flattened list/record text, so the +block-document model has nothing to convert. Three architectures: + +- **WebSocket/RPC bridge to an external process** — the agent forwards a + command and the _external_ client renders the result; the + `displayContent` path carries only status/error text. + - `code` → Coda VS Code extension (`codeAgentWebSocketServer.ts`; + display goes straight to the socket via + `actionIO.setDisplay(data.result)`). + - `visualStudio` → VS C# extension (`VisualStudioBridge`); only bridge + error text uses `createActionResultFromTextDisplay`. + - `player` (Spotify) / `playerLocal` — imperative playback commands; + results are errors + HTML player widgets, no list results on the + `displayContent` path. +- **Custom webapp (forked view process + Yjs/HTTP)** — a separate web + app owns rendering; agent results are "opening / updated" status text. + - `markdown`, `montage`, `turtle` (each forks a `site/` viewer). +- **Bespoke interactive HTML/JS** via + `createActionResultFromHtmlDisplayWithScript` / iframe — the payload is + a _pre-rendered_ stateful widget (forms, carousels, players), not + structured data + fallback. + - `image` (carousel), `video` (polling player), `settings` (forms), + `chat` (freeform LLM text + HTML-embedded images). + +**Verdict: only `browser` has a genuinely convertible result.** Its web +**search results** are produced by `generateWebSearchMarkdown()` and +returned through the normal `createActionResultFromMarkdownDisplay` path +(`browserActionHandler.mts` ~L1771) — a list of `{ title, url, domain, +snippet, relevanceScore }`. The browser's page-interaction actions +(navigate, screenshot, follow-link) stay on the extension-RPC path. + +#### Phase 8a — `browser` web-search → structured _(the one adopter)_ + +Convert `generateWebSearchMarkdown()`'s output to a `StructuredContent` +document: a heading (`Found N results for "query"`) + a **table** (or +`list`) with a link title column, domain, snippet, and a right-aligned +relevance column; `sortable: true`, `pageSize: 10`; carry the raw +`websites` array as `rawData`. Keep the existing entity creation +untouched. The knowledge-preview path +(`generateLiveKnowledgePreview`, ~L1521) emits HTML into the extension +and is **not** in scope here. + +- **Client caveat:** `browser` search results can surface in the Chrome/ + Edge extension, which has its **own** renderer and does not understand + `type: "structured"`. The SDK-derived markdown `alternates` (via + `getStructuredFallback`) cover it, but this must be **visually + verified in the extension** before shipping — if the extension renders + raw JSON instead of the markdown alternate, either update the + extension to prefer the alternate or keep this conversion behind the + shell/vscode surfaces only. + +#### Phase 8b — the rest: prerequisites, not work items + +The remaining eleven agents are **out of scope until their external +renderer understands `StructuredContent` (or reliably falls back to the +markdown/text alternate).** No agent-side change is worthwhile before +then, because the block document would either never reach a +block-capable renderer or would replace a richer bespoke widget with a +plain table. Concretely, a future effort would need: + +- **Extension/bridge renderers** (`code`, `visualStudio`, `browser` + extension) to consume `DisplayContent` and call `getContentForType` / + `getStructuredFallback` like `chat-ui` and `vscode-chat` do today. +- **Webapp viewers** (`markdown`, `montage`, `turtle`) — no change; their + content is documents/graphics, not tabular data. Leave as-is + permanently. +- **Widget agents** (`image`, `video`, `settings`, `chat`, `playerLocal`, + `player`) — would each need a redesign to separate _data_ from + _pre-rendered widget_ (e.g. `image` emitting `ImageBlock[]` instead of + a carousel iframe). Only pursue per-agent if a concrete UX need + arises; not a batch conversion. + +**Recommendation:** do **Phase 8a** (browser search) as an isolated, +visually-validated change; treat **8b** as documentation of +prerequisites, not a backlog to burn down. + ## Verification - `pnpm --filter agent-sdk test` + `pnpm run build agent-sdk` — @@ -434,6 +606,73 @@ by tone), a **code** branch column; `sortable: true`. 4. **Naming** — `StructuredContent` / `type: "structured"` vs `RichContent` / `"rich"`. Current lean: `structured`. +## Future enhancements (backlog) + +Ideas beyond the shipped scope (block document + sort/filter/pagination + +`rawData`). Not scheduled; pull into a phase when a concrete agent needs +it. Ordered roughly by value-to-effort within each group. + +### Interactivity (largest remaining feature) + +- **Row actions** (open question #3) — wire the reserved `cell.href` / + `block.action` fields so a row click can trigger an agent action + (merge a PR, reply to an email, delete a calendar event). Requires a + **client → agent transport** (a response channel back into the agent, + the same prerequisite as agent-driven paging). This is the natural + "v2" and unlocks a whole class of interactive agents. +- **Column visibility / reorder** — let the user hide or reorder columns + on wide tables (chat-ui only; pure client state). +- **Pinned columns** — `TableColumn.pinned` is already reserved; wire the + `position: sticky` CSS when a wide, horizontally-scrolling table + actually ships. + +### New block / cell types + +- **`progress` block** — determinate bar or spinner for long-running + agents (screencapture build, onboarding phases, calendar sign-in), + replacing today's streamed `kind: "status"` text. +- **`chart` block** — minimal bar/line/sparkline derived from `rawData` + (weather forecast, github contributor counts, dependabot severity). + Currently the iframe escape hatch is the only option (explicit v1 + non-goal). +- **Richer cell types** — `boolean` (checkmark), `duration`, + `relative-date` ("3 days ago"), `percent` (inline bar), `currency`. +- **Nested / expandable rows** — a row expands to a detail block (email → + body, PR → description); hooks into the reserved `block.action`. + +### Consistency & developer experience + +- **Extract remaining inline builders** — `email`, `discord`, `taskflow`, + `onboarding`, `screencapture` still build blocks inline. Pull them into + pure exported functions + unit tests, matching the + github-cli / calendar / weather / ipconfig / list pattern. Closes the + last test-coverage gap. +- **Shared column-spec DSL** — a typed `{ field, header, type, format }` + spec on top of `fromRecords` to cut per-adopter cell-mapping + boilerplate and standardize date/badge/number rendering. +- **`validateStructuredContent(blocks)` helper** — catch malformed tables + (ragged rows, unknown column ids, bad cell shapes) at build/test time. + +### Client / rendering reach + +- **CLI table rendering** — `enhancedConsole.ts` gets the plain-text + fallback today; a box-drawing table would improve the terminal. +- **MCP `outputSchema`** — Phase 6 carries `rawData` but not + `dataSchema`; derive JSON Schema from the block document so MCP / + Claude clients can validate typed output. +- **Browser-extension fallback** — teach the Chrome/Edge extension to + prefer the markdown alternate (`getStructuredFallback`); this is the + prerequisite that unblocks Phase 8a (browser search results). +- **Accessibility pass** — ARIA sort states, `scope`, and live-region + announcements for sort / filter / pagination in `setContent.ts`. + +### Data-scale + +- **Virtualized tables** — render-on-scroll for very large `rawData` + tables instead of pagination (chat-ui only). +- **Agent-driven / server-side paging** — fetch page N on demand; shares + the client → agent transport prerequisite with row actions. + ## Key files | Area | Path | diff --git a/ts/docs/plans/structured-output/STATUS.md b/ts/docs/plans/structured-output/STATUS.md index e8b7e5fb76..6c4cd4bb0b 100644 --- a/ts/docs/plans/structured-output/STATUS.md +++ b/ts/docs/plans/structured-output/STATUS.md @@ -4,7 +4,7 @@ Working tracker for the plan in [PLAN.md](./PLAN.md). Update whenever a phase item is started, completed, or a follow-up surfaces. Keep entries terse — one line per item where possible. -_Last updated: 2026-07-11 — plan drafted, not yet started._ +_Last updated: 2026-07-13 — Phase 7 Wave B: `discord`, `taskflow`, `onboarding`, `screencapture` converted; `osNotifications` reclassified out-of-scope (toast-event stream, not list-shaped). Phase 8 (RPC/custom-UI agents) plan added. Agent builder unit tests added for calendar/weather/ipconfig/list (78 structured tests total incl. github-cli)._ ## Progress by phase @@ -12,50 +12,119 @@ _Last updated: 2026-07-11 — plan drafted, not yet started._ | Item | Description | Status | | ---- | ------------------------------------------------------------------------------------------ | ------ | -| 1a | `StructuredContent` + block types in `agentSdk/src/display.ts` | todo | -| 1b | Builders: `createStructuredResult`, `createTable`, `fromRecords` | todo | -| 1c | Fallback derivation: `structuredToMarkdown` / `structuredToText` / `getStructuredFallback` | todo | -| 1d | Exports from `agentSdk/src/index.ts` | todo | -| 1e | Unit tests (derivation + builders) | todo | +| 1a | `StructuredContent` + block types in `agentSdk/src/display.ts` | done | +| 1b | Builders: `createStructuredResult`, `createTable`, `fromRecords` | done | +| 1c | Fallback derivation: `structuredToMarkdown` / `structuredToText` / `getStructuredFallback` | done | +| 1d | Exports from `agentSdk/src/index.ts` | done | +| 1e | Unit tests (derivation + builders) | done | ### Phase 2 — Renderer safety net _(after 1)_ | Item | Description | Status | | ---- | ------------------------------------------------------------------------ | ------ | -| 2a | `chat-ui/setContent.ts` — detect `"structured"`, use fallback (no throw) | todo | -| 2b | `vscode-chat/displayRender.ts` — fallback | todo | -| 2c | `cli/enhancedConsole.ts` — fallback | todo | -| 2d | `commandExecutor/commandServer.ts` — fallback | todo | -| 2e | `copilot-plugin/message-formatter.ts` — fallback | todo | +| 2a | `chat-ui/setContent.ts` — detect `"structured"`, use fallback (no throw) | done | +| 2b | `vscode-chat/displayRender.ts` — fallback | done | +| 2c | `cli/enhancedConsole.ts` — fallback | done | +| 2d | `commandExecutor/commandServer.ts` — fallback | done | +| 2e | `copilot-plugin/message-formatter.ts` — fallback | done | ### Phase 3 — Rich rendering _(after 1)_ | Item | Description | Status | | ---- | ---------------------------------------------------------------------------------------------- | ------ | -| 3a | `chat-ui/setContent.ts` blocks → HTML (table/badge/link/image/card/list/keyValue) + `chat.css` | todo | -| 3b | `vscode-chat/displayRender.ts` blocks → markdown | todo | +| 3a | `chat-ui/setContent.ts` blocks → HTML (table/badge/link/image/card/list/keyValue) + `chat.css` | done | +| 3b | `vscode-chat/displayRender.ts` blocks → markdown | done | ### Phase 4 — Interactivity _(after 3a)_ -| Item | Description | Status | -| ---- | ----------------------------------------------------------------------------------- | ------ | -| 4a | Client-side sort/filter on `TableBlock` honoring `readonly`/`sortable`/`filterable` | todo | +| Item | Description | Status | +| ---- | ---------------------------------------------------------------------------------------------------- | -------- | +| 4a | Client-side sort/filter on `TableBlock` honoring `readonly`/`sortable`/`filterable` | done | +| 4b | Client-side pagination: `TableBlock.pageSize` + "Show more" in `chat-ui` (composes with sort/filter) | done | +| 4c | `TableColumn.pinned` reserved in type (sticky rendering not wired) | reserved | ### Phase 5 — First adopter: github-cli _(after 1)_ -| Item | Description | Status | -| ---- | ---------------------------------------------------------------------------------- | ------ | -| 5a | `prList` / `issueList` / `myPullRequests` / `searchRepos` → table blocks + rawData | todo | -| 5b | `dependabotAlerts` + contributors → table blocks | todo | -| 5c | `repoView` → keyValue block | todo | -| 5d | Update handler unit tests | todo | +| Item | Description | Status | +| ---- | ------------------------------------------------------------------------------------ | ------ | +| 5a | `prList` / `issueList` / `myAssignedIssues` / `searchRepos` → table blocks + rawData | done | +| 5b | `dependabotAlerts` + contributors → table blocks | done | +| 5c | `repoView` → keyValue block | done | +| 5d | Update handler unit tests | done | +| 5e | `prView` / `issueView` → heading + keyValue + body text block | done | +| 5f | Focused field answers → `buildStructuredField` (keyValue + rawData) | done | ### Phase 6 — Programmatic "or otherwise" _(after 1 + 5)_ | Item | Description | Status | | ---- | ------------------------------------------------------------------- | ------ | -| 6a | `commandExecutor` forwards `rawData` as MCP `structuredContent` | todo | -| 6b | `taskflow` reads `rawData` directly (drop extractText+tryParseJson) | todo | +| 6a | `commandExecutor` forwards `rawData` as MCP `structuredContent` | done | +| 6b | `taskflow` reads `rawData` directly (drop extractText+tryParseJson) | done | + +### Phase 7 — Broader agent rollout _(after 5; per-agent)_ + +Wave A — high fit: + +| Item | Agent | Target blocks | Status | +| ---- | ---------- | --------------------------------------- | ------ | +| 7a | `list` | heading + list | done | +| 7b | `calendar` | table (agenda) + card/keyValue (detail) | done | +| 7c | `email` | table (list) + keyValue (message) | done | +| 7d | `weather` | keyValue (current) + table (forecast) | done | +| 7e | `ipconfig` | heading + keyValue (per-adapter) | done | + +Wave B — medium fit: + +| Item | Agent | Target blocks | Status | +| ---- | ----------------- | --------------------------------- | ------------------------------------------------------------------------------- | +| 7f | `discord` | heading + list/table | done | +| 7g | `taskflow` | table (name/description/usage) | done | +| 7h | `onboarding` | heading + keyValue (phase status) | done | +| 7i | `screencapture` | image + heading/keyValue | done | +| 7j | `osNotifications` | list/card (event stream) | out of scope — single toast/inline events via `context.notify`, not list-shaped | + +Out of scope (v1, custom UI / RPC bridge): `image`, `video`, `settings`, +`chat`, `code`, `visualStudio`, `browser`, `markdown`, `montage`, +`turtle`, `player`, `playerLocal`. + +Deferred (low value, short text/status): `timer`, `windowsClock`, +`greeting`, `desktop`, `vampire`, `androidMobile`, `powershell`, +`utility`, `studio`. + +### Phase 8 — RPC / custom-UI agents _(mostly out of scope; see PLAN Phase 8)_ + +| Item | Agent | Plan | Status | +| ---- | ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | +| 8a | `browser` | web-search results (`generateWebSearchMarkdown`) → heading + table (`pageSize: 10`) + rawData; **verify markdown fallback in Chrome/Edge extension** | not started | +| 8b | `code`, `visualStudio`, `player`, `playerLocal`, `markdown`, `montage`, `turtle`, `image`, `video`, `settings`, `chat` | out of scope — display lives in external bridge/webapp/widget, not on the `displayContent` path; blocked on external renderers understanding `StructuredContent` / its fallback | deferred | + +### Agent builder unit tests + +Structured-output builders extracted to pure exported functions and +covered by per-agent specs (in addition to the 16 SDK derivation tests): + +| Agent | Spec | Builder(s) | Tests | +| ---------- | ------------------------------------ | ------------------------------------------------------------ | ----- | +| github-cli | `githubCliStructuredResults.spec.ts` | list / repo / dependabot / contributors / pr / issue / field | 46 | +| calendar | `calendarStructured.spec.ts` | `buildStructuredEventList` | 9 | +| weather | `weatherStructured.spec.ts` | `buildCurrentConditionsResult`, `buildForecastResult` | 10 | +| ipconfig | `ipconfigStructured.spec.ts` | `buildStructuredOutput` | 7 | +| list | `listStructured.spec.ts` | `buildListResult` | 6 | + +Covers all core block shapes: table, keyValue, list, heading, badge, +link cells, pagination, and rawData. New jest harnesses were scaffolded +for `weather`, `ipconfig`, and `list` (calendar already had one). +`email`, `discord`, `taskflow`, `onboarding`, `screencapture` builders +remain inline (validated by build/typecheck); their block shapes are +covered transitively by the specs above. + +## Future enhancements (backlog) + +Not scheduled. Full list in [PLAN.md](./PLAN.md) → "Future enhancements". +Highest-leverage items: **row actions** (needs a client → agent +transport; the "v2"), extracting the 5 remaining inline builders into +tested pure functions, and a `progress` / `chart` block. Pull into a +phase when a concrete agent needs it. ## Open questions diff --git a/ts/packages/agentSdk/README.AUTOGEN.md b/ts/packages/agentSdk/README.AUTOGEN.md index 48e75bb62c..40e1f7320c 100644 --- a/ts/packages/agentSdk/README.AUTOGEN.md +++ b/ts/packages/agentSdk/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # @typeagent/agent-sdk — AI-generated documentation @@ -12,68 +12,87 @@ ## Overview -The `@typeagent/agent-sdk` package provides the foundational interfaces and utilities required to build Dispatcher Agents within the TypeAgent ecosystem. It serves as a core library for developers to create agents that interact with the TypeAgent Dispatcher, handle user commands and actions, and manage agent-specific contexts and lifecycles. +The `@typeagent/agent-sdk` package provides the core interfaces, types, and utilities required to build and manage Dispatcher Agents in the TypeAgent ecosystem. It serves as the foundational library for creating agents that interact with the TypeAgent Dispatcher, enabling them to handle user commands, execute actions, and manage their lifecycle and context. + +This package is widely used across the TypeAgent ecosystem, including in the Shell, CLI, and other agents, making it a critical component for agent development and integration. ## What it does -The `@typeagent/agent-sdk` package enables developers to implement Dispatcher Agents with the following key capabilities: +The `@typeagent/agent-sdk` package offers a comprehensive set of tools and interfaces to facilitate the development of Dispatcher Agents. Its key features include: + +### Manifest and Instantiation + +- **Manifest**: The `AppAgentManifest` defines metadata about the agent, such as its emoji, description, and translator configuration. This manifest is loaded by the Dispatcher when the agent is initialized. +- **Instantiation Entry Point**: The `AppAgent` interface is the core contract that agents implement. The Dispatcher uses the `instantiate` function exported from the `./agent/handlers` module to create an instance of the agent. + +### Lifecycle Management + +- **initializeAgentContext**: Sets up the agent's runtime context, which is passed back in subsequent API calls. +- **updateAgentContext**: Updates the agent's context, such as enabling or disabling specific actions or sub-schemas. +- **closeAgentContext**: Cleans up resources when the agent is no longer needed. -- **Manifest and Instantiation**: Define an agent's manifest (`AppAgentManifest`) and specify an instantiation entry point. The manifest includes metadata such as the agent's emoji, description, and translator configuration. The instantiation entry point provides the `AppAgent` implementation. -- **Lifecycle Management**: Implement lifecycle methods such as: +### Command Handling - - `initializeAgentContext`: Sets up the agent's runtime context. - - `updateAgentContext`: Updates the agent's context, e.g., when actions are enabled or disabled. - - `closeAgentContext`: Cleans up resources when the agent is no longer needed. +- **getCommands**: Returns a list of commands (`CommandDescriptors`) that the agent supports. +- **executeCommand**: Executes commands based on parsed parameters provided by the Dispatcher. -- **Command Handling**: Define and handle commands using: +### Action Execution - - `getCommands`: Returns a list of commands (`CommandDescriptors`) supported by the agent. - - `executeCommand`: Executes commands based on parsed parameters. +- **executeAction**: Handles user-triggered actions routed by the Dispatcher. The agent is responsible for further routing to specific handlers. +- **streamPartialAction**: Supports streaming partial results for actions, such as generating responses incrementally. -- **Action Execution**: Handle user-triggered actions with: +### Readiness and Setup - - `executeAction`: Processes actions routed by the Dispatcher. - - `streamPartialAction`: Supports streaming partial results for actions, such as generating responses incrementally. +- **checkReadiness**: Reports the agent's readiness state, indicating whether it is ready, requires setup, or is unsupported. +- **setup**: Provides an optional in-chat configuration flow to guide users through the setup process and transition the agent to a ready state. -- **Readiness and Setup**: Ensure the agent is operational with: +### Display Management - - `checkReadiness`: Reports whether the agent is ready, requires setup, or is unsupported. - - `setup`: Guides users through configuration steps to make the agent operational. +- **Dynamic and Periodic Updates**: Utilities for managing how information is displayed to users, including support for dynamic and periodic updates. -- **Display Management**: Manage how information is presented to users with support for dynamic and periodic updates. This includes utilities for creating and managing display content. +### Choice Management -The package is widely used across the TypeAgent ecosystem, including in the Shell, CLI, and other agents, making it a critical component for building and integrating agents. +- **handleChoice**: Routes user responses to the agent's `ChoiceManager`, enabling interactive workflows. ## Setup -To create a Dispatcher Agent using the `@typeagent/agent-sdk`, you need to configure the following in your project: +To create a Dispatcher Agent using the `@typeagent/agent-sdk`, follow these steps: -1. **Manifest**: +1. **Define the Manifest**: - Create a JSON file that adheres to the `AppAgentManifest` type. This file should include metadata about the agent, such as its emoji, description, and translator configuration. - Specify the path to this file in your `package.json` under the `./agent/manifest` export path. -2. **Instantiation Entry Point**: - - Implement the `AppAgent` interface in a TypeScript or JavaScript file. +2. **Implement the Instantiation Entry Point**: + + - Create a TypeScript or JavaScript file that implements the `AppAgent` interface. - Export an `instantiate` function from this file, which returns an instance of the `AppAgent`. - Specify the path to this file in your `package.json` under the `./agent/handlers` export path. -For more detailed instructions, refer to the hand-written README or the [List agent](../agents/list/) as a practical example. +3. **Follow Examples**: + - Refer to the [List agent](../agents/list/) as a practical example of building a Dispatcher Agent. + - Consult the Dispatcher README for instructions on registering your agent with the TypeAgent Dispatcher. ## Key Files -The `@typeagent/agent-sdk` package is organized into several key files, each serving a specific purpose: +The `@typeagent/agent-sdk` package is organized into several key files, each with a specific role in the development of Dispatcher Agents: - **[index.ts](./src/index.ts)**: The main entry point, exporting core interfaces, types, and utilities for building agents. - **[action.ts](./src/action.ts)**: Defines the structure and types for actions, including `AppAction`, `ActionResult`, and `PendingChoice`. These are essential for implementing action-related methods like `executeAction`. - **[agentInterface.ts](./src/agentInterface.ts)**: Contains the primary interfaces for agents, such as `AppAgent`, `SessionContext`, and `ActionContext`. These define the contract between the agent and the Dispatcher. - **[command.ts](./src/command.ts)**: Provides types and interfaces for command handling, including `CommandDescriptor` and `CommandDescriptors`. These are used to define and execute commands. - **[display.ts](./src/display.ts)**: Defines types for managing display content, such as `DisplayType` and `DynamicDisplay`. These are used to control how information is presented to users. -- **Helpers**: - - **[actionHelpers.ts](./src/helpers/actionHelpers.ts)**: Utilities for creating and managing action results. - - **[commandHelpers.ts](./src/helpers/commandHelpers.ts)**: Functions for handling commands and their parameters. - - **[displayHelpers.ts](./src/helpers/displayHelpers.ts)**: Tools for managing display content and formatting. - - **[choiceManager.ts](./src/helpers/choiceManager.ts)**: Manages user choices and callbacks, enabling interactive workflows. + +### Helper Modules + +- **[actionHelpers.ts](./src/helpers/actionHelpers.ts)**: Utilities for creating and managing action results. +- **[commandHelpers.ts](./src/helpers/commandHelpers.ts)**: Functions for handling commands and their parameters. +- **[displayHelpers.ts](./src/helpers/displayHelpers.ts)**: Tools for managing display content and formatting. +- **[choiceManager.ts](./src/helpers/choiceManager.ts)**: Manages user choices and callbacks, enabling interactive workflows. + +### Node-Specific Utilities + +- **[cliPath.ts](./src/node/cliPath.ts)**: Node.js-specific helpers for resolving CLI paths, re-exported from `@typeagent/common-utils`. ## How to extend @@ -137,6 +156,7 @@ External: `debug`, `type-fest` ### Used by +- [@typeagent/action-browser](../../tools/actionBrowser/README.md) - [@typeagent/agent-rpc](../../packages/agentRpc/README.md) - [@typeagent/copilot-plugin](../../packages/copilot-plugin/README.md) - [@typeagent/dispatcher-rpc](../../packages/dispatcher/rpc/README.md) @@ -146,8 +166,7 @@ External: `debug`, `type-fest` - [agent-cache](../../packages/cache/README.md) - [agent-cli](../../packages/cli/README.md) - [agent-dispatcher](../../packages/dispatcher/dispatcher/README.md) -- [agent-shell](../../packages/shell/README.md) -- _…and 47 more workspace consumers._ +- _…and 48 more workspace consumers._ ### Files of interest @@ -165,6 +184,6 @@ External: `debug`, `type-fest` --- -_Auto-generated against commit `defc71271dc68db47e0d376be7aa9f755da0ac91` on `2026-07-14T08:47:00.044Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter @typeagent/agent-sdk docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter @typeagent/agent-sdk docs:verify-links` to spot-check._ diff --git a/ts/packages/agentSdk/jest.config.cjs b/ts/packages/agentSdk/jest.config.cjs new file mode 100644 index 0000000000..4560001c3f --- /dev/null +++ b/ts/packages/agentSdk/jest.config.cjs @@ -0,0 +1,6 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +module.exports = { + ...require("../../jest.config.js"), +}; diff --git a/ts/packages/agentSdk/package.json b/ts/packages/agentSdk/package.json index 2177711c1d..5dc0b1238c 100644 --- a/ts/packages/agentSdk/package.json +++ b/ts/packages/agentSdk/package.json @@ -22,8 +22,11 @@ "scripts": { "build": "npm run tsc", "clean": "rimraf --glob dist *.tsbuildinfo *.done.build.log", + "jest-esm": "node --no-warnings --experimental-vm-modules ./node_modules/jest/bin/jest.js", "prettier": "prettier --check . --ignore-path ../../.prettierignore", "prettier:fix": "prettier --write . --ignore-path ../../.prettierignore", + "test": "npm run test:local", + "test:local": "pnpm run jest-esm --testPathPattern=\".*[.]spec[.]js\"", "tsc": "tsc -b" }, "dependencies": { diff --git a/ts/packages/agentSdk/src/display.ts b/ts/packages/agentSdk/src/display.ts index 5228dfa2ae..787413bd37 100644 --- a/ts/packages/agentSdk/src/display.ts +++ b/ts/packages/agentSdk/src/display.ts @@ -30,9 +30,157 @@ export interface TypedDisplayContent { alternates?: Array<{ type: DisplayType; content: MessageContent }>; } +// --------------------------------------------------------------------------- +// Structured content — a document of typed blocks (see +// docs/plans/structured-output/PLAN.md). Agents author a semantic view-model +// once; each client renders it at the highest fidelity it supports and falls +// back to the SDK-derived markdown/text `alternates` otherwise. +// --------------------------------------------------------------------------- + +// Tone for a badge cell / list badge. Clients map these to colors. +export type BadgeTone = "neutral" | "info" | "success" | "warning" | "error"; + +// Semantic type of a table cell. Controls how a rich client renders it. +export type TableCellType = + | "text" + | "link" + | "badge" + | "number" + | "date" + | "code"; + +export interface TableColumn { + id: string; + header: string; + type?: TableCellType; // default "text" + align?: "left" | "right" | "center"; + sortable?: boolean; // per-column override of table.sortable + // Reserved for future sticky columns. Carried in the type for + // forward-compat; no client wires up sticky rendering yet. + pinned?: "left" | "right"; +} + +// A table cell is either a bare scalar (rendered per the column type) or a +// rich object carrying a link target, badge tone, and/or tooltip. +export type TableCell = + | string + | number + | { + text: string; + href?: string; // link target (cell type "link", or any cell) + badge?: BadgeTone; // badge tone (cell type "badge") + tooltip?: string; + }; + +export interface TableBlock { + kind: "table"; + columns: TableColumn[]; + rows: TableCell[][]; + caption?: string; + // Affordances — interactive by default. + sortable?: boolean; // default: true + filterable?: boolean; // default: false + readonly?: boolean; // lock order + content exactly as sent + // Client-side pagination: render at most `pageSize` rows initially and + // reveal the rest via a "Show more" control. All rows still ship in one + // payload; this only affects rendering. Omit / <= 0 to show all rows. + pageSize?: number; + // Reserved for v2 row-actions (open question #3). Carried, not wired up. + action?: unknown; +} + +export interface HeadingBlock { + kind: "heading"; + text: string; + level?: 1 | 2 | 3; +} + +export interface TextBlock { + kind: "text"; + text: MessageContent; + format?: "text" | "markdown"; // default "markdown" +} + +export interface ListItem { + text: string; + href?: string; + subtitle?: string; + badges?: BadgeTone[]; +} + +export interface ListBlock { + kind: "list"; + ordered?: boolean; + items: ListItem[]; +} + +export interface KeyValuePair { + label: string; + value: TableCell; +} + +export interface KeyValueBlock { + kind: "keyValue"; + pairs: KeyValuePair[]; +} + +export interface CardBlock { + kind: "card"; + title?: string; + subtitle?: string; + fields?: KeyValuePair[]; + href?: string; +} + +export interface ImageBlock { + kind: "image"; + src: string; // URL or dataURI; the agent rehydrates file paths + alt?: string; + caption?: string; + width?: number; + height?: number; +} + +export interface CodeBlock { + kind: "code"; + code: string; + language?: string; +} + +export interface DividerBlock { + kind: "divider"; +} + +export type StructuredBlock = + | HeadingBlock + | TextBlock + | TableBlock + | ListBlock + | KeyValueBlock + | CardBlock + | ImageBlock + | CodeBlock + | DividerBlock; + +// An ordered document of typed blocks plus an optional machine-readable +// `rawData` payload. Added to the DisplayContent union so it rides the +// existing display plumbing with no new transport. +export interface StructuredContent { + type: "structured"; + blocks: StructuredBlock[]; + rawData?: unknown; // machine-readable payload ("or otherwise" clients) + dataSchema?: unknown; // optional JSON Schema describing rawData (carried, not enforced) + kind?: DisplayMessageKind; + speak?: boolean; + // The SDK auto-derives a markdown/text alternate so clients that don't + // understand `type: "structured"` degrade gracefully via getContentForType. + alternates?: Array<{ type: DisplayType; content: MessageContent }>; +} + export type DisplayContent = | MessageContent // each string in the MessageContent is treated as DisplayType "text" - | TypedDisplayContent; + | TypedDisplayContent + | StructuredContent; // Optional message kind for client specific styling export type DisplayMessageKind = diff --git a/ts/packages/agentSdk/src/helpers/actionHelpers.ts b/ts/packages/agentSdk/src/helpers/actionHelpers.ts index 9b0afe78bf..826d33e449 100644 --- a/ts/packages/agentSdk/src/helpers/actionHelpers.ts +++ b/ts/packages/agentSdk/src/helpers/actionHelpers.ts @@ -8,8 +8,9 @@ import { ActionResultSuccessNoDisplay, } from "../action.js"; import { ActionContext } from "../agentInterface.js"; -import { DisplayMessageKind } from "../display.js"; +import { DisplayMessageKind, StructuredBlock } from "../display.js"; import { Entity } from "../memory.js"; +import { createStructuredContent, structuredToText } from "./displayHelpers.js"; import { ChoiceManager, PickRememberResponse } from "./choiceManager.js"; export { ChoiceManager }; @@ -227,6 +228,39 @@ export function createActionResultFromError(error: string): ActionResultError { }; } +/** + * Create an ActionResultSuccess whose display is a structured block document. + * The SDK derives markdown/text `alternates` (for clients that don't + * understand `type: "structured"`) and, unless overridden, a plain-text + * `historyText` for memory/TTS. `rawData` carries the machine-readable payload + * for "or otherwise" (non-UI) clients. + */ +export function createStructuredResult( + blocks: StructuredBlock[], + options?: { + rawData?: unknown; + dataSchema?: unknown; + kind?: DisplayMessageKind; + speak?: boolean; + historyText?: string; + entities?: Entity[]; + resultEntity?: Entity; + }, +): ActionResultSuccess { + const displayContent = createStructuredContent(blocks, { + rawData: options?.rawData, + dataSchema: options?.dataSchema, + kind: options?.kind, + speak: options?.speak, + }); + return { + historyText: options?.historyText ?? structuredToText(blocks), + entities: options?.entities ?? [], + resultEntity: options?.resultEntity, + displayContent, + }; +} + function entitiesToString(entities: Entity[], indent = ""): string { // entities in the format "name (type1, type2)" return entities diff --git a/ts/packages/agentSdk/src/helpers/displayHelpers.ts b/ts/packages/agentSdk/src/helpers/displayHelpers.ts index b84f86df2f..69c5738dab 100644 --- a/ts/packages/agentSdk/src/helpers/displayHelpers.ts +++ b/ts/packages/agentSdk/src/helpers/displayHelpers.ts @@ -8,6 +8,11 @@ import { DisplayMessageKind, DisplayType, MessageContent, + StructuredBlock, + StructuredContent, + TableBlock, + TableCell, + TableColumn, TypedDisplayContent, } from "../display.js"; @@ -104,3 +109,358 @@ export async function displayResult( ) { displayMessage(message, context); } + +// --------------------------------------------------------------------------- +// Structured content — builders + fallback derivation. +// See docs/plans/structured-output/PLAN.md. +// --------------------------------------------------------------------------- + +// Options shared by the table builders. +export interface TableBuildOptions { + caption?: string; + sortable?: boolean; + filterable?: boolean; + readonly?: boolean; + pageSize?: number; +} + +// A column definition for `fromRecords` — a `TableColumn` plus a `value` +// accessor that maps a record to its cell for this column. +export interface ColumnSpec extends TableColumn { + value: (record: T) => TableCell; +} + +/** + * Build a `TableBlock` from explicit columns and rows. + */ +export function createTable( + columns: TableColumn[], + rows: TableCell[][], + options?: TableBuildOptions, +): TableBlock { + return { + kind: "table", + columns, + rows, + ...options, + }; +} + +/** + * Build a single-table `StructuredContent` from an array of domain records + * and a column spec, stashing the records as `rawData` in the same call so the + * rendered table and the machine-readable payload can't drift apart. + */ +export function fromRecords( + objects: T[], + columnSpec: ColumnSpec[], + options?: TableBuildOptions & { + rawData?: unknown; // override the default rawData (the objects) + dataSchema?: unknown; + kind?: DisplayMessageKind | undefined; + speak?: boolean | undefined; + }, +): StructuredContent { + const columns: TableColumn[] = columnSpec.map( + ({ value: _value, ...column }) => column, + ); + const rows: TableCell[][] = objects.map((object) => + columnSpec.map((column) => column.value(object)), + ); + const { rawData, dataSchema, kind, speak, ...tableOptions } = options ?? {}; + const table = createTable(columns, rows, tableOptions); + return createStructuredContent([table], { + rawData: rawData ?? objects, + dataSchema, + kind, + speak, + }); +} + +/** + * Assemble a `StructuredContent` from blocks, auto-deriving markdown + text + * `alternates` so clients that don't understand `type: "structured"` degrade + * gracefully via `getContentForType`. + */ +export function createStructuredContent( + blocks: StructuredBlock[], + options?: { + rawData?: unknown; + dataSchema?: unknown; + kind?: DisplayMessageKind | undefined; + speak?: boolean | undefined; + }, +): StructuredContent { + const content: StructuredContent = { + type: "structured", + blocks, + alternates: [ + { type: "markdown", content: structuredToMarkdown(blocks) }, + { type: "text", content: structuredToText(blocks) }, + ], + }; + if (options?.rawData !== undefined) { + content.rawData = options.rawData; + } + if (options?.dataSchema !== undefined) { + content.dataSchema = options.dataSchema; + } + if (options?.kind !== undefined) { + content.kind = options.kind; + } + if (options?.speak !== undefined) { + content.speak = options.speak; + } + return content; +} + +// Flatten a MessageContent (string | string[] | string[][]) to a single +// string for derivation purposes. +function messageContentToString(content: MessageContent): string { + if (typeof content === "string") { + return content; + } + return content + .map((row) => (Array.isArray(row) ? row.join(" | ") : row)) + .join("\n"); +} + +// The display text of a cell, ignoring link/badge decoration. +function cellText(cell: TableCell): string { + if (cell === null || cell === undefined) { + return ""; + } + if (typeof cell === "object") { + return cell.text; + } + return String(cell); +} + +// The markdown rendering of a cell, honoring an optional link target. +function cellMarkdown(cell: TableCell): string { + const text = cellText(cell); + if (typeof cell === "object" && cell.href) { + return `[${text}](${cell.href})`; + } + return text; +} + +/** + * Derive a markdown representation of a block document. Used to build the + * `alternates` a rich client falls back to, and for history/TTS text. + */ +export function structuredToMarkdown(blocks: StructuredBlock[]): string { + const sections: string[] = []; + for (const block of blocks) { + switch (block.kind) { + case "heading": + sections.push(`${"#".repeat(block.level ?? 1)} ${block.text}`); + break; + case "text": + sections.push(messageContentToString(block.text)); + break; + case "table": { + const header = `| ${block.columns + .map((c) => c.header) + .join(" | ")} |`; + const separator = `| ${block.columns + .map(() => "---") + .join(" | ")} |`; + const rows = block.rows.map( + (row) => `| ${row.map(cellMarkdown).join(" | ")} |`, + ); + const lines = [header, separator, ...rows]; + if (block.caption) { + lines.unshift(`**${block.caption}**`); + } + sections.push(lines.join("\n")); + break; + } + case "list": { + const items = block.items.map((item, index) => { + const marker = block.ordered ? `${index + 1}.` : "-"; + const label = item.href + ? `[${item.text}](${item.href})` + : item.text; + const subtitle = item.subtitle ? ` — ${item.subtitle}` : ""; + return `${marker} ${label}${subtitle}`; + }); + sections.push(items.join("\n")); + break; + } + case "keyValue": + sections.push( + block.pairs + .map( + (pair) => + `- **${pair.label}:** ${cellMarkdown(pair.value)}`, + ) + .join("\n"), + ); + break; + case "card": { + const lines: string[] = []; + if (block.title) { + lines.push( + block.href + ? `### [${block.title}](${block.href})` + : `### ${block.title}`, + ); + } + if (block.subtitle) { + lines.push(`*${block.subtitle}*`); + } + if (block.fields) { + lines.push( + ...block.fields.map( + (pair) => + `- **${pair.label}:** ${cellMarkdown(pair.value)}`, + ), + ); + } + sections.push(lines.join("\n")); + break; + } + case "image": { + let image = `![${block.alt ?? ""}](${block.src})`; + if (block.caption) { + image += `\n\n*${block.caption}*`; + } + sections.push(image); + break; + } + case "code": + sections.push( + `\`\`\`${block.language ?? ""}\n${block.code}\n\`\`\``, + ); + break; + case "divider": + sections.push("---"); + break; + } + } + return sections.join("\n\n"); +} + +/** + * Derive a plain-text representation of a block document, for clients (CLI, + * MCP, copilot) that render text only. + */ +export function structuredToText(blocks: StructuredBlock[]): string { + const sections: string[] = []; + for (const block of blocks) { + switch (block.kind) { + case "heading": + sections.push(block.text); + break; + case "text": + sections.push(messageContentToString(block.text)); + break; + case "table": + sections.push(tableToText(block)); + break; + case "list": { + const items = block.items.map((item, index) => { + const marker = block.ordered ? `${index + 1}.` : "-"; + const subtitle = item.subtitle ? ` — ${item.subtitle}` : ""; + return `${marker} ${item.text}${subtitle}`; + }); + sections.push(items.join("\n")); + break; + } + case "keyValue": + sections.push( + block.pairs + .map((pair) => `${pair.label}: ${cellText(pair.value)}`) + .join("\n"), + ); + break; + case "card": { + const lines: string[] = []; + if (block.title) { + lines.push(block.title); + } + if (block.subtitle) { + lines.push(block.subtitle); + } + if (block.fields) { + lines.push( + ...block.fields.map( + (pair) => `${pair.label}: ${cellText(pair.value)}`, + ), + ); + } + sections.push(lines.join("\n")); + break; + } + case "image": + sections.push( + `[image: ${block.alt ?? block.caption ?? block.src}]`, + ); + break; + case "code": + sections.push(block.code); + break; + case "divider": + sections.push("----"); + break; + } + } + return sections.join("\n\n"); +} + +// Render a table block as a monospace-friendly aligned text table. +function tableToText(block: TableBlock): string { + const headers = block.columns.map((c) => c.header); + const rows = block.rows.map((row) => row.map(cellText)); + const widths = headers.map((header, index) => + Math.max( + header.length, + ...rows.map((row) => (row[index] ?? "").length), + ), + ); + const pad = (cells: string[]) => + cells.map((cell, index) => cell.padEnd(widths[index])).join(" "); + const lines = [pad(headers), widths.map((w) => "-".repeat(w)).join(" ")]; + for (const row of rows) { + lines.push(pad(headers.map((_, index) => row[index] ?? ""))); + } + if (block.caption) { + lines.unshift(block.caption); + } + return lines.join("\n"); +} + +/** + * Given a `StructuredContent`, return a fallback representation for a preferred + * display type. Prefers an existing alternate; otherwise derives on demand. + */ +export function getStructuredFallback( + content: StructuredContent, + preferredType: "markdown" | "text" = "markdown", +): MessageContent { + if (content.alternates) { + for (const alt of content.alternates) { + if (alt.type === preferredType) { + return alt.content; + } + } + } + return preferredType === "text" + ? structuredToText(content.blocks) + : structuredToMarkdown(content.blocks); +} + +/** + * Type guard: is a DisplayContent a StructuredContent block document? + */ +export function isStructuredContent( + content: DisplayContent, +): content is StructuredContent { + return ( + typeof content === "object" && + content !== null && + !Array.isArray(content) && + (content as StructuredContent).type === "structured" + ); +} diff --git a/ts/packages/agentSdk/src/index.ts b/ts/packages/agentSdk/src/index.ts index 86bef72a01..071f4f9759 100644 --- a/ts/packages/agentSdk/src/index.ts +++ b/ts/packages/agentSdk/src/index.ts @@ -61,6 +61,23 @@ export { TypedDisplayContent, DisplayAppendMode, DisplayMessageKind, + BadgeTone, + TableCellType, + TableColumn, + TableCell, + TableBlock, + HeadingBlock, + TextBlock, + ListItem, + ListBlock, + KeyValuePair, + KeyValueBlock, + CardBlock, + ImageBlock, + CodeBlock, + DividerBlock, + StructuredBlock, + StructuredContent, } from "./display.js"; export { diff --git a/ts/packages/agentSdk/test/structuredContent.spec.ts b/ts/packages/agentSdk/test/structuredContent.spec.ts new file mode 100644 index 0000000000..e0dbd6842a --- /dev/null +++ b/ts/packages/agentSdk/test/structuredContent.spec.ts @@ -0,0 +1,280 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +import { + StructuredBlock, + StructuredContent, + TableColumn, + TableCell, +} from "../src/display.js"; +import { + ColumnSpec, + createStructuredContent, + createTable, + fromRecords, + getStructuredFallback, + isStructuredContent, + structuredToMarkdown, + structuredToText, +} from "../src/helpers/displayHelpers.js"; +import { createStructuredResult } from "../src/helpers/actionHelpers.js"; + +describe("structured content builders", () => { + it("createTable builds a table block with defaults", () => { + const columns: TableColumn[] = [ + { id: "n", header: "N" }, + { id: "t", header: "Title" }, + ]; + const rows: TableCell[][] = [[1, "one"]]; + const table = createTable(columns, rows); + expect(table).toEqual({ kind: "table", columns, rows }); + }); + + it("createTable carries affordance options", () => { + const table = createTable([{ id: "a", header: "A" }], [["x"]], { + caption: "cap", + readonly: true, + filterable: true, + }); + expect(table.caption).toBe("cap"); + expect(table.readonly).toBe(true); + expect(table.filterable).toBe(true); + }); + + it("fromRecords builds a table + stashes rawData together", () => { + type PR = { number: number; title: string; url: string }; + const prs: PR[] = [ + { number: 1, title: "First", url: "https://x/1" }, + { number: 2, title: "Second", url: "https://x/2" }, + ]; + const spec: ColumnSpec[] = [ + { + id: "number", + header: "#", + type: "link", + value: (pr) => ({ text: `#${pr.number}`, href: pr.url }), + }, + { id: "title", header: "Title", value: (pr) => pr.title }, + ]; + const content = fromRecords(prs, spec); + expect(content.type).toBe("structured"); + expect(content.blocks).toHaveLength(1); + const table = content.blocks[0]; + expect(table.kind).toBe("table"); + if (table.kind === "table") { + // value accessor stripped from column definition + expect(table.columns).toEqual([ + { id: "number", header: "#", type: "link" }, + { id: "title", header: "Title" }, + ]); + expect(table.rows).toEqual([ + [{ text: "#1", href: "https://x/1" }, "First"], + [{ text: "#2", href: "https://x/2" }, "Second"], + ]); + } + // rawData defaults to the original objects + expect(content.rawData).toBe(prs); + }); + + it("fromRecords allows overriding rawData", () => { + const content = fromRecords( + [{ a: 1 }], + [{ id: "a", header: "A", value: (o) => o.a }], + { rawData: { custom: true } }, + ); + expect(content.rawData).toEqual({ custom: true }); + }); + + it("createStructuredContent attaches markdown + text alternates", () => { + const content = createStructuredContent([ + { kind: "heading", text: "Hi" }, + ]); + expect(content.alternates).toEqual([ + { type: "markdown", content: "# Hi" }, + { type: "text", content: "Hi" }, + ]); + }); + + it("createStructuredContent omits undefined optional fields", () => { + const content = createStructuredContent([{ kind: "divider" }]); + expect("rawData" in content).toBe(false); + expect("kind" in content).toBe(false); + expect("speak" in content).toBe(false); + }); +}); + +describe("createStructuredResult", () => { + it("wraps blocks into an ActionResultSuccess with derived history text", () => { + const result = createStructuredResult( + [{ kind: "heading", text: "Report" }], + { rawData: [1, 2, 3] }, + ); + expect(result.entities).toEqual([]); + expect(result.historyText).toBe("Report"); + const display = result.displayContent as StructuredContent; + expect(display.type).toBe("structured"); + expect(display.rawData).toEqual([1, 2, 3]); + }); + + it("honors an explicit historyText and entities", () => { + const result = createStructuredResult([{ kind: "divider" }], { + historyText: "custom", + entities: [{ name: "e", type: ["t"] }], + }); + expect(result.historyText).toBe("custom"); + expect(result.entities).toEqual([{ name: "e", type: ["t"] }]); + }); +}); + +describe("isStructuredContent", () => { + it("detects structured content and rejects other display content", () => { + const content = createStructuredContent([{ kind: "divider" }]); + expect(isStructuredContent(content)).toBe(true); + expect(isStructuredContent("plain")).toBe(false); + expect(isStructuredContent(["a", "b"])).toBe(false); + expect(isStructuredContent({ type: "text", content: "x" })).toBe(false); + }); +}); + +describe("structuredToMarkdown", () => { + it("renders a table with link cells", () => { + const blocks: StructuredBlock[] = [ + { + kind: "table", + columns: [ + { id: "n", header: "#" }, + { id: "t", header: "Title" }, + ], + rows: [ + [{ text: "#1", href: "https://x/1" }, "First"], + [2, "Second"], + ], + }, + ]; + expect(structuredToMarkdown(blocks)).toBe( + [ + "| # | Title |", + "| --- | --- |", + "| [#1](https://x/1) | First |", + "| 2 | Second |", + ].join("\n"), + ); + }); + + it("renders headings, lists, images, code, and dividers", () => { + const blocks: StructuredBlock[] = [ + { kind: "heading", text: "Title", level: 2 }, + { + kind: "list", + items: [ + { text: "one", href: "https://x/1", subtitle: "sub" }, + { text: "two" }, + ], + }, + { kind: "image", src: "https://x/i.png", alt: "pic", caption: "c" }, + { kind: "code", code: "x=1", language: "python" }, + { kind: "divider" }, + ]; + expect(structuredToMarkdown(blocks)).toBe( + [ + "## Title", + "", + "- [one](https://x/1) — sub\n- two", + "", + "![pic](https://x/i.png)\n\n*c*", + "", + "```python\nx=1\n```", + "", + "---", + ].join("\n"), + ); + }); + + it("renders an ordered list and keyValue block", () => { + const blocks: StructuredBlock[] = [ + { + kind: "list", + ordered: true, + items: [{ text: "first" }, { text: "second" }], + }, + { + kind: "keyValue", + pairs: [ + { label: "Owner", value: "octocat" }, + { + label: "Repo", + value: { text: "typeagent", href: "https://x" }, + }, + ], + }, + ]; + expect(structuredToMarkdown(blocks)).toBe( + [ + "1. first\n2. second", + "", + "- **Owner:** octocat\n- **Repo:** [typeagent](https://x)", + ].join("\n"), + ); + }); +}); + +describe("structuredToText", () => { + it("renders an aligned text table", () => { + const blocks: StructuredBlock[] = [ + { + kind: "table", + columns: [ + { id: "n", header: "#" }, + { id: "t", header: "Title" }, + ], + rows: [ + [{ text: "#1", href: "https://x/1" }, "First"], + ["#22", "Second"], + ], + }, + ]; + expect(structuredToText(blocks)).toBe( + ["# Title ", "--- ------", "#1 First ", "#22 Second"].join( + "\n", + ), + ); + }); + + it("strips link/badge decoration and renders plain lines", () => { + const blocks: StructuredBlock[] = [ + { kind: "heading", text: "H" }, + { + kind: "keyValue", + pairs: [ + { + label: "Repo", + value: { text: "typeagent", href: "https://x" }, + }, + ], + }, + { kind: "image", src: "https://x/i.png", alt: "pic" }, + ]; + expect(structuredToText(blocks)).toBe( + ["H", "", "Repo: typeagent", "", "[image: pic]"].join("\n"), + ); + }); +}); + +describe("getStructuredFallback", () => { + it("prefers an existing alternate", () => { + const content = createStructuredContent([ + { kind: "heading", text: "Hi" }, + ]); + expect(getStructuredFallback(content, "markdown")).toBe("# Hi"); + expect(getStructuredFallback(content, "text")).toBe("Hi"); + }); + + it("derives on demand when no alternate is present", () => { + const content: StructuredContent = { + type: "structured", + blocks: [{ kind: "heading", text: "Hi" }], + }; + expect(getStructuredFallback(content, "markdown")).toBe("# Hi"); + expect(getStructuredFallback(content, "text")).toBe("Hi"); + }); +}); diff --git a/ts/packages/agentSdk/test/tsconfig.json b/ts/packages/agentSdk/test/tsconfig.json new file mode 100644 index 0000000000..0e71ed8c2d --- /dev/null +++ b/ts/packages/agentSdk/test/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "composite": true, + "rootDir": ".", + "outDir": "../dist/test", + "types": ["node", "jest"] + }, + "include": ["./**/*"], + "ts-node": { + "esm": true + }, + "references": [{ "path": "../src" }] +} diff --git a/ts/packages/agentSdk/tsconfig.json b/ts/packages/agentSdk/tsconfig.json index b6e1577e45..cdf483e0d6 100644 --- a/ts/packages/agentSdk/tsconfig.json +++ b/ts/packages/agentSdk/tsconfig.json @@ -4,7 +4,7 @@ "composite": true }, "include": [], - "references": [{ "path": "./src" }], + "references": [{ "path": "./src" }, { "path": "./test" }], "ts-node": { "esm": true } diff --git a/ts/packages/agents/browser/README.AUTOGEN.md b/ts/packages/agents/browser/README.AUTOGEN.md index d062beba43..5e90b5c9dd 100644 --- a/ts/packages/agents/browser/README.AUTOGEN.md +++ b/ts/packages/agents/browser/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # browser-typeagent — AI-generated documentation @@ -12,11 +12,11 @@ ## Overview -The `browser-typeagent` package is a TypeAgent application agent designed for browser automation and control. It enables programmatic interaction with browser windows, tabs, and web pages through a defined set of actions. This package integrates with the TypeAgent shell and CLI, allowing users to perform browser-related tasks using commands or natural language. +The `browser-typeagent` package is a TypeAgent application agent designed for browser automation and control. It enables programmatic interaction with browser windows, tabs, and web pages through a defined set of actions. This package integrates with the TypeAgent shell and CLI, allowing users to perform browser-related tasks using commands or natural language. It also includes a browser extension for enhanced functionality. ## What it does -The `browser-typeagent` package provides a comprehensive set of browser automation capabilities, including: +The `browser-typeagent` package provides a wide range of browser automation capabilities, including: - **Navigation**: Actions such as `openWebPage`, `goBack`, `goForward`, and `reloadPage` allow users to navigate between web pages and control browser tabs. - **Interaction**: Users can interact with web content using actions like `clickOn`, `followLinkByText`, `scrollDown`, and `scrollUp`. @@ -121,12 +121,12 @@ By following these steps, you can enhance the `browser-typeagent` package to sup ### Entry points - `./agent/manifest` → [./src/agent/manifest.json](./src/agent/manifest.json) -- `./agent/handlers` → `./dist/agent/browserActionHandler.mjs` _(not found on disk)_ -- `./agent/types` → `./dist/common/browserControl.mjs` _(not found on disk)_ -- `./agent/indexing` → `./dist/agent/indexing/browserIndexingService.js` _(not found on disk)_ -- `./contentScriptRpc/types` → `./dist/common/contentScriptRpc/types.mjs` _(not found on disk)_ -- `./contentScriptRpc/client` → `./dist/common/contentScriptRpc/client.mjs` _(not found on disk)_ -- `./htmlReducer` → `./dist/common/crossContextHtmlReducer.js` _(not found on disk)_ +- `./agent/handlers` → [./dist/agent/browserActionHandler.mjs](./dist/agent/browserActionHandler.mjs) +- `./agent/types` → [./dist/common/browserControl.mjs](./dist/common/browserControl.mjs) +- `./agent/indexing` → [./dist/agent/indexing/browserIndexingService.js](./dist/agent/indexing/browserIndexingService.js) +- `./contentScriptRpc/types` → [./dist/common/contentScriptRpc/types.mjs](./dist/common/contentScriptRpc/types.mjs) +- `./contentScriptRpc/client` → [./dist/common/contentScriptRpc/client.mjs](./dist/common/contentScriptRpc/client.mjs) +- `./htmlReducer` → [./dist/common/crossContextHtmlReducer.js](./dist/common/crossContextHtmlReducer.js) ### Dependencies @@ -179,7 +179,7 @@ _…and 17 more not shown._ - [./src/extension/contentScript/recording/index.ts](./src/extension/contentScript/recording/index.ts) - [./src/extension/serviceWorker/index.ts](./src/extension/serviceWorker/index.ts) - [./src/extension/webagent/crossword/crosswordSchema.agr](./src/extension/webagent/crossword/crosswordSchema.agr) -- _…and 289 more under `./src/`._ +- _…and 291 more under `./src/`._ ### Environment variables @@ -190,6 +190,6 @@ _2 environment variables referenced from `./src/` (set in `ts/.env` or your shel --- -_Auto-generated against commit `44b34a9ac8794b6f90489ff7e55fe57283c34960` on `2026-07-13T09:04:14.089Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter browser-typeagent docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter browser-typeagent docs:verify-links` to spot-check._ diff --git a/ts/packages/agents/browser/src/agent/browserActionHandler.mts b/ts/packages/agents/browser/src/agent/browserActionHandler.mts index a58f68f2fe..fec3f13e89 100644 --- a/ts/packages/agents/browser/src/agent/browserActionHandler.mts +++ b/ts/packages/agents/browser/src/agent/browserActionHandler.mts @@ -2874,6 +2874,7 @@ export async function handleWebsiteLibraryStats( responseText = statsResult.displayContent.join("\n"); } else if ( typeof statsResult.displayContent === "object" && + statsResult.displayContent.type !== "structured" && statsResult.displayContent.content ) { // Handle DisplayMessage type diff --git a/ts/packages/agents/calendar/README.AUTOGEN.md b/ts/packages/agents/calendar/README.AUTOGEN.md index 1d28a7e3f3..2a82a59847 100644 --- a/ts/packages/agents/calendar/README.AUTOGEN.md +++ b/ts/packages/agents/calendar/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # calendar — AI-generated documentation @@ -16,7 +16,7 @@ The `calendar` package is a TypeAgent application agent designed to manage calen ## What it does -The calendar agent provides a set of actions to manage and manipulate calendar events. These actions are grouped into two main categories: +The calendar agent provides a range of actions to manage and manipulate calendar events. These actions are grouped into two main categories: ### Event Management @@ -147,6 +147,6 @@ External: `chalk`, `date-fns`, `debug` --- -_Auto-generated against commit `defc71271dc68db47e0d376be7aa9f755da0ac91` on `2026-07-14T08:47:00.044Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter calendar docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter calendar docs:verify-links` to spot-check._ diff --git a/ts/packages/agents/calendar/src/calendarActionHandlerV3.ts b/ts/packages/agents/calendar/src/calendarActionHandlerV3.ts index bbff3ff9a7..5fb6caa320 100644 --- a/ts/packages/agents/calendar/src/calendarActionHandlerV3.ts +++ b/ts/packages/agents/calendar/src/calendarActionHandlerV3.ts @@ -6,9 +6,11 @@ import { AppAgent, ActionContext, ActionResult, + ActionResultSuccess, ReadinessReport, SessionContext, ParsedCommandParams, + StructuredBlock, } from "@typeagent/agent-sdk"; import { CommandHandler, @@ -25,6 +27,7 @@ import { createActionResultFromHtmlDisplay, createActionResultFromError, createActionResultFromTextDisplay, + createStructuredResult, createYesNoChoiceResult, createMultiChoiceResult, ChoiceManager, @@ -335,41 +338,6 @@ function emptyStateHtml(message: string): string { return `
${escapeHtml(message)}
`; } -// Helper function to format events as HTML -function formatEventsAsHtml(events: any[]): string { - if (!events || events.length === 0) { - return "

No events found.

"; - } - - const items = events.map((event) => { - const subject = escapeHtml(event.subject || "Untitled"); - const datePart = event.start?.dateTime - ? formatEventDate(event.start.dateTime) - : ""; - const timePart = - event.start?.dateTime && event.end?.dateTime - ? formatEventTimeRange(event.start.dateTime, event.end.dateTime) - : ""; - const location = escapeHtml(getEventLocation(event)); - - const subjectHtml = event.htmlLink - ? `${subject}` - : `${subject}`; - - const metaParts = [datePart, timePart].filter(Boolean); - const metaLine = metaParts.length - ? `
${metaParts.join("  ·  ")}
` - : ""; - const locationLine = location - ? `
${location}
` - : ""; - - return `
${subjectHtml}${metaLine}${locationLine}
`; - }); - - return `
${items.join("")}
`; -} - // Helper function to format events as professional plain text function formatEventsAsText(events: any[]): string { if (!events || events.length === 0) { @@ -406,6 +374,58 @@ function formatEventsAsText(events: any[]): string { return lines.join("\n"); } +// Build a structured agenda result: an optional heading + a table of events +// (Subject as a link, When, Location) plus a machine-readable rawData payload. +// The SDK derives the markdown/text fallback for clients that can't render +// blocks. +// +// Exported for unit tests. +export function buildStructuredEventList( + events: any[], + heading?: string, +): ActionResultSuccess { + const rows = events.map((event) => { + const subject = event.subject || "Untitled"; + const datePart = event.start?.dateTime + ? formatEventDate(event.start.dateTime) + : ""; + const timePart = + event.start?.dateTime && event.end?.dateTime + ? formatEventTimeRange(event.start.dateTime, event.end.dateTime) + : ""; + const when = [datePart, timePart].filter(Boolean).join(" · "); + const location = getEventLocation(event); + return [ + event.htmlLink ? { text: subject, href: event.htmlLink } : subject, + when, + location, + ]; + }); + + const blocks: StructuredBlock[] = []; + if (heading) { + blocks.push({ kind: "heading", level: 3, text: heading }); + } + blocks.push({ + kind: "table", + columns: [ + { id: "subject", header: "Event", type: "link" }, + { id: "when", header: "When", type: "date" }, + { id: "location", header: "Location" }, + ], + rows, + sortable: true, + pageSize: 15, + }); + + return createStructuredResult(blocks, { + historyText: heading + ? `${heading}\n\n${formatEventsAsText(events)}` + : formatEventsAsText(events), + rawData: events, + }); +} + // HH:MM timestamp prefix for setup status updates — same convention used by // screencapture / desktop runInstall + runDotnetBuild so progress reads // consistently across agents. @@ -947,10 +967,7 @@ export class CalendarActionHandlerV3 implements AppAgent { ); } - return createActionResultFromHtmlDisplay( - formatEventsAsHtml(events), - formatEventsAsText(events), - ); + return buildStructuredEventList(events); } catch (error: any) { debugError(chalk.red(`Error finding events: ${error.message}`)); return createActionResultFromError( @@ -1057,12 +1074,8 @@ export class CalendarActionHandlerV3 implements AppAgent { month: "long", day: "numeric", }); - const heading = `Today's Schedule \u2014 ${todayLabel}`; - const textResult = `${heading}\n${"=".repeat(heading.length)}\n\n${formatEventsAsText(events)}`; - return createActionResultFromHtmlDisplay( - `
Today's Schedule \u2014 ${todayLabel}
${formatEventsAsHtml(events)}
`, - textResult, - ); + const heading = `Today's Schedule \u2014 ${todayLabel}`; + return buildStructuredEventList(events, heading); } catch (error: any) { debugError( chalk.red(`Error finding today's events: ${error.message}`), @@ -1096,12 +1109,8 @@ export class CalendarActionHandlerV3 implements AppAgent { const weekStart = new Date(dateRange.startDateTime); const weekEnd = new Date(dateRange.endDateTime); const weekRangeLabel = `${weekStart.toLocaleDateString(undefined, { month: "short", day: "numeric" })} \u2013 ${weekEnd.toLocaleDateString(undefined, { month: "short", day: "numeric" })}`; - const weekHeading = `This Week's Schedule \u2014 ${weekRangeLabel}`; - const textResult = `${weekHeading}\n${"=".repeat(weekHeading.length)}\n\n${formatEventsAsText(events)}`; - return createActionResultFromHtmlDisplay( - `
This Week's Schedule \u2014 ${weekRangeLabel}
${formatEventsAsHtml(events)}
`, - textResult, - ); + const weekHeading = `This Week's Schedule \u2014 ${weekRangeLabel}`; + return buildStructuredEventList(events, weekHeading); } catch (error: any) { debugError( chalk.red(`Error finding this week's events: ${error.message}`), diff --git a/ts/packages/agents/calendar/test/calendarStructured.spec.ts b/ts/packages/agents/calendar/test/calendarStructured.spec.ts new file mode 100644 index 0000000000..ad2575fc9f --- /dev/null +++ b/ts/packages/agents/calendar/test/calendarStructured.spec.ts @@ -0,0 +1,96 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +/** + * Unit tests for the structured-content agenda builder in + * calendarActionHandlerV3. buildStructuredEventList converts a list of raw + * calendar events into an ActionResultSuccess whose displayContent is a + * StructuredContent document (optional heading + table). + */ + +import { buildStructuredEventList } from "../src/calendarActionHandlerV3.js"; + +function blocks(result: ReturnType) { + return (result.displayContent as any).blocks; +} + +function tableBlock(result: ReturnType) { + return blocks(result).find((b: any) => b.kind === "table"); +} + +const events = [ + { + subject: "Team sync", + start: { dateTime: "2026-07-13T09:00:00" }, + end: { dateTime: "2026-07-13T09:30:00" }, + location: { displayName: "Room 1" }, + htmlLink: "https://calendar.example/e/1", + }, + { + subject: "1:1", + start: { dateTime: "2026-07-13T11:00:00" }, + end: { dateTime: "2026-07-13T11:30:00" }, + location: "Cafe", + }, +]; + +describe("buildStructuredEventList", () => { + test("returns a structured displayContent", () => { + const result = buildStructuredEventList(events); + expect((result.displayContent as any).type).toBe("structured"); + }); + + test("no heading when omitted", () => { + const result = buildStructuredEventList(events); + expect(blocks(result).some((b: any) => b.kind === "heading")).toBe( + false, + ); + }); + + test("adds a heading block when provided", () => { + const result = buildStructuredEventList(events, "Today"); + expect(blocks(result)[0]).toMatchObject({ + kind: "heading", + text: "Today", + }); + }); + + test("table has Event / When / Location columns", () => { + const t = tableBlock(buildStructuredEventList(events)); + expect(t.columns.map((c: any) => c.id)).toEqual([ + "subject", + "when", + "location", + ]); + }); + + test("subject cell is a link when htmlLink is present", () => { + const t = tableBlock(buildStructuredEventList(events)); + expect(t.rows[0][0]).toMatchObject({ + text: "Team sync", + href: "https://calendar.example/e/1", + }); + }); + + test("subject cell is plain text without htmlLink", () => { + const t = tableBlock(buildStructuredEventList(events)); + expect(t.rows[1][0]).toBe("1:1"); + }); + + test("location resolves both object and string forms", () => { + const t = tableBlock(buildStructuredEventList(events)); + expect(t.rows[0][2]).toBe("Room 1"); + expect(t.rows[1][2]).toBe("Cafe"); + }); + + test("table is sortable and paginated", () => { + const t = tableBlock(buildStructuredEventList(events)); + expect(t.sortable).toBe(true); + expect(t.pageSize).toBe(15); + }); + + test("rawData carries the original events", () => { + const result = buildStructuredEventList(events); + expect((result.displayContent as any).rawData).toBe(events); + }); +}); diff --git a/ts/packages/agents/discord/README.AUTOGEN.md b/ts/packages/agents/discord/README.AUTOGEN.md index a857732ef9..1c0bd51a5e 100644 --- a/ts/packages/agents/discord/README.AUTOGEN.md +++ b/ts/packages/agents/discord/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # discord-agent — AI-generated documentation @@ -12,30 +12,31 @@ ## Overview -The `discord-agent` package is a TypeAgent application agent that facilitates interaction with Discord servers using natural language commands. It integrates with the Discord REST API v10 to perform tasks such as sending messages, managing channels, creating invites, and more. This agent is designed to simplify server management and communication by interpreting user commands and executing the appropriate actions. +The `discord-agent` package is a TypeAgent application agent that enables interaction with Discord servers through natural language commands. By leveraging the Discord REST API v10, this agent allows users to perform various tasks such as sending messages, managing channels, creating invites, and more. It simplifies server management and communication by interpreting user commands and executing corresponding actions. ## What it does -The `discord-agent` provides a range of actions to interact with Discord servers. These actions are grouped into several categories: +The `discord-agent` provides a set of actions that allow users to interact with Discord servers. These actions are grouped into the following categories: -- **Message Management**: +### Message Management - - `createMessage`: Sends a specific message to a channel. - - `craftMessage`: Uses an LLM to generate a message based on a high-level intent and posts it to a channel. - - `getChannelMessages`: Retrieves messages from a specified channel. +- **`createMessage`**: Sends a specific message to a channel. For example, "Send a message to the general channel saying 'Hello everyone!'". +- **`craftMessage`**: Uses an LLM to generate a message based on a high-level intent and posts it to a channel. For example, "Send a message to #general that welcomes everyone to the discord". +- **`getChannelMessages`**: Retrieves messages from a specified channel. For example, "Can you show me the latest messages from the channel with ID 12345?". -- **User and Server Management**: +### User and Server Management - - `getCurrentUser`: Fetches details about the bot's account. - - `setGuild`: Sets the default Discord server (guild) for all operations. +- **`getCurrentUser`**: Fetches details about the bot's account, such as username, discriminator, and ID. +- **`setGuild`**: Sets the default Discord server (guild) for all operations. For example, "Set my Discord server to YOUR_SERVER_ID". -- **Channel Management**: +### Channel Management - - `listChannels`: Lists all channels in the current Discord server. - - `refreshChannels`: Refreshes the cached list of channels from the server. +- **`listChannels`**: Lists all channels in the current Discord server, grouped by categories. +- **`refreshChannels`**: Refreshes the cached list of channels from the server. -- **Invite Management**: - - `createChannelInvite`: Creates a new invite link for a specific channel. +### Invite Management + +- **`createChannelInvite`**: Creates a new invite link for a specific channel. For example, "Create an invite for #general that never expires". These actions allow users to perform common Discord tasks without directly interacting with the Discord interface. The agent also supports natural language processing to interpret user commands and map them to the appropriate actions. @@ -43,78 +44,82 @@ These actions allow users to perform common Discord tasks without directly inter To use the `discord-agent`, you need to configure a Discord bot and set up the required environment variables. Follow these steps: -1. **Prerequisites**: +### Prerequisites + +- Install **Node.js** (version 20 or higher) and **pnpm** (version 10 or higher). +- Create a Discord account and have access to a Discord server (guild) that you manage. - - Install Node.js (version 20 or higher) and pnpm (version 10 or higher). - - Create a Discord account and have access to a Discord server (guild) that you manage. +### Create and Configure a Discord Bot -2. **Create and Configure a Discord Bot**: +1. Visit the Discord Developer Portal at `https://discord.com/developers/applications` and create a new application. +2. Navigate to the **Bot** tab, create a bot, and reset its token. Copy the token for later use. +3. Add the token to the `ts/.env` file in the project root: + ```env + DISCORD_BOT_TOKEN=your_token_here + ``` +4. Enable the **Message Content Intent** in the **Bot → Privileged Gateway Intents** section of the Developer Portal. +5. Use the **OAuth2 URL Generator** in the Developer Portal to create an invite link for your bot: + - Select the **bot** scope. + - Grant the bot permissions such as **Send Messages** and **Read Message History**. + - Add a redirect URL (e.g., `https://localhost`) in the **OAuth2 > General > Redirects** section before generating the invite link. + - Open the generated URL in your browser, select your server, and click **Authorize**. - - Visit the Discord Developer Portal at `https://discord.com/developers/applications` and create a new application. - - Navigate to the **Bot** tab, create a bot, and reset its token. Copy the token for later use. - - Add the token to the `ts/.env` file in the project root: - ```env - DISCORD_BOT_TOKEN=your_token_here - ``` - - Enable the **Message Content Intent** in the **Bot → Privileged Gateway Intents** section of the Developer Portal. - - Use the **OAuth2 URL Generator** in the Developer Portal to create an invite link for your bot: - - Select the **bot** scope. - - Grant the bot permissions such as **Send Messages** and **Read Message History**. - - Add a redirect URL (e.g., `https://localhost`) in the **OAuth2 > General > Redirects** section before generating the invite link. - - Open the generated URL in your browser, select your server, and click **Authorize**. +### Enable Developer Mode in Discord -3. **Enable Developer Mode in Discord**: +- In Discord, go to **Settings → Advanced → Developer Mode** and enable it. +- Right-click your server name in the sidebar and select **Copy Server ID** to obtain your server's ID. - - In Discord, go to **Settings → Advanced → Developer Mode** and enable it. - - Right-click your server name in the sidebar and select **Copy Server ID** to obtain your server's ID. +### First-Time Setup in TypeAgent -4. **First-Time Setup in TypeAgent**: - - Restart TypeAgent with the bot token configured. - - Set your Discord server ID using the following command: - ```bash - set my discord server to YOUR_SERVER_ID - ``` - - The agent will automatically fetch and cache all channels in the server. +- Restart TypeAgent with the bot token configured. +- Set your Discord server ID using the following command: + ```bash + set my discord server to YOUR_SERVER_ID + ``` +- The agent will automatically fetch and cache all channels in the server. ## Key Files -The `discord-agent` package is organized into several key files that define its functionality: +The `discord-agent` package is structured around key files that define its functionality: -- [src/discordActionHandler.ts](./src/discordActionHandler.ts): Contains the implementation of the action handlers, including logic for sending messages, creating invites, and managing channels. -- [src/discordManifest.json](./src/discordManifest.json): Defines the agent's metadata, including its description, schema, and default settings. -- [src/discordSchema.ts](./src/discordSchema.ts): Specifies the TypeScript types and structures for the actions supported by the agent. -- [src/discordSchema.agr](./src/discordSchema.agr): Contains the grammar definitions for parsing natural language commands into actionable intents. +- **[src/discordActionHandler.ts](./src/discordActionHandler.ts)**: Implements the logic for handling actions such as sending messages, creating invites, and managing channels. +- **[src/discordManifest.json](./src/discordManifest.json)**: Contains metadata about the agent, including its description, schema, and default settings. +- **[src/discordSchema.ts](./src/discordSchema.ts)**: Defines the TypeScript types and structures for the actions supported by the agent. +- **[src/discordSchema.agr](./src/discordSchema.agr)**: Specifies the grammar rules for parsing natural language commands into actionable intents. + +These files work together to enable the agent's functionality, from understanding user commands to executing the corresponding actions via the Discord API. ## How to extend To extend the `discord-agent` package, you can add new actions, update the grammar, and implement the corresponding handlers. Here’s how: -1. **Define New Actions**: +### 1. Define New Actions + +- Add the new action's type definition to [discordSchema.ts](./src/discordSchema.ts). +- Specify the action's parameters and expected behavior. - - Add the new action's type definition to [discordSchema.ts](./src/discordSchema.ts). - - Specify the action's parameters and expected behavior. +### 2. Update the Grammar -2. **Update the Grammar**: +- Modify [discordSchema.agr](./src/discordSchema.agr) to include new natural language patterns for the action. +- Ensure the grammar maps user commands to the new action and its parameters. - - Modify [discordSchema.agr](./src/discordSchema.agr) to include new natural language patterns for the action. - - Ensure the grammar maps user commands to the new action and its parameters. +### 3. Implement the Action Handler -3. **Implement the Action Handler**: +- Add the logic for the new action in [discordActionHandler.ts](./src/discordActionHandler.ts). +- Use the Discord REST API to perform the desired operation. - - Add the logic for the new action in [discordActionHandler.ts](./src/discordActionHandler.ts). - - Use the Discord REST API to perform the desired operation. +### 4. Test the New Functionality -4. **Test the New Functionality**: +- Write unit tests for the new action and its handler. +- Run the tests using: + ```bash + pnpm run test + ``` - - Write unit tests for the new action and its handler. - - Run the tests using: - ```bash - pnpm run test - ``` +### 5. Update Documentation -5. **Update Documentation**: - - Document the new action in the hand-written README or other relevant documentation files. - - Ensure the grammar and schema changes are reflected in the auto-generated documentation. +- Document the new action in the hand-written README or other relevant documentation files. +- Ensure the grammar and schema changes are reflected in the auto-generated documentation. By following these steps, you can enhance the `discord-agent` package to support additional Discord functionalities or customize it for specific use cases. @@ -125,7 +130,7 @@ By following these steps, you can enhance the `discord-agent` package to support ### Entry points - `./agent/manifest` → [./src/discordManifest.json](./src/discordManifest.json) -- `./agent/handlers` → `./dist/discordActionHandler.js` _(not found on disk)_ +- `./agent/handlers` → [./dist/discordActionHandler.js](./dist/discordActionHandler.js) ### Dependencies @@ -176,6 +181,6 @@ _8 actions implemented by this agent, parsed deterministically from `./src/disco --- -_Auto-generated against commit `44b34a9ac8794b6f90489ff7e55fe57283c34960` on `2026-07-13T09:04:14.089Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter discord-agent docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter discord-agent docs:verify-links` to spot-check._ diff --git a/ts/packages/agents/discord/src/discordActionHandler.ts b/ts/packages/agents/discord/src/discordActionHandler.ts index 5ae68c504f..71847b7844 100644 --- a/ts/packages/agents/discord/src/discordActionHandler.ts +++ b/ts/packages/agents/discord/src/discordActionHandler.ts @@ -7,10 +7,13 @@ import { TypeAgentAction, ActionResult, SessionContext, + StructuredBlock, + ListItem, } from "@typeagent/agent-sdk"; import { createActionResultFromTextDisplay, createActionResultFromError, + createStructuredResult, } from "@typeagent/agent-sdk/helpers/action"; import { ChatModel, openai } from "@typeagent/aiclient"; import { DiscordActions } from "./discordSchema.js"; @@ -496,7 +499,8 @@ async function executeAction( `4. Save and restart the bot`, ); } - const display = messages.slice(0, 10).map((m) => { + const shown = messages.slice(0, 10); + const rows = shown.map((m) => { let content = m.content?.trim() ?? ""; if (!content) { content = SYSTEM_MESSAGE_TYPES[m.type] @@ -512,12 +516,35 @@ async function executeAction( minute: "2-digit", hour12: true, }); - return `[${ts}] ${m.author?.username ?? "unknown"}: ${content}`; + return [ts, m.author?.username ?? "unknown", content]; }); - return createActionResultFromTextDisplay( - display.length > 0 - ? display.join("\n") - : "No messages found.", + if (rows.length === 0) { + return createActionResultFromTextDisplay( + "No messages found.", + ); + } + return createStructuredResult( + [ + { + kind: "table", + columns: [ + { id: "time", header: "Time", type: "date" }, + { id: "author", header: "Author" }, + { id: "message", header: "Message" }, + ], + rows, + sortable: true, + }, + ], + { + rawData: shown.map((m) => ({ + id: m.id, + timestamp: m.timestamp, + author: m.author?.username, + content: m.content, + type: m.type, + })), + }, ); } case "getCurrentUser": { @@ -576,29 +603,56 @@ async function executeAction( group.sort((a, b) => (a.position ?? 0) - (b.position ?? 0)); } - const lines: string[] = []; + const blocks: StructuredBlock[] = []; + const totalNonCategory = all.filter( + (ch) => ch.type !== 4, + ).length; + blocks.push({ + kind: "heading", + level: 3, + text: `Channels (${totalNonCategory})`, + }); + + const toItems = (chans: DiscordChannel[]): ListItem[] => + chans.map((ch) => ({ + text: ch.name ?? ch.id, + subtitle: TYPE_LABELS[ch.type] ?? `type-${ch.type}`, + })); + // Uncategorized channels first - for (const ch of byParent.get(undefined) ?? []) { - const label = TYPE_LABELS[ch.type] ?? `type-${ch.type}`; - lines.push(` • ${ch.name} (${label})`); + const uncategorized = byParent.get(undefined) ?? []; + if (uncategorized.length > 0) { + blocks.push({ + kind: "list", + items: toItems(uncategorized), + }); } // Each category and its children for (const cat of categories) { - lines.push(`\n ${cat.name?.toUpperCase() ?? cat.id}`); - for (const ch of byParent.get(cat.id) ?? []) { - const label = TYPE_LABELS[ch.type] ?? `type-${ch.type}`; - lines.push(` • ${ch.name} (${label})`); - } + const children = byParent.get(cat.id) ?? []; + if (children.length === 0) continue; + blocks.push({ + kind: "heading", + level: 3, + text: cat.name?.toUpperCase() ?? cat.id, + }); + blocks.push({ kind: "list", items: toItems(children) }); } - const totalNonCategory = all.filter( - (ch) => ch.type !== 4, - ).length; - return createActionResultFromTextDisplay( - lines.length > 0 - ? `Channels (${totalNonCategory}):\n${lines.join("\n")}` - : "No channels found.", - ); + if (totalNonCategory === 0) { + return createActionResultFromTextDisplay( + "No channels found.", + ); + } + return createStructuredResult(blocks, { + rawData: all.map((ch) => ({ + id: ch.id, + name: ch.name, + type: ch.type, + parent_id: ch.parent_id, + position: ch.position, + })), + }); } case "refreshChannels": { await fetchAndCacheChannels( diff --git a/ts/packages/agents/email/README.AUTOGEN.md b/ts/packages/agents/email/README.AUTOGEN.md index b0af7dc2fe..d6573f88e9 100644 --- a/ts/packages/agents/email/README.AUTOGEN.md +++ b/ts/packages/agents/email/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # email — AI-generated documentation @@ -12,18 +12,18 @@ ## Overview -The Email agent is a TypeAgent application agent designed to facilitate email management through the Microsoft Graph API. It enables users to perform common email operations such as sending, replying to, forwarding, and searching for emails. By leveraging structured prompting and large language models (LLMs), the agent interprets user requests and interacts with the Outlook mail client via the Microsoft Graph API. +The Email agent is a TypeAgent application agent that facilitates email management by integrating with the Microsoft Graph API. It enables users to perform common email operations such as sending, replying to, forwarding, and searching for emails. The agent leverages structured prompting and large language models (LLMs) to interpret user requests and execute email-related actions via the Outlook mail client. ## What it does -The Email agent provides functionality for managing email communication through the following actions: +The Email agent supports the following actions, which are implemented using the Microsoft Graph API: -- **`sendEmail`**: Allows users to send an email with a subject, body, and recipients. Additional options include CC, BCC, and attachments (file paths or URLs). The `genContent` parameter can be used to generate email content dynamically. -- **`forwardEmail`**: Enables forwarding an existing email to specified recipients, with an optional additional message. -- **`replyEmail`**: Facilitates replying to an existing email, with options to include a body, CC, BCC, and attachments. +- **`sendEmail`**: Sends an email with a subject, body, and recipients. Additional options include CC, BCC, and attachments (file paths or URLs). The `genContent` parameter allows dynamic content generation for the email body. +- **`forwardEmail`**: Forwards an existing email to specified recipients, with an optional additional message. +- **`replyEmail`**: Replies to an existing email, with options to include a body, CC, BCC, and attachments. - **`findEmail`**: Searches for an email message using a `messageRef` parameter, which identifies the email to be retrieved. -These actions are implemented using the Microsoft Graph API, which provides access to email accounts and related operations. The agent also integrates with the `graph-utils` library for email-specific functionality and supports advanced features like content generation using LLMs. +These actions are implemented in [emailActionHandler.ts](./src/emailActionHandler.ts) and rely on the `graph-utils` library for email-specific functionality. The agent also integrates with the `@microsoft/microsoft-graph-client` library to interact with the Microsoft Graph API. ## Setup @@ -100,7 +100,7 @@ By following this process, you can extend the Email agent to support additional ### Entry points - `./agent/manifest` → [./src/emailManifest.json](./src/emailManifest.json) -- `./agent/handlers` → `./dist/emailActionHandler.js` _(not found on disk)_ +- `./agent/handlers` → [./dist/emailActionHandler.js](./dist/emailActionHandler.js) ### Dependencies @@ -143,6 +143,6 @@ _4 actions implemented by this agent, parsed deterministically from `./src/email --- -_Auto-generated against commit `44b34a9ac8794b6f90489ff7e55fe57283c34960` on `2026-07-13T09:04:14.089Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter email docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter email docs:verify-links` to spot-check._ diff --git a/ts/packages/agents/email/src/emailActionHandler.ts b/ts/packages/agents/email/src/emailActionHandler.ts index 1405138d22..ced3e708ed 100644 --- a/ts/packages/agents/email/src/emailActionHandler.ts +++ b/ts/packages/agents/email/src/emailActionHandler.ts @@ -40,9 +40,10 @@ import { createActionResultFromError, createActionResultFromHtmlDisplay, createActionResultFromTextDisplay, + createStructuredResult, createYesNoChoiceResult, } from "@typeagent/agent-sdk/helpers/action"; -import { ActionResultSuccess } from "@typeagent/agent-sdk"; +import { ActionResultSuccess, BadgeTone } from "@typeagent/agent-sdk"; import { CommandHandler, CommandHandlerNoParams, @@ -881,54 +882,66 @@ async function trySilentEmailSignIn( } } -function formatEmailListHtml( +function formatEmailListPlain( messages: EmailMessage[], heading: string, ): string { - const rows = messages.map((msg) => { - const from = msg.from - ? escapeHtml(msg.from.name || msg.from.address) - : "Unknown"; - const subject = escapeHtml(msg.subject); + const lines: string[] = [heading + "\n"]; + for (const msg of messages) { + lines.push(formatMessageSummary(msg)); + } + return lines.join("\n"); +} + +// Build a structured email-list result: a heading + a list block (one item +// per message, with the subject as a link, a "From · date" subtitle, and an +// unread badge) plus a machine-readable rawData payload. The SDK derives the +// markdown/text fallback for clients that can't render blocks. +function buildStructuredEmailList( + messages: EmailMessage[], + heading: string, +): ActionResultSuccess { + const items = messages.map((msg) => { + const from = msg.from ? msg.from.name || msg.from.address : "Unknown"; const date = msg.receivedDateTime ? new Date(msg.receivedDateTime).toLocaleDateString() : ""; const preview = msg.bodyPreview - ? escapeHtml( - msg.bodyPreview.replace(/\s+/g, " ").trim().slice(0, 120), - ) + ? msg.bodyPreview.replace(/\s+/g, " ").trim().slice(0, 120) : ""; + const subtitleParts = [`From ${from}`]; + if (date) subtitleParts.push(date); + if (preview) subtitleParts.push(preview); const unread = msg.isRead === false; - const borderColor = unread ? "#4a9eda" : "#ccc"; - const subjectWeight = unread ? "font-weight:bold;" : ""; - - // Wrap subject in a link if webLink is available - const subjectHtml = msg.webLink - ? `${subject}` - : `${subject}`; - - return `
-
${subjectHtml} · ${date}
-
From: ${from}
- ${preview ? `
${preview}
` : ""} -
`; + return { + text: msg.subject || "(no subject)", + ...(msg.webLink ? { href: msg.webLink } : {}), + subtitle: subtitleParts.join(" · "), + badges: unread ? (["info"] as BadgeTone[]) : [], + }; }); - return `
-
${escapeHtml(heading)}
-${rows.join("\n")} -
`; -} + const rawData = messages.map((msg) => ({ + subject: msg.subject, + from: msg.from + ? { name: msg.from.name, address: msg.from.address } + : undefined, + receivedDateTime: msg.receivedDateTime, + isRead: msg.isRead, + webLink: msg.webLink, + bodyPreview: msg.bodyPreview, + })); -function formatEmailListPlain( - messages: EmailMessage[], - heading: string, -): string { - const lines: string[] = [heading + "\n"]; - for (const msg of messages) { - lines.push(formatMessageSummary(msg)); - } - return lines.join("\n"); + return createStructuredResult( + [ + { kind: "heading", level: 3, text: heading }, + { kind: "list", items }, + ], + { + rawData, + historyText: formatEmailListPlain(messages, heading), + }, + ); } const SELF_TERMS = new Set(["myself", "me", "my email", "i", "my", "s"]); @@ -1116,10 +1129,7 @@ async function handleFindEmailAction( return "No emails found in inbox."; } const heading = `Inbox (${messages.length} messages):`; - return createActionResultFromHtmlDisplay( - formatEmailListHtml(messages, heading), - formatEmailListPlain(messages, heading), - ); + return buildStructuredEmailList(messages, heading); } // Provider search — primary path for all queries @@ -1207,10 +1217,7 @@ ${sourceLinksHtml} // Metadata-only query or RAG fallback: show email list const heading = `Found ${messages.length} email(s):`; - return createActionResultFromHtmlDisplay( - formatEmailListHtml(messages, heading), - formatEmailListPlain(messages, heading), - ); + return buildStructuredEmailList(messages, heading); } /** diff --git a/ts/packages/agents/github-cli/README.AUTOGEN.md b/ts/packages/agents/github-cli/README.AUTOGEN.md index 09bfa62242..ff46a1eff7 100644 --- a/ts/packages/agents/github-cli/README.AUTOGEN.md +++ b/ts/packages/agents/github-cli/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # github-cli-agent — AI-generated documentation @@ -12,16 +12,16 @@ ## Overview -The `github-cli-agent` is a TypeAgent application agent designed to interact with GitHub through the GitHub CLI (`gh`). It enables users to perform a wide range of GitHub operations, such as managing repositories, issues, pull requests, workflows, and more, using natural language commands. By leveraging the GitHub CLI, this agent provides a streamlined interface for automating and simplifying common GitHub tasks. +The `github-cli-agent` is a TypeAgent application agent that integrates with the GitHub CLI (`gh`) to enable natural language-driven interactions with GitHub. It provides a wide range of actions for managing repositories, issues, pull requests, workflows, and other GitHub features. By leveraging the GitHub CLI, the agent simplifies complex GitHub operations into intuitive commands. ## What it does -The `github-cli-agent` supports 65 actions, categorized into several functional areas: +The `github-cli-agent` supports 65 actions, grouped into the following categories: -- **Authentication**: Actions like `authLogin`, `authLogout`, and `authStatus` allow users to manage their GitHub authentication, including logging in, logging out, and checking the current authentication status. -- **Issues**: Manage GitHub issues with actions such as `issueCreate`, `issueClose`, `issueDelete`, `issueReopen`, `issueList`, and `issueView`. These actions enable users to create, modify, delete, and view issues across repositories. -- **Pull Requests**: Handle pull request workflows with actions like `prCreate`, `prClose`, `prMerge`, `prList`, `prView`, and `prCheckout`. These actions cover the entire lifecycle of pull requests, from creation to merging. -- **Repositories**: Perform repository-related tasks with actions such as `repoCreate`, `repoClone`, `repoDelete`, `repoView`, `repoFork`, `starRepo`, and `searchRepos`. These actions allow users to create, clone, delete, and explore repositories. +- **Authentication**: Manage GitHub authentication with actions like `authLogin`, `authLogout`, and `authStatus`. These actions allow users to log in, log out, and check their authentication status. +- **Issues**: Create, close, reopen, delete, list, and view issues using actions such as `issueCreate`, `issueClose`, `issueReopen`, `issueDelete`, `issueList`, and `issueView`. +- **Pull Requests**: Handle pull request workflows with actions like `prCreate`, `prClose`, `prMerge`, `prList`, `prView`, and `prCheckout`. These actions support creating, managing, and reviewing pull requests. +- **Repositories**: Perform repository-related tasks with actions such as `repoCreate`, `repoClone`, `repoDelete`, `repoView`, `repoFork`, `starRepo`, and `searchRepos`. These actions allow users to manage repositories and retrieve specific information about them. - **Codespaces**: Manage GitHub Codespaces with actions like `codespaceCreate`, `codespaceDelete`, and `codespaceList`. - **Gists**: Create, delete, and list gists using `gistCreate`, `gistDelete`, and `gistList`. - **Projects**: Manage GitHub projects with actions like `projectCreate`, `projectDelete`, and `projectList`. @@ -31,25 +31,25 @@ The `github-cli-agent` supports 65 actions, categorized into several functional - **Workflows**: View workflow runs and details using `workflowView` and `runView`. - **Miscellaneous**: Includes actions like `cacheList`, `cacheDelete`, `configSet`, `sshKeyAdd`, and `statusPrint`. -The agent enhances the user experience by providing features such as clickable hyperlinks in listings, color-coded output for Dependabot alerts, and user-friendly confirmation messages for actions like creating or deleting resources. +The agent enhances usability by providing features such as clickable hyperlinks in listings, color-coded output for Dependabot alerts, and user-friendly confirmation messages for actions like creating or deleting resources. ## Setup -To use the `github-cli-agent`, follow these steps: +To use the `github-cli-agent`, you need to complete the following setup steps: 1. **Install the GitHub CLI**: Download and install the GitHub CLI from `https://cli.github.com/`. Ensure it is available in your system's `PATH`. -2. **Authenticate with GitHub**: Run `gh auth login` to authenticate with your GitHub account. +2. **Authenticate with GitHub**: Run `gh auth login` to authenticate with your GitHub account. This step is required for the agent to interact with GitHub on your behalf. The agent performs a `gh auth status` readiness check at startup and before executing any action. If the CLI is not installed or the user is not authenticated, the dispatcher will provide instructions to resolve the issue. After addressing any issues, run `@config agent refresh github-cli` to re-probe the environment. ## Key Files -The `github-cli-agent` is structured around several key files that define its functionality: +The `github-cli-agent` is organized into several key files that define its behavior and functionality: - **[github-cliManifest.json](./src/github-cliManifest.json)**: Contains metadata about the agent, including its description, emoji, and schema details. -- **[github-cliSchema.ts](./src/github-cliSchema.ts)**: Defines the types and parameters for all supported actions. -- **[github-cliSchema.agr](./src/github-cliSchema.agr)**: Maps natural language inputs to specific actions and their parameters. -- **[github-cliActionHandler.ts](./src/github-cliActionHandler.ts)**: Implements the logic for executing actions by invoking the GitHub CLI. +- **[github-cliSchema.ts](./src/github-cliSchema.ts)**: Defines the types and parameters for all supported actions. This file is the source of truth for the agent's capabilities. +- **[github-cliSchema.agr](./src/github-cliSchema.agr)**: Maps natural language inputs to specific actions and their parameters. This file is essential for interpreting user commands. +- **[github-cliActionHandler.ts](./src/github-cliActionHandler.ts)**: Implements the logic for executing actions by invoking the GitHub CLI. This is where the core functionality of the agent resides. - **[setup.ts](./src/setup.ts)**: Handles installation and readiness checks for the GitHub CLI, including platform-specific setup logic. These files work together to define the agent's capabilities, interpret user inputs, and execute the corresponding GitHub CLI commands. @@ -156,6 +156,6 @@ _65 actions implemented by this agent, parsed deterministically from `./src/gith --- -_Auto-generated against commit `defc71271dc68db47e0d376be7aa9f755da0ac91` on `2026-07-14T08:47:00.044Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter github-cli-agent docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter github-cli-agent docs:verify-links` to spot-check._ diff --git a/ts/packages/agents/github-cli/src/github-cliActionHandler.ts b/ts/packages/agents/github-cli/src/github-cliActionHandler.ts index b0abd04e4b..25f05b100f 100644 --- a/ts/packages/agents/github-cli/src/github-cliActionHandler.ts +++ b/ts/packages/agents/github-cli/src/github-cliActionHandler.ts @@ -8,6 +8,11 @@ import { ActionResult, ActionResultSuccess, ReadinessReport, + BadgeTone, + TableCell, + TableBlock, + KeyValuePair, + StructuredBlock, } from "@typeagent/agent-sdk"; import { ChoiceManager, @@ -17,6 +22,11 @@ import { createMultiChoiceResult, createYesNoChoiceResult, } from "@typeagent/agent-sdk/helpers/action"; +import { + ColumnSpec, + createStructuredContent, + createTable, +} from "@typeagent/agent-sdk/helpers/display"; import { GithubCliActions } from "./github-cliSchema.js"; import { execFile } from "node:child_process"; import { promisify } from "node:util"; @@ -897,6 +907,55 @@ function distillRepoField( } } +// Build a focused structured answer for a specific repo field. Wraps the +// natural-language summary as a single-pair keyValue block plus a rawData +// payload carrying the raw field value. Returns undefined for unknown fields. +// +// Exported for unit tests. +export function buildStructuredField( + field: string, + data: Record, + repo: string, +): ActionResultSuccess | undefined { + const summary = distillRepoField(field, data, repo); + if (summary === undefined) { + return undefined; + } + const label = + repo || `${formatValue(data.owner)}/${String(data.name ?? "")}`; + const fieldLabels: Record = { + stars: "Stars", + forks: "Forks", + language: "Language", + watchers: "Watchers", + description: "Description", + }; + const rawValues: Record = { + stars: data.stargazerCount, + forks: data.forkCount, + language: formatValue(data.primaryLanguage), + watchers: formatValue(data.watchers), + description: data.description, + }; + const value = rawValues[field]; + const pair: KeyValuePair = { + label: fieldLabels[field] ?? field, + value: typeof value === "number" ? value : String(value ?? ""), + }; + const blocks: StructuredBlock[] = [ + { kind: "heading", level: 3, text: label }, + { kind: "keyValue", pairs: [pair] }, + { kind: "text", text: summary, format: "markdown" }, + ]; + return { + historyText: summary, + entities: [], + displayContent: createStructuredContent(blocks, { + rawData: { repo: label, field, value }, + }), + }; +} + // Format gh status output — parse the │-table into clean markdown sections // code-complexity-allow: sequential gh status table parser; many format branches function formatStatusOutput(raw: string): string { @@ -993,13 +1052,20 @@ function formatStatusOutput(raw: string): string { return result.join("\n"); } -// Format a single issue view from JSON into rich markdown -function formatIssueView(data: Record): string { +// Build a single-issue structured view (issueView action). Renders a heading, +// a keyValue metadata block, and an optional truncated body text block, plus a +// rawData payload carrying the full gh JSON. +// +// Exported for unit tests. +export function buildStructuredIssueView( + data: Record, +): ActionResultSuccess { const author = data.author ? formatValue(data.author) : "unknown"; const labels = Array.isArray(data.labels) ? (data.labels as Record[]) - .map((l) => `\`${l.name}\``) - .join(" ") + .map((l) => String(l.name ?? "")) + .filter(Boolean) + .join(", ") : ""; const assignees = Array.isArray(data.assignees) ? (data.assignees as Record[]) @@ -1009,111 +1075,437 @@ function formatIssueView(data: Record): string { const commentCount = Array.isArray(data.comments) ? data.comments.length : (data.comments ?? 0); - const body = data.body ? String(data.body).slice(0, 1000) : ""; - const bodySection = body - ? `\n\n---\n\n${body}${String(data.body).length > 1000 ? "\n\n*…truncated*" : ""}` - : ""; - let header = `### [#${data.number} ${data.title}](${data.url})\n\n`; - header += `**State:** ${data.state}`; - header += ` · **Author:** ${author}`; - if (labels) header += ` · **Labels:** ${labels}`; - if (assignees) header += `\n**Assignees:** ${assignees}`; - header += ` · **Comments:** ${commentCount}`; - header += ` · **Created:** ${String(data.createdAt).slice(0, 10)}`; + const pairs: KeyValuePair[] = []; + pairs.push({ + label: "State", + value: { + text: String(data.state ?? ""), + badge: issueBadge(String(data.state ?? "")), + }, + }); + pairs.push({ label: "Author", value: author }); + if (labels) pairs.push({ label: "Labels", value: labels }); + if (assignees) pairs.push({ label: "Assignees", value: assignees }); + pairs.push({ label: "Comments", value: Number(commentCount) }); + if (data.createdAt) + pairs.push({ + label: "Created", + value: String(data.createdAt).slice(0, 10), + }); if (data.closedAt) - header += ` · **Closed:** ${String(data.closedAt).slice(0, 10)}`; + pairs.push({ + label: "Closed", + value: String(data.closedAt).slice(0, 10), + }); + if (data.url) + pairs.push({ + label: "Link", + value: { text: String(data.url), href: String(data.url) }, + }); - return header + bodySection; + const headingText = `#${data.number} ${data.title}`; + const blocks: StructuredBlock[] = [ + { kind: "heading", level: 3, text: headingText }, + { kind: "keyValue", pairs }, + ]; + const body = data.body ? String(data.body) : ""; + if (body) { + blocks.push({ kind: "divider" }); + blocks.push({ + kind: "text", + text: + body.slice(0, 1000) + + (body.length > 1000 ? "\n\n*…truncated*" : ""), + format: "markdown", + }); + } + return { + historyText: headingText, + entities: [], + displayContent: createStructuredContent(blocks, { rawData: data }), + }; } -// Format a single PR view from JSON into rich markdown -function formatPrView(data: Record): string { +// Build a single-PR structured view (prView action). Renders a heading, a +// keyValue metadata block, and an optional truncated body text block, plus a +// rawData payload carrying the full gh JSON. +// +// Exported for unit tests. +export function buildStructuredPrView( + data: Record, +): ActionResultSuccess { const author = data.author ? formatValue(data.author) : "unknown"; const labels = Array.isArray(data.labels) ? (data.labels as Record[]) - .map((l) => `\`${l.name}\``) - .join(" ") - : ""; - const status = data.isDraft ? "DRAFT" : String(data.state); - const body = data.body ? String(data.body).slice(0, 1000) : ""; - const bodySection = body - ? `\n\n---\n\n${body}${String(data.body).length > 1000 ? "\n\n*…truncated*" : ""}` + .map((l) => String(l.name ?? "")) + .filter(Boolean) + .join(", ") : ""; - - let header = `### [#${data.number} ${data.title}](${data.url})\n\n`; - header += `**State:** ${status}`; - header += ` · **Author:** ${author}`; + const isDraft = Boolean(data.isDraft); + const statusLabel = isDraft ? "Draft" : String(data.state ?? ""); + const statusTone: BadgeTone = isDraft + ? "warning" + : prBadge(data as Record); + + const pairs: KeyValuePair[] = []; + pairs.push({ + label: "State", + value: { text: statusLabel, badge: statusTone }, + }); + pairs.push({ label: "Author", value: author }); if (data.headRefName) - header += ` · **Branch:** \`${data.headRefName}\` → \`${data.baseRefName}\``; - if (labels) header += ` · **Labels:** ${labels}`; - if (data.additions !== undefined) { - header += `\n**Changes:** +${data.additions} −${data.deletions} across ${data.changedFiles} files`; + pairs.push({ + label: "Branch", + value: `${String(data.headRefName)} → ${String(data.baseRefName ?? "")}`, + }); + if (labels) pairs.push({ label: "Labels", value: labels }); + if (data.additions !== undefined) + pairs.push({ + label: "Changes", + value: `+${data.additions} −${data.deletions} across ${data.changedFiles} files`, + }); + if (data.createdAt) + pairs.push({ + label: "Created", + value: String(data.createdAt).slice(0, 10), + }); + if (data.url) + pairs.push({ + label: "Link", + value: { text: String(data.url), href: String(data.url) }, + }); + + const headingText = `#${data.number} ${data.title}`; + const blocks: StructuredBlock[] = [ + { kind: "heading", level: 3, text: headingText }, + { kind: "keyValue", pairs }, + ]; + const body = data.body ? String(data.body) : ""; + if (body) { + blocks.push({ kind: "divider" }); + blocks.push({ + kind: "text", + text: + body.slice(0, 1000) + + (body.length > 1000 ? "\n\n*…truncated*" : ""), + format: "markdown", + }); } - header += ` · **Created:** ${String(data.createdAt).slice(0, 10)}`; + return { + historyText: headingText, + entities: [], + displayContent: createStructuredContent(blocks, { rawData: data }), + }; +} - return header + bodySection; +// ============================================================================ +// Phase 5 — structured-content list results (replaces formatListResults) +// ============================================================================ + +// Map a PR record to a badge tone for the state column. +function prBadge(pr: Record): BadgeTone { + if (pr.isDraft) return "warning"; + const s = String(pr.state ?? "").toUpperCase(); + if (s === "OPEN") return "info"; + if (s === "MERGED") return "success"; + return "neutral"; } -function formatListResults( +// Map an issue state string to a badge tone. +function issueBadge(state: string): BadgeTone { + const s = state.toUpperCase(); + if (s === "OPEN") return "info"; + return "neutral"; +} + +// Map a Dependabot severity string to a badge tone. +function severityBadge(sev: string): BadgeTone { + switch (sev.toUpperCase()) { + case "CRITICAL": + case "HIGH": + return "error"; + case "MEDIUM": + return "warning"; + default: + return "neutral"; + } +} + +// Build a TableBlock from ColumnSpec + records, then wrap it with a heading +// in a properly-derived StructuredContent (alternates computed from all blocks). +function makeStructuredTable( + objects: T[], + colSpecs: ColumnSpec[], + headingText: string, + tableOptions?: { + sortable?: boolean; + filterable?: boolean; + readonly?: boolean; + pageSize?: number; + }, +): ActionResultSuccess { + const columns = colSpecs.map(({ value: _v, ...col }) => col); + const rows: TableCell[][] = objects.map((obj) => + colSpecs.map((col) => col.value(obj)), + ); + // Cap long lists to a first page (client reveals the rest via "Show + // more") unless the caller overrode it. All rows still ship. + const table: TableBlock = createTable(columns, rows, { + pageSize: 15, + ...tableOptions, + }); + const blocks: StructuredBlock[] = [ + { kind: "heading", level: 3, text: headingText }, + table, + ]; + return { + historyText: headingText, + entities: [], + displayContent: createStructuredContent(blocks, { rawData: objects }), + }; +} + +// Build a heading + table StructuredContent for a list action. Returns +// undefined for action names that have no structured template. +// +// Exported for unit tests. +export function buildStructuredListResult( items: Record[], actionName: string, -): string | undefined { - if (items.length === 0) return "No results found."; + label: string, +): ActionResultSuccess | undefined { + const count = items.length; + const headingText = `${label} — ${count} result${count === 1 ? "" : "s"}`; - // Issues - if (actionName === "issueList" && "number" in items[0]) { - return items - .map((i) => { - const labels = Array.isArray(i.labels) - ? (i.labels as Record[]) - .map((l) => l.name) - .join(", ") - : ""; - const labelStr = labels ? ` \`${labels}\`` : ""; - return `- [#${i.number} ${i.title}](${i.url}) — ${i.state}${labelStr}`; - }) - .join("\n"); + if (count === 0) { + return { + historyText: headingText, + entities: [], + displayContent: createStructuredContent([ + { kind: "heading", level: 3, text: headingText }, + { kind: "text", text: "No results found." }, + ]), + }; } // Pull requests if (actionName === "prList" && "number" in items[0]) { - return items - .map((pr) => { - const status = pr.isDraft ? "DRAFT" : String(pr.state); - const branch = pr.headRefName ? ` \`${pr.headRefName}\`` : ""; - return `- [#${pr.number} ${pr.title}](${pr.url}) — ${status}${branch}`; - }) - .join("\n"); + type PrRecord = { + number: unknown; + title: unknown; + state: unknown; + isDraft: unknown; + headRefName: unknown; + url: unknown; + createdAt: unknown; + }; + const cols: ColumnSpec[] = [ + { + id: "number", + header: "#", + type: "link", + align: "right", + value: (pr) => ({ + text: String(pr.number ?? ""), + href: String(pr.url ?? ""), + }), + }, + { + id: "title", + header: "Title", + value: (pr) => String(pr.title ?? ""), + }, + { + id: "state", + header: "State", + type: "badge", + value: (pr): TableCell => { + const tone = prBadge(pr as Record); + const lbl = pr.isDraft + ? "Draft" + : String(pr.state ?? "") + .charAt(0) + .toUpperCase() + + String(pr.state ?? "") + .slice(1) + .toLowerCase(); + return { text: lbl, badge: tone }; + }, + }, + { + id: "branch", + header: "Branch", + type: "code", + value: (pr) => String(pr.headRefName ?? ""), + }, + { + id: "created", + header: "Created", + type: "date", + value: (pr) => { + const d = pr.createdAt + ? new Date(String(pr.createdAt)) + : null; + return d ? d.toLocaleDateString() : ""; + }, + }, + ]; + return makeStructuredTable( + items as unknown as PrRecord[], + cols, + headingText, + { sortable: true }, + ); + } + + // Issues + if (actionName === "issueList" && "number" in items[0]) { + type IssueRecord = { + number: unknown; + title: unknown; + state: unknown; + url: unknown; + createdAt: unknown; + labels: unknown; + }; + const cols: ColumnSpec[] = [ + { + id: "number", + header: "#", + type: "link", + align: "right", + value: (i) => ({ + text: String(i.number ?? ""), + href: String(i.url ?? ""), + }), + }, + { + id: "title", + header: "Title", + value: (i) => String(i.title ?? ""), + }, + { + id: "state", + header: "State", + type: "badge", + value: (i): TableCell => ({ + text: + String(i.state ?? "") + .charAt(0) + .toUpperCase() + + String(i.state ?? "") + .slice(1) + .toLowerCase(), + badge: issueBadge(String(i.state ?? "")), + }), + }, + { + id: "labels", + header: "Labels", + value: (i) => + Array.isArray(i.labels) + ? (i.labels as Record[]) + .map((l) => String(l.name ?? "")) + .filter(Boolean) + .join(", ") + : "", + }, + { + id: "created", + header: "Created", + type: "date", + value: (i) => { + const d = i.createdAt + ? new Date(String(i.createdAt)) + : null; + return d ? d.toLocaleDateString() : ""; + }, + }, + ]; + return makeStructuredTable( + items as unknown as IssueRecord[], + cols, + headingText, + { sortable: true }, + ); } // Issues assigned to the current user (gh search issues --assignee @me) if (actionName === "myAssignedIssues" && "number" in items[0]) { - return items - .map((it) => { - const repo = it.repository as - | Record - | undefined; - const repoFull = - (repo?.nameWithOwner as string | undefined) ?? - (repo?.name as string | undefined) ?? - ""; - const labels = Array.isArray(it.labels) - ? (it.labels as Record[]) - .map((l) => l.name) - .filter(Boolean) - .join(", ") - : ""; - const labelStr = labels ? ` _[${labels}]_` : ""; - const repoPrefix = repoFull ? `${repoFull} ` : ""; - return `- ${repoPrefix}[#${it.number} ${it.title}](${it.url})${labelStr}`; - }) - .join("\n"); + type AssignedIssue = { + number: unknown; + title: unknown; + url: unknown; + repository: unknown; + state: unknown; + updatedAt: unknown; + labels: unknown; + }; + const cols: ColumnSpec[] = [ + { + id: "repo", + header: "Repo", + value: (i) => { + const repo = i.repository as + | Record + | undefined; + return ( + (repo?.nameWithOwner as string | undefined) ?? + (repo?.name as string | undefined) ?? + "" + ); + }, + }, + { + id: "number", + header: "#", + type: "link", + align: "right", + value: (i) => ({ + text: String(i.number ?? ""), + href: String(i.url ?? ""), + }), + }, + { + id: "title", + header: "Title", + value: (i) => String(i.title ?? ""), + }, + { + id: "labels", + header: "Labels", + value: (i) => + Array.isArray(i.labels) + ? (i.labels as Record[]) + .map((l) => String(l.name ?? "")) + .filter(Boolean) + .join(", ") + : "", + }, + { + id: "updated", + header: "Updated", + type: "date", + value: (i) => { + const d = i.updatedAt + ? new Date(String(i.updatedAt)) + : null; + return d ? d.toLocaleDateString() : ""; + }, + }, + ]; + return makeStructuredTable( + items as unknown as AssignedIssue[], + cols, + headingText, + { sortable: true }, + ); } // The current user's own pull requests across repos (gh search prs --author @me) if (actionName === "myPullRequests" && "number" in items[0]) { - return items + const markdownList = items .map((pr) => { const repo = pr.repository as | Record @@ -1127,25 +1519,208 @@ function formatListResults( return `- ${repoPrefix}[#${pr.number} ${pr.title}](${pr.url}) — ${status}`; }) .join("\n"); + return createActionResultFromMarkdownDisplay( + `**${headingText}**\n\n${markdownList}`, + ); } // Search repos if (actionName === "searchRepos" && "fullName" in items[0]) { - return items - .map((r) => { - const stars = - r.stargazersCount || r.stargazerCount - ? ` ⭐ ${r.stargazersCount ?? r.stargazerCount}` - : ""; - const desc = r.description ? ` — ${r.description}` : ""; - return `- [${r.fullName}](${r.url})${stars}${desc}`; - }) - .join("\n"); + type RepoRecord = { + fullName: unknown; + description: unknown; + stargazersCount: unknown; + url: unknown; + updatedAt: unknown; + }; + const cols: ColumnSpec[] = [ + { + id: "name", + header: "Repository", + type: "link", + value: (r) => ({ + text: String(r.fullName ?? ""), + href: String(r.url ?? ""), + }), + }, + { + id: "stars", + header: "Stars", + type: "number", + align: "right", + value: (r) => String(r.stargazersCount ?? 0), + }, + { + id: "description", + header: "Description", + value: (r) => String(r.description ?? ""), + }, + { + id: "updated", + header: "Updated", + type: "date", + value: (r) => { + const d = r.updatedAt + ? new Date(String(r.updatedAt)) + : null; + return d ? d.toLocaleDateString() : ""; + }, + }, + ]; + return makeStructuredTable( + items as unknown as RepoRecord[], + cols, + headingText, + { sortable: true }, + ); } return undefined; } +// Build a structured result for `gh repo view` (repoView action). +// +// Exported for unit tests. +export function buildStructuredRepoView( + data: Record, + label: string, +): ActionResultSuccess { + const pairs: KeyValuePair[] = []; + const push = (lbl: string, val: TableCell) => { + const text = + typeof val === "string" + ? val + : typeof val === "number" + ? String(val) + : val.text; + if (text) pairs.push({ label: lbl, value: val }); + }; + + const repoName = data.owner + ? `${formatValue(data.owner)}/${String(data.name ?? "")}` + : String(data.name ?? ""); + push("Repository", { text: repoName, href: String(data.url ?? "") }); + if (data.description) push("Description", String(data.description)); + push("Visibility", String(data.visibility ?? "")); + if (data.primaryLanguage) + push("Language", formatValue(data.primaryLanguage)); + push("Stars", String(data.stargazerCount ?? 0)); + push("Forks", String(data.forkCount ?? 0)); + if (data.watchers) push("Watchers", formatValue(data.watchers)); + if (data.defaultBranchRef) + push("Default branch", formatValue(data.defaultBranchRef)); + if (data.createdAt) { + const d = new Date(String(data.createdAt)); + push("Created", d.toLocaleDateString()); + } + if (data.updatedAt) { + const d = new Date(String(data.updatedAt)); + push("Updated", d.toLocaleDateString()); + } + + const blocks: StructuredBlock[] = [ + { kind: "heading", level: 3, text: label }, + { kind: "keyValue", pairs }, + ]; + return { + historyText: label, + entities: [], + displayContent: createStructuredContent(blocks, { rawData: data }), + }; +} + +// Build a structured result for Dependabot alerts (security_advisory shape). +// +// Exported for unit tests. +export function buildStructuredDependabotResult( + arr: Record[], +): ActionResultSuccess { + const headerText = `🔒 ${arr.length} Dependabot alert${arr.length === 1 ? "" : "s"}`; + type AlertRecord = Record; + const cols: ColumnSpec[] = [ + { + id: "severity", + header: "Severity", + type: "badge", + value: (a): TableCell => { + const adv = a.security_advisory as + | Record + | undefined; + const sev = String(adv?.severity ?? "unknown").toUpperCase(); + return { text: sev, badge: severityBadge(sev) }; + }, + }, + { + id: "package", + header: "Package", + type: "code", + value: (a): TableCell => { + const dep = a.dependency as Record | undefined; + const pkg = dep?.package as Record | undefined; + return String(pkg?.name ?? "unknown"); + }, + }, + { + id: "advisory", + header: "Advisory", + type: "link", + value: (a): TableCell => { + const adv = a.security_advisory as + | Record + | undefined; + return { + text: String(adv?.summary ?? ""), + href: String(a.html_url ?? ""), + }; + }, + }, + ]; + return makeStructuredTable(arr, cols, headerText, { sortable: true }); +} + +// Build a structured result for contributor lists (login + contributions shape). +// +// Exported for unit tests. +export function buildStructuredContributorsResult( + arr: Record[], +): ActionResultSuccess { + const headerText = + arr.length === 1 ? "Top contributor" : `Top ${arr.length} contributors`; + const columns = [ + { + id: "rank", + header: "#", + type: "number" as const, + align: "right" as const, + }, + { id: "login", header: "Contributor", type: "link" as const }, + { + id: "contributions", + header: "Contributions", + type: "number" as const, + align: "right" as const, + }, + ]; + const rows: TableCell[][] = arr.map((u, i) => [ + String(i + 1), + { + text: String(u.login ?? ""), + href: `https://github.com/${String(u.login ?? "")}`, + }, + String(u.contributions ?? "0"), + ]); + const table: TableBlock = createTable(columns, rows, { sortable: true }); + const blocks: StructuredBlock[] = [ + { kind: "heading", level: 3, text: headerText }, + table, + ]; + return { + historyText: headerText, + entities: [], + displayContent: createStructuredContent(blocks, { rawData: arr }), + }; +} + // Friendly success messages for mutation actions that return no output function getMutationSuccessMessage( action: TypeAgentAction, @@ -1407,41 +1982,44 @@ async function executeAction( // If a specific field was requested, return a focused answer if (p.field) { - const answer = distillRepoField( + const result = buildStructuredField( String(p.field), data, String(p.repo ?? data.name ?? ""), ); - if (answer) { - return createActionResultFromMarkdownDisplay(answer); + if (result) { + return result; } } // Array results: issues, PRs, search repos if (Array.isArray(data)) { - const rows = formatListResults(data, action.actionName); - if (rows) { - return createActionResultFromMarkdownDisplay( - `**${cmdLabel}** — ${data.length} result${data.length === 1 ? "" : "s"}\n\n${rows}`, - ); + const result = buildStructuredListResult( + data as Record[], + action.actionName, + cmdLabel, + ); + if (result) { + return result; } } // Single issue view — rich formatted output if (action.actionName === "issueView" && "number" in data) { - return createActionResultFromMarkdownDisplay( - formatIssueView(data), - ); + return buildStructuredIssueView(data); } // Single PR view — rich formatted output if (action.actionName === "prView" && "number" in data) { - return createActionResultFromMarkdownDisplay( - formatPrView(data), - ); + return buildStructuredPrView(data); + } + + // Repo view — structured key-value block + if (action.actionName === "repoView") { + return buildStructuredRepoView(data, cmdLabel); } - // Single object (e.g., repo view) + // Single object fallback const lines = Object.entries(data) .map(([k, v]) => `- **${k}**: ${formatValue(v)}`) .join("\n"); @@ -1472,60 +2050,12 @@ async function executeAction( // Dependabot alerts if (arr.length > 0 && "security_advisory" in arr[0]) { - const rows = arr - .map((a) => { - const adv = a.security_advisory as Record< - string, - unknown - >; - const sev = String( - adv.severity ?? "unknown", - ).toUpperCase(); - const pkg = a.dependency - ? (a.dependency as Record) - .package - ? ( - ( - a.dependency as Record< - string, - unknown - > - ).package as Record - ).name - : "unknown" - : "unknown"; - const sevEmoji = - sev === "CRITICAL" - ? "🔴" - : sev === "HIGH" - ? "🟠" - : sev === "MEDIUM" - ? "🟡" - : "🟢"; - return `- ${sevEmoji} **${sev}** — \`${pkg}\` — [${adv.summary}](${a.html_url})`; - }) - .join("\n"); - const header = `🔒 **${arr.length} Dependabot alert${arr.length === 1 ? "" : "s"}**`; - return createActionResultFromMarkdownDisplay( - `${header}\n\n${rows}`, - ); + return buildStructuredDependabotResult(arr); } // Contributors if (arr.length > 0 && "login" in arr[0]) { - const rows = arr - .map( - (u, i) => - `${i + 1}. [**${u.login}**](https://github.com/${u.login}) — ${u.contributions} contributions`, - ) - .join("\n"); - const header = - arr.length === 1 - ? "Top contributor" - : `Top ${arr.length} contributors`; - return createActionResultFromMarkdownDisplay( - `**${header}**\n\n${rows}`, - ); + return buildStructuredContributorsResult(arr); } } catch { // Fall through to raw output diff --git a/ts/packages/agents/github-cli/src/github-cliSchema.ts b/ts/packages/agents/github-cli/src/github-cliSchema.ts index 8f38b850bd..a9b304cafa 100644 --- a/ts/packages/agents/github-cli/src/github-cliSchema.ts +++ b/ts/packages/agents/github-cli/src/github-cliSchema.ts @@ -208,6 +208,7 @@ export type IssueReopenAction = { export type IssueListAction = { actionName: "issueList"; parameters: { + // owner/repo. Omitting this defaults to the current repository. repo?: string; state?: string; diff --git a/ts/packages/agents/github-cli/test/githubCliStructuredResults.spec.ts b/ts/packages/agents/github-cli/test/githubCliStructuredResults.spec.ts new file mode 100644 index 0000000000..c269c70f7f --- /dev/null +++ b/ts/packages/agents/github-cli/test/githubCliStructuredResults.spec.ts @@ -0,0 +1,604 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +/** + * Unit tests for the Phase-5 structured-content result builders in + * github-cliActionHandler. Each builder converts a raw `gh` JSON payload + * into an ActionResultSuccess with a StructuredContent displayContent that + * contains a heading + table (or keyValue) block. + * + * Tests run against compiled dist/ (jest-esm, same pattern as the rest of + * this package's tests). + */ + +import { + buildStructuredListResult, + buildStructuredRepoView, + buildStructuredDependabotResult, + buildStructuredContributorsResult, + buildStructuredPrView, + buildStructuredIssueView, + buildStructuredField, +} from "../src/github-cliActionHandler.js"; + +// --------------------------------------------------------------------------- +// Helpers +// --------------------------------------------------------------------------- + +function heading(result: ReturnType) { + const content = result?.displayContent as any; + return content?.blocks?.[0]; +} + +function table(result: ReturnType) { + const content = result?.displayContent as any; + return content?.blocks?.[1]; +} + +function kvBlock(result: ReturnType) { + const content = result?.displayContent as any; + return content?.blocks?.[1]; +} + +// --------------------------------------------------------------------------- +// buildStructuredListResult — prList +// --------------------------------------------------------------------------- + +describe("buildStructuredListResult — prList", () => { + const prs = [ + { + number: 42, + title: "Fix the bug", + state: "OPEN", + isDraft: false, + headRefName: "fix/the-bug", + url: "https://github.com/owner/repo/pull/42", + createdAt: "2026-01-15T10:00:00Z", + }, + { + number: 99, + title: "Draft feature", + state: "OPEN", + isDraft: true, + headRefName: "feat/draft", + url: "https://github.com/owner/repo/pull/99", + createdAt: "2026-02-01T08:30:00Z", + }, + ]; + + test("returns an ActionResultSuccess for prList", () => { + const result = buildStructuredListResult(prs, "prList", "prList"); + expect(result).toBeDefined(); + }); + + test("heading block has correct text with count", () => { + const result = buildStructuredListResult(prs, "prList", "pr list"); + expect(heading(result)).toMatchObject({ + kind: "heading", + level: 3, + text: "pr list — 2 results", + }); + }); + + test("table block has expected columns", () => { + const result = buildStructuredListResult(prs, "prList", "prList"); + const t = table(result); + expect(t.kind).toBe("table"); + expect(t.columns.map((c: any) => c.id)).toEqual([ + "number", + "title", + "state", + "branch", + "created", + ]); + }); + + test("open PR has info badge", () => { + const result = buildStructuredListResult(prs, "prList", "prList"); + const t = table(result); + const stateCell = t.rows[0][2]; // first row, state column + expect(stateCell).toMatchObject({ badge: "info" }); + }); + + test("draft PR has warning badge", () => { + const result = buildStructuredListResult(prs, "prList", "prList"); + const t = table(result); + const stateCell = t.rows[1][2]; // second row, state column + expect(stateCell).toMatchObject({ badge: "warning", text: "Draft" }); + }); + + test("number cell contains link", () => { + const result = buildStructuredListResult(prs, "prList", "prList"); + const t = table(result); + const numCell = t.rows[0][0]; + expect(numCell).toMatchObject({ + text: "42", + href: "https://github.com/owner/repo/pull/42", + }); + }); + + test("table is sortable", () => { + const result = buildStructuredListResult(prs, "prList", "prList"); + expect(table(result).sortable).toBe(true); + }); + + test("rawData is set on displayContent", () => { + const result = buildStructuredListResult(prs, "prList", "prList"); + expect((result?.displayContent as any)?.rawData).toBe(prs); + }); + + test("alternates include markdown and text", () => { + const result = buildStructuredListResult(prs, "prList", "prList"); + const content = result?.displayContent as any; + const types = content?.alternates?.map((a: any) => a.type); + expect(types).toContain("markdown"); + expect(types).toContain("text"); + }); + + test("markdown alternate contains heading and table headers", () => { + const result = buildStructuredListResult(prs, "prList", "prList"); + const content = result?.displayContent as any; + const mdAlt = content?.alternates?.find( + (a: any) => a.type === "markdown", + ); + expect(mdAlt?.content).toContain("prList — 2 results"); + expect(mdAlt?.content).toContain("| # |"); + }); +}); + +// --------------------------------------------------------------------------- +// buildStructuredListResult — issueList +// --------------------------------------------------------------------------- + +describe("buildStructuredListResult — issueList", () => { + const issues = [ + { + number: 7, + title: "Memory leak", + state: "OPEN", + url: "https://github.com/o/r/issues/7", + createdAt: "2026-03-01T12:00:00Z", + labels: [{ name: "bug" }, { name: "performance" }], + }, + ]; + + test("returns structured result for issueList", () => { + const result = buildStructuredListResult( + issues, + "issueList", + "issueList", + ); + expect(result).toBeDefined(); + expect(table(result).kind).toBe("table"); + }); + + test("labels cell joins label names", () => { + const result = buildStructuredListResult( + issues, + "issueList", + "issueList", + ); + const t = table(result); + const labelsColIdx = t.columns.findIndex((c: any) => c.id === "labels"); + const labelsCell = t.rows[0][labelsColIdx]; + expect(labelsCell).toContain("bug"); + expect(labelsCell).toContain("performance"); + }); + + test("open issue gets info badge", () => { + const result = buildStructuredListResult( + issues, + "issueList", + "issueList", + ); + const t = table(result); + const stateIdx = t.columns.findIndex((c: any) => c.id === "state"); + expect(t.rows[0][stateIdx]).toMatchObject({ badge: "info" }); + }); +}); + +// --------------------------------------------------------------------------- +// buildStructuredListResult — empty result +// --------------------------------------------------------------------------- + +describe("buildStructuredListResult — empty array", () => { + test("returns a result with heading and 'no results' text", () => { + const result = buildStructuredListResult([], "prList", "PR list"); + expect(result).toBeDefined(); + const content = result?.displayContent as any; + expect(content.blocks[0]).toMatchObject({ + kind: "heading", + text: "PR list — 0 results", + }); + expect(content.blocks[1]).toMatchObject({ + kind: "text", + text: "No results found.", + }); + }); +}); + +// --------------------------------------------------------------------------- +// buildStructuredListResult — unknown action returns undefined +// --------------------------------------------------------------------------- + +describe("buildStructuredListResult — unknown action", () => { + test("returns undefined for unrecognised actionName", () => { + const result = buildStructuredListResult( + [{ foo: "bar" }], + "unknownAction", + "label", + ); + expect(result).toBeUndefined(); + }); +}); + +// --------------------------------------------------------------------------- +// buildStructuredListResult — searchRepos +// --------------------------------------------------------------------------- + +describe("buildStructuredListResult — searchRepos", () => { + const repos = [ + { + fullName: "microsoft/TypeAgent", + description: "AI agent framework", + stargazersCount: 1200, + url: "https://github.com/microsoft/TypeAgent", + updatedAt: "2026-06-01T00:00:00Z", + }, + ]; + + test("returns structured result for searchRepos", () => { + const result = buildStructuredListResult( + repos, + "searchRepos", + "search", + ); + expect(result).toBeDefined(); + }); + + test("name cell links to repo url", () => { + const result = buildStructuredListResult( + repos, + "searchRepos", + "search", + ); + const t = table(result); + const nameIdx = t.columns.findIndex((c: any) => c.id === "name"); + expect(t.rows[0][nameIdx]).toMatchObject({ + text: "microsoft/TypeAgent", + href: "https://github.com/microsoft/TypeAgent", + }); + }); + + test("stars are formatted as number column", () => { + const result = buildStructuredListResult( + repos, + "searchRepos", + "search", + ); + const t = table(result); + const starsIdx = t.columns.findIndex((c: any) => c.id === "stars"); + expect(t.columns[starsIdx].type).toBe("number"); + expect(t.rows[0][starsIdx]).toBe("1200"); + }); + + test("zero stars renders as '0' not empty", () => { + const zeroStarRepo = [{ ...repos[0], stargazersCount: 0 }]; + const result = buildStructuredListResult( + zeroStarRepo, + "searchRepos", + "search", + ); + const t = table(result); + const starsIdx = t.columns.findIndex((c: any) => c.id === "stars"); + expect(t.rows[0][starsIdx]).toBe("0"); + }); +}); + +// --------------------------------------------------------------------------- +// buildStructuredRepoView +// --------------------------------------------------------------------------- + +describe("buildStructuredRepoView", () => { + const repoData = { + name: "TypeAgent", + owner: { login: "microsoft" }, + description: "Intelligent agents framework", + stargazerCount: 450, + forkCount: 30, + visibility: "public", + url: "https://github.com/microsoft/TypeAgent", + primaryLanguage: { name: "TypeScript" }, + watchers: { totalCount: 12 }, + defaultBranchRef: { name: "main" }, + createdAt: "2024-01-01T00:00:00Z", + updatedAt: "2026-07-01T00:00:00Z", + }; + + test("returns a defined result", () => { + const result = buildStructuredRepoView(repoData, "repo view"); + expect(result).toBeDefined(); + }); + + test("heading block has label", () => { + const result = buildStructuredRepoView(repoData, "TypeAgent repo"); + expect(heading(result as any)).toMatchObject({ + kind: "heading", + text: "TypeAgent repo", + }); + }); + + test("keyValue block has repo name as link", () => { + const result = buildStructuredRepoView(repoData, "label"); + const kv = kvBlock(result); + expect(kv.kind).toBe("keyValue"); + const repoPair = kv.pairs.find((p: any) => p.label === "Repository"); + expect(repoPair?.value).toMatchObject({ + text: "microsoft/TypeAgent", + href: "https://github.com/microsoft/TypeAgent", + }); + }); + + test("rawData is the original repoData object", () => { + const result = buildStructuredRepoView(repoData, "label"); + expect((result.displayContent as any).rawData).toBe(repoData); + }); + + test("alternates include markdown", () => { + const result = buildStructuredRepoView(repoData, "label"); + const content = result.displayContent as any; + const types = content?.alternates?.map((a: any) => a.type); + expect(types).toContain("markdown"); + }); +}); + +// --------------------------------------------------------------------------- +// buildStructuredDependabotResult +// --------------------------------------------------------------------------- + +describe("buildStructuredDependabotResult", () => { + const alerts = [ + { + security_advisory: { severity: "HIGH", summary: "ReDoS in foo" }, + dependency: { package: { name: "foo" } }, + html_url: "https://github.com/advisor/GHSA-test", + }, + { + security_advisory: { severity: "MEDIUM", summary: "SSRF in bar" }, + dependency: { package: { name: "bar" } }, + html_url: "https://github.com/advisor/GHSA-test2", + }, + ]; + + test("returns defined result", () => { + expect(buildStructuredDependabotResult(alerts)).toBeDefined(); + }); + + test("heading reflects alert count", () => { + const result = buildStructuredDependabotResult(alerts); + expect(heading(result as any).text).toContain("2 Dependabot alerts"); + }); + + test("severity column uses badge type", () => { + const result = buildStructuredDependabotResult(alerts); + const t = table(result as any); + const sevIdx = t.columns.findIndex((c: any) => c.id === "severity"); + expect(t.columns[sevIdx].type).toBe("badge"); + expect(t.rows[0][sevIdx]).toMatchObject({ badge: "error" }); // HIGH + expect(t.rows[1][sevIdx]).toMatchObject({ badge: "warning" }); // MEDIUM + }); + + test("advisory cell links to html_url", () => { + const result = buildStructuredDependabotResult(alerts); + const t = table(result as any); + const advIdx = t.columns.findIndex((c: any) => c.id === "advisory"); + expect(t.rows[0][advIdx]).toMatchObject({ + text: "ReDoS in foo", + href: "https://github.com/advisor/GHSA-test", + }); + }); +}); + +// --------------------------------------------------------------------------- +// buildStructuredContributorsResult +// --------------------------------------------------------------------------- + +describe("buildStructuredContributorsResult", () => { + const contributors = [ + { login: "alice", contributions: 500 }, + { login: "bob", contributions: 200 }, + ]; + + test("returns defined result", () => { + expect(buildStructuredContributorsResult(contributors)).toBeDefined(); + }); + + test("heading for multiple contributors says 'Top N contributors'", () => { + const result = buildStructuredContributorsResult(contributors); + expect(heading(result as any).text).toBe("Top 2 contributors"); + }); + + test("heading for single contributor", () => { + const result = buildStructuredContributorsResult([ + { login: "alice", contributions: 500 }, + ]); + expect(heading(result as any).text).toBe("Top contributor"); + }); + + test("rank column assigns 1-based index", () => { + const result = buildStructuredContributorsResult(contributors); + const t = table(result as any); + const rankIdx = t.columns.findIndex((c: any) => c.id === "rank"); + expect(t.rows[0][rankIdx]).toBe("1"); + expect(t.rows[1][rankIdx]).toBe("2"); + }); + + test("login cell links to github profile", () => { + const result = buildStructuredContributorsResult(contributors); + const t = table(result as any); + const loginIdx = t.columns.findIndex((c: any) => c.id === "login"); + expect(t.rows[0][loginIdx]).toMatchObject({ + text: "alice", + href: "https://github.com/alice", + }); + }); + + test("table is sortable", () => { + const result = buildStructuredContributorsResult(contributors); + expect(table(result as any).sortable).toBe(true); + }); +}); + +// --------------------------------------------------------------------------- +// buildStructuredPrView +// --------------------------------------------------------------------------- + +describe("buildStructuredPrView", () => { + const pr = { + number: 7, + title: "Add feature", + state: "OPEN", + isDraft: false, + author: { login: "alice" }, + headRefName: "feat/x", + baseRefName: "main", + additions: 10, + deletions: 2, + changedFiles: 3, + createdAt: "2026-01-01T00:00:00Z", + url: "https://github.com/owner/repo/pull/7", + body: "Some description", + }; + + test("heading shows number and title", () => { + const result = buildStructuredPrView(pr); + expect(heading(result as any)).toMatchObject({ + kind: "heading", + text: "#7 Add feature", + }); + }); + + test("state pair is a badge", () => { + const result = buildStructuredPrView(pr); + const kv = kvBlock(result); + const statePair = kv.pairs.find((p: any) => p.label === "State"); + expect(statePair?.value).toMatchObject({ badge: "info" }); + }); + + test("draft PR uses warning badge and Draft label", () => { + const result = buildStructuredPrView({ ...pr, isDraft: true }); + const kv = kvBlock(result); + const statePair = kv.pairs.find((p: any) => p.label === "State"); + expect(statePair?.value).toMatchObject({ + text: "Draft", + badge: "warning", + }); + }); + + test("body becomes a divider + text block", () => { + const result = buildStructuredPrView(pr); + const blocks = (result.displayContent as any).blocks; + expect(blocks.some((b: any) => b.kind === "divider")).toBe(true); + expect(blocks[blocks.length - 1]).toMatchObject({ + kind: "text", + text: "Some description", + }); + }); + + test("rawData is the original object", () => { + const result = buildStructuredPrView(pr); + expect((result.displayContent as any).rawData).toBe(pr); + }); +}); + +// --------------------------------------------------------------------------- +// buildStructuredIssueView +// --------------------------------------------------------------------------- + +describe("buildStructuredIssueView", () => { + const issue = { + number: 12, + title: "A bug", + state: "OPEN", + author: { login: "bob" }, + labels: [{ name: "bug" }, { name: "p1" }], + assignees: [{ login: "carol" }], + comments: [{}, {}], + createdAt: "2026-01-01T00:00:00Z", + url: "https://github.com/owner/repo/issues/12", + body: "Repro steps", + }; + + test("heading shows number and title", () => { + const result = buildStructuredIssueView(issue); + expect(heading(result as any).text).toBe("#12 A bug"); + }); + + test("state pair uses issue badge", () => { + const result = buildStructuredIssueView(issue); + const kv = kvBlock(result); + const statePair = kv.pairs.find((p: any) => p.label === "State"); + expect(statePair?.value).toMatchObject({ badge: "info" }); + }); + + test("labels joined and comment count numeric", () => { + const result = buildStructuredIssueView(issue); + const kv = kvBlock(result); + expect(kv.pairs.find((p: any) => p.label === "Labels")?.value).toBe( + "bug, p1", + ); + expect(kv.pairs.find((p: any) => p.label === "Comments")?.value).toBe( + 2, + ); + }); + + test("rawData is the original object", () => { + const result = buildStructuredIssueView(issue); + expect((result.displayContent as any).rawData).toBe(issue); + }); +}); + +// --------------------------------------------------------------------------- +// buildStructuredField +// --------------------------------------------------------------------------- + +describe("buildStructuredField", () => { + const repoData = { + name: "TypeAgent", + owner: { login: "microsoft" }, + stargazerCount: 450, + forkCount: 30, + primaryLanguage: { name: "TypeScript" }, + description: "Agents framework", + }; + + test("returns undefined for unknown field", () => { + expect( + buildStructuredField("nonsense", repoData, "microsoft/TypeAgent"), + ).toBeUndefined(); + }); + + test("stars field yields keyValue pair with numeric value", () => { + const result = buildStructuredField( + "stars", + repoData, + "microsoft/TypeAgent", + )!; + const kv = kvBlock(result); + const pair = kv.pairs[0]; + expect(pair).toMatchObject({ label: "Stars", value: 450 }); + }); + + test("rawData carries repo, field and value", () => { + const result = buildStructuredField( + "stars", + repoData, + "microsoft/TypeAgent", + )!; + expect((result.displayContent as any).rawData).toMatchObject({ + repo: "microsoft/TypeAgent", + field: "stars", + value: 450, + }); + }); +}); diff --git a/ts/packages/agents/ipconfig/README.AUTOGEN.md b/ts/packages/agents/ipconfig/README.AUTOGEN.md index e87ff77863..d06578c72d 100644 --- a/ts/packages/agents/ipconfig/README.AUTOGEN.md +++ b/ts/packages/agents/ipconfig/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # ipconfig-agent — AI-generated documentation @@ -12,18 +12,18 @@ ## Overview -The `ipconfig-agent` is a TypeAgent application agent that provides a conversational interface to the Windows `ipconfig` command-line tool. It allows users to perform network configuration tasks such as managing IP addresses, DNS settings, and DHCP configurations using natural language commands. This agent simplifies the process of interacting with `ipconfig` by abstracting its command-line syntax into user-friendly actions. +The `ipconfig-agent` is a TypeAgent application agent designed to provide a conversational interface to the Windows `ipconfig` command-line tool. It enables users to perform various network configuration tasks, such as managing IP addresses, DNS settings, and DHCP configurations, through natural language commands. By abstracting the complexities of the `ipconfig` command-line syntax, this agent simplifies network management for users. ## What it does -The `ipconfig-agent` supports a wide range of actions that can be grouped into the following categories: +The `ipconfig-agent` supports a comprehensive set of actions that can be grouped into the following categories: ### Help and Information Display -- **`displayHelpMessage`**: Provides the help message for the `ipconfig` command. -- **`displayFullConfigurationInformation`**: Displays detailed network configuration information, including IP addresses, DNS settings, and adapter details. -- **`displayDNSResolverCacheContents`**: Shows the current contents of the DNS resolver cache. -- **`displayDHCPClassIDs`** and **`displayIPv6DHCPClassIDs`**: Display the DHCP class IDs for IPv4 and IPv6 adapters, respectively. +- **`displayHelpMessage`**: Displays the help message for the `ipconfig` command, providing an overview of its capabilities. +- **`displayFullConfigurationInformation`**: Shows detailed network configuration information, including IP addresses, DNS settings, and adapter details. +- **`displayDNSResolverCacheContents`**: Displays the current contents of the DNS resolver cache. +- **`displayDHCPClassIDs`** and **`displayIPv6DHCPClassIDs`**: Show the DHCP class IDs for IPv4 and IPv6 adapters, respectively. ### IP Address Management @@ -32,11 +32,11 @@ The `ipconfig-agent` supports a wide range of actions that can be grouped into t ### DNS and DHCP Management -- **`purgeDNSResolverCache`**: Clears the DNS resolver cache. -- **`refreshDHCPLeasesAndReRegisterDNSNames`**: Refreshes all DHCP leases and re-registers DNS names. -- **`modifyDHCPClassID`** and **`modifyIPv6DHCPClassID`**: Modify the DHCP class ID for IPv4 and IPv6 adapters, respectively. +- **`purgeDNSResolverCache`**: Clears the DNS resolver cache to resolve potential DNS-related issues. +- **`refreshDHCPLeasesAndReRegisterDNSNames`**: Refreshes all DHCP leases and re-registers DNS names to ensure up-to-date network configurations. +- **`modifyDHCPClassID`** and **`modifyIPv6DHCPClassID`**: Modify the DHCP class ID for IPv4 and IPv6 adapters, respectively, allowing for advanced network configuration. -These actions enable users to manage their network settings effectively, whether for troubleshooting, updating configurations, or managing DNS and DHCP settings. +These actions enable users to perform a wide range of network management tasks, from troubleshooting connectivity issues to updating configurations and managing DNS and DHCP settings. ## Setup @@ -48,15 +48,15 @@ The `ipconfig-agent` requires minimal setup. Follow these steps to get started: pnpm install ``` -No additional environment variables, API keys, or external accounts are required. +No additional environment variables, API keys, or external accounts are required for this package. ## Key Files -The functionality of the `ipconfig-agent` is implemented across several key files: +The `ipconfig-agent` is implemented across several key files, each serving a specific purpose: - **[ipconfigActionHandler.ts](./src/ipconfigActionHandler.ts)**: - - Contains the core logic for handling actions. + - Implements the core logic for handling actions. - The `runCli` function executes the `ipconfig` command with the appropriate arguments, while the `buildArgs` function constructs the command-line arguments based on the action and its parameters. - **[ipconfigManifest.json](./src/ipconfigManifest.json)**: @@ -74,9 +74,11 @@ The functionality of the `ipconfig-agent` is implemented across several key file - **[tsconfig.json](./src/tsconfig.json)**: - Configures the TypeScript compiler for the project, including paths for source and output files. +These files collectively define the agent's behavior, from parsing user input to executing the corresponding `ipconfig` commands. + ## How to extend -To add new functionality to the `ipconfig-agent`, follow these steps: +To extend the `ipconfig-agent` with new functionality, follow these steps: 1. **Define a new action**: @@ -110,7 +112,7 @@ By following these steps, you can extend the `ipconfig-agent` to support additio ### Entry points - `./agent/manifest` → [./src/ipconfigManifest.json](./src/ipconfigManifest.json) -- `./agent/handlers` → `./dist/ipconfigActionHandler.js` _(not found on disk)_ +- `./agent/handlers` → [./dist/ipconfigActionHandler.js](./dist/ipconfigActionHandler.js) ### Dependencies @@ -159,6 +161,6 @@ _13 actions implemented by this agent, parsed deterministically from `./src/ipco --- -_Auto-generated against commit `44b34a9ac8794b6f90489ff7e55fe57283c34960` on `2026-07-13T09:04:14.089Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter ipconfig-agent docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter ipconfig-agent docs:verify-links` to spot-check._ diff --git a/ts/packages/agents/ipconfig/jest.config.cjs b/ts/packages/agents/ipconfig/jest.config.cjs new file mode 100644 index 0000000000..f475768a12 --- /dev/null +++ b/ts/packages/agents/ipconfig/jest.config.cjs @@ -0,0 +1,4 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +module.exports = require("../../../jest.config.js"); diff --git a/ts/packages/agents/ipconfig/package.json b/ts/packages/agents/ipconfig/package.json index 2383576f60..837d09f4a0 100644 --- a/ts/packages/agents/ipconfig/package.json +++ b/ts/packages/agents/ipconfig/package.json @@ -24,6 +24,9 @@ "asc": "asc -i ./src/ipconfigSchema.ts -o ./dist/ipconfigSchema.pas.json -t IpconfigActions", "build": "concurrently npm:tsc npm:asc npm:agc", "clean": "rimraf --glob dist *.tsbuildinfo *.done.build.log", + "jest-esm": "node --no-warnings --experimental-vm-modules ./node_modules/jest/bin/jest.js", + "test": "npm run test:local", + "test:local": "pnpm run jest-esm --testPathPattern=\".*[.]spec[.]js\"", "tsc": "tsc -b" }, "dependencies": { @@ -32,7 +35,9 @@ "devDependencies": { "@typeagent/action-grammar-compiler": "workspace:*", "@typeagent/action-schema-compiler": "workspace:*", + "@types/jest": "^29.5.7", "concurrently": "^9.1.2", + "jest": "^29.7.0", "rimraf": "^6.0.1", "typescript": "~5.4.5" }, diff --git a/ts/packages/agents/ipconfig/src/ipconfigActionHandler.ts b/ts/packages/agents/ipconfig/src/ipconfigActionHandler.ts index 61f91fd301..1656a0e9d4 100644 --- a/ts/packages/agents/ipconfig/src/ipconfigActionHandler.ts +++ b/ts/packages/agents/ipconfig/src/ipconfigActionHandler.ts @@ -6,9 +6,10 @@ import { execFile } from "child_process"; import { promisify } from "util"; import { ActionContext, AppAgent, TypeAgentAction } from "@typeagent/agent-sdk"; +import { StructuredBlock, KeyValuePair } from "@typeagent/agent-sdk"; import { createActionResultFromTextDisplay, - createActionResultFromMarkdownDisplay, + createStructuredResult, } from "@typeagent/agent-sdk/helpers/action"; import { IpconfigActions } from "./ipconfigSchema.js"; @@ -101,10 +102,10 @@ export function instantiate(): AppAgent { try { const args = buildArgs(action); const output = await runCli(...args); - const formatted = formatOutput(output, action.actionName); - return formatted.startsWith("#") || formatted.includes("**") - ? createActionResultFromMarkdownDisplay(formatted) - : createActionResultFromTextDisplay(formatted); + if (STRUCTURED_ACTIONS.has(action.actionName)) { + return buildStructuredOutput(output); + } + return createActionResultFromTextDisplay(output); } catch (e: unknown) { const msg = e instanceof Error ? e.message : String(e); return createActionResultFromTextDisplay(`Error: ${msg}`); @@ -121,38 +122,83 @@ const STRUCTURED_ACTIONS = new Set([ "displayIPv6DHCPClassIDs", ]); -function formatOutput(raw: string, actionName: string): string { - if (!STRUCTURED_ACTIONS.has(actionName)) { - return raw; - } - +// Parse `ipconfig` output into structured section blocks. Each section +// (unindented header line) becomes a heading + keyValue block; the dotted +// "Key . . . : Value" lines become key-value pairs. The SDK derives the +// markdown/text fallback for clients that can't render blocks. +// +// Exported for unit tests. +export function buildStructuredOutput(raw: string) { const lines = raw.split(/\r?\n/); - const out: string[] = []; + + type Section = { heading?: string; pairs: KeyValuePair[]; loose: string[] }; + const sections: Section[] = []; + let current: Section = { pairs: [], loose: [] }; + + const pushCurrent = () => { + if (current.heading || current.pairs.length || current.loose.length) { + sections.push(current); + } + }; for (const line of lines) { if (line.trim() === "") { - out.push(""); continue; } - // Section header: no leading whitespace + // Section header: no leading whitespace, ends with ":" if (!/^\s/.test(line)) { - const header = line.replace(/:$/, "").trim(); - out.push(`\n## ${header}`); + pushCurrent(); + current = { + heading: line.replace(/:$/, "").trim(), + pairs: [], + loose: [], + }; continue; } // Key-value pair: " Key . . . . . : Value" - const kv = line.match(/^\s+(.*?)\s*\.[\s.]*:\s*(.*)/); + // Match on the leading-whitespace-trimmed line with disjoint + // sub-expressions (key excludes '.'/':' and the dotted separator + // starts with a literal '.') to avoid polynomial backtracking. + const kv = line.trimStart().match(/^([^.:]*)\.[.\s]*:\s*(.*)/); if (kv) { const key = kv[1].trimEnd(); const value = kv[2].trim(); - out.push(`- **${key}:** ${value || "—"}`); + current.pairs.push({ label: key, value: value || "—" }); continue; } - out.push(line.trim()); + current.loose.push(line.trim()); + } + pushCurrent(); + + const blocks: StructuredBlock[] = []; + const rawData: Record> & { + _lines?: string[]; + } = {}; + + for (const section of sections) { + if (section.heading) { + blocks.push({ kind: "heading", level: 2, text: section.heading }); + } + if (section.pairs.length > 0) { + blocks.push({ kind: "keyValue", pairs: section.pairs }); + const bucket: Record = {}; + for (const p of section.pairs) { + bucket[p.label] = String(p.value); + } + rawData[section.heading ?? "General"] = bucket; + } + for (const loose of section.loose) { + blocks.push({ kind: "text", text: loose, format: "text" }); + } + } + + if (blocks.length === 0) { + // Nothing parsed into structure — fall back to the raw text. + return createActionResultFromTextDisplay(raw); } - return out.join("\n").trim(); + return createStructuredResult(blocks, { rawData }); } diff --git a/ts/packages/agents/ipconfig/test/ipconfigStructured.spec.ts b/ts/packages/agents/ipconfig/test/ipconfigStructured.spec.ts new file mode 100644 index 0000000000..ff623e6cc8 --- /dev/null +++ b/ts/packages/agents/ipconfig/test/ipconfigStructured.spec.ts @@ -0,0 +1,84 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +/** + * Unit tests for buildStructuredOutput in ipconfigActionHandler — it parses + * raw `ipconfig` text into a StructuredContent document of per-section + * heading + keyValue blocks with a rawData payload keyed by section. + */ + +import { buildStructuredOutput } from "../src/ipconfigActionHandler.js"; + +const SAMPLE = [ + "Windows IP Configuration", + "", + "Ethernet adapter Ethernet:", + "", + " Connection-specific DNS Suffix . : example.com", + " IPv4 Address. . . . . . . . . . . : 192.168.1.10", + " Subnet Mask . . . . . . . . . . . : 255.255.255.0", + " Default Gateway . . . . . . . . . : 192.168.1.1", + "", + "Wireless LAN adapter Wi-Fi:", + "", + " Media State . . . . . . . . . . . : Media disconnected", +].join("\r\n"); + +function content(raw: string) { + return buildStructuredOutput(raw).displayContent as any; +} + +describe("buildStructuredOutput", () => { + test("produces a structured displayContent", () => { + expect(content(SAMPLE).type).toBe("structured"); + }); + + test("emits a heading block per section", () => { + const headings = content(SAMPLE) + .blocks.filter((b: any) => b.kind === "heading") + .map((b: any) => b.text); + expect(headings).toEqual( + expect.arrayContaining([ + "Ethernet adapter Ethernet", + "Wireless LAN adapter Wi-Fi", + ]), + ); + }); + + test("parses dotted key/value lines into keyValue pairs", () => { + const kv = content(SAMPLE).blocks.find( + (b: any) => b.kind === "keyValue", + ); + const ip = kv.pairs.find((p: any) => p.label === "IPv4 Address"); + expect(ip.value).toBe("192.168.1.10"); + }); + + test("rawData is keyed by section heading", () => { + const raw = content(SAMPLE).rawData; + expect(raw["Ethernet adapter Ethernet"]["Subnet Mask"]).toBe( + "255.255.255.0", + ); + }); + + test("empty values render as an em dash", () => { + const raw = "Adapter X:\r\n Empty Field . . . . . . . . . . . :"; + const kv = content(raw).blocks.find((b: any) => b.kind === "keyValue"); + expect(kv.pairs[0].value).toBe("—"); + }); + + test("falls back to text when nothing parses", () => { + // Only blank lines produce no blocks → plain text display. + const result = buildStructuredOutput("\r\n \r\n"); + expect((result.displayContent as any).type).not.toBe("structured"); + }); + + test("a bare header line becomes a heading block", () => { + const result = buildStructuredOutput("Some Section:"); + const c = result.displayContent as any; + expect(c.type).toBe("structured"); + expect(c.blocks[0]).toMatchObject({ + kind: "heading", + text: "Some Section", + }); + }); +}); diff --git a/ts/packages/agents/ipconfig/test/tsconfig.json b/ts/packages/agents/ipconfig/test/tsconfig.json new file mode 100644 index 0000000000..895a6f0d21 --- /dev/null +++ b/ts/packages/agents/ipconfig/test/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "composite": true, + "rootDir": ".", + "outDir": "../dist/test", + "types": ["node", "jest"] + }, + "include": ["./**/*"], + "ts-node": { + "esm": true + }, + "references": [{ "path": "../src" }] +} diff --git a/ts/packages/agents/ipconfig/tsconfig.json b/ts/packages/agents/ipconfig/tsconfig.json index 1e14d73b9f..0fa9d4ddc6 100644 --- a/ts/packages/agents/ipconfig/tsconfig.json +++ b/ts/packages/agents/ipconfig/tsconfig.json @@ -7,6 +7,9 @@ "references": [ { "path": "./src" + }, + { + "path": "./test" } ], "ts-node": { diff --git a/ts/packages/agents/list/README.AUTOGEN.md b/ts/packages/agents/list/README.AUTOGEN.md index 439f836dbc..aaa38addf3 100644 --- a/ts/packages/agents/list/README.AUTOGEN.md +++ b/ts/packages/agents/list/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # list-agent — AI-generated documentation @@ -16,14 +16,15 @@ The `list-agent` package is a TypeAgent application agent designed to manage lis ## What it does -The `list-agent` provides six key actions to manage lists effectively: +The `list-agent` supports a variety of actions to manage lists, enabling users to create, modify, and retrieve lists and their contents. The following actions are implemented: -- **`addItems`**: Adds one or more items to a specified list. If the list does not exist, it is created. This action requires the `items` (array of strings) and `listName` (string) parameters. -- **`removeItems`**: Removes one or more items from a specified list. This action requires the `items` (array of strings) and `listName` (string) parameters. -- **`createList`**: Creates a new list with the given name. This action requires the `listName` (string) parameter. -- **`getList`**: Retrieves the contents of a specified list. This action is useful for queries like "What's on my grocery list?" or "What are the contents of my to-do list?" It requires the `listName` (string) parameter. -- **`clearList`**: Clears all items from a specified list. This action requires the `listName` (string) parameter. -- **`startEditList`**: Initiates the editing of a specified list. This action requires the `listName` (string) parameter. +- **`addItems`**: Adds one or more items to a specified list. If the list does not exist, it is created. Parameters: `items` (array of strings) and `listName` (string). +- **`removeItems`**: Removes one or more items from a specified list. Parameters: `items` (array of strings) and `listName` (string). +- **`createList`**: Creates a new list with the given name. Parameter: `listName` (string). +- **`getList`**: Retrieves the contents of a specified list. Useful for queries like "What's on my grocery list?" or "What are the contents of my to-do list?" Parameter: `listName` (string). +- **`clearList`**: Clears all items from a specified list. Parameter: `listName` (string). +- **`listLists`**: Lists all existing lists. Useful for queries like "What lists do I have?" or "Show me my lists." +- **`startEditList`**: Initiates the editing of a specified list. Parameter: `listName` (string). These actions are defined in the [listSchema.ts](./src/listSchema.ts) file and implemented in the [listActionHandler.ts](./src/listActionHandler.ts) file. The agent uses schema definitions and grammar rules to interpret user input and map it to the appropriate actions. @@ -35,7 +36,7 @@ The `list-agent` package does not require any special setup beyond installing it pnpm install ``` -For further details, refer to the hand-written README. +For additional details, refer to the hand-written README. ## Key Files @@ -82,7 +83,7 @@ By following these steps, you can customize the `list-agent` package to support ### Entry points - `./agent/manifest` → [./src/listManifest.json](./src/listManifest.json) -- `./agent/handlers` → `./dist/listActionHandler.js` _(not found on disk)_ +- `./agent/handlers` → [./dist/listActionHandler.js](./dist/listActionHandler.js) ### Dependencies @@ -111,7 +112,7 @@ External: _None at runtime._ ### Actions -_6 actions implemented by this agent, parsed deterministically from `./src/listSchema.ts`. Sample utterances and parameter shapes are illustrative; consult the schema for the full signature._ +_7 actions implemented by this agent, parsed deterministically from `./src/listSchema.ts`. Sample utterances and parameter shapes are illustrative; consult the schema for the full signature._ | User says | Action | | --------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | @@ -120,10 +121,11 @@ _6 actions implemented by this agent, parsed deterministically from `./src/listS | _(no sample)_ | `createList` → `{ "listName": "…" }` | | _use this action to show the user what's on the list, for example, "What's on my grocery list?" or "what are the contents of my to do list?"_ | `getList` → `{ "listName": "…" }` | | _(no sample)_ | `clearList` → `{ "listName": "…" }` | +| _use this action to show the user which lists exist, for example, "what lists are there?", "show me my lists", "what lists do I have?"_ | `listLists` | | _(no sample)_ | `startEditList` → `{ "listName": "…" }` | --- -_Auto-generated against commit `44b34a9ac8794b6f90489ff7e55fe57283c34960` on `2026-07-13T09:04:14.089Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter list-agent docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter list-agent docs:verify-links` to spot-check._ diff --git a/ts/packages/agents/list/jest.config.cjs b/ts/packages/agents/list/jest.config.cjs new file mode 100644 index 0000000000..f475768a12 --- /dev/null +++ b/ts/packages/agents/list/jest.config.cjs @@ -0,0 +1,4 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +module.exports = require("../../../jest.config.js"); diff --git a/ts/packages/agents/list/package.json b/ts/packages/agents/list/package.json index 67cba595e9..1d087fada4 100644 --- a/ts/packages/agents/list/package.json +++ b/ts/packages/agents/list/package.json @@ -24,8 +24,11 @@ "asc": "asc -i ./src/listSchema.ts -o ./dist/listSchema.pas.json -t ListAction -a ListActivity", "build": "concurrently npm:tsc npm:asc npm:agc", "clean": "rimraf --glob dist *.tsbuildinfo *.done.build.log", + "jest-esm": "node --no-warnings --experimental-vm-modules ./node_modules/jest/bin/jest.js", "prettier": "prettier --check . --ignore-path ../../../.prettierignore", "prettier:fix": "prettier --write . --ignore-path ../../../.prettierignore", + "test": "npm run test:local", + "test:local": "pnpm run jest-esm --testPathPattern=\".*[.]spec[.]js\"", "tsc": "tsc -b" }, "dependencies": { @@ -34,7 +37,9 @@ "devDependencies": { "@typeagent/action-grammar-compiler": "workspace:*", "@typeagent/action-schema-compiler": "workspace:*", + "@types/jest": "^29.5.7", "concurrently": "^9.1.2", + "jest": "^29.7.0", "prettier": "^3.5.3", "rimraf": "^6.0.1", "typescript": "~5.4.5" diff --git a/ts/packages/agents/list/src/listActionHandler.ts b/ts/packages/agents/list/src/listActionHandler.ts index 028e73b6cf..9d3718fabd 100644 --- a/ts/packages/agents/list/src/listActionHandler.ts +++ b/ts/packages/agents/list/src/listActionHandler.ts @@ -11,8 +11,7 @@ import { } from "@typeagent/agent-sdk"; import { createActionResultFromTextDisplay, - createActionResultFromMarkdownDisplay, - createActionResult, + createStructuredResult, } from "@typeagent/agent-sdk/helpers/action"; import { ListAction, ListActivity } from "./listSchema.js"; @@ -185,6 +184,10 @@ class MemoryListCollection { return this.lists.get(name); } + getListNames(): string[] { + return Array.from(this.lists.keys()); + } + serialize(): string { const lists = Array.from(this.lists.values()).map((memList) => { return { @@ -274,20 +277,52 @@ function getListDisplay( suffix?: string, ) { const list = getList(listContext, listName); - if (list.itemsSet.size === 0) { - return createActionResult( - `List '${listName}' is empty.${suffix ? `\n${suffix}` : ""}`, - undefined, - getEntities(listName), + return buildListResult(listName, Array.from(list.itemsSet), suffix); +} + +// Build the structured display for a list: a heading + list block (or an +// empty-state text block) plus a machine-readable rawData payload. Pure — +// exported for unit tests. +export function buildListResult( + listName: string, + items: string[], + suffix?: string, +) { + if (items.length === 0) { + return createStructuredResult( + [ + { kind: "heading", level: 3, text: `List '${listName}'` }, + { kind: "text", text: "This list is empty." }, + ...(suffix ? [{ kind: "text" as const, text: suffix }] : []), + ], + { + entities: getEntities(listName), + rawData: { name: listName, items: [] }, + }, ); } - const plainList = Array.from(list.itemsSet); + const plainList = items; - // set displayText to markdown list of the items - return createActionResultFromMarkdownDisplay( - `List '${listName}' has items:\n\n${plainList.map((item) => `- ${item}`).join("\n")}${suffix ? `\n\n${suffix}` : ""}`, - undefined, - getEntities(listName, plainList), + // Render the list as a structured heading + list block. The SDK derives + // the markdown/text fallback for clients that can't render blocks. + const count = plainList.length; + return createStructuredResult( + [ + { + kind: "heading", + level: 3, + text: `List '${listName}' — ${count} item${count === 1 ? "" : "s"}`, + }, + { + kind: "list", + items: plainList.map((item) => ({ text: item })), + }, + ...(suffix ? [{ kind: "text" as const, text: suffix }] : []), + ], + { + entities: getEntities(listName, plainList), + rawData: { name: listName, items: plainList }, + }, ); } async function handleListAction( @@ -362,6 +397,41 @@ async function handleListAction( result = getListDisplay(listContext, action.parameters.listName); break; } + case "listLists": { + const store = getStore(listContext); + const names = store.getListNames(); + if (names.length === 0) { + result = createStructuredResult( + [ + { kind: "heading", level: 3, text: "Lists" }, + { kind: "text", text: "There are no lists yet." }, + ], + { entities: [] }, + ); + } else { + result = createStructuredResult( + [ + { + kind: "heading", + level: 3, + text: `Lists — ${names.length} list${names.length === 1 ? "" : "s"}`, + }, + { + kind: "list", + items: names.map((name) => ({ text: name })), + }, + ], + { + entities: names.map((name) => ({ + name, + type: ["list"], + })), + rawData: { lists: names }, + }, + ); + } + break; + } case "clearList": { const store = getStore(listContext); const clearListAction = action; diff --git a/ts/packages/agents/list/src/listSchema.agr b/ts/packages/agents/list/src/listSchema.agr index bbd8719f68..e5ca8ffdbe 100644 --- a/ts/packages/agents/list/src/listSchema.agr +++ b/ts/packages/agents/list/src/listSchema.agr @@ -145,10 +145,23 @@ } }; +// listLists - show which lists exist +// The literal word "lists" anchors these rules so they beat wildcard-heavy +// patterns and the system.conversation listConversation rule. + = (can you)? (list | show | display) (me)? (all | my | the)? lists -> { + actionName: "listLists", + parameters: {} +} + | (what | which) lists (do | are)? (i | we | there)? (have)? -> { + actionName: "listLists", + parameters: {} +}; + import { ListAction } from "./listSchema.ts"; : ListAction = | | | - | ; + | + | ; diff --git a/ts/packages/agents/list/src/listSchema.keywords.json b/ts/packages/agents/list/src/listSchema.keywords.json index 872c16dbe6..eda4085b26 100644 --- a/ts/packages/agents/list/src/listSchema.keywords.json +++ b/ts/packages/agents/list/src/listSchema.keywords.json @@ -150,6 +150,19 @@ "bulletin", "manifest", "summary" + ], + "listLists": [ + "list", + "lists", + "collection", + "catalog", + "inventory", + "directory", + "index", + "roster", + "registry", + "overview", + "all" ] } } diff --git a/ts/packages/agents/list/src/listSchema.ts b/ts/packages/agents/list/src/listSchema.ts index 243e2a1e84..5c989c3986 100644 --- a/ts/packages/agents/list/src/listSchema.ts +++ b/ts/packages/agents/list/src/listSchema.ts @@ -6,7 +6,8 @@ export type ListAction = | RemoveItemsAction | CreateListAction | GetListAction - | ClearListAction; + | ClearListAction + | ListListsAction; export type ListActivity = StartEditList; @@ -54,6 +55,13 @@ export type ClearListAction = { }; }; +// use this action to show the user which lists exist, for example, +// "what lists are there?", "show me my lists", "what lists do I have?" +export type ListListsAction = { + actionName: "listLists"; + parameters: {}; +}; + export type StartEditList = { actionName: "startEditList"; parameters: { diff --git a/ts/packages/agents/list/test/listStructured.spec.ts b/ts/packages/agents/list/test/listStructured.spec.ts new file mode 100644 index 0000000000..1a32689000 --- /dev/null +++ b/ts/packages/agents/list/test/listStructured.spec.ts @@ -0,0 +1,65 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +/** + * Unit tests for buildListResult in listActionHandler — it renders a named + * list as a StructuredContent document (heading + list block, or an + * empty-state text block) with a rawData payload. + */ + +import { buildListResult } from "../src/listActionHandler.js"; + +function blocks(result: ReturnType) { + return (result.displayContent as any).blocks; +} + +describe("buildListResult", () => { + test("non-empty list renders heading + list block", () => { + const result = buildListResult("shopping", ["milk", "eggs", "bread"]); + expect(blocks(result)[0]).toMatchObject({ + kind: "heading", + text: "List 'shopping' — 3 items", + }); + const list = blocks(result).find((b: any) => b.kind === "list"); + expect(list.items.map((i: any) => i.text)).toEqual([ + "milk", + "eggs", + "bread", + ]); + }); + + test("singular 'item' for a one-element list", () => { + const result = buildListResult("todo", ["call mom"]); + expect(blocks(result)[0].text).toBe("List 'todo' — 1 item"); + }); + + test("empty list renders an empty-state text block, no list block", () => { + const result = buildListResult("empty", []); + expect(blocks(result).some((b: any) => b.kind === "list")).toBe(false); + expect(blocks(result)[1]).toMatchObject({ + kind: "text", + text: "This list is empty.", + }); + }); + + test("suffix is appended as a trailing text block", () => { + const result = buildListResult("shopping", ["milk"], "Anything else?"); + const last = blocks(result)[blocks(result).length - 1]; + expect(last).toMatchObject({ kind: "text", text: "Anything else?" }); + }); + + test("rawData carries the list name and items", () => { + const items = ["milk", "eggs"]; + const raw = (buildListResult("shopping", items).displayContent as any) + .rawData; + expect(raw).toMatchObject({ name: "shopping", items }); + }); + + test("entities include the list and each item", () => { + const result = buildListResult("shopping", ["milk", "eggs"]); + const names = result.entities.map((e) => e.name); + expect(names).toEqual( + expect.arrayContaining(["shopping", "milk", "eggs"]), + ); + }); +}); diff --git a/ts/packages/agents/list/test/tsconfig.json b/ts/packages/agents/list/test/tsconfig.json new file mode 100644 index 0000000000..895a6f0d21 --- /dev/null +++ b/ts/packages/agents/list/test/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "composite": true, + "rootDir": ".", + "outDir": "../dist/test", + "types": ["node", "jest"] + }, + "include": ["./**/*"], + "ts-node": { + "esm": true + }, + "references": [{ "path": "../src" }] +} diff --git a/ts/packages/agents/list/tsconfig.json b/ts/packages/agents/list/tsconfig.json index acb9cb4a91..94dfc60bb1 100644 --- a/ts/packages/agents/list/tsconfig.json +++ b/ts/packages/agents/list/tsconfig.json @@ -4,7 +4,7 @@ "composite": true }, "include": [], - "references": [{ "path": "./src" }], + "references": [{ "path": "./src" }, { "path": "./test" }], "ts-node": { "esm": true } diff --git a/ts/packages/agents/onboarding/README.AUTOGEN.md b/ts/packages/agents/onboarding/README.AUTOGEN.md index 3f70b8a7bf..5684c3cb97 100644 --- a/ts/packages/agents/onboarding/README.AUTOGEN.md +++ b/ts/packages/agents/onboarding/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # onboarding-agent — AI-generated documentation @@ -12,13 +12,13 @@ ## Overview -The `onboarding-agent` is a TypeAgent application agent that automates the process of integrating new applications and APIs into the TypeAgent ecosystem. It organizes the onboarding workflow into seven distinct phases, each managed by a sub-agent. This agent is particularly effective when used with AI orchestrators like Claude Code or GitHub Copilot, which can drive the onboarding process via TypeAgent's MCP interface. +The `onboarding-agent` is a TypeAgent application agent designed to automate the process of integrating new applications and APIs into the TypeAgent ecosystem. It organizes the onboarding workflow into seven distinct phases, each managed by a sub-agent. This agent is particularly effective when used with AI orchestrators like Claude Code or GitHub Copilot, which can drive the onboarding process via TypeAgent's MCP interface. ## What it does The `onboarding-agent` provides a structured, multi-phase approach to integrating new applications or APIs into the TypeAgent ecosystem. It supports the following actions: -- **`startOnboarding`**: Begins the onboarding process for a new integration by specifying the integration name and optional details such as a description or API type. +- **`startOnboarding`**: Initiates the onboarding process for a new integration by specifying the integration name and optional details such as a description or API type. - **`resumeOnboarding`**: Resumes an in-progress onboarding process, optionally starting from a specific phase such as discovery, schema generation, or testing. - **`getOnboardingStatus`**: Retrieves the current status of an ongoing integration, including the current phase and progress. - **`listIntegrations`**: Lists all integrations, optionally filtered by their status (e.g., in-progress or complete). @@ -100,8 +100,8 @@ By following these steps, you can enhance the `onboarding-agent` to support addi ### Entry points - `./agent/manifest` → [./src/onboardingManifest.json](./src/onboardingManifest.json) -- `./agent/handlers` → `./dist/onboardingActionHandler.js` _(not found on disk)_ -- `./uiCapture` → `./dist/uiCapture/index.js` _(not found on disk)_ +- `./agent/handlers` → [./dist/onboardingActionHandler.js](./dist/onboardingActionHandler.js) +- `./uiCapture` → [./dist/uiCapture/index.js](./dist/uiCapture/index.js) ### Dependencies @@ -164,6 +164,6 @@ _4 actions implemented by this agent, parsed deterministically from `./src/onboa --- -_Auto-generated against commit `44b34a9ac8794b6f90489ff7e55fe57283c34960` on `2026-07-13T09:04:14.089Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter onboarding-agent docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter onboarding-agent docs:verify-links` to spot-check._ diff --git a/ts/packages/agents/onboarding/src/onboardingActionHandler.ts b/ts/packages/agents/onboarding/src/onboardingActionHandler.ts index c58c50ccc7..94e7404c20 100644 --- a/ts/packages/agents/onboarding/src/onboardingActionHandler.ts +++ b/ts/packages/agents/onboarding/src/onboardingActionHandler.ts @@ -11,6 +11,7 @@ import { import { createActionResultFromTextDisplay, createActionResultFromMarkdownDisplay, + createStructuredResult, } from "@typeagent/agent-sdk/helpers/action"; import { OnboardingActions } from "./onboardingSchema.js"; import { DiscoveryActions } from "./discovery/discoverySchema.js"; @@ -234,21 +235,44 @@ async function executeOnboardingAction( error: `Integration "${integrationName}" not found.`, }; } - const lines = [ - `## ${integrationName} — Onboarding Status`, - ``, - `**Current phase:** ${state.currentPhase}`, - `**Started:** ${state.createdAt}`, - `**Updated:** ${state.updatedAt}`, - ``, - `| Phase | Status |`, - `|---|---|`, - ...Object.entries(state.phases).map( - ([phase, ps]) => - `| ${phase} | ${statusIcon(ps.status)} ${ps.status} |`, - ), - ]; - return createActionResultFromMarkdownDisplay(lines.join("\n")); + return createStructuredResult( + [ + { + kind: "heading", + level: 3, + text: `${integrationName} — Onboarding Status`, + }, + { + kind: "keyValue", + pairs: [ + { + label: "Current phase", + value: state.currentPhase, + }, + { label: "Started", value: state.createdAt }, + { label: "Updated", value: state.updatedAt }, + ], + }, + { + kind: "table", + columns: [ + { id: "phase", header: "Phase" }, + { id: "status", header: "Status", type: "badge" }, + ], + rows: Object.entries(state.phases).map( + ([phase, ps]) => [ + phase, + { + text: `${statusIcon(ps.status)} ${ps.status}`, + badge: phaseStatusBadge(ps.status), + }, + ], + ), + readonly: true, + }, + ], + { rawData: state }, + ); } case "listIntegrations": { @@ -259,7 +283,8 @@ async function executeOnboardingAction( "No integrations found. Use startOnboarding to begin.", ); } - const lines = [`## Integrations`, ``]; + const rows: (string | number)[][] = []; + const raw: unknown[] = []; for (const name of names) { const state = await loadState(name); if (!state) continue; @@ -270,11 +295,34 @@ async function executeOnboardingAction( state.currentPhase === "complete" ) continue; - lines.push( - `- **${name}** — ${state.currentPhase} (updated ${state.updatedAt})`, + rows.push([name, state.currentPhase, state.updatedAt]); + raw.push({ + name, + currentPhase: state.currentPhase, + updatedAt: state.updatedAt, + }); + } + if (rows.length === 0) { + return createActionResultFromTextDisplay( + "No matching integrations found.", ); } - return createActionResultFromMarkdownDisplay(lines.join("\n")); + return createStructuredResult( + [ + { kind: "heading", level: 3, text: "Integrations" }, + { + kind: "table", + columns: [ + { id: "name", header: "Integration" }, + { id: "phase", header: "Phase" }, + { id: "updated", header: "Updated", type: "date" }, + ], + rows, + sortable: true, + }, + ], + { rawData: raw }, + ); } } } @@ -313,3 +361,20 @@ function statusIcon(status: string): string { return "❓"; } } + +function phaseStatusBadge( + status: string, +): "neutral" | "info" | "success" | "warning" | "error" { + switch (status) { + case "approved": + return "success"; + case "in-progress": + return "info"; + case "pending": + return "warning"; + case "skipped": + return "neutral"; + default: + return "neutral"; + } +} diff --git a/ts/packages/agents/osNotifications/README.AUTOGEN.md b/ts/packages/agents/osNotifications/README.AUTOGEN.md index 08ffa31b73..ba5d073680 100644 --- a/ts/packages/agents/osNotifications/README.AUTOGEN.md +++ b/ts/packages/agents/osNotifications/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # os-notifications-agent — AI-generated documentation @@ -12,11 +12,11 @@ ## Overview -The `os-notifications-agent` package integrates operating system notifications from Windows Action Center and Linux freedesktop into the TypeAgent chat system. These notifications are displayed as ephemeral toasts or inline messages, providing real-time updates to users. Notifications are not persisted and are removed from the chat interface when dismissed at the OS level. Note that macOS is not supported. +The `os-notifications-agent` package integrates operating system notifications from Windows Action Center and Linux freedesktop into the TypeAgent chat system. These notifications are displayed as ephemeral toasts or inline messages, providing real-time updates to users. Notifications are not persisted and are removed from the chat interface when dismissed at the OS level. macOS is not supported. ## What it does -The `os-notifications-agent` captures and processes OS-level notifications, forwarding them to connected TypeAgent chat clients. Notifications are ephemeral and are not stored in the `displayLog.json`. The agent supports the following key actions: +The `os-notifications-agent` captures and processes OS-level notifications and forwards them to connected TypeAgent chat clients. Notifications are ephemeral and are not stored in the `displayLog.json`. The agent supports the following key actions: - **`syncOsNotifications`**: Re-emits currently-present notifications through the agent pipeline. This action is Windows-only, as Linux's freedesktop specification does not support querying existing notifications. If the required Windows helper executable is not available, the agent will prompt the user to build it. - **`testOsNotification`**: Generates a synthetic notification and processes it through the agent pipeline. This is useful for testing the agent's functionality without relying on actual OS notifications. @@ -104,7 +104,7 @@ By following these steps, you can enhance the `os-notifications-agent` to suppor ### Entry points - `./agent/manifest` → [./src/osNotificationsManifest.json](./src/osNotificationsManifest.json) -- `./agent/handlers` → `./dist/osNotificationsActionHandler.js` _(not found on disk)_ +- `./agent/handlers` → [./dist/osNotificationsActionHandler.js](./dist/osNotificationsActionHandler.js) ### Dependencies @@ -133,6 +133,6 @@ External: `dbus-next`, `debug` --- -_Auto-generated against commit `44b34a9ac8794b6f90489ff7e55fe57283c34960` on `2026-07-13T09:04:14.089Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter os-notifications-agent docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter os-notifications-agent docs:verify-links` to spot-check._ diff --git a/ts/packages/agents/osNotifications/src/osNotificationsActionHandler.ts b/ts/packages/agents/osNotifications/src/osNotificationsActionHandler.ts index 95aefc3f46..fb6384df52 100644 --- a/ts/packages/agents/osNotifications/src/osNotificationsActionHandler.ts +++ b/ts/packages/agents/osNotifications/src/osNotificationsActionHandler.ts @@ -45,6 +45,7 @@ import { HelperNotBuiltError, buildWindowsHelper, isWindowsHelperBuilt, + isSparsePackageRegistered, } from "./watchers/windowsWatcher.js"; const debug = registerDebug("typeagent:osNotifications"); @@ -91,20 +92,35 @@ export type AgentContext = { export function evaluateReadiness( platform: NodeJS.Platform, helperBuilt: boolean, + sparsePackageRegistered: boolean, ): ReadinessReport { if (platform !== "win32") { return { state: "ready" }; } - if (helperBuilt) { - return { state: "ready" }; + if (!helperBuilt) { + return { + state: "setup-required", + message: + "OS notification helper exe (OsNotificationListener.exe) hasn't been built yet.", + details: + "Setup runs `dotnet publish` + signs + registers a sparse WinAppSDK package; ~30–60 seconds first time.", + }; } - return { - state: "setup-required", - message: - "OS notification helper exe (OsNotificationListener.exe) hasn't been built yet.", - details: - "Setup runs `dotnet publish` + signs + registers a sparse WinAppSDK package; ~30–60 seconds first time.", - }; + // Exe presence alone is NOT enough: without the sparse identity package + // registered, the exe launches but its UserNotificationListener + // subscription fails at runtime (COMException 0x80070490). Surface this as + // setup-required so `@config agent setup` re-runs the register step instead + // of short-circuiting on "already ready". + if (!sparsePackageRegistered) { + return { + state: "setup-required", + message: + "OS notification helper is built but its identity package isn't registered.", + details: + "Setup registers a signed sparse WinAppSDK package (one elevation prompt to trust the dev cert) so the helper can subscribe to notification events.", + }; + } + return { state: "ready" }; } // ============================================================================ @@ -428,7 +444,11 @@ export function instantiate(): AppAgent { // calls this right after the agent is enabled, after setup, and // on @config agent refresh. The result is cached. async checkReadiness(): Promise { - return evaluateReadiness(process.platform, isWindowsHelperBuilt()); + return evaluateReadiness( + process.platform, + isWindowsHelperBuilt(), + isSparsePackageRegistered(), + ); }, // Returns the same yes/no card the agent used to offer when diff --git a/ts/packages/agents/osNotifications/src/watchers/windowsWatcher.ts b/ts/packages/agents/osNotifications/src/watchers/windowsWatcher.ts index 5268829a79..9a318befdb 100644 --- a/ts/packages/agents/osNotifications/src/watchers/windowsWatcher.ts +++ b/ts/packages/agents/osNotifications/src/watchers/windowsWatcher.ts @@ -3,6 +3,7 @@ import { spawn, spawnSync, type ChildProcess } from "node:child_process"; import { existsSync, readdirSync } from "node:fs"; +import * as os from "node:os"; import * as path from "node:path"; import { fileURLToPath } from "node:url"; import registerDebug from "debug"; @@ -31,6 +32,10 @@ export class HelperNotBuiltError extends Error { } } +function getErrorMessage(error: unknown): string { + return error instanceof Error ? error.message : String(error); +} + // Spawns the bundled OsNotificationListener.exe helper. The helper subscribes // to Windows.UI.Notifications.Management.UserNotificationListener and writes // JSON-per-line on stdout in the OsNotificationEvent shape from @@ -89,7 +94,7 @@ export function startWindowsWatcher( try { const evt = JSON.parse(line) as OsNotificationEvent; listener(evt); - } catch (e: any) { + } catch { debug("invalid line from helper: %s", line); } } @@ -173,6 +178,27 @@ export function isWindowsHelperBuilt(): boolean { return resolveHelperPath() !== undefined; } +// Public probe used by checkReadiness — verifies the WinAppSDK sparse identity +// package is actually registered for the current user. Exe presence alone is +// NOT sufficient: without this registration the exe launches but its +// UserNotificationListener subscription fails at runtime with +// COMException 0x80070490 ("the identity package isn't registered for this exe +// location"). Returning false here lets `@config agent setup` re-run the +// pack/sign/register pipeline instead of short-circuiting on "already ready". +// +// Best-effort: any PowerShell failure is treated as "not registered" so a +// probe error never masks a genuinely-missing registration. +export function isSparsePackageRegistered(): boolean { + try { + const out = runPowerShellSync( + `if (Get-AppxPackage -Name '${IDENTITY_PACKAGE_NAME}' -ErrorAction SilentlyContinue) { 'YES' } else { 'NO' }`, + ).trim(); + return out.endsWith("YES"); + } catch { + return false; + } +} + // Resolves the directory holding the C# helper project. The project lives at // /dotnet/osNotificationListener/, alongside other repo C# projects. // This module compiles into dist/watchers/, so we walk six levels up to the @@ -222,6 +248,8 @@ const CODE_SIGNING_EKU = "1.3.6.1.5.5.7.3.3"; const IDENTITY_PACKAGE_NAME = "TypeAgent.OsNotificationListener"; const IDENTITY_DIR = "identity"; const MSIX_FILE = "TypeAgent.OsNotificationListener.msix"; +// Public cert exported by tools/scripts/getCert.mjs under ~/.typeagent. +const DEV_CERT_FILE = "TypeAgent-Development-Certificate.cer"; // Full build pipeline for the WinAppSDK sparse-packaged helper: // dotnet clean + publish -> writes exe under publish/ @@ -382,6 +410,105 @@ function findSigningCertThumbprint(): string { return out; } +// True when the dev signing cert is trusted at the LocalMachine scope (Root). +// AppX deployment runs in SYSTEM context and only honors LocalMachine trust, so +// this — not the CurrentUser trust that signtool uses — is what governs whether +// Add-AppxPackage accepts the MSIX signature. LocalMachine\Root is world- +// readable, so the probe itself needs no elevation. +function isCertTrustedLocalMachine(): boolean { + try { + const ps = ` + $store = New-Object System.Security.Cryptography.X509Certificates.X509Store('Root','LocalMachine') + $store.Open('ReadOnly') + $found = $store.Certificates | Where-Object { $_.Subject -eq '${SIGNING_CERT_SUBJECT}' } + $store.Close() + if ($found) { 'YES' } else { 'NO' } + `; + return runPowerShellSync(ps).trim().endsWith("YES"); + } catch { + return false; + } +} + +// Ensures the dev signing cert is trusted at the LocalMachine scope, importing +// it (into Root + TrustedPeople) via a single elevated PowerShell if it isn't. +// This is the step that was previously a manual, easy-to-miss prerequisite — +// folding it into setup means a first-time user gets one UAC prompt instead of +// a cryptic 0x800B0109 failure. Idempotent: no-op when already trusted. +// +// Uses -EncodedCommand for the elevated inner script to sidestep nested-quoting +// issues, and .NET X509Store APIs rather than Import-Certificate/the Cert: +// PSDrive (which can fail to autoload under -NoProfile). +async function ensureCertTrustedLocalMachine(opts: { + onProgress?: (line: string) => void; +}): Promise { + if (isCertTrustedLocalMachine()) return; + + const cerPath = path.join(os.homedir(), ".typeagent", DEV_CERT_FILE); + if (!existsSync(cerPath)) { + throw new Error( + `Dev cert public file not found at ${cerPath}. Run:\n` + + " node tools/scripts/getCert.mjs install --trusted-root\n" + + "then retry setup.", + ); + } + + opts.onProgress?.( + "[setup] Trusting dev cert at LocalMachine scope (accept the elevation prompt)…", + ); + + const esc = (s: string) => s.replace(/'/g, "''"); + const importScript = ` + $cer = '${esc(cerPath)}' + $c = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $cer + foreach ($name in @('Root','TrustedPeople')) { + $store = New-Object System.Security.Cryptography.X509Certificates.X509Store($name,'LocalMachine') + $store.Open('ReadWrite') + $store.Add($c) + $store.Close() + } + `; + const encoded = Buffer.from(importScript, "utf16le").toString("base64"); + // Launch an elevated child (UAC prompt) and wait for it; propagate its exit + // code so a declined prompt / import failure surfaces as a setup error. + const launcher = + "$p = Start-Process powershell.exe -Verb RunAs -PassThru -Wait " + + "-ArgumentList '-NoProfile','-NonInteractive','-ExecutionPolicy'," + + `'Bypass','-EncodedCommand','${encoded}'; exit $p.ExitCode`; + try { + await runProcess( + "powershell.exe", + [ + "-NoProfile", + "-NonInteractive", + "-ExecutionPolicy", + "Bypass", + "-Command", + launcher, + ], + os.homedir(), + opts, + ); + } catch (error: unknown) { + throw new Error( + "Failed to trust the dev cert at LocalMachine scope " + + "(the elevation prompt may have been declined). Either re-run " + + "setup and accept the UAC prompt, or from an elevated " + + "PowerShell run:\n" + + ` $cer = '${cerPath}'\n` + + " Import-Certificate -FilePath $cer -CertStoreLocation Cert:\\LocalMachine\\Root\n" + + " Import-Certificate -FilePath $cer -CertStoreLocation Cert:\\LocalMachine\\TrustedPeople\n" + + `Original error: ${getErrorMessage(error)}`, + ); + } + if (!isCertTrustedLocalMachine()) { + throw new Error( + "Dev cert still not trusted at LocalMachine scope after the import " + + "attempt. Accept the UAC prompt when re-running setup.", + ); + } +} + // Registers the identity package against an external exe location. Idempotent — // if the same package is already registered, Add-AppxPackage replaces it. async function registerSparsePackage( @@ -389,6 +516,11 @@ async function registerSparsePackage( externalLocation: string, opts: { onProgress?: (line: string) => void }, ): Promise { + // AppX signature validation runs as SYSTEM and only honors LocalMachine + // trust — make sure the dev cert is trusted there before we deploy, so a + // first-time user never hits the raw 0x800B0109 CERT_E_UNTRUSTEDROOT. + await ensureCertTrustedLocalMachine(opts); + // Both paths embedded as PowerShell single-quoted literals; escape ' // by doubling per PowerShell's quoting rules. const esc = (s: string) => s.replace(/'/g, "''"); @@ -418,19 +550,20 @@ async function registerSparsePackage( path.dirname(msixPath), opts, ); - } catch (e: any) { - const msg = e?.message ?? String(e); + } catch (error: unknown) { + const msg = getErrorMessage(error); if (msg.includes("0x800B0109")) { throw new Error( - "Add-AppxPackage failed with CERT_E_UNTRUSTEDROOT — the dev cert isn't trusted at the LocalMachine scope. " + - "From an elevated PowerShell, run:\n" + + "Add-AppxPackage failed with CERT_E_UNTRUSTEDROOT even after the " + + "LocalMachine trust step. The dev cert may have been imported " + + "into the wrong store or removed. From an elevated PowerShell, run:\n" + ' $cer = "$env:USERPROFILE\\.typeagent\\TypeAgent-Development-Certificate.cer"\n' + " Import-Certificate -FilePath $cer -CertStoreLocation Cert:\\LocalMachine\\Root\n" + " Import-Certificate -FilePath $cer -CertStoreLocation Cert:\\LocalMachine\\TrustedPeople\n" + "Then retry. (One-time per machine; cert renewals via getCert renew keep the same Subject so this stays valid.)", ); } - throw e; + throw error; } } diff --git a/ts/packages/agents/osNotifications/test/osNotificationsReadiness.spec.ts b/ts/packages/agents/osNotifications/test/osNotificationsReadiness.spec.ts index 29c1ffb966..ba362c9855 100644 --- a/ts/packages/agents/osNotifications/test/osNotificationsReadiness.spec.ts +++ b/ts/packages/agents/osNotifications/test/osNotificationsReadiness.spec.ts @@ -25,26 +25,40 @@ import type { ActionContext } from "@typeagent/agent-sdk"; describe("evaluateReadiness", () => { test("ready on linux regardless of helperBuilt flag", () => { - expect(evaluateReadiness("linux", false)).toEqual({ state: "ready" }); - expect(evaluateReadiness("linux", true)).toEqual({ state: "ready" }); + expect(evaluateReadiness("linux", false, false)).toEqual({ + state: "ready", + }); + expect(evaluateReadiness("linux", true, false)).toEqual({ + state: "ready", + }); }); test("ready on darwin (helper is Windows-only)", () => { - expect(evaluateReadiness("darwin", false)).toEqual({ state: "ready" }); + expect(evaluateReadiness("darwin", false, false)).toEqual({ + state: "ready", + }); }); - test("ready on win32 when the helper exe is present", () => { - expect(evaluateReadiness("win32", true)).toEqual({ state: "ready" }); + test("ready on win32 when the helper exe is present and registered", () => { + expect(evaluateReadiness("win32", true, true)).toEqual({ + state: "ready", + }); }); test("setup-required on win32 when the helper exe is missing", () => { - const r = evaluateReadiness("win32", false); + const r = evaluateReadiness("win32", false, false); expect(r.state).toBe("setup-required"); expect(r.message).toMatch(/OsNotificationListener\.exe/); }); + test("setup-required on win32 when built but identity package not registered", () => { + const r = evaluateReadiness("win32", true, false); + expect(r.state).toBe("setup-required"); + expect(r.message).toMatch(/identity package isn't registered/); + }); + test("setup-required report includes 'details' explaining what setup runs", () => { - const r = evaluateReadiness("win32", false); + const r = evaluateReadiness("win32", false, false); expect(r.state).toBe("setup-required"); expect(r.details).toMatch(/dotnet publish/); expect(r.details).toMatch(/sparse WinAppSDK package/); diff --git a/ts/packages/agents/powershell/samples/listFiles.recipe.json b/ts/packages/agents/powershell/samples/listFiles.recipe.json index c2372f0b70..34edb0e830 100644 --- a/ts/packages/agents/powershell/samples/listFiles.recipe.json +++ b/ts/packages/agents/powershell/samples/listFiles.recipe.json @@ -50,7 +50,7 @@ "examples": ["show me the files in documents", "show files"] }, { - "pattern": "list (my)? $(path:wildcard)", + "pattern": "list my $(path:wildcard)", "isAlias": false, "examples": ["list my downloads", "list my pictures", "list my documents"] }, diff --git a/ts/packages/agents/screencapture/README.AUTOGEN.md b/ts/packages/agents/screencapture/README.AUTOGEN.md index fd16e131c0..c959abfcc6 100644 --- a/ts/packages/agents/screencapture/README.AUTOGEN.md +++ b/ts/packages/agents/screencapture/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # screencapture-agent — AI-generated documentation @@ -12,14 +12,14 @@ ## Overview -The `screencapture-agent` is a TypeAgent application agent designed for screen capture and recording tasks. It supports taking screenshots and recording the screen on Windows and Linux (X11), with the ability to target specific programs or windows by name. This agent integrates with the TypeAgent ecosystem, enabling users to perform screen capture actions through natural language commands. +The `screencapture-agent` is a TypeAgent application agent designed for screen capture and recording tasks. It enables users to take screenshots and record their screens on Windows and Linux (X11) systems. The agent supports capturing the entire screen or targeting specific application windows by name, and it integrates with the TypeAgent ecosystem to allow natural language commands for these operations. ## What it does -The `screencapture-agent` provides the following key functionalities: +The `screencapture-agent` provides a set of actions for screen capture and recording: - **`takeScreenshot`**: Captures a screenshot of the entire screen or a specific window. If a `target` parameter is provided, the agent attempts to match the name to a visible window (e.g., "Chrome" or "Visual Studio"). -- **`startRecording`**: Initiates a screen recording of the entire screen or a specific window. Only one recording can be active at a time. +- **`startRecording`**: Starts a screen recording of the entire screen or a specific window. Only one recording can be active at a time. - **`stopRecording`**: Stops the currently active screen recording. - **`listWindows`**: Lists all currently visible windows, allowing users to identify and target them by name. - **`recording`**: Tracks the activity of an ongoing recording, including details such as the target, output path, and start time. @@ -113,7 +113,7 @@ By following these steps, you can enhance the `screencapture-agent` to support a ### Entry points - `./agent/manifest` → [./src/screencaptureManifest.json](./src/screencaptureManifest.json) -- `./agent/handlers` → `./dist/screencaptureActionHandler.js` _(not found on disk)_ +- `./agent/handlers` → [./dist/screencaptureActionHandler.js](./dist/screencaptureActionHandler.js) ### Dependencies @@ -163,6 +163,6 @@ _5 actions implemented by this agent, parsed deterministically from `./src/scree --- -_Auto-generated against commit `44b34a9ac8794b6f90489ff7e55fe57283c34960` on `2026-07-13T09:04:14.089Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter screencapture-agent docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter screencapture-agent docs:verify-links` to spot-check._ diff --git a/ts/packages/agents/screencapture/src/screencaptureActionHandler.ts b/ts/packages/agents/screencapture/src/screencaptureActionHandler.ts index 664bac256a..7cdac68b84 100644 --- a/ts/packages/agents/screencapture/src/screencaptureActionHandler.ts +++ b/ts/packages/agents/screencapture/src/screencaptureActionHandler.ts @@ -17,9 +17,9 @@ import { import { createActionResult, createActionResultFromError, - createActionResultFromHtmlDisplay, createActionResultFromMarkdownDisplay, createActionResultFromTextDisplay, + createStructuredResult, createYesNoChoiceResult, } from "@typeagent/agent-sdk/helpers/action"; import { readFile, unlink, mkdir } from "fs/promises"; @@ -496,15 +496,6 @@ const MIME_BY_EXT: Record = { webp: "image/webp", }; -function escapeHtml(s: string): string { - return s - .replace(/&/g, "&") - .replace(//g, ">") - .replace(/"/g, """) - .replace(/'/g, "'"); -} - async function resolveTarget( target: string | undefined, backend: PlatformBackend, @@ -628,15 +619,17 @@ async function handleTakeScreenshot( // only the textual summary so retrieval/contextual replay doesn't // pull megabytes of base64 forward. const dataUri = `data:${mime};base64,${buffer!.toString("base64")}`; - const html = [ - `
`, - `
${escapeHtml(successMessage)}
`, - ` screenshot of ${escapeHtml(subject)}`, - `
`, - ].join("\n"); - result = createActionResultFromHtmlDisplay(html, successMessage); + result = createStructuredResult( + [ + { kind: "text", text: successMessage }, + { + kind: "image", + src: dataUri, + alt: `screenshot of ${subject}`, + }, + ], + { historyText: successMessage }, + ); } else { // Buffer missing (read failure) or too large — fall back to text // and lean on the saved path. Note buffer-too-large is diff --git a/ts/packages/agents/taskflow/README.AUTOGEN.md b/ts/packages/agents/taskflow/README.AUTOGEN.md index a76ccfc740..072afac0f3 100644 --- a/ts/packages/agents/taskflow/README.AUTOGEN.md +++ b/ts/packages/agents/taskflow/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # taskflow-typeagent — AI-generated documentation @@ -12,30 +12,30 @@ ## Overview -The `taskflow-typeagent` package is a TypeAgent application agent that enables users to define, manage, and execute task flows. Task flows are user-taught macros that automate sequences of TypeAgent actions, allowing for reusable workflows and simplifying complex tasks. This package is a key component of the TypeAgent ecosystem, providing a framework for creating and executing custom workflows. +The `taskflow-typeagent` package is a TypeAgent application agent that allows users to define, manage, and execute task flows. Task flows are user-taught macros that automate sequences of TypeAgent actions, enabling reusable workflows and simplifying complex tasks. This package is an integral part of the TypeAgent ecosystem, providing a framework for creating and executing custom workflows. ## What it does -The `taskflow-typeagent` package provides functionality for creating, listing, and deleting task flows. These task flows are defined by users and can be executed programmatically or through natural language commands. The package supports the following key actions: +The `taskflow-typeagent` package provides tools for defining, managing, and executing task flows. These task flows are user-defined sequences of actions that can be executed programmatically or triggered through natural language commands. The package supports the following key actions: -- `listTaskFlows`: Retrieves a list of all registered task flows, allowing users to view available workflows. -- `deleteTaskFlow`: Removes a specified task flow by name, enabling users to manage and clean up their task flow library. +- `listTaskFlows`: Retrieves a list of all registered task flows, allowing users to view and manage their available workflows. +- `deleteTaskFlow`: Removes a specified task flow by name, enabling users to clean up or update their task flow library. -In addition to these actions, the package includes tools for validating and executing task flows. It leverages natural language processing (NLP) to generate grammar patterns, enabling users to define task flows using intuitive, human-readable commands. A script execution environment is also provided, allowing for programmatic execution of task flows. +The package also includes functionality for validating and executing task flows. It uses natural language processing (NLP) to generate grammar patterns, allowing users to define task flows using intuitive, human-readable commands. Additionally, it provides a script execution environment for programmatic task flow execution. -The package integrates with other components in the TypeAgent ecosystem, such as `@typeagent/agent-flows` and `@typeagent/agent-sdk`, to provide a cohesive automation framework. +The `taskflow-typeagent` package integrates with other components in the TypeAgent ecosystem, such as `@typeagent/agent-flows` and `@typeagent/agent-sdk`, to provide a cohesive and extensible automation framework. ## Setup To use the `taskflow-typeagent` package, you need to configure the following environment variable: -- `TASKFLOW_STORE_PATH`: Specifies the directory where task flow definitions are stored. Ensure this path is accessible and writable by the application. +- `TASKFLOW_STORE_PATH`: This variable specifies the directory where task flow definitions are stored. Ensure that the specified path is accessible and writable by the application. -For additional setup details, such as configuring integrations or external services, refer to the hand-written README. +For further details on setup, including any additional configuration or integration steps, refer to the hand-written README. ## Key Files -The `taskflow-typeagent` package is organized into several key files, each serving a specific purpose: +The `taskflow-typeagent` package is organized into several key files, each with a specific role in enabling task flow functionality: - **Schema and Grammar**: @@ -44,7 +44,7 @@ The `taskflow-typeagent` package is organized into several key files, each servi - **Action Handlers**: - - [actionHandler.mts](./src/actionHandler.mts): Contains the logic for executing task flow actions, managing the task flow store, and handling user-taught macros. + - [actionHandler.mts](./src/actionHandler.mts): Implements the logic for executing task flow actions, managing the task flow store, and handling user-taught macros. - **Script Management**: @@ -92,8 +92,8 @@ By following these steps, you can expand the capabilities of the `taskflow-typea ### Entry points - `./agent/manifest` → [./manifest.json](./manifest.json) -- `./agent/handlers` → `./dist/actionHandler.mjs` _(not found on disk)_ -- `./recipe` → `./dist/types/recipe.js` _(not found on disk)_ +- `./agent/handlers` → [./dist/actionHandler.mjs](./dist/actionHandler.mjs) +- `./recipe` → [./dist/types/recipe.js](./dist/types/recipe.js) ### Dependencies @@ -130,6 +130,6 @@ External: `@anthropic-ai/claude-agent-sdk`, `debug`, `typescript` --- -_Auto-generated against commit `44b34a9ac8794b6f90489ff7e55fe57283c34960` on `2026-07-13T09:04:14.089Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter taskflow-typeagent docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter taskflow-typeagent docs:verify-links` to spot-check._ diff --git a/ts/packages/agents/taskflow/src/actionHandler.mts b/ts/packages/agents/taskflow/src/actionHandler.mts index 63957bce49..4337f74167 100644 --- a/ts/packages/agents/taskflow/src/actionHandler.mts +++ b/ts/packages/agents/taskflow/src/actionHandler.mts @@ -15,6 +15,7 @@ import { import { createActionResultFromTextDisplay, createActionResultFromError, + createStructuredResult, } from "@typeagent/agent-sdk/helpers/action"; import { readFileSync, readdirSync } from "fs"; import { join, dirname } from "path"; @@ -132,12 +133,36 @@ async function handleTaskFlowAction( "No task flows registered.", ); } - const lines = entries.map( - (e) => - ` \u2022 ${e.actionName}: ${e.description} [usage: ${e.usageCount}]${e.source === "seed" ? " (sample)" : ""}`, - ); - return createActionResultFromTextDisplay( - `Task flows (${entries.length}):\n${lines.join("\n")}`, + return createStructuredResult( + [ + { + kind: "heading", + level: 3, + text: `Task flows (${entries.length})`, + }, + { + kind: "table", + columns: [ + { id: "actionName", header: "Task Flow" }, + { id: "description", header: "Description" }, + { + id: "usageCount", + header: "Usage", + type: "number", + align: "right", + }, + { id: "source", header: "Source" }, + ], + rows: entries.map((e) => [ + e.actionName, + e.description, + e.usageCount, + e.source === "seed" ? "sample" : "user", + ]), + sortable: true, + }, + ], + { rawData: entries }, ); } diff --git a/ts/packages/agents/taskflow/src/script/taskFlowScriptApi.mts b/ts/packages/agents/taskflow/src/script/taskFlowScriptApi.mts index 374802a369..05bf2df7f6 100644 --- a/ts/packages/agents/taskflow/src/script/taskFlowScriptApi.mts +++ b/ts/packages/agents/taskflow/src/script/taskFlowScriptApi.mts @@ -152,7 +152,19 @@ export class TaskFlowScriptAPIImpl implements TaskFlowScriptAPI { ); const text = extractText(result); - const data = tryParseJson(text) ?? text; + // Use rawData from StructuredContent when available; otherwise fall + // back to parsing the text (the pre-Phase-6 path). + const dc = + "displayContent" in result ? result.displayContent : undefined; + const rawData = + dc !== undefined && + typeof dc === "object" && + !Array.isArray(dc) && + (dc as { type?: string }).type === "structured" + ? (dc as { rawData?: unknown }).rawData + : undefined; + const data = + rawData !== undefined ? rawData : (tryParseJson(text) ?? text); if (result.error) { return { text, data, error: result.error }; diff --git a/ts/packages/agents/weather/README.AUTOGEN.md b/ts/packages/agents/weather/README.AUTOGEN.md index ac3a4adb90..e3b75f8a3a 100644 --- a/ts/packages/agents/weather/README.AUTOGEN.md +++ b/ts/packages/agents/weather/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # weather-agent — AI-generated documentation @@ -12,64 +12,70 @@ ## Overview -The `weather-agent` package is a TypeAgent application agent that provides weather-related information. It supports retrieving current weather conditions, forecasts, and alerts for specified locations. This agent integrates with the broader TypeAgent ecosystem, enabling users to query weather data through structured actions. +The `weather-agent` package is a TypeAgent application agent designed to provide weather-related information. It enables users to query current weather conditions, forecasts, and alerts for specific locations. This agent integrates with the TypeAgent ecosystem and interacts with external weather APIs to deliver accurate and timely weather data. ## What it does -The `weather-agent` implements three primary actions to handle weather-related queries: +The `weather-agent` supports three key actions, each tailored to address specific weather-related queries: -- **`getCurrentConditions`**: Fetches the current weather conditions for a given location. Users can optionally specify the temperature units as `"celsius"` or `"fahrenheit"`. -- **`getForecast`**: Provides a weather forecast for a specified location, supporting up to 7 days. Users can also specify the temperature units and the number of days for the forecast. -- **`getAlerts`**: Retrieves weather alerts for a specific location, such as severe weather warnings or advisories. +- **`getCurrentConditions`**: Retrieves the current weather conditions for a specified location. Users can optionally specify the temperature units as `"celsius"` or `"fahrenheit"`. +- **`getForecast`**: Provides a weather forecast for a given location, supporting up to 7 days. Users can specify the number of days for the forecast and the temperature units. +- **`getAlerts`**: Fetches weather alerts for a specific location, such as severe weather warnings or advisories. -These actions allow the agent to respond to user queries about real-time weather conditions, upcoming forecasts, and potential weather hazards. The agent is designed to work with external weather APIs to fetch accurate and up-to-date data. +These actions allow the agent to respond to user queries about real-time weather updates, future weather predictions, and potential weather hazards. The agent relies on external weather APIs to fetch the required data and processes it to provide structured responses. ## Setup -To use the `weather-agent`, you need access to a weather API service. Follow these steps to set up the package: +To set up the `weather-agent`, follow these steps: -1. **Obtain an API key**: Register with a weather data provider (e.g., OpenWeatherMap, WeatherAPI) to obtain an API key. -2. **Set environment variables**: Configure the API key as an environment variable. The specific variable name and setup instructions are detailed in the hand-written README. -3. **Install dependencies**: Run `pnpm install` in the package directory to install all required dependencies. +1. **Obtain an API key**: Register with a weather data provider (e.g., OpenWeatherMap or WeatherAPI) to get an API key. This key is required to access the weather data. +2. **Set environment variables**: Add the API key to your environment variables. Refer to the hand-written README for the exact variable name and additional setup details. +3. **Install dependencies**: Run the following command in the package directory to install the required dependencies: + ```bash + pnpm install + ``` -Ensure that the API key is valid and that the environment variable is correctly set before running the agent. +Ensure that the API key is valid and the environment variable is correctly configured before running the agent. ## Key Files -The `weather-agent` package is organized into several key files, each serving a specific purpose: +The `weather-agent` package is structured around several key files that define its functionality: -- **[weatherManifest.json](./src/weatherManifest.json)**: Defines the agent's metadata, including its description, schema, and grammar files. -- **[weatherSchema.ts](./src/weatherSchema.ts)**: Specifies the action schema, including the types and parameters for each action (`getCurrentConditions`, `getForecast`, and `getAlerts`). -- **[weatherSchema.agr](./src/weatherSchema.agr)**: Contains the action grammar, defining the patterns and rules for parsing user queries into structured actions. -- **[weatherActionHandler.ts](./src/weatherActionHandler.ts)**: Implements the logic for handling each action. This file includes functions to process user requests and interact with the weather API. +- **[weatherManifest.json](./src/weatherManifest.json)**: Contains metadata about the agent, including its description, schema, and grammar files. +- **[weatherSchema.ts](./src/weatherSchema.ts)**: Defines the action schema, specifying the types and parameters for the supported actions: `getCurrentConditions`, `getForecast`, and `getAlerts`. +- **[weatherSchema.agr](./src/weatherSchema.agr)**: Provides the action grammar, which maps user queries to structured actions using defined patterns and rules. +- **[weatherActionHandler.ts](./src/weatherActionHandler.ts)**: Implements the logic for handling each action. This file processes user requests and interacts with the weather API to fetch the required data. - **[testWeather.ts](./src/testWeather.ts)**: A manual test script for verifying the integration with the weather API. It includes sample queries for geocoding and fetching weather data. -These files collectively define the agent's capabilities and provide a foundation for extending its functionality. +These files collectively define the agent's capabilities and serve as the foundation for its operation and extensibility. ## How to extend -To extend the `weather-agent` package, follow these steps: +To add new features or actions to the `weather-agent`, follow these steps: 1. **Define new actions**: - - Add new action types to [weatherSchema.ts](./src/weatherSchema.ts). Define the action name and its parameters. - - For example, to add an action for retrieving historical weather data, define a new type `GetHistoricalWeatherAction` with appropriate parameters. + - Extend the action schema in [weatherSchema.ts](./src/weatherSchema.ts) by adding a new action type and its parameters. For example, to add an action for retrieving historical weather data, define a new type `GetHistoricalWeatherAction` with fields like `location` and `date`. 2. **Update the grammar**: - - Modify [weatherSchema.agr](./src/weatherSchema.agr) to include new patterns and rules for the new actions. - - For example, add a rule like ` = ? $(location:) $(date:) -> { actionName: "getHistoricalWeather", parameters: { location, date } };`. + - Modify [weatherSchema.agr](./src/weatherSchema.agr) to include new grammar rules for the new action. For instance, you can add a rule like: + ```text + = ? $(location:) $(date:) -> { actionName: "getHistoricalWeather", parameters: { location, date } }; + ``` 3. **Implement the handler**: - - Add the logic for the new actions in [weatherActionHandler.ts](./src/weatherActionHandler.ts). Extend the `executeWeatherAction` function to handle the new action. - - For example, create a function `handleGetHistoricalWeather` that interacts with the weather API to fetch historical data. + - Extend the `executeWeatherAction` function in [weatherActionHandler.ts](./src/weatherActionHandler.ts) to handle the new action. For example, create a function `handleGetHistoricalWeather` that interacts with the weather API to fetch historical data. 4. **Test the new functionality**: - - Update [testWeather.ts](./src/testWeather.ts) to include test cases for the new actions. - - Run the test script to verify that the new actions work as expected. + - Add test cases for the new action in [testWeather.ts](./src/testWeather.ts). Use sample queries to verify the new functionality. + - Run the test script using the following command: + ```bash + node --loader ts-node/esm src/testWeather.ts + ``` -By following these steps, you can expand the `weather-agent` to support additional weather-related features, such as historical data, air quality information, or advanced weather analytics. +By following these steps, you can enhance the `weather-agent` to support additional weather-related features, such as historical weather data, air quality indices, or other specialized weather services. ## Reference @@ -78,7 +84,7 @@ By following these steps, you can expand the `weather-agent` to support addition ### Entry points - `./agent/manifest` → [./src/weatherManifest.json](./src/weatherManifest.json) -- `./agent/handlers` → `./dist/weatherActionHandler.js` _(not found on disk)_ +- `./agent/handlers` → [./dist/weatherActionHandler.js](./dist/weatherActionHandler.js) ### Dependencies @@ -118,6 +124,6 @@ _3 actions implemented by this agent, parsed deterministically from `./src/weath --- -_Auto-generated against commit `44b34a9ac8794b6f90489ff7e55fe57283c34960` on `2026-07-13T09:04:14.089Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter weather-agent docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter weather-agent docs:verify-links` to spot-check._ diff --git a/ts/packages/agents/weather/jest.config.cjs b/ts/packages/agents/weather/jest.config.cjs new file mode 100644 index 0000000000..f475768a12 --- /dev/null +++ b/ts/packages/agents/weather/jest.config.cjs @@ -0,0 +1,4 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +module.exports = require("../../../jest.config.js"); diff --git a/ts/packages/agents/weather/package.json b/ts/packages/agents/weather/package.json index f73686f8d2..75aa153080 100644 --- a/ts/packages/agents/weather/package.json +++ b/ts/packages/agents/weather/package.json @@ -24,9 +24,12 @@ "asc": "asc -i ./src/weatherSchema.ts -o ./dist/weatherSchema.pas.json -t WeatherAction", "build": "concurrently npm:tsc npm:asc npm:agc", "clean": "rimraf --glob dist *.tsbuildinfo *.done.build.log", + "jest-esm": "node --no-warnings --experimental-vm-modules ./node_modules/jest/bin/jest.js", "prettier": "prettier --check . --ignore-path ../../../.prettierignore", "prettier:fix": "prettier --write . --ignore-path ../../../.prettierignore", + "test": "npm run test:local", "test:api": "node testWeatherSimple.mjs", + "test:local": "pnpm run jest-esm --testPathPattern=\".*[.]spec[.]js\"", "tsc": "tsc -b" }, "dependencies": { @@ -35,7 +38,9 @@ "devDependencies": { "@typeagent/action-grammar-compiler": "workspace:*", "@typeagent/action-schema-compiler": "workspace:*", + "@types/jest": "^29.5.7", "concurrently": "^9.1.2", + "jest": "^29.7.0", "prettier": "^3.5.3", "rimraf": "^6.0.1", "typescript": "~5.4.5" diff --git a/ts/packages/agents/weather/src/weatherActionHandler.ts b/ts/packages/agents/weather/src/weatherActionHandler.ts index 4d1e58d147..67dfdc73fe 100644 --- a/ts/packages/agents/weather/src/weatherActionHandler.ts +++ b/ts/packages/agents/weather/src/weatherActionHandler.ts @@ -3,6 +3,7 @@ import type { ActionContext, + ActionResultSuccess, AppAgent, SessionContext, TypeAgentAction, @@ -10,6 +11,7 @@ import type { import { createActionResultFromTextDisplay, createActionResultFromError, + createStructuredResult, } from "@typeagent/agent-sdk/helpers/action"; import { WeatherAction } from "./weatherSchema.js"; import { @@ -86,17 +88,9 @@ async function handleGetCurrentConditions( ); } - const tempUnit = units === "celsius" ? "°C" : "°F"; const conditions = getWeatherDescription(weather.weatherCode); const windDir = getWindDirection(weather.windDirection); - const displayText = - `Current conditions in ${coords.name}:\n` + - `Temperature: ${Math.round(weather.temperature)}${tempUnit} (feels like ${Math.round(weather.apparentTemperature)}${tempUnit})\n` + - `Conditions: ${conditions}\n` + - `Humidity: ${weather.humidity}%\n` + - `Wind: ${Math.round(weather.windSpeed)} mph ${windDir}`; - const historyText = `Got current weather for ${coords.name}`; const entities = [ @@ -106,13 +100,72 @@ async function handleGetCurrentConditions( }, ]; - return createActionResultFromTextDisplay( - displayText, + return buildCurrentConditionsResult( + coords.name, + units, + { ...weather, conditions, windDir }, historyText, entities, ); } +// Build a structured current-conditions result (heading + keyValue block + +// rawData). Pure — exported for unit tests. +export function buildCurrentConditionsResult( + locationName: string, + units: "celsius" | "fahrenheit", + weather: { + temperature: number; + apparentTemperature: number; + humidity: number; + windSpeed: number; + conditions: string; + windDir: string; + }, + historyText: string, + entities: { name: string; type: string[] }[], +): ActionResultSuccess { + const tempUnit = units === "celsius" ? "°C" : "°F"; + return createStructuredResult( + [ + { + kind: "heading", + level: 3, + text: `Current conditions in ${locationName}`, + }, + { + kind: "keyValue", + pairs: [ + { + label: "Temperature", + value: `${Math.round(weather.temperature)}${tempUnit} (feels like ${Math.round(weather.apparentTemperature)}${tempUnit})`, + }, + { label: "Conditions", value: weather.conditions }, + { label: "Humidity", value: `${weather.humidity}%` }, + { + label: "Wind", + value: `${Math.round(weather.windSpeed)} mph ${weather.windDir}`, + }, + ], + }, + ], + { + historyText, + entities, + rawData: { + location: locationName, + units, + temperature: weather.temperature, + apparentTemperature: weather.apparentTemperature, + conditions: weather.conditions, + humidity: weather.humidity, + windSpeed: weather.windSpeed, + windDirection: weather.windDir, + }, + }, + ); +} + // Handler for getForecast action async function handleGetForecast( action: Extract, @@ -141,23 +194,6 @@ async function handleGetForecast( ); } - const tempUnit = units === "celsius" ? "°C" : "°F"; - const forecasts = forecastData.map((day, index) => { - const conditions = getWeatherDescription(day.weatherCode); - const precipitation = - day.precipitationProbability > 0 - ? `, ${day.precipitationProbability}% chance of precipitation` - : ""; - return ( - `Day ${index + 1} (${day.date}): ${conditions}, ` + - `High: ${Math.round(day.maxTemp)}${tempUnit}, ` + - `Low: ${Math.round(day.minTemp)}${tempUnit}${precipitation}` - ); - }); - - const displayText = - `${days}-day forecast for ${coords.name}:\n` + forecasts.join("\n"); - const historyText = `Got ${days}-day forecast for ${coords.name}`; const entities = [ @@ -167,13 +203,91 @@ async function handleGetForecast( }, ]; - return createActionResultFromTextDisplay( - displayText, + return buildForecastResult( + coords.name, + units, + days, + forecastData, historyText, entities, ); } +// Build a structured forecast result (heading + sortable table + rawData). +// Pure — exported for unit tests. +export function buildForecastResult( + locationName: string, + units: "celsius" | "fahrenheit", + days: number, + forecastData: { + date: string; + weatherCode: number; + maxTemp: number; + minTemp: number; + precipitationProbability: number; + }[], + historyText: string, + entities: { name: string; type: string[] }[], +): ActionResultSuccess { + const tempUnit = units === "celsius" ? "°C" : "°F"; + const rows = forecastData.map((day) => { + const conditions = getWeatherDescription(day.weatherCode); + const precip = + day.precipitationProbability > 0 + ? `${day.precipitationProbability}%` + : "—"; + // Derive the weekday name from the ISO date. Append T00:00 so the + // date is parsed in local time rather than UTC (which can shift the + // day backward for negative-offset timezones). + const weekday = day.date + ? new Date(`${day.date}T00:00`).toLocaleDateString(undefined, { + weekday: "long", + }) + : ""; + return [ + weekday, + day.date, + conditions, + `${Math.round(day.maxTemp)}${tempUnit}`, + `${Math.round(day.minTemp)}${tempUnit}`, + precip, + ]; + }); + + return createStructuredResult( + [ + { + kind: "heading", + level: 3, + text: `${days}-day forecast for ${locationName}`, + }, + { + kind: "table", + columns: [ + { id: "day", header: "Weekday" }, + { id: "date", header: "Date", type: "date" }, + { id: "conditions", header: "Conditions" }, + { id: "high", header: "High", align: "right" }, + { id: "low", header: "Low", align: "right" }, + { id: "precip", header: "Precip", align: "right" }, + ], + rows, + sortable: true, + }, + ], + { + historyText, + entities, + rawData: { + location: locationName, + units, + days, + forecast: forecastData, + }, + }, + ); +} + // Handler for getAlerts action async function handleGetAlerts( action: Extract, diff --git a/ts/packages/agents/weather/test/tsconfig.json b/ts/packages/agents/weather/test/tsconfig.json new file mode 100644 index 0000000000..895a6f0d21 --- /dev/null +++ b/ts/packages/agents/weather/test/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "../../../../tsconfig.base.json", + "compilerOptions": { + "composite": true, + "rootDir": ".", + "outDir": "../dist/test", + "types": ["node", "jest"] + }, + "include": ["./**/*"], + "ts-node": { + "esm": true + }, + "references": [{ "path": "../src" }] +} diff --git a/ts/packages/agents/weather/test/weatherStructured.spec.ts b/ts/packages/agents/weather/test/weatherStructured.spec.ts new file mode 100644 index 0000000000..50ddb0dd45 --- /dev/null +++ b/ts/packages/agents/weather/test/weatherStructured.spec.ts @@ -0,0 +1,128 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +/** + * Unit tests for the structured-content builders in weatherActionHandler: + * buildCurrentConditionsResult (heading + keyValue) and buildForecastResult + * (heading + sortable table). Both are pure functions of already-fetched + * data, so no network access is needed. + */ + +import { + buildCurrentConditionsResult, + buildForecastResult, +} from "../src/weatherActionHandler.js"; + +const entities = [{ name: "Quincy", type: ["location"] }]; + +function blocks(result: any) { + return (result.displayContent as any).blocks; +} + +describe("buildCurrentConditionsResult", () => { + const result = buildCurrentConditionsResult( + "Quincy", + "fahrenheit", + { + temperature: 71.4, + apparentTemperature: 69.2, + humidity: 40, + windSpeed: 8.6, + conditions: "Clear sky", + windDir: "NW", + }, + "history", + entities, + ); + + test("heading names the location", () => { + expect(blocks(result)[0]).toMatchObject({ + kind: "heading", + text: "Current conditions in Quincy", + }); + }); + + test("keyValue has Temperature/Conditions/Humidity/Wind", () => { + const kv = blocks(result).find((b: any) => b.kind === "keyValue"); + expect(kv.pairs.map((p: any) => p.label)).toEqual([ + "Temperature", + "Conditions", + "Humidity", + "Wind", + ]); + }); + + test("temperature is rounded with unit + feels-like", () => { + const kv = blocks(result).find((b: any) => b.kind === "keyValue"); + expect(kv.pairs[0].value).toBe("71°F (feels like 69°F)"); + }); + + test("rawData carries the numeric values", () => { + const raw = (result.displayContent as any).rawData; + expect(raw).toMatchObject({ + location: "Quincy", + units: "fahrenheit", + temperature: 71.4, + windDirection: "NW", + }); + }); +}); + +describe("buildForecastResult", () => { + const forecast = [ + { + date: "2026-07-13", + weatherCode: 0, + maxTemp: 31.2, + minTemp: 15.1, + precipitationProbability: 0, + }, + { + date: "2026-07-14", + weatherCode: 3, + maxTemp: 35.9, + minTemp: 19.4, + precipitationProbability: 20, + }, + ]; + const result = buildForecastResult( + "Quincy", + "celsius", + 2, + forecast, + "history", + entities, + ); + const table = () => blocks(result).find((b: any) => b.kind === "table"); + + test("heading includes day count and location", () => { + expect(blocks(result)[0].text).toBe("2-day forecast for Quincy"); + }); + + test("first column is the weekday name, not 'Day N'", () => { + const weekday = table().rows[0][0]; + expect(weekday).toMatch( + /^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)$/, + ); + }); + + test("high/low rounded with the celsius unit", () => { + expect(table().rows[0][3]).toBe("31°C"); + expect(table().rows[0][4]).toBe("15°C"); + }); + + test("zero precipitation renders as em dash, otherwise percent", () => { + expect(table().rows[0][5]).toBe("—"); + expect(table().rows[1][5]).toBe("20%"); + }); + + test("table is sortable", () => { + expect(table().sortable).toBe(true); + }); + + test("rawData carries the forecast array", () => { + const raw = (result.displayContent as any).rawData; + expect(raw.forecast).toBe(forecast); + expect(raw.days).toBe(2); + }); +}); diff --git a/ts/packages/agents/weather/tsconfig.json b/ts/packages/agents/weather/tsconfig.json index 05754f14f1..94dfc60bb1 100644 --- a/ts/packages/agents/weather/tsconfig.json +++ b/ts/packages/agents/weather/tsconfig.json @@ -1,12 +1,10 @@ { "extends": "../../../tsconfig.base.json", "compilerOptions": { - "composite": true, - "rootDir": ".", - "outDir": "../dist" + "composite": true }, - "include": ["./**/*"], - "references": [{ "path": "./src" }], + "include": [], + "references": [{ "path": "./src" }, { "path": "./test" }], "ts-node": { "esm": true } diff --git a/ts/packages/chat-ui/README.AUTOGEN.md b/ts/packages/chat-ui/README.AUTOGEN.md index e9780585d7..8fc9fdf0e1 100644 --- a/ts/packages/chat-ui/README.AUTOGEN.md +++ b/ts/packages/chat-ui/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # chat-ui — AI-generated documentation @@ -12,20 +12,20 @@ ## Overview -The `chat-ui` package provides a shared, framework-free chat user interface for TypeAgent applications. It is designed to be used across multiple platforms, including the VS Code shell extension, the browser extension chat panel, and the Visual Studio extension webview. The package supports user and agent interactions, streaming updates, chat history management, command completions, feedback collection, and connection status indicators. Its platform-agnostic design ensures consistent functionality and appearance across different environments. +The `chat-ui` package provides a shared, framework-free chat user interface for TypeAgent applications. It is designed to be used across multiple platforms, including the VS Code shell extension, the browser extension chat panel, and the Visual Studio extension webview. The package enables consistent rendering and interaction for chat interfaces, supporting features like user and agent messages, streaming updates, chat history replay, command completions, feedback collection, and connection status indicators. ## What it does -The `chat-ui` package offers the following key features: +The `chat-ui` package offers a set of components and utilities to build and manage chat interfaces. Key features include: -- **ChatPanel**: The core component for rendering the chat interface. It supports: +- **ChatPanel**: The primary component for rendering the chat interface. It supports: - - Adding user and agent messages with `addAgentMessage`. - - Updating display metadata using `setDisplayInfo`. + - Adding user and agent messages using `addAgentMessage`. + - Updating display metadata with `setDisplayInfo`. - Replaying historical chat entries via `replayHistory`. - Streaming updates for dynamic content display. -- **FeedbackWidget**: A component for collecting user feedback on chat interactions. It supports thumbs-up/thumbs-down ratings, comments, and contextual information. +- **FeedbackWidget**: A component for collecting user feedback on chat interactions. It supports thumbs-up/thumbs-down ratings, comments, and contextual feedback. - **PartialCompletion**: Integrates with the `@typeagent/completion-ui` package to handle command completions, including input updates, acceptance, and dismissal. @@ -33,9 +33,9 @@ The `chat-ui` package offers the following key features: - **PlatformAdapter**: Abstracts platform-specific behaviors, such as handling link clicks and settings, to ensure compatibility across different environments. -- **Shared Styles**: Includes a CSS file (`styles/chat.css`) to ensure a consistent appearance for the chat UI across all host applications. +- **Shared Styles**: A CSS file (`styles/chat.css`) ensures a consistent appearance for the chat UI across all host applications. -The package is utilized by several TypeAgent components, such as the VS Code shell, the browser extension, and the Visual Studio extension webview. +The package is used by several TypeAgent components, including the VS Code shell, the browser extension, and the Visual Studio extension webview. ## Setup @@ -119,6 +119,6 @@ External: `ansi_up`, `dompurify`, `markdown-it` --- -_Auto-generated against commit `defc71271dc68db47e0d376be7aa9f755da0ac91` on `2026-07-14T08:47:00.044Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter chat-ui docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter chat-ui docs:verify-links` to spot-check._ diff --git a/ts/packages/chat-ui/src/chatPanel.ts b/ts/packages/chat-ui/src/chatPanel.ts index f6909af536..61c0df4c18 100644 --- a/ts/packages/chat-ui/src/chatPanel.ts +++ b/ts/packages/chat-ui/src/chatPanel.ts @@ -532,6 +532,14 @@ export class ChatPanel { * Toast and inline rows do NOT participate in this map. */ private threadContainers = new Map(); + /** + * Persistent, dismissable notification bubbles keyed by a caller-supplied + * notification id (e.g. the osNotifications agent's "os:" dismiss + * key). Separate from `threadContainers` so notifications never collide + * with request-driven agent bubbles and can be removed independently when + * the underlying OS notification leaves the action center (osDismiss). + */ + private notificationContainers = new Map(); /** * For reasoning "step" bubbles: the div of the most recently committed * step bubble per thread. New step/temporary bubbles anchor on it so @@ -2670,6 +2678,44 @@ export class ChatPanel { this.scrollToBottom(); } + /** + * Render a persistent, dismissable agent notification bubble (e.g. an OS + * notification forwarded by the osNotifications agent). Unlike + * {@link showToast}, the bubble stays in the chat scroll until + * {@link removeNotification} is called with the same `notificationId`. + * Calling again with an existing id updates that bubble in place. + */ + public addNotification( + content: DisplayContent, + source: string, + notificationId: string, + ): void { + let container = this.notificationContainers.get(notificationId); + if (container === undefined) { + container = this.createAgentContainer( + source, + this.iconForSource(source), + ); + this.notificationContainers.set(notificationId, container); + } + container.setMessage(content, source, undefined); + this.scrollToBottom(); + } + + /** + * Remove a notification bubble previously added via + * {@link addNotification}. Used by OS-notification dismiss handling — the + * OS reports a notification has left the action center and we drop the + * corresponding chat bubble. No-op (returns false) if the id is unknown. + */ + public removeNotification(notificationId: string): boolean { + const container = this.notificationContainers.get(notificationId); + if (container === undefined) return false; + container.remove(); + this.notificationContainers.delete(notificationId); + return true; + } + /** * Add a non-conversational system message styled distinctly from agent * messages (no avatar, no source label, no timestamp). Use for `@`-config @@ -3056,6 +3102,7 @@ export class ChatPanel { sentinel.className = "chat-sentinel"; this.messageDiv.appendChild(sentinel); this.threadContainers.clear(); + this.notificationContainers.clear(); this.requestAgentContainers.clear(); this.currentUserThreadId = undefined; this.pendingThreadDisplayInfo.clear(); @@ -5209,11 +5256,13 @@ class AgentMessageContainer { text = content; } else if ( !Array.isArray(content) && + content.type !== "structured" && typeof content.content === "string" ) { text = content.content; } else if ( !Array.isArray(content) && + content.type !== "structured" && Array.isArray(content.content) && content.content.length > 0 && typeof content.content[0] === "string" @@ -5249,7 +5298,11 @@ class AgentMessageContainer { const summaryText = originalLines.slice(0, jsonStart).join("\n"); const detailsText = originalLines.slice(jsonStart).join("\n"); - if (typeof content === "object" && !Array.isArray(content)) { + if ( + typeof content === "object" && + !Array.isArray(content) && + content.type !== "structured" + ) { return { summary: { ...content, content: summaryText }, details: { ...content, content: detailsText, kind: undefined }, diff --git a/ts/packages/chat-ui/src/setContent.ts b/ts/packages/chat-ui/src/setContent.ts index 4104d4cf98..cdf3e2637e 100644 --- a/ts/packages/chat-ui/src/setContent.ts +++ b/ts/packages/chat-ui/src/setContent.ts @@ -8,8 +8,16 @@ import { DisplayType, DisplayMessageKind, MessageContent, + StructuredBlock, + StructuredContent, + TableBlock, + TableCell, + BadgeTone, } from "@typeagent/agent-sdk"; -import { getContentForType } from "@typeagent/agent-sdk/helpers/display"; +import { + getContentForType, + isStructuredContent, +} from "@typeagent/agent-sdk/helpers/display"; import DOMPurify from "dompurify"; import MarkdownIt from "markdown-it"; import { PlatformAdapter, ChatSettingsView } from "./platformAdapter.js"; @@ -20,6 +28,442 @@ const ansiUpMarkdownToHtml = new AnsiUp(); ansiUpMarkdownToHtml.use_classes = true; ansiUpMarkdownToHtml.escape_html = false; +// --------------------------------------------------------------------------- +// Structured-content HTML renderer (Phase 3a) +// Converts a StructuredContent block document to an HTML string. DOMPurify +// sanitizes it at the final sink in setContent(), so string concatenation here +// is safe — we never set innerHTML before sanitization. +// --------------------------------------------------------------------------- + +function esc(text: string): string { + return text + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """); +} + +function cellDisplayText(cell: TableCell): string { + if (cell === null || cell === undefined) return ""; + if (typeof cell === "object") return cell.text; + return String(cell); +} + +function badgeClass(tone: BadgeTone | undefined): string { + return `sc-badge sc-badge-${tone ?? "neutral"}`; +} + +function renderTableCell(cell: TableCell, colType: string | undefined): string { + const text = cellDisplayText(cell); + const obj = typeof cell === "object" && cell !== null ? cell : null; + const href = obj?.href ?? undefined; + const badge = obj?.badge ?? undefined; + const tooltip = obj?.tooltip ? ` title="${esc(obj.tooltip)}"` : ""; + const effectiveType = badge ? "badge" : href ? "link" : (colType ?? "text"); + + switch (effectiveType) { + case "link": + if (href) { + return `${esc(text)}`; + } + return esc(text); + case "badge": { + const tone = badge ?? "neutral"; + return `${esc(text)}`; + } + case "code": + return `${esc(text)}`; + case "number": + return `${esc(text)}`; + case "date": + return `${esc(text)}`; + default: + return tooltip ? `${esc(text)}` : esc(text); + } +} + +function renderTableBlock(block: TableBlock): string { + const { columns, rows, caption, sortable, filterable, readonly, pageSize } = + block; + const sortAttr = + !readonly && sortable !== false ? ' data-sc-sortable="true"' : ""; + const filterAttr = + !readonly && filterable ? ' data-sc-filterable="true"' : ""; + const paginate = + typeof pageSize === "number" && pageSize > 0 && rows.length > pageSize; + const pageAttr = paginate ? ` data-sc-page-size="${pageSize}"` : ""; + const parts: string[] = [ + `
`, + ]; + if (caption) { + parts.push(``); + } + parts.push(""); + for (const col of columns) { + const align = col.align ? ` style="text-align:${esc(col.align)}"` : ""; + const colSortable = + !readonly && (col.sortable ?? sortable ?? true) !== false; + const sortBtn = colSortable + ? ` ` + : ""; + parts.push(``); + } + parts.push(""); + for (let ri = 0; ri < rows.length; ri++) { + const row = rows[ri]; + // Rows beyond the first page start hidden; the "Show more" control + // (wired in attachTableInteractivity) reveals them in batches. + const hidden = + paginate && ri >= pageSize! ? ' class="sc-row-hidden"' : ""; + parts.push(``); + for (let ci = 0; ci < columns.length; ci++) { + const col = columns[ci]; + const cell = row[ci] ?? ""; + const align = col.align + ? ` style="text-align:${esc(col.align)}"` + : ""; + parts.push(`${renderTableCell(cell, col.type)}`); + } + parts.push(""); + } + parts.push("
${esc(caption)}
${esc(col.header)}${sortBtn}
"); + if (paginate) { + const remaining = rows.length - pageSize!; + parts.push( + ``, + ); + } + parts.push("
"); + return parts.join(""); +} + +function renderMarkdownToHtml(text: string): string { + const md = new MarkdownIt({ html: true }); + type LinkOpenRenderRule = NonNullable; + const defaultRender: LinkOpenRenderRule = + md.renderer.rules.link_open ?? + ((tokens, idx, options, _env, self) => + self.renderToken(tokens, idx, options)); + md.renderer.rules.link_open = (tokens, idx, options, env, self) => { + tokens[idx].attrSet("target", "_blank"); + return defaultRender(tokens, idx, options, env, self); + }; + const rendered = md.render(text); + return ansiUpMarkdownToHtml.ansi_to_html(rendered); +} + +function renderTextBlock( + block: Extract, +): string { + const raw = + typeof block.text === "string" + ? block.text + : Array.isArray(block.text) && typeof block.text[0] === "string" + ? (block.text as string[]).join("\n") + : (block.text as string[][]) + .map((row) => row.join(" | ")) + .join("\n"); + const fmt = block.format ?? "markdown"; + if (fmt === "text") { + return `

${textToHtml(raw)}

`; + } + return `
${renderMarkdownToHtml(raw)}
`; +} + +function renderListBlock( + block: Extract, +): string { + const tag = block.ordered ? "ol" : "ul"; + const items = block.items + .map((item) => { + const label = item.href + ? `${esc(item.text)}` + : esc(item.text); + const subtitle = item.subtitle + ? ` ${esc(item.subtitle)}` + : ""; + const badges = (item.badges ?? []) + .map((tone) => { + const label = tone.charAt(0).toUpperCase() + tone.slice(1); + return `${esc(label)}`; + }) + .join(" "); + return `
  • ${label}${subtitle}${badges ? " " + badges : ""}
  • `; + }) + .join(""); + return `<${tag} class="sc-list">${items}`; +} + +function renderCardBlock( + block: Extract, +): string { + const parts: string[] = [`
    `]; + if (block.title) { + const title = block.href + ? `${esc(block.title)}` + : esc(block.title); + parts.push(`
    ${title}
    `); + } + if (block.subtitle) { + parts.push( + `
    ${esc(block.subtitle)}
    `, + ); + } + if (block.fields && block.fields.length > 0) { + const rows = block.fields + .map( + (pair) => + `${esc(pair.label)}` + + `${renderTableCell(pair.value, undefined)}`, + ) + .join(""); + parts.push( + `${rows}
    `, + ); + } + parts.push("
    "); + return parts.join(""); +} + +function renderBlock(block: StructuredBlock): string { + switch (block.kind) { + case "heading": { + const level = block.level ?? 1; + return `${esc(block.text)}`; + } + case "text": + return renderTextBlock(block); + case "table": + return renderTableBlock(block); + case "list": + return renderListBlock(block); + case "keyValue": { + const rows = block.pairs + .map( + (pair) => + `${esc(pair.label)}` + + `${renderTableCell(pair.value, undefined)}`, + ) + .join(""); + return `${rows}
    `; + } + case "card": + return renderCardBlock(block); + case "image": { + const widthAttr = block.width ? ` width="${block.width}"` : ""; + const heightAttr = block.height ? ` height="${block.height}"` : ""; + const img = `${esc(block.alt ?? `; + if (block.caption) { + return `
    ${img}
    ${esc(block.caption)}
    `; + } + return `
    ${img}
    `; + } + case "code": + return `
    ${esc(block.code)}
    `; + case "divider": + return `
    `; + default: + return ""; + } +} + +/** + * Render a StructuredContent block document to an HTML string. + * The result is passed through DOMPurify at the sink before being written to + * the DOM, so concatenation here is safe. + */ +function renderStructuredContent(content: StructuredContent): string { + return content.blocks.map(renderBlock).join("\n"); +} + +// --------------------------------------------------------------------------- +// Phase 4a — client-side sort + filter for sc-table elements +// --------------------------------------------------------------------------- + +/** + * Wire up sort buttons and filter inputs for every `.sc-table` found inside + * `root`. Called after innerHTML is written so the elements are live in the + * DOM. + */ +function attachTableInteractivity(root: HTMLElement): void { + root.querySelectorAll("table.sc-table").forEach( + (table) => { + const canSort = table.dataset.scSortable === "true"; + const canFilter = table.dataset.scFilterable === "true"; + const pageSize = parseInt(table.dataset.scPageSize ?? "", 10); + const canPaginate = Number.isFinite(pageSize) && pageSize > 0; + if (!canSort && !canFilter && !canPaginate) return; + + const tbody = table.querySelector("tbody"); + if (!tbody) return; + + // Snapshot original row order so we can restore it on "none" sort. + const originalRows = Array.from( + tbody.querySelectorAll("tr"), + ); + originalRows.forEach( + (row, idx) => (row.dataset.scIdx = String(idx)), + ); + + // Per-table sort state. + let sortColId: string | null = null; + let sortDir: "asc" | "desc" | "none" = "none"; + + // Per-table pagination state. `filtering` is shared so sort/filter + // can suspend or re-apply the row cap. When a filter query is + // active it takes precedence (all matches shown, cap suspended). + let filtering = false; + let visibleCount = canPaginate ? pageSize : Infinity; + const wrapEl = table.closest(".sc-table-wrap"); + const showMoreBtn = + wrapEl?.querySelector(".sc-show-more") ?? + null; + + const applyPagination = () => { + if (!canPaginate) return; + const rows = Array.from( + tbody.querySelectorAll("tr"), + ); + rows.forEach((row, i) => { + row.classList.toggle("sc-row-hidden", i >= visibleCount); + }); + if (showMoreBtn) { + const remaining = Math.max(0, rows.length - visibleCount); + if (remaining > 0) { + showMoreBtn.textContent = `Show more (${remaining})`; + showMoreBtn.style.display = ""; + } else { + showMoreBtn.style.display = "none"; + } + } + }; + + if (showMoreBtn) { + showMoreBtn.addEventListener("click", () => { + visibleCount += pageSize; + applyPagination(); + }); + } + + if (canSort) { + table + .querySelectorAll(".sc-sort-btn") + .forEach((btn) => { + btn.addEventListener("click", () => { + const colId = btn.dataset.scCol ?? ""; + // Cycle: none → asc → desc → none + if (sortColId !== colId) { + sortColId = colId; + sortDir = "asc"; + } else if (sortDir === "asc") { + sortDir = "desc"; + } else { + sortDir = "none"; + sortColId = null; + } + + // Update all sort-button icons in this table. + table + .querySelectorAll( + ".sc-sort-btn", + ) + .forEach((b) => { + if (b !== btn || sortDir === "none") { + b.textContent = "↕"; + b.dataset.scSortDir = "none"; + } else { + b.textContent = + sortDir === "asc" ? "↑" : "↓"; + b.dataset.scSortDir = sortDir; + } + }); + + const th = btn.closest("th"); + if (!th) return; + const colIdx = th.cellIndex; + + const rows = Array.from( + tbody.querySelectorAll( + "tr", + ), + ); + if (sortDir === "none") { + // Restore original order. + originalRows.forEach((row) => + tbody.appendChild(row), + ); + } else { + rows.sort((a, b) => { + const ca = + a.cells[colIdx]?.textContent?.trim() ?? + ""; + const cb = + b.cells[colIdx]?.textContent?.trim() ?? + ""; + const cmp = ca.localeCompare( + cb, + undefined, + { + numeric: true, + sensitivity: "base", + }, + ); + return sortDir === "asc" ? cmp : -cmp; + }); + rows.forEach((row) => tbody.appendChild(row)); + } + // Row order changed — re-apply the page cap so the + // first `visibleCount` rows in the new order show + // (unless a filter query is currently active). + if (!filtering) applyPagination(); + }); + }); + } + + if (canFilter) { + const wrap = table.closest(".sc-table-wrap"); + const input = document.createElement("input"); + input.type = "text"; + input.placeholder = "Filter rows…"; + input.className = "sc-filter-input"; + // Insert the filter input before the table (or its wrapper). + // `container` is null if neither a wrapper nor a parent exists. + const container = wrap ?? table.parentElement; + if (container) { + container.insertBefore(input, table); + } + + input.addEventListener("input", () => { + const query = input.value.trim().toLowerCase(); + filtering = query.length > 0; + tbody + .querySelectorAll("tr") + .forEach((row) => { + const text = row.textContent?.toLowerCase() ?? ""; + row.classList.toggle( + "sc-row-filtered", + !!query && !text.includes(query), + ); + }); + if (filtering) { + // Filter overrides pagination: reveal all matches and + // hide the Show-more control while filtering. + tbody + .querySelectorAll("tr") + .forEach((r) => + r.classList.remove("sc-row-hidden"), + ); + if (showMoreBtn) showMoreBtn.style.display = "none"; + } else { + // Query cleared — restore the page cap. + applyPagination(); + } + }); + } + }, + ); +} + function textToHtml(text: string): string { const value = ansiUpTextToHtml.ansi_to_html(text); const line = value.replace(/\n/gm, "
    "); @@ -225,14 +669,20 @@ export function setContent( message = content; speak = false; } else { - // Prefer HTML alternates when available - const htmlContent = getContentForType(content, "html"); - if (htmlContent !== undefined && content.type !== "html") { + if (isStructuredContent(content)) { + // Phase 3a: render blocks natively as HTML. type = "html"; - message = htmlContent; + message = renderStructuredContent(content); } else { - type = content.type; - message = content.content; + // Prefer HTML alternates when available + const htmlContent = getContentForType(content, "html"); + if (htmlContent !== undefined && content.type !== "html") { + type = "html"; + message = htmlContent; + } else { + type = content.type; + message = content.content; + } } kind = content.kind; speak = content.speak ?? false; @@ -368,6 +818,9 @@ export function setContent( } }); + // Phase 4a — wire sort + filter on any sc-table elements just added. + attachTableInteractivity(contentElm); + // Status badges (agent-status readiness/load indicators and other // tooltip-bearing status glyphs) stash their full message in a // `title` attribute. Make them click-to-copy so the (often long) diff --git a/ts/packages/chat-ui/styles/chat.css b/ts/packages/chat-ui/styles/chat.css index 5247f0af1d..64f12d5dbe 100644 --- a/ts/packages/chat-ui/styles/chat.css +++ b/ts/packages/chat-ui/styles/chat.css @@ -1104,6 +1104,275 @@ table.table-message td { padding: 0px 10px 0px 10px; } +/* ========================================================================= + Structured-content blocks (sc-*) — Phase 3a + Used by chat-ui/setContent.ts renderStructuredContent(). + ========================================================================= */ + +/* --- Headings ------------------------------------------------------------ */ + +.sc-heading { + font-weight: 600; + margin: 0.5em 0 0.25em; +} + +.sc-heading-1 { + font-size: 1.4em; +} +.sc-heading-2 { + font-size: 1.2em; +} +.sc-heading-3 { + font-size: 1.05em; +} + +/* --- Text / prose -------------------------------------------------------- */ + +.sc-text { + margin: 0.25em 0; +} + +/* --- Tables -------------------------------------------------------------- */ + +.sc-table-wrap { + overflow-x: auto; + margin: 0.5em 0; +} + +table.sc-table { + border-collapse: collapse; + width: 100%; + font-size: 0.9em; +} + +table.sc-table th, +table.sc-table td { + border: 1px solid var(--vscode-editorWidget-border, #ccc); + padding: 4px 10px; + text-align: left; + vertical-align: top; +} + +table.sc-table thead th { + background: var( + --chat-conversation-list-hover-background, + rgba(0, 0, 0, 0.06) + ); + color: var(--chat-conversation-foreground, #1f1f1f); + font-weight: 600; + white-space: nowrap; +} + +table.sc-table tbody tr:nth-child(even) { + background: var(--vscode-list-hoverBackground, rgba(0, 0, 0, 0.04)); +} + +.sc-cell-number { + font-variant-numeric: tabular-nums; +} + +.sc-cell-date { + white-space: nowrap; +} + +/* Sort button (Phase 4 wires up the click handler; button is always rendered + so column widths don't shift when interactivity is enabled later). */ +.sc-sort-btn { + background: none; + border: none; + cursor: pointer; + font-size: 0.75em; + opacity: 0.5; + padding: 0 2px; + vertical-align: middle; +} + +.sc-sort-btn:hover { + opacity: 1; +} + +/* Filter input (Phase 4a) */ +.sc-filter-input { + background: var(--vscode-input-background, #fff); + border: 1px solid var(--vscode-input-border, #ccc); + border-radius: 3px; + color: var(--vscode-input-foreground, inherit); + display: block; + font-size: 0.85em; + margin-bottom: 4px; + padding: 3px 7px; + width: 100%; + box-sizing: border-box; +} + +.sc-filter-input::placeholder { + color: var(--vscode-input-placeholderForeground, #999); +} + +/* Pagination (Phase 4b) — rows hidden by the page cap or filter. */ +.sc-row-hidden, +.sc-row-filtered { + display: none; +} + +.sc-show-more { + background: none; + border: none; + color: var(--vscode-textLink-foreground, #1a73e8); + cursor: pointer; + display: block; + font-size: 0.85em; + margin: 4px 0 0; + padding: 2px 0; + text-align: left; +} + +.sc-show-more:hover { + text-decoration: underline; +} + +/* --- Badges -------------------------------------------------------------- */ + +.sc-badge { + border-radius: 3px; + display: inline-block; + font-size: 0.8em; + font-weight: 600; + padding: 1px 6px; + white-space: nowrap; +} + +.sc-badge-neutral { + background: var(--vscode-badge-background, #999); + color: var(--vscode-badge-foreground, #fff); +} + +.sc-badge-info { + background: var(--vscode-statusBarItem-activeBackground, #007acc); + color: #fff; +} + +.sc-badge-success { + background: var(--vscode-testing-iconPassed, #388a34); + color: #fff; +} + +.sc-badge-warning { + background: var(--vscode-editorWarning-foreground, #bf8803); + color: #fff; +} + +.sc-badge-error { + background: var(--vscode-errorForeground, #cc3333); + color: #fff; +} + +/* --- Lists --------------------------------------------------------------- */ + +.sc-list { + border: 1px solid var(--vscode-editorWidget-border, #ccc); + border-radius: 6px; + margin: 0.5em 0; + padding: 8px 14px 8px 30px; + background: var(--vscode-editorWidget-background, rgba(127, 127, 127, 0.06)); +} + +.sc-list li { + margin: 0.2em 0; +} + +.sc-list-subtitle { + color: var(--vscode-descriptionForeground, #717171); + font-size: 0.9em; +} + +/* --- Key-value table ----------------------------------------------------- */ + +table.sc-kv-table { + border-collapse: collapse; + margin: 0.25em 0; +} + +table.sc-kv-table th.sc-kv-label { + color: var(--vscode-descriptionForeground, #717171); + font-weight: 600; + padding-right: 12px; + text-align: right; + white-space: nowrap; + vertical-align: top; +} + +table.sc-kv-table td.sc-kv-value { + text-align: left; + vertical-align: top; +} + +/* --- Cards --------------------------------------------------------------- */ + +.sc-card { + border: 1px solid var(--vscode-editorWidget-border, #ccc); + border-radius: 6px; + margin: 0.5em 0; + padding: 10px 14px; +} + +.sc-card-title { + font-size: 1.05em; + font-weight: 600; + margin-bottom: 2px; +} + +.sc-card-subtitle { + color: var(--vscode-descriptionForeground, #717171); + font-size: 0.9em; + margin-bottom: 6px; +} + +table.sc-kv-table.sc-card-fields { + margin-top: 6px; +} + +/* --- Images -------------------------------------------------------------- */ + +.sc-figure { + display: inline-block; + margin: 0.5em 0; + max-width: 100%; +} + +.sc-image { + display: block; + max-width: 100%; + height: auto; +} + +.sc-caption { + color: var(--vscode-descriptionForeground, #717171); + font-size: 0.85em; + margin-top: 4px; + text-align: center; +} + +/* --- Code blocks --------------------------------------------------------- */ + +.sc-code { + background: var(--vscode-textCodeBlock-background, #f0f0f0); + border-radius: 4px; + font-family: var(--vscode-editor-font-family, monospace); + font-size: 0.88em; + margin: 0.25em 0; + overflow-x: auto; + padding: 8px 12px; +} + +/* --- Divider ------------------------------------------------------------- */ + +.sc-divider { + border: none; + border-top: 1px solid var(--vscode-editorWidget-border, #ccc); + margin: 0.75em 0; +} + /* ========================================================================= Metrics (hover-reveal) ========================================================================= */ diff --git a/ts/packages/chat-ui/test/chatPanel.spec.ts b/ts/packages/chat-ui/test/chatPanel.spec.ts index 66a59ef639..de719a70b6 100644 --- a/ts/packages/chat-ui/test/chatPanel.spec.ts +++ b/ts/packages/chat-ui/test/chatPanel.spec.ts @@ -356,3 +356,52 @@ describe("icons", () => { } }); }); + +describe("notifications (persistent, dismissable)", () => { + function agentBubbles(root: HTMLElement): HTMLElement[] { + return Array.from( + root.querySelectorAll(".chat-message-agent"), + ); + } + + it("addNotification renders a persistent agent bubble", () => { + const { root, panel } = makePanel(); + panel.addNotification("Build finished", "osNotifications", "os:1"); + const bubbles = agentBubbles(root); + expect(bubbles.length).toBe(1); + expect(bubbles[0].textContent).toContain("Build finished"); + }); + + it("reusing an id updates the same bubble in place (no duplicate)", () => { + const { root, panel } = makePanel(); + panel.addNotification("first", "osNotifications", "os:1"); + panel.addNotification("second", "osNotifications", "os:1"); + const bubbles = agentBubbles(root); + expect(bubbles.length).toBe(1); + expect(bubbles[0].textContent).toContain("second"); + expect(bubbles[0].textContent).not.toContain("first"); + }); + + it("removeNotification drops the matching bubble and returns true", () => { + const { root, panel } = makePanel(); + panel.addNotification("Build finished", "osNotifications", "os:1"); + expect(panel.removeNotification("os:1")).toBe(true); + expect(agentBubbles(root).length).toBe(0); + }); + + it("removeNotification is a no-op for unknown ids", () => { + const { panel } = makePanel(); + expect(panel.removeNotification("os:unknown")).toBe(false); + }); + + it("distinct ids produce distinct bubbles removable independently", () => { + const { root, panel } = makePanel(); + panel.addNotification("one", "osNotifications", "os:1"); + panel.addNotification("two", "osNotifications", "os:2"); + expect(agentBubbles(root).length).toBe(2); + panel.removeNotification("os:1"); + const remaining = agentBubbles(root); + expect(remaining.length).toBe(1); + expect(remaining[0].textContent).toContain("two"); + }); +}); diff --git a/ts/packages/cli/README.AUTOGEN.md b/ts/packages/cli/README.AUTOGEN.md index f0720705c7..995f690dfd 100644 --- a/ts/packages/cli/README.AUTOGEN.md +++ b/ts/packages/cli/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # agent-cli — AI-generated documentation @@ -12,46 +12,62 @@ ## Overview -The `agent-cli` package provides a command-line interface (CLI) for interacting with the TypeAgent system. It enables users to connect to the TypeAgent Dispatcher, send requests, and manage conversations with agents. The CLI supports various subcommands for different functionalities, including connecting to the dispatcher, running commands non-interactively, and replaying chat histories for testing purposes. +The `agent-cli` package is a command-line interface (CLI) for interacting with the TypeAgent system. It serves as a front-end to the TypeAgent Dispatcher, enabling users to send requests, manage conversations, and perform various operations with agents. The CLI supports multiple subcommands, including interactive and non-interactive modes, as well as tools for testing and managing data. ## What it does -The `agent-cli` package offers several subcommands to interact with the TypeAgent system. The primary subcommand is `connect`, which is the default when no subcommand is specified. This command allows users to interact with the TypeAgent Dispatcher in real-time, sending requests and receiving responses. Other subcommands include: - -- **`run`**: Execute dispatcher commands non-interactively. This includes sending requests, translating them, or generating explanations. -- **`replay`**: Replay chat histories for regression testing or generating test files. -- **`conversations`**: Manage conversations on the agent server, including creating, deleting, listing, and renaming conversations. -- **`data`**: Manage explanation test data, such as adding new data or comparing differences between datasets. - -These commands provide a comprehensive interface for interacting with the TypeAgent system, enabling users to perform actions, translate requests, and manage conversations effectively. +The `agent-cli` package provides several subcommands to interact with the TypeAgent system: + +- **`connect`**: The default subcommand, used for real-time interaction with the TypeAgent Dispatcher. Users can send requests, receive responses, and manage conversations interactively. +- **`run`**: Executes dispatcher commands non-interactively. This includes: + - `request`: Sends a request to the dispatcher without confirmation. + - `translate`: Translates a user request into an action. + - `explain`: Generates an explanation for a specific request-to-action mapping. +- **`replay`**: Replays chat histories for regression testing or generating test files. Supports options for translation-only mode and test file generation. +- **`conversations`**: Manages conversations on the agent server. Subcommands include: + - `create`: Creates a new conversation. + - `delete`: Deletes an existing conversation. + - `list`: Lists all conversations. + - `rename`: Renames a conversation. +- **`data`**: Manages explanation test data. Subcommands include: + - `add`: Adds new data to the explanation test dataset. + - `diff`: Compares differences between datasets. + +These commands provide a comprehensive interface for interacting with the TypeAgent system, enabling users to perform actions, manage conversations, and test functionalities effectively. ## Setup To set up and use the `agent-cli` package, follow these steps: -1. **Build the workspace**: Ensure the workspace root (repo `ts` directory) is set up and built. Run `pnpm setup` to create the global bin for `pnpm` if not already done. +1. **Build the workspace**: + + - Navigate to the workspace root (repo `ts` directory) and run `pnpm setup` to initialize the environment. + - Build the project using the appropriate commands in the workspace root. + 2. **Run the CLI**: + - From the workspace root, use `pnpm run cli` or `pnpm run cli:dev` to start the CLI. - Alternatively, navigate to the `agent-cli` package directory and run the CLI directly: - On Linux: `./bin/run.js` (or `./bin/dev.js` for development). - On Windows: `.\bin\run` (or `.\bin\dev` for development). + 3. **Optional global linking**: - Run `pnpm link --global` in the package directory to link the CLI globally. - Use `agent-cli` (or `agent-cli-dev` for the development version) to invoke the CLI globally. - To unlink, run `pnpm uninstall --global agent-cli`. -For more details on setup and usage, refer to the hand-written README. +For additional details, refer to the hand-written README. ## Key Files -The `agent-cli` package is organized into several key files and directories, each responsible for specific functionalities: +The `agent-cli` package is organized into several key files and directories: -- **`src/commands/`**: Contains the implementation of CLI subcommands. +- **`src/commands/`**: Contains the implementation of all CLI subcommands. - - **`connect.ts`**: Implements the `connect` subcommand, which allows users to interact with the TypeAgent Dispatcher in real-time. - - **`run/index.ts`**: Handles the `run` subcommand for executing dispatcher commands non-interactively. - - **`replay.ts`**: Manages the `replay` subcommand for replaying chat histories. - - **`conversations/`**: Includes commands for managing conversations: + - **`connect.ts`**: Implements the `connect` subcommand for real-time interaction with the TypeAgent Dispatcher. + - **`run/index.ts`**: Handles the `run` subcommand for non-interactive dispatcher commands. + - **`replay.ts`**: Implements the `replay` subcommand for replaying chat histories. + - **`conversations/`**: Contains commands for managing conversations: - `create.ts`: Create a new conversation. - `delete.ts`: Delete an existing conversation. - `list.ts`: List all conversations. @@ -60,9 +76,9 @@ The `agent-cli` package is organized into several key files and directories, eac - `add.ts`: Add new data to the explanation test dataset. - `diff.ts`: Compare differences between datasets. -- **Dependencies**: The package relies on several internal dependencies from the TypeAgent monorepo, such as: - - `@typeagent/action-schema`, `@typeagent/agent-sdk`, `@typeagent/agent-server-client`, and others for core functionality. - - External libraries like `@oclif/core` for CLI scaffolding and `chalk` for terminal output formatting. +- **Dependencies**: + - Internal dependencies include `@typeagent/action-schema`, `@typeagent/agent-sdk`, `@typeagent/agent-server-client`, and others for core functionality. + - External dependencies include `@oclif/core` for CLI scaffolding, `chalk` for terminal output formatting, and `dotenv` for environment variable management. ## How to extend @@ -71,7 +87,7 @@ To extend the `agent-cli` package, follow these steps: 1. **Identify the command to extend or create**: - Explore the `src/commands/` directory to locate existing commands. - - If creating a new command, decide on its purpose and structure. + - If creating a new command, determine its purpose and structure. 2. **Create a new command**: @@ -94,8 +110,6 @@ To extend the `agent-cli` package, follow these steps: For example, to add a command for exporting conversation logs, you might create a file `src/commands/conversations/export.ts` and implement logic to fetch and save logs from the agent server. -By following these steps, you can extend the `agent-cli` package to support additional functionalities and improve its utility. - ## Reference > ⚙️ **Auto-generated, no AI involvement.** Built deterministically from `package.json`, `src/`, and the workspace dependency graph at the commit recorded in the staleness footer at the end of this file. Hand edits to this file will be overwritten on the next run. @@ -131,6 +145,6 @@ External: `@oclif/core`, `@oclif/plugin-help`, `chalk`, `debug`, `dotenv`, `html --- -_Auto-generated against commit `366aaf867a7e8e5d130b6c87a365516bab725269` on `2026-07-07T09:05:05.703Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter agent-cli docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter agent-cli docs:verify-links` to spot-check._ diff --git a/ts/packages/cli/src/enhancedConsole.ts b/ts/packages/cli/src/enhancedConsole.ts index 2dd4689ef5..3fda19b454 100644 --- a/ts/packages/cli/src/enhancedConsole.ts +++ b/ts/packages/cli/src/enhancedConsole.ts @@ -18,7 +18,11 @@ import { DisplayContent, MessageContent, } from "@typeagent/agent-sdk"; -import { getContentForType } from "@typeagent/agent-sdk/helpers/display"; +import { + getContentForType, + getStructuredFallback, + isStructuredContent, +} from "@typeagent/agent-sdk/helpers/display"; import type { RequestId, ClientIO, @@ -709,14 +713,20 @@ export function createEnhancedClientIO( if (typeof content === "string" || Array.isArray(content)) { message = content; } else { - // CLI prefers text alternates when available - const textContent = getContentForType(content, "text"); - if (textContent !== undefined && content.type !== "text") { - message = textContent; + if (isStructuredContent(content)) { + // CLI gets the text fallback; no interactive table rendering yet. + message = getStructuredFallback(content, "text"); contentType = "text"; } else { - message = content.content; - contentType = content.type || "text"; + // CLI prefers text alternates when available + const textContent = getContentForType(content, "text"); + if (textContent !== undefined && content.type !== "text") { + message = textContent; + contentType = "text"; + } else { + message = content.content; + contentType = content.type || "text"; + } } switch (content.kind) { case "status": diff --git a/ts/packages/commandExecutor/README.AUTOGEN.md b/ts/packages/commandExecutor/README.AUTOGEN.md index 54fb38033b..3d593df12c 100644 --- a/ts/packages/commandExecutor/README.AUTOGEN.md +++ b/ts/packages/commandExecutor/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # command-executor-mcp — AI-generated documentation @@ -12,19 +12,19 @@ ## Overview -The `command-executor-mcp` package is an MCP (Model Context Protocol) server that facilitates the execution of user commands such as playing music, managing lists, and working with calendars. It acts as a bridge between MCP clients (e.g., Claude Code) and the TypeAgent system, translating natural language commands into structured actions that the TypeAgent dispatcher can process. +The `command-executor-mcp` package is an MCP (Model Context Protocol) server designed to execute user commands such as playing music, managing lists, and working with calendars. It serves as a bridge between MCP clients (e.g., Claude Code) and the TypeAgent system, translating natural language commands into structured actions that the TypeAgent dispatcher can process. ## What it does -This package provides the following core functionalities: +The `command-executor-mcp` package provides the following key functionalities: -1. **Natural Language Command Execution**: Using the `execute_command` action, the server processes user commands like "play Bohemian Rhapsody by Queen" or "add milk to my shopping list" and forwards them to the TypeAgent dispatcher for execution. +1. **Natural Language Command Execution**: The `execute_command` action processes user commands like "play Bohemian Rhapsody by Queen" or "add milk to my shopping list" and forwards them to the TypeAgent dispatcher for execution. 2. **Schema Discovery**: The `discover_schemas` action allows clients to query the available capabilities of the TypeAgent system, such as weather information, email handling, or calendar management. -3. **Dynamic Schema Loading**: With the `load_schema` action, new schemas can be dynamically loaded at runtime, enabling the server to register and expose new agent actions without restarting. +3. **Dynamic Schema Loading**: The `load_schema` action enables dynamic loading of new schemas at runtime, allowing the server to register and expose new agent actions without requiring a restart. 4. **Direct Action Invocation**: The `typeagent_action` action provides a fallback mechanism for invoking structured actions that are not exposed as individual tools. 5. **Debugging and Connectivity**: The `ping` action is available for testing server connectivity and debugging purposes. -The server connects to the TypeAgent dispatcher via WebSocket and supports automatic reconnection, ensuring reliability even if the dispatcher becomes temporarily unavailable. +The server connects to the TypeAgent dispatcher via WebSocket and includes automatic reconnection capabilities to handle temporary unavailability of the dispatcher. ## Setup @@ -142,6 +142,6 @@ _3 environment variables referenced from `./src/` (set in `ts/.env` or your shel --- -_Auto-generated against commit `366aaf867a7e8e5d130b6c87a365516bab725269` on `2026-07-07T09:05:05.703Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter command-executor-mcp docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter command-executor-mcp docs:verify-links` to spot-check._ diff --git a/ts/packages/commandExecutor/src/commandServer.ts b/ts/packages/commandExecutor/src/commandServer.ts index dea7b72861..d98a984727 100644 --- a/ts/packages/commandExecutor/src/commandServer.ts +++ b/ts/packages/commandExecutor/src/commandServer.ts @@ -19,6 +19,10 @@ import type { import type { Dispatcher } from "@typeagent/dispatcher-types"; import { awaitCommand } from "@typeagent/dispatcher-types"; import { DisplayAppendMode } from "@typeagent/agent-sdk"; +import { + getStructuredFallback, + isStructuredContent, +} from "@typeagent/agent-sdk/helpers/display"; import * as fs from "fs"; import * as path from "path"; import * as os from "os"; @@ -99,8 +103,15 @@ type ExecuteActionRequest = { // ── Utilities ───────────────────────────────────────────────────────────────── -function toolResult(result: string): CallToolResult { - return { content: [{ type: "text", text: result }] }; +function toolResult(result: string, rawData?: unknown): CallToolResult { + const out: CallToolResult = { content: [{ type: "text", text: result }] }; + if (rawData !== undefined) { + // MCP structuredContent must be Record; wrap arrays. + out.structuredContent = Array.isArray(rawData) + ? ({ data: rawData } as Record) + : (rawData as Record); + } + return out; } function stripAnsi(text: string): string { @@ -170,7 +181,7 @@ class Logger { function createMcpClientIO( logger: Logger, - responseCollector: { messages: string[] }, + responseCollector: { messages: string[]; rawData?: unknown }, getConfirmedFlag: () => boolean, ): ClientIO { return { @@ -193,6 +204,13 @@ function createMcpClientIO( } if (typeof msg === "string") { responseCollector.messages.push(stripAnsi(msg)); + } else if (isStructuredContent(msg)) { + responseCollector.messages.push( + stripAnsi(String(getStructuredFallback(msg, "text"))), + ); + if (msg.rawData !== undefined) { + responseCollector.rawData = msg.rawData; + } } else if (typeof msg === "object" && msg && "content" in msg) { responseCollector.messages.push( stripAnsi(String(msg.content)), @@ -220,6 +238,13 @@ function createMcpClientIO( } if (typeof msg === "string") { responseCollector.messages.push(stripAnsi(msg)); + } else if (isStructuredContent(msg)) { + responseCollector.messages.push( + stripAnsi(String(getStructuredFallback(msg, "text"))), + ); + if (msg.rawData !== undefined) { + responseCollector.rawData = msg.rawData; + } } else if (typeof msg === "object" && msg && "content" in msg) { responseCollector.messages.push( stripAnsi(String(msg.content)), @@ -317,7 +342,9 @@ export class CommandServer { private isConnecting: boolean = false; private reconnectDelayMs: number = 5000; private logger: Logger; - private responseCollector: { messages: string[] } = { messages: [] }; + private responseCollector: { messages: string[]; rawData?: unknown } = { + messages: [], + }; private currentRequestConfirmed: boolean = false; private config: ResolvedAgentServerConfig; @@ -619,6 +646,7 @@ export class CommandServer { if (request.cacheCheck) { try { this.responseCollector.messages = []; + this.responseCollector.rawData = undefined; const cacheResult = await this.dispatcher.checkCache( request.request, ); @@ -630,6 +658,7 @@ export class CommandServer { this.responseCollector.messages.join("\n\n"); return toolResult( `CACHE_HIT: ${await processHtmlContent(response)}`, + this.responseCollector.rawData, ); } return toolResult( @@ -649,6 +678,7 @@ export class CommandServer { try { this.responseCollector.messages = []; + this.responseCollector.rawData = undefined; const result = await awaitCommand(this.dispatcher, request.request); if (result?.lastError) { @@ -659,7 +689,10 @@ export class CommandServer { if (this.responseCollector.messages.length > 0) { const response = this.responseCollector.messages.join("\n\n"); - return toolResult(await processHtmlContent(response)); + return toolResult( + await processHtmlContent(response), + this.responseCollector.rawData, + ); } return toolResult(`Successfully executed: ${request.request}`); } catch (error) { @@ -893,6 +926,7 @@ export class CommandServer { this.logger.log(`Dispatching: ${actionCommand}`); this.responseCollector.messages = []; + this.responseCollector.rawData = undefined; try { const result = await awaitCommand(this.dispatcher, actionCommand); @@ -901,7 +935,10 @@ export class CommandServer { } if (this.responseCollector.messages.length > 0) { const response = this.responseCollector.messages.join("\n\n"); - return toolResult(await processHtmlContent(response)); + return toolResult( + await processHtmlContent(response), + this.responseCollector.rawData, + ); } return toolResult( `✓ Action ${request.actionName} executed successfully`, diff --git a/ts/packages/copilot-plugin/README.AUTOGEN.md b/ts/packages/copilot-plugin/README.AUTOGEN.md index 4467761b40..25aaac20f7 100644 --- a/ts/packages/copilot-plugin/README.AUTOGEN.md +++ b/ts/packages/copilot-plugin/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # @typeagent/copilot-plugin — AI-generated documentation @@ -12,19 +12,19 @@ ## Overview -The `@typeagent/copilot-plugin` package is a TypeAgent integration plugin for the GitHub Copilot CLI. It enables the routing of action requests (e.g., calendar, email, music, browser automation) to TypeAgent for handling before they are passed to the Copilot LLM. +The `@typeagent/copilot-plugin` package integrates TypeAgent with the GitHub Copilot CLI, enabling action requests such as scheduling, email, music playback, and browser automation to be routed to TypeAgent for handling before reaching the Copilot LLM. This plugin enhances the capabilities of the Copilot CLI by leveraging TypeAgent's action-handling features. ## What it does -This plugin acts as a bridge between the GitHub Copilot CLI and TypeAgent. It intercepts user inputs and determines whether they are action requests or general questions. Based on the input type, the plugin routes the request as follows: +The plugin intercepts user inputs in the Copilot CLI and determines whether they are action requests or general questions. Based on the input type, it routes the request as follows: -- **Action Requests**: These are routed to TypeAgent, which can handle them directly or via the MCP server. If TypeAgent recognizes the action, it processes the request and returns a response, bypassing the Copilot LLM. -- **General Questions**: These are passed through to the Copilot LLM for processing. +- **Action Requests**: Routed to TypeAgent for direct handling. If TypeAgent recognizes the action, it processes the request and returns a response, bypassing the Copilot LLM entirely. +- **General Questions**: Passed through to the Copilot LLM for processing. The plugin supports two integration modes: -1. **Direct Mode**: The plugin connects directly to TypeAgent over WebSocket. Recognized actions are handled by TypeAgent, and the response is returned directly to the user. This mode is faster and does not consume LLM tokens but does not support streaming output. -2. **MCP Mode**: The plugin modifies the prompt to instruct the LLM to call the `typeagent-processCommand` MCP tool. This mode allows for streaming output and LLM-formatted responses but is slower and consumes LLM tokens. +1. **Direct Mode**: Connects directly to TypeAgent over WebSocket. Recognized actions are handled by TypeAgent, and the response is returned directly to the user. This mode is faster and avoids consuming LLM tokens but does not support streaming output. +2. **MCP Mode**: Modifies the prompt to instruct the LLM to call the `typeagent-processCommand` MCP tool. This mode allows for streaming output and LLM-formatted responses but is slower and consumes LLM tokens. The plugin also provides hooks for various stages of user input processing, such as logging, debugging, and tracking interactions in TypeAgent history. @@ -131,7 +131,7 @@ To extend the functionality of the `@typeagent/copilot-plugin`, follow these ste ``` - Launch the Copilot CLI with the plugin to test your changes in a real-world scenario: ```powershell - copilot --plugin-dir D:\repos\TypeAgent\ts\packages\copilot-plugin + copilot --plugin-dir D:\repos\TypeAgent\ts\packages/copilot-plugin ``` 5. **Update Documentation**: @@ -175,6 +175,6 @@ _7 environment variables referenced from `./src/` (set in `ts/.env` or your shel --- -_Auto-generated against commit `366aaf867a7e8e5d130b6c87a365516bab725269` on `2026-07-07T09:05:05.703Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter @typeagent/copilot-plugin docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter @typeagent/copilot-plugin docs:verify-links` to spot-check._ diff --git a/ts/packages/copilot-plugin/src/shared/message-formatter.ts b/ts/packages/copilot-plugin/src/shared/message-formatter.ts index 632208ea7a..553596a920 100644 --- a/ts/packages/copilot-plugin/src/shared/message-formatter.ts +++ b/ts/packages/copilot-plugin/src/shared/message-formatter.ts @@ -7,7 +7,15 @@ */ import type { IAgentMessage } from "@typeagent/agent-server-client"; -import type { DisplayAppendMode } from "@typeagent/agent-sdk"; +import type { + DisplayAppendMode, + DisplayContent, + StructuredContent, +} from "@typeagent/agent-sdk"; +import { + getStructuredFallback, + isStructuredContent, +} from "@typeagent/agent-sdk/helpers/display"; import { convert } from "html-to-text"; /** @@ -27,6 +35,9 @@ function extractText(msg: unknown): string | undefined { if (typeof msg === "string") { text = msg; + } else if (isStructuredContent(msg as DisplayContent)) { + // StructuredContent — use the pre-derived text alternate. + text = String(getStructuredFallback(msg as StructuredContent, "text")); } else if (typeof msg === "object" && msg && "content" in msg) { text = String((msg as { content: unknown }).content); if ("type" in msg && (msg as { type: unknown }).type === "html") { diff --git a/ts/packages/dispatcher/dispatcher/README.AUTOGEN.md b/ts/packages/dispatcher/dispatcher/README.AUTOGEN.md index 5cae3e8ea7..94afc0ec86 100644 --- a/ts/packages/dispatcher/dispatcher/README.AUTOGEN.md +++ b/ts/packages/dispatcher/dispatcher/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # agent-dispatcher — AI-generated documentation @@ -12,11 +12,11 @@ ## Overview -The TypeAgent Dispatcher is a TypeScript library that serves as the central hub for processing user requests and coordinating interactions between various application agents in the TypeAgent ecosystem. It enables natural language interfaces by leveraging large language models (LLMs) to translate user inputs into structured actions. The Dispatcher is designed to be extensible and scalable, making it a critical component for building personal agents that can be integrated into different front ends, such as the TypeAgent Shell and CLI. +The TypeAgent Dispatcher is a TypeScript library that acts as the central hub for processing user requests and coordinating interactions between various application agents in the TypeAgent ecosystem. It enables natural language interfaces by leveraging large language models (LLMs) to translate user inputs into structured actions. The Dispatcher is designed to be extensible and scalable, making it a critical component for building personal agents that can be integrated into different front ends, such as the TypeAgent Shell and CLI. ## What it does -The Dispatcher is responsible for interpreting user inputs, which can be either natural language requests or system commands, and converting them into structured actions. These actions are defined by schemas provided by application agents. The Dispatcher also manages dynamic switching between agents to handle diverse tasks, ensuring a cohesive user experience. +The Dispatcher interprets user inputs, which can be either natural language requests or system commands, and converts them into structured actions. These actions are defined by schemas provided by application agents. The Dispatcher also dynamically switches between agents to handle diverse tasks, ensuring a unified user experience. ### Natural Language Requests @@ -236,6 +236,6 @@ _9 environment variables referenced from `./src/` (set in `ts/.env` or your shel --- -_Auto-generated against commit `5c9fc637c2f0a96d75d41a3bc9054d06247d26d8` on `2026-07-15T08:50:41.068Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter agent-dispatcher docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter agent-dispatcher docs:verify-links` to spot-check._ diff --git a/ts/packages/dispatcher/dispatcher/src/context/interactiveIO.ts b/ts/packages/dispatcher/dispatcher/src/context/interactiveIO.ts index 5b29cacbd4..2e88b8cf88 100644 --- a/ts/packages/dispatcher/dispatcher/src/context/interactiveIO.ts +++ b/ts/packages/dispatcher/dispatcher/src/context/interactiveIO.ts @@ -43,6 +43,7 @@ export function makeClientIOMessage( if ( typeof message === "object" && !Array.isArray(message) && + message.type !== "structured" && message.kind === "error" ) { const commandResult = getCommandResult(context); diff --git a/ts/packages/dispatcher/dispatcher/src/helpers/console.ts b/ts/packages/dispatcher/dispatcher/src/helpers/console.ts index 3e72a484cf..415274b318 100644 --- a/ts/packages/dispatcher/dispatcher/src/helpers/console.ts +++ b/ts/packages/dispatcher/dispatcher/src/helpers/console.ts @@ -7,7 +7,11 @@ import { DisplayContent, MessageContent, } from "@typeagent/agent-sdk"; -import { getContentForType } from "@typeagent/agent-sdk/helpers/display"; +import { + getContentForType, + getStructuredFallback, + isStructuredContent, +} from "@typeagent/agent-sdk/helpers/display"; import type { RequestId, ClientIO, @@ -82,6 +86,9 @@ function createConsoleClientIO( let message: MessageContent; if (typeof content === "string" || Array.isArray(content)) { message = content; + } else if (isStructuredContent(content)) { + // Console gets the text fallback; no interactive rendering. + message = getStructuredFallback(content, "text"); } else { // Console prefers text alternates when available const textContent = getContentForType(content, "text"); diff --git a/ts/packages/shell/README.AUTOGEN.md b/ts/packages/shell/README.AUTOGEN.md index 86b7433f4f..0b268f2135 100644 --- a/ts/packages/shell/README.AUTOGEN.md +++ b/ts/packages/shell/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # agent-shell — AI-generated documentation @@ -12,11 +12,11 @@ ## Overview -The `agent-shell` package is a TypeScript library that serves as the graphical user interface (GUI) entry point for the TypeAgent ecosystem. It provides a personal agent interface for processing user requests, performing actions, answering questions, and managing conversations. Built on Electron, it integrates with other TypeAgent components, such as the dispatcher and agent server, to deliver an interactive and extensible experience. The shell supports both text and voice input, multi-conversation management, and local or remote operation modes. +The `agent-shell` package is a TypeScript library that serves as the graphical user interface (GUI) entry point for the TypeAgent ecosystem. It provides a personal agent interface for processing user requests, performing actions, answering questions, and managing conversations. Built on Electron, the shell integrates with other TypeAgent components, such as the dispatcher and agent server, to deliver an interactive and extensible experience. It supports both text and voice input, multi-conversation management, and can operate in either local or remote modes. ## What it does -The `agent-shell` package offers a range of features to enable interactive and conversational agent experiences: +The `agent-shell` package offers a variety of features to enable interactive and conversational agent experiences: ### Conversation Management @@ -172,6 +172,6 @@ _5 environment variables referenced from `./src/` (set in `ts/.env` or your shel --- -_Auto-generated against commit `5c9fc637c2f0a96d75d41a3bc9054d06247d26d8` on `2026-07-15T08:50:41.068Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter agent-shell docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter agent-shell docs:verify-links` to spot-check._ diff --git a/ts/packages/shell/src/renderer/src/chatPanelBridge.ts b/ts/packages/shell/src/renderer/src/chatPanelBridge.ts index 09adbcdee3..8f7d90ab42 100644 --- a/ts/packages/shell/src/renderer/src/chatPanelBridge.ts +++ b/ts/packages/shell/src/renderer/src/chatPanelBridge.ts @@ -920,30 +920,52 @@ export function createChatPanelClient( }); break; case AppAgentEvent.Inline: - chatPanel.showInline(data, source); - if (source !== "osNotifications") { - notifications.push({ - event, - source, + if (source === "osNotifications") { + // OS notifications render as persistent, dismissable + // bubbles (removed on osDismiss), NOT ephemeral + // toast/inline rows. The notificationId ("os:") + // arrives as the notify requestId. + chatPanel.addNotification( data, - read: false, - requestId, - }); + source, + ridStr(requestId)!, + ); + break; } + chatPanel.showInline(data, source); + notifications.push({ + event, + source, + data, + read: false, + requestId, + }); break; case AppAgentEvent.Toast: - chatPanel.showToast(data, source); - if (source !== "osNotifications") { - notifications.push({ - event, - source, + if (source === "osNotifications") { + chatPanel.addNotification( data, - read: false, - requestId, - }); + source, + ridStr(requestId)!, + ); + break; } + chatPanel.showToast(data, source); + notifications.push({ + event, + source, + data, + read: false, + requestId, + }); break; case "osDismiss": + // The OS notification left the action center — drop the + // corresponding persistent bubble. data.id matches the + // notificationId ("os:") used on the "added" event. + if (data && typeof data.id === "string") { + chatPanel.removeNotification(data.id); + } break; default: break; diff --git a/ts/packages/vscode-chat/README.AUTOGEN.md b/ts/packages/vscode-chat/README.AUTOGEN.md index 8491e72b60..8c221acd7d 100644 --- a/ts/packages/vscode-chat/README.AUTOGEN.md +++ b/ts/packages/vscode-chat/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # vscode-chat — AI-generated documentation @@ -12,7 +12,7 @@ ## Overview -The `vscode-chat` package integrates TypeAgent as a third-party agent within Visual Studio Code's native Chat view. This extension uses the proposed `chatSessionsProvider` API to enable users to interact with TypeAgent sessions directly in VS Code. Conversations initiated through this extension, the Electron shell, the CLI, or `vscode-shell` are synchronized and appear as session items in the Chat sidebar. Prompts sent in these sessions are routed through a running TypeAgent agent server. +The `vscode-chat` package integrates TypeAgent as a third-party agent within Visual Studio Code's native Chat view. It leverages the proposed `chatSessionsProvider` API to allow users to interact with TypeAgent sessions directly in VS Code. Conversations initiated through this extension, the Electron shell, the CLI, or `vscode-shell` are synchronized and appear as session items in the Chat sidebar. Prompts sent in these sessions are routed through a running TypeAgent agent server. ## What it does @@ -123,6 +123,6 @@ External: `ansi_up`, `debug` --- -_Auto-generated against commit `defc71271dc68db47e0d376be7aa9f755da0ac91` on `2026-07-14T08:47:00.044Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter vscode-chat docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter vscode-chat docs:verify-links` to spot-check._ diff --git a/ts/packages/vscode-chat/src/displayRender.ts b/ts/packages/vscode-chat/src/displayRender.ts index db9ba4c373..2ff84cf288 100644 --- a/ts/packages/vscode-chat/src/displayRender.ts +++ b/ts/packages/vscode-chat/src/displayRender.ts @@ -6,9 +6,15 @@ import type { DisplayContent, DisplayType, MessageContent, + StructuredBlock, + StructuredContent, + TableCell, TypedDisplayContent, } from "@typeagent/agent-sdk"; -import { getContentForType } from "@typeagent/agent-sdk/helpers/display"; +import { + getContentForType, + isStructuredContent, +} from "@typeagent/agent-sdk/helpers/display"; import { AnsiUp } from "ansi_up"; const ansiUpTextToHtml = new AnsiUp(); @@ -19,15 +25,144 @@ export function renderDisplayToMarkdown(content: DisplayContent): string { if (typeof content === "string") return renderMessageContent(content, "text"); if (Array.isArray(content)) return renderMessageContent(content, "text"); + if (isStructuredContent(content)) { + return applyKind(renderStructuredToMarkdown(content), content.kind); + } return renderTypedContent(content); } export function renderDisplayToText(content: DisplayContent): string { if (typeof content === "string") return stripAnsi(content); if (Array.isArray(content)) return renderMessageContentAsText(content); + if (isStructuredContent(content)) { + return renderMessageContentAsText(renderStructuredToMarkdown(content)); + } return renderTypedContentAsText(content); } +// --------------------------------------------------------------------------- +// Structured-content markdown renderer (Phase 3b) +// Renders each block natively using this renderer's own helpers (tableToMarkdown +// with proper pipe-escaping, processAnsiContent, etc.) rather than relying on +// the pre-derived alternate stored in `alternates`. +// --------------------------------------------------------------------------- + +function scCellText(cell: TableCell): string { + if (cell === null || cell === undefined) return ""; + if (typeof cell === "object") return cell.text; + return String(cell); +} + +function scCellMarkdown(cell: TableCell): string { + const text = scCellText(cell); + if (typeof cell === "object" && cell !== null && cell.href) { + return `[${text}](${cell.href})`; + } + return text; +} + +function renderStructuredBlockToMarkdown(block: StructuredBlock): string { + switch (block.kind) { + case "heading": { + const prefix = "#".repeat(block.level ?? 1); + return `${prefix} ${block.text}`; + } + case "text": { + const raw = + typeof block.text === "string" + ? block.text + : Array.isArray(block.text) && + typeof block.text[0] === "string" + ? (block.text as string[]).join("\n") + : (block.text as string[][]) + .map((row) => row.join(" | ")) + .join("\n"); + return processAnsiContent(raw, "markdown"); + } + case "table": { + const { columns, rows, caption } = block; + const headers = columns.map((c) => escapeTableCell(c.header)); + const dataRows = rows.map((row) => + columns.map((_, ci) => + escapeTableCell(scCellMarkdown(row[ci] ?? "")), + ), + ); + const lines = [ + `| ${headers.join(" | ")} |`, + `| ${headers.map(() => "---").join(" | ")} |`, + ...dataRows.map((row) => `| ${row.join(" | ")} |`), + ]; + if (caption) { + lines.unshift(`**${caption}**`); + } + return lines.join("\n"); + } + case "list": { + return block.items + .map((item, index) => { + const marker = block.ordered ? `${index + 1}.` : "-"; + const label = item.href + ? `[${item.text}](${item.href})` + : item.text; + const subtitle = item.subtitle ? ` — ${item.subtitle}` : ""; + return `${marker} ${label}${subtitle}`; + }) + .join("\n"); + } + case "keyValue": + return block.pairs + .map( + (pair) => + `- **${pair.label}:** ${scCellMarkdown(pair.value)}`, + ) + .join("\n"); + case "card": { + const lines: string[] = []; + if (block.title) { + lines.push( + block.href + ? `### [${block.title}](${block.href})` + : `### ${block.title}`, + ); + } + if (block.subtitle) { + lines.push(`*${block.subtitle}*`); + } + if (block.fields) { + lines.push( + ...block.fields.map( + (pair) => + `- **${pair.label}:** ${scCellMarkdown(pair.value)}`, + ), + ); + } + return lines.join("\n"); + } + case "image": { + let md = `![${block.alt ?? ""}](${block.src})`; + if (block.caption) { + md += `\n\n*${block.caption}*`; + } + return md; + } + case "code": + return `\`\`\`${block.language ?? ""}\n${block.code}\n\`\`\``; + case "divider": + return "---"; + default: + return ""; + } +} + +function renderStructuredToMarkdown(content: StructuredContent): string { + return content.blocks + .map(renderStructuredBlockToMarkdown) + .filter((s) => s.length > 0) + .join("\n\n"); +} + +// --------------------------------------------------------------------------- + function renderMessageContentAsText(content: MessageContent): string { if (typeof content === "string") return stripAnsi(content); if (content.length === 0) return ""; diff --git a/ts/packages/vscode-shell/README.AUTOGEN.md b/ts/packages/vscode-shell/README.AUTOGEN.md index 796403b636..d216618ae8 100644 --- a/ts/packages/vscode-shell/README.AUTOGEN.md +++ b/ts/packages/vscode-shell/README.AUTOGEN.md @@ -3,7 +3,7 @@ - + # vscode-shell — AI-generated documentation @@ -12,11 +12,11 @@ ## Overview -The `vscode-shell` package integrates the TypeAgent shell chat into Visual Studio Code, providing a way to interact with TypeAgent conversations directly within the editor. It offers a side panel and editor tabs for managing conversations hosted by a running TypeAgent agent server. +The `vscode-shell` package integrates the TypeAgent shell chat into Visual Studio Code, allowing users to interact with TypeAgent conversations directly within the editor. It provides a side panel and editor tabs for managing conversations hosted by a running TypeAgent agent server. ## What it does -The `vscode-shell` package enables a feature-rich chat experience within Visual Studio Code, tightly integrated with the TypeAgent ecosystem. Its main capabilities include: +The `vscode-shell` package offers a comprehensive chat interface within Visual Studio Code, designed to work with the TypeAgent ecosystem. Key features include: - **Chat Interface**: @@ -174,6 +174,6 @@ External: `ansi_up`, `debug`, `dompurify`, `isomorphic-ws`, `markdown-it`, `micr --- -_Auto-generated against commit `defc71271dc68db47e0d376be7aa9f755da0ac91` on `2026-07-14T08:47:00.044Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter vscode-shell docs:verify-links` to spot-check._ +_Auto-generated against commit `f928ce70269b7d0f8942977c29147b2c8832b722` on `2026-07-15T22:42:29.947Z` by `docs-generate.yml`. Links validated at that commit; the working tree may have drifted by up to 24h. Re-run `pnpm --filter vscode-shell docs:verify-links` to spot-check._ diff --git a/ts/packages/vscode-shell/src/webview/main.ts b/ts/packages/vscode-shell/src/webview/main.ts index 0dd1aff55f..99063a5f6f 100644 --- a/ts/packages/vscode-shell/src/webview/main.ts +++ b/ts/packages/vscode-shell/src/webview/main.ts @@ -896,9 +896,27 @@ window.addEventListener("message", (event) => { clearQueueChip(rid); if (msg.aliasRequestId) clearQueueChip(msg.aliasRequestId); } else if (msg.event === "inline") { - chatPanel.showInline(msg.data, msg.source); + if (msg.source === "osNotifications" && rid) { + // OS notifications render as persistent, dismissable + // bubbles (removed on osDismiss), not ephemeral rows. + // The notificationId ("os:") arrives as requestId. + chatPanel.addNotification(msg.data, msg.source, rid); + } else { + chatPanel.showInline(msg.data, msg.source); + } } else if (msg.event === "toast") { - chatPanel.showToast(msg.data, msg.source); + if (msg.source === "osNotifications" && rid) { + chatPanel.addNotification(msg.data, msg.source, rid); + } else { + chatPanel.showToast(msg.data, msg.source); + } + } else if (msg.event === "osDismiss") { + // The OS notification left the action center — drop the + // matching persistent bubble. data.id is the "os:" + // notificationId used on the corresponding "added" event. + if (msg.data && typeof msg.data.id === "string") { + chatPanel.removeNotification(msg.data.id); + } } else { chatPanel.addSystemMessage(`[${msg.source}] ${msg.event}`); } diff --git a/ts/pnpm-lock.yaml b/ts/pnpm-lock.yaml index 40dc7b5412..ad0c063f7a 100644 --- a/ts/pnpm-lock.yaml +++ b/ts/pnpm-lock.yaml @@ -173,7 +173,7 @@ importers: version: 8.18.1 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)) + version: 29.7.0(@types/node@22.19.19)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)) prettier: specifier: ^3.5.3 version: 3.5.3 @@ -2535,9 +2535,15 @@ importers: '@typeagent/action-schema-compiler': specifier: workspace:* version: link:../../actionSchemaCompiler + '@types/jest': + specifier: ^29.5.7 + version: 29.5.14 concurrently: specifier: ^9.1.2 version: 9.1.2 + jest: + specifier: ^29.7.0 + version: 29.7.0(@types/node@25.9.3)(ts-node@10.9.2(@types/node@25.9.3)(typescript@5.4.5)) rimraf: specifier: ^6.0.1 version: 6.0.1 @@ -2557,9 +2563,15 @@ importers: '@typeagent/action-schema-compiler': specifier: workspace:* version: link:../../actionSchemaCompiler + '@types/jest': + specifier: ^29.5.7 + version: 29.5.14 concurrently: specifier: ^9.1.2 version: 9.1.2 + jest: + specifier: ^29.7.0 + version: 29.7.0(@types/node@25.9.3)(ts-node@10.9.2(@types/node@25.9.3)(typescript@5.4.5)) prettier: specifier: ^3.5.3 version: 3.5.3 @@ -3541,9 +3553,15 @@ importers: '@typeagent/action-schema-compiler': specifier: workspace:* version: link:../../actionSchemaCompiler + '@types/jest': + specifier: ^29.5.7 + version: 29.5.14 concurrently: specifier: ^9.1.2 version: 9.1.2 + jest: + specifier: ^29.7.0 + version: 29.7.0(@types/node@25.9.3)(ts-node@10.9.2(@types/node@25.9.3)(typescript@5.4.5)) prettier: specifier: ^3.5.3 version: 3.5.3 @@ -6392,64 +6410,64 @@ importers: packages: 7zip-bin@5.2.0: - resolution: {integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==} + resolution: {integrity: sha1-egMxRoTdZXK336ieaM4x1gKGhU0=} '@acemir/cssom@0.9.31': - resolution: {integrity: sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==} + resolution: {integrity: sha1-vVM30pD7i+KsGDkfNzhrxTd4sLw=} '@alcalzone/ansi-tokenize@0.1.3': - resolution: {integrity: sha512-3yWxPTq3UQ/FY9p1ErPxIyfT64elWaMvM9lIHnaqpyft63tkxodF5aUElYHrdisWve5cETkh1+KBw1yJuW0aRw==} + resolution: {integrity: sha1-n4mDlWEyWo6aDDI2C40X5ISJmT8=} engines: {node: '>=14.13.1'} '@antfu/install-pkg@1.1.0': - resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} + resolution: {integrity: sha1-ePoDa+GmCBtad6XPWfUMd1K2uiY=} '@anthropic-ai/claude-agent-sdk-darwin-arm64@0.3.162': - resolution: {integrity: sha512-hafbfEtDeYko1rYCgIBAQbYnFXzd/hHf3IcoaD8mmlCQOAQhKA8gT/RPdLuuzQHdOjEgqDGTNOU+IjwL+msYcw==} + resolution: {integrity: sha1-UZ0hvQIcY+n7qsSOIbo6uU1Lw7s=} cpu: [arm64] os: [darwin] '@anthropic-ai/claude-agent-sdk-darwin-x64@0.3.162': - resolution: {integrity: sha512-BNg2Mh/4zc2Jsgpq7Mj8+UH8iJ9xzHS/0CmusBMik0H2Bn7Hra5R/f+csAfZOzSflQl4CNQdGOB2bir7d2n8Ww==} + resolution: {integrity: sha1-Di4TOiXULnuKmWMbA779X2NeNMU=} cpu: [x64] os: [darwin] '@anthropic-ai/claude-agent-sdk-linux-arm64-musl@0.3.162': - resolution: {integrity: sha512-Jr4cyfqzb5V2+p/1PynIfGROOI0JNtV3vBMAgckAdtDzpIFk4mV2T8936tsZzgZr04y40YH1HlQpnJDr92I+Fw==} + resolution: {integrity: sha1-CqED3S+fXiQ9l6HMhSYpoWhse14=} cpu: [arm64] os: [linux] libc: [musl] '@anthropic-ai/claude-agent-sdk-linux-arm64@0.3.162': - resolution: {integrity: sha512-zCXYSimaXWQKZASfDJkoKXQr//toYDGIi16wKDh02Rqcr4mqFi9f5SBw/UCyimkGyYkNx3e+bmC+o/tFrLSTWw==} + resolution: {integrity: sha1-Tlduj+RMdbVhy1nGkU0mX9Vvj/g=} cpu: [arm64] os: [linux] libc: [glibc] '@anthropic-ai/claude-agent-sdk-linux-x64-musl@0.3.162': - resolution: {integrity: sha512-gW9Gpk7W3w3zGFHBDyY8uer/PE6T0pB+emN1aafZAomfseIH1ixJ6ya5Fw2cIS/K0/4oR2pvu4AprlbRBtr45Q==} + resolution: {integrity: sha1-HFdhO+npa0m+rUVY0FEZAsJGmPY=} cpu: [x64] os: [linux] libc: [musl] '@anthropic-ai/claude-agent-sdk-linux-x64@0.3.162': - resolution: {integrity: sha512-FO2+zDuSTsZ/5MqxIwExLxG0c2auA5wO6iICwZdUOWtboC6yU2AEgp4mzF0jbe1UOP0J27uODFpvz7uRpWipkg==} + resolution: {integrity: sha1-5hP03u3nOsIF+bKqgQfsjnDe2KY=} cpu: [x64] os: [linux] libc: [glibc] '@anthropic-ai/claude-agent-sdk-win32-arm64@0.3.162': - resolution: {integrity: sha512-TZQifFDBdhzt1u6wbbpQ2AZcRkhNVYx1iZVfydAbs3L7ZMK264LjRPytBK4n4S413Is1XyLHbGMvEUNA3N+Tng==} + resolution: {integrity: sha1-mt5LQqODj/hQfpxFVJcgxbPY0Sw=} cpu: [arm64] os: [win32] '@anthropic-ai/claude-agent-sdk-win32-x64@0.3.162': - resolution: {integrity: sha512-8ZYDgNxkGp47xwpcEZ6/qUXd4BByA8hTnNf4fJD6+P1wWi7Ofxc/d5jwXSYwajYvBvbbktQDthmGzjtoK3lXUw==} + resolution: {integrity: sha1-fIVcoQnYv9VFem7QejfO6c1/l78=} cpu: [x64] os: [win32] '@anthropic-ai/claude-agent-sdk@0.3.162': - resolution: {integrity: sha512-piAlpc1h6FUMCNU+bnYNNLX1lOgMlFnqZmIhn6Myv48MaNRaecFaZEuVLY+UxV0kjGiQFYHBLR4fk/rRwi2SAA==} + resolution: {integrity: sha1-WvNe28L+TUqeqshn/ZXeFTLBgX0=} engines: {node: '>=18.0.0'} peerDependencies: '@anthropic-ai/sdk': '>=0.93.0' @@ -6457,7 +6475,7 @@ packages: zod: ^4.0.0 '@anthropic-ai/sdk@0.93.0': - resolution: {integrity: sha512-q9vaSZQVFx6B/gPxetGYfLXSJD5v0sOmh0OpZDq7yCrTSA+Rscvrtyol7JJTW40wEpQB4U1B4JXzxQitbQ3CAA==} + resolution: {integrity: sha1-zdbinqllLswW/88ENOje6Iuce3c=} hasBin: true peerDependencies: zod: ^3.25.0 || ^4.0.0 @@ -6466,165 +6484,165 @@ packages: optional: true '@asamuzakjp/css-color@5.0.1': - resolution: {integrity: sha512-2SZFvqMyvboVV1d15lMf7XiI3m7SDqXUuKaTymJYLN6dSGadqp+fVojqJlVoMlbZnlTmu3S0TLwLTJpvBMO1Aw==} + resolution: {integrity: sha1-O5RiqbUvPGaAoJRaPQhRiBAXVQ8=} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} '@asamuzakjp/dom-selector@6.8.1': - resolution: {integrity: sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==} + resolution: {integrity: sha1-ObIJk2crEG982aOppGUhLofgv9E=} '@asamuzakjp/nwsapi@2.3.9': - resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} + resolution: {integrity: sha1-rVVJMi3+nRU9S03W9/8q4jSwbiQ=} '@aws-crypto/crc32@5.2.0': - resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} + resolution: {integrity: sha1-z8wiVwlJyYxmic/L0taT02za4uE=} engines: {node: '>=16.0.0'} '@aws-crypto/crc32c@5.2.0': - resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==} + resolution: {integrity: sha1-TjSqt/QZMHghUJqYubCOhODBkX4=} '@aws-crypto/sha1-browser@5.2.0': - resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==} + resolution: {integrity: sha1-sO4tKCHThh8BfpZe87TLOOO2oPQ=} '@aws-crypto/sha256-browser@5.2.0': - resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} + resolution: {integrity: sha1-FTiV7x26b5/OOK9VDg71iYjrZJ4=} '@aws-crypto/sha256-js@5.2.0': - resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} + resolution: {integrity: sha1-xP23c/2+2aZk/BqVck4gbPOGAEI=} engines: {node: '>=16.0.0'} '@aws-crypto/supports-web-crypto@5.2.0': - resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} + resolution: {integrity: sha1-oeOZrykmm+COaVEJqhXaCge1tfs=} '@aws-crypto/util@5.2.0': - resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} + resolution: {integrity: sha1-cShMnP/nkn3a2seTwU8UiG04dto=} '@aws-sdk/client-s3@3.1004.0': - resolution: {integrity: sha512-m0zNfpsona9jQdX1cHtHArOiuvSGZPsgp/KRZS2YjJhKah96G2UN3UNGZQ6aVjXIQjCY6UanCJo0uW9Xf2U41w==} + resolution: {integrity: sha1-6M2yKwP5+E3ulrq0PKzEr2rccLI=} engines: {node: '>=20.0.0'} '@aws-sdk/core@3.973.18': - resolution: {integrity: sha512-GUIlegfcK2LO1J2Y98sCJy63rQSiLiDOgVw7HiHPRqfI2vb3XozTVqemwO0VSGXp54ngCnAQz0Lf0YPCBINNxA==} + resolution: {integrity: sha1-JicCtKSxI67CuPjY33u4JfCoCP0=} engines: {node: '>=20.0.0'} '@aws-sdk/crc64-nvme@3.972.4': - resolution: {integrity: sha512-HKZIZLbRyvzo/bXZU7Zmk6XqU+1C9DjI56xd02vwuDIxedxBEqP17t9ExhbP9QFeNq/a3l9GOcyirFXxmbDhmw==} + resolution: {integrity: sha1-uZSUx2BkIxqmb3ClsQlWJOeYRwA=} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-env@3.972.16': - resolution: {integrity: sha512-HrdtnadvTGAQUr18sPzGlE5El3ICphnH6SU7UQOMOWFgRKbTRNN8msTxM4emzguUso9CzaHU2xy5ctSrmK5YNA==} + resolution: {integrity: sha1-eyfw6//9l/O9LsoVG5ppP1bYpvw=} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-http@3.972.18': - resolution: {integrity: sha512-NyB6smuZAixND5jZumkpkunQ0voc4Mwgkd+SZ6cvAzIB7gK8HV8Zd4rS8Kn5MmoGgusyNfVGG+RLoYc4yFiw+A==} + resolution: {integrity: sha1-PMJDny9o90iMJzNkZOjf+Ldj3xk=} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-ini@3.972.17': - resolution: {integrity: sha512-dFqh7nfX43B8dO1aPQHOcjC0SnCJ83H3F+1LoCh3X1P7E7N09I+0/taID0asU6GCddfDExqnEvQtDdkuMe5tKQ==} + resolution: {integrity: sha1-R6z46gQUtpcwZ3PAK4sj5pVmXXg=} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-login@3.972.17': - resolution: {integrity: sha512-gf2E5b7LpKb+JX2oQsRIDxdRZjBFZt2olCGlWCdb3vBERbXIPgm2t1R5mEnwd4j0UEO/Tbg5zN2KJbHXttJqwA==} + resolution: {integrity: sha1-99lERcCcGg7RhGlv/l4Uiz/EihM=} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-node@3.972.18': - resolution: {integrity: sha512-ZDJa2gd1xiPg/nBDGhUlat02O8obaDEnICBAVS8qieZ0+nDfaB0Z3ec6gjZj27OqFTjnB/Q5a0GwQwb7rMVViw==} + resolution: {integrity: sha1-vEO2i1JTEWJL8FZ9oOLkFhpRcKc=} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-process@3.972.16': - resolution: {integrity: sha512-n89ibATwnLEg0ZdZmUds5bq8AfBAdoYEDpqP3uzPLaRuGelsKlIvCYSNNvfgGLi8NaHPNNhs1HjJZYbqkW9b+g==} + resolution: {integrity: sha1-L6hudz1VOxhK0CKjabLT2VD0kGk=} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-sso@3.972.17': - resolution: {integrity: sha512-wGtte+48xnhnhHMl/MsxzacBPs5A+7JJedjiP452IkHY7vsbYKcvQBqFye8LwdTJVeHtBHv+JFeTscnwepoWGg==} + resolution: {integrity: sha1-44FEQEG2oxtjsMzjXkm87C20S+s=} engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-web-identity@3.972.17': - resolution: {integrity: sha512-8aiVJh6fTdl8gcyL+sVNcNwTtWpmoFa1Sh7xlj6Z7L/cZ/tYMEBHq44wTYG8Kt0z/PpGNopD89nbj3FHl9QmTA==} + resolution: {integrity: sha1-JgZat9ZpTQYpuhGozCYNaDO/vPk=} engines: {node: '>=20.0.0'} '@aws-sdk/lib-storage@3.1004.0': - resolution: {integrity: sha512-4W6UkeLVd/1FyXFvD9PHMw5FSOY7tsf6+I52jmgdZwDZ9gJcJBx6wF9IhaVp1AXhScZGY9HqHiqYt0qlrSHrGw==} + resolution: {integrity: sha1-GwGM2+FZPsM9NNRybexjpxVCpNU=} engines: {node: '>=20.0.0'} peerDependencies: '@aws-sdk/client-s3': ^3.1004.0 '@aws-sdk/middleware-bucket-endpoint@3.972.7': - resolution: {integrity: sha512-goX+axlJ6PQlRnzE2bQisZ8wVrlm6dXJfBzMJhd8LhAIBan/w1Kl73fJnalM/S+18VnpzIHumyV6DtgmvqG5IA==} + resolution: {integrity: sha1-lcA+lTw/jldOcf3/Gtecuh6yXoA=} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-expect-continue@3.972.7': - resolution: {integrity: sha512-mvWqvm61bmZUKmmrtl2uWbokqpenY3Mc3Jf4nXB/Hse6gWxLPaCQThmhPBDzsPSV8/Odn8V6ovWt3pZ7vy4BFQ==} + resolution: {integrity: sha1-+oleP3QCXeP02JTn8EIfSO6l778=} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-flexible-checksums@3.973.4': - resolution: {integrity: sha512-7CH2jcGmkvkHc5Buz9IGbdjq1729AAlgYJiAvGq7qhCHqYleCsriWdSnmsqWTwdAfXHMT+pkxX3w6v5tJNcSug==} + resolution: {integrity: sha1-d+Y4yI91vw8GBe2dN8vD7EiGjtY=} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-host-header@3.972.7': - resolution: {integrity: sha512-aHQZgztBFEpDU1BB00VWCIIm85JjGjQW1OG9+98BdmaOpguJvzmXBGbnAiYcciCd+IS4e9BEq664lhzGnWJHgQ==} + resolution: {integrity: sha1-sYhJz4B+B0L9+E20HCJYdwvR5FI=} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-location-constraint@3.972.7': - resolution: {integrity: sha512-vdK1LJfffBp87Lj0Bw3WdK1rJk9OLDYdQpqoKgmpIZPe+4+HawZ6THTbvjhJt4C4MNnRrHTKHQjkwBiIpDBoig==} + resolution: {integrity: sha1-WlSh19N+U75udIUl6zW7pxZPmcQ=} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-logger@3.972.7': - resolution: {integrity: sha512-LXhiWlWb26txCU1vcI9PneESSeRp/RYY/McuM4SpdrimQR5NgwaPb4VJCadVeuGWgh6QmqZ6rAKSoL1ob16W6w==} + resolution: {integrity: sha1-/+pOL/Hp2GBHxWTJgtZK3oAXeR4=} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-recursion-detection@3.972.7': - resolution: {integrity: sha512-l2VQdcBcYLzIzykCHtXlbpiVCZ94/xniLIkAj0jpnpjY4xlgZx7f56Ypn+uV1y3gG0tNVytJqo3K9bfMFee7SQ==} + resolution: {integrity: sha1-nWN27nJMm3fWUYxR0LLIsY8fcr8=} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-sdk-s3@3.972.18': - resolution: {integrity: sha512-5E3XxaElrdyk6ZJ0TjH7Qm6ios4b/qQCiLr6oQ8NK7e4Kn6JBTJCaYioQCQ65BpZ1+l1mK5wTAac2+pEz0Smpw==} + resolution: {integrity: sha1-ZI2lvpS7AnF2Q9eOar9BIlYqW88=} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-ssec@3.972.7': - resolution: {integrity: sha512-G9clGVuAml7d8DYzY6DnRi7TIIDRvZ3YpqJPz/8wnWS5fYx/FNWNmkO6iJVlVkQg9BfeMzd+bVPtPJOvC4B+nQ==} + resolution: {integrity: sha1-SfrHtQePjx4JNv8u7b5o7+f8BaQ=} engines: {node: '>=20.0.0'} '@aws-sdk/middleware-user-agent@3.972.19': - resolution: {integrity: sha512-Km90fcXt3W/iqujHzuM6IaDkYCj73gsYufcuWXApWdzoTy6KGk8fnchAjePMARU0xegIR3K4N3yIo1vy7OVe8A==} + resolution: {integrity: sha1-WmyjeLigN2w6ioM5eY0XPQMw+E0=} engines: {node: '>=20.0.0'} '@aws-sdk/nested-clients@3.996.7': - resolution: {integrity: sha512-MlGWA8uPaOs5AiTZ5JLM4uuWDm9EEAnm9cqwvqQIc6kEgel/8s1BaOWm9QgUcfc9K8qd7KkC3n43yDbeXOA2tg==} + resolution: {integrity: sha1-x7Ey8b9h7cRL+OKBrJTYX3RiXXc=} engines: {node: '>=20.0.0'} '@aws-sdk/region-config-resolver@3.972.7': - resolution: {integrity: sha512-/Ev/6AI8bvt4HAAptzSjThGUMjcWaX3GX8oERkB0F0F9x2dLSBdgFDiyrRz3i0u0ZFZFQ1b28is4QhyqXTUsVA==} + resolution: {integrity: sha1-Nv0Ouiv+3rV7hDs82CZvt2aKfoU=} engines: {node: '>=20.0.0'} '@aws-sdk/signature-v4-multi-region@3.996.6': - resolution: {integrity: sha512-NnsOQsVmJXy4+IdPFUjRCWPn9qNH1TzS/f7MiWgXeoHs903tJpAWQWQtoFvLccyPoBgomKP9L89RRr2YsT/L0g==} + resolution: {integrity: sha1-uBjXJPpBHyxb9K2WDtE9qeZVb98=} engines: {node: '>=20.0.0'} '@aws-sdk/token-providers@3.1004.0': - resolution: {integrity: sha512-j9BwZZId9sFp+4GPhf6KrwO8Tben2sXibZA8D1vv2I1zBdvkUHcBA2g4pkqIpTRalMTLC0NPkBPX0gERxfy/iA==} + resolution: {integrity: sha1-nsnOo22CyF+yTASRlMmQqY9mdfU=} engines: {node: '>=20.0.0'} '@aws-sdk/types@3.973.5': - resolution: {integrity: sha512-hl7BGwDCWsjH8NkZfx+HgS7H2LyM2lTMAI7ba9c8O0KqdBLTdNJivsHpqjg9rNlAlPyREb6DeDRXUl0s8uFdmQ==} + resolution: {integrity: sha1-D8APBm26qkDAnyt+/dhngYB7XHA=} engines: {node: '>=20.0.0'} '@aws-sdk/util-arn-parser@3.972.3': - resolution: {integrity: sha512-HzSD8PMFrvgi2Kserxuff5VitNq2sgf3w9qxmskKDiDTThWfVteJxuCS9JXiPIPtmCrp+7N9asfIaVhBFORllA==} + resolution: {integrity: sha1-7ZiYYruxcs4W2eHNV5Dl/jZyGcI=} engines: {node: '>=20.0.0'} '@aws-sdk/util-endpoints@3.996.4': - resolution: {integrity: sha512-Hek90FBmd4joCFj+Vc98KLJh73Zqj3s2W56gjAcTkrNLMDI5nIFkG9YpfcJiVI1YlE2Ne1uOQNe+IgQ/Vz2XRA==} + resolution: {integrity: sha1-n8/sy9nSqCF7ZvcRzzA4g+xEQsA=} engines: {node: '>=20.0.0'} '@aws-sdk/util-locate-window@3.965.5': - resolution: {integrity: sha512-WhlJNNINQB+9qtLtZJcpQdgZw3SCDCpXdUJP7cToGwHbCWCnRckGlc6Bx/OhWwIYFNAn+FIydY8SZ0QmVu3xTQ==} + resolution: {integrity: sha1-4w5v8q/2Q2IJ7ULHZd7C0qSN98A=} engines: {node: '>=20.0.0'} '@aws-sdk/util-user-agent-browser@3.972.7': - resolution: {integrity: sha512-7SJVuvhKhMF/BkNS1n0QAJYgvEwYbK2QLKBrzDiwQGiTRU6Yf1f3nehTzm/l21xdAOtWSfp2uWSddPnP2ZtsVw==} + resolution: {integrity: sha1-DnIF241Hdg3wFP/93L8Mz8NQ6E0=} '@aws-sdk/util-user-agent-node@3.973.4': - resolution: {integrity: sha512-uqKeLqZ9D3nQjH7HGIERNXK9qnSpUK08l4MlJ5/NZqSSdeJsVANYp437EM9sEzwU28c2xfj2V6qlkqzsgtKs6Q==} + resolution: {integrity: sha1-m1FVdAxct/35wfGrNQYERu5Uusg=} engines: {node: '>=20.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -6633,551 +6651,551 @@ packages: optional: true '@aws-sdk/xml-builder@3.972.10': - resolution: {integrity: sha512-OnejAIVD+CxzyAUrVic7lG+3QRltyja9LoNqCE/1YVs8ichoTbJlVSaZ9iSMcnHLyzrSNtvaOGjSDRP+d/ouFA==} + resolution: {integrity: sha1-2KcXG3DI7pNUdH8Kx9No3SfVDkY=} engines: {node: '>=20.0.0'} '@aws/lambda-invoke-store@0.2.3': - resolution: {integrity: sha512-oLvsaPMTBejkkmHhjf09xTgk71mOqyr/409NKhRIL08If7AhVfUsJhVsx386uJaqNd42v9kWamQ9lFbkoC2dYw==} + resolution: {integrity: sha1-8RN/ViCczGnBX4JiQsvzf4KGF90=} engines: {node: '>=18.0.0'} '@azu/format-text@1.0.2': - resolution: {integrity: sha512-Swi4N7Edy1Eqq82GxgEECXSSLyn6GOb5htRFPzBDdUkECGXtlf12ynO5oJSpWKPwCaUssOu7NfhDcCWpIC6Ywg==} + resolution: {integrity: sha1-q9RtqyQi4xK9G/428NQnq2A5gl0=} '@azu/style-format@1.0.1': - resolution: {integrity: sha512-AHcTojlNBdD/3/KxIKlg8sxIWHfOtQszLvOpagLTO+bjC3u7SAszu1lf//u7JJC50aUSH+BVWDD/KvaA6Gfn5g==} + resolution: {integrity: sha1-s2Q68MX+6dU+aal8g1xAS9yA95I=} '@azure-rest/core-client@2.4.0': - resolution: {integrity: sha512-CjMFBcmnt0YNdRcxSSoZbtZNXudLlicdml7UrPsV03nHiWB+Bq5cu5ctieyaCuRtU7jm7+SOFtiE/g4pBFPKKA==} + resolution: {integrity: sha1-sx94hQeMuJ5IDaQ/C6LX1Jz0UwI=} engines: {node: '>=18.0.0'} '@azure-rest/maps-search@2.0.0-beta.3': - resolution: {integrity: sha512-2fouStEqzwa1dXZGH1rys/TVpH5aY1OqF5iGcZlbR8cW1qQtwFcrGQ/hpAeGdOtHWhLblibh6eoqNr1lYTFpBQ==} + resolution: {integrity: sha1-dvoEKU13TBPcX7UaEsKmTehfVNE=} engines: {node: '>=18.0.0'} '@azure/abort-controller@1.1.0': - resolution: {integrity: sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==} + resolution: {integrity: sha1-eI7nhFelWvihrTQqyxgjg9IRkkk=} engines: {node: '>=12.0.0'} '@azure/abort-controller@2.1.2': - resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} + resolution: {integrity: sha1-Qv4MyrI4QdmQWBLFjxCC0neEVm0=} engines: {node: '>=18.0.0'} '@azure/ai-projects@2.2.0': - resolution: {integrity: sha512-pxdEYMK8DI8BxaFhroqoT+1wwHmELn0v+fEWQanQNG2wNI9LdWTrUSChNcUY0l8T8D5Gjxf/irSEEaWCvqHwQQ==} + resolution: {integrity: sha1-DCm9bKe4FM22Liw0N6+mX61Q3vA=} engines: {node: '>=20.0.0'} '@azure/arm-authorization@9.0.0': - resolution: {integrity: sha512-GdiCA8IA1gO+qcCbFEPj+iLC4+3ByjfKzmeAnkP7MdlL84Yo30Huo/EwbZzwRjYybXYUBuFxGPBB+yeTT4Ebxg==} + resolution: {integrity: sha1-aPTsP+er98mGosQFvj33pnv60Ts=} engines: {node: '>=14.0.0'} '@azure/core-auth@1.10.1': - resolution: {integrity: sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg==} + resolution: {integrity: sha1-aKF/qGHr0U9v0xQFV5g1Xva+3xs=} engines: {node: '>=20.0.0'} '@azure/core-auth@1.9.0': - resolution: {integrity: sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw==} + resolution: {integrity: sha1-rHJbA/q+PIkjcQZe6eIEG+4P0aw=} engines: {node: '>=18.0.0'} '@azure/core-client@1.10.1': - resolution: {integrity: sha512-Nh5PhEOeY6PrnxNPsEHRr9eimxLwgLlpmguQaHKBinFYA/RU9+kOYVOQqOrTsCL+KSxrLLl1gD8Dk5BFW/7l/w==} + resolution: {integrity: sha1-g9ePl9ZHqyLmgRp6aLtCI+eh0Bk=} engines: {node: '>=20.0.0'} '@azure/core-client@1.9.2': - resolution: {integrity: sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w==} + resolution: {integrity: sha1-b8ac7igWiDq2xc3WU+5PL/l3T3Q=} engines: {node: '>=18.0.0'} '@azure/core-http-compat@2.1.2': - resolution: {integrity: sha512-5MnV1yqzZwgNLLjlizsU3QqOeQChkIXw781Fwh1xdAqJR5AA32IUaq6xv1BICJvfbHoa+JYcaij2HFkhLbNTJQ==} + resolution: {integrity: sha1-0Vha2iS6dQ3BYdgWFpszs192Lw0=} engines: {node: '>=18.0.0'} '@azure/core-http-compat@2.3.2': - resolution: {integrity: sha512-Tf6ltdKzOJEgxZeWLCjMxrxbodB/ZeCbzzA1A2qHbhzAjzjHoBVSUeSl/baT/oHAxhc4qdqVaDKnc2+iE932gw==} + resolution: {integrity: sha1-u1DiPo827DG1grLRYZJcDSnnWwM=} engines: {node: '>=20.0.0'} peerDependencies: '@azure/core-client': ^1.10.0 '@azure/core-rest-pipeline': ^1.22.0 '@azure/core-lro@2.7.2': - resolution: {integrity: sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==} + resolution: {integrity: sha1-eHEFAnog5Fx3ZRqYsBpNOwG3Wgg=} engines: {node: '>=18.0.0'} '@azure/core-lro@3.2.0': - resolution: {integrity: sha512-SJEAe8fMDnjz2vw9dvEUi0DhAWe1sYkWQVTDc/HDcgNALaszGRopx3U+z1Pg/C9fsYiArp5pTBEcq29Ddph0WA==} + resolution: {integrity: sha1-6Tsvwzad22Vb0ROD62iySXAwXkc=} engines: {node: '>=18.0.0'} '@azure/core-paging@1.6.2': - resolution: {integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==} + resolution: {integrity: sha1-QNOGDcLffykdZjULLP2RcVJkM+c=} engines: {node: '>=18.0.0'} '@azure/core-rest-pipeline@1.20.0': - resolution: {integrity: sha512-ASoP8uqZBS3H/8N8at/XwFr6vYrRP3syTK0EUjDXQy0Y1/AUS+QeIRThKmTNJO2RggvBBxaXDPM7YoIwDGeA0g==} + resolution: {integrity: sha1-kW2NbJz/a1VvCwv9W5I1JtWQ4tk=} engines: {node: '>=18.0.0'} '@azure/core-rest-pipeline@1.22.2': - resolution: {integrity: sha512-MzHym+wOi8CLUlKCQu12de0nwcq9k9Kuv43j4Wa++CsCpJwps2eeBQwD2Bu8snkxTtDKDx4GwjuR9E8yC8LNrg==} + resolution: {integrity: sha1-fhTyHSWrYnzQdnattdmqzY4ulcw=} engines: {node: '>=20.0.0'} '@azure/core-sse@2.2.0': - resolution: {integrity: sha512-6Xg/CeW0jRyMoWt+puw2x6Qqkml3tr76Cn/oA9goIcUXtsi3ngmTwCVbwqkUWfhsOfo4F+78LGgiswSxTHN0sg==} + resolution: {integrity: sha1-ev1FoWUpu/L0b/qs/dZwcyZdr28=} engines: {node: '>=18.0.0'} '@azure/core-tracing@1.2.0': - resolution: {integrity: sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg==} + resolution: {integrity: sha1-e+XVPDUi1jnPGQQsvNsZ9xvDWrI=} engines: {node: '>=18.0.0'} '@azure/core-tracing@1.3.1': - resolution: {integrity: sha512-9MWKevR7Hz8kNzzPLfX4EAtGM2b8mr50HPDBvio96bURP/9C+HjdH3sBlLSNNrvRAr5/k/svoH457gB5IKpmwQ==} + resolution: {integrity: sha1-6XEEXJAeqcEQYWsOHbJyUHeB1fY=} engines: {node: '>=20.0.0'} '@azure/core-util@1.11.0': - resolution: {integrity: sha512-DxOSLua+NdpWoSqULhjDyAZTXFdP/LKkqtYuxxz1SCN289zk3OG8UOpnCQAz/tygyACBtWp/BoO72ptK7msY8g==} + resolution: {integrity: sha1-9TD8Z+c4rqhy+90cyEFucCGfrac=} engines: {node: '>=18.0.0'} '@azure/core-util@1.13.1': - resolution: {integrity: sha512-XPArKLzsvl0Hf0CaGyKHUyVgF7oDnhKoP85Xv6M4StF/1AhfORhZudHtOyf2s+FcbuQ9dPRAjB8J2KvRRMUK2A==} + resolution: {integrity: sha1-bf8v9tPJxkMMb007PmXeUx8Quv4=} engines: {node: '>=20.0.0'} '@azure/core-xml@1.5.0': - resolution: {integrity: sha512-D/sdlJBMJfx7gqoj66PKVmhDDaU6TKA49ptcolxdas29X7AfvLTmfAGLjAcIMBK7UZ2o4lygHIqVckOlQU3xWw==} + resolution: {integrity: sha1-zYLVEde8xUjSBvVifDlyTF1aRDQ=} engines: {node: '>=20.0.0'} '@azure/cosmos@4.9.1': - resolution: {integrity: sha512-fPnfL4JsmJJ/jEYUhlznKfrEr2pMvJwBncGVcUC2Xi7Nlj0MrUMRE+UOrptl/lRV2W7l68Br+b9Ikzm0KiZZHg==} + resolution: {integrity: sha1-AwuYVOkbacjBNmS8uF/dRvraIUk=} engines: {node: '>=20.0.0'} '@azure/identity-broker@1.4.0': - resolution: {integrity: sha512-0JQhUf+VNqurmwfXK7oBSoOg0eEnPEr6yKvArDeMlM4B4eN4ugrKoLUEFgDWUNfixgSGg0SbOrH5iwoBUj1CpQ==} + resolution: {integrity: sha1-yZyMTcIf+WVocZkUbajQ90mapYo=} engines: {node: '>=20.0.0'} '@azure/identity-cache-persistence@1.2.0': - resolution: {integrity: sha512-ZYr6iiE6d/Tkt4jck0cQv9grZ1BR4u5LXJmB1vblU/WGIHspO6Bv3TJMvQat2sQSOG4Wz7busgg0pajP4gNJzA==} + resolution: {integrity: sha1-xu7f/+cjrEIkx/v6rvj3Uyqv2A8=} engines: {node: '>=18.0.0'} '@azure/identity@4.10.0': - resolution: {integrity: sha512-iT53Sre2NJK6wzMWnvpjNiR3md597LZ3uK/5kQD2TkrY9vqhrY5bt2KwELNjkOWQ9n8S/92knj/QEykTtjMNqQ==} + resolution: {integrity: sha1-EM/kkge00RHr46qzreR1YcKFLG0=} engines: {node: '>=18.0.0'} '@azure/identity@4.13.1': - resolution: {integrity: sha512-5C/2WD5Vb1lHnZS16dNQRPMjN6oV/Upba+C9nBIs15PmOi6A3ZGs4Lr2u60zw4S04gi+u3cEXiqTVP7M4Pz3kw==} + resolution: {integrity: sha1-vcCRZYuqWaR+6furSHpLsBhym8M=} engines: {node: '>=20.0.0'} '@azure/keyvault-certificates@4.10.3': - resolution: {integrity: sha512-PgQLfcgsqVPEN8+HYs9L/9sUxd1qkUQa8csuKPFRq3twiIE5Sm1me+1tmoNp5rPCdYoBJSNzi/FYpldHlDeHDw==} + resolution: {integrity: sha1-xv78JrnQG9ECOHL6sv0HYRyb6ZQ=} engines: {node: '>=20.0.0'} '@azure/keyvault-common@2.1.0': - resolution: {integrity: sha512-aCDidWuKY06LWQ4x7/8TIXK6iRqTaRWRL3t7T+LC+j1b07HtoIsOxP/tU90G4jCSBn5TAyUTCtA4MS/y5Hudaw==} + resolution: {integrity: sha1-Zw50FKK/aDcbCz0fmByboCeLd90=} engines: {node: '>=20.0.0'} '@azure/keyvault-keys@4.10.0': - resolution: {integrity: sha512-eDT7iXoBTRZ2n3fLiftuGJFD+yjkiB1GNqzU2KbY1TLYeXeSPVTVgn2eJ5vmRTZ11978jy2Kg2wI7xa9Tyr8ag==} + resolution: {integrity: sha1-dUdujyhYDcI7vJ2sbRZU4THW79U=} engines: {node: '>=18.0.0'} '@azure/keyvault-secrets@4.11.2': - resolution: {integrity: sha512-ECj/kwZbZlQXj2kfWivSICbKwj6W3chmFhv8qUdauqYnjvZ0hWZBFSsZWux7W2nX3MP49PLUCusXk+hAg3pipg==} + resolution: {integrity: sha1-Ngm9ZSp6Nn8UU17FWfgXhkMkr8k=} engines: {node: '>=20.0.0'} '@azure/logger@1.2.0': - resolution: {integrity: sha512-0hKEzLhpw+ZTAfNJyRrn6s+V0nDWzXk9OjBr2TiGIu0OfMr5s2V4FpKLTAK3Ca5r5OKLbf4hkOGDPyiRjie/jA==} + resolution: {integrity: sha1-p5rvzdV9KpZgP6tZyaZuDZAipWQ=} engines: {node: '>=18.0.0'} '@azure/logger@1.3.0': - resolution: {integrity: sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==} + resolution: {integrity: sha1-VQHPhdT1JjBgKozHXfdlaMlpqCc=} engines: {node: '>=20.0.0'} '@azure/maps-common@1.0.0-beta.2': - resolution: {integrity: sha512-PB9GlnfojcQ4nf9WXdQvWeAk7gm8P74o+Z5IHz5YLK/W+3vrNrmVVVuFpGOvCPrLjag50UinaZsMBtPtxoiobg==} + resolution: {integrity: sha1-Cey+hAiSgQAjgn7y2DjyGaUcHDU=} engines: {node: '>=14.0.0'} '@azure/msal-browser@4.12.0': - resolution: {integrity: sha512-WD1lmVWchg7wn1mI7Tr4v7QPyTwK+8Nuyje3jRpOFENLRLEBsdK8VVdTw3C+TypZmYn4cOAdj3zREnuFXgvfIA==} + resolution: {integrity: sha1-D2VoxA/BvvQVOh8p/OH8b/CddbQ=} engines: {node: '>=0.8.0'} '@azure/msal-browser@5.11.0': - resolution: {integrity: sha512-zkGNYS3TwY8lUpPIafAmsFCYZbgFixY9y/LZB9GUg0IILoHTqpN26j5OrkL1AQThh/YdZsawe4iWXfp85lFVxg==} + resolution: {integrity: sha1-As8ggkpKGBWrtQ74jYkQh7cwCcc=} engines: {node: '>=0.8.0'} '@azure/msal-common@15.6.0': - resolution: {integrity: sha512-EotmBz42apYGjqiIV9rDUdptaMptpTn4TdGf3JfjLvFvinSe9BJ6ywU92K9ky+t/b0ghbeTSe9RfqlgLh8f2jA==} + resolution: {integrity: sha1-B2TWRG7v85cCIZleJfJl/bIY2mY=} engines: {node: '>=0.8.0'} '@azure/msal-common@16.6.0': - resolution: {integrity: sha512-FemGljX0csPlBMUE5GUan7BfRn1emeMRUhHSARhqzLN6LA9nt+MgzmAQ1xVqdLm+6plVoxsq9mS5eoyKtpPSgA==} + resolution: {integrity: sha1-Dog6W2oYzwDafJYSLGU18wyPtOU=} engines: {node: '>=0.8.0'} '@azure/msal-common@16.6.2': - resolution: {integrity: sha512-hQjjsekAjB00cM1EmatWJlzhEoK2Qhz7Rj5gvM6tYf8iL7RM3tkxlpU9fG0+ofkulzg9AEEA6dIEnSmDr5ZqUA==} + resolution: {integrity: sha1-SqeR2yxPN/UDv+EPWux2/VUtr44=} engines: {node: '>=0.8.0'} '@azure/msal-node-extensions@1.5.13': - resolution: {integrity: sha512-5JQaPS/hGN5iL1rNBr+t17eVrpIjp8oXnCIrkj8WX4a8YbhlHaw+GhQthetdkMMvJE5RwbdzEN4Vm6zKX9ArGQ==} + resolution: {integrity: sha1-5NKijXb/wvGK0JRbG8wM7PoMIAQ=} engines: {node: '>=16'} '@azure/msal-node-extensions@5.2.0': - resolution: {integrity: sha512-3qrb4wxYBfJarrG9NRG5jRVhZfL9vZaDpeq2RDKPiNnA+e0/TKS8JzvXfIZqxn4VIP6/9P6/SSCJS+Y18LIAuw==} + resolution: {integrity: sha1-KSJ7KH/f3MASoJlhWbromaSThrc=} engines: {node: '>=20'} '@azure/msal-node-runtime@0.18.2': - resolution: {integrity: sha512-v45fyBQp80BrjZAeGJXl+qggHcbylQiFBihr0ijO2eniDCW9tz5TZBKYsqzH06VuiRaVG/Sa0Hcn4pjhJqFSTw==} + resolution: {integrity: sha1-/b5FR1aFIMB6oCCj/ipKa0w+qHk=} '@azure/msal-node-runtime@0.20.5': - resolution: {integrity: sha512-DqY28Lpx67AsMbT3FYal3MnDZx62Pblnhp1qA+HGtgEsm3jK8COkJVCrhVsprn80PKQfAOdKRuxgVYyvmv2rOg==} + resolution: {integrity: sha1-dBs35hgVkO8I6WTXETsMcD+LCBI=} '@azure/msal-node@3.5.3': - resolution: {integrity: sha512-c5mifzHX5mwm5JqMIlURUyp6LEEdKF1a8lmcNRLBo0lD7zpSYPHupa4jHyhJyg9ccLwszLguZJdk2h3ngnXwNw==} + resolution: {integrity: sha1-AveiNEosKZQ1SgzsElue+ajnEJs=} engines: {node: '>=16'} '@azure/msal-node@5.2.0': - resolution: {integrity: sha512-b/ak8XAqpnGk1N1nsyTVV0Remp48BP3QrGQZ1uCMcvg2S8X1eSXzhHQZEae2oX276Q4KFAqCUswanDtcvIKLrw==} + resolution: {integrity: sha1-30hOocJOcbBorvLl6fa8wKAODkQ=} engines: {node: '>=20'} '@azure/search-documents@12.1.0': - resolution: {integrity: sha512-IzD+hfqGqFtXymHXm4RzrZW2MsSH2M7RLmZsKaKVi7SUxbeYTUeX+ALk8gVzkM8ykb7EzlDLWCNErKfAa57rYQ==} + resolution: {integrity: sha1-eTO+ozIX17lWlv6XoZzA9DMbw2o=} engines: {node: '>=18.0.0'} '@azure/storage-blob@12.27.0': - resolution: {integrity: sha512-IQjj9RIzAKatmNca3D6bT0qJ+Pkox1WZGOg2esJF2YLHb45pQKOwGPIAV+w3rfgkj7zV3RMxpn/c6iftzSOZJQ==} + resolution: {integrity: sha1-MGKTBBEXOihGi9OA4K0sYyjXKIo=} engines: {node: '>=18.0.0'} '@babel/code-frame@7.27.1': - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + resolution: {integrity: sha1-IA9xXmbVKiOyIalDVTSpHME61b4=} engines: {node: '>=6.9.0'} '@babel/code-frame@7.29.7': - resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} + resolution: {integrity: sha1-8vu/6ofESiFZDsUVt3iywm2IZuc=} engines: {node: '>=6.9.0'} '@babel/compat-data@7.29.7': - resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} + resolution: {integrity: sha1-bwI38PNtLlHAVwpjb67Z0tDv5ik=} engines: {node: '>=6.9.0'} '@babel/core@7.29.7': - resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} + resolution: {integrity: sha1-gMELFySAgpaLV6hXuRZAlx8gcPc=} engines: {node: '>=6.9.0'} '@babel/generator@7.29.7': - resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} + resolution: {integrity: sha1-zKC4gn5rzzuhdniOfzsYCtbbL6M=} engines: {node: '>=6.9.0'} '@babel/helper-compilation-targets@7.29.7': - resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} + resolution: {integrity: sha1-eh3vcEMCQBxH9k+oVYnpdK4hcEI=} engines: {node: '>=6.9.0'} '@babel/helper-globals@7.29.7': - resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} + resolution: {integrity: sha1-8EqW+9hHMkGxB5JD9bPwOjAQq3s=} engines: {node: '>=6.9.0'} '@babel/helper-module-imports@7.29.7': - resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} + resolution: {integrity: sha1-7yUEilGOgo1zk/rFiC3dc5Idc5Y=} engines: {node: '>=6.9.0'} '@babel/helper-module-transforms@7.29.7': - resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} + resolution: {integrity: sha1-sGJ0elmXuhOGNyATKLv/d5YFdK4=} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-plugin-utils@7.27.1': - resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + resolution: {integrity: sha1-3bL4dlNP+AE+bCspm/TTmzxR1Ew=} engines: {node: '>=6.9.0'} '@babel/helper-string-parser@7.29.7': - resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} + resolution: {integrity: sha1-fwhx2Zgk0jE31g+G/PYTD9WhtR8=} engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.27.1': - resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + resolution: {integrity: sha1-pwVNzBRaln3U3I/uhFpXwTFsnfg=} engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.29.7': - resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + resolution: {integrity: sha1-vYcITO0MeW7Ea9pJLeboPSnon8I=} engines: {node: '>=6.9.0'} '@babel/helper-validator-option@7.29.7': - resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} + resolution: {integrity: sha1-zzFb6UAhOzVOtKvMC9Aevj9zvCo=} engines: {node: '>=6.9.0'} '@babel/helpers@7.29.7': - resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} + resolution: {integrity: sha1-Rav951SJl+NDdsPmn+tHXP+0pgc=} engines: {node: '>=6.9.0'} '@babel/parser@7.29.7': - resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} + resolution: {integrity: sha1-g3uHOHy/XsVTDLY0s8Yi9o7bkzQ=} engines: {node: '>=6.0.0'} hasBin: true '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + resolution: {integrity: sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-bigint@7.8.3': - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + resolution: {integrity: sha1-TJpvZp9dDN8bkKFnHpoUa+UwDOo=} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + resolution: {integrity: sha1-tcmHJ0xKOoK4lxR5aTGmtTVErhA=} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + resolution: {integrity: sha1-GV34mxRrS3izv4l/16JXyEZZ1AY=} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-attributes@7.27.1': - resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} + resolution: {integrity: sha1-NMAX1USW+bEbYUdOfqPf1VY//gc=} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + resolution: {integrity: sha1-7mATSMNw+jNNIge+FYd3SWUh/VE=} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + resolution: {integrity: sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-jsx@7.27.1': - resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + resolution: {integrity: sha1-L5vrXv8w+lB8VTLRB9qse4iPo0w=} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + resolution: {integrity: sha1-ypHvRjA1MESLkGZSusLp/plB9pk=} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + resolution: {integrity: sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak=} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + resolution: {integrity: sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c=} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + resolution: {integrity: sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + resolution: {integrity: sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + resolution: {integrity: sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io=} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + resolution: {integrity: sha1-DcZnHsDqIrbpShEU+FeXDNOd4a0=} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + resolution: {integrity: sha1-wc/a3DWmRiQAAfBhOCR7dBw02Uw=} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-typescript@7.27.1': - resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + resolution: {integrity: sha1-UUfSkGank0UPIgxj+jqUMbfm3Rg=} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-arrow-functions@7.27.1': - resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} + resolution: {integrity: sha1-biBhBnujqwJm2DSp+UgRGW8qupo=} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/runtime@7.27.0': - resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==} + resolution: {integrity: sha1-++58+XxwlRjswfWQmESB1UYNR2I=} engines: {node: '>=6.9.0'} '@babel/template@7.29.7': - resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} + resolution: {integrity: sha1-TZ1ABPZFzdME3pWMclFieE7KxwA=} engines: {node: '>=6.9.0'} '@babel/traverse@7.29.7': - resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} + resolution: {integrity: sha1-xHsHpBuV2gkH0Ca13YlNmN59Ly0=} engines: {node: '>=6.9.0'} '@babel/types@7.29.7': - resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} + resolution: {integrity: sha1-gAXjHYJxLuetrvbiPGO3GmJ3CpI=} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + resolution: {integrity: sha1-daLotRy3WKdVPWgEpZMteqznXDk=} '@bcoe/v8-coverage@1.0.2': - resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} + resolution: {integrity: sha1-u+EtyltO+YOg0K9LB7m8kOoKuro=} engines: {node: '>=18'} '@braintree/sanitize-url@7.1.2': - resolution: {integrity: sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==} + resolution: {integrity: sha1-yiA1sP7+lWqGdv8Maa9z5gX82B8=} '@bramus/specificity@2.4.2': - resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==} + resolution: {integrity: sha1-qo246xc/3ucyT4IoSDMQat7sxkg=} hasBin: true '@chevrotain/types@11.1.2': - resolution: {integrity: sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw==} + resolution: {integrity: sha1-6DoaJwTwxeSedZKyFAMaD0o01+U=} '@cliqz/adblocker-content@1.34.0': - resolution: {integrity: sha512-5LcV8UZv49RWwtpom9ve4TxJIFKd+bjT59tS/2Z2c22Qxx5CW1ncO/T+ybzk31z422XplQfd0ZE6gMGGKs3EMg==} + resolution: {integrity: sha1-OgNHwbS8uEZ/AlRkpdwxCvHnFmg=} deprecated: This project has been renamed to @ghostery/adblocker-content. Install using @ghostery/adblocker-content instead '@cliqz/adblocker-extended-selectors@1.34.0': - resolution: {integrity: sha512-lNrgdUPpsBWHjrwXy2+Z5nX/Gy5YAvNwFMLqkeMdjzrybwPIalJJN2e+YtkS1I6mVmOMNppF5cv692OAVoI74g==} + resolution: {integrity: sha1-1LBV/b7p1d/iKyt1pD3QuD9wnHw=} deprecated: This project has been renamed to @ghostery/adblocker-extended-selectors. Install using @ghostery/adblocker-extended-selectors instead '@cliqz/adblocker-puppeteer@1.23.8': - resolution: {integrity: sha512-Ca1/DBqQXsOpKTFVAHX6OpLTSEupXmUkUWHj6iXhLLleC7RPISN5B0b801VDmaGRqoC5zKRxn0vYbIfpgCWVug==} + resolution: {integrity: sha1-50Y2zSAEWdFzSSnkFQSnaTlQQxE=} deprecated: This project has been renamed to @ghostery/adblocker-puppeteer. Install using @ghostery/adblocker-puppeteer instead peerDependencies: puppeteer: '>5' '@cliqz/adblocker@1.34.0': - resolution: {integrity: sha512-d7TeUl5t+TOMJe7/CRYtf+x6hbd8N25DtH7guQTIjjr3AFVortxiAIgNejGvVqy0by4eNByw+oVil15oqxz2Eg==} + resolution: {integrity: sha1-KDXMJxiIrcO6xQ0C6+5zygxuxRg=} deprecated: This project has been renamed to @ghostery/adblocker. Install using @ghostery/adblocker instead '@codemirror/autocomplete@6.18.6': - resolution: {integrity: sha512-PHHBXFomUs5DF+9tCOM/UoW6XQ4R44lLNNhRaW9PKPTU0D7lIjRg3ElxaJnTwsl/oHiR93WSXDBrekhoUGCPtg==} + resolution: {integrity: sha1-3iboZKHsgZKhskHrhq3bthKWTds=} '@codemirror/commands@6.8.1': - resolution: {integrity: sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw==} + resolution: {integrity: sha1-Y59VWdLzPyWCokKcWMsMG5JcejA=} '@codemirror/lang-angular@0.1.4': - resolution: {integrity: sha512-oap+gsltb/fzdlTQWD6BFF4bSLKcDnlxDsLdePiJpCVNKWXSTAbiiQeYI3UmES+BLAdkmIC1WjyztC1pi/bX4g==} + resolution: {integrity: sha1-W56UB4a6IBqaQuq225UB+j/iKSo=} '@codemirror/lang-cpp@6.0.2': - resolution: {integrity: sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==} + resolution: {integrity: sha1-B2yYNAw76r3gFtfYPgjuvhclTvk=} '@codemirror/lang-css@6.3.1': - resolution: {integrity: sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==} + resolution: {integrity: sha1-djykGu6BuyQxvlXjz8x8yOkUIaM=} '@codemirror/lang-go@6.0.1': - resolution: {integrity: sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==} + resolution: {integrity: sha1-WYIiyQ9W6uKNEQacYSymTQMGsFc=} '@codemirror/lang-html@6.4.9': - resolution: {integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==} + resolution: {integrity: sha1-1YbyzJw0E5GuB9HXxUWZDfoGlyc=} '@codemirror/lang-java@6.0.1': - resolution: {integrity: sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==} + resolution: {integrity: sha1-A70GM02nyP653/bbAaxthb0uSLs=} '@codemirror/lang-javascript@6.2.4': - resolution: {integrity: sha512-0WVmhp1QOqZ4Rt6GlVGwKJN3KW7Xh4H2q8ZZNGZaP6lRdxXJzmjm4FqvmOojVj6khWJHIb9sp7U/72W7xQgqAA==} + resolution: {integrity: sha1-7vIifRiSqudi86DyEvcr7IaKAsU=} '@codemirror/lang-json@6.0.1': - resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==} + resolution: {integrity: sha1-CgvnAaVhnEsPiZH5telf4z9GIzA=} '@codemirror/lang-less@6.0.2': - resolution: {integrity: sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ==} + resolution: {integrity: sha1-Lj2Co924cQ5kCWic1KKMZlWNDLg=} '@codemirror/lang-liquid@6.2.3': - resolution: {integrity: sha512-yeN+nMSrf/lNii3FJxVVEGQwFG0/2eDyH6gNOj+TGCa0hlNO4bhQnoO5ISnd7JOG+7zTEcI/GOoyraisFVY7jQ==} + resolution: {integrity: sha1-y9s4y/LFm8M0KSQgQB+IqmxLSyc=} '@codemirror/lang-markdown@6.3.3': - resolution: {integrity: sha512-1fn1hQAPWlSSMCvnF810AkhWpNLkJpl66CRfIy3vVl20Sl4NwChkorCHqpMtNbXr1EuMJsrDnhEpjZxKZ2UX3A==} + resolution: {integrity: sha1-RX+TvYotQi2uBiWyC2Gt9cbSPe8=} '@codemirror/lang-php@6.0.1': - resolution: {integrity: sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==} + resolution: {integrity: sha1-+jTMdVYheDJYYaVzH3m9Yh9X/6o=} '@codemirror/lang-python@6.2.1': - resolution: {integrity: sha512-IRjC8RUBhn9mGR9ywecNhB51yePWCGgvHfY1lWN/Mrp3cKuHr0isDKia+9HnvhiWNnMpbGhWrkhuWOc09exRyw==} + resolution: {integrity: sha1-N8mTBxYRAVaGWpXFSKoO71VShjo=} '@codemirror/lang-rust@6.0.1': - resolution: {integrity: sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==} + resolution: {integrity: sha1-1oKfx7qjmhW80XSkGp4KG/fPa6g=} '@codemirror/lang-sass@6.0.2': - resolution: {integrity: sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==} + resolution: {integrity: sha1-OMGwoTJsyfXLJ0HSzVHPvNerwLI=} '@codemirror/lang-sql@6.9.0': - resolution: {integrity: sha512-xmtpWqKSgum1B1J3Ro6rf7nuPqf2+kJQg5SjrofCAcyCThOe0ihSktSoXfXuhQBnwx1QbmreBbLJM5Jru6zitg==} + resolution: {integrity: sha1-ATDaCcfYJ7CqX5WY9hvKl1pUgMc=} '@codemirror/lang-vue@0.1.3': - resolution: {integrity: sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==} + resolution: {integrity: sha1-v3m5FSzBi0kD1kwfZ+GGrgRcipc=} '@codemirror/lang-wast@6.0.2': - resolution: {integrity: sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==} + resolution: {integrity: sha1-0rFBdeXoDXh4y7sp4g7JDcEtOis=} '@codemirror/lang-xml@6.1.0': - resolution: {integrity: sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==} + resolution: {integrity: sha1-4+eG4aif3JUg7+dcHW094cQOuRw=} '@codemirror/lang-yaml@6.1.2': - resolution: {integrity: sha512-dxrfG8w5Ce/QbT7YID7mWZFKhdhsaTNOYjOkSIMt1qmC4VQnXSDSYVHHHn8k6kJUfIhtLo8t1JJgltlxWdsITw==} + resolution: {integrity: sha1-yEKAxo+nr0VqNV2RGDteU36bcDg=} '@codemirror/language-data@6.5.1': - resolution: {integrity: sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w==} + resolution: {integrity: sha1-XLlBPVIl7yeld8I3gbvAs2xYu2c=} '@codemirror/language@6.11.1': - resolution: {integrity: sha512-5kS1U7emOGV84vxC+ruBty5sUgcD0te6dyupyRVG2zaSjhTDM73LhVKUtVwiqSe6QwmEoA4SCiU8AKPFyumAWQ==} + resolution: {integrity: sha1-fpGnnNBeJ41Xgv+bTK/ouDpplog=} '@codemirror/legacy-modes@6.5.1': - resolution: {integrity: sha512-DJYQQ00N1/KdESpZV7jg9hafof/iBNp9h7TYo1SLMk86TWl9uDsVdho2dzd81K+v4retmK6mdC7WpuOQDytQqw==} + resolution: {integrity: sha1-a9E/rJT2eoJeVCABfg0vPDXQk0I=} '@codemirror/lint@6.8.5': - resolution: {integrity: sha512-s3n3KisH7dx3vsoeGMxsbRAgKe4O1vbrnKBClm99PU0fWxmxsx5rR2PfqQgIt+2MMJBHbiJ5rfIdLYfB9NNvsA==} + resolution: {integrity: sha1-ntqoCOdk4o4HZlsBWVGTTI7DpBg=} '@codemirror/search@6.5.11': - resolution: {integrity: sha512-KmWepDE6jUdL6n8cAAqIpRmLPBZ5ZKnicE8oGU/s3QrAVID+0VhLFrzUucVKHG5035/BSykhExDL/Xm7dHthiA==} + resolution: {integrity: sha1-oyT/7jbgMrf2eqMcT7nz5vnz7WM=} '@codemirror/state@6.5.2': - resolution: {integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==} + resolution: {integrity: sha1-jso6ZCEqgzZ9yFR1t9eNXJtwdsY=} '@codemirror/theme-one-dark@6.1.2': - resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==} + resolution: {integrity: sha1-/O+fnPwXoHg2y32hfJ9tcjEGTfg=} '@codemirror/view@6.37.2': - resolution: {integrity: sha512-XD3LdgQpxQs5jhOOZ2HRVT+Rj59O4Suc7g2ULvZ+Yi8eCkickrkZ5JFuoDhs2ST1mNI5zSsNYgR3NGa4OUrbnw==} + resolution: {integrity: sha1-/ldmQaLoCaUJRlZ80rUoyG8iuIU=} '@colors/colors@1.5.0': - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + resolution: {integrity: sha1-u1BFecHK6SPmV2pPXaQ9Jfl729k=} engines: {node: '>=0.1.90'} '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + resolution: {integrity: sha1-AGKcNaaI4FqIsc2mhPudXnPwAKE=} engines: {node: '>=12'} '@csstools/color-helpers@6.0.2': - resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} + resolution: {integrity: sha1-gsWf0wZJzwtNPIIWBIl0hmbmVQs=} engines: {node: '>=20.19.0'} '@csstools/css-calc@3.1.1': - resolution: {integrity: sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==} + resolution: {integrity: sha1-eLSUmW2sQaAnl9zKGKw7RtJbP9c=} engines: {node: '>=20.19.0'} peerDependencies: '@csstools/css-parser-algorithms': ^4.0.0 '@csstools/css-tokenizer': ^4.0.0 '@csstools/css-color-parser@4.0.2': - resolution: {integrity: sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==} + resolution: {integrity: sha1-wn4Do3cNA1LbktZo1t3kJ6N4WeU=} 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': - resolution: {integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==} + resolution: {integrity: sha1-4cZdwJN4tC8moRH8p/cHX8LCYWQ=} engines: {node: '>=20.19.0'} peerDependencies: '@csstools/css-tokenizer': ^4.0.0 '@csstools/css-syntax-patches-for-csstree@1.1.1': - resolution: {integrity: sha512-BvqN0AMWNAnLk9G8jnUT77D+mUbY/H2b3uDTvg2isJkHaOufUE2R3AOwxWo7VBQKT1lOdwdvorddo2B/lk64+w==} + resolution: {integrity: sha1-zkyaDL4wWQSR/NXAP+ZCbSK6ieQ=} peerDependencies: css-tree: ^3.2.1 peerDependenciesMeta: @@ -7185,747 +7203,747 @@ packages: optional: true '@csstools/css-tokenizer@4.0.0': - resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} + resolution: {integrity: sha1-eYozlQ0RImoOu2rK+mD1WUQkln8=} engines: {node: '>=20.19.0'} '@dependents/detective-less@5.0.3': - resolution: {integrity: sha512-v6oD9Ukp+N7V4n6p5I/+mM5fIohSfkrDSGlFm5w/pYmchvbk+sMIHsLxrFJ5Lnujewj1BzWL0K84d88lwZAMQA==} + resolution: {integrity: sha1-XGpYSerKwnzwplemXB2U/NHmhDs=} engines: {node: '>=18'} '@develar/schema-utils@2.6.5': - resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==} + resolution: {integrity: sha1-Ps4ixYOEAkGabgQl+FdCuWHZtsY=} engines: {node: '>= 8.9.0'} '@discoveryjs/json-ext@0.5.7': - resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + resolution: {integrity: sha1-HVcr+74Ut3BOC6Dzm3SBW4SHDXA=} engines: {node: '>=10.0.0'} '@discoveryjs/json-ext@1.1.0': - resolution: {integrity: sha512-Xc3VhU02wqZ1HvHRJUwL09HkZSTvidqY5Ya0NXBSYOxAp+Ln9dcJr9fySI+CkONzP3PekQo9WdzCv0PGER/mOA==} + resolution: {integrity: sha1-RLXONIXpUjWsoG5ijuqqPIFrxMw=} engines: {node: '>=14.17.0'} '@elastic/elasticsearch@9.3.4': - resolution: {integrity: sha512-Mp14fPEYx+WTfZdcvAaZ9WkLYGHQCbwMx6EP5VCucYdhv4cn/g2sbnMT5HzK+gX3XEpBnnkEK/+WysCKzxuo3A==} + resolution: {integrity: sha1-sSTzO6jd2YJneYZy26WtSu6dbIk=} engines: {node: '>=18'} '@elastic/transport@9.3.5': - resolution: {integrity: sha512-hIMJbt1guqr3/N2zCN45k9hw9o78qcdsO0xietLe+Bfa+JL0YafHTgkWkM1oT3Ht5sGMJaDcJZiYomSMU6CtTA==} + resolution: {integrity: sha1-wEGAeqNmt70vhhxFjKT9Qn4G5Rk=} engines: {node: '>=20'} '@electron-toolkit/preload@3.0.2': - resolution: {integrity: sha512-TWWPToXd8qPRfSXwzf5KVhpXMfONaUuRAZJHsKthKgZR/+LqX1dZVSSClQ8OTAEduvLGdecljCsoT2jSshfoUg==} + resolution: {integrity: sha1-7luzOrpIdBxbxTmppvqtC+RVRl4=} peerDependencies: electron: '>=13.0.0' '@electron-toolkit/tsconfig@1.0.1': - resolution: {integrity: sha512-M0Mol3odspvtCuheyujLNAW7bXq7KFNYVMRtpjFa4ZfES4MuklXBC7Nli/omvc+PRKlrklgAGx3l4VakjNo8jg==} + resolution: {integrity: sha1-eASNMXjdempXNZDiMkDwdksMFK8=} peerDependencies: '@types/node': '*' '@electron/asar@3.4.1': - resolution: {integrity: sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA==} + resolution: {integrity: sha1-TpGWpLVPuhjFbNjVysZ8W9xYgGU=} engines: {node: '>=10.12.0'} hasBin: true '@electron/fuses@1.8.0': - resolution: {integrity: sha512-zx0EIq78WlY/lBb1uXlziZmDZI4ubcCXIMJ4uGjXzZW0nS19TjSPeXPAjzzTmKQlJUZm0SbmZhPKP7tuQ1SsEw==} + resolution: {integrity: sha1-rTTTzEcDsSWLg/aYmRcFLPwUkKA=} hasBin: true '@electron/get@2.0.3': - resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==} + resolution: {integrity: sha1-+6VSaD04euvZ8/ytvK/I4S7k+WA=} engines: {node: '>=12'} '@electron/get@3.1.0': - resolution: {integrity: sha512-F+nKc0xW+kVbBRhFzaMgPy3KwmuNTYX1fx6+FxxoSnNgwYX6LD7AKBTWkU0MQ6IBoe7dz069CNkR673sPAgkCQ==} + resolution: {integrity: sha1-IsWgvZF6sgG63rd7xK0Yy6VMtOw=} engines: {node: '>=14'} '@electron/notarize@2.5.0': - resolution: {integrity: sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A==} + resolution: {integrity: sha1-1NJTVq36Kd9Kdr1kqL00cjfNJR4=} engines: {node: '>= 10.0.0'} '@electron/osx-sign@1.3.3': - resolution: {integrity: sha512-KZ8mhXvWv2rIEgMbWZ4y33bDHyUKMXnx4M0sTyPNK/vcB81ImdeY9Ggdqy0SWbMDgmbqyQ+phgejh6V3R2QuSg==} + resolution: {integrity: sha1-r3UVEEiDGNn3ZjaUr4WBlpDXVYM=} engines: {node: '>=12.0.0'} hasBin: true '@electron/rebuild@4.0.3': - resolution: {integrity: sha512-u9vpTHRMkOYCs/1FLiSVAFZ7FbjsXK+bQuzviJZa+lG7BHZl1nz52/IcGvwa3sk80/fc3llutBkbCq10Vh8WQA==} + resolution: {integrity: sha1-8CL35mh0kg/Rak2AK4YFiFy1SdM=} engines: {node: '>=22.12.0'} hasBin: true '@electron/universal@2.0.3': - resolution: {integrity: sha512-Wn9sPYIVFRFl5HmwMJkARCCf7rqK/EurkfQ/rJZ14mHP3iYTjZSIOSVonEAnhWeAXwtw7zOekGRlc6yTtZ0t+g==} + resolution: {integrity: sha1-FoDfbO2PEoyg/yTinCFl1B14s84=} engines: {node: '>=16.4'} '@electron/windows-sign@1.2.2': - resolution: {integrity: sha512-dfZeox66AvdPtb2lD8OsIIQh12Tp0GNCRUDfBHIKGpbmopZto2/A8nSpYYLoedPIHpqkeblZ/k8OV0Gy7PYuyQ==} + resolution: {integrity: sha1-jOqtUtXB6xhwL0gQPV87x8M4+p0=} engines: {node: '>=14.14'} hasBin: true '@emnapi/core@1.11.0': - resolution: {integrity: sha512-l9Oo58x0HOP5znGzVhYW9U3e5wVuA4LAZU2AGezTmkhO1CgQRFDhDg4nneHsu/t3WniXg9QrG2nIXL/ZS8ln8Q==} + resolution: {integrity: sha1-imVQQtu7ENAmZnDJkDw0pwAccFs=} '@emnapi/core@1.11.1': - resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==} + resolution: {integrity: sha1-ueEGTzprFjHiQeY460jXNr/TcqY=} '@emnapi/runtime@1.11.0': - resolution: {integrity: sha512-55coeOFKHv1ywEcUXJtWU5f+Jr/W5tZDvZig8DLKSwUN1JpROQ4rk/SNOQiFWmaR/VKF4zuFyW1B8JduOSv6Pg==} + resolution: {integrity: sha1-zhazZ0/3Jmu/UPlmi96KBPMBTU4=} '@emnapi/runtime@1.11.1': - resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} + resolution: {integrity: sha1-WPHz1dgamxL3k6tojJY3GQECfCQ=} '@emnapi/runtime@1.4.0': - resolution: {integrity: sha512-64WYIf4UYcdLnbKn/umDlNjQDSS8AgZrI/R9+x5ilkUVFxXcA1Ebl+gQLc/6mERA4407Xof0R7wEyEuj091CVw==} + resolution: {integrity: sha1-j1Cb8QWaVVHI/oKaHE6R2zX9++4=} '@emnapi/wasi-threads@1.2.2': - resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} + resolution: {integrity: sha1-TJO+z1v6OxPRu9zAau44MhrYE5o=} '@esbuild-plugins/node-globals-polyfill@0.2.3': - resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} + resolution: {integrity: sha1-DkSXorU8npSF4Um8kt2yKEONa88=} peerDependencies: esbuild: '*' '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + resolution: {integrity: sha1-xxhKMmUz/N8bjuBzPiHHE7l1V18=} engines: {node: '>=12'} cpu: [ppc64] os: [aix] '@esbuild/aix-ppc64@0.25.12': - resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} + resolution: {integrity: sha1-gPy+NhMOWLdnBRHoiLjoiiWe12w=} engines: {node: '>=18'} cpu: [ppc64] os: [aix] '@esbuild/aix-ppc64@0.27.7': - resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} + resolution: {integrity: sha1-grdPkqp41yC3FBYpOfskjJCt31M=} engines: {node: '>=18'} cpu: [ppc64] os: [aix] '@esbuild/aix-ppc64@0.28.1': - resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} + resolution: {integrity: sha1-egGo0uwvuy2seK2tCbD6eB5Agr4=} engines: {node: '>=18'} cpu: [ppc64] os: [aix] '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + resolution: {integrity: sha1-Cdm0NXeA2p6jp9+4M6Hx/0ObQFI=} engines: {node: '>=12'} cpu: [arm64] os: [android] '@esbuild/android-arm64@0.25.12': - resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} + resolution: {integrity: sha1-iqSWX40KeYLcIXNL9mATI6Ztp1I=} engines: {node: '>=18'} cpu: [arm64] os: [android] '@esbuild/android-arm64@0.27.7': - resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} + resolution: {integrity: sha1-94y4oxIfwgWlMoWtskly2zhdGF0=} engines: {node: '>=18'} cpu: [arm64] os: [android] '@esbuild/android-arm64@0.28.1': - resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==} + resolution: {integrity: sha1-tUCifRTkr9BYSWpNvsTT9BTbEQo=} engines: {node: '>=18'} cpu: [arm64] os: [android] '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + resolution: {integrity: sha1-mwQ4T7dxkm36bXrQQyTssqubLig=} engines: {node: '>=12'} cpu: [arm] os: [android] '@esbuild/android-arm@0.25.12': - resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} + resolution: {integrity: sha1-MAcSEB9/UPHSYnoWLm4JsQm2dno=} engines: {node: '>=18'} cpu: [arm] os: [android] '@esbuild/android-arm@0.27.7': - resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} + resolution: {integrity: sha1-WT4QoUULv8rGyzIfYfRoRTusIJ0=} engines: {node: '>=18'} cpu: [arm] os: [android] '@esbuild/android-arm@0.28.1': - resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==} + resolution: {integrity: sha1-cEvSl95tdi3lTqu+r79V9nVqvi8=} engines: {node: '>=18'} cpu: [arm] os: [android] '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + resolution: {integrity: sha1-KZGOwtt1TO3LbBsE3ozWVHr2Rh4=} engines: {node: '>=12'} cpu: [x64] os: [android] '@esbuild/android-x64@0.25.12': - resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} + resolution: {integrity: sha1-h9+ycWEgK9yVjvSLthsJx1j67hY=} engines: {node: '>=18'} cpu: [x64] os: [android] '@esbuild/android-x64@0.27.7': - resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} + resolution: {integrity: sha1-RTFD0HMyYDPS0iyvnkjeS64nSwc=} engines: {node: '>=18'} cpu: [x64] os: [android] '@esbuild/android-x64@0.28.1': - resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==} + resolution: {integrity: sha1-0csWbTSw+/D+irRgpVlPJKN4cB4=} engines: {node: '>=18'} cpu: [x64] os: [android] '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + resolution: {integrity: sha1-5JW1OWYOUWkPOSivUKdvsKbM/yo=} engines: {node: '>=12'} cpu: [arm64] os: [darwin] '@esbuild/darwin-arm64@0.25.12': - resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} + resolution: {integrity: sha1-eRl4mOwf90XSHAceHHzDyALwwf0=} engines: {node: '>=18'} cpu: [arm64] os: [darwin] '@esbuild/darwin-arm64@0.27.7': - resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} + resolution: {integrity: sha1-byMAD7m0C34Et9BgbAaTvQYy8yI=} engines: {node: '>=18'} cpu: [arm64] os: [darwin] '@esbuild/darwin-arm64@0.28.1': - resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==} + resolution: {integrity: sha1-EDSyZFf8iGNo/mG70J9lP2r6jlQ=} engines: {node: '>=18'} cpu: [arm64] os: [darwin] '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + resolution: {integrity: sha1-wTg4+lc3KDmr3dyR1xVCzuouHiI=} engines: {node: '>=12'} cpu: [x64] os: [darwin] '@esbuild/darwin-x64@0.25.12': - resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} + resolution: {integrity: sha1-FGQAqFYhM/RcTS6tzzfd0JcYB54=} engines: {node: '>=18'} cpu: [x64] os: [darwin] '@esbuild/darwin-x64@0.27.7': - resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} + resolution: {integrity: sha1-Jzk90YuxJjxmOXnF8VduAMLQJL4=} engines: {node: '>=18'} cpu: [x64] os: [darwin] '@esbuild/darwin-x64@0.28.1': - resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==} + resolution: {integrity: sha1-ZVVqQyoeTXIDLYIYwZMvzKGkl3I=} engines: {node: '>=18'} cpu: [x64] os: [darwin] '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + resolution: {integrity: sha1-ZGuYmqIL+J/Qcd1dv61po1QuVQ4=} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] '@esbuild/freebsd-arm64@0.25.12': - resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} + resolution: {integrity: sha1-HF+bpyBuFY/SskxZ+i0si7R8oP4=} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] '@esbuild/freebsd-arm64@0.27.7': - resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} + resolution: {integrity: sha1-IuRjj6UC0cACcHcyTJdkDjrfOmI=} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] '@esbuild/freebsd-arm64@0.28.1': - resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==} + resolution: {integrity: sha1-LmHgWS+QMNfj2uGO4l68U1kYrvY=} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + resolution: {integrity: sha1-qmFc/ICvlU00WJBuOMoiwYz1wmE=} engines: {node: '>=12'} cpu: [x64] os: [freebsd] '@esbuild/freebsd-x64@0.25.12': - resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} + resolution: {integrity: sha1-6mMfSja+qsS5J5+g/MbKKerusrM=} engines: {node: '>=18'} cpu: [x64] os: [freebsd] '@esbuild/freebsd-x64@0.27.7': - resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} + resolution: {integrity: sha1-kiS45P6pJM4hlOPvw+muv4IhktY=} engines: {node: '>=18'} cpu: [x64] os: [freebsd] '@esbuild/freebsd-x64@0.28.1': - resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==} + resolution: {integrity: sha1-yV7CiZWe+AecTcqBeh4sS+Zrm9M=} engines: {node: '>=18'} cpu: [x64] os: [freebsd] '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + resolution: {integrity: sha1-cKxvoU9ct+H3+Ie8/7aArQmSK1s=} engines: {node: '>=12'} cpu: [arm64] os: [linux] '@esbuild/linux-arm64@0.25.12': - resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} + resolution: {integrity: sha1-4QZrzlg5TxsRQd7shVel8KIvWXc=} engines: {node: '>=18'} cpu: [arm64] os: [linux] '@esbuild/linux-arm64@0.27.7': - resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} + resolution: {integrity: sha1-T10cJ1J9gXs1aEriFBnlfCvaCWY=} engines: {node: '>=18'} cpu: [arm64] os: [linux] '@esbuild/linux-arm64@0.28.1': - resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==} + resolution: {integrity: sha1-QLIhdd2gYYLz7oFBGGxf8wTEpxc=} engines: {node: '>=18'} cpu: [arm64] os: [linux] '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + resolution: {integrity: sha1-/G/RGorKVsH284lPK+oEefj2Jrk=} engines: {node: '>=12'} cpu: [arm] os: [linux] '@esbuild/linux-arm@0.25.12': - resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} + resolution: {integrity: sha1-RSzWayCTLQi9xTqLYcDjC69DSLk=} engines: {node: '>=18'} cpu: [arm] os: [linux] '@esbuild/linux-arm@0.27.7': - resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} + resolution: {integrity: sha1-uenQcMjBwESc8Ssg6sN9cKRZWSE=} engines: {node: '>=18'} cpu: [arm] os: [linux] '@esbuild/linux-arm@0.28.1': - resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==} + resolution: {integrity: sha1-wJoPZ5F1kqwN6JKpvk04FN69Kmw=} engines: {node: '>=18'} cpu: [arm] os: [linux] '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + resolution: {integrity: sha1-MnH1Oz+T49CT1RjRZJ1taNNG7eI=} engines: {node: '>=12'} cpu: [ia32] os: [linux] '@esbuild/linux-ia32@0.25.12': - resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} + resolution: {integrity: sha1-sk+KzEW89UGSx/LzvhtT5lUer+A=} engines: {node: '>=18'} cpu: [ia32] os: [linux] '@esbuild/linux-ia32@0.27.7': - resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} + resolution: {integrity: sha1-P4D7aWqpYFGpQEfzXIWwiyHDb54=} engines: {node: '>=18'} cpu: [ia32] os: [linux] '@esbuild/linux-ia32@0.28.1': - resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==} + resolution: {integrity: sha1-pYD5xnZ5eDOJHlGfx6EzfIr9jbM=} engines: {node: '>=18'} cpu: [ia32] os: [linux] '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + resolution: {integrity: sha1-7WLgQjjFcCauqDHFoTC3PA+fJt8=} engines: {node: '>=12'} cpu: [loong64] os: [linux] '@esbuild/linux-loong64@0.25.12': - resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} + resolution: {integrity: sha1-+c//p/yDIlcfvEyLMmjK8VvYGtA=} engines: {node: '>=18'} cpu: [loong64] os: [linux] '@esbuild/linux-loong64@0.27.7': - resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} + resolution: {integrity: sha1-m+HywoIQsT67QVYiG7o1b+FnUgU=} engines: {node: '>=18'} cpu: [loong64] os: [linux] '@esbuild/linux-loong64@0.28.1': - resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==} + resolution: {integrity: sha1-RkUs8yHcf56Rwvp4Cla7Vuec1os=} engines: {node: '>=18'} cpu: [loong64] os: [linux] '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + resolution: {integrity: sha1-55uOtIvzsQb63sGsgkD7l7TmTL4=} engines: {node: '>=12'} cpu: [mips64el] os: [linux] '@esbuild/linux-mips64el@0.25.12': - resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} + resolution: {integrity: sha1-V1oUvXRkT/q4ka3H1+YNJ1KW8s0=} engines: {node: '>=18'} cpu: [mips64el] os: [linux] '@esbuild/linux-mips64el@0.27.7': - resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} + resolution: {integrity: sha1-SrXuZ6Pfy8tej9eIPa5uc1sRY7g=} engines: {node: '>=18'} cpu: [mips64el] os: [linux] '@esbuild/linux-mips64el@0.28.1': - resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==} + resolution: {integrity: sha1-QhGzGE3WYI9T3LIuOfXTTuCIUsg=} engines: {node: '>=18'} cpu: [mips64el] os: [linux] '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + resolution: {integrity: sha1-XyIDhgoUO5kZ04PvdXNSH7FUw+Q=} engines: {node: '>=12'} cpu: [ppc64] os: [linux] '@esbuild/linux-ppc64@0.25.12': - resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} + resolution: {integrity: sha1-dbmccKlfvV93OddpK+/mBgFZGGk=} engines: {node: '>=18'} cpu: [ppc64] os: [linux] '@esbuild/linux-ppc64@0.27.7': - resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} + resolution: {integrity: sha1-2seMaJ9kmUWcQyHlwVAywSMH5+o=} engines: {node: '>=18'} cpu: [ppc64] os: [linux] '@esbuild/linux-ppc64@0.28.1': - resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==} + resolution: {integrity: sha1-aXhXwqYcubC2u2ZS5AwdxeHKjl0=} engines: {node: '>=18'} cpu: [ppc64] os: [linux] '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + resolution: {integrity: sha1-B7yv2ZMi1a9i9hjLnmqbf0u4Jdw=} engines: {node: '>=12'} cpu: [riscv64] os: [linux] '@esbuild/linux-riscv64@0.25.12': - resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} + resolution: {integrity: sha1-LjJZRAMhpE553fdTXDJQV9qHXNY=} engines: {node: '>=18'} cpu: [riscv64] os: [linux] '@esbuild/linux-riscv64@0.27.7': - resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} + resolution: {integrity: sha1-BQ99OzVcOpgwjpNbxNYyXakbACc=} engines: {node: '>=18'} cpu: [riscv64] os: [linux] '@esbuild/linux-riscv64@0.28.1': - resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==} + resolution: {integrity: sha1-0ZKUPrFGpArExkl9DPe+NbmGvwg=} engines: {node: '>=18'} cpu: [riscv64] os: [linux] '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + resolution: {integrity: sha1-t8z2hnUdaj5EuGJ6uryL4+9i2N4=} engines: {node: '>=12'} cpu: [s390x] os: [linux] '@esbuild/linux-s390x@0.25.12': - resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} + resolution: {integrity: sha1-F2dsq7/lko2lsqDW311YzQjbJmM=} engines: {node: '>=18'} cpu: [s390x] os: [linux] '@esbuild/linux-s390x@0.27.7': - resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} + resolution: {integrity: sha1-1h9xXOYdQ/5YRK0Nj0Y/iMvk/vY=} engines: {node: '>=18'} cpu: [s390x] os: [linux] '@esbuild/linux-s390x@0.28.1': - resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==} + resolution: {integrity: sha1-rOoDVtoODrwI+Xz3ucLkAeHmSNw=} engines: {node: '>=18'} cpu: [s390x] os: [linux] '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + resolution: {integrity: sha1-bY8Mdo4HDmQwmvgAS7lOaKsrs7A=} engines: {node: '>=12'} cpu: [x64] os: [linux] '@esbuild/linux-x64@0.25.12': - resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} + resolution: {integrity: sha1-BYN3VoXKggZtBMNQfwlSTTzXowY=} engines: {node: '>=18'} cpu: [x64] os: [linux] '@esbuild/linux-x64@0.27.7': - resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} + resolution: {integrity: sha1-yo4apHj8ggkle/Osj3nE3CmC8yo=} engines: {node: '>=18'} cpu: [x64] os: [linux] '@esbuild/linux-x64@0.28.1': - resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==} + resolution: {integrity: sha1-bww84MtkxTS3DExF7LLBbTTjXf0=} engines: {node: '>=18'} cpu: [x64] os: [linux] '@esbuild/netbsd-arm64@0.25.12': - resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} + resolution: {integrity: sha1-8ExAScsuJS/paxb+2Q9wdGsT9KQ=} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] '@esbuild/netbsd-arm64@0.27.7': - resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} + resolution: {integrity: sha1-FlDywblI3us++Ujy/DBhRyPAlpA=} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] '@esbuild/netbsd-arm64@0.28.1': - resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==} + resolution: {integrity: sha1-i813B3oNzjN4tXT+2ybSolO3PTY=} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + resolution: {integrity: sha1-u+Qw9g03jsuI3sshnGAmZzh6YEc=} engines: {node: '>=12'} cpu: [x64] os: [netbsd] '@esbuild/netbsd-x64@0.25.12': - resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} + resolution: {integrity: sha1-d9oNCg2CbXySHuo9QCklSLJYoHY=} engines: {node: '>=18'} cpu: [x64] os: [netbsd] '@esbuild/netbsd-x64@0.27.7': - resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} + resolution: {integrity: sha1-ZXcqs0LEszGb8HBaIRBQqsG24yA=} engines: {node: '>=18'} cpu: [x64] os: [netbsd] '@esbuild/netbsd-x64@0.28.1': - resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==} + resolution: {integrity: sha1-5/sqAemcgwyU5mI82f77TI+1g0c=} engines: {node: '>=18'} cpu: [x64] os: [netbsd] '@esbuild/openbsd-arm64@0.25.12': - resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} + resolution: {integrity: sha1-Ypb1hnrt7yioGyKrIAnHhqlS3M0=} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] '@esbuild/openbsd-arm64@0.27.7': - resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} + resolution: {integrity: sha1-N+18+mZUnXlVhS/ON9DD3k5xXqE=} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] '@esbuild/openbsd-arm64@0.28.1': - resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==} + resolution: {integrity: sha1-xSkJNy24uG4sVeBaiUADO1Zgo7I=} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + resolution: {integrity: sha1-mdHPKTcnlWDSEEgh9czOIgyyr3A=} engines: {node: '>=12'} cpu: [x64] os: [openbsd] '@esbuild/openbsd-x64@0.25.12': - resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} + resolution: {integrity: sha1-+NIzAzYOJ7Fs8GWyO7/0PBQUJnk=} engines: {node: '>=18'} cpu: [x64] os: [openbsd] '@esbuild/openbsd-x64@0.27.7': - resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} + resolution: {integrity: sha1-Ab89OFhV71DLM9t8S1L5V8NM0Xk=} engines: {node: '>=18'} cpu: [x64] os: [openbsd] '@esbuild/openbsd-x64@0.28.1': - resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==} + resolution: {integrity: sha1-xCe5vlpkwmL/mn63C1+7qt9EbGw=} engines: {node: '>=18'} cpu: [x64] os: [openbsd] '@esbuild/openharmony-arm64@0.25.12': - resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} + resolution: {integrity: sha1-SeC3aHRKOSS+DX/ZfdbOmykj2I0=} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] '@esbuild/openharmony-arm64@0.27.7': - resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} + resolution: {integrity: sha1-bB+Us0CGWZqr2k6sj2OClLmHdBA=} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] '@esbuild/openharmony-arm64@0.28.1': - resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==} + resolution: {integrity: sha1-3JsUe6yi5sSzyFVxdB70hgpIkJc=} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + resolution: {integrity: sha1-CHQVEsENUpVmurqDe0/gUsjzSHs=} engines: {node: '>=12'} cpu: [x64] os: [sunos] '@esbuild/sunos-x64@0.25.12': - resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} + resolution: {integrity: sha1-pu19Z3jWflKMgfsWWyP0kRubE9Y=} engines: {node: '>=18'} cpu: [x64] os: [sunos] '@esbuild/sunos-x64@0.27.7': - resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} + resolution: {integrity: sha1-Sw3ReuCmlB0tD9NakGOSUXBxqQ0=} engines: {node: '>=18'} cpu: [x64] os: [sunos] '@esbuild/sunos-x64@0.28.1': - resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==} + resolution: {integrity: sha1-zoZtEt8TwV5MmfBzo9Rm9uBkmzo=} engines: {node: '>=18'} cpu: [x64] os: [sunos] '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + resolution: {integrity: sha1-Z1tzhTmEESQHNQFhRKsumaYPx10=} engines: {node: '>=12'} cpu: [arm64] os: [win32] '@esbuild/win32-arm64@0.25.12': - resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} + resolution: {integrity: sha1-msFMN44bZTrxfQjn0840yu9YcyM=} engines: {node: '>=18'} cpu: [arm64] os: [win32] '@esbuild/win32-arm64@0.27.7': - resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} + resolution: {integrity: sha1-NBk6tVZdb/aMqSisBL51ECzLLnc=} engines: {node: '>=18'} cpu: [arm64] os: [win32] '@esbuild/win32-arm64@0.28.1': - resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==} + resolution: {integrity: sha1-dGjjaS0B1inVlB5dg4F7uA+eObQ=} engines: {node: '>=18'} cpu: [arm64] os: [win32] '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + resolution: {integrity: sha1-G/w86YqmypoJaeTSr3IUTFnBGTs=} engines: {node: '>=12'} cpu: [ia32] os: [win32] '@esbuild/win32-ia32@0.25.12': - resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} + resolution: {integrity: sha1-kYlC3LuzXMFPyjmvuRteaj0Scmc=} engines: {node: '>=18'} cpu: [ia32] os: [win32] '@esbuild/win32-ia32@0.27.7': - resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} + resolution: {integrity: sha1-62fw5EglFdjBiU7eYxwyek2p/E0=} engines: {node: '>=18'} cpu: [ia32] os: [win32] '@esbuild/win32-ia32@0.28.1': - resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==} + resolution: {integrity: sha1-pbwAY/sryrbQ7WPyoVN5WLwmnsY=} engines: {node: '>=18'} cpu: [ia32] os: [win32] '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + resolution: {integrity: sha1-rK01HVgtFXuxRVNdsqb/U91RS1w=} engines: {node: '>=12'} cpu: [x64] os: [win32] '@esbuild/win32-x64@0.25.12': - resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} + resolution: {integrity: sha1-m9rYF2vngRrRSNH4dyNZBB9GxsU=} engines: {node: '>=18'} cpu: [x64] os: [win32] '@esbuild/win32-x64@0.27.7': - resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} + resolution: {integrity: sha1-j+MLMIi4m0hzw6bMh1l645IMCos=} engines: {node: '>=18'} cpu: [x64] os: [win32] '@esbuild/win32-x64@0.28.1': - resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==} + resolution: {integrity: sha1-EAZO5E9DR7kMmgK0Rrv4CpFjKxI=} engines: {node: '>=18'} cpu: [x64] os: [win32] '@eslint-community/eslint-utils@4.9.1': - resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + resolution: {integrity: sha1-TpCvZ7xR3e5s3vUoTt9XLsN2tZU=} 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==} + resolution: {integrity: sha1-vM32Fbz3tujbgw7AuNIcmiXeWXs=} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/config-array@0.23.5': - resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} + resolution: {integrity: sha1-VuhtJDBJGV2KzAwGobPf3D+j3pU=} 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==} + resolution: {integrity: sha1-75o2iB0539Xb6sIrDamX+r+wiwM=} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/core@1.2.1': - resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} + resolution: {integrity: sha1-wdp80bgvqHh/mLVin7gRhIobY84=} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/object-schema@3.0.5': - resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} + resolution: {integrity: sha1-iOm/TRHSsZwILnjr586IckpesJE=} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/plugin-kit@0.7.2': - resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==} + resolution: {integrity: sha1-Swli8/LHzovJiz7P40UlwJ0styk=} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@esm-bundle/chai@4.3.4-fix.0': - resolution: {integrity: sha512-26SKdM4uvDWlY8/OOOxSB1AqQWeBosCX3wRYUZO7enTAj03CtVxIiCimYVG2WpULcyV51qapK4qTovwkUr5Mlw==} + resolution: {integrity: sha1-MITP9+tG10F0n0fzpI273LrzCpI=} '@exodus/bytes@1.15.0': - resolution: {integrity: sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==} + resolution: {integrity: sha1-VEeeD0BsutAk1v4cMZDsykRo3zs=} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: '@noble/hashes': ^1.8.0 || ^2.0.0 @@ -7934,405 +7952,405 @@ packages: optional: true '@floating-ui/core@1.7.1': - resolution: {integrity: sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw==} + resolution: {integrity: sha1-GrxrFX1Kk2F0+dvQeCeMOoHIvGs=} '@floating-ui/dom@1.7.1': - resolution: {integrity: sha512-cwsmW/zyw5ltYTUeeYJ60CnQuPqmGwuGVhG9w0PRaRKkAyi38BT5CKrpIbb+jtahSwUl04cWzSx9ZOIxeS6RsQ==} + resolution: {integrity: sha1-dqTjy/egjt9Aw0cRz2TgzIBT2RI=} '@floating-ui/utils@0.2.9': - resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + resolution: {integrity: sha1-UN6jYWvIGR+44RIoO0nq/wPnhCk=} '@fluid-tools/version-tools@0.57.0': - resolution: {integrity: sha512-SViGNYQff84ZHlra9WI8VJe70mnPKbFByuBnA7ZFThGUKPg5ZTmdstkOjaYluQXcz2SPCFnJ/FDNTuXNQPHOjQ==} + resolution: {integrity: sha1-mIm4/j/F7OZAvfhI5T7RaETHbFw=} engines: {node: '>=20.15.1'} hasBin: true '@fluidframework/build-tools@0.57.0': - resolution: {integrity: sha512-zFCXXM9Gj+gCNAH9AzrgrA0svAm8kcXzrMGkWB98rDjOoYtBDC4MJg4EsM/fzlwG1Qc7ms+yGUYtMOoKJAqwUA==} + resolution: {integrity: sha1-vtsSABTFzdB/oGQET7jlDV2PN9E=} engines: {node: '>=20.15.1'} hasBin: true '@fontsource/lato@5.2.5': - resolution: {integrity: sha512-d8aogKOul7a3eYG3UzTG8PB6A0D+6tlkFQCACmKQ7qTwB3XS6QmkSW1L0vYbVE9CfCRq/Zpb5sG3gNA6yJea/A==} + resolution: {integrity: sha1-z1UvE6Vpr/KGJdnTfbNcomvn1ZQ=} '@github/copilot-darwin-arm64@1.0.54': - resolution: {integrity: sha512-ZRiKkxCvDccdGSNB/gmge4UkqMsWWZNIOr0pcim4/x2YUdHbh9cex9RZRjEMXijtUkBTzW5DP/cACuoAqTCyEg==} + resolution: {integrity: sha1-Tt4k3R9TdXI2JUyqnyEjLnewS4M=} cpu: [arm64] os: [darwin] hasBin: true '@github/copilot-darwin-x64@1.0.54': - resolution: {integrity: sha512-DGqs8x5r4y+SebMco890lNsPrqe6L4v2hCmV1IQ1pvYPvD1o1NMVSZPAQhkdvUeR5bqusOg8+0ugIZOQGTFpFQ==} + resolution: {integrity: sha1-hk8ER9ayHHVz00vqG5Ej0IM1T84=} cpu: [x64] os: [darwin] hasBin: true '@github/copilot-linux-arm64@1.0.54': - resolution: {integrity: sha512-waVKu6RuG8YBvCoGrOgtsOxmnfLaUywvbqZXRgvMya1m4akRkMi5r9B2UDr3+egjChp+FIUJVbGIoXN6ZST0rQ==} + resolution: {integrity: sha1-Rxp8FCDqUhi/Gdmi10KGgUdUWOA=} cpu: [arm64] os: [linux] libc: [glibc] hasBin: true '@github/copilot-linux-x64@1.0.54': - resolution: {integrity: sha512-u/ltZa+HDIuhMivkIwkkuylRdEMk5Lp0XjE9w/OityW+BPKjZ+VKAmJ1/1Xm/uUx1IUlZaE3TJnka52wVNOD0A==} + resolution: {integrity: sha1-zRod8B4aRKwYqnUp0T7g3Syv5IE=} cpu: [x64] os: [linux] libc: [glibc] hasBin: true '@github/copilot-linuxmusl-arm64@1.0.54': - resolution: {integrity: sha512-21LLjoQnD57Y1fvO56G1FGVbkt/ffZNDpHqVe2NW7C4r78Gn0hOTqwp+xWRUMpdmxrGZyKeFjX8jK6qox2uF5w==} + resolution: {integrity: sha1-1Jo4wE7xfDN4DPcSwzAhNHKciOs=} cpu: [arm64] os: [linux] libc: [musl] hasBin: true '@github/copilot-linuxmusl-x64@1.0.54': - resolution: {integrity: sha512-sbeATKa9vaIetsY1vhQJO0PN/5FgoK48wkGBWCy4BpO8ER/kGYczT22qv6n96gBYrVmC2IZuTFTM4GFpC3bbBw==} + resolution: {integrity: sha1-oYp1iUN2fKOR3yW/qn2rdjcpe60=} cpu: [x64] os: [linux] libc: [musl] hasBin: true '@github/copilot-sdk@0.2.0': - resolution: {integrity: sha512-fCEpD9W9xqcaCAJmatyNQ1PkET9P9liK2P4Vk0raDFoMXcvpIdqewa5JQeKtWCBUsN/HCz7ExkkFP8peQuo+DA==} + resolution: {integrity: sha1-0yE9iXbYSo5PjNlx7c89mH4DoSk=} engines: {node: '>=20.0.0'} '@github/copilot-sdk@0.3.0': - resolution: {integrity: sha512-SUo35k56pzzgYgwmDPHcu7kZxPrzXbH66IWXaEf6pmb94DlA709F82HrrDeja087TL4djJ9OuvRFWWOKCosAsg==} + resolution: {integrity: sha1-iu1Y3QRf+Re4D70/qpZ4lmaPHaE=} engines: {node: '>=20.0.0'} '@github/copilot-win32-arm64@1.0.54': - resolution: {integrity: sha512-muOX8qrJSi56BWQejkH0TgXpZYRO8Y9k1qIfMuRojZyLyATn1P4lIKb67ZqDCXJLkcPfVJ5eJYsSAeGwU3Qpww==} + resolution: {integrity: sha1-BvdQblp2bZXEOPIAqcfo0DNW7UQ=} cpu: [arm64] os: [win32] hasBin: true '@github/copilot-win32-x64@1.0.54': - resolution: {integrity: sha512-BheXmqrYFmfRXA0iveKkjKks/2wgK5glrEOARomzy3JCbvVMSPIE8YeK+3YysiOh2SUkWjahwJc09cxaBq4+qQ==} + resolution: {integrity: sha1-4lqqYJ4w6kOP9Ya5wLUOEp5eVjs=} cpu: [x64] os: [win32] hasBin: true '@github/copilot@1.0.54': - resolution: {integrity: sha512-gxiWEQFWxJ3J2Rh67CxKEfER/zayB1z2qaSBUz3RZ0u1iDNJdGPry/1vOQ72X/yHmpGNm+9egucN5VMzyedsIg==} + resolution: {integrity: sha1-+Y1/fSq/8fRSOPaWUWNCNEVTgLU=} hasBin: true '@hapi/bourne@3.0.0': - resolution: {integrity: sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==} + resolution: {integrity: sha1-8R/ffdpi/o4zb6fGZC2QQfMDVtc=} '@hono/node-server@1.19.14': - resolution: {integrity: sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==} + resolution: {integrity: sha1-4w+ES8d+POe+RCqsOx9zrYtY0YE=} engines: {node: '>=18.14.1'} peerDependencies: hono: '>=4.12.8 <5.0.0' '@huggingface/jinja@0.5.9': - resolution: {integrity: sha512-uWTG+l3VJRsl7EXxYizuL3P+cCPoc3cRqbWWRcQN0FhejRfbdq0RNhCmbY/YDtnTcz9icdLYuLDjsnz4d8JMuw==} + resolution: {integrity: sha1-KU90H6CYwrMXN4i0TKZRlYv/o20=} engines: {node: '>=18'} '@huggingface/transformers@3.8.1': - resolution: {integrity: sha512-tsTk4zVjImqdqjS8/AOZg2yNLd1z9S5v+7oUPpXaasDRwEDhB+xnglK1k5cad26lL5/ZIaeREgWWy0bs9y9pPA==} + resolution: {integrity: sha1-MX2gA4ZTIjlnlhcyI+6q8PlyPwo=} '@humanfs/core@0.19.2': - resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} + resolution: {integrity: sha1-qCcsoDsqz0kmcCIrIyC2xCG/3mA=} engines: {node: '>=18.18.0'} '@humanfs/node@0.16.8': - resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} + resolution: {integrity: sha1-j4AMzME/T4zTEW4tnAqUk52j4+0=} engines: {node: '>=18.18.0'} '@humanfs/types@0.15.0': - resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} + resolution: {integrity: sha1-8qCfYgEjkLK/8/xvskjd7IwJoJA=} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + resolution: {integrity: sha1-r1smkaIrRL6EewyoFkHF+2rQFyw=} engines: {node: '>=12.22'} '@humanwhocodes/retry@0.4.3': - resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + resolution: {integrity: sha1-wrnS43TuYsWG062+qHGZsdenpro=} engines: {node: '>=18.18'} '@iconify/types@2.0.0': - resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + resolution: {integrity: sha1-qw6epoHWyKEhTzDNdB/jogzFf1c=} '@iconify/utils@3.1.3': - resolution: {integrity: sha512-LPKOXPn/zV+zis1oOfGWogaXVpqUybF3ZS6SCZIsz8vg0ivVp9+fVqyYB7xq0aiST/VhUQYGO1qo6uoYSiEJqw==} + resolution: {integrity: sha1-ce/Wj57S6jyR/ToBwAMvcKhwJ7c=} '@img/colour@1.1.0': - resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} + resolution: {integrity: sha1-sMLC+mYa33Xv/WtJZEl82AAQu50=} engines: {node: '>=18'} '@img/sharp-darwin-arm64@0.33.5': - resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + resolution: {integrity: sha1-71taB4YoBfHoFFo3fIum6YgTygg=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] '@img/sharp-darwin-arm64@0.34.5': - resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} + resolution: {integrity: sha1-bgcy3K3hJrZnCveqFwYLkmg16oY=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] '@img/sharp-darwin-x64@0.33.5': - resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + resolution: {integrity: sha1-4D00Uc2eZk+qcpSMxwpAPqQGPWE=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] '@img/sharp-darwin-x64@0.34.5': - resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} + resolution: {integrity: sha1-Gbwd1uum1alig0mLnJ9AEYDunHs=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] '@img/sharp-libvips-darwin-arm64@1.0.4': - resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + resolution: {integrity: sha1-RHxQJnAMAamTx4BOuK9fbphowH8=} cpu: [arm64] os: [darwin] '@img/sharp-libvips-darwin-arm64@1.2.4': - resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} + resolution: {integrity: sha1-KJTAy4fUInbDiJlC6OLbUXpJLEM=} cpu: [arm64] os: [darwin] '@img/sharp-libvips-darwin-x64@1.0.4': - resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + resolution: {integrity: sha1-4EVvj3xiP52/vcdzg8qnIoHYYGI=} cpu: [x64] os: [darwin] '@img/sharp-libvips-darwin-x64@1.2.4': - resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} + resolution: {integrity: sha1-5jaB9FOalK+c0XJG7YiBc0OG+Mw=} cpu: [x64] os: [darwin] '@img/sharp-libvips-linux-arm64@1.0.4': - resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + resolution: {integrity: sha1-l5scZsmpH3/yiTVW7yZ/kOvlFwQ=} cpu: [arm64] os: [linux] libc: [glibc] '@img/sharp-libvips-linux-arm64@1.2.4': - resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} + resolution: {integrity: sha1-sbKIs2hks7zlRa2R+m2tzxpK0xg=} cpu: [arm64] os: [linux] libc: [glibc] '@img/sharp-libvips-linux-arm@1.0.5': - resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + resolution: {integrity: sha1-mfki1OFSFuwgXctokbchv9KIQZc=} cpu: [arm] os: [linux] libc: [glibc] '@img/sharp-libvips-linux-arm@1.2.4': - resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} + resolution: {integrity: sha1-uSYN0evm+eO9vL3KydKsEl81hS0=} cpu: [arm] os: [linux] libc: [glibc] '@img/sharp-libvips-linux-ppc64@1.2.4': - resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} + resolution: {integrity: sha1-S4Ps8qgpBXIis4hIx7Ai57TQeqc=} cpu: [ppc64] os: [linux] libc: [glibc] '@img/sharp-libvips-linux-riscv64@1.2.4': - resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} + resolution: {integrity: sha1-iAtGeACeWiCArxkjMrALCq+KSN4=} cpu: [riscv64] os: [linux] libc: [glibc] '@img/sharp-libvips-linux-s390x@1.0.4': - resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + resolution: {integrity: sha1-+KXrHzdKCC9ys/ReL7JbgRiopc4=} cpu: [s390x] os: [linux] libc: [glibc] '@img/sharp-libvips-linux-s390x@1.2.4': - resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} + resolution: {integrity: sha1-dPNDyOEPrYIbOPdc7TBIiTncWew=} cpu: [s390x] os: [linux] libc: [glibc] '@img/sharp-libvips-linux-x64@1.0.4': - resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + resolution: {integrity: sha1-1MRhnN0Vd3SQbhV3DuEZkxx+9eA=} cpu: [x64] os: [linux] libc: [glibc] '@img/sharp-libvips-linux-x64@1.2.4': - resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} + resolution: {integrity: sha1-30GD6L2EEPfWG2aFmjXt6rClMc4=} cpu: [x64] os: [linux] libc: [glibc] '@img/sharp-libvips-linuxmusl-arm64@1.0.4': - resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + resolution: {integrity: sha1-Fmd42g9I3Sve0fowM87mtYjw1dU=} cpu: [arm64] os: [linux] libc: [musl] '@img/sharp-libvips-linuxmusl-arm64@1.2.4': - resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} + resolution: {integrity: sha1-yNa0ghHfZxN1QQB+6NG3sfjKjgY=} cpu: [arm64] os: [linux] libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.0.4': - resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + resolution: {integrity: sha1-k3lOTXcgsHf8rT4CmC8vHCRnUf8=} cpu: [x64] os: [linux] libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.2.4': - resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} + resolution: {integrity: sha1-vhHHW+5bCAy+4xoVOod5RI+Rn3U=} cpu: [x64] os: [linux] libc: [musl] '@img/sharp-linux-arm64@0.33.5': - resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + resolution: {integrity: sha1-7bBpfnqCecn8gppg/DVkTEg5uyI=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] libc: [glibc] '@img/sharp-linux-arm64@0.34.5': - resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} + resolution: {integrity: sha1-eqd2TvnAAfFeYQVG1C/OVpEXkMw=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] libc: [glibc] '@img/sharp-linux-arm@0.33.5': - resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + resolution: {integrity: sha1-QiwaNS57WDKEJXfcUWArzVtvXv8=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] libc: [glibc] '@img/sharp-linux-arm@0.34.5': - resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} + resolution: {integrity: sha1-X7DDaV3RJSLTnD/3pryBZGF4Cg0=} 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==} + resolution: {integrity: sha1-nCE6gVIKIMr2aXjz1MB0Vv8uCBM=} 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==} + resolution: {integrity: sha1-zdKBgndOrb4E9iZ1oWqrvMuDP2A=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [riscv64] os: [linux] libc: [glibc] '@img/sharp-linux-s390x@0.33.5': - resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + resolution: {integrity: sha1-9cB3kmtI6X5KBNAE368XWXIFlmc=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] libc: [glibc] '@img/sharp-linux-s390x@0.34.5': - resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} + resolution: {integrity: sha1-k+rGAbnzKbsnkX4OGQmMci1jDfc=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] libc: [glibc] '@img/sharp-linux-x64@0.33.5': - resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + resolution: {integrity: sha1-2Abgr9ca5ndcyH8NqPLQOnwiCcs=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] libc: [glibc] '@img/sharp-linux-x64@0.34.5': - resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} + resolution: {integrity: sha1-VavHzXVP/KUAK2wrcZq9/IRoGag=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] libc: [glibc] '@img/sharp-linuxmusl-arm64@0.33.5': - resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + resolution: {integrity: sha1-JSl1uRWJT7MVr13uoXRlHiCNPWs=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] libc: [musl] '@img/sharp-linuxmusl-arm64@0.34.5': - resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} + resolution: {integrity: sha1-1lFe6XG7YvcwAaSCm52GWhG3cIY=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] libc: [musl] '@img/sharp-linuxmusl-x64@0.33.5': - resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + resolution: {integrity: sha1-P0YJrF2O+Ox9re6AtWCWGmD9T0g=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] libc: [musl] '@img/sharp-linuxmusl-x64@0.34.5': - resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} + resolution: {integrity: sha1-2Xl4rsfFIS+ZlxTy9bc2RX4S7p8=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] libc: [musl] '@img/sharp-wasm32@0.33.5': - resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + resolution: {integrity: sha1-b0TzKDBp2TW7XKWBMVNXLz5vYaE=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] '@img/sharp-wasm32@0.34.5': - resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} + resolution: {integrity: sha1-LxWAOqYm+MWd18nQu8dm8atSz6A=} 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==} + resolution: {integrity: sha1-Nwbp46w1/d/ByH+U6Enxt1MHzgo=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [win32] '@img/sharp-win32-ia32@0.33.5': - resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + resolution: {integrity: sha1-GgyDmkDFNR6YhWKMhfLl39ArUqk=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] '@img/sharp-win32-ia32@0.34.5': - resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} + resolution: {integrity: sha1-C3EWZZmwSeAy8IX7kmPgL05HiN4=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] '@img/sharp-win32-x64@0.33.5': - resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + resolution: {integrity: sha1-VvAJYv8MTg65PTSgR9KfqZXj40I=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] '@img/sharp-win32-x64@0.34.5': - resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} + resolution: {integrity: sha1-qB/7AOaSZ80KHWJurtuKhDCysvg=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] '@inquirer/checkbox@4.2.1': - resolution: {integrity: sha512-bevKGO6kX1eM/N+pdh9leS5L7TBF4ICrzi9a+cbWkrxeAeIcwlo/7OfWGCDERdRCI2/Q6tjltX4bt07ALHDwFw==} + resolution: {integrity: sha1-RRJaMvJ8XP2Coj1ez0m03BN+Ekc=} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -8341,7 +8359,7 @@ packages: optional: true '@inquirer/confirm@5.1.15': - resolution: {integrity: sha512-SwHMGa8Z47LawQN0rog0sT+6JpiL0B7eW9p1Bb7iCeKDGTI5Ez25TSc2l8kw52VV7hA4sX/C78CGkMrKXfuspA==} + resolution: {integrity: sha1-xQLVxkL9ugZpsXRCtAeUyXvbzLQ=} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -8350,7 +8368,7 @@ packages: optional: true '@inquirer/core@10.1.15': - resolution: {integrity: sha512-8xrp836RZvKkpNbVvgWUlxjT4CraKk2q+I3Ksy+seI2zkcE+y6wNs1BVhgcv8VyImFecUhdQrYLdW32pAjwBdA==} + resolution: {integrity: sha1-j+tp/VNnhhgaK2v7hNhnT6qdLlk=} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -8359,7 +8377,7 @@ packages: optional: true '@inquirer/editor@4.2.17': - resolution: {integrity: sha512-r6bQLsyPSzbWrZZ9ufoWL+CztkSatnJ6uSxqd6N+o41EZC51sQeWOzI6s5jLb+xxTWxl7PlUppqm8/sow241gg==} + resolution: {integrity: sha1-WvFvbyT2L1Uv6wXHvsLcB0MjBYQ=} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -8368,7 +8386,7 @@ packages: optional: true '@inquirer/expand@4.0.17': - resolution: {integrity: sha512-PSqy9VmJx/VbE3CT453yOfNa+PykpKg/0SYP7odez1/NWBGuDXgPhp4AeGYYKjhLn5lUUavVS/JbeYMPdH50Mw==} + resolution: {integrity: sha1-toj0oaZdryv3ehHedzR2Z2nM40M=} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -8377,7 +8395,7 @@ packages: optional: true '@inquirer/external-editor@1.0.1': - resolution: {integrity: sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==} + resolution: {integrity: sha1-qwqCxXGalj+0aQIc3lzSt0/qMPg=} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -8386,11 +8404,11 @@ packages: optional: true '@inquirer/figures@1.0.13': - resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} + resolution: {integrity: sha1-rQr9YrqrHCMXURWpti9RG2p1HkU=} engines: {node: '>=18'} '@inquirer/input@4.2.1': - resolution: {integrity: sha512-tVC+O1rBl0lJpoUZv4xY+WGWY8V5b0zxU1XDsMsIHYregdh7bN5X5QnIONNBAl0K765FYlAfNHS2Bhn7SSOVow==} + resolution: {integrity: sha1-wXRlTrGrNN/UKpz2CVp+c1pNsTA=} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -8399,7 +8417,7 @@ packages: optional: true '@inquirer/number@3.0.17': - resolution: {integrity: sha512-GcvGHkyIgfZgVnnimURdOueMk0CztycfC8NZTiIY9arIAkeOgt6zG57G+7vC59Jns3UX27LMkPKnKWAOF5xEYg==} + resolution: {integrity: sha1-MqZhNs41ytn0DOtfgqjPrE8wZRc=} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -8408,7 +8426,7 @@ packages: optional: true '@inquirer/password@4.0.17': - resolution: {integrity: sha512-DJolTnNeZ00E1+1TW+8614F7rOJJCM4y4BAGQ3Gq6kQIG+OJ4zr3GLjIjVVJCbKsk2jmkmv6v2kQuN/vriHdZA==} + resolution: {integrity: sha1-RUgMis5ojr8HHjUFNup0Z5Kz7ro=} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -8417,7 +8435,7 @@ packages: optional: true '@inquirer/prompts@7.8.3': - resolution: {integrity: sha512-iHYp+JCaCRktM/ESZdpHI51yqsDgXu+dMs4semzETftOaF8u5hwlqnbIsuIR/LrWZl8Pm1/gzteK9I7MAq5HTA==} + resolution: {integrity: sha1-9c0+pltTVqFYWH+mqaqeyArbkgE=} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -8426,7 +8444,7 @@ packages: optional: true '@inquirer/rawlist@4.1.5': - resolution: {integrity: sha512-R5qMyGJqtDdi4Ht521iAkNqyB6p2UPuZUbMifakg1sWtu24gc2Z8CJuw8rP081OckNDMgtDCuLe42Q2Kr3BolA==} + resolution: {integrity: sha1-42ZOPaP7qT807iWBP6p5V6pxeZE=} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -8435,7 +8453,7 @@ packages: optional: true '@inquirer/search@3.1.0': - resolution: {integrity: sha512-PMk1+O/WBcYJDq2H7foV0aAZSmDdkzZB9Mw2v/DmONRJopwA/128cS9M/TXWLKKdEQKZnKwBzqu2G4x/2Nqx8Q==} + resolution: {integrity: sha1-IvE3OTju97mMPDD2BKrI++m68no=} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -8444,7 +8462,7 @@ packages: optional: true '@inquirer/select@4.3.1': - resolution: {integrity: sha512-Gfl/5sqOF5vS/LIrSndFgOh7jgoe0UXEizDqahFRkq5aJBLegZ6WjuMh/hVEJwlFQjyLq1z9fRtvUMkb7jM1LA==} + resolution: {integrity: sha1-tJ522rR/fHKeTh5SD+3CaOW4jNw=} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -8453,7 +8471,7 @@ packages: optional: true '@inquirer/type@3.0.8': - resolution: {integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==} + resolution: {integrity: sha1-78KTug7ZHpDmJn8arMHHDSC4tOg=} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -8462,27 +8480,27 @@ packages: optional: true '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + resolution: {integrity: sha1-s3Znt7wYHBaHgiWbq0JHT79StVA=} engines: {node: '>=12'} '@isaacs/fs-minipass@4.0.1': - resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + resolution: {integrity: sha1-LVmuOrSzj7QnC/oj0w+OLobH/jI=} engines: {node: '>=18.0.0'} '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + resolution: {integrity: sha1-/T2x1Z7PfPEh6AZQu4ZxL5tV7O0=} engines: {node: '>=8'} '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + resolution: {integrity: sha1-5F44TkuOwWvOL9kDr3hFD2v37Jg=} engines: {node: '>=8'} '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + resolution: {integrity: sha1-zUgi29uEUpJlxaK9tSmjycyVD/w=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/core@29.7.0': - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + resolution: {integrity: sha1-tszMI58w/zZglljFpeIpF1fORI8=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -8491,27 +8509,27 @@ packages: optional: true '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + resolution: {integrity: sha1-JNYfVP8feG881Ac7S5RBY4O68qc=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + resolution: {integrity: sha1-Aj7+XSaopw8hZ30KGvwPCkTjocY=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + resolution: {integrity: sha1-dqPtsMt1O3Dfv+Iyg1ENPUVDK/I=} 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==} + resolution: {integrity: sha1-/ZG/H/+xbX0NJKQmqxpHpJiBpWU=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + resolution: {integrity: sha1-jZKQ+exH/3cmB/qGTKHVou+uHU0=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + resolution: {integrity: sha1-BLJi7LO4+qg7Cz0yFiOXI5Po9Mc=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -8520,280 +8538,280 @@ packages: optional: true '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + resolution: {integrity: sha1-Qwtc6KTgBEp+OBlmMwWnswkcjgM=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + resolution: {integrity: sha1-2Quncglc83o0peuUE/G1YqCFVMQ=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + resolution: {integrity: sha1-jbmoCqGgl7siYlcmhnNLrtmxZXw=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + resolution: {integrity: sha1-bO+XfOHTmDSjrqiHoXJmKKbwcs4=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + resolution: {integrity: sha1-3y3Zw0bH13aLigZjmZRkDGQuKEw=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + resolution: {integrity: sha1-ETH4z2NOfoTF53urEvBSr1hfulk=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + resolution: {integrity: sha1-Y0Khn0Q0dRjJPkOxrGnes8Rlah8=} '@jridgewell/remapping@2.3.5': - resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + resolution: {integrity: sha1-N1xHbRlylHhRuh4Vro8SMEdEWqE=} '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + resolution: {integrity: sha1-eg7mAfYPmaIMfHxf8MgDiMEYm9Y=} engines: {node: '>=6.0.0'} '@jridgewell/source-map@0.3.5': - resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + resolution: {integrity: sha1-o7tNXGglqrDSgSaPR/atWFNDHpE=} '@jridgewell/source-map@0.3.6': - resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + resolution: {integrity: sha1-nXHKiG4yUC65NiyadKRnh8Nt+Bo=} '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + resolution: {integrity: sha1-MYi8snOkFLDSFf0ipYVAuYm5QJo=} '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + resolution: {integrity: sha1-aRKwDSxjHA0Vzhp6tXzWV/Ko+Lo=} '@jridgewell/trace-mapping@0.3.31': - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + resolution: {integrity: sha1-2xXWeByTHzolGj2sOVAcmKYIL9A=} '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + resolution: {integrity: sha1-ZTT9WTOlO6fL86F2FeJzoNEnP/k=} '@jscpd/badge-reporter@4.2.5': - resolution: {integrity: sha512-ktXrjPeRaRyUDktxTroSA2/w5sshXpQplWkUuq/e6XqEpKBSbGEnwZLIaegSijOrMwIcCXPQ9k4feXIz5eVJNA==} + resolution: {integrity: sha1-KT91Th9lYxACSwaS0e/QncM4uB0=} '@jscpd/core@4.2.5': - resolution: {integrity: sha512-Esf2deHxaoNEjePwf2jqP6Urzj+BAOsJVPFLbnnSsV+q7rLNMcn0UEEoKBXIOOt4qMkrkhl9DfwpMyPPOr6GkQ==} + resolution: {integrity: sha1-tYLVFDgmWuIvMJakW6nlWR87qoU=} '@jscpd/finder@4.2.5': - resolution: {integrity: sha512-Rw0dtwp/EeLANbujOubuQeJIuXXXkAlT+f5geZhwkB9TxEYP0hqNrdOJUK/TDBKQjRGrOizEtdNy+S4UlbdzOQ==} + resolution: {integrity: sha1-YVRE6AW6W1U3CdcEQ3JuNkn2yvs=} '@jscpd/html-reporter@4.2.5': - resolution: {integrity: sha512-zMMIKbvi43dMgeNeHXlHQy1ovf+KJrzNlUubaBvCAVatqP23ksW8d3fmsevIQG9mMMTH0D1xOz+SxUn1FREOPg==} + resolution: {integrity: sha1-wQbPLY3BeOxPAy5GQJh5D71JeDE=} '@jscpd/tokenizer@4.2.5': - resolution: {integrity: sha512-UM8Wx/jwahmflqQExlcKMQTYOAy58N/fn7Pv6NYrkD3EZm/FTk7gW97wkXy5aDE1Ts9oBUpT9tLY2rz7ogCHAQ==} + resolution: {integrity: sha1-UUrHyZ2V4wugq7twqcpNdwMnM/E=} '@jsonjoy.com/base64@1.1.2': - resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} + resolution: {integrity: sha1-z46p3LhJuByV8U/AqqFRxrVNJXg=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/base64@17.67.0': - resolution: {integrity: sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==} + resolution: {integrity: sha1-fu2jy0ETjXepBAj9LkKyq6EFdtc=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/buffers@1.2.1': - resolution: {integrity: sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==} + resolution: {integrity: sha1-jZnH9n6vck00KN/ZgmxkVSZqXIM=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/buffers@17.67.0': - resolution: {integrity: sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==} + resolution: {integrity: sha1-XFjbze6ogkzilr0c/OAGwusWez0=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/codegen@1.0.0': - resolution: {integrity: sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==} + resolution: {integrity: sha1-XCP3lsR2dfFm0juUjNuIkYS5Mgc=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/codegen@17.67.0': - resolution: {integrity: sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==} + resolution: {integrity: sha1-NjX9h2nXfhm3XcVXS8l1YBmy5ZE=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/fs-core@4.57.7': - resolution: {integrity: sha512-GDKuYHjP7vAI1kjBo73V+STKr9XIMZknW/xirpRW/EcShX0IKSev/ALafeRfC8Q331nodrXUFu04PugPB0MAhw==} + resolution: {integrity: sha1-XUv7yVFHQHyCZdS7Z2BcDBjHYqE=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/fs-fsa@4.57.7': - resolution: {integrity: sha512-1rWsah2nZtRbNeP+c61QcfGfVrJXBmBD0Hm7Akvv4C9MKEasXnbiOS//iH3T3HwUSSBATGrfSp0Xi8nlNhATeQ==} + resolution: {integrity: sha1-LAmpnqmvKSr3RHyet4U3djv4VDM=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/fs-node-builtins@4.57.7': - resolution: {integrity: sha512-LWqfY1m+uAosjwM1RrKhMkUnP9jcq1RUczHsNO779ovm1E9v8I/pmj04eBAcoBjhC7ltcPbNFGyRJ5JqSJ7Jdg==} + resolution: {integrity: sha1-zA/RIfWHBYeM6bPzcvwAvX2JfOM=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/fs-node-to-fsa@4.57.7': - resolution: {integrity: sha512-9T0zC9LKcAWXDoTLRdLMoJ0seOvJ5bgDKq1tSBoQAFQpPDstQUeV1Oe7PLypdu7F2D3ddRstmwgeNUEN/VaZ4Q==} + resolution: {integrity: sha1-LEsYB70ae+WZU21H/t+AJwa2s2Y=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/fs-node-utils@4.57.7': - resolution: {integrity: sha512-jjWSDOsfcog2cZnUCwX5AHmlIq6b6wx5Pz/2LAcNjJ62Rajwg89Fy7ubN+lDHew0/1reLDa9Z5urybYadhh37g==} + resolution: {integrity: sha1-UTCMS9/HF8y7FVdZ/n35yRr+wJk=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/fs-node@4.57.7': - resolution: {integrity: sha512-xhnyeyEVTiIOibFvda/5n89nChMLCPKHHM2WQ+GGDf6+U/IrQBW3Qx6x+Uq1bkDbxBkybLOdIGoBtVBrE8Nngg==} + resolution: {integrity: sha1-PWL5OvHM3/051DkVTzYVXX4+tcY=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/fs-print@4.57.7': - resolution: {integrity: sha512-mFM4P4Gjq0QQHkLnXzPYPEMFrAoe6a5Myedgb6+CmL+nGd3MKvTxYPuD7N1dLIH9RBy1fLdzxd80qvuK8xrx3Q==} + resolution: {integrity: sha1-rsjj9dZs1k6Q4fyZE6X6SBHYJLE=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/fs-snapshot@4.57.7': - resolution: {integrity: sha512-1GS3+plfm2giB3PqokiqyydyqYTPLcCQIKSkp0TdMNRh3KVk7rqRM6U785FLlVRG7XLmkc0KWr215OY+22K3QA==} + resolution: {integrity: sha1-Nwz0BbrDWKT/Qm2Ei3M9+exRSdI=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/json-pack@1.21.0': - resolution: {integrity: sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==} + resolution: {integrity: sha1-k/jdV/46OpITKzPR6xgtzZ52Kfo=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/json-pack@17.67.0': - resolution: {integrity: sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==} + resolution: {integrity: sha1-jdj/Zd2ZnF1NJt9GxjkVx73sCTo=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/json-pointer@1.0.2': - resolution: {integrity: sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==} + resolution: {integrity: sha1-BJy1MKwk6Ey6CFkMXja0McSENAg=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/json-pointer@17.67.0': - resolution: {integrity: sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==} + resolution: {integrity: sha1-dEOVc9wEbgyaOlUvuUs5G8dTE7g=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/util@1.9.0': - resolution: {integrity: sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==} + resolution: {integrity: sha1-fulVhq7Qp2a3Rs2Ng2PjNsPEfEY=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@jsonjoy.com/util@17.67.0': - resolution: {integrity: sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==} + resolution: {integrity: sha1-fEKI/DgIIz5Vx2EBAee7RZDN3T8=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' '@leichtgewicht/ip-codec@2.0.5': - resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} + resolution: {integrity: sha1-T8VsFcWAua233DwzOhNOVAtEv7E=} '@lezer/common@1.2.3': - resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==} + resolution: {integrity: sha1-E4/N2rFX2D2lV1VIUQF8bB5WZ/0=} '@lezer/cpp@1.1.3': - resolution: {integrity: sha512-ykYvuFQKGsRi6IcE+/hCSGUhb/I4WPjd3ELhEblm2wS2cOznDFzO+ubK2c+ioysOnlZ3EduV+MVQFCPzAIoY3w==} + resolution: {integrity: sha1-MCmlQvRiT7oO0o+WURs0uOeQY1I=} '@lezer/css@1.2.1': - resolution: {integrity: sha512-2F5tOqzKEKbCUNraIXc0f6HKeyKlmMWJnBB0i4XW6dJgssrZO/YlZ2pY5xgyqDleqqhiNJ3dQhbrV2aClZQMvg==} + resolution: {integrity: sha1-s19tBFnpvk3hzfTTEypZ79fPK6M=} '@lezer/go@1.0.1': - resolution: {integrity: sha512-xToRsYxwsgJNHTgNdStpcvmbVuKxTapV0dM0wey1geMMRc9aggoVyKgzYp41D2/vVOx+Ii4hmE206kvxIXBVXQ==} + resolution: {integrity: sha1-MAS1T15Mlxnty6mGU/OAuvjA0aI=} '@lezer/highlight@1.2.1': - resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} + resolution: {integrity: sha1-WW+o+a61imCL4KVj6WDDc8vyP4s=} '@lezer/html@1.3.10': - resolution: {integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==} + resolution: {integrity: sha1-G+mgKab+g1yCOyCpikSaYwQWsq8=} '@lezer/java@1.1.3': - resolution: {integrity: sha512-yHquUfujwg6Yu4Fd1GNHCvidIvJwi/1Xu2DaKl/pfWIA2c1oXkVvawH3NyXhCaFx4OdlYBVX5wvz2f7Aoa/4Xw==} + resolution: {integrity: sha1-nv1qKbQULQfyEQdqb7XoBhyF4Uc=} '@lezer/javascript@1.5.1': - resolution: {integrity: sha512-ATOImjeVJuvgm3JQ/bpo2Tmv55HSScE2MTPnKRMRIPx2cLhHGyX2VnqpHhtIV1tVzIjZDbcWQm+NCTF40ggZVw==} + resolution: {integrity: sha1-KkJKbsKfHU7zw0y8zFRH43Nhitg=} '@lezer/json@1.0.3': - resolution: {integrity: sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==} + resolution: {integrity: sha1-53OgEq0AiPvwfOSc+6h1zJ5bwF8=} '@lezer/lr@1.4.2': - resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==} + resolution: {integrity: sha1-kx6j3qjp3oTpB4EAHa4w3qn/Fyc=} '@lezer/markdown@1.4.3': - resolution: {integrity: sha512-kfw+2uMrQ/wy/+ONfrH83OkdFNM0ye5Xq96cLlaCy7h5UT9FO54DU4oRoIc0CSBh5NWmWuiIJA7NGLMJbQ+Oxg==} + resolution: {integrity: sha1-p0LtXngqxJE6Yh39HmqOQJ9N1Yk=} '@lezer/php@1.0.2': - resolution: {integrity: sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==} + resolution: {integrity: sha1-fCkWMfwef37+mZd1IrxIvccyZYo=} '@lezer/python@1.1.18': - resolution: {integrity: sha512-31FiUrU7z9+d/ElGQLJFXl+dKOdx0jALlP3KEOsGTex8mvj+SoE1FgItcHWK/axkxCHGUSpqIHt6JAWfWu9Rhg==} + resolution: {integrity: sha1-+gL79JJ0HILcLcmKCgQr0NTX8dM=} '@lezer/rust@1.0.2': - resolution: {integrity: sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==} + resolution: {integrity: sha1-zJp1YF1nGCoOeZrECxllph3MbvA=} '@lezer/sass@1.1.0': - resolution: {integrity: sha512-3mMGdCTUZ/84ArHOuXWQr37pnf7f+Nw9ycPUeKX+wu19b7pSMcZGLbaXwvD2APMBDOGxPmpK/O6S1v1EvLoqgQ==} + resolution: {integrity: sha1-yC5mCqWzkwPR3nY5I675ef7x06Q=} '@lezer/xml@1.0.6': - resolution: {integrity: sha512-CdDwirL0OEaStFue/66ZmFSeppuL6Dwjlk8qk153mSQwiSH/Dlri4GNymrNWnUmPl2Um7QfV1FO9KFUyX3Twww==} + resolution: {integrity: sha1-kIwgOSMoj4VOuOL02bBsQ36GELk=} '@lezer/yaml@1.0.3': - resolution: {integrity: sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==} + resolution: {integrity: sha1-sjdwq0KzkAVtprGH2GG5mP1gsf8=} '@lit-labs/ssr-dom-shim@1.5.1': - resolution: {integrity: sha512-Aou5UdlSpr5whQe8AA/bZG0jMj96CoJIWbGfZ91qieWu5AWUMKw8VR/pAkQkJYvBNhmCcWnZlyyk5oze8JIqYA==} + resolution: {integrity: sha1-MWaQDA1IHwPW1BM2huD+v3YNUh0=} '@lit/reactive-element@2.1.2': - resolution: {integrity: sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==} + resolution: {integrity: sha1-TGr5BCYDyY5hupCylGB5BNUbYcs=} '@malept/cross-spawn-promise@2.0.0': - resolution: {integrity: sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==} + resolution: {integrity: sha1-0Hct4apoCgv7m6LzK0yCjHhXy50=} engines: {node: '>= 12.13.0'} '@malept/flatpak-bundler@0.4.0': - resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==} + resolution: {integrity: sha1-6KMsMKldIMKxu2NcxYCYGgY4mFg=} engines: {node: '>= 10.0.0'} '@manypkg/find-root@2.2.3': - resolution: {integrity: sha512-jtEZKczWTueJYHjGpxU3KJQ08Gsrf4r6Q2GjmPp/RGk5leeYAA1eyDADSAF+KVCsQ6EwZd/FMcOFCoMhtqdCtQ==} + resolution: {integrity: sha1-Ppvl3/SgCMIoZJo04q9lKI/xPCY=} engines: {node: '>=14.18.0'} '@manypkg/get-packages@2.2.2': - resolution: {integrity: sha512-3+Zd8kLZmsyJFmWTBtY0MAuCErI7yKB2cjMBlujvSVKZ2R/BMXi0kjCXu2dtRlSq/ML86t1FkumT0yreQ3n8OQ==} + resolution: {integrity: sha1-brFvwcz4yQOv9c3k5TXHV06WWw0=} engines: {node: '>=14.18.0'} '@manypkg/tools@1.1.2': - resolution: {integrity: sha512-3lBouSuF7CqlseLB+FKES0K4FQ02JrbEoRtJhxnsyB1s5v4AP03gsoohN8jp7DcOImhaR9scYdztq3/sLfk/qQ==} + resolution: {integrity: sha1-FdCrtmqgTO6D5/51g51W3f3VGW8=} engines: {node: '>=14.18.0'} '@marijn/find-cluster-break@1.0.2': - resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} + resolution: {integrity: sha1-d1N0MGEW1RwMUAuMT6zg+aBHUtg=} '@mermaid-js/parser@1.1.1': - resolution: {integrity: sha512-VuHdsYMK1bT6X2JbcAaWAhugTRvRBRyuZgd+c22swUeI9g/ntaxF7CY7dYarhZovofCbUNO0G7JesfmNtjYOCw==} + resolution: {integrity: sha1-MPOraNgWkS5D8kWnKg1Agb9p2WY=} '@microsoft/microsoft-graph-client@3.0.7': - resolution: {integrity: sha512-/AazAV/F+HK4LIywF9C+NYHcJo038zEnWkteilcxC1FM/uK/4NVGDKGrxx7nNq1ybspAroRKT4I1FHfxQzxkUw==} + resolution: {integrity: sha1-U1UH3y20C9ftJKZw3GjIfGKBd6Q=} engines: {node: '>=12.0.0'} peerDependencies: '@azure/identity': '*' @@ -8811,87 +8829,87 @@ packages: optional: true '@microsoft/microsoft-graph-types@2.40.0': - resolution: {integrity: sha512-1fcPVrB/NkbNcGNfCy+Cgnvwxt6/sbIEEFgZHFBJ670zYLegENYJF8qMo7x3LqBjWX2/Eneq5BVVRCLTmlJN+g==} + resolution: {integrity: sha1-ZfUWAKtFrOl9exNoxH+eD4Nf3co=} '@milkdown/components@7.13.1': - resolution: {integrity: sha512-qWQFg0KvPeGmlnsW9Y7w97I5HBwsaYqGaQMEyECkVZNL/CTT7uEdm9ofeLAeL9sNWya9WQYFplr0kJH6laiNKw==} + resolution: {integrity: sha1-9QCJ+7XgqE5zd/GmIm7RBKbGFqE=} peerDependencies: '@codemirror/language': ^6 '@codemirror/state': ^6 '@codemirror/view': ^6 '@milkdown/core@7.13.1': - resolution: {integrity: sha512-cSFH/Ob1kW9I7Q8vDw1Xd6JpIQNB7EZx+PMtEeEQbX/2mUYoDWrfzUeeKJPhtdyr77iN3B609Ok9Xn3bzZnoOg==} + resolution: {integrity: sha1-5AZIRiI6t3jWFPvTv1targTTJas=} '@milkdown/crepe@7.13.1': - resolution: {integrity: sha512-jMNwQ4BJVpI0VQ6/2rO6U1l8bC69VfiUUghqHnjt8+f81Dz+VxeROLfkmSBvqzq5rdknDidPDzr4OUFGoC4a1g==} + resolution: {integrity: sha1-UXs5FiNfWhialuhrpmmSNJdYFG4=} '@milkdown/ctx@7.13.1': - resolution: {integrity: sha512-S3u0KBz/6K4er5RaRJhZIof1pGK52KwvdPKL//l2++mcC92NG3FAsntllgsm3+AZLpYrk2DjlSqaYBCFvQ5O4g==} + resolution: {integrity: sha1-6qThOmfhSkO2IyVd03x75VvAc50=} '@milkdown/exception@7.13.1': - resolution: {integrity: sha512-3nfGRwXZcLC3dQyGiIJDNhgfpaU134dKX+qJuoCsFWsSib53ogkBdCVXma8d7REXtoMCLbcQWzUbfl+0Mn3TGA==} + resolution: {integrity: sha1-EiKnbI+ZD2HPTMvruru+0aQvdPM=} '@milkdown/kit@7.13.1': - resolution: {integrity: sha512-80kF0Ay6R3kBbysBA41VOYoqXPrz8o/LrxmB6omiJZ+93FrNdMoXx5GfNT4lKsOW1W5vtPvdqffZzQxW0wwzGA==} + resolution: {integrity: sha1-MTYxjas0BtP36QgORFMfk/J6bK0=} '@milkdown/plugin-block@7.13.1': - resolution: {integrity: sha512-HG/RJ9C/EHvky0/rio9oSlud89u4ggj9CvWAbiBjyMMeO0V0rDGGsVF+1sTtB6Gvtm7ryk/KDUUkM5a3zm8s4w==} + resolution: {integrity: sha1-2JA0/ffSp55d1dR5z1ymjMPne9o=} '@milkdown/plugin-clipboard@7.13.1': - resolution: {integrity: sha512-/WoPv4BDNufO6uavnwqMSYAQTgFvy2Vw5e8n1+Qba/kpjJtbXiH/9zrPA1w42SivxRkOSI0lfSm6OXQnQS5Z8Q==} + resolution: {integrity: sha1-hnMQkW4/1X7DJzpRd4sT8LM8uCw=} '@milkdown/plugin-collab@7.13.1': - resolution: {integrity: sha512-DPer8v2il8c/kxOOmbS2+suZNO4LTJMOpX0sNubz7MdNdVt+8+6GWIjpjoBAkqrDxEbNwjJ69mjBUQk/fiGYiQ==} + resolution: {integrity: sha1-+4ZDxTO6JuX8NDzENjvYX8y3IWM=} peerDependencies: y-prosemirror: '*' y-protocols: '*' yjs: '*' '@milkdown/plugin-cursor@7.13.1': - resolution: {integrity: sha512-ETJW+TLrrJCSf9+Hq4zwjqrW2z/RJBFeNyNoqen8PIpfmWJCM4EqyHLWw2qscJlx2fBDHnIAHCVnbu6Tmk1atg==} + resolution: {integrity: sha1-jhhMEt3miLX0jXJrUvchQUKdcBY=} '@milkdown/plugin-history@7.13.1': - resolution: {integrity: sha512-C2n3kKWWdEcIlk/HiV9WMK5f9PdxR2yzf3Sg3ibexhhAi4fp0bf0BJNupQVuFqYQPBmXL6rW4lFs9zVjHn/yEg==} + resolution: {integrity: sha1-04RdCWR6WjGXZg9O2+4qFycmoAA=} '@milkdown/plugin-indent@7.13.1': - resolution: {integrity: sha512-X6IKT/KLNWKww+tinNjBye2ClfaDmWyxu9dL6bz37l5HgBVZ9mL9HS97YIkxh/5YiivYwl98JmWba2ahKdXB5A==} + resolution: {integrity: sha1-Nmxt8AuOp3EeLJiKuI11V9WnYxQ=} '@milkdown/plugin-listener@7.13.1': - resolution: {integrity: sha512-CCsFtRXXnIwipVCjyBS1c/lthRq+Uiqw/x9GacvGSixNdwGfYn4lD+ujax9WwmNviANHakNZdL3y5aOVPZZ84A==} + resolution: {integrity: sha1-QPQpFj7o6O2AZje1TaB8jEYbWBQ=} '@milkdown/plugin-slash@7.13.1': - resolution: {integrity: sha512-Up91kxFyyPsfjfQ56sNfphaYvxsPdFaEOY6Q37FJYCwmdjIZ9/12FLDQJOr0Bh58Z6R1DHE7GgBQ4c/voQc5Sw==} + resolution: {integrity: sha1-opThiburlPJOk0nta/JhMPuGWrs=} '@milkdown/plugin-tooltip@7.13.1': - resolution: {integrity: sha512-XvbimMl9EaRsmCpdNnDomeqKqkSuSZMYrn1XAxouhb4Q2DMOEHC4J3prnnndrekbZD2ndlQPONb3asndhKpTXg==} + resolution: {integrity: sha1-PMUX25+zZOvPCa4t2AeWhatYEh0=} '@milkdown/plugin-trailing@7.13.1': - resolution: {integrity: sha512-Aon8tN4qQl76aX7C6jxi1NqJvjs/q8vAK04iO8qmJ+SzY0d7EaPcxZicTJitXTDI1W7VKSvGMAw1YP2qrH8now==} + resolution: {integrity: sha1-3U536PKk9WOcoRC+EIfJEdcpIZw=} '@milkdown/plugin-upload@7.13.1': - resolution: {integrity: sha512-jKyoDNroEOdpSWrrhKrbAY41y9k0jbyLReeNRESSbKF61Rf04v9dfRQBNu6GdLpHqL52AeI9TnQh7rcNFtrORA==} + resolution: {integrity: sha1-1Eyh229lnDDiZjbLEkpeFg1C9c4=} '@milkdown/preset-commonmark@7.13.1': - resolution: {integrity: sha512-KK0MOpoCDw1hEGXZiZ26sLPLIJnlzchdGqgxWD5KPGCa9Yj9aGOUqHDGVoH6aIhPBFOYV8nisZkHUGCSufVYnQ==} + resolution: {integrity: sha1-+OT7FNKbBHzDScxGrSRp/ggvI40=} '@milkdown/preset-gfm@7.13.1': - resolution: {integrity: sha512-y9MPhxyAAu6REJiGT+n/yXmeY7agg0GqbLNb/49bXuY6KAnLiBJNGd8s/rAHKQ08siVHxuUjMI6BSIDFCSShDw==} + resolution: {integrity: sha1-RliS8prhQB/Qw/VTuMDkMjn3Alo=} '@milkdown/prose@7.13.1': - resolution: {integrity: sha512-M3jiySoOW1jDkaT835KU+aWzHQZqmZ/o0FVm5Dkk8bZVI0v+wVEcE4H+1H8SskiP5s8gHgAMDUDrIkLifSeKvQ==} + resolution: {integrity: sha1-SBn4pnlAoOReGPeoFyCMl+GawPg=} '@milkdown/theme-nord@7.13.1': - resolution: {integrity: sha512-P41MvWh6j0jnJlBxo03Xyzmf4YCiSlPoY5fGvU95jTOigHRTMuF5pdp2Ha2Y3RoVKnjKB+cdAVpwtyfMpoVpnw==} + resolution: {integrity: sha1-Amc5fR8tBm22XNm7Ro8JbzAPj8U=} '@milkdown/transformer@7.13.1': - resolution: {integrity: sha512-h9IczhBuDbUrygzi8oCTb607C9kufS8nbLcQQ/pFvHMIjn92uejo84mAc4IWFmmxoXzVRj0/cDFt1KJTTkga+A==} + resolution: {integrity: sha1-UZm8WmJJCoG4Q/boWQvuLTQW9hA=} '@milkdown/utils@7.13.1': - resolution: {integrity: sha512-4ct/ovL0h/0kuLFligLdZgt3qtWbNZEHnIKO321qvkaGLx1HmzbMpiL6V8tq7iDqNKeoqAzFb/2vnUeYGv1Ndw==} + resolution: {integrity: sha1-VB5qUzLNF9mLz5oJqPJ3g5r3csQ=} '@modelcontextprotocol/sdk@1.26.0': - resolution: {integrity: sha512-Y5RmPncpiDtTXDbLKswIJzTqu2hyBKxTNsgKqKclDbhIgg1wgtf1fRuvxgTnRfcnxtvvgbIEcqUOzZrJ6iSReg==} + resolution: {integrity: sha1-WzXXMGISXxJsxwsL6Dy6tTvN3nQ=} engines: {node: '>=18'} peerDependencies: '@cfworker/json-schema': ^4.1.1 @@ -8901,7 +8919,7 @@ packages: optional: true '@modelcontextprotocol/sdk@1.29.0': - resolution: {integrity: sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ==} + resolution: {integrity: sha1-eXhti1JeJp3oUKyCsfH3V/ORX0Q=} engines: {node: '>=18'} peerDependencies: '@cfworker/json-schema': ^4.1.1 @@ -8911,526 +8929,526 @@ packages: optional: true '@modelcontextprotocol/server-filesystem@2026.1.14': - resolution: {integrity: sha512-bGAfu3fWRVeF10NxvPhFBDlRen6ExSx6YkKJzoVgQMNrbdVVV4okfGGQ3KBRu9ygXYfw5/N9ermHAJXA0uys+g==} + resolution: {integrity: sha1-zHun4ONKr9FTBI6KITxwMLlT1oM=} hasBin: true '@mongodb-js/saslprep@1.2.2': - resolution: {integrity: sha512-EB0O3SCSNRUFk66iRCpI+cXzIjdswfCs7F6nOC3RAGJ7xr5YhaicvsRwJ9eyzYvYRlCSDUO/c7g4yNulxKC1WA==} + resolution: {integrity: sha1-CVBvKcwqmdnXuVHKp//8h+UiptM=} '@mozilla/readability@0.6.0': - resolution: {integrity: sha512-juG5VWh4qAivzTAeMzvY9xs9HY5rAcr2E4I7tiSSCokRFi7XIZCAu92ZkSTsIj1OPceCifL3cpfteP3pDT9/QQ==} + resolution: {integrity: sha1-E0484/8WdnFuVQ3guN6Ve8xZIIs=} engines: {node: '>=14.0.0'} '@napi-rs/canvas-android-arm64@0.1.72': - resolution: {integrity: sha512-OW99TDJEdfOhpJWQ7SXFsQi1BXd6UFuWM8AoQvJ0SQMHWY/iwuopmb1UqGV6Df9aM/SWxvCWBN/onjeCM8KVKQ==} + resolution: {integrity: sha1-vByo4D7SymTYAwuQ+R+gmF6+llo=} engines: {node: '>= 10'} cpu: [arm64] os: [android] '@napi-rs/canvas-darwin-arm64@0.1.72': - resolution: {integrity: sha512-gB8Pn/4GdS+B6P4HYuNqPGx8iQJ16Go1D6e5hIxfUbA/efupVGZ7e3OMGWGCUgF0vgbEPEF31sPzhcad4mdR5g==} + resolution: {integrity: sha1-3Ett1Bq6ObuF27J57nM5DA9YWHY=} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] '@napi-rs/canvas-darwin-x64@0.1.72': - resolution: {integrity: sha512-x1zKtWVSnf+yLETHdSDAFJ1w6bctS/V2NP0wskTTBKkC+c/AmI2Dl+ZMIW11gF6rilBibrIzBeXJKPzV0GMWGA==} + resolution: {integrity: sha1-UviBC7zuWmg9sxzlEfcUlp/KVEk=} engines: {node: '>= 10'} cpu: [x64] os: [darwin] '@napi-rs/canvas-linux-arm-gnueabihf@0.1.72': - resolution: {integrity: sha512-Ef6HMF+TBS+lqBNpcUj2D17ODJrbgevXaVPtr2nQFCao5IvoEhVMdmVwWk5YiI+GcgbAkg5AF3LiU47RoSY5yg==} + resolution: {integrity: sha1-REpnSdEIVoU/ZmTWY7MAMcGvg7c=} engines: {node: '>= 10'} cpu: [arm] os: [linux] '@napi-rs/canvas-linux-arm64-gnu@0.1.72': - resolution: {integrity: sha512-i1tWu+Li1Z6G4t+ckT38JwuB/cAAREV6H8VD3dip2yTYU+qnLz6kG4i+whm+SEQb1e4vk3xA1lKnjYx3jlOy8g==} + resolution: {integrity: sha1-dqP4Pyr7RKq7vdfx8nGrji3N60c=} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] '@napi-rs/canvas-linux-arm64-musl@0.1.72': - resolution: {integrity: sha512-Mu+2hHZAT9SdrjiRtCxMD/Unac8vqVxF/p+Tvjb5sN1NZkLGu+l7WIfrug8aeX150OwrYgAvsR4mhrm0BZvLxg==} + resolution: {integrity: sha1-g8HYY9DLbHtldZ7e3tTsMZjudfA=} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] '@napi-rs/canvas-linux-riscv64-gnu@0.1.72': - resolution: {integrity: sha512-xBPG/ImL58I4Ep6VM+sCrpwl8rE/8e7Dt9U7zzggNvYHrWD13vIF3q5L2/N9VxdBMh1pee6dBC/VcaXLYccZNQ==} + resolution: {integrity: sha1-Bc2vO7Q4NFgaSCR3wB4h/XaAuVQ=} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] libc: [glibc] '@napi-rs/canvas-linux-x64-gnu@0.1.72': - resolution: {integrity: sha512-jkC8L+QovHpzQrw+Jm1IUqxgLV5QB1hJ1cR8iYzxNRd0TOF7YfxLaIGxvd/ReRi9r48JT6PL7z2IGT7TqK8T4w==} + resolution: {integrity: sha1-7tgu9Mct71636zaGN40vfWwUKug=} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] '@napi-rs/canvas-linux-x64-musl@0.1.72': - resolution: {integrity: sha512-PwPdPmHgJYnTMUr8Gff80eRVdpGjwrxueIqw+7v4aeFxbQjmQ+paa2xaGedFtkvdS2Dn5z8a0mVlrlbSfec+1Q==} + resolution: {integrity: sha1-vba03KCLqUXvYVsnkRwkGnrF4Xs=} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] '@napi-rs/canvas-win32-x64-msvc@0.1.72': - resolution: {integrity: sha512-hZhXJZZ/2ZjkAoOtyGUs3Mx6jA4o9ESbc5bk+NKYO6thZRvRNA7rqvT9WF9pZK0xcRK5EyWRymv8fCzqmSVEzg==} + resolution: {integrity: sha1-KZ/MiJzqhS2XK19rk6faFE3Zrqg=} engines: {node: '>= 10'} cpu: [x64] os: [win32] '@napi-rs/canvas@0.1.72': - resolution: {integrity: sha512-ypTJ/DXzsJbTU3o7qXFlWmZGgEbh42JWQl7v5/i+DJz/HURELcSnq9ler9e1ukqma70JzmCQcIseiE/Xs6sczw==} + resolution: {integrity: sha1-owBt/7OVDEZcMVgZhuiAo2uIRUs=} engines: {node: '>= 10'} '@napi-rs/wasm-runtime@1.1.6': - resolution: {integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==} + resolution: {integrity: sha1-7TOAbQ+b6Y3HbQw9T9hy/acBtdU=} peerDependencies: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 '@noble/hashes@1.4.0': - resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} + resolution: {integrity: sha1-RYFKoynzDk/guklCb0nfzN0GZCY=} engines: {node: '>= 16'} '@nodable/entities@2.1.0': - resolution: {integrity: sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==} + resolution: {integrity: sha1-9UPlxkRnINTPnkmKgwGd0VmXO8I=} '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + resolution: {integrity: sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=} engines: {node: '>= 8'} '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + resolution: {integrity: sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=} engines: {node: '>= 8'} '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + resolution: {integrity: sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=} engines: {node: '>= 8'} '@nornagon/put@0.0.8': - resolution: {integrity: sha512-ugvXJjwF5ldtUpa7D95kruNJ41yFQDEKyF5CW4TgKJnh+W/zmlBzXXeKTyqIgwMFrkePN2JqOBqcF0M0oOunow==} + resolution: {integrity: sha1-nUl+xGyTZKzD+LWao8+O5BNK4zc=} engines: {node: '>=0.3.0'} '@oclif/core@4.5.2': - resolution: {integrity: sha512-eQcKyrEcDYeZJKu4vUWiu0ii/1Gfev6GF4FsLSgNez5/+aQyAUCjg3ZWlurf491WiYZTXCWyKAxyPWk8DKv2MA==} + resolution: {integrity: sha1-TbijZfp+njOvJyKU9xCn8/JVOOI=} engines: {node: '>=18.0.0'} '@oclif/core@4.8.0': - resolution: {integrity: sha512-jteNUQKgJHLHFbbz806aGZqf+RJJ7t4gwF4MYa8fCwCxQ8/klJNWc0MvaJiBebk7Mc+J39mdlsB4XraaCKznFw==} + resolution: {integrity: sha1-vej60AAZyMCo4neHtLQsRnCEJ4U=} engines: {node: '>=18.0.0'} '@oclif/plugin-autocomplete@3.2.24': - resolution: {integrity: sha512-KGz7ypHhahRJWy0sB+mNvLLJiMWEt4pgjCFIpcBhkZhc090H4e4QhGR6Xp2430rQgStPcnUa0BYcVZJPojAsDQ==} + resolution: {integrity: sha1-O/d2WyLPt+hwLz3hPCiEXNXw8Xk=} engines: {node: '>=18.0.0'} '@oclif/plugin-commands@4.1.21': - resolution: {integrity: sha512-7pmqqYzpgLX/YNt1v6NIE4InNCtZl7prUcUGfMkhyDHO8ss1O0xcXhNOiVK7ytXZKYWuPJMd+uA16ytThqXtOQ==} + resolution: {integrity: sha1-YQidv4acZLcUzGracdPA3zOucN0=} engines: {node: '>=18.0.0'} '@oclif/plugin-help@6.2.26': - resolution: {integrity: sha512-5KdldxEizbV3RsHOddN4oMxrX/HL6z79S94tbxEHVZ/dJKDWzfyCpgC9axNYqwmBF2pFZkozl/l7t3hCGOdalw==} + resolution: {integrity: sha1-FtTF1Tjh7Shko8qP1ZMxaUtfhtI=} engines: {node: '>=18.0.0'} '@oclif/plugin-not-found@3.2.65': - resolution: {integrity: sha512-WgP78eBiRsQYxRIkEui/eyR0l3a2w6LdGMoZTg3DvFwKqZ2X542oUfUmTSqvb19LxdS4uaQ+Mwp4DTVHw5lk/A==} + resolution: {integrity: sha1-1VhMRTp7EuJ9DXnVvYCjPM0ZD18=} engines: {node: '>=18.0.0'} '@oclif/table@0.4.6': - resolution: {integrity: sha512-NXh72vHHYnDrWPmVfh4i7kDydz3CXm/tSAr17fWhmWfMM+8jGn5uo6FXtvB0cd9s4skvDqzoRcsRwOeR73zIKA==} + resolution: {integrity: sha1-Tgf8Ed6bijGHpepD7c5xxCgRq34=} engines: {node: '>=18.0.0'} '@oozcitak/dom@2.0.2': - resolution: {integrity: sha512-GjpKhkSYC3Mj4+lfwEyI1dqnsKTgwGy48ytZEhm4A/xnH/8z9M3ZVXKr/YGQi3uCLs1AEBS+x5T2JPiueEDW8w==} + resolution: {integrity: sha1-D0R/C3NqpvNsVVa6gRpE5Wxxwmw=} engines: {node: '>=20.0'} '@oozcitak/infra@2.0.2': - resolution: {integrity: sha512-2g+E7hoE2dgCz/APPOEK5s3rMhJvNxSMBrP+U+j1OWsIbtSpWxxlUjq1lU8RIsFJNYv7NMlnVsCuHcUzJW+8vA==} + resolution: {integrity: sha1-4vHMDuyjrFzVUfAyal9m8AzxE4s=} engines: {node: '>=20.0'} '@oozcitak/url@3.0.0': - resolution: {integrity: sha512-ZKfET8Ak1wsLAiLWNfFkZc/BraDccuTJKR6svTYc7sVjbR+Iu0vtXdiDMY4o6jaFl5TW2TlS7jbLl4VovtAJWQ==} + resolution: {integrity: sha1-oDyVnGfiirqeKbLTXNUNJstfLMQ=} engines: {node: '>=20.0'} '@oozcitak/util@10.0.0': - resolution: {integrity: sha512-hAX0pT/73190NLqBPPWSdBVGtbY6VOhWYK3qqHqtXQ1gK7kS2yz4+ivsN07hpJ6I3aeMtKP6J6npsEKOAzuTLA==} + resolution: {integrity: sha1-9rQEctlsIQCUpVbuXMuOd/G9MK8=} engines: {node: '>=20.0'} '@open-wc/dedupe-mixin@2.0.1': - resolution: {integrity: sha512-+R4VxvceUxHAUJXJQipkkoV9fy10vNo+OnUnGKZnVmcwxMl460KLzytnUM4S35SI073R0yZQp9ra0MbPUwVcEA==} + resolution: {integrity: sha1-O80AnGOkcT2M5OMEpy6zOXfjdKw=} '@open-wc/scoped-elements@3.0.6': - resolution: {integrity: sha512-w1ayJaUUmBw8tALtqQ6cBueld+op+bufujzbrOdH0uCTXnSQkONYZzOH+9jyQ8auVgKLqcxZ8oU6SzfqQhQkPg==} + resolution: {integrity: sha1-m6SjFtOfKyncGI80p/Xk4fyd3tE=} '@open-wc/semantic-dom-diff@0.20.1': - resolution: {integrity: sha512-mPF/RPT2TU7Dw41LEDdaeP6eyTOWBD4z0+AHP4/d0SbgcfJZVRymlIB6DQmtz0fd2CImIS9kszaMmwMt92HBPA==} + resolution: {integrity: sha1-sbt4vkVb2Z+wNNm6rbuVnX0SQDA=} '@open-wc/testing-helpers@3.0.1': - resolution: {integrity: sha512-hyNysSatbgT2FNxHJsS3rGKcLEo6+HwDFu1UQL6jcSQUabp/tj3PyX7UnXL3H5YGv0lJArdYLSnvjLnjn3O2fw==} + resolution: {integrity: sha1-81ZpD8NJVGdQOjCiFyKIqouu9vg=} '@open-wc/testing@4.0.0': - resolution: {integrity: sha512-KI70O0CJEpBWs3jrTju4BFCy7V/d4tFfYWkg8pMzncsDhD7TYNHLw5cy+s1FHXIgVFetnMDhPpwlKIPvtTQW7w==} + resolution: {integrity: sha1-v6USEHmfhq0aR8LezmufFd1Ru5Q=} '@opentelemetry/api@1.9.0': - resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + resolution: {integrity: sha1-0D66aCc9wPdQnio9XLoh6uEDef4=} engines: {node: '>=8.0.0'} '@opentelemetry/core@2.8.0': - resolution: {integrity: sha512-hd1Lfh8p545nNz+jq1Ejfz+Mn1hyLuxYn1YzTfFNrxr8urEWMNQLPf1Th8kjOH+HxwawCrtgBp8JpBUR4ZSgww==} + resolution: {integrity: sha1-9uht42iL21Smyo9JNTY6W1iK6Rw=} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/semantic-conventions@1.34.0': - resolution: {integrity: sha512-aKcOkyrorBGlajjRdVoJWHTxfxO1vCNHLJVlSDaRHDIdjU+pX8IYQPvPDkYiujKLbRnWU+1TBwEt0QRgSm4SGA==} + resolution: {integrity: sha1-i2pGaBs4pNWUchQDOsSBKDKMFzg=} engines: {node: '>=14'} '@oxc-parser/binding-android-arm-eabi@0.137.0': - resolution: {integrity: sha512-KDs+0VPdEmasOkpuJHW9V5WCF+cvYdMQv2Jd+aJXt+cxIx12NToRQRbXaRwUEDsZw+/jMk81Ve8ZFbjUkJTOwA==} + resolution: {integrity: sha1-RBwU6z6tP/xu7JPYl/2z8aHx0po=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] '@oxc-parser/binding-android-arm64@0.137.0': - resolution: {integrity: sha512-WhALNzfy3x/RfC6bsqX+csavuUY0yHHE7XfgPE5M542uhoBZUUoGTPG+nkMbGoG4+gcfss5s7urMyn5QBHu0sw==} + resolution: {integrity: sha1-u4PSHTWG3ETXYDZ6RhA6MtnSMCY=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] '@oxc-parser/binding-darwin-arm64@0.137.0': - resolution: {integrity: sha512-bFPr5hgmNMOMoyPTGtdsK4Ug21RovIPojRMgDDhSp1LtCnc/DkLwGONKjgRjszg677RlGnkYSviQ8hHaUPOVYA==} + resolution: {integrity: sha1-spcPFkc2QbN7rgkpv7JotbREL7I=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] '@oxc-parser/binding-darwin-x64@0.137.0': - resolution: {integrity: sha512-CL5dMm1asqXIDZHg14FLxj3Mc36w8PI7xCWh1uA4is6z8g2XrIILoTcQYOxDbwzuk34RDPX5IAGUxZr6LA9KAg==} + resolution: {integrity: sha1-+/JeQPMx3LtuXKyT+75TxVfmHys=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] '@oxc-parser/binding-freebsd-x64@0.137.0': - resolution: {integrity: sha512-79h8rYGnSlKPGWo7mHr2ixO6ea7aW8B0CT965SZ8SLbNnCOH5aOYBTeVXUY6eMvEaiLyWr8Skuiugr5pDYgLGw==} + resolution: {integrity: sha1-RqPpnBnYWitYzUiXJ5kmhaanG10=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] '@oxc-parser/binding-linux-arm-gnueabihf@0.137.0': - resolution: {integrity: sha512-ASgmlSimhGyr0lksgVIo6hibz1obnDq4qJbiMX/AzltfgPnanRrzG1Q+23g8ljOHOjv6dsznkUuCYL3gg0sY1Q==} + resolution: {integrity: sha1-29njspdVO18mFiJIoUMYdP4ETvE=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] '@oxc-parser/binding-linux-arm-musleabihf@0.137.0': - resolution: {integrity: sha512-AU2J9aa22Sx32wRGnDjybOU9TQXXQUud5sdUi+ZB0XxwM8aToWLweV+yA0wlQm0yIUVqljquqoHCYEq9II8gJQ==} + resolution: {integrity: sha1-xAIxMelPCPZaetOgjEGuohwMfos=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] '@oxc-parser/binding-linux-arm64-gnu@0.137.0': - resolution: {integrity: sha512-GdEtiG89yMr7XkUGxifgodXEEm2f+xW2f9CpDjlgAnBOwhTmrpQMvhOGobLVKUyzf/qHBXW16smk5zbF3nZU6w==} + resolution: {integrity: sha1-XzCWcAa+Hh5VTv/DPCBYItl0src=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] '@oxc-parser/binding-linux-arm64-musl@0.137.0': - resolution: {integrity: sha512-EGJ+Bs8iXx8KBH8DQ5BLoEm5lnHaYjlh4/8j8vFhrr/6z4tqONy5BZDzLpKmmNWlN6Hlc5r8YOuBVHqZ9vRFEQ==} + resolution: {integrity: sha1-LmUvd/ykkSaiTfxK7Ow/tHDTf34=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] '@oxc-parser/binding-linux-ppc64-gnu@0.137.0': - resolution: {integrity: sha512-vzFUQENy/fnbSe5DZWovq6tIBc1uhuMztanSW6rz1e9WdQE4gHwYuD7ZII6JnrJifd1R3RSoqiZbgRFlVL2tYQ==} + resolution: {integrity: sha1-UnlPALuxjjZfFvOU/lSWqkbA+JA=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] '@oxc-parser/binding-linux-riscv64-gnu@0.137.0': - resolution: {integrity: sha512-SfVI14HBQs9gtLcUD5hTt5hsNbdrqSUNg9S8muN+LhVQ5nf1WwH3hAoK6B9NKgdYgWAQSXFXGiiBedQ4r/BKuw==} + resolution: {integrity: sha1-/0NM5LzDCgHS2Bu1SR3tzs9N/SE=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] '@oxc-parser/binding-linux-riscv64-musl@0.137.0': - resolution: {integrity: sha512-e7Ppy4FCIFNQxT/ikSeIWFoQ0l+N9vgtRBtLcyZXeolTzApyVoPqEXsYPrcdM/9i0Bwk8knvYd37vaEMxHyi6g==} + resolution: {integrity: sha1-LZ1N5k7GCnWQ/EDBLNNjERsfDB4=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] '@oxc-parser/binding-linux-s390x-gnu@0.137.0': - resolution: {integrity: sha512-Bho5qFwdhqsIFR7gipYEUlqvi3SRrY8sugxXig380MIaakBB1PyU9+7dBiBVScfImTNWhijUxdBwqrprGdq5WA==} + resolution: {integrity: sha1-9eY5e7wH982X7zMu8qABGmCdLgM=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] '@oxc-parser/binding-linux-x64-gnu@0.137.0': - resolution: {integrity: sha512-36mGWtg7PyFzjJwGDkH6/F4o2nIDEoKXLPr/X/lwqklkomQwJJt1I5GJVmGhovUEmgPK5WAeAZMqlFCehwiy9Q==} + resolution: {integrity: sha1-BYtliRhlSb2ZnEJFzasOJjlnbPQ=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] '@oxc-parser/binding-linux-x64-musl@0.137.0': - resolution: {integrity: sha512-/Jqx6+N7A44n2BdvUr7pXhVr2vFjs6WGH3unZRczwrfiH0H1zY0QwKQMG/dtRiTlKGDKGukznPT8lx84/oEsZg==} + resolution: {integrity: sha1-bLFc3crP7sCtxrPDyesBfo3gJX0=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] '@oxc-parser/binding-openharmony-arm64@0.137.0': - resolution: {integrity: sha512-9Uj0qHNNl+OgT1UTGwF7ixIXU6T1u2SbMidmgPy/h1h/fl2gRS6YpAxxY1gwHofcWjoTwkoMFd8xs5Vuj6GOFA==} + resolution: {integrity: sha1-05EeuZJZVSoB2NLH40yqaxvLrYk=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] '@oxc-parser/binding-wasm32-wasi@0.137.0': - resolution: {integrity: sha512-gW2vfkytNGgMVADiuzdvOfw0mWG9za20F/1fCJsif5aBMAvWJTSbpIXbIe0XkOe0VENk+PadpQ7cZgUy2sUJcA==} + resolution: {integrity: sha1-ON/pxgjQrRmwEEV4Oi8i7PDn/II=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] '@oxc-parser/binding-win32-arm64-msvc@0.137.0': - resolution: {integrity: sha512-x+pFANF0yL5uK/6T7lu6SlR5qid6sp//eZXKLq5iNsIE+EQg6EaS8/wsW7E91nXXjpnPhSoMOHXShSVhGRdn8w==} + resolution: {integrity: sha1-3HNMmPN7Ez65qgonQ8fnsk4SH9I=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] '@oxc-parser/binding-win32-ia32-msvc@0.137.0': - resolution: {integrity: sha512-sQUqym80PFi6McRsIqfJrSu2JrSClEZIXXD+/FjAFoULEKzOPsldIdFBG96xdX8aVMzCNQ9792FPx3MfkEIrFA==} + resolution: {integrity: sha1-kUjC23v/rKnwmx3LWPAdEa6xaEE=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] '@oxc-parser/binding-win32-x64-msvc@0.137.0': - resolution: {integrity: sha512-2AsevxlvNN4WKxpEn3RtqD5zbqMaXF+T7JXblsP4gVuY+vC9dXS4ED/PwfRCliFqoeisYS3Iro4DHzxr0TEvVA==} + resolution: {integrity: sha1-NICQDG/KToQwF/bemR/mr1e3NYw=} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] '@oxc-project/types@0.137.0': - resolution: {integrity: sha512-WT+Gb24i8hmvo85AIv2oEYouEXkRlKAlT9WaCa3TfLgNCN+GhrJOGZuIlMouAh38Qe4QOx26eUOVsq70qXrywA==} + resolution: {integrity: sha1-Vud/i7Ih+gXxixzTTXP5TwlUp3M=} '@oxc-resolver/binding-android-arm-eabi@11.21.3': - resolution: {integrity: sha512-eNU11A2WNizh04v3uyaJCootrHIaS0B9aHYXvAvVnPNk4xYSjMUjHnhQ6dewPN2MRYDskV85d1N0Aw0WNWhcyg==} + resolution: {integrity: sha1-98pC2UYU7sl+ILmvqnFz79YBnuk=} cpu: [arm] os: [android] '@oxc-resolver/binding-android-arm64@11.21.3': - resolution: {integrity: sha512-8Q+ZjTLvn2dIcWsrmhdrEihm7q+ag/k+mkry7Z+t0QbbHaVxXQfvH9AewyVMh/WrpEKhQ3DDgx9fYbqeCpeOEw==} + resolution: {integrity: sha1-9yNoLFm03+FD7cttNk1aA94+lJ4=} cpu: [arm64] os: [android] '@oxc-resolver/binding-darwin-arm64@11.21.3': - resolution: {integrity: sha512-wkh0qKZGHXVUDxFw3oA1TXnU2BDYY/r775oJflGeIr8uDPPoN2pk8gijQIzYRT6hoql/lg3+Tx/SaTn9e2/aGg==} + resolution: {integrity: sha1-58TzdByHkRxAxCmiCgW3gTacq6o=} cpu: [arm64] os: [darwin] '@oxc-resolver/binding-darwin-x64@11.21.3': - resolution: {integrity: sha512-HbNc23FAQYbuyDV2vBWMez4u4mrsm5RAkniGZAWqr6lYZ3N4beeqIb776jzwRl8qL2zRhHVXpUj97X0QgogVzg==} + resolution: {integrity: sha1-jSNFzS2NTc+lBCLibzsAja6Rv8E=} cpu: [x64] os: [darwin] '@oxc-resolver/binding-freebsd-x64@11.21.3': - resolution: {integrity: sha512-K6xNsTUPEUdfrn0+kbMq5nOUB5w1C5pavPQngt4TM2FpN91lP0PBe2srSpamb4d69O7h86oAi/qWX/kZNRSjkw==} + resolution: {integrity: sha1-t1VMOreQOpWq1hC6XRY5lvS3EJU=} cpu: [x64] os: [freebsd] '@oxc-resolver/binding-linux-arm-gnueabihf@11.21.3': - resolution: {integrity: sha512-VcFmOpcpWX1zoEy8M58tR2M9YxM+Z9RuQhqAx5q0CTmrruaP7Gveejg75hzd/5sg5nk9G3aLALEa3hE2FsmmTQ==} + resolution: {integrity: sha1-KnF9b3m911pczch1vNCp/uWF8cM=} cpu: [arm] os: [linux] '@oxc-resolver/binding-linux-arm-musleabihf@11.21.3': - resolution: {integrity: sha512-quVoxFLBy43hWaQbbDtQNRwAX5vX76mv7n64icAtQcJ3eNgVeblqmkupF/hAneNthdqSlnd1sTjb3aQSaDPaCQ==} + resolution: {integrity: sha1-LP1SNN4pE8KAXkK1+uWqk1TZm6k=} cpu: [arm] os: [linux] '@oxc-resolver/binding-linux-arm64-gnu@11.21.3': - resolution: {integrity: sha512-X0AqNZgcD07Q4V3RDK18/vYOj/HQT/FnmEFGYS2jTWqY7JO13ryE3TEs3eAIgUJhBnNkpEaiXqz3VK8M7qQhWQ==} + resolution: {integrity: sha1-MhcvvRtm191tygX82Fzuew4yBgo=} cpu: [arm64] os: [linux] libc: [glibc] '@oxc-resolver/binding-linux-arm64-musl@11.21.3': - resolution: {integrity: sha512-YkaQnaKYdbuaXvRt5Qd0GpbihzVnyfR6z1SpYfIUC6RTu4NF7lDKPjVkYb+jRI2gedVO2rVpN35Y6akG6ud4Lw==} + resolution: {integrity: sha1-rDHkiUy7DAC9pb4eUmZBBzkjv9w=} cpu: [arm64] os: [linux] libc: [musl] '@oxc-resolver/binding-linux-ppc64-gnu@11.21.3': - resolution: {integrity: sha512-gB9HwhrPiFqUzDeEq+y/CgAijz1YdI6BnXz5GaH2Pa9cWdutchlkGFAiAuGb/PjVQpiK6NFKzFuztxrweoit7A==} + resolution: {integrity: sha1-qK5+zBElkYEk0YdJ79caTgTgqFY=} cpu: [ppc64] os: [linux] libc: [glibc] '@oxc-resolver/binding-linux-riscv64-gnu@11.21.3': - resolution: {integrity: sha512-zjDWBlYk8QGv0H8dsPUWqkfjYIIjG2TvspGkzXL0eImbgxtZorA/klKeHyolevoT3Kvbi+1iMr9Lhrh7jf54Og==} + resolution: {integrity: sha1-0kztmzIfZg8ahZ+ZEt6rP4f9MRU=} cpu: [riscv64] os: [linux] libc: [glibc] '@oxc-resolver/binding-linux-riscv64-musl@11.21.3': - resolution: {integrity: sha512-4UfsQvacV388y1zpXL7C1x1FNYaV52JtuNRiuzrfQA2z1z6ElVrsidkGsrvQ5EgeSq1Pj7kaKqrgGkvFuxJ/tw==} + resolution: {integrity: sha1-sgzWttTGHqYnGJvJOaxfRppabIk=} cpu: [riscv64] os: [linux] libc: [musl] '@oxc-resolver/binding-linux-s390x-gnu@11.21.3': - resolution: {integrity: sha512-b5uH+HKH0MP5mNBYaK75SKsJbw52URqrx2LavYdq6wb0l3ExAG5niYRP9DWUNHdKilpaBVM2bXk9HNWrH3ew7Q==} + resolution: {integrity: sha1-0/SuyCtMuhh+UOIRxg+Va8YRb38=} cpu: [s390x] os: [linux] libc: [glibc] '@oxc-resolver/binding-linux-x64-gnu@11.21.3': - resolution: {integrity: sha512-PjYlmilBpNRh2ntXNYAK3Am5w/nPfEpnU/96iNx7CI8EzAn12J4JRiec63wHJTH31nLoCNxBg/829pN+3CfG3Q==} + resolution: {integrity: sha1-rdO3YpPvHolZ4AvGtiradm4YSFw=} cpu: [x64] os: [linux] libc: [glibc] '@oxc-resolver/binding-linux-x64-musl@11.21.3': - resolution: {integrity: sha512-QTBAb7JuHlZ7JUEyM8UiQi2f7m/L4swBhP2TNpYIDc9Wp/wRw1G/8sl6i13aIzQAXH7LKIm294LeOHd0lQR8zA==} + resolution: {integrity: sha1-S0x5vSaIoPmgLAoLZxAV/y98Zfw=} cpu: [x64] os: [linux] libc: [musl] '@oxc-resolver/binding-openharmony-arm64@11.21.3': - resolution: {integrity: sha512-4j1DFwjwv36ec9kds0jU/ucQ5Ha4ERO/H95BxR5JFf0kqUUAJ1kwII7XhTc1vZrkdJkvLGC9Q2MbpObpum8RBg==} + resolution: {integrity: sha1-PcM6FZqu830td9EN8EWt76tYUt8=} cpu: [arm64] os: [openharmony] '@oxc-resolver/binding-wasm32-wasi@11.21.3': - resolution: {integrity: sha512-i8oluoel5kru/j1WNrjmQSiA3GQ7wvIYVR1IwIoZtKogAhya2iub+ZKIeSIkcJOrnzQ18Tzl/F+kL3fYOxZLvA==} + resolution: {integrity: sha1-a8ib4FPijVU9sQCzUFxrDSUZsOw=} engines: {node: '>=14.0.0'} cpu: [wasm32] '@oxc-resolver/binding-win32-arm64-msvc@11.21.3': - resolution: {integrity: sha512-M/8dw8dD6aOs+NlPJax401CZB9I7Aut84isQLgALGGwke4Afvw+/7yYhZb94yXf6t2sPLhQLmSmtSV+2FhsOWg==} + resolution: {integrity: sha1-Y0XucnpZn+wGLEikO5Rct4huh+o=} cpu: [arm64] os: [win32] '@oxc-resolver/binding-win32-x64-msvc@11.21.3': - resolution: {integrity: sha512-H7BCt/VnS9hnmMp42eGhZ99izSCRvlnWwy/N71K1/J8QoExwY4262Z8QiEkMDtduRJrztayDxETTckmUuAVL9Q==} + resolution: {integrity: sha1-0Nox/ORta4VnL6HnUVQA+vzkXho=} cpu: [x64] os: [win32] '@peculiar/asn1-cms@2.8.0': - resolution: {integrity: sha512-NgekZOrSJFSBFLFoLfwePguAWAx7z1+f2TEsWFUMyiqqfntZ4+S/S5hzqME3q4pCA0iOsFKdwiQ35dwY24eVqA==} + resolution: {integrity: sha1-tIqDiTGSKPkp6azYzujabIWHON4=} '@peculiar/asn1-csr@2.8.0': - resolution: {integrity: sha512-akbF8+uvleHs8sejNPQxwmVFuInAg6FMNHOwMILXfP518YfFJwdR3jr6oNUPOaEJfuEhn/vkNOCIT6ASUd4mbg==} + resolution: {integrity: sha1-ybtd7C6v+CSnBegqSljUXm0sNdA=} '@peculiar/asn1-ecc@2.8.0': - resolution: {integrity: sha512-ohwlk+u9Rv2NOAY1c6MfHj45ATVF8R1DUN/WCgABiRtLi2ZftlZWZX7KvpAbU8v9xPcmoILfELeEABj/rn18AQ==} + resolution: {integrity: sha1-1RqysH7KmODPSS0FHpi70KBxMFo=} '@peculiar/asn1-pfx@2.8.0': - resolution: {integrity: sha512-5yof1ytoB++RQtaFbqSUJ8pxDJtZT6vbVqZ8XoJ61ph7UjNVvfFwAilnCodqkNsAodpy13gDhoxZXw00pghnyg==} + resolution: {integrity: sha1-jhibZFXiv55fkhuxUOqG1+fRh10=} '@peculiar/asn1-pkcs8@2.8.0': - resolution: {integrity: sha512-qAKXtLpBEw9LqhKpjw3ajZSXlBur+ipW+y2ivVBQAG6F6qRx94yO+1ZR4mvw+YaCfKSaOzLeYEzsPaBp4SJELA==} + resolution: {integrity: sha1-pGz4hXubBjiWr6QdK4sqpqB6cKI=} '@peculiar/asn1-pkcs9@2.8.0': - resolution: {integrity: sha512-b5nDWCnkV60+cQ141D6sVVwK9nz64R5n3zSVnklGd+ECdkW2Ol3U1a6yYFlalpSOaD557yuJB64A+q42jG7lUQ==} + resolution: {integrity: sha1-bWJpevC71PMP3w0jtAGPPwliDeM=} '@peculiar/asn1-rsa@2.8.0': - resolution: {integrity: sha512-zHEUlCqB2mk7x2lxDwHHJy7hWZOPdGHVlsmITWKB5/PbQo61atbu9PJ/0r9dQNMwFzbKPXZ8uK8/91eUhRznSg==} + resolution: {integrity: sha1-nZjQ/EL+xQEZ0ogbipkl022q6nM=} '@peculiar/asn1-schema@2.8.0': - resolution: {integrity: sha512-7YT0U/ze0tF2QOBbE15gKZwy5tvgGyLRiRHLzhlbOpf7BT032oBSd0haZqXn5W6l26WLlu3dyxzjM+2638/z2Q==} + resolution: {integrity: sha1-aWmfhCWbIWFgfKv8NOUSpAI9vvk=} '@peculiar/asn1-x509-attr@2.8.0': - resolution: {integrity: sha512-tHjkfS/qhMnmrlB2J9NhflQlQ7In3khO3CfmVrriOlpTeErY9ZIKOso1hQ5JQiyrJ7ShvqVPk7E5fQmbclkSKA==} + resolution: {integrity: sha1-vRaOP16Lwj5Wsal4kfny+39zAgQ=} '@peculiar/asn1-x509@2.8.0': - resolution: {integrity: sha512-N0CMuhWUzsWEVq6F1q9X6+VKUnWzSW+cSVg+aPaGGwDdbFoFWTYgin5MHwXgpWd6y9COMBxnfy/Qc+Xc7F0Zwg==} + resolution: {integrity: sha1-mVip7zXeyEJqq614/+h5jjGLBuI=} '@peculiar/utils@2.0.3': - resolution: {integrity: sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==} + resolution: {integrity: sha1-onykxLc2UuEQ8Zp9FtZk9FilUo4=} '@peculiar/x509@1.14.3': - resolution: {integrity: sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==} + resolution: {integrity: sha1-LETCuJR0NGr+w4oMKAPsT7jOlZ4=} engines: {node: '>=20.0.0'} '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + resolution: {integrity: sha1-p36nQvqyV3UUVDTrHSMoz1ATrDM=} engines: {node: '>=14'} '@playwright/test@1.57.0': - resolution: {integrity: sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==} + resolution: {integrity: sha1-oUcg/6ntfvftvB9geE/GE0rLsAM=} engines: {node: '>=18'} hasBin: true '@popperjs/core@2.11.8': - resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + resolution: {integrity: sha1-a3kDLnYKCJnNQgRxC+7elyo6GF8=} '@protobufjs/aspromise@1.1.2': - resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + resolution: {integrity: sha1-m4sMxmPWaafY9vXQiToU00jzD78=} '@protobufjs/base64@1.1.2': - resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + resolution: {integrity: sha1-TIVzDlm5ofHzSQR9vyQpYDS7JzU=} '@protobufjs/codegen@2.0.5': - resolution: {integrity: sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==} + resolution: {integrity: sha1-2TFa188/MKrHC9o8BoRD3G8UNlk=} '@protobufjs/eventemitter@1.1.1': - resolution: {integrity: sha512-vW1GmwMZNnL+gMRaovlh9yZX74kc+TTU3FObkkurpMaRtBfLP3ldjS9KQWlwZgraRE0+dheEEoAxdzcJQ8eXZg==} + resolution: {integrity: sha1-1RLLJsCuAmCR7iwRZ/G+b69chCo=} '@protobufjs/fetch@1.1.1': - resolution: {integrity: sha512-GpptLrs57adMSuHi3VNj0mAF8dwh36LMaYF6XyJ6JMWlVsc+t42tm1HSEDmOs3A8fC9yyeisgLhsTVQokOZ0zw==} + resolution: {integrity: sha1-TW/ADI+2QBalyBtGnVSQRjUPEGU=} '@protobufjs/float@1.0.2': - resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + resolution: {integrity: sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=} '@protobufjs/path@1.1.2': - resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + resolution: {integrity: sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=} '@protobufjs/pool@1.1.0': - resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + resolution: {integrity: sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=} '@protobufjs/utf8@1.1.1': - resolution: {integrity: sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==} + resolution: {integrity: sha1-6u5ZABIsEQo9vLcowFlwFKJiF3Q=} '@puppeteer/browsers@2.13.0': - resolution: {integrity: sha512-46BZJYJjc/WwmKjsvDFykHtXrtomsCIrwYQPOP7VfMJoZY2bsDF9oROBABR3paDjDcmkUye1Pb1BqdcdiipaWA==} + resolution: {integrity: sha1-EPmAxtZe/v93+KPKxuGnrBBgRQA=} engines: {node: '>=18'} hasBin: true '@puppeteer/browsers@2.6.1': - resolution: {integrity: sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg==} + resolution: {integrity: sha1-11rsUBDK43fF5HQr9eT2KnnCExU=} engines: {node: '>=18'} hasBin: true '@remusao/guess-url-type@1.3.0': - resolution: {integrity: sha512-SNSJGxH5ckvxb3EUHj4DqlAm/bxNxNv2kx/AESZva/9VfcBokwKNS+C4D1lQdWIDM1R3d3UG+xmVzlkNG8CPTQ==} + resolution: {integrity: sha1-TRtz8T2R9ed3XEYb54IFmrXag60=} '@remusao/small@1.3.0': - resolution: {integrity: sha512-bydAhJI+ywmg5xMUcbqoR8KahetcfkFywEZpsyFZ8EBofilvWxbXnMSe4vnjDI1Y+SWxnNhR4AL/2BAXkf4b8A==} + resolution: {integrity: sha1-FNQ8hO1yNXlRLGqh7ObFdoYeNBg=} '@remusao/smaz-compress@1.10.0': - resolution: {integrity: sha512-E/lC8OSU+3bQrUl64vlLyPzIxo7dxF2RvNBe9KzcM4ax43J/d+YMinmMztHyCIHqRbz7rBCtkp3c0KfeIbHmEg==} + resolution: {integrity: sha1-7YaGxT8MwXzYgs6El96JWAVr2To=} '@remusao/smaz-decompress@1.10.0': - resolution: {integrity: sha512-aA5ImUH480Pcs5/cOgToKmFnzi7osSNG6ft+7DdmQTaQEEst3nLq3JLlBEk+gwidURymjbx6DYs60LHaZ415VQ==} + resolution: {integrity: sha1-UGCDN8nvlP4y369r/YhZ5vkLm/M=} '@remusao/smaz@1.10.0': - resolution: {integrity: sha512-GQzCxmmMpLkyZwcwNgz8TpuBEWl0RUQa8IcvKiYlPxuyYKqyqPkCr0hlHI15ckn3kDUPS68VmTVgyPnLNrdVmg==} + resolution: {integrity: sha1-+vg9i7xLk6W3C43KMzUm//jzyGQ=} '@remusao/trie@1.5.0': - resolution: {integrity: sha512-UX+3utJKgwCsg6sUozjxd38gNMVRXrY4TNX9VvCdSrlZBS1nZjRPi98ON3QjRAdf6KCguJFyQARRsulTeqQiPg==} + resolution: {integrity: sha1-WvrCsD/sRf3XFaJw9z+xRx2dpOs=} '@rollup/plugin-node-resolve@15.3.1': - resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==} + resolution: {integrity: sha1-ZgCJU8JSS+eGqjGdSeMvISgpang=} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.78.0||^3.0.0||^4.0.0 @@ -9439,7 +9457,7 @@ packages: optional: true '@rollup/pluginutils@5.3.0': - resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} + resolution: {integrity: sha1-V7obDL2o56PFl6SFPIB7FW4hp7Q=} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -9448,1023 +9466,1023 @@ packages: optional: true '@rollup/rollup-android-arm-eabi@4.59.0': - resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==} + resolution: {integrity: sha1-pnQsdMfZ1tYE74pI+ZMmtOzaPYI=} cpu: [arm] os: [android] '@rollup/rollup-android-arm64@4.59.0': - resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==} + resolution: {integrity: sha1-lyR74JjeTfDBGXEIn9Lt+ApdqM8=} cpu: [arm64] os: [android] '@rollup/rollup-darwin-arm64@4.59.0': - resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==} + resolution: {integrity: sha1-Z0hSzxTPEbgFbgsaL06HK1I1ds8=} cpu: [arm64] os: [darwin] '@rollup/rollup-darwin-x64@4.59.0': - resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==} + resolution: {integrity: sha1-Nt/X7QqvTZ2J2e+YOvcmMkVbAkY=} cpu: [x64] os: [darwin] '@rollup/rollup-freebsd-arm64@4.59.0': - resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==} + resolution: {integrity: sha1-L4fCB0tCICYP21KpmWJG7fxjPCI=} cpu: [arm64] os: [freebsd] '@rollup/rollup-freebsd-x64@4.59.0': - resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==} + resolution: {integrity: sha1-m1omUio4qV3AZhbRk51NmnaTeAM=} cpu: [x64] os: [freebsd] '@rollup/rollup-linux-arm-gnueabihf@4.59.0': - resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} + resolution: {integrity: sha1-hqpIWThahzQjW15ApI5S13B1jDo=} cpu: [arm] os: [linux] libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.59.0': - resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} + resolution: {integrity: sha1-y+cOVubs6NrIPrdztiT8nlpGCXY=} cpu: [arm] os: [linux] libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.59.0': - resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} + resolution: {integrity: sha1-0UmSouZTvDJj0oS8ZXm3ookOHEU=} cpu: [arm64] os: [linux] libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.59.0': - resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} + resolution: {integrity: sha1-L90d3ENOqQrqoIUdIER4m00H9to=} cpu: [arm64] os: [linux] libc: [musl] '@rollup/rollup-linux-loong64-gnu@4.59.0': - resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} + resolution: {integrity: sha1-ihgeb4n5afIWZqdDzUEUFsgAmec=} cpu: [loong64] os: [linux] libc: [glibc] '@rollup/rollup-linux-loong64-musl@4.59.0': - resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} + resolution: {integrity: sha1-kEElryurw5X4Bh2qJ7WvH04/L3g=} cpu: [loong64] os: [linux] libc: [musl] '@rollup/rollup-linux-ppc64-gnu@4.59.0': - resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} + resolution: {integrity: sha1-pXlwrGhkyaNEdBGmWCJL3PlIviI=} cpu: [ppc64] os: [linux] libc: [glibc] '@rollup/rollup-linux-ppc64-musl@4.59.0': - resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} + resolution: {integrity: sha1-u4TeWyaHBWekJnZm4IiR6Au1amM=} cpu: [ppc64] os: [linux] libc: [musl] '@rollup/rollup-linux-riscv64-gnu@4.59.0': - resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} + resolution: {integrity: sha1-ctANLH+zdc41ZOdZ2zPxejW/+rk=} cpu: [riscv64] os: [linux] libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.59.0': - resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} + resolution: {integrity: sha1-TBZu9Y5xj5JFvTGHM4S6FaXBqIM=} cpu: [riscv64] os: [linux] libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.59.0': - resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} + resolution: {integrity: sha1-u1AlzemmHbR4wspyFYCK07znOgk=} cpu: [s390x] os: [linux] libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.59.0': - resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} + resolution: {integrity: sha1-m2ax+c2VxmJMeI8CHHViaf/tFVI=} cpu: [x64] os: [linux] libc: [glibc] '@rollup/rollup-linux-x64-musl@4.59.0': - resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} + resolution: {integrity: sha1-sAfKJV3HFmAX1X19JFGWPwvSP9k=} cpu: [x64] os: [linux] libc: [musl] '@rollup/rollup-openbsd-x64@4.59.0': - resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} + resolution: {integrity: sha1-6LNXstGqLI12qY9fDYieq+k/Tvk=} cpu: [x64] os: [openbsd] '@rollup/rollup-openharmony-arm64@4.59.0': - resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==} + resolution: {integrity: sha1-lsLj9KrNPZIZgTKYMf+N3kkiBNw=} cpu: [arm64] os: [openharmony] '@rollup/rollup-win32-arm64-msvc@4.59.0': - resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==} + resolution: {integrity: sha1-LYZRSdcG2Tjfi0uPEX5pp3ZG1YE=} cpu: [arm64] os: [win32] '@rollup/rollup-win32-ia32-msvc@4.59.0': - resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==} + resolution: {integrity: sha1-q+FZO+D6kjJemXHI2kKcXgW5LDY=} cpu: [ia32] os: [win32] '@rollup/rollup-win32-x64-gnu@4.59.0': - resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==} + resolution: {integrity: sha1-xK8+lRjJpc1LHBY9yB0K1Ngufqs=} cpu: [x64] os: [win32] '@rollup/rollup-win32-x64-msvc@4.59.0': - resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==} + resolution: {integrity: sha1-RYSoqHspGIpMH+mHqfz3AeJW2Gw=} cpu: [x64] os: [win32] '@secretlint/config-creator@9.3.2': - resolution: {integrity: sha512-IDUNnM/WVYcvj9PeoZIAvew31HHOtL/paJVkYT2D7G8HyehhTOPMvZSYVr43KXZ/bwUdlJg39C14xPx0NVsJyw==} + resolution: {integrity: sha1-npl8sm+tilYVL5eP9eP8+107VCs=} engines: {node: ^14.13.1 || >=16.0.0} '@secretlint/config-loader@9.3.2': - resolution: {integrity: sha512-5pBUiAFI7lwHzsxPozwhIXVVxj65MbPOth5nSPz2rdpLg/dlti3udlstoq624kqQAlpb196Bhto3JCZGpKduQw==} + resolution: {integrity: sha1-EGyFVS/Y06AQfyG1WisHvytDZG8=} engines: {node: ^14.13.1 || >=16.0.0} '@secretlint/core@9.3.2': - resolution: {integrity: sha512-oBsrFDTwXvFNLjIdcwrbCS/WUhKrGUeTDTSrmQBuaJvLHgCUX8/jEuBhBONkUDgWO3QEHRhi9LDlgnBqTIODEw==} + resolution: {integrity: sha1-bf0+L3LProiMW+L6ruqmM90eoe8=} engines: {node: ^14.13.1 || >=16.0.0} '@secretlint/formatter@9.3.2': - resolution: {integrity: sha512-JiFhZtg2a4WdkPxCXlq0iGUz18UxzjWnyUMvb/89BvF5m9DKDvmlfHIMLZ3O5205mSJqlpcZxRu7eADJB9fS7Q==} + resolution: {integrity: sha1-rmfAkjIux9QirP2vruVLDfG/AZY=} engines: {node: ^14.13.1 || >=16.0.0} '@secretlint/node@9.3.2': - resolution: {integrity: sha512-WH3PjYtZ8RumUJFZvM4vYEvpelT2m6WFzCRS3j+nzmH5eSv70+BWSISMB/ouZ5koq1+1zPlnWf/ADEvOwgbebw==} + resolution: {integrity: sha1-4Uob3WlrodVUGJQ3TbJBVZHYRIg=} engines: {node: ^14.13.1 || >=16.0.0} '@secretlint/profiler@9.3.2': - resolution: {integrity: sha512-cXXWQzA6lIcT0TY53JvbXtH6BltBfqmH5V39byhnbDfZl5FKCB6FHxVVzkctjwss6KMtDXcNLvfz3nKBZaWRDA==} + resolution: {integrity: sha1-VCpHeDLVOjjDZv6mp0JzKr3/JO8=} '@secretlint/resolver@9.3.2': - resolution: {integrity: sha512-yOi6md3kzpaFw6w2FJTDLoKlUxr1RltBJrb5lheIBDDXy/7C/5gP0K4uMiqamnVg8c9Ac+qlNS5KUar8FDFpdg==} + resolution: {integrity: sha1-jY1ydLhDH/5gTxftCN5tW/d04cc=} '@secretlint/secretlint-formatter-sarif@9.3.2': - resolution: {integrity: sha512-RtL9BISmhtsHTOcPI6+4AL1sRnUcnMhuQTvFbNPb9malxolIjthUsUKC5WqgT+8JN1tUG7w/diW+/kr5F1T0zw==} + resolution: {integrity: sha1-hGqnOJyGFrLWDixHu5fmeQpLwaM=} '@secretlint/secretlint-rule-no-dotenv@9.3.2': - resolution: {integrity: sha512-i1npoCy8eha8gU602SFf4S7vPOYMu9/WHCIr41EQvy4C9J+u95bt8COOYmk46e+aPyEDmQGxn2Lp4F2A2BoVLw==} + resolution: {integrity: sha1-WP/mYfDkGe9NxPJZaj2wU4zlnYA=} engines: {node: ^14.13.1 || >=16.0.0} '@secretlint/secretlint-rule-preset-recommend@9.3.2': - resolution: {integrity: sha512-rMvHTcHWLydOhKWDrK62x54ICMyfPwl0H5hAPfurLQR0sjjxGeSKuqr75emu6a2/5yYgvScZC97xVrlc2fTPSA==} + resolution: {integrity: sha1-OwjFj30fFs89eJDUN+FeQw2yjhE=} engines: {node: ^14.13.1 || >=16.0.0} '@secretlint/source-creator@9.3.2': - resolution: {integrity: sha512-eEP8sHnTB7rtv976Awh5+VMTD8udiHBaeSWAEKGy21Gas/slEb02Q812SWo2UMX9NcVBl+DYaOkmPQbcPHrY5A==} + resolution: {integrity: sha1-Ju/D0ETAa/8Ut0IvnEAC2YYa/gU=} engines: {node: ^14.13.1 || >=16.0.0} '@secretlint/types@9.3.2': - resolution: {integrity: sha512-Mxs8jzyPm843B0P/YNiOxnFSNyYtrmMoLPjrmqebrI5LBERRGctXj2Q9Oy/ayZ+FMK+1cP9jLhceicRvlZPR1Q==} + resolution: {integrity: sha1-vbI8lOACCVHT4uWPITezLyARoVo=} engines: {node: ^14.13.1 || >=16.0.0} '@selderee/plugin-htmlparser2@0.11.0': - resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} + resolution: {integrity: sha1-1bXimnum05WKGXLHvhb0ssGIxRc=} '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + resolution: {integrity: sha1-Zmf6wWxDa1Q0o4ejTe2wExmPbm4=} '@sindresorhus/is@4.6.0': - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + resolution: {integrity: sha1-PHycRuZ4/u/nouW7YJ09vWZf+z8=} engines: {node: '>=10'} '@sindresorhus/merge-streams@2.2.1': - resolution: {integrity: sha512-255V7MMIKw6aQ43Wbqp9HZ+VHn6acddERTLiiLnlcPLU9PdTq9Aijl12oklAgUEblLWye+vHLzmqBx6f2TGcZw==} + resolution: {integrity: sha1-grXh4TXvYu+LUi1uf0OtNgpp8pQ=} engines: {node: '>=18'} '@sindresorhus/merge-streams@2.3.0': - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + resolution: {integrity: sha1-cZ33+0F2a8FDNp6qDdVtjch8mVg=} engines: {node: '>=18'} '@sinonjs/commons@3.0.0': - resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==} + resolution: {integrity: sha1-vrQ0/oddllJl4EcizPwh3391XXI=} '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + resolution: {integrity: sha1-Vf3/Hsq581QBkSna9N8N1Nkj6mY=} '@smithy/abort-controller@4.2.11': - resolution: {integrity: sha512-Hj4WoYWMJnSpM6/kchsm4bUNTL9XiSyhvoMb2KIq4VJzyDt7JpGHUZHkVNPZVC7YE1tf8tPeVauxpFBKGW4/KQ==} + resolution: {integrity: sha1-uYnmNhXlRJwrqQ2A/L5P3XESPFQ=} engines: {node: '>=18.0.0'} '@smithy/chunked-blob-reader-native@4.2.3': - resolution: {integrity: sha512-jA5k5Udn7Y5717L86h4EIv06wIr3xn8GM1qHRi/Nf31annXcXHJjBKvgztnbn2TxH3xWrPBfgwHsOwZf0UmQWw==} + resolution: {integrity: sha1-nnmoDY1EeY5856j5aMu7r1pA2VA=} engines: {node: '>=18.0.0'} '@smithy/chunked-blob-reader@5.2.2': - resolution: {integrity: sha512-St+kVicSyayWQca+I1rGitaOEH6uKgE8IUWoYnnEX26SWdWQcL6LvMSD19Lg+vYHKdT9B2Zuu7rd3i6Wnyb/iw==} + resolution: {integrity: sha1-OvSON7EOWv7UeLsx0re8A8gdGWw=} engines: {node: '>=18.0.0'} '@smithy/config-resolver@4.4.10': - resolution: {integrity: sha512-IRTkd6ps0ru+lTWnfnsbXzW80A8Od8p3pYiZnW98K2Hb20rqfsX7VTlfUwhrcOeSSy68Gn9WBofwPuw3e5CCsg==} + resolution: {integrity: sha1-IlKaLowj2Xn2nDq8qNmExp0Gzkw=} engines: {node: '>=18.0.0'} '@smithy/core@3.23.9': - resolution: {integrity: sha512-1Vcut4LEL9HZsdpI0vFiRYIsaoPwZLjAxnVQDUMQK8beMS+EYPLDQCXtbzfxmM5GzSgjfe2Q9M7WaXwIMQllyQ==} + resolution: {integrity: sha1-N3w+Ehh8mBCj8m15BFQXcHNXhbU=} engines: {node: '>=18.0.0'} '@smithy/credential-provider-imds@4.2.11': - resolution: {integrity: sha512-lBXrS6ku0kTj3xLmsJW0WwqWbGQ6ueooYyp/1L9lkyT0M02C+DWwYwc5aTyXFbRaK38ojALxNixg+LxKSHZc0g==} + resolution: {integrity: sha1-EG3akrKkJ1h56E80iCbDEaG7GwU=} engines: {node: '>=18.0.0'} '@smithy/eventstream-codec@4.2.11': - resolution: {integrity: sha512-Sf39Ml0iVX+ba/bgMPxaXWAAFmHqYLTmbjAPfLPLY8CrYkRDEqZdUsKC1OwVMCdJXfAt0v4j49GIJ8DoSYAe6w==} + resolution: {integrity: sha1-sm0XvkR92zYdf5CvRP9/sD2KPgg=} engines: {node: '>=18.0.0'} '@smithy/eventstream-serde-browser@4.2.11': - resolution: {integrity: sha512-3rEpo3G6f/nRS7fQDsZmxw/ius6rnlIpz4UX6FlALEzz8JoSxFmdBt0SZnthis+km7sQo6q5/3e+UJcuQivoXA==} + resolution: {integrity: sha1-m8rsKR07W2oZl3OrXQlvOVq8IuI=} engines: {node: '>=18.0.0'} '@smithy/eventstream-serde-config-resolver@4.3.11': - resolution: {integrity: sha512-XeNIA8tcP/GDWnnKkO7qEm/bg0B/bP9lvIXZBXcGZwZ+VYM8h8k9wuDvUODtdQ2Wcp2RcBkPTCSMmaniVHrMlA==} + resolution: {integrity: sha1-h6MAcMcCas3/pSlLCVOWbSHFiNs=} engines: {node: '>=18.0.0'} '@smithy/eventstream-serde-node@4.2.11': - resolution: {integrity: sha512-fzbCh18rscBDTQSCrsp1fGcclLNF//nJyhjldsEl/5wCYmgpHblv5JSppQAyQI24lClsFT0wV06N1Porn0IsEw==} + resolution: {integrity: sha1-JaLW09EwSL5OYschHJnROL3cSA4=} engines: {node: '>=18.0.0'} '@smithy/eventstream-serde-universal@4.2.11': - resolution: {integrity: sha512-MJ7HcI+jEkqoWT5vp+uoVaAjBrmxBtKhZTeynDRG/seEjJfqyg3SiqMMqyPnAMzmIfLaeJ/uiuSDP/l9AnMy/Q==} + resolution: {integrity: sha1-xbWxXCWZRB49h3m+5ZL7u/cih48=} engines: {node: '>=18.0.0'} '@smithy/fetch-http-handler@5.3.13': - resolution: {integrity: sha512-U2Hcfl2s3XaYjikN9cT4mPu8ybDbImV3baXR0PkVlC0TTx808bRP3FaPGAzPtB8OByI+JqJ1kyS+7GEgae7+qQ==} + resolution: {integrity: sha1-mFjkP/AJr2CFzKMmgFydDJqVefU=} engines: {node: '>=18.0.0'} '@smithy/hash-blob-browser@4.2.12': - resolution: {integrity: sha512-1wQE33DsxkM/waftAhCH9VtJbUGyt1PJ9YRDpOu+q9FUi73LLFUZ2fD8A61g2mT1UY9k7b99+V1xZ41Rz4SHRQ==} + resolution: {integrity: sha1-2qQ8y0hdVRh8k+ckceD9SMro2ns=} engines: {node: '>=18.0.0'} '@smithy/hash-node@4.2.11': - resolution: {integrity: sha512-T+p1pNynRkydpdL015ruIoyPSRw9e/SQOWmSAMmmprfswMrd5Ow5igOWNVlvyVFZlxXqGmyH3NQwfwy8r5Jx0A==} + resolution: {integrity: sha1-ixnVNmGCTq2WJ7SaJuVVXWyKmP0=} engines: {node: '>=18.0.0'} '@smithy/hash-stream-node@4.2.11': - resolution: {integrity: sha512-hQsTjwPCRY8w9GK07w1RqJi3e+myh0UaOWBBhZ1UMSDgofH/Q1fEYzU1teaX6HkpX/eWDdm7tAGR0jBPlz9QEQ==} + resolution: {integrity: sha1-MPAjbIXBuQCIHAHu/k8yn/6e97E=} engines: {node: '>=18.0.0'} '@smithy/invalid-dependency@4.2.11': - resolution: {integrity: sha512-cGNMrgykRmddrNhYy1yBdrp5GwIgEkniS7k9O1VLB38yxQtlvrxpZtUVvo6T4cKpeZsriukBuuxfJcdZQc/f/g==} + resolution: {integrity: sha1-3taKoimUdMPPBmleuyijQ5KAhu4=} engines: {node: '>=18.0.0'} '@smithy/is-array-buffer@2.2.0': - resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} + resolution: {integrity: sha1-+E8Nn5o2YBqcqTgWiL0bcm/TkRE=} engines: {node: '>=14.0.0'} '@smithy/is-array-buffer@4.2.2': - resolution: {integrity: sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow==} + resolution: {integrity: sha1-xAHOVLEqFlKesck4oLbCJHy3Y7g=} engines: {node: '>=18.0.0'} '@smithy/md5-js@4.2.11': - resolution: {integrity: sha512-350X4kGIrty0Snx2OWv7rPM6p6vM7RzryvFs6B/56Cux3w3sChOb3bymo5oidXJlPcP9fIRxGUCk7GqpiSOtng==} + resolution: {integrity: sha1-G8ixOtnLG0esaWX8qQrEn2si7+8=} engines: {node: '>=18.0.0'} '@smithy/middleware-content-length@4.2.11': - resolution: {integrity: sha512-UvIfKYAKhCzr4p6jFevPlKhQwyQwlJ6IeKLDhmV1PlYfcW3RL4ROjNEDtSik4NYMi9kDkH7eSwyTP3vNJ/u/Dw==} + resolution: {integrity: sha1-ijhfp36Ppv/qa0bnrzexTSZ4Vx8=} engines: {node: '>=18.0.0'} '@smithy/middleware-endpoint@4.4.23': - resolution: {integrity: sha512-UEFIejZy54T1EJn2aWJ45voB7RP2T+IRzUqocIdM6GFFa5ClZncakYJfcYnoXt3UsQrZZ9ZRauGm77l9UCbBLw==} + resolution: {integrity: sha1-TS1/LF4TNgh4KwcbUkTnTh/y8mo=} engines: {node: '>=18.0.0'} '@smithy/middleware-retry@4.4.40': - resolution: {integrity: sha512-YhEMakG1Ae57FajERdHNZ4ShOPIY7DsgV+ZoAxo/5BT0KIe+f6DDU2rtIymNNFIj22NJfeeI6LWIifrwM0f+rA==} + resolution: {integrity: sha1-sQ2jnYE4+aFJU8JETtmnN1FNi88=} engines: {node: '>=18.0.0'} '@smithy/middleware-serde@4.2.12': - resolution: {integrity: sha512-W9g1bOLui7Xn5FABRVS0o3rXL0gfN37d/8I/W7i0N7oxjx9QecUmXEMSUMADTODwdtka9cN43t5BI2CodLJpng==} + resolution: {integrity: sha1-j4NvPtyFcBtp308oGRBqbg71DPg=} engines: {node: '>=18.0.0'} '@smithy/middleware-stack@4.2.11': - resolution: {integrity: sha512-s+eenEPW6RgliDk2IhjD2hWOxIx1NKrOHxEwNUaUXxYBxIyCcDfNULZ2Mu15E3kwcJWBedTET/kEASPV1A1Akg==} + resolution: {integrity: sha1-yt062l+hH+ihks0YREp3xFEMi8M=} engines: {node: '>=18.0.0'} '@smithy/node-config-provider@4.3.11': - resolution: {integrity: sha512-xD17eE7kaLgBBGf5CZQ58hh2YmwK1Z0O8YhffwB/De2jsL0U3JklmhVYJ9Uf37OtUDLF2gsW40Xwwag9U869Gg==} + resolution: {integrity: sha1-ptJGtnwQxocxabrkbm0EJh1UhAI=} engines: {node: '>=18.0.0'} '@smithy/node-http-handler@4.4.14': - resolution: {integrity: sha512-DamSqaU8nuk0xTJDrYnRzZndHwwRnyj/n/+RqGGCcBKB4qrQem0mSDiWdupaNWdwxzyMU91qxDmHOCazfhtO3A==} + resolution: {integrity: sha1-pApmd7fNosEAFBgzq+4UAcLhp08=} engines: {node: '>=18.0.0'} '@smithy/property-provider@4.2.11': - resolution: {integrity: sha512-14T1V64o6/ndyrnl1ze1ZhyLzIeYNN47oF/QU6P5m82AEtyOkMJTb0gO1dPubYjyyKuPD6OSVMPDKe+zioOnCg==} + resolution: {integrity: sha1-ehsWriCDJy+A44DueUjdwQMwHbE=} engines: {node: '>=18.0.0'} '@smithy/protocol-http@5.3.11': - resolution: {integrity: sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ==} + resolution: {integrity: sha1-5EUK87qeUui5mpwwNckMjNhTvic=} engines: {node: '>=18.0.0'} '@smithy/querystring-builder@4.2.11': - resolution: {integrity: sha512-7spdikrYiljpket6u0up2Ck2mxhy7dZ0+TDd+S53Dg2DHd6wg+YNJrTCHiLdgZmEXZKI7LJZcwL3721ZRDFiqA==} + resolution: {integrity: sha1-vvt3U7FC+rZe2u4HAJbBxcsq2Rc=} engines: {node: '>=18.0.0'} '@smithy/querystring-parser@4.2.11': - resolution: {integrity: sha512-nE3IRNjDltvGcoThD2abTozI1dkSy8aX+a2N1Rs55en5UsdyyIXgGEmevUL3okZFoJC77JgRGe99xYohhsjivQ==} + resolution: {integrity: sha1-sehZRbw8gAWOCwEUrzkbsGmyOT8=} engines: {node: '>=18.0.0'} '@smithy/service-error-classification@4.2.11': - resolution: {integrity: sha512-HkMFJZJUhzU3HvND1+Yw/kYWXp4RPDLBWLcK1n+Vqw8xn4y2YiBhdww8IxhkQjP/QlZun5bwm3vcHc8AqIU3zw==} + resolution: {integrity: sha1-2i7hr1yFE4DmsBRrdUFvDl9k4fc=} engines: {node: '>=18.0.0'} '@smithy/shared-ini-file-loader@4.4.6': - resolution: {integrity: sha512-IB/M5I8G0EeXZTHsAxpx51tMQ5R719F3aq+fjEB6VtNcCHDc0ajFDIGDZw+FW9GxtEkgTduiPpjveJdA/CX7sw==} + resolution: {integrity: sha1-Q13G2Qe8jG95UhLpRAAN4GOyz+E=} engines: {node: '>=18.0.0'} '@smithy/signature-v4@5.3.11': - resolution: {integrity: sha512-V1L6N9aKOBAN4wEHLyqjLBnAz13mtILU0SeDrjOaIZEeN6IFa6DxwRt1NNpOdmSpQUfkBj0qeD3m6P77uzMhgQ==} + resolution: {integrity: sha1-gfwqummZSyOv9zC5hEGOlpa8NsQ=} engines: {node: '>=18.0.0'} '@smithy/smithy-client@4.12.3': - resolution: {integrity: sha512-7k4UxjSpHmPN2AxVhvIazRSzFQjWnud3sOsXcFStzagww17j1cFQYqTSiQ8xuYK3vKLR1Ni8FzuT3VlKr3xCNw==} + resolution: {integrity: sha1-lTcCIbxcLzCiUVey34SjYwyB7IU=} engines: {node: '>=18.0.0'} '@smithy/types@4.13.0': - resolution: {integrity: sha512-COuLsZILbbQsdrwKQpkkpyep7lCsByxwj7m0Mg5v66/ZTyenlfBc40/QFQ5chO0YN/PNEH1Bi3fGtfXPnYNeDw==} + resolution: {integrity: sha1-l4cpegfucu901PfZPHRNEO1mTCE=} engines: {node: '>=18.0.0'} '@smithy/url-parser@4.2.11': - resolution: {integrity: sha512-oTAGGHo8ZYc5VZsBREzuf5lf2pAurJQsccMusVZ85wDkX66ojEc/XauiGjzCj50A61ObFTPe6d7Pyt6UBYaing==} + resolution: {integrity: sha1-TIfrWHLCqwOFCGs47uS0puWgKbI=} engines: {node: '>=18.0.0'} '@smithy/util-base64@4.3.2': - resolution: {integrity: sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ==} + resolution: {integrity: sha1-vgK8spqHvnRDVkZ+ol/6QT5pXOo=} engines: {node: '>=18.0.0'} '@smithy/util-body-length-browser@4.2.2': - resolution: {integrity: sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ==} + resolution: {integrity: sha1-xEBCd9IgOYcqvbgOeAD5pj8mOGI=} engines: {node: '>=18.0.0'} '@smithy/util-body-length-node@4.2.3': - resolution: {integrity: sha512-ZkJGvqBzMHVHE7r/hcuCxlTY8pQr1kMtdsVPs7ex4mMU+EAbcXppfo5NmyxMYi2XU49eqaz56j2gsk4dHHPG/g==} + resolution: {integrity: sha1-+SPKUw3vuGqaw8otMGa8ynswT7w=} engines: {node: '>=18.0.0'} '@smithy/util-buffer-from@2.2.0': - resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} + resolution: {integrity: sha1-b8iFhRZexz+GgdQm2W3l1AICHks=} engines: {node: '>=14.0.0'} '@smithy/util-buffer-from@4.2.2': - resolution: {integrity: sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q==} + resolution: {integrity: sha1-LGt4V3V9/Yj2zS02AWF5pAzMkTs=} engines: {node: '>=18.0.0'} '@smithy/util-config-provider@4.2.2': - resolution: {integrity: sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ==} + resolution: {integrity: sha1-Uuv52JQoONGLxfsVIN4ehpnXqtY=} engines: {node: '>=18.0.0'} '@smithy/util-defaults-mode-browser@4.3.39': - resolution: {integrity: sha512-ui7/Ho/+VHqS7Km2wBw4/Ab4RktoiSshgcgpJzC4keFPs6tLJS4IQwbeahxQS3E/w98uq6E1mirCH/id9xIXeQ==} + resolution: {integrity: sha1-nzVLnc0MDheqUH5vwTtHha8xzZc=} engines: {node: '>=18.0.0'} '@smithy/util-defaults-mode-node@4.2.42': - resolution: {integrity: sha512-QDA84CWNe8Akpj15ofLO+1N3Rfg8qa2K5uX0y6HnOp4AnRYRgWrKx/xzbYNbVF9ZsyJUYOfcoaN3y93wA/QJ2A==} + resolution: {integrity: sha1-JIotalC0SA86KkzneUCekPDRa5Y=} engines: {node: '>=18.0.0'} '@smithy/util-endpoints@3.3.2': - resolution: {integrity: sha512-+4HFLpE5u29AbFlTdlKIT7jfOzZ8PDYZKTb3e+AgLz986OYwqTourQ5H+jg79/66DB69Un1+qKecLnkZdAsYcA==} + resolution: {integrity: sha1-qB7piiWWJI9s3tyGjRPLa56kl7I=} engines: {node: '>=18.0.0'} '@smithy/util-hex-encoding@4.2.2': - resolution: {integrity: sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg==} + resolution: {integrity: sha1-Sr8zNd0euIQEHYWJynYo2Bpv0dM=} engines: {node: '>=18.0.0'} '@smithy/util-middleware@4.2.11': - resolution: {integrity: sha512-r3dtF9F+TpSZUxpOVVtPfk09Rlo4lT6ORBqEvX3IBT6SkQAdDSVKR5GcfmZbtl7WKhKnmb3wbDTQ6ibR2XHClw==} + resolution: {integrity: sha1-0qiYk/wt/VAN5BLF98eWFxaFX00=} engines: {node: '>=18.0.0'} '@smithy/util-retry@4.2.11': - resolution: {integrity: sha512-XSZULmL5x6aCTTii59wJqKsY1l3eMIAomRAccW7Tzh9r8s7T/7rdo03oektuH5jeYRlJMPcNP92EuRDvk9aXbw==} + resolution: {integrity: sha1-WfxTZEiNTHVe7Fr7QFRiP4Us8OY=} engines: {node: '>=18.0.0'} '@smithy/util-stream@4.5.17': - resolution: {integrity: sha512-793BYZ4h2JAQkNHcEnyFxDTcZbm9bVybD0UV/LEWmZ5bkTms7JqjfrLMi2Qy0E5WFcCzLwCAPgcvcvxoeALbAQ==} + resolution: {integrity: sha1-UwcxU964kNkf0U/SBV5lgrYnsP0=} engines: {node: '>=18.0.0'} '@smithy/util-uri-escape@4.2.2': - resolution: {integrity: sha512-2kAStBlvq+lTXHyAZYfJRb/DfS3rsinLiwb+69SstC9Vb0s9vNWkRwpnj918Pfi85mzi42sOqdV72OLxWAISnw==} + resolution: {integrity: sha1-SOQCBuf+na78jUS7Q6GrF+dqv0o=} engines: {node: '>=18.0.0'} '@smithy/util-utf8@2.3.0': - resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} + resolution: {integrity: sha1-3ZbXZANjJZkkohQxPDzxbn3TKcU=} engines: {node: '>=14.0.0'} '@smithy/util-utf8@4.2.2': - resolution: {integrity: sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw==} + resolution: {integrity: sha1-IdtoaYLm8zk6wmLkkUO0I3ATDxM=} engines: {node: '>=18.0.0'} '@smithy/util-waiter@4.2.11': - resolution: {integrity: sha512-x7Rh2azQPs3XxbvCzcttRErKKvLnbZfqRf/gOjw2pb+ZscX88e5UkRPCB67bVnsFHxayvMvmePfKTqsRb+is1A==} + resolution: {integrity: sha1-r+CK11ybUeNcg+PBGSaFXYhnQfY=} engines: {node: '>=18.0.0'} '@smithy/uuid@1.1.2': - resolution: {integrity: sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==} + resolution: {integrity: sha1-tul8cVhhXko8d16AnADYwmm1oS4=} engines: {node: '>=18.0.0'} '@swc/helpers@0.5.15': - resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + resolution: {integrity: sha1-ee+rNExYGez4OkPz+fgR/IS1Ftc=} '@szmarczak/http-timer@4.0.6': - resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + resolution: {integrity: sha1-tKkUu2LnwnLU5Zif5EQPgSqx2Ac=} engines: {node: '>=10'} '@textlint/ast-node-types@14.7.1': - resolution: {integrity: sha512-7C/xYNZtaG+erIMjNZbRz7av9/S5eC+GAMh0rJ6A9Hik6nS4WyWKblutw2p+O2YWWT2tmOjzu/81fWzzDzmtRg==} + resolution: {integrity: sha1-jydgoGR1PlN1AJ7T2OGW933IBS8=} '@textlint/linter-formatter@14.7.1': - resolution: {integrity: sha512-saAE+e4RZFInRmCF9pu7ukZAHxWaYw9WIA1PptYHItCnlyGS7WB7cYHilkj4coWGr3xGaQ2qAjqX/QIbVE7QGA==} + resolution: {integrity: sha1-GuZaDGo36V6VMHdNgYWMcZiNmTY=} '@textlint/module-interop@14.7.1': - resolution: {integrity: sha512-9mfLErTFx8N+tZNTL+46YCY/jnCDOJKpceng5WVwDeZeMJbewhjY3PVcxMoPnvPT10QnE/hDk3b6riUYckgHgw==} + resolution: {integrity: sha1-vQy9nII77I0tUPGFXaFoD7QUTqA=} '@textlint/resolver@14.7.1': - resolution: {integrity: sha512-lQ5ATfpsOgiYnwe2aoS0t9uJ4SrvyiCJpfJdqUQZCVL161O/yMKZBc6nwsyBlruEcFoNxK06F3s3IIV4EsI12A==} + resolution: {integrity: sha1-w/LvWU1m5nDQjRZaiops6fA5bIg=} '@textlint/types@14.7.1': - resolution: {integrity: sha512-j10OEEHRAaqGMC6dK3+H1Eg3bksASGTmGDozsSepYs7qInY+lYBCe5m3JTrKkDnAX4nNy8ninnKzrYKcVkWahw==} + resolution: {integrity: sha1-BybeftLmxZqcQO+URF3dUtKgK5o=} '@tootallnate/quickjs-emscripten@0.23.0': - resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + resolution: {integrity: sha1-207P1JmpdlqyQALDtpbQLm0yoSw=} '@ts-graphviz/adapter@2.0.6': - resolution: {integrity: sha512-kJ10lIMSWMJkLkkCG5gt927SnGZcBuG0s0HHswGzcHTgvtUe7yk5/3zTEr0bafzsodsOq5Gi6FhQeV775nC35Q==} + resolution: {integrity: sha1-GNWkIwTcp///dg/K8xGjFI70o70=} engines: {node: '>=18'} '@ts-graphviz/ast@2.0.7': - resolution: {integrity: sha512-e6+2qtNV99UT6DJSoLbHfkzfyqY84aIuoV8Xlb9+hZAjgpum8iVHprGeAMQ4rF6sKUAxrmY8rfF/vgAwoPc3gw==} + resolution: {integrity: sha1-TsM0kuS06ZjUYyAw6XqffhSa+4Y=} engines: {node: '>=18'} '@ts-graphviz/common@2.1.5': - resolution: {integrity: sha512-S6/9+T6x8j6cr/gNhp+U2olwo1n0jKj/682QVqsh7yXWV6ednHYqxFw0ZsY3LyzT0N8jaZ6jQY9YD99le3cmvg==} + resolution: {integrity: sha1-olbfrqAJpbFH2Pc/JeV/tE9kYqI=} engines: {node: '>=18'} '@ts-graphviz/core@2.0.7': - resolution: {integrity: sha512-w071DSzP94YfN6XiWhOxnLpYT3uqtxJBDYdh6Jdjzt+Ce6DNspJsPQgpC7rbts/B8tEkq0LHoYuIF/O5Jh5rPg==} + resolution: {integrity: sha1-IYXjkJkAOLJnojQcPbHO82gLvug=} engines: {node: '>=18'} '@tsconfig/node10@1.0.9': - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + resolution: {integrity: sha1-30kH/AeohpImN7FeAtTOvEwAIbI=} '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + resolution: {integrity: sha1-7j3vHyfZ7WbaxuRqKVz/sBUuBY0=} '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + resolution: {integrity: sha1-5DhjFihPALmENb9A9y91oJ2r9sE=} '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + resolution: {integrity: sha1-C5LcwMwcgfbzBqOB8o4xsaVlNuk=} '@tybys/wasm-util@0.10.3': - resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} + resolution: {integrity: sha1-AVy6np3UfOFNA9KoxdVHv7FpZl0=} '@types/accepts@1.3.7': - resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} + resolution: {integrity: sha1-O5ixiJ0rI4ZgTCu75i5PtR6VsmU=} '@types/async@3.2.24': - resolution: {integrity: sha512-8iHVLHsCCOBKjCF2KwFe0p9Z3rfM9mL+sSP8btyR5vTjJRAqpBYD28/ZLgXPf0pjG1VxOvtCV/BgXkQbpSe8Hw==} + resolution: {integrity: sha1-OpY1EEdXW7zyNAVBstlVo1M5YI8=} '@types/babel__code-frame@7.27.0': - resolution: {integrity: sha512-Dwlo+LrxDx/0SpfmJ/BKveHf7QXWvLBLc+x03l5sbzykj3oB9nHygCpSECF1a+s+QIxbghe+KHqC90vGtxLRAA==} + resolution: {integrity: sha1-R5n1l+yee73TnhN09DQjdC3P+pk=} '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + resolution: {integrity: sha1-PfFfJ7qFMZyqB7oI0HIYibs5wBc=} '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + resolution: {integrity: sha1-+DbGH0ixNG59Kw2TxtrMW5U106s=} '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + resolution: {integrity: sha1-VnJRNwHBshmbxtrWNqnXSRWGdm8=} '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + resolution: {integrity: sha1-jcnwrg8gLAjY1Nq2SJEsjWA44/c=} '@types/better-sqlite3@7.6.11': - resolution: {integrity: sha512-i8KcD3PgGtGBLl3+mMYA8PdKkButvPyARxA7IQAd6qeslht13qxb1zzO8dRCtE7U3IoJS782zDBAeoKiM695kg==} + resolution: {integrity: sha1-lazyL89Vd2JO6iAgWOJrojl2C58=} '@types/better-sqlite3@7.6.13': - resolution: {integrity: sha512-NMv9ASNARoKksWtsq/SHakpYAYnhBrQgGD8zkLYk/jaK8jUGn08CfEdTRgYhMypUQAfzSP8W6gNLe0q19/t4VA==} + resolution: {integrity: sha1-pyOH8A0vU8q2meY/LiwFRTz5U/A=} '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + resolution: {integrity: sha1-BM6aO2d9yL1oGhfaGrmDXcnT7eQ=} '@types/bonjour@3.5.13': - resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + resolution: {integrity: sha1-rfkM4aEF6B3R+cYf3Fr9ob+5KVY=} '@types/cacheable-request@6.0.3': - resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + resolution: {integrity: sha1-pDCzJgRmyntcpb/XNWk7Nuep0YM=} '@types/chai-dom@1.11.3': - resolution: {integrity: sha512-EUEZI7uID4ewzxnU7DJXtyvykhQuwe+etJ1wwOiJyQRTH/ifMWKX+ghiXkxCUvNJ6IQDodf0JXhuP6zZcy2qXQ==} + resolution: {integrity: sha1-Flms4mmM3NntiywAeHb1PjfZzIk=} '@types/chai@4.3.20': - resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} + resolution: {integrity: sha1-yykVd+00LKkmAEMIQaADKboFzsw=} '@types/chai@5.2.3': - resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + resolution: {integrity: sha1-jpzZ4cNYH6azQaWu1ViOsoW+C0o=} '@types/chrome@0.0.114': - resolution: {integrity: sha512-i7qRr74IrxHtbnrZSKUuP5Uvd5EOKwlwJq/yp7+yTPihOXnPhNQO4Z5bqb1XTnrjdbUKEJicaVVbhcgtRijmLA==} + resolution: {integrity: sha1-jOsz+iYfS54wf6c0S6gYLY1BDU4=} '@types/chrome@0.0.256': - resolution: {integrity: sha512-NleTQw4DNzhPwObLNuQ3i3nvX1rZ1mgnx5FNHc2KP+Cj1fgd3BrT5yQ6Xvs+7H0kNsYxCY+lxhiCwsqq3JwtEg==} + resolution: {integrity: sha1-NmtS+PWi2BGa3p7vJRlpLm+Yf/g=} '@types/chrome@0.0.278': - resolution: {integrity: sha512-PDIJodOu7o54PpSOYLybPW/MDZBCjM1TKgf31I3Q/qaEbNpIH09rOM3tSEH3N7Q+FAqb1933LhF8ksUPYeQLNg==} + resolution: {integrity: sha1-9/78DdS2alS96ilQxf1zl8cpk40=} '@types/co-body@6.1.3': - resolution: {integrity: sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==} + resolution: {integrity: sha1-IBeWxjiQZrQAz8tOHsXD23mCZaI=} '@types/command-line-args@5.2.3': - resolution: {integrity: sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==} + resolution: {integrity: sha1-VTzi/VrPFgtEjTB2SbOP/GDTljk=} '@types/command-line-usage@5.0.4': - resolution: {integrity: sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg==} + resolution: {integrity: sha1-N05MYtePvFpnCg822hAjWvh5oNU=} '@types/connect-history-api-fallback@1.5.4': - resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + resolution: {integrity: sha1-fecWRaEDBWtIrDzgezUguBnB1bM=} '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + resolution: {integrity: sha1-W6fzvE+73q/43e2VLl/yzFP42Fg=} '@types/content-disposition@0.5.9': - resolution: {integrity: sha512-8uYXI3Gw35MhiVYhG3s295oihrxRyytcRHjSjqnqZVDDy/xcGBRny7+Xj1Wgfhv5QzRtN2hB2dVRBUX9XW3UcQ==} + resolution: {integrity: sha1-AMoUk5Qyhp3oKaTM9v04D6kYF1A=} '@types/convert-source-map@2.0.3': - resolution: {integrity: sha512-ag0BfJLZf6CQz8VIuRIEYQ5Ggwk/82uvTQf27RcpyDNbY0Vw49LIPqAxk5tqYfrCs9xDaIMvl4aj7ZopnYL8bA==} + resolution: {integrity: sha1-5YbCLKSvLWcNR9Mtf+Nl1cVVhpU=} '@types/cookies@0.9.2': - resolution: {integrity: sha512-1AvkDdZM2dbyFybL4fxpuNCaWyv//0AwsuUk2DWeXyM1/5ZKm6W3z6mQi24RZ4l2ucY+bkSHzbDVpySqPGuV8A==} + resolution: {integrity: sha1-zN+G14Ly3qNFMd0yczolvkgXfNQ=} '@types/cors@2.8.18': - resolution: {integrity: sha512-nX3d0sxJW41CqQvfOzVG1NCTXfFDrDWIghCZncpHeWlVFd81zxB/DLhg7avFg6eHLCRX7ckBmoIIcqa++upvJA==} + resolution: {integrity: sha1-EB4DOzygZpXz1zxYfNf56zSBNdE=} '@types/cytoscape-dagre@2.3.3': - resolution: {integrity: sha512-FJBsNMbBZpqNwT6rp5leVYMevWUjnyD1QS8erNMAMWoBifvaVUklXIjE+bllLDSowjM3abXuRvljliSXUU+d1A==} + resolution: {integrity: sha1-J/fFfm4FWgXY+XHLCeduEcg3c0w=} '@types/cytoscape@3.21.9': - resolution: {integrity: sha512-JyrG4tllI6jvuISPjHK9j2Xv/LTbnLekLke5otGStjFluIyA9JjgnvgZrSBsp8cEDpiTjwgZUZwpPv8TSBcoLw==} + resolution: {integrity: sha1-lQBBZaCld1e8ox2DrhyH5hlLICY=} '@types/d3-array@3.2.2': - resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} + resolution: {integrity: sha1-4CFRRk0C1KG0RkbQ/NuT+viP3ow=} '@types/d3-axis@3.0.6': - resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} + resolution: {integrity: sha1-52DldluBiLHe+jK8i7YGL4Hkx5U=} '@types/d3-brush@3.0.6': - resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} + resolution: {integrity: sha1-wvQ2KwRdRy4bGGzb7DKbpSva7mw=} '@types/d3-chord@3.0.6': - resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} + resolution: {integrity: sha1-FwbKQM9+pZoK3Y9EVu//j4d1eT0=} '@types/d3-color@3.1.3': - resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} + resolution: {integrity: sha1-NoyWGhjech2oIA6AvzlD+1MTavI=} '@types/d3-contour@3.0.6': - resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} + resolution: {integrity: sha1-mto/qcTQDjpQk/7QNWx6uSlgQjE=} '@types/d3-delaunay@6.0.4': - resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} + resolution: {integrity: sha1-GFwagMyAf92io/6WD3wRxKJ5UuE=} '@types/d3-dispatch@3.0.7': - resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==} + resolution: {integrity: sha1-7wBNihKARs/OQ00XGC+DTkTvlbI=} '@types/d3-drag@3.0.7': - resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} + resolution: {integrity: sha1-sTq6iyRCtAaMmp5tHYL4vOp3/AI=} '@types/d3-dsv@3.0.7': - resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} + resolution: {integrity: sha1-CjUfmW3Jmzf0+li0ksLRwE49rBc=} '@types/d3-ease@3.0.2': - resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} + resolution: {integrity: sha1-4o2xv7+mFwdvd3DdHZpI6qO2xRs=} '@types/d3-fetch@3.0.7': - resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} + resolution: {integrity: sha1-wEorTyMYGqN28wrwKD28eztWmYA=} '@types/d3-force@3.0.10': - resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} + resolution: {integrity: sha1-bcj8bh81cE87BXCQvu63rGdL/xo=} '@types/d3-format@3.0.4': - resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} + resolution: {integrity: sha1-seRGVkTds/3zomP+uyQKbNYW3pA=} '@types/d3-geo@3.1.0': - resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} + resolution: {integrity: sha1-ueVqB5RJF08KLIaEqaTfP2BSJEA=} '@types/d3-hierarchy@3.1.7': - resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} + resolution: {integrity: sha1-YCP7Oy1GMiny1oD5rEtHRm9x8Xs=} '@types/d3-interpolate@3.0.4': - resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + resolution: {integrity: sha1-QSuQ6EhwKF8v+KhGxutgNE8SpBw=} '@types/d3-path@3.1.1': - resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} + resolution: {integrity: sha1-9jKzgMOsoduo40qgSbzWpK8j34o=} '@types/d3-polygon@3.0.2': - resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} + resolution: {integrity: sha1-365UptNdGedqyVZbyzKo5UaTGJw=} '@types/d3-quadtree@3.0.6': - resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} + resolution: {integrity: sha1-1HQLD+NbHFi2bhSI9OftApUvVw8=} '@types/d3-random@3.0.3': - resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} + resolution: {integrity: sha1-7ZlcceyxXgzTHiLZ1dI5QuMwDPs=} '@types/d3-scale-chromatic@3.1.0': - resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} + resolution: {integrity: sha1-3G1Pmpg3bxjqULrWw5U38bVGPDk=} '@types/d3-scale@4.0.9': - resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} + resolution: {integrity: sha1-V6L3ByQub+Hega17/Myq9gYXmvs=} '@types/d3-selection@3.0.11': - resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} + resolution: {integrity: sha1-vXpF/AqMMWemMWdeYbwsorBY1KM=} '@types/d3-shape@3.1.8': - resolution: {integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==} + resolution: {integrity: sha1-0VFsxQh1O+BoUs0GdY47tUoisOM=} '@types/d3-time-format@4.0.3': - resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} + resolution: {integrity: sha1-1rwea2p9tpzM+73Uw0twYy2enbI=} '@types/d3-time@3.0.4': - resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} + resolution: {integrity: sha1-hHL+7NY5aRRQ3YAA6zPt1EThMj8=} '@types/d3-timer@3.0.2': - resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} + resolution: {integrity: sha1-cLvad9wjqnJ0E+IuIUr6Pw6FL3A=} '@types/d3-transition@3.0.9': - resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} + resolution: {integrity: sha1-ETa8V+nds8OQ3MybX/O30rjZRwY=} '@types/d3-zoom@3.0.8': - resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} + resolution: {integrity: sha1-3Msy0cVrHhxuDxGA2ZSJbwOLxAs=} '@types/d3@7.4.3': - resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} + resolution: {integrity: sha1-1FUKhdCPSXj68KTDa4SMYeqsB+I=} '@types/dagre@0.7.52': - resolution: {integrity: sha512-XKJdy+OClLk3hketHi9Qg6gTfe1F3y+UFnHxKA2rn9Dw+oXa4Gb378Ztz9HlMgZKSxpPmn4BNVh9wgkpvrK1uw==} + resolution: {integrity: sha1-7b8LymkizQrRk2p0hvnQNSPXVlo=} '@types/debounce@1.2.4': - resolution: {integrity: sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw==} + resolution: {integrity: sha1-y36F2a1aur+sLycYPorItXayq7M=} '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + resolution: {integrity: sha1-oVXyFpCHGVNBDfS2tvUxh/BQCRc=} '@types/deep-eql@4.0.2': - resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + resolution: {integrity: sha1-M0MRlx06BxIefrkbaEpgXn7qnL0=} '@types/eslint-scope@3.7.7': - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + resolution: {integrity: sha1-MQi9XxiwzbJ3yGez3UScntcHmsU=} '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + resolution: {integrity: sha1-1Xla1zLOgXFfJ/ddqRMASlZ1FYQ=} '@types/esrecurse@4.3.1': - resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + resolution: {integrity: sha1-b2Nq+WL75hkbgwvWdrpZhpJrzOw=} '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + resolution: {integrity: sha1-lYuRyZGxhnztMYvt6g4hXuBQcm4=} '@types/express-serve-static-core@4.17.41': - resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==} + resolution: {integrity: sha1-UHfe+mMMLo0oqp/8LAHBV8MFvvY=} '@types/express-serve-static-core@4.19.8': - resolution: {integrity: sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==} + resolution: {integrity: sha1-mblgMipNV2sjmmQKtS7xkZibA28=} '@types/express-serve-static-core@5.1.1': - resolution: {integrity: sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==} + resolution: {integrity: sha1-Gnf6/+6VctORJJMyWb4lI4N9fqo=} '@types/express@4.17.21': - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + resolution: {integrity: sha1-wm1KFR5g7+AISyPcM2nrxjHtGS0=} '@types/express@4.17.25': - resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} + resolution: {integrity: sha1-BwyMc6b+5pNtZcGV27+32lAmZJs=} '@types/fast-levenshtein@0.0.4': - resolution: {integrity: sha512-tkDveuitddQCxut1Db8eEFfMahTjOumTJGPHmT9E7KUH+DkVq9WTpVvlfenf3S+uCBeu8j5FP2xik/KfxOEjeA==} + resolution: {integrity: sha1-oW/2YHGJ7fCKxjHlS1d0sPrxLYc=} '@types/file-size@1.0.3': - resolution: {integrity: sha512-2HOqIo9ng92X1aGRF7Sz3fn1LWA4aU9gAKotykOcXHIFDOKgB4kTYMiFmhdK+X1SBiaqmq2uakpSYQn6QJCnyg==} + resolution: {integrity: sha1-mlzeIQ9nxaoV1bIlH2cZ8vgCDWo=} '@types/filesystem@0.0.35': - resolution: {integrity: sha512-1eKvCaIBdrD2mmMgy5dwh564rVvfEhZTWVQQGRNn0Nt4ZEnJ0C8oSUCzvMKRA4lGde5oEVo+q2MrTTbV/GHDCQ==} + resolution: {integrity: sha1-bWdmYmCD4rOXwJvcVwkoJxINsR0=} '@types/filewriter@0.0.33': - resolution: {integrity: sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==} + resolution: {integrity: sha1-2dYR252c2Zrk5FjeQg7rZK1gTqg=} '@types/find-config@1.0.4': - resolution: {integrity: sha512-BCXaKgzHK7KnfCQBRQBWGTA+QajOE9uFolXPt+9EktiiMS56D8oXF2ZCh9eCxuEyfqDmX/mYIcmWg9j9f659eg==} + resolution: {integrity: sha1-a/kJOC3hqJgjP4pvgtg+5zntpWs=} '@types/firefox-webext-browser@120.0.4': - resolution: {integrity: sha512-lBrpf08xhiZBigrtdQfUaqX1UauwZ+skbFiL8u2Tdra/rklkKadYmIzTwkNZSWtuZ7OKpFqbE2HHfDoFqvZf6w==} + resolution: {integrity: sha1-J+6teBBRsuaBo0TdKYNzX6rdQ0M=} '@types/fs-extra@11.0.4': - resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + resolution: {integrity: sha1-4WqGO7iEP7qMUAQ2K1pz4XvsykU=} '@types/fs-extra@8.1.5': - resolution: {integrity: sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==} + resolution: {integrity: sha1-M6rili07Pskhm1rKJVXuACdPWSc=} '@types/fs-extra@9.0.13': - resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + resolution: {integrity: sha1-dZT7rgT+fxkYzos9IT90/0SsH0U=} '@types/geojson@7946.0.16': - resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} + resolution: {integrity: sha1-jr5T1p762nBERU4zBcGQF9l87So=} '@types/glob@7.2.0': - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + resolution: {integrity: sha1-vBtb86qS8lvV3TnzXFc2G9zlsus=} '@types/graceful-fs@4.1.8': - resolution: {integrity: sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw==} + resolution: {integrity: sha1-QX5GHk3HnZV9wxB/Rf5Jc7CcKRU=} '@types/har-format@1.2.15': - resolution: {integrity: sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==} + resolution: {integrity: sha1-81JJNjjC+J1wZDihmp6zALSTtQY=} '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + resolution: {integrity: sha1-HWs5mTuCzqateDlFsFCMJZA+Fao=} '@types/html-minifier-terser@6.1.0': - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + resolution: {integrity: sha1-T8M6AMHQwWmHsaIM+S0gYUxVrDU=} '@types/html-to-text@9.0.4': - resolution: {integrity: sha512-pUY3cKH/Nm2yYrEmDlPR1mR7yszjGx4DrwPjQ702C4/D5CwHuZTgZdIdwPkRbcuhs7BAh2L5rg3CL5cbRiGTCQ==} + resolution: {integrity: sha1-SoPdiui/qRRX0LH/wm9NBTfv9Yw=} '@types/http-assert@1.5.6': - resolution: {integrity: sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw==} + resolution: {integrity: sha1-trZXw4ojUNIc4hMTnzOwOytfpDE=} '@types/http-cache-semantics@4.2.0': - resolution: {integrity: sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==} + resolution: {integrity: sha1-9qd4j0OMv94V8prK1GUStMAZE7M=} '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + resolution: {integrity: sha1-frR3JsORtzRabsNa1/TeRpz1uk8=} '@types/http-errors@2.0.5': - resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} + resolution: {integrity: sha1-W3SasrFroRNCP+saZKldzTA5hHI=} '@types/http-proxy@1.17.17': - resolution: {integrity: sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==} + resolution: {integrity: sha1-2eLEVx/jUHNDyyEM1BeQN15ZpTM=} '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + resolution: {integrity: sha1-dznCMqH+6bTTzomF8xTAxtM1Sdc=} '@types/istanbul-lib-report@3.0.2': - resolution: {integrity: sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w==} + resolution: {integrity: sha1-OUeY1fcnQC617Jnrlhj/zSt2RaE=} '@types/istanbul-reports@3.0.3': - resolution: {integrity: sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg==} + resolution: {integrity: sha1-AxPiYI5taVXRlfVTYd3uvUt0xuc=} '@types/jest@29.5.14': - resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} + resolution: {integrity: sha1-K5EJEvodaFbK3NDB+Vr33x1gSeU=} '@types/jquery@3.5.32': - resolution: {integrity: sha512-b9Xbf4CkMqS02YH8zACqN1xzdxc3cO735Qe5AbSUFmyOiaWAbcpqh9Wna+Uk0vgACvoQHpWDg2rGdHkYPLmCiQ==} + resolution: {integrity: sha1-PrDaIGEbksfEnr7WFjtSpP3Ffe8=} '@types/js-yaml@4.0.9': - resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + resolution: {integrity: sha1-zYI4LE+QL+2WkaLteexoxYmK9MI=} '@types/jsdom@20.0.1': - resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + resolution: {integrity: sha1-B8FLwZvS+RjBkpVBzarK6JR0SAg=} '@types/jsdom@28.0.0': - resolution: {integrity: sha512-A8TBQQC/xAOojy9kM8E46cqT00sF0h7dWjV8t8BJhUi2rG6JRh7XXQo/oLoENuZIQEpXsxLccLCnknyQd7qssQ==} + resolution: {integrity: sha1-OHvLX+YMdTrgxYWEtlmlmDGZOPI=} '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + resolution: {integrity: sha1-WWoXRyM2lNUPatinhp/Lb1bPWEE=} '@types/jsonfile@6.1.4': - resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + resolution: {integrity: sha1-YUr+waEWTn1nC0p61k3z5763twI=} '@types/jsonpath@0.2.4': - resolution: {integrity: sha512-K3hxB8Blw0qgW6ExKgMbXQv2UPZBoE2GqLpVY+yr7nMD2Pq86lsuIzyAaiQ7eMqFL5B6di6pxSkogLJEyEHoGA==} + resolution: {integrity: sha1-BlvlmYHBQggyg1r2Vjd2IicRVL4=} '@types/katex@0.16.7': - resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} + resolution: {integrity: sha1-A6toCrT6T7xstG7PmH7K1dgBmGg=} '@types/keygrip@1.0.6': - resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} + resolution: {integrity: sha1-F0lTUYGiqbAqwEp5dVCoeHNFt0A=} '@types/keyv@3.1.4': - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + resolution: {integrity: sha1-PM2xxnUbDH5SMAvNrNW8v4+qdbY=} '@types/koa-compose@3.2.9': - resolution: {integrity: sha512-BroAZ9FTvPiCy0Pi8tjD1OfJ7bgU1gQf0eR6e1Vm+JJATy9eKOG3hQMFtMciMawiSOVnLMdmUOC46s7HBhSTsA==} + resolution: {integrity: sha1-bvuUXuVXO+D07dtyii9oJvej85U=} '@types/koa@2.15.0': - resolution: {integrity: sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==} + resolution: {integrity: sha1-7KQ9dvUnyAO0kXMfld9XVjbntvI=} '@types/linkify-it@5.0.0': - resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + resolution: {integrity: sha1-IUEwAZcxBs2hw6m5Hu3UzNVGnXY=} '@types/lodash-es@4.17.12': - resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} + resolution: {integrity: sha1-ZfbR5fgFOap8+/yWLeXe8M9PNBs=} '@types/lodash.debounce@4.0.9': - resolution: {integrity: sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==} + resolution: {integrity: sha1-D18hxQe851IbXjDnokRAl1rIYKU=} '@types/lodash.throttle@4.1.9': - resolution: {integrity: sha512-PCPVfpfueguWZQB7pJQK890F2scYKoDUL3iM522AptHWn7d5NQmeS/LTEHIcLr5PaTzl3dK2Z0xSUHHTHwaL5g==} + resolution: {integrity: sha1-8Xpq4IT3wBF7198UWzeVN7yWFcU=} '@types/lodash@4.17.17': - resolution: {integrity: sha512-RRVJ+J3J+WmyOTqnz3PiBLA501eKwXl2noseKOrNo/6+XEHjTAxO4xHvxQB6QuNm+s4WRbn6rSiap8+EA+ykFQ==} + resolution: {integrity: sha1-+4WgT0fp5NqIg4T+6tDeBfcHA1U=} '@types/mailparser@3.4.6': - resolution: {integrity: sha512-wVV3cnIKzxTffaPH8iRnddX1zahbYB1ZEoAxyhoBo3TBCBuK6nZ8M8JYO/RhsCuuBVOw/DEN/t/ENbruwlxn6Q==} + resolution: {integrity: sha1-/MqZ/p+Rnz2mkaC/XjAixig8MGg=} '@types/markdown-it@14.1.2': - resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + resolution: {integrity: sha1-V/JTKggABn2bk081IUKaLov7TGE=} '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + resolution: {integrity: sha1-fM9y7dLxqn3TQ34YDGQ3NYWATdY=} '@types/mdurl@2.0.0': - resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + resolution: {integrity: sha1-1Dh4tbICImghY65viXsgRHIzvf0=} '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + resolution: {integrity: sha1-HvMC4Bz30rWg+lJnkMkSO/HQZpA=} '@types/mime@3.0.4': - resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} + resolution: {integrity: sha1-IZisJ03mAXtE2UHgAmHVvGoOCkU=} '@types/minimatch@3.0.5': - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + resolution: {integrity: sha1-EAHMXmo3BLg8I2An538vWOoBD0A=} '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + resolution: {integrity: sha1-B1CLRXl8uB7D8nMBGwVM0HVe3co=} '@types/mocha@10.0.10': - resolution: {integrity: sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==} + resolution: {integrity: sha1-kfYpBejSPL1mIlMS8jlFSiO+v6A=} '@types/ms@0.7.33': - resolution: {integrity: sha512-AuHIyzR5Hea7ij0P9q7vx7xu4z0C28ucwjAZC0ja7JhINyCnOw8/DnvAPQQ9TfOlCtZAmCERKQX9+o1mgQhuOQ==} + resolution: {integrity: sha1-gL8dpksV8h/Ywdw4fDGSkxfZnuk=} '@types/node-fetch@2.6.12': - resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} + resolution: {integrity: sha1-irXD74Mw8TEAp0eeLNVtM4aDCgM=} '@types/node@18.19.130': - resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} + resolution: {integrity: sha1-2kxjJHk6ed77emLLo5R+xa3QDVk=} '@types/node@20.19.40': - resolution: {integrity: sha512-xxx6M2IpSTnnKcR0cMvIiohkiCx20/oRPtWGbenFygKCGl3zqUzdNjQ/1V4solq1LU+dgv0nQzeGOuqkqZGg0Q==} + resolution: {integrity: sha1-gKSnI24ngXY2d3g2zu24ia322i8=} '@types/node@22.15.18': - resolution: {integrity: sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg==} + resolution: {integrity: sha1-L4JA9+ky9XHC1F9VW6C2w/enWWM=} '@types/node@22.19.19': - resolution: {integrity: sha512-dyh/xO2Fh5bYrfWaaqGrRQQGkNdmYw6AmaAUvYeUMNTWQtvb796ikLdmTchRmOlOiIJ1TDXfWgVx1QkUlQ6Hew==} + resolution: {integrity: sha1-MSS/Jt7VQWi3aBODIf75m0IMYRI=} '@types/node@22.19.21': - resolution: {integrity: sha512-VMeFBSCKQKmm2swI2kW51SFusDqekC6q9trBCvJ/JliDchFSuoYYKN7yVNjPthP1HKZcx3U1gI/wTcEBjEFKTA==} + resolution: {integrity: sha1-XJ2EPqOFsx7pN6n3Q0Q4MGIKMt4=} '@types/node@24.12.2': - resolution: {integrity: sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==} + resolution: {integrity: sha1-NTyxYdvxeF6iXogpun7FdMXGKaw=} '@types/node@25.9.3': - resolution: {integrity: sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==} + resolution: {integrity: sha1-Ed/noz5o+lxWDwqnbMVZViHvJrk=} '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + resolution: {integrity: sha1-VuLMJsOXwDj6sOOpF6EtXFkJ6QE=} '@types/parse5@6.0.3': - resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} + resolution: {integrity: sha1-cFuzSeeJ76BvQ/EozvUSQHU0JMs=} '@types/plist@3.0.5': - resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==} + resolution: {integrity: sha1-mgxJwPmIbIyGlqeQTdcD9ihANuA=} '@types/prismjs@1.26.5': - resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==} + resolution: {integrity: sha1-ckmau7TE7JmCRGUJ0vFPuEg4adY=} '@types/prop-types@15.7.14': - resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} + resolution: {integrity: sha1-FDNBnXOyp+v8aRjc79LsDVzWmPI=} '@types/proper-lockfile@4.1.4': - resolution: {integrity: sha512-uo2ABllncSqg9F1D4nugVl9v93RmjxF6LJzQLMLDdPaXCUIDPeOJ21Gbqi43xNKzBi/WQ0Q0dICqufzQbMjipQ==} + resolution: {integrity: sha1-zZ+rkr2wRzDBraVCw1bwNiD4QAg=} '@types/qs@6.15.0': - resolution: {integrity: sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==} + resolution: {integrity: sha1-ljq2F3mEP+kQY5pQZhtI8WK8f3k=} '@types/qs@6.15.1': - resolution: {integrity: sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==} + resolution: {integrity: sha1-hgaIQnLGPw25aYa9NUhlDYqTiL8=} '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + resolution: {integrity: sha1-UK5DU+qt3AQEQnmBL1LIxlhX28s=} '@types/react@18.3.18': - resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} + resolution: {integrity: sha1-mzgsTNMuE+Rj+X3wfC7ju80mkEs=} '@types/regexp.escape@2.0.0': - resolution: {integrity: sha512-L0+4KOC47zH0AE/27YhzECRlE4HxHycQy0ng8P4SMmsYIdUqJFzKlk4LameozRQ2mRozPRwRAzpXsDsUgb6ezA==} + resolution: {integrity: sha1-ojtCHip/dOJQ4yHByZF3ua/1aNY=} '@types/resolve@1.20.2': - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + resolution: {integrity: sha1-l9JuAM1KBCO0r2IKvs8+b0QreXU=} '@types/responselike@1.0.3': - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + resolution: {integrity: sha1-zClwbwo5fP5t+J3r/kv1zqFZ21A=} '@types/retry@0.12.2': - resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} + resolution: {integrity: sha1-7SeaZPpDi7afJIDtpEk3kSu3SAo=} '@types/sarif@2.1.7': - resolution: {integrity: sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ==} + resolution: {integrity: sha1-2rTRa6dWjphGxFSodk8zxdmOVSQ=} '@types/semver@7.7.1': - resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} + resolution: {integrity: sha1-POOvGlUk7zJ9Lank/YttlcjXBSg=} '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + resolution: {integrity: sha1-ZhnNJOcnB5NwLk5qS5WKkBDPxXo=} '@types/send@0.17.6': - resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==} + resolution: {integrity: sha1-rrU4W+Yv9YpSzVRZ2qUJrpFlHSU=} '@types/send@1.2.1': - resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} + resolution: {integrity: sha1-anhORVQ8GMd0wEm/9tPbrwRcnHQ=} '@types/serve-index@1.9.4': - resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + resolution: {integrity: sha1-5q4T1QU8sG7TY5IRC0+aSaxOyJg=} '@types/serve-static@1.15.10': - resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==} + resolution: {integrity: sha1-doFpFFp3j49d/LY2CurUFKOZT+4=} '@types/serve-static@1.15.5': - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} + resolution: {integrity: sha1-FeZ1AOxAeJoejJ3vwtMqiW8FsDM=} '@types/sinon-chai@3.2.12': - resolution: {integrity: sha512-9y0Gflk3b0+NhQZ/oxGtaAJDvRywCa5sIyaVnounqLvmf93yBF4EgIRspePtkMs3Tr844nCclYMlcCNmLCvjuQ==} + resolution: {integrity: sha1-x8sGvuRKU07ITzpVNMOjpG/XebY=} '@types/sinon@21.0.1': - resolution: {integrity: sha512-5yoJSqLbjH8T9V2bksgRayuhpZy+723/z6wBOR+Soe4ZlXC0eW8Na71TeaZPUWDQvM7LYKa9UGFc6LRqxiR5fQ==} + resolution: {integrity: sha1-+ZXir98VvoMtXxZFgD2CqOuVobw=} '@types/sinonjs__fake-timers@15.0.1': - resolution: {integrity: sha512-Ko2tjWJq8oozHzHV+reuvS5KYIRAokHnGbDwGh/J64LntgpbuylF74ipEL24HCyRjf9FOlBiBHWBR1RlVKsI1w==} + resolution: {integrity: sha1-Sfcx2UU/UtZN159aVibBzxuBvqQ=} '@types/sizzle@2.3.8': - resolution: {integrity: sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==} + resolution: {integrity: sha1-UYYJrvt5faGb8iL+sZno9lP/dic=} '@types/sockjs@0.3.36': - resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + resolution: {integrity: sha1-zjIs8HvMEZ1Mv3+IlU86O9D2dTU=} '@types/spotify-api@0.0.25': - resolution: {integrity: sha512-okhoy0U9fPWtwqCfbDyW8VxamhqvXE0gXIVeMOh5HcvEFQvWW2X0VsvdiX/OyiGQpZbZiOJXIGrbnIPfK0AIpA==} + resolution: {integrity: sha1-nauzsKHwUn7WGTbr+KgMHROMJ8M=} '@types/stack-utils@2.0.2': - resolution: {integrity: sha512-g7CK9nHdwjK2n0ymT2CW698FuWJRIx+RP6embAzZ2Qi8/ilIrA1Imt2LVSeHUzKvpoi7BhmmQcXz95eS0f2JXw==} + resolution: {integrity: sha1-AShN3p705tjO9kInmNmjrRimb4s=} '@types/tough-cookie@4.0.5': - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + resolution: {integrity: sha1-y24qaRtwyxd8bjrpwdLosuqM0wQ=} '@types/trusted-types@2.0.7': - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + resolution: {integrity: sha1-usywepcLkXB986PoumiWxX6tLRE=} '@types/unist@2.0.11': - resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + resolution: {integrity: sha1-Ea9XsSfjJId3SEH3pOVOqxZtA8Q=} '@types/unist@3.0.3': - resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + resolution: {integrity: sha1-rKqw+RnOaczmKcLU7S60rcG2wgw=} '@types/verror@1.10.9': - resolution: {integrity: sha512-MLx9Z+9lGzwEuW16ubGeNkpBDE84RpB/NyGgg6z2BTpWzKkGU451cAY3UkUzZEp72RHF585oJ3V8JVNqIplcAQ==} + resolution: {integrity: sha1-Qgwyrbmi3VCz20yPllAeBaDnKUE=} '@types/vscode@1.100.0': - resolution: {integrity: sha512-4uNyvzHoraXEeCamR3+fzcBlh7Afs4Ifjs4epINyUX/jvdk0uzLnwiDY35UKDKnkCHP5Nu3dljl2H8lR6s+rQw==} + resolution: {integrity: sha1-Nc1iioaxFYeFbflL6UBUqrAfLxc=} '@types/webidl-conversions@7.0.3': - resolution: {integrity: sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==} + resolution: {integrity: sha1-Ewbb+lN2i8vPyVocjN42eXVYGFk=} '@types/webrtc@0.0.37': - resolution: {integrity: sha512-JGAJC/ZZDhcrrmepU4sPLQLIOIAgs5oIK+Ieq90K8fdaNMhfdfqmYatJdgif1NDQtvrSlTOGJDUYHIDunuufOg==} + resolution: {integrity: sha1-aTZj3F3oxshUBvbPVmHMwehOTGg=} '@types/webvtt-parser@2.2.0': - resolution: {integrity: sha512-T8n08m3VWAOCVDHWPOtEehnLcVSyQaUmyjIvGCERWRPMyVooUjqWaDsvKD3bcwQSU8TLBW19YTSRx9UxBNfckA==} + resolution: {integrity: sha1-xWYAxswfAGt1FhW8GPXL94ZNNnY=} '@types/whatwg-url@11.0.4': - resolution: {integrity: sha512-lXCmTWSHJvf0TRSO58nm978b8HJ/EdsSsEKLd3ODHFjo+3VGAyyTp4v50nWvwtzBxSMQrVOK7tcuN0zGPLICMw==} + resolution: {integrity: sha1-/+0NyNidkfYuPzaPy9oiKkh8T2M=} '@types/winreg@1.2.36': - resolution: {integrity: sha512-DtafHy5A8hbaosXrbr7YdjQZaqVewXmiasRS5J4tYMzt3s1gkh40ixpxgVFfKiQ0JIYetTJABat47v9cpr/sQg==} + resolution: {integrity: sha1-8dmpkYyukKY8YQbJgiSspqNpg/w=} '@types/ws@7.4.7': - resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + resolution: {integrity: sha1-98OQo296Bnmqad4tUBMZ9PjZtwI=} '@types/ws@8.18.1': - resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + resolution: {integrity: sha1-SEZOS/Ld/RfbE9hFRn9gcP/qSqk=} '@types/xml2js@0.4.14': - resolution: {integrity: sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==} + resolution: {integrity: sha1-XUYqKnMwNF4jCca1SaGDo3bej5o=} '@types/yargs-parser@21.0.2': - resolution: {integrity: sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==} + resolution: {integrity: sha1-e9BMXaN4SW7xaVoQCL+PcYR6i4s=} '@types/yargs@17.0.29': - resolution: {integrity: sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==} + resolution: {integrity: sha1-Bqq8ckl7eYxkPIEqi1YVN/6nYM8=} '@types/yauzl@2.10.3': - resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + resolution: {integrity: sha1-6bKAi08QlQSgPNqVglmHb2EBeZk=} '@typescript-eslint/eslint-plugin@8.62.1': - resolution: {integrity: sha512-4EQM77WgVNxj7OkL/5b/D/xZsw00G577+UriYTC7JF5opcF3T2AuoeY7ueLaZgSVjSgCS6yOAJB5bRGLPSJUzA==} + resolution: {integrity: sha1-Fzbc3KbK4zWdgYRWpH0YtnR2H38=} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.62.1 @@ -10472,291 +10490,291 @@ packages: typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/parser@8.62.1': - resolution: {integrity: sha512-sPhE4iHuJDSvoAiec+Ro8JyXw8f0ql13HFR82P99nCm9GwTEKG0KYLvDe6REk8BCXuit6vJAv/Yxg5ABaNS2rA==} + resolution: {integrity: sha1-0/e6GPG/eL+3JW/qAh0ZJ7SOcIA=} 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.62.1': - resolution: {integrity: sha512-yQ3RgY5RkSBpsNS1Bx/JQEcA24FOSdfGktoyprAr5u18390UQdtVcfnEv4nIrIshNnavlVyZBKxQwT1fIAE6cg==} + resolution: {integrity: sha1-eNiA6xz2hZtewmPQT5VAPp+Qrkc=} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/scope-manager@8.62.1': - resolution: {integrity: sha512-r4d249KbQ1SFdpeStvob8Ih6aPPIzfqllPVOtvhve6ZcpuVcYo5/7zUWckKpHE7StASX4kTKZTLf0WQm/wPkcg==} + resolution: {integrity: sha1-fuZemm6zzNxIFlk6T/OIQDBt6Io=} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/tsconfig-utils@8.62.1': - resolution: {integrity: sha512-xadytJqX9vJVQ2fdQjkcIVigwaOJNWkpjdLt6cEQ+xPnrI1fkp+/jZE/I97k9KUjqtpd25i0HeyZf3T6dutv2g==} + resolution: {integrity: sha1-4rXyT+chBEGJy36BEXyW11l51ic=} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/type-utils@8.62.1': - resolution: {integrity: sha512-aXM5xlqXiTxPibXB93cLAURfT3rlizf7uMXISCXy66Isr/9hISJx3yDsKl0L7lKa51b8JpFuNKby0/O0pEm9jg==} + resolution: {integrity: sha1-69MLE7rLEwcJFyWaIzCc9kQSH5o=} 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@8.62.1': - resolution: {integrity: sha512-ooCzJFaf+Hg+uG6fA3NRFGuFjlfNlDhBthbv4ZPU/0elCAFUfnyXUvf/WOpHz/jYwSmvU2GkR2LtyUfy1AxZ1Q==} + resolution: {integrity: sha1-xYvpVOSDsvyYJ1N01by0C5mELcE=} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.62.1': - resolution: {integrity: sha512-xMcW9oP9u7fAMXYs9A65CVmtLQe2r//oXINHfi8HV+oiqhih17sbLdhXr4540YWlgpDKQdY854OL5ZrdCiQsAA==} + resolution: {integrity: sha1-mMG7F2NdWwJrJBk6jSkYisZDgP8=} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' '@typescript-eslint/utils@8.62.1': - resolution: {integrity: sha512-sHtbPfuKNZCG+ih8SyjjucqRntSVmp8XgL5u6o9mAhiSn8ds5o/M/XdM0abweme2Tln3szOstOrZ9OXitvPh0g==} + resolution: {integrity: sha1-FiK3XH5t8wgYHdC0SFXcQijaBFc=} 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/visitor-keys@8.62.1': - resolution: {integrity: sha512-4g3BLxfdTMy8iZG0MaBkadnlRrCJ74cQiFbyEVMrkwIoqdyaXXQM22cotDvrl4x28wgIZ9rEJRoM+mmhSJpJ1g==} + resolution: {integrity: sha1-SZZX13/6+4qZ6x1sl4R8pDAjRyI=} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typespec/ts-http-runtime@0.2.2': - resolution: {integrity: sha512-Gz/Sm64+Sq/vklJu1tt9t+4R2lvnud8NbTD/ZfpZtMiUX7YeVpCA8j6NSW8ptwcoLL+NmYANwqP8DV0q/bwl2w==} + resolution: {integrity: sha1-oMdFjtmarm1+si78F6g5zsC0obM=} engines: {node: '>=18.0.0'} '@typespec/ts-http-runtime@0.3.3': - resolution: {integrity: sha512-91fp6CAAJSRtH5ja95T1FHSKa8aPW9/Zw6cta81jlZTUw/+Vq8jM/AfF/14h2b71wwR84JUTW/3Y8QPhDAawFA==} + resolution: {integrity: sha1-YnZ7iN87p/xTv9ZqlMiN/h3sVbw=} engines: {node: '>=20.0.0'} '@upsetjs/venn.js@2.0.0': - resolution: {integrity: sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==} + resolution: {integrity: sha1-O+GSA4zdqSeqT4siq1Gvgqv0fzQ=} '@vscode/codicons@0.0.42': - resolution: {integrity: sha512-PlWPUA32rdiJE6250ltFGMzM3GyC1L9OaryDGOpxiMU0H9lBtEJrSFxpRvefdgJuQRcyUenGFTYzFuFbR9qzjg==} + resolution: {integrity: sha1-eLbIwCfvQBdie4Qr7iuF1lYi4sU=} '@vscode/test-cli@0.0.12': - resolution: {integrity: sha512-iYN0fDg29+a2Xelle/Y56Xvv7Nc8Thzq4VwpzAF/SIE6918rDicqfsQxV6w1ttr2+SOm+10laGuY9FG2ptEKsQ==} + resolution: {integrity: sha1-OMFAVDahyWDhq8CHkOqCL8mz5BI=} engines: {node: '>=18'} hasBin: true '@vscode/test-electron@2.5.2': - resolution: {integrity: sha512-8ukpxv4wYe0iWMRQU18jhzJOHkeGKbnw7xWRX3Zw1WJA4cEKbHcmmLPdPrPtL6rhDcrlCZN+xKRpv09n4gRHYg==} + resolution: {integrity: sha1-99QHjoIwzpyUMi8qKcwWwXlUCF0=} engines: {node: '>=16'} '@vscode/vsce-sign-alpine-arm64@2.0.2': - resolution: {integrity: sha512-E80YvqhtZCLUv3YAf9+tIbbqoinWLCO/B3j03yQPbjT3ZIHCliKZlsy1peNc4XNZ5uIb87Jn0HWx/ZbPXviuAQ==} + resolution: {integrity: sha1-SszEheVapv8EsZW0f3IurVfapY4=} cpu: [arm64] os: [alpine] '@vscode/vsce-sign-alpine-x64@2.0.2': - resolution: {integrity: sha512-n1WC15MSMvTaeJ5KjWCzo0nzjydwxLyoHiMJHu1Ov0VWTZiddasmOQHekA47tFRycnt4FsQrlkSCTdgHppn6bw==} + resolution: {integrity: sha1-Skt7UFtMwPWFljlIl8SaC84OVAw=} cpu: [x64] os: [alpine] '@vscode/vsce-sign-darwin-arm64@2.0.2': - resolution: {integrity: sha512-rz8F4pMcxPj8fjKAJIfkUT8ycG9CjIp888VY/6pq6cuI2qEzQ0+b5p3xb74CJnBbSC0p2eRVoe+WgNCAxCLtzQ==} + resolution: {integrity: sha1-EKpp/rf4Gj3GjCQgOMoD6v8ZwS4=} cpu: [arm64] os: [darwin] '@vscode/vsce-sign-darwin-x64@2.0.2': - resolution: {integrity: sha512-MCjPrQ5MY/QVoZ6n0D92jcRb7eYvxAujG/AH2yM6lI0BspvJQxp0o9s5oiAM9r32r9tkLpiy5s2icsbwefAQIw==} + resolution: {integrity: sha1-MxVSjz6hAHpkizMgv/NqM6ngeqU=} cpu: [x64] os: [darwin] '@vscode/vsce-sign-linux-arm64@2.0.2': - resolution: {integrity: sha512-Ybeu7cA6+/koxszsORXX0OJk9N0GgfHq70Wqi4vv2iJCZvBrOWwcIrxKjvFtwyDgdeQzgPheH5nhLVl5eQy7WA==} + resolution: {integrity: sha1-zlxc/JnjRUtPt3BAWBK0a9bcqHA=} cpu: [arm64] os: [linux] '@vscode/vsce-sign-linux-arm@2.0.2': - resolution: {integrity: sha512-Fkb5jpbfhZKVw3xwR6t7WYfwKZktVGNXdg1m08uEx1anO0oUPUkoQRsNm4QniL3hmfw0ijg00YA6TrxCRkPVOQ==} + resolution: {integrity: sha1-QUL9qD5xMLMa7diqgeTapjNDI8I=} cpu: [arm] os: [linux] '@vscode/vsce-sign-linux-x64@2.0.2': - resolution: {integrity: sha512-NsPPFVtLaTlVJKOiTnO8Cl78LZNWy0Q8iAg+LlBiCDEgC12Gt4WXOSs2pmcIjDYzj2kY4NwdeN1mBTaujYZaPg==} + resolution: {integrity: sha1-WauT8yLvs89JFm1OLoEnicMRdCg=} cpu: [x64] os: [linux] '@vscode/vsce-sign-win32-arm64@2.0.2': - resolution: {integrity: sha512-wPs848ymZ3Ny+Y1Qlyi7mcT6VSigG89FWQnp2qRYCyMhdJxOpA4lDwxzlpL8fG6xC8GjQjGDkwbkWUcCobvksQ==} + resolution: {integrity: sha1-0JVwShSwQEwLb2lumInppRsxqGw=} cpu: [arm64] os: [win32] '@vscode/vsce-sign-win32-x64@2.0.2': - resolution: {integrity: sha512-pAiRN6qSAhDM5SVOIxgx+2xnoVUePHbRNC7OD2aOR3WltTKxxF25OfpK8h8UQ7A0BuRkSgREbB59DBlFk4iAeg==} + resolution: {integrity: sha1-KU6nK0T+3WlNSfXO9MVb84dtwlc=} cpu: [x64] os: [win32] '@vscode/vsce-sign@2.0.5': - resolution: {integrity: sha512-GfYWrsT/vypTMDMgWDm75iDmAOMe7F71sZECJ+Ws6/xyIfmB3ELVnVN+LwMFAvmXY+e6eWhR2EzNGF/zAhWY3Q==} + resolution: {integrity: sha1-iFADZHbcDU4IDZwtgyXj6X7/UZM=} '@vscode/vsce@3.4.0': - resolution: {integrity: sha512-vKyQxFSipqO4e1vUM3iDzOzMSXIKVhrJlWuGgYv/GF1ihAM/zzs2MVSGFC4CfdhF1ep+5AoLn1aRFn96CGhEWA==} + resolution: {integrity: sha1-9iNxjGi8nNK7Mhz11nkUcBZrlNk=} engines: {node: '>= 20'} hasBin: true '@vue/compiler-core@3.5.16': - resolution: {integrity: sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==} + resolution: {integrity: sha1-L5X08XwWwJxXu/ZDmQdbkhUGYws=} '@vue/compiler-core@3.5.39': - resolution: {integrity: sha512-16KBTEXAJCpDr0mwlw+AZyhu8iyC7R3S2vBwsI7QnWJU6X3WKc9VKeNEZpiMdZ569qWhz9574L3vV55qRL0Vtw==} + resolution: {integrity: sha1-O26iuV88DtQEjv2H1xxGjkAhlR0=} '@vue/compiler-dom@3.5.16': - resolution: {integrity: sha512-SSJIhBr/teipXiXjmWOVWLnxjNGo65Oj/8wTEQz0nqwQeP75jWZ0n4sF24Zxoht1cuJoWopwj0J0exYwCJ0dCQ==} + resolution: {integrity: sha1-FR2DkCUpdcCxp3MCkiD9/Pqi10M=} '@vue/compiler-dom@3.5.39': - resolution: {integrity: sha512-oQPigALqYbNxTNPvNgSOe+czwVExfbVF02lz8jP0S3AXJiu3jxYDygNUiqSep4ezzW8XgnubqH63My2A7JR/vg==} + resolution: {integrity: sha1-1CYWciM0QnYr7hcJ3MNM7vwa6HM=} '@vue/compiler-sfc@3.5.16': - resolution: {integrity: sha512-rQR6VSFNpiinDy/DVUE0vHoIDUF++6p910cgcZoaAUm3POxgNOOdS/xgoll3rNdKYTYPnnbARDCZOyZ+QSe6Pw==} + resolution: {integrity: sha1-V39/1CpG+sg1f/7Ubo+zTTJphBk=} '@vue/compiler-sfc@3.5.39': - resolution: {integrity: sha512-d0ki86iOyN8LoZPBmk5SJWNwHP19CnDDCfuo//+2WJa2g5Ke0Jay983PIBIcSSzldC68I8DrD5GrHV3OSDfodg==} + resolution: {integrity: sha1-PrE5UOdEK8hu7r5zKH7Lxr8WePU=} '@vue/compiler-ssr@3.5.16': - resolution: {integrity: sha512-d2V7kfxbdsjrDSGlJE7my1ZzCXViEcqN6w14DOsDrUCHEA6vbnVCpRFfrc4ryCP/lCKzX2eS1YtnLE/BuC9f/A==} + resolution: {integrity: sha1-O3h03/dxqy+F+wm+cfbHanX8xaw=} '@vue/compiler-ssr@3.5.39': - resolution: {integrity: sha512-Ce7/wvwMHai74bdszfXExdazFigYnlF9zgCmEQUcM1j0fOymlouZ7XilTYNo8oUjhlnjYOZbGrcYKuqjz89Ucw==} + resolution: {integrity: sha1-UORMnsWR5BnoPrxtO87cuqP3CAU=} '@vue/reactivity@3.5.16': - resolution: {integrity: sha512-FG5Q5ee/kxhIm1p2bykPpPwqiUBV3kFySsHEQha5BJvjXdZTUfmya7wP7zC39dFuZAcf/PD5S4Lni55vGLMhvA==} + resolution: {integrity: sha1-UoxTWgiLPBtn8oXx8iEb55QluWI=} '@vue/runtime-core@3.5.16': - resolution: {integrity: sha512-bw5Ykq6+JFHYxrQa7Tjr+VSzw7Dj4ldR/udyBZbq73fCdJmyy5MPIFR9IX/M5Qs+TtTjuyUTCnmK3lWWwpAcFQ==} + resolution: {integrity: sha1-CoKMMiIkraJvgaLiJ8PUrry3LHo=} '@vue/runtime-dom@3.5.16': - resolution: {integrity: sha512-T1qqYJsG2xMGhImRUV9y/RseB9d0eCYZQ4CWca9ztCuiPj/XWNNN+lkNBuzVbia5z4/cgxdL28NoQCvC0Xcfww==} + resolution: {integrity: sha1-wby8yoYrdxhvgcku3VF250Zw8Hg=} '@vue/server-renderer@3.5.16': - resolution: {integrity: sha512-BrX0qLiv/WugguGsnQUJiYOE0Fe5mZTwi6b7X/ybGB0vfrPH9z0gD/Y6WOR1sGCgX4gc25L1RYS5eYQKDMoNIg==} + resolution: {integrity: sha1-WmjNHUI9hD90yeazcTOFCrqwfBM=} peerDependencies: vue: 3.5.16 '@vue/shared@3.5.16': - resolution: {integrity: sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==} + resolution: {integrity: sha1-1ep2cRgnQhkpOKS0y/hu8SvvdBg=} '@vue/shared@3.5.39': - resolution: {integrity: sha512-l1rrBtBfTnmxvtsvdQDXltUUy8S1Y+ZaqdfUzmAnJkTd8Z8rv5v/ytW+TKiqEOWyHPoqtPlNFSs0lhRmYVSHVA==} + resolution: {integrity: sha1-aUva6dRzgcL8/txtUnTyRQBowew=} '@web/browser-logs@0.4.1': - resolution: {integrity: sha512-ypmMG+72ERm+LvP+loj9A64MTXvWMXHUOu773cPO4L1SV/VWg6xA9Pv7vkvkXQX+ItJtCJt+KQ+U6ui2HhSFUw==} + resolution: {integrity: sha1-G+RGTJs9ylN7RZ1Jyxhzpt7vBgk=} engines: {node: '>=18.0.0'} '@web/config-loader@0.3.3': - resolution: {integrity: sha512-ilzeQzrPpPLWZhzFCV+4doxKDGm7oKVfdKpW9wiUNVgive34NSzCw+WzXTvjE4Jgr5CkyTDIObEmMrqQEjhT0g==} + resolution: {integrity: sha1-E9SFLEedHzrbwfJNecfm7u3rbl0=} engines: {node: '>=18.0.0'} '@web/dev-server-core@0.7.5': - resolution: {integrity: sha512-Da65zsiN6iZPMRuj4Oa6YPwvsmZmo5gtPWhW2lx3GTUf5CAEapjVpZVlUXnKPL7M7zRuk72jSsIl8lo+XpTCtw==} + resolution: {integrity: sha1-soPUbrLAOE6EgxHsnaJdBru8R98=} engines: {node: '>=18.0.0'} '@web/dev-server-rollup@0.6.4': - resolution: {integrity: sha512-sJZfTGCCrdku5xYnQQG51odGI092hKY9YFM0X3Z0tRY3iXKXcYRaLZrErw5KfCxr6g0JRuhe4BBhqXTA5Q2I3Q==} + resolution: {integrity: sha1-0KT2nkplnSt58XLoYjbOpshy6Bw=} engines: {node: '>=18.0.0'} '@web/dev-server@0.4.6': - resolution: {integrity: sha512-jj/1bcElAy5EZet8m2CcUdzxT+CRvUjIXGh8Lt7vxtthkN9PzY9wlhWx/9WOs5iwlnG1oj0VGo6f/zvbPO0s9w==} + resolution: {integrity: sha1-GKRCHUdKm9G/yQQZp6eY7QtVOMU=} engines: {node: '>=18.0.0'} hasBin: true '@web/parse5-utils@2.1.1': - resolution: {integrity: sha512-7rBVZEMGfrq2iPcAEwJ0KSNSvmA2a6jT2CK8/gyIOHgn4reg7bSSRbzyWIEYWyIkeRoYEukX/aW+nAeCgSSqhQ==} + resolution: {integrity: sha1-oUEU7OYPf1V3JBCwgTWF4EZHj90=} engines: {node: '>=18.0.0'} '@web/test-runner-chrome@0.17.0': - resolution: {integrity: sha512-Il5N9z41NKWCrQM1TVgRaDWWYoJtG5Ha4fG+cN1MWL2OlzBS4WoOb4lFV3EylZ7+W3twZOFr1zy2Rx61yDYd/A==} + resolution: {integrity: sha1-kKQ1c1eBmP4GP+LYlkkWEeF6qmU=} engines: {node: '>=18.0.0'} '@web/test-runner-commands@0.9.0': - resolution: {integrity: sha512-zeLI6QdH0jzzJMDV5O42Pd8WLJtYqovgdt0JdytgHc0d1EpzXDsc7NTCJSImboc2NcayIsWAvvGGeRF69SMMYg==} + resolution: {integrity: sha1-7RWgISSZSCBLsnVZ60N/9s7u4Gc=} engines: {node: '>=18.0.0'} '@web/test-runner-core@0.13.4': - resolution: {integrity: sha512-84E1025aUSjvZU1j17eCTwV7m5Zg3cZHErV3+CaJM9JPCesZwLraIa0ONIQ9w4KLgcDgJFw9UnJ0LbFf42h6tg==} + resolution: {integrity: sha1-32p2s+lwrbvTujnocPS/ZX1txD8=} engines: {node: '>=18.0.0'} '@web/test-runner-coverage-v8@0.8.0': - resolution: {integrity: sha512-PskiucYpjUtgNfR2zF2AWqWwjXL7H3WW/SnCAYmzUrtob7X9o/+BjdyZ4wKbOxWWSbJO4lEdGIDLu+8X2Xw+lA==} + resolution: {integrity: sha1-eD6faF8Uyvw0pr8yP32SaMFHeTM=} engines: {node: '>=18.0.0'} '@web/test-runner-mocha@0.9.0': - resolution: {integrity: sha512-ZL9F6FXd0DBQvo/h/+mSfzFTSRVxzV9st/AHhpgABtUtV/AIpVE9to6+xdkpu6827kwjezdpuadPfg+PlrBWqQ==} + resolution: {integrity: sha1-T7+lwyIsjHh/3MBX3ZMqB2MmexA=} engines: {node: '>=18.0.0'} '@web/test-runner-playwright@0.11.1': - resolution: {integrity: sha512-l9tmX0LtBqMaKAApS4WshpB87A/M8sOHZyfCobSGuYqnREgz5rqQpX314yx+4fwHXLLTa5N64mTrawsYkLjliw==} + resolution: {integrity: sha1-2ZMRKuISbrdMHFoXHW6kTC3SS04=} engines: {node: '>=18.0.0'} '@web/test-runner@0.19.0': - resolution: {integrity: sha512-qLUupi88OK1Kl52cWPD/2JewUCRUxYsZ1V1DyLd05P7u09zCdrUYrtkB/cViWyxlBe/TOvqkSNpcTv6zLJ9GoA==} + resolution: {integrity: sha1-6+gad/lC72kKNQRUZzJqk3/JfFo=} engines: {node: '>=18.0.0'} hasBin: true '@webassemblyjs/ast@1.14.1': - resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} + resolution: {integrity: sha1-qfagfysDyVyNOMRTah/ftSH/VbY=} '@webassemblyjs/floating-point-hex-parser@1.13.2': - resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} + resolution: {integrity: sha1-/Moe7dscxOe27tT8eVbWgTshufs=} '@webassemblyjs/helper-api-error@1.13.2': - resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} + resolution: {integrity: sha1-4KFhUiSLw42u523X4h8Vxe86sec=} '@webassemblyjs/helper-buffer@1.14.1': - resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} + resolution: {integrity: sha1-giqbxgMWZTH31d+E5ntb+ZtyuWs=} '@webassemblyjs/helper-numbers@1.13.2': - resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} + resolution: {integrity: sha1-29kyVI5xGfS4p4d/1ajSDmNJCy0=} '@webassemblyjs/helper-wasm-bytecode@1.13.2': - resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} + resolution: {integrity: sha1-5VYQh1j0SKroTIUOWTzhig6zHgs=} '@webassemblyjs/helper-wasm-section@1.14.1': - resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} + resolution: {integrity: sha1-lindqcRDDqtUtZEFPW3G87oFA0g=} '@webassemblyjs/ieee754@1.13.2': - resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} + resolution: {integrity: sha1-HF6qzh1gatosf9cEXqk1bFnuDbo=} '@webassemblyjs/leb128@1.13.2': - resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} + resolution: {integrity: sha1-V8XD3rAQXQLOJfo/109OvJ/Qu7A=} '@webassemblyjs/utf8@1.13.2': - resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} + resolution: {integrity: sha1-kXog6T9xrVYClmwtaFrgxsIfYPE=} '@webassemblyjs/wasm-edit@1.14.1': - resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} + resolution: {integrity: sha1-rGaJ9QIhm1kZjd7ELc1JaxAE1Zc=} '@webassemblyjs/wasm-gen@1.14.1': - resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} + resolution: {integrity: sha1-mR5/DAkMsLtiu6yIIHbj0hnalXA=} '@webassemblyjs/wasm-opt@1.14.1': - resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} + resolution: {integrity: sha1-5vce18yuRngcIGAX08FMUO+oEGs=} '@webassemblyjs/wasm-parser@1.14.1': - resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} + resolution: {integrity: sha1-s+E/GJNgXKeLUsaOVM9qhl+Qufs=} '@webassemblyjs/wast-printer@1.14.1': - resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + resolution: {integrity: sha1-O7PpY4qK5f2vlhDnoGtNn5qm/gc=} '@webpack-cli/configtest@2.1.1': - resolution: {integrity: sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==} + resolution: {integrity: sha1-Oy+FLpHaxuO4X7KjFPuL70bZRkY=} 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==} + resolution: {integrity: sha1-zD+/Iu/riP9iMQz4hcWwn0SuD90=} 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==} + resolution: {integrity: sha1-Ml20I5XNSf5sFAV/mpAOQn34gQ4=} engines: {node: '>=14.15.0'} peerDependencies: webpack: 5.x.x @@ -10767,95 +10785,95 @@ packages: optional: true '@xmldom/xmldom@0.8.13': - resolution: {integrity: sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==} + resolution: {integrity: sha1-ANHdlAshjf8uSTCdQQ2LshIVkiU=} engines: {node: '>=10.0.0'} '@xmldom/xmldom@0.9.10': - resolution: {integrity: sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==} + resolution: {integrity: sha1-oK1aJv6KqZYxCHBybhcEl392ne4=} engines: {node: '>=14.6'} '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + resolution: {integrity: sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=} '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + resolution: {integrity: sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=} '@yomguithereal/helpers@1.1.1': - resolution: {integrity: sha512-UYvAq/XCA7xoh1juWDYsq3W0WywOB+pz8cgVnE1b45ZfdMhBvHDrgmSFG3jXeZSr2tMTYLGHFHON+ekG05Jebg==} + resolution: {integrity: sha1-GF37D4jKK+7FPQrfbu0VwzscVJ0=} '@zone-eu/mailsplit@5.4.8': - resolution: {integrity: sha512-eEyACj4JZ7sjzRvy26QhLgKEMWwQbsw1+QZnlLX+/gihcNH07lVPOcnwf5U6UAL7gkc//J3jVd76o/WS+taUiA==} + resolution: {integrity: sha1-/D5DP1uBMhAzJNdyjz+gBCauqCI=} abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + resolution: {integrity: sha1-QbgPLIcdGWhiFrgjCSMc/Tyz0pE=} deprecated: Use your platform's native atob() and btoa() methods instead abbrev@4.0.0: - resolution: {integrity: sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==} + resolution: {integrity: sha1-7JM/Die2zWDom1xrKjBK9CIJuwU=} engines: {node: ^20.17.0 || >=22.9.0} abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + resolution: {integrity: sha1-6vVNU7YrrkE46AnKIlyEOabvs5I=} engines: {node: '>=6.5'} accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + resolution: {integrity: sha1-C/C+EltnAUrcsLCSHmLbe//hay4=} engines: {node: '>= 0.6'} accepts@2.0.0: - resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} + resolution: {integrity: sha1-u89LpQdUZ/PyEx6rPP/HPC9deJU=} engines: {node: '>= 0.6'} acorn-globals@7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + resolution: {integrity: sha1-Db8FxE+nyUMykUwCBm1b7/YsQMM=} acorn-import-phases@1.0.4: - resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} + resolution: {integrity: sha1-FuuFC6maBWy3y/6HL/uJcuGMi9c=} engines: {node: '>=10.13.0'} peerDependencies: acorn: ^8.14.0 acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + resolution: {integrity: sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 acorn-walk@8.3.0: - resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} + resolution: {integrity: sha1-IJdmWvUP0M96LfzNK5Nolk5mVA8=} engines: {node: '>=0.4.0'} acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + resolution: {integrity: sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=} engines: {node: '>=0.4.0'} hasBin: true acorn@8.17.0: - resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==} + resolution: {integrity: sha1-F4WtuE+vjYrdEDabk4Jvwr0I8f4=} engines: {node: '>=0.4.0'} hasBin: true agent-base@5.1.1: - resolution: {integrity: sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==} + resolution: {integrity: sha1-6Ps/JClZ20TWO+Zl23qOc5U3oyw=} engines: {node: '>= 6.0.0'} agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + resolution: {integrity: sha1-Sf/1hXfP7j83F2/qtMIuAPhtf3c=} engines: {node: '>= 6.0.0'} agent-base@7.1.3: - resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} + resolution: {integrity: sha1-KUNeuCG8QZRjOluJ5bxHA7r8JaE=} engines: {node: '>= 14'} agentkeepalive@4.6.0: - resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} + resolution: {integrity: sha1-Nfc+lLP0C/ZfEFIZxiOtGcE26mo=} engines: {node: '>= 8.0.0'} aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + resolution: {integrity: sha1-kmcP9Q9TWb23o+DUDQ7DDFc3aHo=} engines: {node: '>=8'} ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + resolution: {integrity: sha1-bmaUAGWet0lzu/LjMycYCgmWtSA=} peerDependencies: ajv: ^8.0.0 peerDependenciesMeta: @@ -10863,7 +10881,7 @@ packages: optional: true ajv-formats@3.0.1: - resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + resolution: {integrity: sha1-PV3HYryhdnnDwup+kK1rdTIwlXg=} peerDependencies: ajv: ^8.0.0 peerDependenciesMeta: @@ -10871,281 +10889,281 @@ packages: optional: true ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + resolution: {integrity: sha1-MfKdpatuANHC0yms97WSlhTVAU0=} peerDependencies: ajv: ^6.9.1 ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + resolution: {integrity: sha1-adTThaRzPNvqtElkoRcKiPh/DhY=} peerDependencies: ajv: ^8.8.2 ajv@6.15.0: - resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} + resolution: {integrity: sha1-B+mCx0YmFnqnoklcU4F4ktcTlJI=} ajv@8.18.0: - resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} + resolution: {integrity: sha1-iGQYa2c40APrOpMxcrs4M+EM77w=} ajv@8.20.0: - resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} + resolution: {integrity: sha1-MEs2Nq3Yi6fZNnYN1Q7OAG3qlfk=} ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + resolution: {integrity: sha1-N2ETQOsiQ+cMxgTK011jJw1IeBs=} engines: {node: '>=6'} ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + resolution: {integrity: sha1-ayKR0dt9mLZSHV8e+kLQ86n+tl4=} engines: {node: '>=8'} ansi-escapes@7.0.0: - resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + resolution: {integrity: sha1-APwZ9JG7sY4dSBuXhoIE+SEJv+c=} engines: {node: '>=18'} ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + resolution: {integrity: sha1-afvE1sy+OD+XNpNK40w/gpDxv0E=} engines: {'0': node >= 0.8.0} hasBin: true ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + resolution: {integrity: sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=} engines: {node: '>=8'} ansi-regex@6.2.2: - resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + resolution: {integrity: sha1-YCFu6kZNhkWXzigyAAc4oFiWUME=} engines: {node: '>=12'} ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + resolution: {integrity: sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=} engines: {node: '>=4'} ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + resolution: {integrity: sha1-7dgDYornHATIWuegkG7a00tkiTc=} engines: {node: '>=8'} ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + resolution: {integrity: sha1-B0SWkK1Fd30ZJKwquy/IiV26g2s=} engines: {node: '>=10'} ansi-styles@6.2.3: - resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + resolution: {integrity: sha1-wETV3MUhoHZBNHJZehrLHxA8QEE=} engines: {node: '>=12'} ansi_up@6.0.5: - resolution: {integrity: sha512-bo4K8S5usgFivfgvgQozTC2EfusPf76o7w0LUVdAOkpISvVmQqtwCdF5c6okokrgIN13KhFIVB/0BhnNXueQeA==} + resolution: {integrity: sha1-k6s9bjHVjDUURZGCyh81q7t6PNk=} ansi_up@6.0.6: - resolution: {integrity: sha512-yIa1x3Ecf8jWP4UWEunNjqNX6gzE4vg2gGz+xqRGY+TBSucnYp6RRdPV4brmtg6bQ1ljD48mZ5iGSEj7QEpRKA==} + resolution: {integrity: sha1-gE+vMfA4XlYtL3EnXqjP8Nnc9tw=} ansis@3.17.0: - resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==} + resolution: {integrity: sha1-+o2cKpP+fRF34MF/nutWKlioMtc=} engines: {node: '>=14'} any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=} anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + resolution: {integrity: sha1-eQxYsZuhcgqEIFtXxhjVrYUklz4=} engines: {node: '>= 8'} apache-arrow@18.1.0: - resolution: {integrity: sha512-v/ShMp57iBnBp4lDgV8Jx3d3Q5/Hac25FWmQ98eMahUiHPXcvwIMKJD0hBIgclm/FCG+LwPkAKtkRO1O/W0YGg==} + resolution: {integrity: sha1-uxep6R5OL3tc9O/LnBq1fO2sfio=} hasBin: true app-builder-bin@5.0.0-alpha.12: - resolution: {integrity: sha512-j87o0j6LqPL3QRr8yid6c+Tt5gC7xNfYo6uQIQkorAC6MpeayVMZrEDzKmJJ/Hlv7EnOQpaRm53k6ktDYZyB6w==} + resolution: {integrity: sha1-La+C+LrcaY4K3Mlbo2r0/wZQ3IA=} app-builder-lib@26.8.1: - resolution: {integrity: sha512-p0Im/Dx5C4tmz8QEE1Yn4MkuPC8PrnlRneMhWJj7BBXQfNTJUshM/bp3lusdEsDbvvfJZpXWnYesgSLvwtM2Zw==} + resolution: {integrity: sha1-MVyJO/H1iCzGzRdM/NAFNdu3Z4Y=} engines: {node: '>=14.0.0'} peerDependencies: dmg-builder: 26.8.1 electron-builder-squirrel-windows: 26.8.1 app-module-path@2.2.0: - resolution: {integrity: sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==} + resolution: {integrity: sha1-ZBqlXft9am8KgUHEucCqULbCTdU=} archiver-utils@2.1.0: - resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} + resolution: {integrity: sha1-6KRg6UtpPD49oYKgmMpihbqSSeI=} engines: {node: '>= 6'} archiver-utils@5.0.2: - resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} + resolution: {integrity: sha1-Y7xxnZUYA+/HLPlhpW74EHYN0U0=} engines: {node: '>= 14'} archiver@3.1.1: - resolution: {integrity: sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==} + resolution: {integrity: sha1-nbeBnU2vYK7BD+hrFsuSWM7WbqA=} engines: {node: '>= 6'} archiver@7.0.1: - resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} + resolution: {integrity: sha1-ydkcNQNiBAuJJzeceqacBlUSL2E=} engines: {node: '>= 14'} arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + resolution: {integrity: sha1-Jp/HrVuOQstjyJbVZmAXJhwUQIk=} argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + resolution: {integrity: sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=} argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + resolution: {integrity: sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=} arr-union@3.1.0: - resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + resolution: {integrity: sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=} engines: {node: '>=0.10.0'} array-back@3.1.0: - resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} + resolution: {integrity: sha1-uIWdelCIccmnss9C+ZQo9l6Wv7A=} engines: {node: '>=6'} array-back@6.2.2: - resolution: {integrity: sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==} + resolution: {integrity: sha1-9WfZnpr4im09L538wh22+bqf0Vc=} engines: {node: '>=12.17'} array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + resolution: {integrity: sha1-OE0So3KVrsN2mrAirTI6GKUcz4s=} engines: {node: '>= 0.4'} array-differ@3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + resolution: {integrity: sha1-PLs9DzFoEOr8xHYkc0I31q7krms=} engines: {node: '>=8'} array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + resolution: {integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=} array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + resolution: {integrity: sha1-t5hCCtvrHego2ErNii4j0+/oXo0=} engines: {node: '>=8'} arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + resolution: {integrity: sha1-nXYNhNvdBtDL+SyISWFaGnqzGDw=} engines: {node: '>= 0.4'} arrify@2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + resolution: {integrity: sha1-yWVekzHgq81YjSp8rX6ZVvZnAfo=} engines: {node: '>=8'} asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + resolution: {integrity: sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=} asn1@0.2.6: - resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + resolution: {integrity: sha1-DTp7tuZOAqkMAwOzHykoaOoJoI0=} asn1js@3.0.10: - resolution: {integrity: sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==} + resolution: {integrity: sha1-3ybIdMiotBymBe/qR7KtB1UQE90=} engines: {node: '>=12.0.0'} assert-never@1.4.0: - resolution: {integrity: sha512-5oJg84os6NMQNl27T9LnZkvvqzvAnHu03ShCnoj6bsJwS7L8AO4lf+C/XjK/nvzEqQB744moC6V128RucQd1jA==} + resolution: {integrity: sha1-sNSYhijIfzXrlHFsxUQipjkn4XU=} assert-plus@1.0.0: - resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + resolution: {integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=} engines: {node: '>=0.8'} assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + resolution: {integrity: sha1-9kGhlrM1aQsQcL8AtudZP+wZC/c=} engines: {node: '>=12'} ast-module-types@6.0.2: - resolution: {integrity: sha512-6KuK/7nZ/2Qh7sGuVEiwxjCxzTY2Pdb5mTo5z1e6/J8BA0tvjR7G8vQJKrQMTqwmnA3UPEyKIFX4YUS1DO1Hvw==} + resolution: {integrity: sha1-sYoH3ja85N+4jt8FHI1oCNT+PdY=} engines: {node: '>=18'} ast-types@0.13.4: - resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} + resolution: {integrity: sha1-7g13s0MmOWXsw/ti2hbnIisrZ4I=} engines: {node: '>=4'} astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + resolution: {integrity: sha1-SDFDxWeu7UeFdZwIZXhtx319LjE=} engines: {node: '>=8'} async-exit-hook@2.0.1: - resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} + resolution: {integrity: sha1-i9iwJLDsmxwBzMua+dspvXF9+vM=} engines: {node: '>=0.12.0'} async-function@1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + resolution: {integrity: sha1-UJyfymDq+FA0xoKYOBiOTkyP+ys=} engines: {node: '>= 0.4'} async-mutex@0.4.0: - resolution: {integrity: sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==} + resolution: {integrity: sha1-roBIzU0ErOlDR1B1BLPPFeYxwl8=} async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + resolution: {integrity: sha1-cGt/9ghGZM1+rnE/b5ZUM7VQQiE=} async@3.2.6: - resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + resolution: {integrity: sha1-Gwco4Ukp1RuFtEm38G4nwRReOM4=} asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + resolution: {integrity: sha1-YCzUtG6EStTv/JKoARo8RuAjjcI=} engines: {node: '>= 4.0.0'} auto-bind@5.0.1: - resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==} + resolution: {integrity: sha1-UNjmPqWh3dy15eNkUcGoJm/7sq4=} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + resolution: {integrity: sha1-pcw3XWoDwu/IelU/PgsVIt7xSEY=} engines: {node: '>= 0.4'} axe-core@4.11.4: - resolution: {integrity: sha512-KunSNx+TVpkAw/6ULfhnx+HWRecjqZGTOyquAoWHYLRSdK1tB5Ihce1ZW+UY3fj33bYAFWPu7W/GRSmmrCGuxA==} + resolution: {integrity: sha1-W1NeOB/x5h/91hXlSD0WGG07RqU=} engines: {node: '>=4'} azure-devops-node-api@12.5.0: - resolution: {integrity: sha512-R5eFskGvOm3U/GzeAuxRkUsAl0hrAwGgWn6zAd2KrZmrEhWZVqLew4OOupbQlXUuojUzpGtq62SmdhJ06N88og==} + resolution: {integrity: sha1-OLnv18WsdDVP5Ojb5CaX2wuOhaU=} b4a@1.6.7: - resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} + resolution: {integrity: sha1-qZWH1Ou/vVpuOyG9tdX6OFdnq+Q=} babel-jest@29.7.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + resolution: {integrity: sha1-9DaZGSJbaExWCFmYrGPb0FvgINU=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + resolution: {integrity: sha1-+ojsWSMv2bTjbbvFQKjsmptH2nM=} engines: {node: '>=8'} babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + resolution: {integrity: sha1-qtvpQ0ZBgqiSLDySfDBn/0DSRiY=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} babel-preset-current-node-syntax@1.2.0: - resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} + resolution: {integrity: sha1-IHMNbNx92l2JQByrEKxqMgZ6zeY=} peerDependencies: '@babel/core': ^7.0.0 || ^8.0.0-0 babel-preset-jest@29.6.3: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + resolution: {integrity: sha1-+gX6UQ59STiW17DdIDNgHIQPFxw=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 babel-walk@3.0.0-canary-5: - resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==} + resolution: {integrity: sha1-9m7Ncpg1eu5ElV8jWm71QhkQSxE=} engines: {node: '>= 10.0.0'} badgen@3.3.2: - resolution: {integrity: sha512-fbQwK9norfdzbdsoPwbLIAmgBXDGEme3jeIyqPAH7o6vp9lmuLHS7uXULvOiQ6XnMLkYNG4gDjILf74hgtTAug==} + resolution: {integrity: sha1-jQhoC87/j+DFlouDqYw4MPHagV8=} bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + resolution: {integrity: sha1-0m9c2P5db4MqMVF7n3w1YEC6bV0=} balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + resolution: {integrity: sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=} balanced-match@4.0.3: - resolution: {integrity: sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==} + resolution: {integrity: sha1-Yzei8j4GBKMEgUI0MvmerGA1mfk=} engines: {node: 20 || >=22} bare-events@2.5.4: - resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==} + resolution: {integrity: sha1-FhQ9Q14e2er9GrhfEribM1ekF0U=} bare-fs@4.1.5: - resolution: {integrity: sha512-1zccWBMypln0jEE05LzZt+V/8y8AQsQQqxtklqaIyg5nu6OAYFhZxPXinJTSG+kU5qyNmeLgcn9AW7eHiCHVLA==} + resolution: {integrity: sha1-HQbAduaMyL+XAQ0pr546w4CM3Pc=} engines: {bare: '>=1.16.0'} peerDependencies: bare-buffer: '*' @@ -11154,14 +11172,14 @@ packages: optional: true bare-os@3.6.1: - resolution: {integrity: sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==} + resolution: {integrity: sha1-mSH29Z7b6Br6n1aRBlhCLA9IWNQ=} engines: {bare: '>=1.14.0'} bare-path@3.0.0: - resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} + resolution: {integrity: sha1-tZ0YEwulKmr5J22z6WouPT6lIXg=} bare-stream@2.6.5: - resolution: {integrity: sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==} + resolution: {integrity: sha1-u6joeWdMTCf34ngF3wBcFdeiygc=} peerDependencies: bare-buffer: '*' bare-events: '*' @@ -11172,171 +11190,171 @@ packages: optional: true base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + resolution: {integrity: sha1-GxtEAWClv3rUC2UPCVljSBkDkwo=} baseline-browser-mapping@2.10.37: - resolution: {integrity: sha512-girxaJ7WZssDOFhzCGZTDKoTa1gk6A1TbflaYTpykLJ4UU9Fz9kx1aREM8JCuoVHbL8X8T/mJg7w2oYSq72Oig==} + resolution: {integrity: sha1-PmNkdbaykyROKyPixxoqudnmun0=} engines: {node: '>=6.0.0'} hasBin: true basic-ftp@5.3.0: - resolution: {integrity: sha512-5K9eNNn7ywHPsYnFwjKgYH8Hf8B5emh7JKcPaVjjrMJFQQwGpwowEnZNEtHs7DfR7hCZsmaK3VA4HUK0YarT+w==} + resolution: {integrity: sha1-iPBX0bqEQmQ8UFxMg7uqREKxXP0=} engines: {node: '>=10.0.0'} batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + resolution: {integrity: sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=} bent@7.3.12: - resolution: {integrity: sha512-T3yrKnVGB63zRuoco/7Ybl7BwwGZR0lceoVG5XmQyMIH9s19SV5m+a8qam4if0zQuAmOQTyPTPmsQBdAorGK3w==} + resolution: {integrity: sha1-4KJ3XUQl52dMZLeLJCr09J2msDU=} better-sqlite3@12.6.2: - resolution: {integrity: sha512-8VYKM3MjCa9WcaSAI3hzwhmyHVlH8tiGFwf0RlTsZPWJ1I5MkzjiudCo4KC4DxOaL/53A5B1sI/IbldNFDbsKA==} + resolution: {integrity: sha1-dwZJ8opi5UOjYPPfoa/kzJRLGTc=} engines: {node: 20.x || 22.x || 23.x || 24.x || 25.x} bidi-js@1.0.3: - resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} + resolution: {integrity: sha1-b4vPPId8TZIg3fSbm7aTDIj4d9I=} bignumber.js@9.3.1: - resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + resolution: {integrity: sha1-dZxard8v/cTxVPe0k+HIdw+IxNc=} binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + resolution: {integrity: sha1-9uFKl4WNMnJSIAJC1Mz+UixEVSI=} engines: {node: '>=8'} binaryextensions@4.19.0: - resolution: {integrity: sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg==} + resolution: {integrity: sha1-eUS0HOa7vNPlROBfZXlKxIyqoTI=} engines: {node: '>=0.8'} bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + resolution: {integrity: sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=} bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + resolution: {integrity: sha1-RRU1JkGCvsL7vIOmKrmM8R2fezo=} blamer@1.0.7: - resolution: {integrity: sha512-GbBStl/EVlSWkiJQBZps3H1iARBrC7vt++Jb/TTmCNu/jZ04VW7tSN1nScbFXBUy1AN+jzeL7Zep9sbQxLhXKA==} + resolution: {integrity: sha1-tUW9J8a6WDujGJcHr2tL929mUg4=} engines: {node: '>=8.9'} body-parser@1.20.3: - resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + resolution: {integrity: sha1-GVNDEiHG+1zWPEs21T+rCSjlSMY=} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} body-parser@1.20.5: - resolution: {integrity: sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==} + resolution: {integrity: sha1-MDyMNEI9HW+nmbx2TpPB5Nxuv2Q=} 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==} + resolution: {integrity: sha1-GjLNuWa+r2jeUKnfvltY+Dy4iQw=} engines: {node: '>=18'} bonjour-service@1.4.1: - resolution: {integrity: sha512-9KM4QMPKnaJqaja1v7gYO/+TXZGLtzPA05NmUTqDAJjcsWeVoOXKMvU9g0gfuuoYTQqJZ924hivICd5R/bCJbA==} + resolution: {integrity: sha1-Z9DU5QUjqQsdS0RcSQyv3xC5n1g=} boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + resolution: {integrity: sha1-aN/1++YMUes3cl6p4+0xDcwed24=} boolean@3.2.0: - resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + resolution: {integrity: sha1-nlKUr06YMUSUy7F5efpUyhWfEWs=} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. bootstrap@5.3.6: - resolution: {integrity: sha512-jX0GAcRzvdwISuvArXn3m7KZscWWFAf1MKBcnzaN02qWMb3jpMoUX4/qgeiGzqyIb4ojulRzs89UCUmGcFSzTA==} + resolution: {integrity: sha1-+9keuv8JP1sZGhwBqMhm0k+fpuE=} peerDependencies: '@popperjs/core': ^2.11.8 boundary@2.0.0: - resolution: {integrity: sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==} + resolution: {integrity: sha1-FpyLHw1Ezywlk4lnoyjzfgpOXvw=} bowser@2.11.0: - resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} + resolution: {integrity: sha1-XKPDV1enqldxUAxwpzqfke9CCo8=} brace-expansion@1.1.15: - resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==} + resolution: {integrity: sha1-ptkNVAZyNuX0JXCjtzeNWU2bdzg=} brace-expansion@2.1.1: - resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==} + resolution: {integrity: sha1-xoscQRHHaq46b7pV1JbO4Qw52tg=} brace-expansion@5.0.6: - resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} + resolution: {integrity: sha1-7Gj+CmQaKdhxFXnK9kHQW64fIoU=} engines: {node: 18 || 20 || >=22} braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + resolution: {integrity: sha1-SQMy9AkZRSJy1VqEgK3AxEE1h4k=} engines: {node: '>=8'} browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + resolution: {integrity: sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=} browserslist@4.28.2: - resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} + resolution: {integrity: sha1-9QtlNi70iXTKn1CzaAVm14a4EdI=} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true bs-logger@0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + resolution: {integrity: sha1-6302UwenLPl0zGzadraDVK0za9g=} engines: {node: '>= 6'} bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + resolution: {integrity: sha1-5nh9og7OnQeZhTPP2d5vXDj0vAU=} bson@6.10.3: - resolution: {integrity: sha512-MTxGsqgYTwfshYWTRdmZRC+M7FnG1b4y7RO7p2k3X24Wq0yv1m77Wsj0BzlPzd/IowgESfsruQCUToa7vbOpPQ==} + resolution: {integrity: sha1-X5pGOva4PiZL7dCLI20TVqMO2kc=} engines: {node: '>=16.20.1'} buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=} buffer-crc32@1.0.0: - resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} + resolution: {integrity: sha1-oQmTuQVQgdVTBL2f60oHLeF59AU=} engines: {node: '>=8.0.0'} buffer-equal-constant-time@1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + resolution: {integrity: sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=} buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + resolution: {integrity: sha1-KxRqb9cugLT1XSVfNe1Zo6mkG9U=} buffer@5.6.0: - resolution: {integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==} + resolution: {integrity: sha1-oxdJ3H2B2E2wir+Te2uMQDP2J4Y=} buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + resolution: {integrity: sha1-umLnwTEzBTWCGXFghRqPZI6Z7tA=} buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + resolution: {integrity: sha1-Ks5XhFnMj74qcKqo9S7mO2p0xsY=} builder-util-runtime@9.3.1: - resolution: {integrity: sha512-2/egrNDDnRaxVwK3A+cJq6UOlqOdedGA7JPqCeJjN2Zjk1/QB/6QUi3b714ScIGS7HafFXTyzJEOr5b44I3kvQ==} + resolution: {integrity: sha1-Da7d4PbTgfKgClCkB7Fm/n3KGmc=} engines: {node: '>=12.0.0'} builder-util-runtime@9.5.1: - resolution: {integrity: sha512-qt41tMfgHTllhResqM5DcnHyDIWNgzHvuY2jDcYP9iaGpkWxTUzV6GQjDeLnlR1/DtdlcsWQbA7sByMpmJFTLQ==} + resolution: {integrity: sha1-dBJfs3TR7L9HKuF4dIVIX/dhlwI=} engines: {node: '>=12.0.0'} builder-util@26.8.1: - resolution: {integrity: sha512-pm1lTYbGyc90DHgCDO7eo8Rl4EqKLciayNbZqGziqnH9jrlKe8ZANGdityLZU+pJh16dfzjAx2xQq9McuIPEtw==} + resolution: {integrity: sha1-UP38LU/+tvc5rzY7W9YMScldQXA=} builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + resolution: {integrity: sha1-yuYoEriYAellYzbkYiPgMDhr57Y=} engines: {node: '>=6'} bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + resolution: {integrity: sha1-87lrNBYNZDGhnXaIE1r3z7h5eIk=} engines: {node: '>=18'} bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + resolution: {integrity: sha1-iwvuuYYFrfGxKPpDhkA8AJ4CIaU=} engines: {node: '>= 0.8'} bytesish@0.4.4: - resolution: {integrity: sha512-i4uu6M4zuMUiyfZN4RU2+i9+peJh//pXhd9x1oSe1LBkZ3LEbCoygu8W0bXTukU1Jme2txKuotpCZRaC3FLxcQ==} + resolution: {integrity: sha1-87U1oPEVN0dCeu4nJWdIz/kjR+Y=} bytestreamjs@2.0.1: - resolution: {integrity: sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==} + resolution: {integrity: sha1-oylHx844mm+hGgmppWPQpFiJU14=} engines: {node: '>=6.0.0'} c8@10.1.3: - resolution: {integrity: sha512-LvcyrOAaOnrrlMpW22n690PUvxiq4Uf9WMhQwNJ9vgagkL/ph1+D4uvjvDA5XCbykrc0sx+ay6pVi9YZ1GnhyA==} + resolution: {integrity: sha1-VK+yXr3MfzsAESSCxtkNdUGtL80=} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -11346,436 +11364,436 @@ packages: optional: true cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + resolution: {integrity: sha1-gE4eb1Bu42PLDjzLsJytXdmHCVk=} engines: {node: '>=8'} cache-content-type@1.0.1: - resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} + resolution: {integrity: sha1-A1zeKwjuISn0qDFeqPAKANuhRTw=} engines: {node: '>= 6.0.0'} cacheable-lookup@5.0.4: - resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + resolution: {integrity: sha1-WmuGWyxENXvj1evCpGewMnGacAU=} engines: {node: '>=10.6.0'} cacheable-request@7.0.4: - resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + resolution: {integrity: sha1-ejPr8IYTF4tANjW+e4mdPmm76Bc=} engines: {node: '>=8'} call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + resolution: {integrity: sha1-S1QowiK+mF15w9gmV0edvgtZstY=} engines: {node: '>= 0.4'} call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + resolution: {integrity: sha1-BzapZg9TfjOIgm9EDV7EX3ROqkw=} engines: {node: '>= 0.4'} call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + resolution: {integrity: sha1-I43pNdKippKSjFOMfM+pEGf9Bio=} engines: {node: '>= 0.4'} callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + resolution: {integrity: sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=} engines: {node: '>=6'} camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + resolution: {integrity: sha1-lygHKpVPgFIoIlpt7qazhGHhvVo=} camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + resolution: {integrity: sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=} engines: {node: '>=6'} camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + resolution: {integrity: sha1-VoW5XrIJrJwMF3Rnd4ychN9Yupo=} engines: {node: '>=10'} caniuse-lite@1.0.30001799: - resolution: {integrity: sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==} + resolution: {integrity: sha1-XJCROMJ/GmEhnT4JIHHBzH0y3FU=} caseless@0.12.0: - resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + resolution: {integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=} ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + resolution: {integrity: sha1-F6O/gjAuCHDW2kOgExGovAKj7PU=} chai-a11y-axe@1.5.0: - resolution: {integrity: sha512-V/Vg/zJDr9aIkaHJ2KQu7lGTQQm5ZOH4u1k5iTMvIXuSVlSuUo0jcSpSqf9wUn9zl6oQXa4e4E0cqH18KOgKlQ==} + resolution: {integrity: sha1-qvo3+R9Tuur+mCGXaOXe6Hds9lU=} chalk-template@0.4.0: - resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==} + resolution: {integrity: sha1-aSwDTQ7WJDa5BiwXB/rc0PdTIEs=} engines: {node: '>=12'} chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + resolution: {integrity: sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=} engines: {node: '>=4'} chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + resolution: {integrity: sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=} engines: {node: '>=10'} chalk@5.6.2: - resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + resolution: {integrity: sha1-sSOLbiPqM3r3HH+KKV21rwwViuo=} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} change-case@5.4.4: - resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} + resolution: {integrity: sha1-DVK1B9j7jyBDQ0MjgdGm17/5egI=} char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + resolution: {integrity: sha1-10Q1giYhf5ge1Y9Hmx1rzClUXc8=} engines: {node: '>=10'} character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + resolution: {integrity: sha1-LQnC5yzZUjB2zLIRV9/2atQ/zCI=} character-parser@2.2.0: - resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==} + resolution: {integrity: sha1-x84o821LzZdE5f/CxfzeHHMmH8A=} chardet@2.1.0: - resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} + resolution: {integrity: sha1-EAf0QaGun5GZpKZ/bpePsKqao/4=} cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + resolution: {integrity: sha1-TYZzKGuBJsoqjkJ0DV48SISuIbQ=} cheerio@1.0.0-rc.12: - resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + resolution: {integrity: sha1-eIv3RmUGsca/X65R0kosTWLkdoM=} engines: {node: '>= 6'} cheerio@1.1.0: - resolution: {integrity: sha512-+0hMx9eYhJvWbgpKV9hN7jg0JcwydpopZE4hgi+KvQtByZXPp04NiCWU0LzcAbP63abZckIHkTQaXVF52mX3xQ==} + resolution: {integrity: sha1-h7m+xt02luQF6nnafSdJ2DCLCVM=} engines: {node: '>=18.17'} chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + resolution: {integrity: sha1-GXxsxmnvKo3F57TZfuTgksPrDVs=} engines: {node: '>= 8.10.0'} chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + resolution: {integrity: sha1-e+N6TAPJruHs/oYqSiOyxwwgXTA=} engines: {node: '>= 14.16.0'} chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + resolution: {integrity: sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=} chownr@3.0.0: - resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + resolution: {integrity: sha1-mFXmTs0kCpzEJnzopKpdJKHaFeQ=} engines: {node: '>=18'} chrome-launcher@0.15.2: - resolution: {integrity: sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==} + resolution: {integrity: sha1-TmQE4yIACV/c5/ah4QBPm9Nvpdo=} engines: {node: '>=12.13.0'} hasBin: true chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + resolution: {integrity: sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=} engines: {node: '>=6.0'} chromium-bidi@0.11.0: - resolution: {integrity: sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA==} + resolution: {integrity: sha1-nDxC7ntC2ESOn86NZJ3Iv7zDEVM=} peerDependencies: devtools-protocol: '*' chromium-bidi@14.0.0: - resolution: {integrity: sha512-9gYlLtS6tStdRWzrtXaTMnqcM4dudNegMXJxkR0I/CXObHalYeYcAMPrL19eroNZHtJ8DQmu1E+ZNOYu/IXMXw==} + resolution: {integrity: sha1-FaEqsIOuUZpJpyTpSZTKCpztnI4=} peerDependencies: devtools-protocol: '*' chromium-pickle-js@0.2.0: - resolution: {integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==} + resolution: {integrity: sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=} ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + resolution: {integrity: sha1-QnmmICinsfJi80c/yWBfXiGMWbQ=} engines: {node: '>=8'} ci-info@4.3.1: - resolution: {integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==} + resolution: {integrity: sha1-NVrVcZIIELViPhHUAjL0Q/FvHao=} engines: {node: '>=8'} cjs-module-lexer@1.2.3: - resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + resolution: {integrity: sha1-bDcKsZ+KM5TjGP5oJobsCsaE0Qc=} clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} + resolution: {integrity: sha1-szBlPNO9a3UAnMJccUyue5M1HM0=} engines: {node: '>= 10.0'} clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + resolution: {integrity: sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=} engines: {node: '>=6'} clean-stack@3.0.1: - resolution: {integrity: sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==} + resolution: {integrity: sha1-FVvwsiIb9fT7qJUo0kxZU/F/46g=} engines: {node: '>=10'} cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + resolution: {integrity: sha1-caEMcW/uugBeRQTzYynvCxfPMUU=} engines: {node: '>=10'} cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + resolution: {integrity: sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=} engines: {node: '>=8'} cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + resolution: {integrity: sha1-POz+NzS/T+Aqg2HL3A9v4oxqV+o=} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} cli-cursor@5.0.0: - resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + resolution: {integrity: sha1-JKSDHs9aawHd6zL7caSyCIsNzjg=} engines: {node: '>=18'} cli-highlight@2.1.11: - resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} + resolution: {integrity: sha1-SXNvpFLwqvT65YDjCssmgo0twb8=} engines: {node: '>=8.0.0', npm: '>=5.0.0'} hasBin: true cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + resolution: {integrity: sha1-F3Oo9LnE1qwxVj31Oz/B15Ri/kE=} engines: {node: '>=6'} cli-table3@0.6.5: - resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} + resolution: {integrity: sha1-ATuRNRdic5wWqVZ8IaBGMuRJvy8=} engines: {node: 10.* || >= 12.*} cli-truncate@2.1.0: - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + resolution: {integrity: sha1-w54ovwXtzeW+O5iZKiLe7Vork8c=} engines: {node: '>=8'} cli-truncate@4.0.0: - resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + resolution: {integrity: sha1-bMKKKST+6eJc6R6XPbVscGbmFyo=} engines: {node: '>=18'} cli-width@4.1.0: - resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + resolution: {integrity: sha1-QtqsQdPCVO84rYrAN2chMBc2kcU=} engines: {node: '>= 12'} cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + resolution: {integrity: sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=} cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + resolution: {integrity: sha1-DASwddsCy/5g3I5s8vVIaxo2CKo=} engines: {node: '>=12'} clone-deep@0.2.4: - resolution: {integrity: sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg==} + resolution: {integrity: sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=} engines: {node: '>=0.10.0'} clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + resolution: {integrity: sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=} engines: {node: '>=6'} clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + resolution: {integrity: sha1-ryAyqkeBY5nPXwodDbkC9ReruMM=} clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + resolution: {integrity: sha1-2jCcwmPfFZlMaIypAheco8fNfH4=} engines: {node: '>=0.8'} clone@2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + resolution: {integrity: sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=} engines: {node: '>=0.8'} clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + resolution: {integrity: sha1-7tOXyf2L2IK/sY3qtxAgSaLzKZk=} engines: {node: '>=6'} co-body@6.2.0: - resolution: {integrity: sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA==} + resolution: {integrity: sha1-r9d21g5WWfTu6GLfg0mWmOsa6hs=} engines: {node: '>=8.0.0'} co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} cockatiel@3.2.1: - resolution: {integrity: sha512-gfrHV6ZPkquExvMh9IOkKsBzNDk6sDuZ6DdBGUBkvFnTCqCxzpuq48RySgP0AnaqQkw2zynOFj9yly6T1Q2G5Q==} + resolution: {integrity: sha1-V1+Te8QECiCuJzUqbQfJxadBmB8=} engines: {node: '>=16'} code-excerpt@4.0.0: - resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} + resolution: {integrity: sha1-LefUbphRQ4XLAfezt0EyARX0yV4=} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} codemirror@6.0.1: - resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} + resolution: {integrity: sha1-YrkRQtRZBFR+4+Dg5MGnkVgDWik=} collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + resolution: {integrity: sha1-wLKbzTO80HeaE0TCE2BR5q/T2ek=} color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + resolution: {integrity: sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=} color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + resolution: {integrity: sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=} engines: {node: '>=7.0.0'} color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + resolution: {integrity: sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=} color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + resolution: {integrity: sha1-RGf5FG8Db4Vbdk37W/hYK/NCx6Q=} color@4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + resolution: {integrity: sha1-14HsteVyJO5D6pYnVgEHwODGRjo=} engines: {node: '>=12.5.0'} colorette@1.4.0: - resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + resolution: {integrity: sha1-UZD7uHJ2JZqGrXAL/yxtb6o/ykA=} colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + resolution: {integrity: sha1-nreT5oMwZ/cjWQL807CZF6AAqVo=} colors@1.4.0: - resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} + resolution: {integrity: sha1-xQSRR51MG9rtLJztMs98fcI2D3g=} engines: {node: '>=0.1.90'} combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + resolution: {integrity: sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=} engines: {node: '>= 0.8'} command-line-args@5.2.1: - resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} + resolution: {integrity: sha1-xEwy5DelfXxRFXaWiTxZCenOxC4=} engines: {node: '>=4.0.0'} command-line-usage@7.0.3: - resolution: {integrity: sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==} + resolution: {integrity: sha1-a86ZI1T2rxDs6itjG/3wyLO/rqM=} engines: {node: '>=12.20.0'} commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + resolution: {integrity: sha1-iB7ka0930cHczFgjQzqjmwIsvgY=} engines: {node: '>=14'} commander@12.1.0: - resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + resolution: {integrity: sha1-AUI7NvUBJZ/arE0OTWDJbJkVhdM=} engines: {node: '>=18'} commander@14.0.2: - resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} + resolution: {integrity: sha1-tx/Tf+QGnkw8fBOSUlKtpOuhTo4=} engines: {node: '>=20'} commander@15.0.0: - resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==} + resolution: {integrity: sha1-lvOWHxKtrBeZ7z+9i8YdQFctGxE=} engines: {node: '>=22.12.0'} commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + resolution: {integrity: sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=} commander@5.1.0: - resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + resolution: {integrity: sha1-Rqu9FlL44Fm92u+Zu9yyrZzxea4=} engines: {node: '>= 6'} commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + resolution: {integrity: sha1-o2y1fQtQHOEI5NIFWaFQo5HZerc=} engines: {node: '>= 10'} commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + resolution: {integrity: sha1-SDfqGy2me5xhamevuw+v7lZ7ymY=} engines: {node: '>= 12'} commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + resolution: {integrity: sha1-vAjR61zt98y3l6lhmdQce8PmDTA=} engines: {node: ^12.20.0 || >=14} commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + resolution: {integrity: sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=} compare-version@0.1.2: - resolution: {integrity: sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==} + resolution: {integrity: sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=} engines: {node: '>=0.10.0'} compress-commons@2.1.1: - resolution: {integrity: sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==} + resolution: {integrity: sha1-lBDZpTTPhDXj+7t8bOSN4twvBhA=} engines: {node: '>= 6'} compress-commons@6.0.2: - resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} + resolution: {integrity: sha1-JtMSUaZrnWuiOoQGTs06anHSYJ4=} engines: {node: '>= 14'} compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + resolution: {integrity: sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=} engines: {node: '>= 0.6'} compression@1.8.1: - resolution: {integrity: sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==} + resolution: {integrity: sha1-SkXZCawWUJGVqaKL2RCUiJwYDXk=} engines: {node: '>= 0.8.0'} concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} concurrently@9.1.2: - resolution: {integrity: sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ==} + resolution: {integrity: sha1-ItkQkpaWHq7nc+Er+xzppmvJg2w=} engines: {node: '>=18'} hasBin: true connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + resolution: {integrity: sha1-ZHJkhFJRoNryW5fOh4NMrOD18cg=} engines: {node: '>=0.8'} constantinople@4.0.1: - resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} + resolution: {integrity: sha1-De8RP6Dk3I3oMzGlz3nIsyUhMVE=} content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + resolution: {integrity: sha1-i4K076yCUSoCuwsdzsnSxejrW/4=} engines: {node: '>= 0.6'} content-disposition@1.0.1: - resolution: {integrity: sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q==} + resolution: {integrity: sha1-qLe76ykEvv37Z4flwMCGlZ9gX5s=} engines: {node: '>=18'} content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + resolution: {integrity: sha1-i3cxYmVtHRCGeEyPI6VM5tc9eRg=} engines: {node: '>= 0.6'} convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + resolution: {integrity: sha1-S1YPZJ/E6RjdCrdc9JYei8iC2Co=} convert-to-spaces@2.0.1: - resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} + resolution: {integrity: sha1-YabJj4qmJsFrKWuGKpFBKjO862s=} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} cookie-signature@1.0.7: - resolution: {integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==} + resolution: {integrity: sha1-q13Xq3V8VOYPN+9lUPSBxCbRBFQ=} cookie-signature@1.2.2: - resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} + resolution: {integrity: sha1-V8f8PMKTrKuf7FTXPhVpDr5KF5M=} engines: {node: '>=6.6.0'} cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + resolution: {integrity: sha1-VWNpxHKiupEPKXmJG1JrNDYjftc=} engines: {node: '>= 0.6'} cookies@0.9.1: - resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} + resolution: {integrity: sha1-P/7W9gu0+18Ub+7tulCsxBivZ+M=} engines: {node: '>= 0.8'} copy-anything@2.0.6: - resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + resolution: {integrity: sha1-CSRU6pWEp7etVXMGKyqH9ZAPxIA=} copy-webpack-plugin@12.0.2: - resolution: {integrity: sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==} + resolution: {integrity: sha1-k15XuOYYPIL5W9k332WKWfai2ig=} engines: {node: '>= 18.12.0'} peerDependencies: webpack: ^5.1.0 copyfiles@2.4.1: - resolution: {integrity: sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==} + resolution: {integrity: sha1-0tz/YKqtEBXwnQtm5/Dxxc08XaU=} hasBin: true core-util-is@1.0.2: - resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + resolution: {integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=} core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + resolution: {integrity: sha1-pgQtNjTCsn6TKPg3uWX6yDgI24U=} cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + resolution: {integrity: sha1-6sEdpRWS3Ya58G9uesKTs9+HXSk=} engines: {node: '>= 0.10'} cose-base@1.0.3: - resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} + resolution: {integrity: sha1-ZQM0tBuGlXilQzWLgM2n4Kvgpgo=} cose-base@2.2.0: - resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} + resolution: {integrity: sha1-HDlcNbbhC7g/l2nKi4F9YUrdXAE=} cosmiconfig@8.3.6: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + resolution: {integrity: sha1-Bgorhx1m26bIU46hEYuhrBb1+uM=} engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' @@ -11784,7 +11802,7 @@ packages: optional: true cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + resolution: {integrity: sha1-NMP8WCh7kV866QWrbcPeJYtVrZ0=} engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' @@ -11793,304 +11811,304 @@ packages: optional: true crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + resolution: {integrity: sha1-PK01qTS4v3HyXKUkttpR+36s4v8=} engines: {node: '>=0.8'} hasBin: true crc32-stream@3.0.1: - resolution: {integrity: sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==} + resolution: {integrity: sha1-yubu7QA7DkTXOdJ53lrmOxcbToU=} engines: {node: '>= 6.9.0'} crc32-stream@6.0.0: - resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} + resolution: {integrity: sha1-hSmjho+LJ6u5FfbDYXwPre2/lDA=} engines: {node: '>= 14'} crc@3.8.0: - resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==} + resolution: {integrity: sha1-rWAmnCyFb4wpnixMwN5FVpFAVsY=} create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + resolution: {integrity: sha1-o1XFs8seGvAroXf+ev1/7uSaUyA=} 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: sha1-wdfo8eX2z8n/ZfnNNS03NIdWwzM=} crelt@1.0.6: - resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} + resolution: {integrity: sha1-fMiY6nThkPtu+drlf4+Bz3MC33I=} cross-dirname@0.1.0: - resolution: {integrity: sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q==} + resolution: {integrity: sha1-uJlZnzClOJ9Z54wVDhn5V60Wo3w=} cross-env@7.0.3: - resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + resolution: {integrity: sha1-hlJkspZ33AFbqEGJGJZd0jL8VM8=} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} hasBin: true cross-spawn@6.0.6: - resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} + resolution: {integrity: sha1-MNDvoHEt2361p24ehyG/+vprXVc=} engines: {node: '>=4.8'} cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + resolution: {integrity: sha1-ilj+ePANzXDDcEUXWd+/rwPo7p8=} engines: {node: '>= 8'} crx@5.0.1: - resolution: {integrity: sha512-n/PzBx/fR1+xZCiJBats9y5zw/a+YBcoJ0ABnUaY56xb1RpXuFhsiCMpNY6WjVtylLzhUUXSWsbitesVg7v2vg==} + resolution: {integrity: sha1-M/eoE3Ws+rGqOoKRQkIjQ03Al4s=} engines: {node: '>=10'} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. hasBin: true css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + resolution: {integrity: sha1-23EpsoRmYv2GKM/ElquytZ5BUps=} css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + resolution: {integrity: sha1-uOvWVUw2N8zHZoiAStP2pv2uqKY=} css-tree@3.2.1: - resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} + resolution: {integrity: sha1-hsrHARVhJysw5rHgQrps4EeqdRg=} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + resolution: {integrity: sha1-+17/z3bx3eosgb36pN5E55uscPQ=} engines: {node: '>= 6'} cssfilter@0.0.10: - resolution: {integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==} + resolution: {integrity: sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=} cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + resolution: {integrity: sha1-nxJ29bK0Y/IRTT8sdSUK+MGjb0o=} cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + resolution: {integrity: sha1-0lT6ks2Lb72DgRufuu00ZjzBfDY=} cssstyle@2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + resolution: {integrity: sha1-/2ZaDdvcMYZLCWR/NBY0Q9kLCFI=} engines: {node: '>=8'} cssstyle@6.2.0: - resolution: {integrity: sha512-Fm5NvhYathRnXNVndkUsCCuR63DCLVVwGOOwQw782coXFi5HhkXdu289l59HlXZBawsyNccXfWRYvLzcDCdDig==} + resolution: {integrity: sha1-xBtZlVwZx6EiM1LWfKRidQIErQ8=} engines: {node: '>=20'} csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + resolution: {integrity: sha1-2A/ylNEU+w5qxQD7+FtgE31+/4E=} cytoscape-cose-bilkent@4.1.0: - resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} + resolution: {integrity: sha1-di+hId+ZMP/rUaSV2HkXxXCsIJs=} peerDependencies: cytoscape: ^3.2.0 cytoscape-dagre@2.5.0: - resolution: {integrity: sha512-VG2Knemmshop4kh5fpLO27rYcyUaaDkRw+6PiX4bstpB+QFt0p2oauMrsjVbUamGWQ6YNavh7x2em2uZlzV44g==} + resolution: {integrity: sha1-R9mDWrZN0LWW2clHMfBwKC+C/Fo=} peerDependencies: cytoscape: ^3.2.22 cytoscape-fcose@2.2.0: - resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} + resolution: {integrity: sha1-5Nb2SQ30+rWK6c6p5cOrjXRy9HE=} peerDependencies: cytoscape: ^3.2.0 cytoscape@3.32.0: - resolution: {integrity: sha512-5JHBC9n75kz5851jeklCPmZWcg3hUe6sjqJvyk3+hVqFaKcHwHgxsjeN1yLmggoUc6STbtm9/NQyabQehfjvWQ==} + resolution: {integrity: sha1-NLwkAsm8dFerfZSSdF8DS3v0dkQ=} engines: {node: '>=0.10'} cytoscape@3.33.3: - resolution: {integrity: sha512-Gej7U+OKR+LZ8kvX7rb2HhCYJ0IhvEFsnkud4SB1PR+BUY/TsSO0dmOW59WEVLu51b1Rm+gQRKoz4bLYxGSZ2g==} + resolution: {integrity: sha1-bIhYI8sIjrjDEIfDXZeGYdzeXq4=} engines: {node: '>=0.10'} d3-array@2.12.1: - resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} + resolution: {integrity: sha1-4gtBqvzf/fXVCSgATs7PgVpGXoE=} d3-array@3.2.4: - resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + resolution: {integrity: sha1-Ff7DOyN/l6xdfJhtx32ic6jtC7U=} engines: {node: '>=12'} d3-axis@3.0.0: - resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} + resolution: {integrity: sha1-xCpKE+gTHWN7dF/Clzgkz+r5MyI=} engines: {node: '>=12'} d3-brush@3.0.0: - resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} + resolution: {integrity: sha1-b3Z8Ttjct53n7ePhwPieY+9k0xw=} engines: {node: '>=12'} d3-chord@3.0.1: - resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} + resolution: {integrity: sha1-0VbWH0hfzoMn5qvzOctB2Mu6aWY=} engines: {node: '>=12'} d3-cloud@1.2.7: - resolution: {integrity: sha512-8TrgcgwRIpoZYQp7s3fGB7tATWfhckRb8KcVd1bOgqkNdkJRDGWfdSf4HkHHzZxSczwQJdSxvfPudwir5IAJ3w==} + resolution: {integrity: sha1-WnM8S65DI4y7R2C7jy0VkSqK16U=} d3-color@3.1.0: - resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + resolution: {integrity: sha1-OVsoM9+scVB/EqwvevI7+BneJOI=} engines: {node: '>=12'} d3-contour@4.0.2: - resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} + resolution: {integrity: sha1-u5IGO8jFZjrLJCL5nHPLtsauO8w=} engines: {node: '>=12'} d3-delaunay@6.0.4: - resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} + resolution: {integrity: sha1-mBaQOHM6ClurvtpVBU95W7nkpYs=} engines: {node: '>=12'} d3-dispatch@1.0.6: - resolution: {integrity: sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==} + resolution: {integrity: sha1-ANN7zuTdjNl3Kd2JOgrCnKq6XVg=} d3-dispatch@3.0.1: - resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + resolution: {integrity: sha1-X8dShOnCN1w2yDlBGgz1UMv8TV4=} engines: {node: '>=12'} d3-drag@3.0.0: - resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + resolution: {integrity: sha1-mUqunNI8cZ9TteEOOgphCMaWB7o=} engines: {node: '>=12'} d3-dsv@3.0.1: - resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + resolution: {integrity: sha1-xjr5ePTWoNCEpSpnOSK+IWB4m3M=} engines: {node: '>=12'} hasBin: true d3-ease@3.0.1: - resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + resolution: {integrity: sha1-llisOKIUDVnTRhYPH2ww/aC9EvQ=} engines: {node: '>=12'} d3-fetch@3.0.1: - resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} + resolution: {integrity: sha1-gxQb/5hWoO21443onNz+Y9CmCiI=} engines: {node: '>=12'} d3-force@3.0.0: - resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} + resolution: {integrity: sha1-Piuhph5wiI/j2RlOMNbRTuzhVcQ=} engines: {node: '>=12'} d3-format@3.1.0: - resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} + resolution: {integrity: sha1-kmDiOijqXLEJ6TshoG4k4uvVVkE=} engines: {node: '>=12'} d3-geo@3.1.1: - resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} + resolution: {integrity: sha1-YCfPUSRvmy69ZPmeAdx8M2QDOk0=} engines: {node: '>=12'} d3-hierarchy@3.1.2: - resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + resolution: {integrity: sha1-sBzULB7tPUbbd6WWbPcm+MCRYMY=} engines: {node: '>=12'} d3-interpolate@3.0.1: - resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + resolution: {integrity: sha1-PEeqWzLFs9+1bvP9Q0IHimMrQA0=} engines: {node: '>=12'} d3-path@1.0.9: - resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} + resolution: {integrity: sha1-SMBQux/owmJJOoyvVSTj6VkXAc8=} d3-path@3.1.0: - resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} + resolution: {integrity: sha1-It+TkDL7WnGuixgA1h3beFHEJSY=} engines: {node: '>=12'} d3-polygon@3.0.1: - resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} + resolution: {integrity: sha1-C0XT3RxIopyOBX5hNWk+yAvxY5g=} engines: {node: '>=12'} d3-quadtree@3.0.1: - resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} + resolution: {integrity: sha1-bco+i+Kzk8mp1RTau9gKkt7vGk8=} engines: {node: '>=12'} d3-random@3.0.1: - resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} + resolution: {integrity: sha1-1JJjeNMz2cC/0eb6AZTTCuuqIPQ=} engines: {node: '>=12'} d3-sankey@0.12.3: - resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} + resolution: {integrity: sha1-s8JoYnvXLl2AM26N5qy/7J0V0B0=} d3-scale-chromatic@3.1.0: - resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} + resolution: {integrity: sha1-NMOdopiyPCDgLxpLI5vQ8i5/ExQ=} engines: {node: '>=12'} d3-scale@4.0.2: - resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + resolution: {integrity: sha1-grOOjo/3CAdk+Nzsd71L45Nok5Y=} engines: {node: '>=12'} d3-selection@3.0.0: - resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} + resolution: {integrity: sha1-wlM4IH76csxbm9FFihpBkB8eGzE=} engines: {node: '>=12'} d3-shape@1.3.7: - resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} + resolution: {integrity: sha1-32OAG+B7yYa8VPY3ibT+UCmStdc=} d3-shape@3.2.0: - resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} + resolution: {integrity: sha1-oag5y9m6RfKGdMadf4Vbz5HfxqU=} engines: {node: '>=12'} d3-time-format@4.1.0: - resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + resolution: {integrity: sha1-erUlelBB0R7LT+cKXH0WoZW7QIo=} engines: {node: '>=12'} d3-time@3.1.0: - resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + resolution: {integrity: sha1-kxDbVumS48AXXh7zheVF5Iqbtcc=} engines: {node: '>=12'} d3-timer@3.0.1: - resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + resolution: {integrity: sha1-YoTSonCChbGrt+IB7aQ4CvNeY7A=} engines: {node: '>=12'} d3-transition@3.0.1: - resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + resolution: {integrity: sha1-aGn93hRIhoB3/dWYkgDLYbKhZF8=} engines: {node: '>=12'} peerDependencies: d3-selection: 2 - 3 d3-zoom@3.0.0: - resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + resolution: {integrity: sha1-0T9BZccyF//qpUKVzWlps+eu6PM=} engines: {node: '>=12'} d3@7.9.0: - resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} + resolution: {integrity: sha1-V556yz10nK+IYL0XQa6NNxBwzV0=} engines: {node: '>=12'} dagre-d3-es@7.0.14: - resolution: {integrity: sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg==} + resolution: {integrity: sha1-EnInbiZFfPO5faxWn48FMewzw3c=} dagre@0.8.5: - resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==} + resolution: {integrity: sha1-ujCwBV2sErbB/MJHgXRCd30Gr+4=} data-uri-to-buffer@6.0.2: - resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} + resolution: {integrity: sha1-ili7ZzhLJho47xi+oYEMsBut0os=} engines: {node: '>= 14'} data-urls@3.0.2: - resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + resolution: {integrity: sha1-nPJKR3riK871zV9vC/vB0tO+kUM=} engines: {node: '>=12'} data-urls@7.0.0: - resolution: {integrity: sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==} + resolution: {integrity: sha1-bc6LYyJqHs/dkHzhiozPse7lBtM=} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + resolution: {integrity: sha1-IRoDupXsr3eYqMcZjXlTYhH4hXA=} engines: {node: '>= 0.4'} data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + resolution: {integrity: sha1-noD3ylJFPOPpPSWjUxh2fqdwRzU=} engines: {node: '>= 0.4'} data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + resolution: {integrity: sha1-BoMH+bcat2274QKROJ4CCFZgYZE=} engines: {node: '>= 0.4'} date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + resolution: {integrity: sha1-82fmRIOf9XiU7GrEgN5AyuSw9NA=} engines: {node: '>=0.11'} date-fns@4.1.0: - resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + resolution: {integrity: sha1-ZLPYP/9aqAQ49bGmM8LoO4ocLRQ=} dayjs@1.11.20: - resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} + resolution: {integrity: sha1-iNkZ/WOdyZFBXaX0y28bZlCBGTg=} dbus-next@0.10.2: - resolution: {integrity: sha512-kLNQoadPstLgKKGIXKrnRsMgtAK/o+ix3ZmcfTfvBHzghiO9yHXpoKImGnB50EXwnfSFaSAullW/7UrSkAISSQ==} + resolution: {integrity: sha1-phI84DY0ETWiJq4PF3hKWwHll3c=} debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + resolution: {integrity: sha1-OIgdj0FmpcWEgCDBGCe4NLyz4KU=} debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + resolution: {integrity: sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -12098,7 +12116,7 @@ packages: optional: true debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + resolution: {integrity: sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -12106,7 +12124,7 @@ packages: optional: true debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + resolution: {integrity: sha1-5ai8bLxMbNPmQwiwaTo9T6VQGJs=} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -12115,7 +12133,7 @@ packages: optional: true debug@4.4.3: - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + resolution: {integrity: sha1-xq5DLZvZZiWC/OCHCbA4xY6ePWo=} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -12124,21 +12142,21 @@ packages: optional: true decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + resolution: {integrity: sha1-qkcte/Zg6xXzSU79UxyrfypwmDc=} engines: {node: '>=10'} decimal.js@10.6.0: - resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} + resolution: {integrity: sha1-5kmkPjq5U6chkv9Zg4ZeUJ837Zo=} decode-named-character-reference@1.1.0: - resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} + resolution: {integrity: sha1-XWzmh5KAiQEhDaxCqOmFNRHiuL8=} decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + resolution: {integrity: sha1-yjh2Et234QS9FthaqwDV7PCcZvw=} engines: {node: '>=10'} dedent@1.7.0: - resolution: {integrity: sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==} + resolution: {integrity: sha1-wflEUzXwF1qWWHviRaKC/0UURso=} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -12146,311 +12164,311 @@ packages: optional: true deep-equal@1.0.1: - resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} + resolution: {integrity: sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=} deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + resolution: {integrity: sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw=} engines: {node: '>=4.0.0'} deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + resolution: {integrity: sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=} deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + resolution: {integrity: sha1-RLXyFHzTsA1LVhN2hZZvJv0l3Uo=} engines: {node: '>=0.10.0'} default-browser-id@5.0.0: - resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + resolution: {integrity: sha1-odmL+WDBUILYo/pp6DFQzMzDryY=} engines: {node: '>=18'} default-browser-id@5.0.1: - resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} + resolution: {integrity: sha1-96fMuPUQS/jg9xujscz6Xq/bIeg=} engines: {node: '>=18'} default-browser@5.2.1: - resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + resolution: {integrity: sha1-e3umEgT/PkJbVWhprm0+nZ8XEs8=} engines: {node: '>=18'} default-browser@5.5.0: - resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} + resolution: {integrity: sha1-J5LohvJCKJRUWUfMgOGkRElsWXY=} engines: {node: '>=18'} default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + resolution: {integrity: sha1-gZSUyIgFO9t0PtvzQ9bN9/KUOnE=} engines: {node: '>= 10'} defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + resolution: {integrity: sha1-sLAgYsHiqmL/XZUo8PmLqpCXjXo=} defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + resolution: {integrity: sha1-gBa9tBQ+RjK3ejRJxiNid95SBYc=} engines: {node: '>=10'} define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + resolution: {integrity: sha1-iU3BQbt9MGCuQ2b2oBB+aPvkjF4=} engines: {node: '>= 0.4'} define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + resolution: {integrity: sha1-P3rkIRKbyqrJvHSQXJigAJ7J7n8=} engines: {node: '>=8'} define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + resolution: {integrity: sha1-27Ga37dG1/xtc0oGty9KANAhJV8=} engines: {node: '>=12'} define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + resolution: {integrity: sha1-EHgcxhbrlRqAoDS6/Kpzd/avK2w=} engines: {node: '>= 0.4'} degenerator@5.0.1: - resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} + resolution: {integrity: sha1-lAO/KXxtrZoezkCbN9snlU+R8vU=} engines: {node: '>= 14'} delaunator@5.0.1: - resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} + resolution: {integrity: sha1-OQMrCAU5I+kk1glP4s3hqZzFEng=} delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=} engines: {node: '>=0.4.0'} delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + resolution: {integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=} depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + resolution: {integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=} engines: {node: '>= 0.6'} depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + resolution: {integrity: sha1-tpYWPMdXVg0JzyLMj60Vcbeedt8=} engines: {node: '>= 0.8'} dependency-graph@0.11.0: - resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==} + resolution: {integrity: sha1-rAzn7WilTaIhZahel6AdU/XrLic=} engines: {node: '>= 0.6.0'} dependency-tree@11.5.0: - resolution: {integrity: sha512-K9zBwKDZrot3RkxizugpVSdImxULAg4Ycp3+ydy2r561k96oiiw6nfsOR15fwNDQ5BF2UXe+2JFM/H5Xz4MGQg==} + resolution: {integrity: sha1-//lUj4bm7OrOch34pcbaSzToyDQ=} engines: {node: '>=18'} hasBin: true dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + resolution: {integrity: sha1-JkQhTxmX057Q7g7OcjNUkKesZ74=} engines: {node: '>=6'} destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + resolution: {integrity: sha1-SANzVQmti+VSk0xn32FPlOZvoBU=} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + resolution: {integrity: sha1-WSSF67v2s7GrK+F1yDk9BMoNV+Y=} engines: {node: '>=8'} detect-indent@7.0.1: - resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} + resolution: {integrity: sha1-y7BgoShCucTTM/HKxKpNobtmvCU=} engines: {node: '>=12.20'} detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + resolution: {integrity: sha1-8M1QO0D5k5uJRpfRmtUIleMM9wA=} engines: {node: '>=8'} detect-libc@2.1.2: - resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + resolution: {integrity: sha1-aJxdzcGQDvVYOky59te0c3QgdK0=} engines: {node: '>=8'} detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + resolution: {integrity: sha1-V29d/GOuGhkv8ZLYrTr2MImRtlE=} engines: {node: '>=8'} detect-newline@4.0.1: - resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} + resolution: {integrity: sha1-/O/bVxPh+4yyg5uLbuIuZxarjyM=} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + resolution: {integrity: sha1-yccHdaScPQO8LAbZpzvlUPl4+LE=} detective-amd@6.1.0: - resolution: {integrity: sha512-fmI6LGMvotqd49QaA3ZYw+q0aGp2yXmMjzIuY6fH9j9YFIXY/73yDhMwhX9cPbhWd+AH06NH1Di/LKOuCH0Ubg==} + resolution: {integrity: sha1-esNfVTJa9d+XS7D+T9ysAycZ3DE=} engines: {node: '>=18'} hasBin: true detective-cjs@6.1.1: - resolution: {integrity: sha512-pSh7mkCKEtLlmANqLu3KDFS3NV8Hx41jy/JF1/gAWOgU+Uo5QTkeI1tWNP4dWGo4L0E9j18Ez9EPsTleautKqA==} + resolution: {integrity: sha1-t8eLZJ29+gu6IoqyjJcH9KBNX9c=} engines: {node: '>=18'} detective-es6@5.0.2: - resolution: {integrity: sha512-+qHHGYhjupiVs4rnIpI9nZ5B130A4AmE35ZX1w33hb46vcZ7T3jfDbvmPw0FhWtMHn5BS5HHu7ZtnZ53bMcXZA==} + resolution: {integrity: sha1-r8okW+VMu4uzFlkbGCy/m8gkPcA=} engines: {node: '>=18'} detective-postcss@8.0.4: - resolution: {integrity: sha512-DZ7M/hWPZyr17ZUdoQ+TVXaPj70mYr4XXrAE+GeJbca44haCvZgb191L/jLJmFYewhxRJuBd4lUtNSu986TXag==} + resolution: {integrity: sha1-1zlIPDDfu/YZQNH9sF0lBmNQcYk=} engines: {node: '>=18'} peerDependencies: postcss: ^8.4.47 detective-sass@6.0.2: - resolution: {integrity: sha512-i3xpXHDKS0qI2aFW4asQ7fqlPK00ndOVZELvQapFJCaF0VxYmsNWtd0AmvXbTLMk7bfO5VdIeorhY9KfmHVoVA==} + resolution: {integrity: sha1-PzpHkYhKujU/wm3pCQvI3zLf0MQ=} engines: {node: '>=18'} detective-scss@5.0.2: - resolution: {integrity: sha512-9JOEMZ8pDh3ShXmftq7hoQqqJsClaGgxo1hghfCeFlmKf5TC/Twtwb0PAaK8dXwpg9Z0uCmEYSrCxO+kel2eEg==} + resolution: {integrity: sha1-GcAu4IXhyZTMK9QJ9tX302sVIgo=} engines: {node: '>=18'} detective-stylus@5.0.1: - resolution: {integrity: sha512-Dgn0bUqdGbE3oZJ+WCKf8Dmu7VWLcmRJGc6RCzBgG31DLIyai9WAoEhYRgIHpt/BCRMrnXLbGWGPQuBUrnF0TA==} + resolution: {integrity: sha1-V9VKC0BTBe4WZV5CAIs4qCep8Xk=} engines: {node: '>=18'} detective-typescript@14.1.2: - resolution: {integrity: sha512-bIeEn0eVi/JRsE1YizBR2ilnMlWRAIBJJ6kXCKNFxEEWhUcEY3R6I3KYIAy48ieURbD1hcb3Ebvl8AqeoPMSzg==} + resolution: {integrity: sha1-EwIIq40NIZkxrnOUfOVoFKRittM=} engines: {node: '>=18'} peerDependencies: typescript: ^5.4.4 || ^6.0.2 detective-vue2@2.3.0: - resolution: {integrity: sha512-3gwbZPqVTm9sL9XdZsgEJ7x4x99O853VVZHapQAiEkGuMJMpFPjHDrecSgfqnS5JW3FJfYXesLZGvUOibjn49g==} + resolution: {integrity: sha1-jiApqW713PtXxdn+BbojCNbqK44=} engines: {node: '>=18'} peerDependencies: typescript: ^5.4.4 || ^6.0.2 devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + resolution: {integrity: sha1-TbfCyk3G4Og0wwvnDJS7yXbccBg=} devtools-protocol@0.0.1367902: - resolution: {integrity: sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==} + resolution: {integrity: sha1-czO/xEZsWlSkxt5Iqd+8tLgRZgw=} devtools-protocol@0.0.1566079: - resolution: {integrity: sha512-MJfAEA1UfVhSs7fbSQOG4czavUp1ajfg6prlAN0+cmfa2zNjaIbvq8VneP7do1WAQQIvgNJWSMeP6UyI90gIlQ==} + resolution: {integrity: sha1-KASe7QJaJc866pZPbGvVF3lsRKw=} diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + resolution: {integrity: sha1-Ter4lNEUB8Ue/IQYAS+ecLhOqSE=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} diff@4.0.4: - resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} + resolution: {integrity: sha1-em2/2jJfJfB1F+m1GPiXwIMy4H0=} engines: {node: '>=0.3.1'} diff@5.2.2: - resolution: {integrity: sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==} + resolution: {integrity: sha1-CkdCeXKB0Jz6aZt56jLSdyNiO60=} engines: {node: '>=0.3.1'} diff@7.0.0: - resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} + resolution: {integrity: sha1-P7NNOHzXbYA/buvqZ7kh2rAYKpo=} engines: {node: '>=0.3.1'} dir-compare@4.2.0: - resolution: {integrity: sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==} + resolution: {integrity: sha1-0dSZnBT79VKBBx/a5Ck7O5zobxk=} dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + resolution: {integrity: sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=} engines: {node: '>=8'} dmg-builder@26.8.1: - resolution: {integrity: sha512-glMJgnTreo8CFINujtAhCgN96QAqApDMZ8Vl1r8f0QT8QprvC1UCltV4CcWj20YoIyLZx6IUskaJZ0NV8fokcg==} + resolution: {integrity: sha1-35mqeQZ2rCoqwDM7utvvO2B2ywM=} dmg-license@1.0.11: - resolution: {integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==} + resolution: {integrity: sha1-ezvDdF0bUr51BrTugMth325M15o=} engines: {node: '>=8'} os: [darwin] hasBin: true dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + resolution: {integrity: sha1-roiK1CWp0UeKBnQlarhm3hASzy8=} engines: {node: '>=6'} doctypes@1.1.0: - resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==} + resolution: {integrity: sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=} dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + resolution: {integrity: sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g=} dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + resolution: {integrity: sha1-3l1Bsa6ikCFdxFptrorc8dMuLTA=} dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + resolution: {integrity: sha1-5BuALh7t+fbK4YPOXmIteJ19jlM=} domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + resolution: {integrity: sha1-XEXo6GmVJiYzHXqrMm0B2vZdWJ0=} domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + resolution: {integrity: sha1-StG+VsytyG/HbQMzU5magDfQNnM=} engines: {node: '>=12'} deprecated: Use your platform's native DOMException instead domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + resolution: {integrity: sha1-jXkgM0FvWdaLwDpap7AYwcqJJ5w=} engines: {node: '>= 4'} domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + resolution: {integrity: sha1-zDhff3UfHR/GUMITdIBCVFOMfTE=} engines: {node: '>= 4'} dompurify@3.4.11: - resolution: {integrity: sha512-zhlUV12GsaRzMsf9q5M254YhA4+VuF0fG+QFqu6aYpoGlKtz+w8//jBcGVYBgQkR5GHjUomejY84AV+/uPbWdw==} + resolution: {integrity: sha1-Kci6SWR18nnvQBV4QGhFL7FKBoA=} domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + resolution: {integrity: sha1-RDfe9dtuLR9dbuhZvZXKfQIEgTU=} domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + resolution: {integrity: sha1-xH9VEnjT3EsLGrjLtC11Gm8Ngk4=} domutils@3.2.2: - resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + resolution: {integrity: sha1-7b/itmiwwdl8JLrw8QYrEyIhvHg=} dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + resolution: {integrity: sha1-mytnDQCkMWZ6inW6Kc0bmICc51E=} dotenv-expand@11.0.7: - resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} + resolution: {integrity: sha1-r2la6gB9b9yEyGzY0K1760CgvQg=} engines: {node: '>=12'} dotenv@16.5.0: - resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} + resolution: {integrity: sha1-CStJ8l+AjwIAUAUdH/JY5ATHhpI=} engines: {node: '>=12'} dotenv@17.4.2: - resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==} + resolution: {integrity: sha1-wH5Up0bhHroCHdnhBHztWv3BwDQ=} engines: {node: '>=12'} dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + resolution: {integrity: sha1-165mfh3INIL4tw/Q9u78UNow9Yo=} engines: {node: '>= 0.4'} duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + resolution: {integrity: sha1-Or5DrvODX4rgd9E23c4PJ2sEAOY=} eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + resolution: {integrity: sha1-aWzi7Aqg5uqTo5f/zySqeEDIJ8s=} ecdsa-sig-formatter@1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + resolution: {integrity: sha1-rg8PothQRe8UqBfao86azQSJ5b8=} ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} ejs@3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + resolution: {integrity: sha1-aauDWLFOiW+AzDnmIIe4hQDDrDs=} engines: {node: '>=0.10.0'} hasBin: true electron-builder-squirrel-windows@26.8.1: - resolution: {integrity: sha512-o288fIdgPLHA76eDrFADHPoo7VyGkDCYbLV1GzndaMSAVBoZrGvM9m2IehdcVMzdAZJ2eV9bgyissQXHv5tGzA==} + resolution: {integrity: sha1-G23XCUsg+GNYUcz5b8MqXKuSC+k=} electron-builder@26.8.1: - resolution: {integrity: sha512-uWhx1r74NGpCagG0ULs/P9Nqv2nsoo+7eo4fLUOB8L8MdWltq9odW/uuLXMFCDGnPafknYLZgjNX0ZIFRzOQAw==} + resolution: {integrity: sha1-1JBWsv5dN/D5SqLrDh2zjyYfyMA=} engines: {node: '>=14.0.0'} hasBin: true electron-publish@26.8.1: - resolution: {integrity: sha512-q+jrSTIh/Cv4eGZa7oVR+grEJo/FoLMYBAnSL5GCtqwUpr1T+VgKB/dn1pnzxIxqD8S/jP1yilT9VrwCqINR4w==} + resolution: {integrity: sha1-ajL6ju0NQZcd2lMHK+oGuZMr5YM=} electron-to-chromium@1.5.375: - resolution: {integrity: sha512-ZWP5eB4BVPW/ZYo9252hQZHZ5XavtsTgpbhcmMmRwymavC5AsLWQWBPaKMeNd2LW0KGby5HPXvj7+sr4ta5j/Q==} + resolution: {integrity: sha1-VKmmFtwrN2XnJj2Y0UwhNUCJVNk=} electron-updater@6.6.2: - resolution: {integrity: sha512-Cr4GDOkbAUqRHP5/oeOmH/L2Bn6+FQPxVLZtPbcmKZC63a1F3uu5EefYOssgZXG3u/zBlubbJ5PJdITdMVggbw==} + resolution: {integrity: sha1-PmXgRPGpmwDWHiAOJN6OcJxpzpk=} electron-vite@4.0.1: - resolution: {integrity: sha512-QqacJbA8f1pmwUTqki1qLL5vIBaOQmeq13CZZefZ3r3vKVaIoC7cpoTgE+KPKxJDFTax+iFZV0VYvLVWPiQ8Aw==} + resolution: {integrity: sha1-bN95j4QsJVd5mDzK3Qaz1HXAL1c=} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -12461,218 +12479,218 @@ packages: optional: true electron-winstaller@5.4.0: - resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==} + resolution: {integrity: sha1-8GYNR21cT1ef337dLwzwHVTE0LI=} engines: {node: '>=8.0.0'} electron@40.8.5: - resolution: {integrity: sha512-pgTY/VPQKaiU4sTjfU96iyxCXrFm4htVPCMRT4b7q9ijNTRgtLmLvcmzp2G4e7xDrq9p7OLHSmu1rBKFf6Y1/A==} + resolution: {integrity: sha1-p+RZou7jW9AsMtqHFwySA4NlbE0=} engines: {node: '>= 12.20.55'} hasBin: true emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + resolution: {integrity: sha1-wEuMNFdJDghHrlH87Tr1LTOOPa0=} engines: {node: '>=12'} emoji-regex@10.4.0: - resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + resolution: {integrity: sha1-A1U6/qgLOXV0nPyzb3dsomjkE9Q=} emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + resolution: {integrity: sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=} emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + resolution: {integrity: sha1-hAyIA7DYBH9P8M+WMXazLU7z7XI=} emojilib@2.4.0: - resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + resolution: {integrity: sha1-rFGKi7DV923aVyicyy/fnTmuch4=} encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=} engines: {node: '>= 0.8'} encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + resolution: {integrity: sha1-e46omAd9fkCdOsRUdOo46vCFelg=} engines: {node: '>= 0.8'} encoding-japanese@2.2.0: - resolution: {integrity: sha512-EuJWwlHPZ1LbADuKTClvHtwbaFn4rOD+dRAbWysqEOXRc2Uui0hJInNJrsdH0c+OhJA4nrCBdSkW4DD5YxAo6A==} + resolution: {integrity: sha1-DvLSNRJQVH9DKi3RVUU1VcFt61k=} engines: {node: '>=8.10.0'} encoding-sniffer@0.2.1: - resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==} + resolution: {integrity: sha1-OW7JesIs5aA3ukSvGZKsnUanuBk=} encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + resolution: {integrity: sha1-VldK/deR9UqOmyeFwFgqLSYhD6k=} end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + resolution: {integrity: sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=} end-of-stream@1.4.5: - resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + resolution: {integrity: sha1-c0TXEd6kDgt0q8LtSXeHQ8ztsIw=} enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + resolution: {integrity: sha1-GvlGx9k2A+uI6Yls7kkE3AEunDU=} engines: {node: '>=10.13.0'} enhanced-resolve@5.19.0: - resolution: {integrity: sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==} + resolution: {integrity: sha1-ZodEahXpaeqmPC+iaUUQ4Xrm2Xw=} engines: {node: '>=10.13.0'} enhanced-resolve@5.24.1: - resolution: {integrity: sha512-7DdUaTjmNwMcH2gLr1qycesKII3BK4RLy/mdAb7x10Lq7bR4aNKHt1BR1ZALSv0rPM/hF5wYF0PhGop/rJm8vw==} + resolution: {integrity: sha1-skOa310x1+R2TeH57PlC1s0/yHQ=} engines: {node: '>=10.13.0'} entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + resolution: {integrity: sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=} entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + resolution: {integrity: sha1-XSaOpecRPsdMTQM7eepaNaSI+0g=} engines: {node: '>=0.12'} entities@6.0.1: - resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + resolution: {integrity: sha1-wow0pDN5yn9h0HQTCy9fcCCjBpQ=} engines: {node: '>=0.12'} entities@7.0.1: - resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + resolution: {integrity: sha1-JuioiInbY0F9y5oeeaPxvJK1l2s=} engines: {node: '>=0.12'} env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + resolution: {integrity: sha1-QgOZ1BbOH76bwKB8Yvpo1n/Q+PI=} engines: {node: '>=6'} envinfo@7.11.0: - resolution: {integrity: sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==} + resolution: {integrity: sha1-w3k/RChKVf+Mgvrx/9kbxkeOoB8=} engines: {node: '>=4'} hasBin: true environment@1.1.0: - resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + resolution: {integrity: sha1-jobGaxgPNjx6sxF4fgJZZl9FqfE=} engines: {node: '>=18'} err-code@2.0.3: - resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + resolution: {integrity: sha1-I8Lzt1b/38YI0w4nyalBAkgH5/k=} errno@0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + resolution: {integrity: sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=} hasBin: true error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + resolution: {integrity: sha1-tKxAZIEH/c3PriQvQovqihTU8b8=} errorstacks@2.4.1: - resolution: {integrity: sha512-jE4i0SMYevwu/xxAuzhly/KTwtj0xDhbzB6m1xPImxTkw8wcCbgarOQPfCVMi5JKVyW7in29pNJCCJrry3Ynnw==} + resolution: {integrity: sha1-Ba323h9bBKZvLBLMBZPhvisYzQ8=} es-abstract@1.24.0: - resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} + resolution: {integrity: sha1-xEcy0r6wrMHtYN+ECGnjEG568yg=} engines: {node: '>= 0.4'} es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + resolution: {integrity: sha1-mD6y+aZyTpMD9hrd8BHHLgngsPo=} engines: {node: '>= 0.4'} es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + resolution: {integrity: sha1-BfdaJdq5jk+x3NXhRywFRtUFfI8=} engines: {node: '>= 0.4'} es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + resolution: {integrity: sha1-kVlgFWGICoXyc0VgqQmbLDHlNyo=} es-module-lexer@2.0.0: - resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} + resolution: {integrity: sha1-9lfNepRI3N2pwHCjy3Xl3B6F9bE=} es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + resolution: {integrity: sha1-HE8sSDcydZfOadLKGQp/3RcjOME=} engines: {node: '>= 0.4'} es-object-atoms@1.1.2: - resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} + resolution: {integrity: sha1-otCzcyBXJN+lJdI7DD4bHKWCyZs=} engines: {node: '>= 0.4'} es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + resolution: {integrity: sha1-8x274MGDsAptJutjJcgQwP0YvU0=} engines: {node: '>= 0.4'} es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + resolution: {integrity: sha1-lsicgsxJ/YeUokg1uj4f+H8hThg=} engines: {node: '>= 0.4'} es-toolkit@1.46.1: - resolution: {integrity: sha512-5eNtXOs3tbfxXOj04tjjseeWkRWaoCjdEI+96DgwzZoe6c9juL49pXlzAFTI72aWC9Y8p7168g6XIKjh7k6pyQ==} + resolution: {integrity: sha1-OMonGRqYqGf8VEuBzxR3polH+wY=} es6-error@4.1.1: - resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + resolution: {integrity: sha1-njr0B0Wd7tR+mpH5uIWoTrBcVh0=} esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + resolution: {integrity: sha1-nKMBsSCSKVm3ZjYNisgw2g0CmX0=} engines: {node: '>=12'} hasBin: true esbuild@0.25.12: - resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} + resolution: {integrity: sha1-l6HQQfSrAML84vg40rmWmi0ql6U=} engines: {node: '>=18'} hasBin: true esbuild@0.27.7: - resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} + resolution: {integrity: sha1-vK3OIrLz/XbyV+OmT4OmSYb+oR8=} engines: {node: '>=18'} hasBin: true esbuild@0.28.1: - resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} + resolution: {integrity: sha1-70W0Y0ycnZeilq6kEUpfmED5VXg=} engines: {node: '>=18'} hasBin: true escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + resolution: {integrity: sha1-ARo/aYVroYnf+n3I/M6Z0qh5A+U=} engines: {node: '>=6'} escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=} escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} engines: {node: '>=0.8.0'} escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + resolution: {integrity: sha1-owME6Z2qMuI7L9IPUbq9B8/8o0Q=} engines: {node: '>=8'} escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + resolution: {integrity: sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=} engines: {node: '>=10'} escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + resolution: {integrity: sha1-RoMSa1ALYXYvLb66zhgG6L4xscg=} engines: {node: '>=12'} escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + resolution: {integrity: sha1-upO7t6Q5htKdYEH5n1Ji2nc+Lhc=} engines: {node: '>=6.0'} hasBin: true eslint-plugin-sonarjs@4.1.0: - resolution: {integrity: sha512-rh+FlVz0yfd2RNIb6WqSkuGh0addX/Qi5scwQ5FphXDFrM6fZKcxP1+attJ78yUKcyYfiu6MTaISPpAFPzqRJw==} + resolution: {integrity: sha1-YYeeWoU2peU7UkAYfMETpoP3EF4=} peerDependencies: eslint: ^8.0.0 || ^9.0.0 || ^10.0.0 eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + resolution: {integrity: sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=} engines: {node: '>=8.0.0'} eslint-scope@9.1.2: - resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} + resolution: {integrity: sha1-ud5qzi+rHP8k0uWNhbdMj86jmAI=} engines: {node: ^20.19.0 || ^22.13.0 || >=24} eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + resolution: {integrity: sha1-DNcv6FUOPC6uFWqWpN3c0cisWAA=} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} eslint-visitor-keys@5.0.1: - resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + resolution: {integrity: sha1-njyUiWl4JNLUzjqK0SYo+R6fWb4=} engines: {node: ^20.19.0 || ^22.13.0 || >=24} eslint@10.6.0: - resolution: {integrity: sha512-6lVbcqSodALYo+4ELD0heG6lFiFxnLMuLkiMi2qV8LMp54N8tE8FT1GMH+ev4Ti00nFjNze2+Su6DsV5OQW3Dg==} + resolution: {integrity: sha1-4bQFnFgr6VDHCIybVfmEc4skPCc=} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -12682,196 +12700,196 @@ packages: optional: true espree@11.2.0: - resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} + resolution: {integrity: sha1-AdXkfcMyqrowWQCDYkVKjMNMyqU=} engines: {node: ^20.19.0 || ^22.13.0 || >=24} esprima@1.2.5: - resolution: {integrity: sha512-S9VbPDU0adFErpDai3qDkjq8+G05ONtKzcyNrPKg/ZKa+tf879nX2KexNU95b31UoTJjRLInNBHHHjFPoCd7lQ==} + resolution: {integrity: sha1-CZNQL+r2aBODJXVvMPmlH+7sEek=} engines: {node: '>=0.4.0'} hasBin: true esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + resolution: {integrity: sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=} engines: {node: '>=4'} hasBin: true esquery@1.7.0: - resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + resolution: {integrity: sha1-CNBI8mHw3e21uulfRoCUY9nJSW0=} engines: {node: '>=0.10'} esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + resolution: {integrity: sha1-eteWTWeauyi+5yzsY3WLHF0smSE=} engines: {node: '>=4.0'} estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + resolution: {integrity: sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=} engines: {node: '>=4.0'} estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + resolution: {integrity: sha1-LupSkHAvJquP5TcDcP+GyWXSESM=} engines: {node: '>=4.0'} estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + resolution: {integrity: sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw=} esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + resolution: {integrity: sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=} engines: {node: '>=0.10.0'} etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + resolution: {integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=} engines: {node: '>= 0.6'} event-stream@3.3.4: - resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} + resolution: {integrity: sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=} event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + resolution: {integrity: sha1-XU0+vflYPWOlMzzi3rdICrKwV4k=} engines: {node: '>=6'} eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + resolution: {integrity: sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=} eventemitter3@5.0.4: - resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} + resolution: {integrity: sha1-qG1mFwQzcS3egUcHrFK1JxzrH+s=} events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + resolution: {integrity: sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=} engines: {node: '>=0.8.x'} eventsource-parser@3.0.6: - resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==} + resolution: {integrity: sha1-KS4WXjTKy8k2w8knGe8ybUrrTpA=} engines: {node: '>=18.0.0'} eventsource@3.0.7: - resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==} + resolution: {integrity: sha1-EVdiLi9Td7tq7yEUNycougwVaYk=} engines: {node: '>=18.0.0'} execa@1.0.0: - resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} + resolution: {integrity: sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=} engines: {node: '>=6'} execa@4.1.0: - resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + resolution: {integrity: sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=} engines: {node: '>=10'} execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + resolution: {integrity: sha1-+ArZy/Qpj3vR1MlVXCHpN0HEEd0=} engines: {node: '>=10'} exifreader@4.40.3: - resolution: {integrity: sha512-58NvuV/lmrUoxR6Y3s5U3rwxn8ITB8xod2WgOkwew0oR5ziQj2bcJSXMbOTQPytnZi3grztHQhgZnHBSe3/P4A==} + resolution: {integrity: sha1-P1uewWrL5upiH3Uth0Tzo+ta5Ow=} exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + resolution: {integrity: sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=} engines: {node: '>= 0.8.0'} expand-template@2.0.3: - resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + resolution: {integrity: sha1-bhSz/O4POmNA7LV9LokYaSBSpHw=} engines: {node: '>=6'} expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + resolution: {integrity: sha1-V4h0WQ3LMhRRQITAgRXYruYeEbw=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} exponential-backoff@3.1.3: - resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} + resolution: {integrity: sha1-Uc+SwcBJPHZgU/nTq+5ENMJE0vY=} express-rate-limit@7.5.1: - resolution: {integrity: sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==} + resolution: {integrity: sha1-jDpC9pIJo6HJaYkAcOzp4gqHnew=} engines: {node: '>= 16'} peerDependencies: express: '>= 4.11' express-rate-limit@8.3.1: - resolution: {integrity: sha512-D1dKN+cmyPWuvB+G2SREQDzPY1agpBIcTa9sJxOPMCNeH3gwzhqJRDWCXW3gg0y//+LQ/8j52JbMROWyrKdMdw==} + resolution: {integrity: sha1-CqugmOrdQPZzfzCpjmsW+hop7fs=} engines: {node: '>= 16'} peerDependencies: express: '>= 4.11' express@4.22.1: - resolution: {integrity: sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==} + resolution: {integrity: sha1-HeI6CXRaT//bOSR7NEu16v84IGk=} engines: {node: '>= 0.10.0'} express@4.22.2: - resolution: {integrity: sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==} + resolution: {integrity: sha1-wXrgmB5e/CSyInLw4EHEZiUDtwA=} engines: {node: '>= 0.10.0'} express@5.2.1: - resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} + resolution: {integrity: sha1-jyHRW20yf5K0eU7PjLCKcvlWrAQ=} engines: {node: '>= 18'} extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + resolution: {integrity: sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=} extract-zip@2.0.1: - resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + resolution: {integrity: sha1-Zj3KVv5G34kNXxMe9KBtIruLoTo=} engines: {node: '>= 10.17.0'} hasBin: true extsprintf@1.4.1: - resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==} + resolution: {integrity: sha1-jRcsBkhn8jXAyEpZaAbSeb9LzAc=} engines: {'0': node >=0.6.0} fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + resolution: {integrity: sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=} fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + resolution: {integrity: sha1-KG4x3pbrltOKl4mYFXQLoqTzZAw=} fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + resolution: {integrity: sha1-qQRQHlfP3S/83tRemaVP71XkYSk=} engines: {node: '>=8.6.0'} fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + resolution: {integrity: sha1-0G1YXOjbqQoWsFBcVDw8z7OuuBg=} engines: {node: '>=8.6.0'} fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + resolution: {integrity: sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=} fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} fast-levenshtein@3.0.0: - resolution: {integrity: sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==} + resolution: {integrity: sha1-N7iZrkfhCQ5A4/0jGOTV8BQsqRI=} fast-uri@3.1.2: - resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} + resolution: {integrity: sha1-ivPU/J0+cbEVcswmc7UUp9GoyOw=} fast-xml-builder@1.2.0: - resolution: {integrity: sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==} + resolution: {integrity: sha1-q9I2MUWnYl2Xia2W2jdfq+PP8ow=} fast-xml-parser@5.7.0: - resolution: {integrity: sha512-MTcrUoRQ1GSQ9iG3QJzBGquYYYeA7piZaJoIWbPFGbRn6Jj6z7xgoAyi4DrZX4y2ZIQQBF59gc/zmvvejjgoFQ==} + resolution: {integrity: sha1-uT5Jo9YqiCTFIS2PoJmsLlSNVIo=} hasBin: true fast-xml-parser@5.7.1: - resolution: {integrity: sha512-8Cc3f8GUGUULg34pBch/KGyPLglS+OFs05deyOlY7fL2MTagYPKrVQNmR1fLF/yJ9PH5ZSTd3YDF6pnmeZU+zA==} + resolution: {integrity: sha1-F2l1UL3SoKDUfNxLRWwAnEy+igY=} hasBin: true fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + resolution: {integrity: sha1-IQ5htv8YHekeqbPRuE/e3UfgNOU=} engines: {node: '>= 4.9.1'} fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + resolution: {integrity: sha1-0E0HxqKmj+RZn+qNLhA6k3+uazo=} faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + resolution: {integrity: sha1-fw2Sdc/dhqHJY9yLZfzEUe3Lsdo=} engines: {node: '>=0.8.0'} fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + resolution: {integrity: sha1-6VJO5rXHfp5QAa8PhfOtu4YjJVw=} fd-package-json@2.0.0: - resolution: {integrity: sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ==} + resolution: {integrity: sha1-A/U85aCvVSwvT69wOiTlJjEKJBE=} fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + resolution: {integrity: sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=} fdir@6.5.0: - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + resolution: {integrity: sha1-7Sq5Z6MxreYvGNB32uGSaE1Q01A=} engines: {node: '>=12.0.0'} peerDependencies: picomatch: ^3 || ^4 @@ -12880,77 +12898,77 @@ packages: optional: true file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + resolution: {integrity: sha1-d4e93PETG/+5JjbGlFe7wO3W2B8=} engines: {node: '>=16.0.0'} file-size@1.0.0: - resolution: {integrity: sha512-tLIdonWTpABkU6Axg2yGChYdrOsy4V8xcm0IcyAP8fSsu6jiXLm5pgs083e4sq5fzNRZuAYolUbZyYmPvCKfwQ==} + resolution: {integrity: sha1-MzgmfV0ga79g9N9gwZ1+04E6Rlc=} file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + resolution: {integrity: sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=} filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + resolution: {integrity: sha1-94l4oelEd1/55i50RCTyFeWDUrU=} filing-cabinet@5.5.1: - resolution: {integrity: sha512-PzLBTChlVPn6LnNxF0KWs+XqPziVh3Sfmz/3TXOymHxu6a9yhrDcQn7YwgpcRM6mqhR2WHVGPR8RU4fmcF1IVA==} + resolution: {integrity: sha1-iYwmkC6sQSBM+9+6Bhfm6aGBzAI=} engines: {node: '>=18'} hasBin: true fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + resolution: {integrity: sha1-RCZdPKwH4+p9wkdRY4BkN1SgUpI=} engines: {node: '>=8'} finalhandler@1.3.2: - resolution: {integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==} + resolution: {integrity: sha1-HrwiKPx2c6rEpHLDEMwFt32FK4g=} engines: {node: '>= 0.8'} finalhandler@2.1.1: - resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} + resolution: {integrity: sha1-osUXplWYUrzbBtH4vX9Rto+tgJk=} engines: {node: '>= 18.0.0'} find-config@1.0.0: - resolution: {integrity: sha512-Z+suHH+7LSE40WfUeZPIxSxypCWvrzdVc60xAjUShZeT5eMWM0/FQUduq3HjluyfAHWvC/aOBkT1pTZktyF/jg==} + resolution: {integrity: sha1-6vorm8B/qckOmgw++c7PHMgA9TA=} engines: {node: '>= 0.12'} find-exec@1.0.3: - resolution: {integrity: sha512-gnG38zW90mS8hm5smNcrBnakPEt+cGJoiMkJwCU0IYnEb0H2NQk0NIljhNW+48oniCriFek/PH6QXbwsJo/qug==} + resolution: {integrity: sha1-xLGPeVlo8XMAYHdvxS+Cm5d60p4=} find-replace@3.0.0: - resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} + resolution: {integrity: sha1-Pn4j07BRZ6dvdwyfvVJYsN72jDg=} engines: {node: '>=4.0.0'} find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + resolution: {integrity: sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=} engines: {node: '>=8'} find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + resolution: {integrity: sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=} engines: {node: '>=10'} find-up@7.0.0: - resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} + resolution: {integrity: sha1-6N7BRV90942IitZb98oT3StOZvs=} engines: {node: '>=18'} flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + resolution: {integrity: sha1-Ds45/LFO4BL0sEEL0z3ZwfAREnw=} engines: {node: '>=16'} flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + resolution: {integrity: sha1-jKb+MyBp/6nTJMMnGYxZglnOskE=} hasBin: true flatbuffers@24.3.25: - resolution: {integrity: sha512-3HDgPbgiwWMI9zVB7VYBHaMrbOO7Gm0v+yD2FV/sCKj+9NDeVL7BOBYUuhWAQGKWOzBo8S9WdMvV0eixO233XQ==} + resolution: {integrity: sha1-4vkiWbqKpTrNCveESvt8frlecIk=} flatbuffers@25.9.23: - resolution: {integrity: sha512-MI1qs7Lo4Syw0EOzUl0xjs2lsoeqFku44KpngfIduHBYvzm8h2+7K8YMQh1JtVVVrUvhLpNwqVi4DERegUJhPQ==} + resolution: {integrity: sha1-NGgRVX/pMSq1ZHU155PHYenIHrE=} flatted@3.4.2: - resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} + resolution: {integrity: sha1-9cI8EH8PN96NvfJPE3IrO5jVJyY=} follow-redirects@1.16.0: - resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} + resolution: {integrity: sha1-KEdKFZ07nRHvYgUKFO1g5N9tYbw=} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -12959,454 +12977,454 @@ packages: optional: true for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + resolution: {integrity: sha1-1lBogCeCaSD+6wr3R+57lCGkHUc=} engines: {node: '>= 0.4'} for-in@0.1.8: - resolution: {integrity: sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==} + resolution: {integrity: sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=} engines: {node: '>=0.10.0'} for-in@1.0.2: - resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + resolution: {integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=} engines: {node: '>=0.10.0'} for-own@0.1.5: - resolution: {integrity: sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==} + resolution: {integrity: sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=} engines: {node: '>=0.10.0'} foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + resolution: {integrity: sha1-Mujp7Rtoo0l777msK2rfkqY4V28=} engines: {node: '>=14'} form-data-encoder@1.7.2: - resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + resolution: {integrity: sha1-Hxrj3M9Y7UaQuG2H5PV8ZU+6sEA=} form-data@4.0.6: - resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==} + resolution: {integrity: sha1-KOhk4beG2+u2jbH0UvljUnhmWCc=} engines: {node: '>= 6'} formatly@0.3.0: - resolution: {integrity: sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w==} + resolution: {integrity: sha1-W7O05pL1qMdK2P4mFU3Qp0qsaBk=} engines: {node: '>=18.3.0'} hasBin: true formdata-node@4.4.1: - resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + resolution: {integrity: sha1-I/aly5y1UxWRLL7E/3sPWbvRkeI=} engines: {node: '>= 12.20'} forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + resolution: {integrity: sha1-ImmTZCiq1MFcfr6XeahL8LKoGBE=} engines: {node: '>= 0.6'} fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + resolution: {integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=} engines: {node: '>= 0.6'} fresh@2.0.0: - resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + resolution: {integrity: sha1-jdffahs6Gzpc8YbAWl3SZ2ImNaQ=} engines: {node: '>= 0.8'} from@0.1.7: - resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} + resolution: {integrity: sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=} fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + resolution: {integrity: sha1-a+Dem+mYzhavivwkSXue6bfM2a0=} fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + resolution: {integrity: sha1-Aoc8+8QITd4SfqpfmQXu8jJdGr8=} engines: {node: '>=12'} fs-extra@11.3.0: - resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + resolution: {integrity: sha1-DaztE2u69lpVWjJnGa+TGtx6MU0=} engines: {node: '>=14.14'} fs-extra@11.3.4: - resolution: {integrity: sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==} + resolution: {integrity: sha1-q2k07Ki89vf2uCdC4zWR+GMB1vw=} engines: {node: '>=14.14'} fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + resolution: {integrity: sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=} engines: {node: '>=6 <7 || >=8'} fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + resolution: {integrity: sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA=} engines: {node: '>=6 <7 || >=8'} fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + resolution: {integrity: sha1-WVRGDHZKjaIJS6NVS/g55rmnyG0=} engines: {node: '>=10'} fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + resolution: {integrity: sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + resolution: {integrity: sha1-ysZAd4XQNnWipeGlMFxpezR9kNY=} 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: sha1-LALYZNl/PqbIgwxGTL0Rq26rehw=} function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + resolution: {integrity: sha1-5o4d97JZpclJ7u+Vzb3lPt/6u3g=} engines: {node: '>= 0.4'} functional-red-black-tree@1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + resolution: {integrity: sha1-BAT+TuK6L2B/Dg7DyAuumUEzuDQ=} gaxios@6.7.1: - resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} + resolution: {integrity: sha1-69n3CT7eO6UCaF5zOQJIu1t/cfs=} engines: {node: '>=14'} gcp-metadata@6.1.1: - resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==} + resolution: {integrity: sha1-9lqmn1RrxW4RYGHRN9P1+QvexJQ=} engines: {node: '>=14'} generator-function@2.0.1: - resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + resolution: {integrity: sha1-DnXdQQ0SQ2h6C6LpUblO7bj3N6I=} engines: {node: '>= 0.4'} gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + resolution: {integrity: sha1-MqbudsPX9S1GsrGuXZP+qFgKJeA=} engines: {node: '>=6.9.0'} get-amd-module-type@6.0.2: - resolution: {integrity: sha512-7zShVYAYtMnj9S65CfN+hvpBCByfuB1OY8xID01nZEzXTZbx4YyysAfi+nMl95JSR6odt4q8TCj2W63KAoyVLQ==} + resolution: {integrity: sha1-JXYE6Va8fsP0jaIJyKflukRwovo=} engines: {node: '>=18'} get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + resolution: {integrity: sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=} engines: {node: 6.* || 8.* || >= 10.*} get-east-asian-width@1.3.0: - resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + resolution: {integrity: sha1-IbQHHuWO0E7g22UzcbVbQpmHU4k=} engines: {node: '>=18'} get-folder-size@5.0.0: - resolution: {integrity: sha512-+fgtvbL83tSDypEK+T411GDBQVQtxv+qtQgbV+HVa/TYubqDhNd5ghH/D6cOHY9iC5/88GtOZB7WI8PXy2A3bg==} + resolution: {integrity: sha1-VUokjsgxWHH4nUZyRPUrTJ+UzeE=} engines: {node: '>=18.11.0'} hasBin: true get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + resolution: {integrity: sha1-dD8OO2lkqTpUke0b/6rgVNf5jQE=} engines: {node: '>= 0.4'} get-own-enumerable-property-symbols@3.0.2: - resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + resolution: {integrity: sha1-tf3nfyLL4185C04ImSLFC85u9mQ=} get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + resolution: {integrity: sha1-jeLYA8/0TfO8bEVuZmizbDkm4Ro=} engines: {node: '>=8.0.0'} get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + resolution: {integrity: sha1-FQs/J0OGnvPoUewMSdFbHRTQDuE=} engines: {node: '>= 0.4'} get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + resolution: {integrity: sha1-wbJVV189wh1Zv8ec09K0axw6VLU=} engines: {node: '>=6'} get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + resolution: {integrity: sha1-SWaheV7lrOZecGxLe+txJX1uItM=} engines: {node: '>=8'} get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + resolution: {integrity: sha1-omLY7vZ6ztV8KFKtYWdSakPL97c=} engines: {node: '>=10'} get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + resolution: {integrity: sha1-e91U4L7+j/yfO04gMiDZ8eiBtu4=} engines: {node: '>= 0.4'} get-tsconfig@4.14.0: - resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} + resolution: {integrity: sha1-mF2FxSqZA4ZCgMzCRI1BP78e/tg=} get-uri@6.0.4: - resolution: {integrity: sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==} + resolution: {integrity: sha1-barunhL5dZ4Z5VujE5Vog+9Q4Kc=} engines: {node: '>= 14'} git-hooks-list@1.0.3: - resolution: {integrity: sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==} + resolution: {integrity: sha1-vluq94IDzjQvL4RKnSsD26G0UVY=} git-hooks-list@4.1.1: - resolution: {integrity: sha512-cmP497iLq54AZnv4YRAEMnEyQ1eIn4tGKbmswqwmFV4GBnAqE8NLtWxxdXa++AalfgL5EBH4IxTPyquEuGY/jA==} + resolution: {integrity: sha1-rjQLgqkxI1THO0gAfzOEC72D08A=} github-from-package@0.0.0: - resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + resolution: {integrity: sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=} glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + resolution: {integrity: sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=} engines: {node: '>= 6'} glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + resolution: {integrity: sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=} engines: {node: '>=10.13.0'} glob-to-regex.js@1.2.0: - resolution: {integrity: sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==} + resolution: {integrity: sha1-KzI3KCcdEzgwhQ4yMR9AdmxfZBM=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + resolution: {integrity: sha1-x1KXCHyFG5pXi9IX3VmpL1n+VG4=} glob@10.5.0: - resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + resolution: {integrity: sha1-jsA1WRnNMzjChCiiPU8k7MX+c4w=} 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==} + resolution: {integrity: sha1-T4JlduTrmcfa04N5PS+fCPZ+UKY=} 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==} + resolution: {integrity: sha1-B4ZmVmpCUUfMrPvS4zLetmor5x0=} engines: {node: 18 || 20 || >=22} glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + resolution: {integrity: sha1-uN8PuAK7+o6JvR2Ti04WV47UTys=} 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==} + resolution: {integrity: sha1-04j2Vlk+9wjuPjRkD9+5mp/Rwz4=} 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==} + resolution: {integrity: sha1-yi7YykUngaMAloVgf98CWomd/iE=} 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==} + resolution: {integrity: sha1-rnzTG9NYO5PFoWQ3oa/ifMM6GrY=} engines: {node: '>=10.0'} globals@17.7.0: - resolution: {integrity: sha512-Czmyns5dUsq4seFBR/Kdydhmo8y9kC79hiSkPn0YcGtNnYWnrgt0vjrSjx9tspoDGWm2CMarffRuLjM4xUz8xg==} + resolution: {integrity: sha1-VT1VCQtN3oIJ7C2kJYDW5+fYsQ0=} engines: {node: '>=18'} globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + resolution: {integrity: sha1-dDDtOpddl7+1m8zkH1yruvplEjY=} engines: {node: '>= 0.4'} globby@10.0.0: - resolution: {integrity: sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==} + resolution: {integrity: sha1-q/zQYwA3rhdKiFkBMsL2gE4pEHI=} engines: {node: '>=8'} globby@10.0.1: - resolution: {integrity: sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==} + resolution: {integrity: sha1-R4LDTLdd1oM1EzXFgpzDQg5gayI=} engines: {node: '>=8'} globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + resolution: {integrity: sha1-vUvpi7BC+D15b344EZkfvoKg00s=} engines: {node: '>=10'} globby@14.0.1: - resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} + resolution: {integrity: sha1-obRIQap/TG2K8rw5lREJ13MBlZs=} engines: {node: '>=18'} globby@14.1.0: - resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} + resolution: {integrity: sha1-E4t453z1qNeU4yexXc6Avx+wpz4=} engines: {node: '>=18'} gonzales-pe@4.3.0: - resolution: {integrity: sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==} + resolution: {integrity: sha1-/p3sXzxVfurQn/hoxlgmvlTQZ7M=} engines: {node: '>=0.6.0'} hasBin: true google-auth-library@9.15.1: - resolution: {integrity: sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==} + resolution: {integrity: sha1-DF2E7RiQsjdfHNdPA6x7gGs5KSg=} engines: {node: '>=14'} google-logging-utils@0.0.2: - resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==} + resolution: {integrity: sha1-X9g34G+jNNpFBDO54+GHDBWURmo=} engines: {node: '>=14'} googleapis-common@7.2.0: - resolution: {integrity: sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==} + resolution: {integrity: sha1-XBkQLJrx5dJ1YL5eae4sz2h1XUI=} engines: {node: '>=14.0.0'} googleapis@144.0.0: - resolution: {integrity: sha512-ELcWOXtJxjPX4vsKMh+7V+jZvgPwYMlEhQFiu2sa9Qmt5veX8nwXPksOWGGN6Zk4xCiLygUyaz7xGtcMO+Onxw==} + resolution: {integrity: sha1-lpr/Kb524wjqde5S8QmRr0yN3GM=} engines: {node: '>=14.0.0'} gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + resolution: {integrity: sha1-ifVrghe9vIgCvSmd9tfxCB1+UaE=} engines: {node: '>= 0.4'} got@11.8.6: - resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + resolution: {integrity: sha1-J26Cfq2Hcu3bz8lxcFkLhBgjIzo=} engines: {node: '>=10.19.0'} graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + resolution: {integrity: sha1-QYPk6L8Iu24Fu7L30uDI9xLKQOM=} graphlib@2.1.8: - resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} + resolution: {integrity: sha1-V2HUFHN4cAhMkux7XbywWSydNdo=} graphology-communities-louvain@2.0.2: - resolution: {integrity: sha512-zt+2hHVPYxjEquyecxWXoUoIuN/UvYzsvI7boDdMNz0rRvpESQ7+e+Ejv6wK7AThycbZXuQ6DkG8NPMCq6XwoA==} + resolution: {integrity: sha1-r+eqjc091co1Bibi9Ig2Jbuvo8c=} peerDependencies: graphology-types: '>=0.19.0' graphology-indices@0.17.0: - resolution: {integrity: sha512-A7RXuKQvdqSWOpn7ZVQo4S33O0vCfPBnUSf7FwE0zNCasqwZVUaCXePuWo5HBpWw68KJcwObZDHpFk6HKH6MYQ==} + resolution: {integrity: sha1-uTrTIWL/iwmBRUeu2xASSPD8vS4=} peerDependencies: graphology-types: '>=0.20.0' graphology-layout-forceatlas2@0.10.1: - resolution: {integrity: sha512-ogzBeF1FvWzjkikrIFwxhlZXvD2+wlY54lqhsrWprcdPjopM2J9HoMweUmIgwaTvY4bUYVimpSsOdvDv1gPRFQ==} + resolution: {integrity: sha1-dBhCE1YJ2C0S21pf33RnIGLCggU=} peerDependencies: graphology-types: '>=0.19.0' graphology-layout-noverlap@0.4.2: - resolution: {integrity: sha512-13WwZSx96zim6l1dfZONcqLh3oqyRcjIBsqz2c2iJ3ohgs3605IDWjldH41Gnhh462xGB1j6VGmuGhZ2FKISXA==} + resolution: {integrity: sha1-L/oFTO7rqjH8/+aV0nH8VXB80pw=} peerDependencies: graphology-types: '>=0.19.0' graphology-layout@0.6.1: - resolution: {integrity: sha512-m9aMvbd0uDPffUCFPng5ibRkb2pmfNvdKjQWeZrf71RS1aOoat5874+DcyNfMeCT4aQguKC7Lj9eCbqZj/h8Ag==} + resolution: {integrity: sha1-58HWXAIuM3sRyXfi0wq+QHagMn0=} peerDependencies: graphology-types: '>=0.19.0' graphology-metrics@2.4.0: - resolution: {integrity: sha512-7WOfOP+mFLCaTJx55Qg4eY+211vr1/b3D/R3biz3SXGhAaCVcWYkfabnmO4O4WBNWANEHtVnFrGgJ0kj6MM6xw==} + resolution: {integrity: sha1-MHJU9cWU9VWKmqEUfuSwssdnKDQ=} peerDependencies: graphology-types: '>=0.20.0' graphology-shortest-path@2.1.0: - resolution: {integrity: sha512-KbT9CTkP/u72vGEJzyRr24xFC7usI9Es3LMmCPHGwQ1KTsoZjxwA9lMKxfU0syvT/w+7fZUdB/Hu2wWYcJBm6Q==} + resolution: {integrity: sha1-tcWlaOfIayTL/SBC+dhPKlTgszE=} peerDependencies: graphology-types: '>=0.20.0' graphology-types@0.24.8: - resolution: {integrity: sha512-hDRKYXa8TsoZHjgEaysSRyPdT6uB78Ci8WnjgbStlQysz7xR52PInxNsmnB7IBOM1BhikxkNyCVEFgmPKnpx3Q==} + resolution: {integrity: sha1-KeQtH71h1lBHYMsxNekde+tOYEs=} graphology-utils@2.5.2: - resolution: {integrity: sha512-ckHg8MXrXJkOARk56ZaSCM1g1Wihe2d6iTmz1enGOz4W/l831MBCKSayeFQfowgF8wd+PQ4rlch/56Vs/VZLDQ==} + resolution: {integrity: sha1-TTDW5WfSfAHxBeFJSvgWdC6NJEA=} peerDependencies: graphology-types: '>=0.23.0' graphology@0.25.4: - resolution: {integrity: sha512-33g0Ol9nkWdD6ulw687viS8YJQBxqG5LWII6FI6nul0pq6iM2t5EKquOTFDbyTblRB3O9I+7KX4xI8u5ffekAQ==} + resolution: {integrity: sha1-5SimRVWsHzkqnZZTIa2lsrhD7+E=} peerDependencies: graphology-types: '>=0.24.0' gtoken@7.1.0: - resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} + resolution: {integrity: sha1-1htOvRATIiKBf3IiseYGS9Rj/CY=} engines: {node: '>=14.0.0'} guid-typescript@1.0.9: - resolution: {integrity: sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==} + resolution: {integrity: sha1-4193ADU1sCl+oIVI9azmrbFIDdw=} hachure-fill@0.5.2: - resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} + resolution: {integrity: sha1-0ZvEzIdQpZYrR/sTAFV6hfz5NMw=} handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + resolution: {integrity: sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=} handlebars@4.7.9: - resolution: {integrity: sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==} + resolution: {integrity: sha1-bxOQgqtY3E5aDlHv59ta6JDVag8=} engines: {node: '>=0.4.7'} hasBin: true has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + resolution: {integrity: sha1-KGB+llrJZ+A80qLHCiY2oe2tSf4=} engines: {node: '>= 0.4'} has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} engines: {node: '>=4'} has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + resolution: {integrity: sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=} engines: {node: '>=8'} has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + resolution: {integrity: sha1-lj7X0HHce/XwhMW/vg0bYiJYaFQ=} has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + resolution: {integrity: sha1-XeWm6r2V/f/ZgYtDBV6AZeOf6dU=} engines: {node: '>= 0.4'} has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + resolution: {integrity: sha1-/JxqeDoISVHQuXH+EBjegTcHozg=} engines: {node: '>= 0.4'} has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + resolution: {integrity: sha1-LNxC1AvvLltO6rfAGnPFTOerWrw=} engines: {node: '>= 0.4'} hasown@2.0.4: - resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} + resolution: {integrity: sha1-jGLYy5C+sqrV0KW2dYGtmFTD8AM=} engines: {node: '>= 0.4'} he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + resolution: {integrity: sha1-hK5l+n6vsWX922FWauFLrwVmTw8=} hasBin: true hexy@0.2.11: - resolution: {integrity: sha512-ciq6hFsSG/Bpt2DmrZJtv+56zpPdnq+NQ4ijEFrveKN0ZG1mhl/LdT1NQZ9se6ty1fACcI4d4vYqC9v8EYpH2A==} + resolution: {integrity: sha1-mTnCXLb4apEwLyK4qKclc1GOJbQ=} hasBin: true highlight.js@10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + resolution: {integrity: sha1-aXJy45kTVuQMPKxWanTu9oF1ZTE=} hono@4.12.25: - resolution: {integrity: sha512-2NFaIyNVgJmBs/ecmtGzlmluTFs5cHEWGTdu0t1HBwYzoGXOL5nUQBRMXsXWla5i4KkG//QMzVP88m1+I3fdAQ==} + resolution: {integrity: sha1-8tmZalToycDF9d4cjzqWLkOpjE4=} engines: {node: '>=16.9.0'} hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + resolution: {integrity: sha1-gnuChn6f8cjQxNnVOIA5fSyG0iQ=} engines: {node: '>=10'} hosted-git-info@7.0.2: - resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + resolution: {integrity: sha1-m3UaysCXdXZn8wEUYH73tmH/Txc=} engines: {node: ^16.14.0 || >=18.0.0} hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + resolution: {integrity: sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=} hpagent@1.2.0: - resolution: {integrity: sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==} + resolution: {integrity: sha1-CuQXiVQw6zdwwDRDRWuNkMpGSQM=} engines: {node: '>=14'} html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + resolution: {integrity: sha1-LLGozw21JBR3blsqegTV3ZgVjek=} engines: {node: '>=12'} html-encoding-sniffer@6.0.0: - resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==} + resolution: {integrity: sha1-+Nk5Czs0i1DU9hwW3S71wFmAqII=} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + resolution: {integrity: sha1-39YAJ9o2o238viNiYsAKWCJoFFM=} html-link-extractor@1.0.5: - resolution: {integrity: sha512-ADd49pudM157uWHwHQPUSX4ssMsvR/yHIswOR5CUfBdK9g9ZYGMhVSE6KZVHJ6kCkR0gH4htsfzU6zECDNVwyw==} + resolution: {integrity: sha1-pL40XLE7jDNS2CsoyLEku3v13W8=} html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} + resolution: {integrity: sha1-v8gYk0zAeRj2s2afV3Ts39SPMqs=} engines: {node: '>=12'} hasBin: true html-to-text@9.0.5: - resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} + resolution: {integrity: sha1-YUmg9hiueg24CF3Km7+W0yu4No0=} engines: {node: '>=14'} html-webpack-plugin@5.6.3: - resolution: {integrity: sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==} + resolution: {integrity: sha1-oxFF8P7kGE1Tp5T5UTFH3x5lNoU=} engines: {node: '>=10.13.0'} peerDependencies: '@rspack/core': 0.x || 1.x @@ -13418,49 +13436,49 @@ packages: optional: true htmlparser2@10.0.0: - resolution: {integrity: sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==} + resolution: {integrity: sha1-d60kkDe2a/jMmcbihu9zuDrrYh0=} htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + resolution: {integrity: sha1-xNditsM3GgXb5l6UrkOp+EX7j7c=} htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + resolution: {integrity: sha1-8AIVFwWzg+YkM7XPRm9bcW7a7CE=} http-assert@1.5.0: - resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} + resolution: {integrity: sha1-w4nM2HrBbtLfpiRv1zuSaqAOa48=} engines: {node: '>= 0.8'} http-cache-semantics@4.2.0: - resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} + resolution: {integrity: sha1-IF9Ntk+FYrdqT/kjWqUnmDmgndU=} http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + resolution: {integrity: sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=} http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + resolution: {integrity: sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=} engines: {node: '>= 0.6'} http-errors@1.8.1: - resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} + resolution: {integrity: sha1-fD8oV3y8iiBziEVdvWIpXtB71ow=} engines: {node: '>= 0.6'} http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + resolution: {integrity: sha1-t3dKFIbvc892Z6ya4IWMASxXudM=} engines: {node: '>= 0.8'} http-errors@2.0.1: - resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + resolution: {integrity: sha1-NtL2W8kJyHkAGN02+02T2myq4Gs=} engines: {node: '>= 0.8'} http-parser-js@0.5.10: - resolution: {integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==} + resolution: {integrity: sha1-syd71tftVYjiDqc79yT8vkRgkHU=} http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + resolution: {integrity: sha1-mosfJGhmwChQlIZYX2K48sGMJw4=} engines: {node: '>= 14'} http-proxy-middleware@2.0.10: - resolution: {integrity: sha512-RKzRWNPxUZqbuk3BC5mGVJbBnWgr+diEnjJexIOytFbBzDy88Fbh/YvBr3DsNrl1jYAfjWfpATEv0NO35FDuPQ==} + resolution: {integrity: sha1-st97cFID16jCaayEUM+WsAxTL5Q=} engines: {node: '>=12.0.0'} peerDependencies: '@types/express': ^4.17.13 @@ -13469,124 +13487,124 @@ packages: optional: true http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + resolution: {integrity: sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=} engines: {node: '>=8.0.0'} http2-wrapper@1.0.3: - resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + resolution: {integrity: sha1-uPVeDB8l1OvQizsMLAeflZCACz0=} engines: {node: '>=10.19.0'} https-proxy-agent@4.0.0: - resolution: {integrity: sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==} + resolution: {integrity: sha1-cCtx+1UgoTKmbeH2dUHZ5iFU2Cs=} engines: {node: '>= 6.0.0'} https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + resolution: {integrity: sha1-xZ7yJKBP6LdU89sAY6Jeow0ABdY=} engines: {node: '>= 6'} https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + resolution: {integrity: sha1-2o3+rH2hMLBcK6S1nJts1mYRprk=} engines: {node: '>= 14'} human-signals@1.1.1: - resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + resolution: {integrity: sha1-xbHNFPUK6uCatsWf5jujOV/k36M=} engines: {node: '>=8.12.0'} human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + resolution: {integrity: sha1-3JH8ukLk0G5Kuu0zs+ejwC9RTqA=} engines: {node: '>=10.17.0'} humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + resolution: {integrity: sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=} hyperdyperid@1.2.0: - resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + resolution: {integrity: sha1-WWaNMjrakiKNKoadPkdNWjO2nms=} engines: {node: '>=10.18'} iconv-corefoundation@1.1.7: - resolution: {integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==} + resolution: {integrity: sha1-MQZearLJJyFUyLCCEVHiyI8bACo=} engines: {node: ^8.11.2 || >=10} os: [darwin] iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + resolution: {integrity: sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=} engines: {node: '>=0.10.0'} iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + resolution: {integrity: sha1-pS+AvzjaGVLrXGgXkHGYcaGnJQE=} engines: {node: '>=0.10.0'} iconv-lite@0.7.2: - resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + resolution: {integrity: sha1-0L3qw/ErSDW3NZwq2JxCKk0cxy4=} engines: {node: '>=0.10.0'} ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + resolution: {integrity: sha1-jrehCmP/8l0VpXsAFYbRd9Gw01I=} ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + resolution: {integrity: sha1-PNQOcp82Q/2HywTlC/DrcivFlvU=} engines: {node: '>= 4'} ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + resolution: {integrity: sha1-TLX2zX1MerA2VzjHrqiIuqbX79k=} engines: {node: '>= 4'} image-size@0.5.5: - resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + resolution: {integrity: sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=} engines: {node: '>=0.10.0'} hasBin: true immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + resolution: {integrity: sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=} import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + resolution: {integrity: sha1-NxYsJfy566oublPVtNiM4X2eDCs=} engines: {node: '>=6'} import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + resolution: {integrity: sha1-tEed+KX9RPbNziQHBnVnYGPJXLQ=} engines: {node: '>=8'} hasBin: true import-local@3.2.0: - resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} + resolution: {integrity: sha1-w9XHRXmMAqb4uJdyarpRABhu4mA=} engines: {node: '>=8'} hasBin: true import-meta-resolve@4.2.0: - resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + resolution: {integrity: sha1-CMuFtb037MjrHg9nDcJ2cALUNzQ=} imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} engines: {node: '>=0.8.19'} indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + resolution: {integrity: sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=} engines: {node: '>=8'} indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + resolution: {integrity: sha1-T9KYD8yvhiLRTGTWlPTPM8gZUaU=} engines: {node: '>=12'} inflation@2.1.0: - resolution: {integrity: sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==} + resolution: {integrity: sha1-khTbEaR+b3VtERxPnflpccYPiGw=} engines: {node: '>= 0.8.0'} inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} 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: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=} inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + resolution: {integrity: sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=} ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + resolution: {integrity: sha1-op2kJbSIBvNHZ6Tvzjlyaa8oQyw=} ink@5.0.1: - resolution: {integrity: sha512-ae4AW/t8jlkj/6Ou21H2av0wxTk8vrGzXv+v2v7j4in+bl1M5XRMVbfNghzhBokV++FjF8RBDJvYo+ttR9YVRg==} + resolution: {integrity: sha1-8u+XlqORGDDDmV3t0ifshK4n3ks=} engines: {node: '>=18'} peerDependencies: '@types/react': '>=18.0.0' @@ -13599,409 +13617,409 @@ packages: optional: true internal-ip@6.2.0: - resolution: {integrity: sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg==} + resolution: {integrity: sha1-1VQeeXFuQGt0rGsHuFbvGNwWIcE=} engines: {node: '>=10'} internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + resolution: {integrity: sha1-HqyRdilH0vcFa8g42T4TsulgSWE=} engines: {node: '>= 0.4'} internmap@1.0.1: - resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} + resolution: {integrity: sha1-ABfMijuZYF8DAvKxmNJy4BXl35U=} internmap@2.0.3: - resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + resolution: {integrity: sha1-ZoXyN1XkPFJOJR0py8lySOMGEAk=} engines: {node: '>=12'} interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + resolution: {integrity: sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=} engines: {node: '>= 0.10'} interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + resolution: {integrity: sha1-W+DO7WfKecbEvFzw1+6EPc6hEMQ=} engines: {node: '>=10.13.0'} ip-address@10.1.0: - resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} + resolution: {integrity: sha1-2Nz/s00OAuskFCdESm4j9bBZWqQ=} engines: {node: '>= 12'} ip-address@10.2.0: - resolution: {integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==} + resolution: {integrity: sha1-gF/BeLIMUYvUyFSLJP4wiS1/MgY=} engines: {node: '>= 12'} ip-regex@4.3.0: - resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} + resolution: {integrity: sha1-aHJ1qw9X+naXj/j03dyKI9WZDbU=} engines: {node: '>=8'} ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + resolution: {integrity: sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=} engines: {node: '>= 0.10'} ipaddr.js@2.4.0: - resolution: {integrity: sha512-9VGk3HGanVE6JoZXHiCpnGy5X0jYDnN4EA4lntFPj+1vIWlFhIylq2CrrCOJH9EAhc5CYhq18F2Av2tgoAPsYQ==} + resolution: {integrity: sha1-A46c6vghnvxbt2NHt+t4eHXVCVs=} engines: {node: '>= 10'} is-absolute-url@4.0.1: - resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} + resolution: {integrity: sha1-FuTUh9T97QXP4GheU+yGgEpelNw=} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + resolution: {integrity: sha1-ZXQuHmh70sxmYlMGj9hwf+TUQoA=} engines: {node: '>= 0.4'} is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + resolution: {integrity: sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=} is-async-function@2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + resolution: {integrity: sha1-PmkBjI4E5ztzh5PQIL/ohLn9NSM=} engines: {node: '>= 0.4'} is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + resolution: {integrity: sha1-3aejRF31ekJYPbQihoLrp8QXBnI=} engines: {node: '>= 0.4'} is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + resolution: {integrity: sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=} engines: {node: '>=8'} is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + resolution: {integrity: sha1-cGf0dwmAmjk8cf9bs+E12KkhXZ4=} engines: {node: '>= 0.4'} is-buffer@1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + resolution: {integrity: sha1-76ouqdqg16suoTqXsritUf776L4=} is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + resolution: {integrity: sha1-O8KoXqdC2eNiBdys3XLKH9xRsFU=} engines: {node: '>= 0.4'} is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + resolution: {integrity: sha1-rQ11Msb+qdoevcgnQtdFJcYnM4Q=} is-core-module@2.16.2: - resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} + resolution: {integrity: sha1-PgdFCoCA684/vwysSU9NKrMk4II=} engines: {node: '>= 0.4'} is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + resolution: {integrity: sha1-uuCkG5aImGwhiN2mZX5WuPnmO44=} engines: {node: '>= 0.4'} is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + resolution: {integrity: sha1-rYVUGZb8eqiycpcB0ntzGfldgvc=} engines: {node: '>= 0.4'} is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + resolution: {integrity: sha1-M+6r4jz+hvFL3kQIoCwM+4U6zao=} engines: {node: '>=8'} hasBin: true is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + resolution: {integrity: sha1-kAk6oxBid9inelkQ265xdH4VogA=} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true is-expression@4.0.0: - resolution: {integrity: sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==} + resolution: {integrity: sha1-wzFVliq/IdCv0lUlFNZ9LsFv0qs=} is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + resolution: {integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=} engines: {node: '>=0.10.0'} is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} engines: {node: '>=0.10.0'} is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + resolution: {integrity: sha1-7v3NxslN3QZ02chYh7+T+USpfJA=} engines: {node: '>= 0.4'} is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + resolution: {integrity: sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=} engines: {node: '>=8'} is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + resolution: {integrity: sha1-+uMWfHKedGP4RhzlErCApJJoqog=} engines: {node: '>=12'} is-fullwidth-code-point@5.0.0: - resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + resolution: {integrity: sha1-lgnvztfC+X2ntgFF70gceHx7pwQ=} engines: {node: '>=18'} is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + resolution: {integrity: sha1-fRQK3DiarzARqPKipM+m+q3/sRg=} engines: {node: '>=6'} is-generator-function@1.1.2: - resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} + resolution: {integrity: sha1-rjth49XqTkg5uQutIrAjNQUaF9U=} engines: {node: '>= 0.4'} is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + resolution: {integrity: sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=} engines: {node: '>=0.10.0'} is-in-ci@0.1.0: - resolution: {integrity: sha512-d9PXLEY0v1iJ64xLiQMJ51J128EYHAaOR4yZqQi8aHGfw6KgifM3/Viw1oZZ1GCVmb3gBuyhLyHj0HgR2DhSXQ==} + resolution: {integrity: sha1-XgfWoC7DqCktP1kJczV++j/OsNM=} engines: {node: '>=18'} hasBin: true is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + resolution: {integrity: sha1-6B+6aZZi6zHb2vJnZqYdSBRxfqQ=} engines: {node: '>=14.16'} hasBin: true is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + resolution: {integrity: sha1-zqbmrlyHCnsKAAQHC3tYfgJSkS4=} engines: {node: '>=8'} is-interactive@2.0.0: - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + resolution: {integrity: sha1-QMV2FFk4JtoRAK3mBZd41ZfxbpA=} engines: {node: '>=12'} is-ip@3.1.0: - resolution: {integrity: sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==} + resolution: {integrity: sha1-KuXd+vrwXLgAimIJPPKXNPZXxdg=} engines: {node: '>=8'} is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + resolution: {integrity: sha1-7elrf+HicLPERl46RlZYdkkm1i4=} engines: {node: '>= 0.4'} is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + resolution: {integrity: sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=} is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + resolution: {integrity: sha1-ztkDoCespjgbd3pXQwadc3akl0c=} engines: {node: '>= 0.4'} is-network-error@1.3.2: - resolution: {integrity: sha512-PhBY86zaxNZUuWP6h13Vu5oFe0XY6/UlKzQnYFELzGVHygP3MxmvTfYSG7GN3aIab/iWudSMgjSnG9Dq+nHrgA==} + resolution: {integrity: sha1-lGC8MPhBmkvKdxFPTeiKPuXgxRk=} engines: {node: '>=16'} is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + resolution: {integrity: sha1-FEsh6VobwUggXcwoFKkTTsQbJUE=} engines: {node: '>= 0.4'} is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + resolution: {integrity: sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=} engines: {node: '>=0.12.0'} is-obj@1.0.1: - resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + resolution: {integrity: sha1-PkcprB9f3gJc19g6iW2rn09n2w8=} engines: {node: '>=0.10.0'} is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + resolution: {integrity: sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=} engines: {node: '>=8'} is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + resolution: {integrity: sha1-ReQuN/zPH0Dajl927iFRWEDAkoc=} engines: {node: '>=8'} is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + resolution: {integrity: sha1-r28uoUrFpkYYOlu9tbqrvBVq2dc=} engines: {node: '>=10'} is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + resolution: {integrity: sha1-1lAl7ew2V84DL9fbY8l4g+rtcfA=} engines: {node: '>=12'} is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + resolution: {integrity: sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=} engines: {node: '>=0.10.0'} is-plain-object@3.0.1: - resolution: {integrity: sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==} + resolution: {integrity: sha1-Zi2S0kwKpDAkB7DUXSHyJRyF+Fs=} engines: {node: '>=0.10.0'} is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + resolution: {integrity: sha1-Fx7W8Z46xVQ5Tt94yqBXhKRb67U=} is-promise@2.2.2: - resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + resolution: {integrity: sha1-OauVnMv5p3TPB597QMeib3YxNfE=} is-promise@4.0.0: - resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + resolution: {integrity: sha1-Qv+fhCBsGZHSbev1IN1cAQQt0vM=} is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + resolution: {integrity: sha1-dtcKPtEO+b5I61d4h9dCBb8MrSI=} engines: {node: '>= 0.4'} is-regexp@1.0.0: - resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + resolution: {integrity: sha1-/S2INUXEa6xaYz57mgnof6LLUGk=} engines: {node: '>=0.10.0'} is-relative-url@4.1.0: - resolution: {integrity: sha512-vhIXKasjAuxS7n+sdv7pJQykEAgS+YU8VBQOENXwo/VZpOHDgBBsIbHo7zFKaWBjYWF4qxERdhbPRRtFAeJKfg==} + resolution: {integrity: sha1-/o77Jhaycs8UHTyd6XYFlOU0U6c=} engines: {node: '>=14.16'} is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + resolution: {integrity: sha1-irIJ6kJGCBQTct7W4MsgDvHZ0B0=} engines: {node: '>= 0.4'} is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + resolution: {integrity: sha1-m2eES9m38ka6BwjDqT40Jpx3T28=} engines: {node: '>= 0.4'} is-stream@1.1.0: - resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + resolution: {integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ=} engines: {node: '>=0.10.0'} is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + resolution: {integrity: sha1-+sHj1TuXrVqdCunO8jifWBClwHc=} engines: {node: '>=8'} is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + resolution: {integrity: sha1-kuo/PVxbbgOcqGd+WsjQfqdzy7k=} engines: {node: '>= 0.4'} is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + resolution: {integrity: sha1-9HdhJ59TLisFpwJKdQbbvtrNBjQ=} engines: {node: '>= 0.4'} is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + resolution: {integrity: sha1-S/tKRbYc7oOlpG+6d45OjVnAzgs=} engines: {node: '>= 0.4'} is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + resolution: {integrity: sha1-PybHaoCVk7Ur+i7LVxDtJ3m1Iqc=} engines: {node: '>=10'} is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + resolution: {integrity: sha1-2CSYS2FsKSouGYIH1KYJmDhC9xQ=} engines: {node: '>=12'} is-unicode-supported@2.1.0: - resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + resolution: {integrity: sha1-CfCrDebTdE1I0mXruY9l0R8qmzo=} engines: {node: '>=18'} is-url-superb@4.0.0: - resolution: {integrity: sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==} + resolution: {integrity: sha1-tU0dJJm7FnknSKyWeqPstBozqMI=} engines: {node: '>=10'} is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + resolution: {integrity: sha1-v3JhXWSd/l9pkHnFS4PkfRrhnP0=} engines: {node: '>= 0.4'} is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + resolution: {integrity: sha1-7qQwGCvo1kF0vZa/+8RvIb8/kpM=} engines: {node: '>= 0.4'} is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + resolution: {integrity: sha1-yfXesLwZBsbW8QJ/KE3fRZJJ2so=} engines: {node: '>= 0.4'} is-what@3.14.1: - resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + resolution: {integrity: sha1-4SIvRt3ahd6tD9HJ3xMXYOd3VcE=} is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + resolution: {integrity: sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=} engines: {node: '>=8'} is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + resolution: {integrity: sha1-4cZX45wQCQr8vt7GFyD2uSTDy9I=} engines: {node: '>=16'} is-wsl@3.1.1: - resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} + resolution: {integrity: sha1-MniXsmgyo+sRfabCdJLQTKEyWU8=} engines: {node: '>=16'} isarray@0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + resolution: {integrity: sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=} isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + resolution: {integrity: sha1-ivHkwSISRMxiRZ+vOJQNTmRKVyM=} isbinaryfile@4.0.10: - resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + resolution: {integrity: sha1-DFteMMJVei8G/r03tzIpRqruQrM=} engines: {node: '>= 8.0.0'} isbinaryfile@5.0.0: - resolution: {integrity: sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg==} + resolution: {integrity: sha1-A0t+VJidq4mGWYy86kH2ZmPGUjQ=} engines: {node: '>= 14.0.0'} isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + resolution: {integrity: sha1-SkB+K9eN37FL6gwnxvcHLd53Xw0=} engines: {node: '>=16'} isexe@4.0.0: - resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} + resolution: {integrity: sha1-SPZXavjoehj+t5a37V4uWQO0Pco=} engines: {node: '>=20'} isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + resolution: {integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8=} engines: {node: '>=0.10.0'} isomorphic-ws@5.0.0: - resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} + resolution: {integrity: sha1-5VKRSJEuy5tFG0btRNU9rhzgS78=} peerDependencies: ws: '*' isomorphic.js@0.2.5: - resolution: {integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==} + resolution: {integrity: sha1-E+7PNvLbpT6F01XhG/nUIIxvf4g=} istanbul-lib-coverage@3.2.0: - resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + resolution: {integrity: sha1-GJ55CdCjn6Wj361bA/cZR3cBkdM=} engines: {node: '>=8'} istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + resolution: {integrity: sha1-0QyIhcISVXThwjHKyt+VVnXhzj0=} engines: {node: '>=8'} istanbul-lib-instrument@6.0.3: - resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + resolution: {integrity: sha1-+hVAHfbBWHS8shBfdzMl14xmZ2U=} engines: {node: '>=10'} istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + resolution: {integrity: sha1-kIMFusmlvRdaxqdEier9D8JEWn0=} engines: {node: '>=10'} istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + resolution: {integrity: sha1-iV86cJ/PujTG3lpCk5Ai8+Q1hVE=} engines: {node: '>=10'} istanbul-reports@3.1.6: - resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} + resolution: {integrity: sha1-JUS8q0doFUKBovCHBHGQJwTMqho=} engines: {node: '>=8'} istextorbinary@6.0.0: - resolution: {integrity: sha512-4j3UqQCa06GAf6QHlN3giz2EeFU7qc6Q5uB/aY7Gmb3xmLDLepDOtsZqkb4sCfJgFvTbLUinNw0kHgHs8XOHoQ==} + resolution: {integrity: sha1-vG51QQBrwgP+/+FmKNCnKJOyrVQ=} engines: {node: '>=10'} jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + resolution: {integrity: sha1-iDOp2Jq0rN5hiJQr0cU7Y5DtWoo=} jackspeak@4.1.1: - resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} + resolution: {integrity: sha1-lodgMPRQUCBH/H6Mf8+M6BJOQ64=} engines: {node: 20 || >=22} jake@10.8.7: - resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + resolution: {integrity: sha1-Y6MoIRd5QMM/NW4LpE/5004cfY8=} engines: {node: '>=10'} hasBin: true jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + resolution: {integrity: sha1-HAbQfnfHjhWF0CBCTe3BDW4XrDo=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-chrome@0.8.0: - resolution: {integrity: sha512-39RR1GT9nI4e4jsuH1vIf4l5ApxxkcstjGJr+GsOURL8f4Db0UlbRnsZaM+ZRniaGtokqklUH5VFKGZZ6YztUg==} + resolution: {integrity: sha1-90H1z0kpIybrmiUHERuad6AaSV0=} peerDependencies: jest: ^26.0.1 || ^27.0.0 jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + resolution: {integrity: sha1-toF6RfzINdixbVli0MAmRz7jZoo=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + resolution: {integrity: sha1-VZLJQHmODK5nfuwWkmTy2DmjeZU=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -14011,7 +14029,7 @@ packages: optional: true jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + resolution: {integrity: sha1-vL2ogG28wBseMWpGu3QIWoSwJF8=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@types/node': '*' @@ -14023,19 +14041,19 @@ packages: optional: true jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + resolution: {integrity: sha1-AXk0pm67fs9vIF6EaZvhCv1wRYo=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + resolution: {integrity: sha1-j922rcPNyVXJPiqH9hz9NQ1dEZo=} 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==} + resolution: {integrity: sha1-FiqbPyMovdmRvqq/+7dHReVld9E=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-environment-jsdom@29.7.0: - resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} + resolution: {integrity: sha1-0gb6NVGTPD/VGeXf21ig9ROag38=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: canvas: ^2.5.0 @@ -14044,35 +14062,35 @@ packages: optional: true jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + resolution: {integrity: sha1-C5PhEd2o7BILyDAObR+5V24WQ3Y=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + resolution: {integrity: sha1-NvSZ/c6hl8EEWhJzGcBIFyOQj9E=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + resolution: {integrity: sha1-PCOWUkSC9aBQY3bmyFjDu8wXsQQ=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + resolution: {integrity: sha1-W37A2t/f7Ayjg9yaoBbTa16kxyg=} 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==} + resolution: {integrity: sha1-ro/sef8kn9WSzoDj7kdOg6bETxI=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + resolution: {integrity: sha1-i8OS4gTpXf51ZKu+cqQE4o5R9/M=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + resolution: {integrity: sha1-ToNs9g6Zxvz6vp+Z0Bfz/dUKY0c=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + resolution: {integrity: sha1-kwsVRhZNStWTfVVA5xHU041MrS4=} engines: {node: '>=6'} peerDependencies: jest-resolve: '*' @@ -14081,51 +14099,51 @@ packages: optional: true jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + resolution: {integrity: sha1-SlVtnHdq9o4cX0gZT00DJ9JOilI=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + resolution: {integrity: sha1-GwTywJXzf8d2/0CAPckpIbHohCg=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + resolution: {integrity: sha1-ZNaomS3Sb2NasMAeXu9Dmca8vDA=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + resolution: {integrity: sha1-gJrwctQIpT3P0uhJpMl20xMvcY4=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + resolution: {integrity: sha1-7+yzFBz303Z6OgzI98mZBYfT2Bc=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + resolution: {integrity: sha1-wsV0w/UYZdobsykDZ3imm/iKa+U=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + resolution: {integrity: sha1-I8K2K/sivoK0TemAVYAv83EPwLw=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + resolution: {integrity: sha1-e/cFURxk2lkdRrFfzkFADVIUfZw=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + resolution: {integrity: sha1-eBDTDWGcOmIJMiPOa7NZyhsoovI=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + resolution: {integrity: sha1-jRRvCQDolzsQa29zzB6ajLhvjbA=} engines: {node: '>= 10.13.0'} jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + resolution: {integrity: sha1-rK0HOsu663JivVOJ4bz0PhAFjUo=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + resolution: {integrity: sha1-mUZ2/CQXfwiPHF43N/VpcgT/JhM=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -14135,44 +14153,44 @@ packages: optional: true jiti@2.7.0: - resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} + resolution: {integrity: sha1-l0Io8vTKK8IYhaF5e0X+po6VDGQ=} hasBin: true jju@1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + resolution: {integrity: sha1-o6vicYryQaKykE+EpiWXDzia4yo=} jose@5.10.0: - resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==} + resolution: {integrity: sha1-w3NGoJnWRnxAE1GpoMIWHg9SxL4=} jose@6.1.3: - resolution: {integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==} + resolution: {integrity: sha1-hFPXvoive7fWSgSB1qNaAUW6PqU=} js-stringify@1.0.2: - resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==} + resolution: {integrity: sha1-Fzb939lyTyijaCrcYjCufk6Weds=} js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + resolution: {integrity: sha1-GSA/tZmR35jjoocFDUZHzerzJJk=} js-yaml@3.15.0: - resolution: {integrity: sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==} + resolution: {integrity: sha1-WG5SFOr+Pok3VqQel5tQ2J0+Smc=} hasBin: true js-yaml@4.3.0: - resolution: {integrity: sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==} + resolution: {integrity: sha1-0ZAFcqf3zwtfVAyDZz5gutNDZZI=} hasBin: true jsbi@2.0.5: - resolution: {integrity: sha512-TzO/62Hxeb26QMb4IGlI/5X+QLr9Uqp1FPkwp2+KOICW+Q+vSuFj61c8pkT6wAns4WcK56X7CmSHhJeDGWOqxQ==} + resolution: {integrity: sha1-gliQEdqH3Fm0tUnZTc71GpFV9v4=} jscpd-sarif-reporter@4.2.5: - resolution: {integrity: sha512-O8LcM9grAS5yO5x1Q0yegYaYcUX//IEBEyvzGFSYCeo1YzHbMnAI6EK7oTrwD+7Csjvfg9m8B8G7OOxzcSlr9w==} + resolution: {integrity: sha1-IDPIPfmUWaZNQcGhn/7Msoq38Z0=} jscpd@4.2.5: - resolution: {integrity: sha512-KDpApYw1ChGelfHb7MwYTEx694OnW52pv3McAasidUV4ILcGDQMiVJzB+vI8ox+ZPVfOSvdXQCk8uRa9B0LXnw==} + resolution: {integrity: sha1-VKT0MeI49dobZg5TlRj1WkFc/ns=} hasBin: true jsdom@20.0.3: - resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + resolution: {integrity: sha1-iGpBuh1HJvZ6iFgCjJlIn+1q1Ns=} engines: {node: '>=14'} peerDependencies: canvas: ^2.5.0 @@ -14181,7 +14199,7 @@ packages: optional: true jsdom@28.1.0: - resolution: {integrity: sha512-0+MoQNYyr2rBHqO1xilltfDjV9G7ymYGlAUazgcDLQaUf8JDHbuGwsxN6U9qWaElZ4w1B2r7yEGIL3GdeW3Rug==} + resolution: {integrity: sha1-rEID5Y/STXsPNDWasA1tnK69S2I=} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} peerDependencies: canvas: ^3.0.0 @@ -14190,389 +14208,389 @@ packages: optional: true jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + resolution: {integrity: sha1-dNM1ojT2ftGZB/2t+sfM+dQJgl0=} engines: {node: '>=6'} hasBin: true json-bigint@1.0.0: - resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + resolution: {integrity: sha1-rlR4I6wMrYOYZn+M2e9HMPWwH/E=} json-bignum@0.0.3: - resolution: {integrity: sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==} + resolution: {integrity: sha1-QRY7UENsdz2CQk28IO1w23YEuNc=} engines: {node: '>=0.8'} json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + resolution: {integrity: sha1-kziAKjDTtmBfvgYT4JQAjKjAWhM=} json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + resolution: {integrity: sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=} json-parse-even-better-errors@3.0.2: - resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} + resolution: {integrity: sha1-tD016JwPO+a1+76dxsgkZ7MMKNo=} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} json-schema-to-ts@3.1.1: - resolution: {integrity: sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==} + resolution: {integrity: sha1-gfOsr1o0c2SS9vX1GHDvns4cqFM=} engines: {node: '>=16'} json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + resolution: {integrity: sha1-afaofZUTq4u4/mO9sJecRI5oRmA=} json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + resolution: {integrity: sha1-rnvLNlard6c7pcSb9lTzjmtoYOI=} json-schema-typed@8.0.2: - resolution: {integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==} + resolution: {integrity: sha1-6Y7nsYmf9KGEU00fFnwojGa77/Q=} json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=} json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + resolution: {integrity: sha1-eM1vGhm9wStz21rQxh79ZsHikoM=} engines: {node: '>=6'} hasBin: true jsonc-parser@3.2.1: - resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} + resolution: {integrity: sha1-AxkEVxzPkp12cO6MVHVFCByzfxo=} jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + resolution: {integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=} jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + resolution: {integrity: sha1-vFWyY0eTxnnsZAMJTrE2mKbsCq4=} jsonfile@6.2.0: - resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + resolution: {integrity: sha1-fCZb0bZd5pd0eDAAh8mfHIQ4P2I=} jsonpath@1.3.0: - resolution: {integrity: sha512-0kjkYHJBkAy50Z5QzArZ7udmvxrJzkpKYW27fiF//BrMY7TQibYLl+FYIXN2BiYmwMIVzSfD8aDRj6IzgBX2/w==} + resolution: {integrity: sha1-YjGXlw+0M4RcaAJL+eK4ZPU3arI=} jsonwebtoken@9.0.2: - resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} + resolution: {integrity: sha1-Zf+R9KvvF4RpfUCVK7GZjFBMqvM=} engines: {node: '>=12', npm: '>=6'} jstransformer@1.0.0: - resolution: {integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==} + resolution: {integrity: sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=} jsx-ast-utils-x@0.1.0: - resolution: {integrity: sha512-eQQBjBnsVtGacsG9uJNB8qOr3yA8rga4wAaGG1qRcBzSIvfhERLrWxMAM1hp5fcS6Abo8M4+bUBTekYR0qTPQw==} + resolution: {integrity: sha1-sJM9ZqaeCqGuI/dPuHsHnsKYZS8=} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} jszip@3.10.1: - resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + resolution: {integrity: sha1-NK7nDrGOofrsL1iSCKFX0f6wkcI=} jwa@1.4.2: - resolution: {integrity: sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==} + resolution: {integrity: sha1-FgEaxttI3nsQJ3fleJeQFSDux7k=} jwa@2.0.1: - resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} + resolution: {integrity: sha1-v4F20a0M1y4PP1gzhZWhPhELyAQ=} jws@3.2.3: - resolution: {integrity: sha512-byiJ0FLRdLdSVSReO/U4E7RoEyOCKnEnEPMjq3HxWtvzLsV08/i5RQKsFVNkCldrCaPr2vDNAOMsfs8T/Hze7g==} + resolution: {integrity: sha1-WsBpC0YJAKJyZd4kUgUmhTwLjKE=} jws@4.0.1: - resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} + resolution: {integrity: sha1-B+3Bvo+sIOZ3soPs4mFJi9OPBpA=} katex@0.16.22: - resolution: {integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==} + resolution: {integrity: sha1-0rPWZGSx5taeZGOyiobO1aAsXM0=} hasBin: true katex@0.16.45: - resolution: {integrity: sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA==} + resolution: {integrity: sha1-umDTnFR0a2uNOc4Of26s4HFDFJw=} hasBin: true keygrip@1.1.0: - resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} + resolution: {integrity: sha1-hxsWgdXhWcYqRFsMdLYV4JF+ciY=} engines: {node: '>= 0.6'} keytar@7.9.0: - resolution: {integrity: sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==} + resolution: {integrity: sha1-TGIlcI9RtQy/d8Wq6BchlkwpGMs=} keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + resolution: {integrity: sha1-qHmpnilFL5QkOfKkBeOvizHU3pM=} khroma@2.1.0: - resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} + resolution: {integrity: sha1-RfLOlM4jGkN89bY8LohubrQru7E=} kind-of@2.0.1: - resolution: {integrity: sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==} + resolution: {integrity: sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=} engines: {node: '>=0.10.0'} kind-of@3.2.2: - resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + resolution: {integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=} engines: {node: '>=0.10.0'} kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + resolution: {integrity: sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=} engines: {node: '>=0.10.0'} kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + resolution: {integrity: sha1-p5yezIbuHOP6YgbRIWxQHxR/wH4=} engines: {node: '>=6'} knip@6.24.0: - resolution: {integrity: sha512-PokLlgeEjLh1rAsB7ts+52wZ37HBr1nDhE6NNONwEaXdeZGCJOkP7ZlIAI2Gtu8xohquzTWy75bc/1diI9shQw==} + resolution: {integrity: sha1-h66MjDIs6sxjBWgyXcDsmMKuCUY=} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true koa-compose@4.1.0: - resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} + resolution: {integrity: sha1-UHMGuTcZAdtBEhyBLpI9DWfT6Hc=} koa-convert@2.0.0: - resolution: {integrity: sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==} + resolution: {integrity: sha1-hqDETYHUBVG64i/uZwmQRXPupPU=} engines: {node: '>= 10'} koa-etag@4.0.0: - resolution: {integrity: sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==} + resolution: {integrity: sha1-LCu3rmnKGsbO0Juijct4UjyBBBQ=} koa-send@5.0.1: - resolution: {integrity: sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==} + resolution: {integrity: sha1-Odzuv6+zldDWC+r/ujpwtPVD/nk=} engines: {node: '>= 8'} koa-static@5.0.0: - resolution: {integrity: sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==} + resolution: {integrity: sha1-XpL8lrU3rVIZ9CUxnJW2R3J3aUM=} engines: {node: '>= 7.6.0'} koa@2.16.4: - resolution: {integrity: sha512-3An0GCLDSR34tsCO4H8Tef8Pp2ngtaZDAZnsWJYelqXUK5wyiHvGItgK/xcSkmHLSTn1Jcho1mRQs2ehRzvKKw==} + resolution: {integrity: sha1-MDuZb1w/Kju3ccfbXkMD7gXyJl8=} engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4} koffi@2.11.0: - resolution: {integrity: sha512-AJ6MHz9Z8OIftKu322jrKJFvy/rZTdCD4b7F457WrK71rxYV7O5PSdWsJDN0p3rY1BZaPeLHVwyt4i2Xyk8wJg==} + resolution: {integrity: sha1-mDalb3J7iWt5FqhOeVQhfJVIxiQ=} launch-editor@2.14.1: - resolution: {integrity: sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==} + resolution: {integrity: sha1-9+DaP1iq6gP+oBB02EC19zntfdw=} layout-base@1.0.2: - resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} + resolution: {integrity: sha1-EpHilog8Miqd1MXdggY3IbU+JuI=} layout-base@2.0.1: - resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} + resolution: {integrity: sha1-0DN5E1hskPnCwHUpIGn1wtpd0oU=} lazy-cache@0.2.7: - resolution: {integrity: sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ==} + resolution: {integrity: sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=} engines: {node: '>=0.10.0'} lazy-cache@1.0.4: - resolution: {integrity: sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==} + resolution: {integrity: sha1-odePw6UEdMuAhF07O24dpJpEbo4=} engines: {node: '>=0.10.0'} lazy-val@1.0.5: - resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==} + resolution: {integrity: sha1-bPO59bwxzufuPjacCDK3WD3Nkj0=} lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + resolution: {integrity: sha1-SUyDEGLx+UCCUexE2xy6KSQqJjg=} engines: {node: '>= 0.6.3'} leac@0.6.0: - resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} + resolution: {integrity: sha1-3PE244LmZr0kdfRKEJYGG3DcCRI=} less@4.3.0: - resolution: {integrity: sha512-X9RyH9fvemArzfdP8Pi3irr7lor2Ok4rOttDXBhlwDg+wKQsXOXgHWduAJE1EsF7JJx0w0bcO6BC6tCKKYnXKA==} + resolution: {integrity: sha1-7wz8JgqcqAee2NDjUSvaihLILyo=} engines: {node: '>=14'} hasBin: true leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + resolution: {integrity: sha1-d4kd6DQGTMy6gq54QrtrFKE+1/I=} engines: {node: '>=6'} levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + resolution: {integrity: sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=} engines: {node: '>= 0.8.0'} lib0@0.2.108: - resolution: {integrity: sha512-+3eK/B0SqYoZiQu9fNk4VEc6EX8cb0Li96tPGKgugzoGj/OdRdREtuTLvUW+mtinoB2mFiJjSqOJBIaMkAGhxQ==} + resolution: {integrity: sha1-6OEH1oD0T1+Hm78/gpXMKuMVkn8=} engines: {node: '>=16'} hasBin: true lib0@0.2.117: - resolution: {integrity: sha512-DeXj9X5xDCjgKLU/7RR+/HQEVzuuEUiwldwOGsHK/sfAfELGWEyTcf0x+uOvCvK3O2zPmZePXWL85vtia6GyZw==} + resolution: {integrity: sha1-bD+SZHXSiQSvBbWQcDy7vClHVxY=} engines: {node: '>=16'} hasBin: true libbase64@1.3.0: - resolution: {integrity: sha512-GgOXd0Eo6phYgh0DJtjQ2tO8dc0IVINtZJeARPeiIJqge+HdsWSuaDTe8ztQ7j/cONByDZ3zeB325AHiv5O0dg==} + resolution: {integrity: sha1-BTMUdVoF0uXwi7/EjQKQ6TIvRAY=} libmime@5.3.7: - resolution: {integrity: sha512-FlDb3Wtha8P01kTL3P9M+ZDNDWPKPmKHWaU/cG/lg5pfuAwdflVpZE+wm9m7pKmC5ww6s+zTxBKS1p6yl3KpSw==} + resolution: {integrity: sha1-ODW2RD2YLVzRrDLuJBrbvBGzRAY=} libqp@2.1.1: - resolution: {integrity: sha512-0Wd+GPz1O134cP62YU2GTOPNA7Qgl09XwCqM5zpBv87ERCXdfDtyKXvV7c9U22yWJh44QZqBocFnXN11K96qow==} + resolution: {integrity: sha1-8b52elj5ZvUAWXmXyrcs/B4Xq/o=} lie@3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + resolution: {integrity: sha1-3Pgt7lRfRgdNryAMfBxaCOD0D2o=} lighthouse-logger@1.4.2: - resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} + resolution: {integrity: sha1-rvkPnpfNgds2fHY0KS7iIHkoCqo=} lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + resolution: {integrity: sha1-obz9Ylf5WFv1rhTO7rt7VZAl5MQ=} engines: {node: '>=14'} lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + resolution: {integrity: sha1-7KKE910pZQeTCdwK2SVauy68FjI=} lines-and-columns@2.0.4: - resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} + resolution: {integrity: sha1-0AMYhVkF0mYNjAgi4/WkcVhV/EI=} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} link-check@5.5.1: - resolution: {integrity: sha512-GrtE4Zp/FBduvElmad375NrPeMYnKwNt9rH/TDG/rbQbHL0QVC4S/cEPVKZ0CkhXlVuiK+/5flGpRxQzoLbjEA==} + resolution: {integrity: sha1-8XIJZYSn7UOok2qNWGmkOod75qA=} linkify-it@5.0.0: - resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + resolution: {integrity: sha1-nvI4v6bccL2Of5VytS02mvVptCE=} linkify-it@5.0.2: - resolution: {integrity: sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==} + resolution: {integrity: sha1-074KaTrz2p3ziD8eNGoOl0YajBk=} lit-element@4.2.2: - resolution: {integrity: sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==} + resolution: {integrity: sha1-90/L++qUXq5WFOziKmdPpSyjNls=} lit-html@3.3.2: - resolution: {integrity: sha512-Qy9hU88zcmaxBXcc10ZpdK7cOLXvXpRoBxERdtqV9QOrfpMZZ6pSYP91LhpPtap3sFMUiL7Tw2RImbe0Al2/kw==} + resolution: {integrity: sha1-TbEf2/mPyKDF6r2bHn0IjTuyAaI=} lit@3.3.2: - resolution: {integrity: sha512-NF9zbsP79l4ao2SNrH3NkfmFgN/hBYSQo90saIVI1o5GpjAdCPVstVzO1MrLOakHoEhYkrtRjPK6Ob521aoYWQ==} + resolution: {integrity: sha1-2SMOu/I3v9PSCRvAtWxXakcKxNc=} loader-runner@4.3.1: - resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} + resolution: {integrity: sha1-bHbtKbDMzprzeSCCmfB/h23nN+M=} engines: {node: '>=6.11.5'} locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + resolution: {integrity: sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=} engines: {node: '>=8'} locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + resolution: {integrity: sha1-VTIeswn+u8WcSAHZMackUqaB0oY=} engines: {node: '>=10'} locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + resolution: {integrity: sha1-acsXeb2Qs1qx53Hh8viaICwqioo=} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} lodash-es@4.18.1: - resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==} + resolution: {integrity: sha1-uWLuuA2dmDqQC/NClh+3QYyhCx0=} lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + resolution: {integrity: sha1-soqmKIorn8ZRA1x3EfZathkDMaY=} lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + resolution: {integrity: sha1-gteb/zCmfEAF/9XiUVMArZyk168=} lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + resolution: {integrity: sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=} lodash.difference@4.5.0: - resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + resolution: {integrity: sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=} lodash.escaperegexp@4.1.2: - resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + resolution: {integrity: sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=} lodash.flatten@4.4.0: - resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} + resolution: {integrity: sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=} lodash.includes@4.3.0: - resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + resolution: {integrity: sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=} lodash.isboolean@3.0.3: - resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + resolution: {integrity: sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=} lodash.isequal@4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + resolution: {integrity: sha1-QVxEePK8wwEgwizhDtMib30+GOA=} deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. lodash.isinteger@4.0.4: - resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + resolution: {integrity: sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=} lodash.isnumber@3.0.3: - resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + resolution: {integrity: sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=} lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + resolution: {integrity: sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=} lodash.isstring@4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + resolution: {integrity: sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=} lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + resolution: {integrity: sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=} lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + resolution: {integrity: sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=} lodash.once@4.1.1: - resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + resolution: {integrity: sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=} lodash.throttle@4.1.1: - resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + resolution: {integrity: sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=} lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=} lodash.union@4.6.0: - resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} + resolution: {integrity: sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=} lodash@4.18.1: - resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} + resolution: {integrity: sha1-/ytmwfYybVlRPeJAe/iBQ5gSdxw=} log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + resolution: {integrity: sha1-P727lbRoOsn8eFER55LlWNSr1QM=} engines: {node: '>=10'} log-symbols@6.0.0: - resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + resolution: {integrity: sha1-u5Xl8FMiZRysMMD+tkBPnyqKlDk=} engines: {node: '>=18'} log-update@4.0.0: - resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + resolution: {integrity: sha1-WJ7NNSRx8qHAxXAodUOmTf0g4KE=} engines: {node: '>=10'} long@4.0.0: - resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} + resolution: {integrity: sha1-mntxz7fTYaGU6lVSQckvdGjVvyg=} long@5.3.2: - resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} + resolution: {integrity: sha1-HYRGMJWZkmLX17f4v9SozFUWf4M=} longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + resolution: {integrity: sha1-YvpnzZWHQqFXSvnzmGY2QQLZDNQ=} loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + resolution: {integrity: sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=} hasBin: true lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + resolution: {integrity: sha1-b6I3xj29xKgsoP2ILkci3F5jTig=} lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + resolution: {integrity: sha1-JgPni3tLAAbLyi+8yKMgJVislHk=} engines: {node: '>=8'} lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + resolution: {integrity: sha1-QQ/IoXtw5ZgBPfJXwkRrfzOD8Rk=} lru-cache@11.2.7: - resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} + resolution: {integrity: sha1-kSdAJhfzTNZ2e5ba7pjCjnRFjTU=} engines: {node: 20 || >=22} lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + resolution: {integrity: sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=} lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + resolution: {integrity: sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=} engines: {node: '>=10'} lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + resolution: {integrity: sha1-95OJbg/Q6VSlnf3YLwdzgI32qok=} engines: {node: '>=12'} lru-cache@8.0.5: - resolution: {integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==} + resolution: {integrity: sha1-mD/jN/PhdmZ/jlZ8/M58sGTqIU4=} engines: {node: '>=16.14'} madge@8.0.0: - resolution: {integrity: sha512-9sSsi3TBPhmkTCIpVQF0SPiChj1L7Rq9kU2KDG1o6v2XH9cCw086MopjVCD+vuoL5v8S77DTbVopTO8OUiQpIw==} + resolution: {integrity: sha1-zKSrZvs4jntr9DwfeNyqs8rTD1A=} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -14582,410 +14600,410 @@ packages: optional: true magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + resolution: {integrity: sha1-RQpElnPSRg5bvPupphkWoXFMdFM=} magic-string@0.30.21: - resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + resolution: {integrity: sha1-VnY+wJoPqAkd8nh5/ZTRkHjADZE=} mailparser@3.9.6: - resolution: {integrity: sha512-EJYTDWMrOS1kddK1mTsRkrx2Ngh2nYsg54SRMWVVWGVEGbHH4tod8tqqU9hIRPgGQVboSjFubDn9cboSitbM3Q==} + resolution: {integrity: sha1-cmSgWfM3tyGu82QiDSXkVNRUTcs=} make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + resolution: {integrity: sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=} engines: {node: '>=6'} make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + resolution: {integrity: sha1-w8IwencSd82WODBfkVwprnQbYU4=} engines: {node: '>=10'} make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + resolution: {integrity: sha1-LrLjfqm2fEiR9oShOUeZr0hM96I=} makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + resolution: {integrity: sha1-Pl3SB5qC6BLpg8xmEMSiyw6qgBo=} map-stream@0.1.0: - resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} + resolution: {integrity: sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=} markdown-it-texmath@1.0.0: - resolution: {integrity: sha512-4hhkiX8/gus+6e53PLCUmUrsa6ZWGgJW2XCW6O0ASvZUiezIK900ZicinTDtG3kAO2kon7oUA/ReWmpW2FByxg==} + resolution: {integrity: sha1-ZXA7I10HqPlrxYy/nUeK9XFU5fA=} markdown-it@14.2.0: - resolution: {integrity: sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ==} + resolution: {integrity: sha1-BtSNkDXnfVscha2zFUgvyCQCie8=} hasBin: true markdown-link-check@3.14.2: - resolution: {integrity: sha512-DPJ+itd3D5fcfXD5s1i53lugH0Z/h80kkQxlYCBh8tFwEZGhyVgDcLl0rnKlWssAVDAmSmcbePpHpMEY+JcMMQ==} + resolution: {integrity: sha1-VoPfsDnYxlgRejlQ9PqsnGd04Pg=} hasBin: true markdown-link-extractor@4.0.3: - resolution: {integrity: sha512-aEltJiQ4/oC0h6Jbw/uuATGSHZPkcH8DIunNH1A0e+GSFkvZ6BbBkdvBTVfIV8r6HapCU3yTd0eFdi3ZeM1eAQ==} + resolution: {integrity: sha1-S8oCVcWD8Bex8M6FfVoa9Wr5msQ=} markdown-table@2.0.0: - resolution: {integrity: sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==} + resolution: {integrity: sha1-GUqQztJtMf51PYuUNEMCFMARhls=} markdown-table@3.0.4: - resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + resolution: {integrity: sha1-/kTW1BD/nW8uoXl6P2CqTStjHCo=} marked-terminal@7.3.0: - resolution: {integrity: sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==} + resolution: {integrity: sha1-eoYjZWXz3VMPRl/86cP4ti7ycOg=} engines: {node: '>=16.0.0'} peerDependencies: marked: '>=1 <16' marked@15.0.12: - resolution: {integrity: sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==} + resolution: {integrity: sha1-MHIsc0bhLQotAgermwxPAQLYbE4=} engines: {node: '>= 18'} hasBin: true marked@16.0.0: - resolution: {integrity: sha512-MUKMXDjsD/eptB7GPzxo4xcnLS6oo7/RHimUMHEDRhUooPwmN9BEpMl7AEOJv3bmso169wHI2wUF9VQgL7zfmA==} + resolution: {integrity: sha1-DEjnl4LyYiT4zjSHhkTYwyCtWZ8=} engines: {node: '>= 20'} hasBin: true marked@16.4.2: - resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==} + resolution: {integrity: sha1-SVmmS+bEhvDbdGfq184ojeVCkKM=} engines: {node: '>= 20'} hasBin: true marked@17.0.6: - resolution: {integrity: sha512-gB0gkNafnonOw0obSTEGZTT86IuhILt2Wfx0mWH/1Au83kybTayroZ/V6nS25mN7u8ASy+5fMhgB3XPNrOZdmA==} + resolution: {integrity: sha1-KpdYaictO+WIDxmOAgt0rSfPhro=} engines: {node: '>= 20'} hasBin: true marky@1.3.0: - resolution: {integrity: sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==} + resolution: {integrity: sha1-QitjsLr2UCLwLtphojjszbvBSZc=} matcher@3.0.0: - resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + resolution: {integrity: sha1-vZBg9MW3CqgEHMxvgDaHYJlPMMo=} engines: {node: '>=10'} math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + resolution: {integrity: sha1-oN10voHiqlwvJ+Zc4oNgXuTit/k=} engines: {node: '>= 0.4'} mdast-util-definitions@6.0.0: - resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} + resolution: {integrity: sha1-wbtwbl52u5P5oJ3XrxdAAq5prCQ=} mdast-util-find-and-replace@3.0.2: - resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + resolution: {integrity: sha1-cKMXTIlOFN9yKr9DvCUMuuRLEd8=} mdast-util-from-markdown@2.0.2: - resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + resolution: {integrity: sha1-SFA5DKfPF0E6m5oPvvzRvA60Fgo=} mdast-util-gfm-autolink-literal@2.0.1: - resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + resolution: {integrity: sha1-q9VXYwM3vTCm1aS9glLhwtwIddU=} mdast-util-gfm-footnote@2.1.0: - resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + resolution: {integrity: sha1-d3jp2co99yOMwr0/orG/amWxlAM=} mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + resolution: {integrity: sha1-1E756O0oOsjBFlqw0N/QWMJ2TBY=} mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + resolution: {integrity: sha1-ekNftiI6crCGKzOvvXErba6HjTg=} mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + resolution: {integrity: sha1-5oCV0vikMD7yQJSrZC4QR7mRqTY=} mdast-util-gfm@3.1.0: - resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + resolution: {integrity: sha1-LN9juSwqMxQGsPsNtMB3wbAzF1E=} mdast-util-math@3.0.0: - resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==} + resolution: {integrity: sha1-jXndO6+KuKx4H2K4hTdoGQuaALA=} mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + resolution: {integrity: sha1-fMCo3sMOrwS3salmGpKtszgqpuM=} mdast-util-to-markdown@2.1.2: - resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + resolution: {integrity: sha1-+RD/5giX8Eu0t+fuQ0SG92KINhs=} mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + resolution: {integrity: sha1-elEhR1VWoE5+3etnsmSq550xKBQ=} mdn-data@2.27.1: - resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} + resolution: {integrity: sha1-43ucUIgLdTZsTUCsY9m7ys22Hw4=} mdurl@2.0.0: - resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + resolution: {integrity: sha1-gGduwEMwJd0+F+6YPQ/o3loiN+A=} media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=} engines: {node: '>= 0.6'} media-typer@1.1.0: - resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + resolution: {integrity: sha1-ardLjy0zIPIGSyqHo455Mf86VWE=} engines: {node: '>= 0.8'} memfs@4.57.7: - resolution: {integrity: sha512-YZPphUQZSRGk6ddPlsNuMbztrLwsbUATFNZcqKscSbSJZ4g0+Y3vSZLJ/rfnGZaB1FFhC7SrywZXev6i8lnHgg==} + resolution: {integrity: sha1-uti8FoDYtTSdpldbCVd5lW9ribA=} peerDependencies: tslib: '2' memory-pager@1.5.0: - resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} + resolution: {integrity: sha1-2HUWVdItOEaCdByXLyw9bfo+ZrU=} merge-deep@3.0.3: - resolution: {integrity: sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==} + resolution: {integrity: sha1-Gisq6SbaiyrpOgrBXZDNGSJ2YAM=} engines: {node: '>=0.10.0'} merge-descriptors@1.0.3: - resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + resolution: {integrity: sha1-2AMZpl88eTU1Hlz9rI+TGFBNvtU=} merge-descriptors@2.0.0: - resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} + resolution: {integrity: sha1-6pIvZgY1oiSe5WXgRJ+VHmtgOAg=} engines: {node: '>=18'} merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + resolution: {integrity: sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=} merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + resolution: {integrity: sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=} engines: {node: '>= 8'} mermaid@11.15.0: - resolution: {integrity: sha512-pTMbcf3rWdtLiYGpmoTjHEpeY8seiy6sR+9nD7LOs8KfUbHE4lOUAprTRqRAcWSQ6MQpdX+YEsxShtGsINtPtw==} + resolution: {integrity: sha1-tIXBPqXh508zKMS7AEJ72of6HB4=} methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + resolution: {integrity: sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=} engines: {node: '>= 0.6'} mic@2.1.2: - resolution: {integrity: sha512-rpl4tgdXX24sAzYwjRc5OZfGNAuhUIIjdd0cw8+Ubq7rp3iGhi40AdqcwurDWhEZADk60tPOxb3E2MpoeLeyxw==} + resolution: {integrity: sha1-8DQoOBeY/4iakEBaAxgVHbBUpO0=} micromark-core-commonmark@2.0.3: - resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + resolution: {integrity: sha1-xpFjDkhQIaaM8o28Kyyifr9njNQ=} micromark-extension-gfm-autolink-literal@2.1.0: - resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + resolution: {integrity: sha1-Yoau6WhsRGLB41UqnVBf7dzuuTU=} micromark-extension-gfm-footnote@2.1.0: - resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + resolution: {integrity: sha1-TatW1OOYuYU/b+TvrE/JNh8+B1A=} micromark-extension-gfm-strikethrough@2.1.0: - resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + resolution: {integrity: sha1-hhBt+LOmkrX2qSKA04eb5r5G2SM=} micromark-extension-gfm-table@2.1.1: - resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + resolution: {integrity: sha1-+scLy/Uf5l9fRAMxGNOb6Km1lAs=} micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + resolution: {integrity: sha1-8m2KeAe1mF+6E89hRltYyl/33Fc=} micromark-extension-gfm-task-list-item@2.1.0: - resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + resolution: {integrity: sha1-vMNNgFY5gpmQ7BdcPuoSu1t4Hyw=} micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + resolution: {integrity: sha1-PhM3arld16XP0OKVYN/pmWV7PFs=} micromark-extension-math@3.1.0: - resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==} + resolution: {integrity: sha1-xC7jsd1amgNYToPdjwjj3lECEsE=} micromark-factory-destination@2.0.1: - resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + resolution: {integrity: sha1-j++OD3CB8EdPvdkt61DJkKAmRjk=} micromark-factory-label@2.0.1: - resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + resolution: {integrity: sha1-UmfvqX8eUlTvx/ILRZo4yyEFi6E=} micromark-factory-space@2.0.1: - resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + resolution: {integrity: sha1-NtAhLpYrKzEh+FJfx6PHwCnzNPw=} micromark-factory-title@2.0.1: - resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + resolution: {integrity: sha1-I35KpdWKlYY/AQMtnumwkPHebpQ=} micromark-factory-whitespace@2.0.1: - resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + resolution: {integrity: sha1-BrJrKYPE0nv8xlezPiUTTUhosLE=} micromark-util-character@2.1.1: - resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + resolution: {integrity: sha1-L5h4MaQNTFEKwmHomFLE6XA8zaY=} micromark-util-chunked@2.0.1: - resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + resolution: {integrity: sha1-R/vNk0caP8yrhs/wOEf8NVLbEFE=} micromark-util-classify-character@2.0.1: - resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + resolution: {integrity: sha1-05n6+cRcoUyLS+mLHqSBvO2Htik=} micromark-util-combine-extensions@2.0.1: - resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + resolution: {integrity: sha1-Kg9JCrCL/1zC/V7sbdDKBPibMKk=} micromark-util-decode-numeric-character-reference@2.0.2: - resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + resolution: {integrity: sha1-/PFbZgl5OI5vEYzba/fXnXPSb+U=} micromark-util-decode-string@2.0.1: - resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + resolution: {integrity: sha1-bLmVguXScehO/KjmGoB5lNcWHrI=} micromark-util-encode@2.0.1: - resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + resolution: {integrity: sha1-DVHRwJVVHPqsNoMmljz1XxX1QLg=} micromark-util-html-tag-name@2.0.1: - resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + resolution: {integrity: sha1-5AQDCWSBmGtBwQZif5j3LU0QuCU=} micromark-util-normalize-identifier@2.0.1: - resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + resolution: {integrity: sha1-ww13sugyrPZSb4vxqke8nJQ4wW0=} micromark-util-resolve-all@2.0.1: - resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + resolution: {integrity: sha1-4aLWLN0jcjCirhGDkCexk4HjHos=} micromark-util-sanitize-uri@2.0.1: - resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + resolution: {integrity: sha1-q4l4m4GKWHUrc9a1UjhiG3+qj9c=} micromark-util-subtokenize@2.1.0: - resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + resolution: {integrity: sha1-2K3lug8xl6HPaimZ+7/mNXoaGe4=} micromark-util-symbol@2.0.1: - resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + resolution: {integrity: sha1-5dpJTo6ysHGg0I+zT2zv7GwKGbg=} micromark-util-types@2.0.2: - resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + resolution: {integrity: sha1-8AIl9fWg68MlT5bDa2YFxLOTkI4=} micromark@4.0.2: - resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + resolution: {integrity: sha1-kTlaPhiEoZjmIRbjPJxWjjmTb9s=} micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + resolution: {integrity: sha1-1m+hjzpHB2eJMgubGvMr2G2fogI=} engines: {node: '>=8.6'} microsoft-cognitiveservices-speech-sdk@1.43.1: - resolution: {integrity: sha512-xO/rlhNSodzCNBtlA3edXDO0+8Q2tMG96nNsjE0JiyAR4Ul/qsZtM4iggTSi+Zax3JtYzrH7W+7349vdpJNaTA==} + resolution: {integrity: sha1-QWVkDgBMTUE9HrSiVeTeRrxad4s=} mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + resolution: {integrity: sha1-u6vNwChZ9JhzAchW4zh85exDv3A=} engines: {node: '>= 0.6'} mime-db@1.54.0: - resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + resolution: {integrity: sha1-zds+5PnGRTDf9kAjZmHULLajFPU=} engines: {node: '>= 0.6'} mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + resolution: {integrity: sha1-OBqHG2KnNEUGYK497uRIE/cNlZo=} engines: {node: '>= 0.6'} mime-types@3.0.2: - resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} + resolution: {integrity: sha1-OQAtQYJXXVrwNv+hGBAPJSSy4qs=} engines: {node: '>=18'} mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + resolution: {integrity: sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=} engines: {node: '>=4'} hasBin: true mime@2.6.0: - resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + resolution: {integrity: sha1-oqaCqVzU0MsdYlfij4PafjWAA2c=} engines: {node: '>=4.0.0'} hasBin: true mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + resolution: {integrity: sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=} engines: {node: '>=6'} mimic-function@5.0.1: - resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + resolution: {integrity: sha1-rL4rM0n5m53qyn+3Dki4PpTmcHY=} engines: {node: '>=18'} mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + resolution: {integrity: sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=} engines: {node: '>=4'} mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + resolution: {integrity: sha1-LR1Zr5wbEpgVrMwsRqAipc4fo8k=} engines: {node: '>=10'} minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + resolution: {integrity: sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=} minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + resolution: {integrity: sha1-Rls6zL0CGLgoH1MB4nztxpf5b94=} engines: {node: 18 || 20 || >=22} minimatch@10.2.5: - resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + resolution: {integrity: sha1-vUhoegvjjtKWE5kQVgD4MglYYdE=} engines: {node: 18 || 20 || >=22} minimatch@3.1.5: - resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + resolution: {integrity: sha1-WAyI+NVEXyvWqo88re+g3nn71p4=} minimatch@5.1.9: - resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} + resolution: {integrity: sha1-EpPvFdsAmLOUVA6Pn3RPn9qN7ks=} engines: {node: '>=10'} minimatch@8.0.7: - resolution: {integrity: sha512-V+1uQNdzybxa14e/p00HZnQNNcTjnRJjDxg2V8wtkjFctq4M7hXFws4oekyTP0Jebeq7QYtpFyOeBAjc88zvYg==} + resolution: {integrity: sha1-lUdm4i2oij4KF62TtYwVydiled4=} engines: {node: '>=16 || 14 >=14.17'} minimatch@9.0.9: - resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} + resolution: {integrity: sha1-mwy5/LeAh/b9fqur4lEcTT1gV04=} engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + resolution: {integrity: sha1-waRk52kzAuCCoHXO4MBXdBrEdyw=} minipass@4.2.8: - resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + resolution: {integrity: sha1-8AEPZDk+z8HRzLX1gryvRfSOGjo=} engines: {node: '>=8'} minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + resolution: {integrity: sha1-k6libOXl5mvU24aEnnUV6SNApwc=} engines: {node: '>=16 || 14 >=14.17'} minipass@7.1.3: - resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + resolution: {integrity: sha1-eTibTrG7LQA6m7qH1JLyvTe9xls=} engines: {node: '>=16 || 14 >=14.17'} minizlib@3.1.0: - resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + resolution: {integrity: sha1-atdsOo8QInybUdHJrI4wsn9aJRw=} engines: {node: '>= 18'} mitt@3.0.1: - resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + resolution: {integrity: sha1-6jbPDMMEA2Aa4HTI93twks2rNtE=} mixin-object@2.0.1: - resolution: {integrity: sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==} + resolution: {integrity: sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=} engines: {node: '>=0.10.0'} mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + resolution: {integrity: sha1-+hDJEVzG2IZb4iG6R+6b7XhgERM=} mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + resolution: {integrity: sha1-fe8D0kMtyuS6HWEURcSDlgYiVfY=} hasBin: true mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + resolution: {integrity: sha1-PrXtYmInVteaXw4qIh3+utdcL34=} engines: {node: '>=10'} hasBin: true mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + resolution: {integrity: sha1-5E5MVgf7J5wWgkFxPMbg/qmty1A=} engines: {node: '>=10'} hasBin: true mnemonist@0.39.8: - resolution: {integrity: sha512-vyWo2K3fjrUw8YeeZ1zF0fy6Mu59RHokURlld8ymdUPjMlD9EC9ov1/YPqTgqRvUN9nTr3Gqfz29LYAmu0PHPQ==} + resolution: {integrity: sha1-kHjNg4YIGv2YbMo0tStdhOp6TTg=} mocha@10.8.2: - resolution: {integrity: sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==} + resolution: {integrity: sha1-jYNC0BbtQRsSpCnrcxuCX5Ya+5Y=} engines: {node: '>= 14.0.0'} hasBin: true mocha@11.7.5: - resolution: {integrity: sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig==} + resolution: {integrity: sha1-WPW7+l4CEc5+XuYSgQfO/CUVpic=} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true module-definition@6.0.2: - resolution: {integrity: sha512-SvAU3lB0+Yjbq55yHY3wkRZBOh+fhU1SnIF3IFbTewv6mtAh7yUT8ACHAJ2mGIJ7tCes2QuCL/cl6m0JSZ/ArA==} + resolution: {integrity: sha1-1yo2E9v2/nJH6+9k8R/dws0YuDs=} engines: {node: '>=18'} hasBin: true module-lookup-amd@9.1.3: - resolution: {integrity: sha512-Jc3XmOaR9FdfMJSK8+vyLgsCkzm8z2L0NS6vrlRWi12DjS7MY7TMNE7E1yj8yXx837xtMDbKSSgcdXnFlJ2YLg==} + resolution: {integrity: sha1-maPDow/wSYxpS6H25N4SY6ceVVE=} engines: {node: '>=18'} hasBin: true mongodb-connection-string-url@3.0.0: - resolution: {integrity: sha512-t1Vf+m1I5hC2M5RJx/7AtxgABy1cZmIPQRMXw+gEIPn/cZNF3Oiy+l0UIypUwVB5trcWHq3crg2g3uAR9aAwsQ==} + resolution: {integrity: sha1-tPh/kv2Fk/O5Nl9ZJRWgbTBKHpw=} mongodb@6.16.0: - resolution: {integrity: sha512-D1PNcdT0y4Grhou5Zi/qgipZOYeWrhLEpk33n3nm6LGtz61jvO88WlrWCK/bigMjpnOdAUKKQwsGIl0NtWMyYw==} + resolution: {integrity: sha1-KnoZhuwVHZxzj8jOTPQyTD9yii8=} engines: {node: '>=16.20.1'} peerDependencies: '@aws-sdk/credential-providers': ^3.188.0 @@ -15012,122 +15030,122 @@ packages: optional: true ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + resolution: {integrity: sha1-V0yBOM4dK1hh8LRFedut1gxmFbI=} multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + resolution: {integrity: sha1-d+tGBX9NetvRbZKQ+nKZ9vpkzO0=} hasBin: true multimatch@5.0.0: - resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} + resolution: {integrity: sha1-kyuACWPOp6MaAzMo+h4MOhh02+Y=} engines: {node: '>=10'} mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + resolution: {integrity: sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=} mute-stream@2.0.0: - resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + resolution: {integrity: sha1-pURvwMUStxyDxE2QjVx7e0xJOys=} engines: {node: ^18.17.0 || >=20.5.0} mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + resolution: {integrity: sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI=} nanocolors@0.2.13: - resolution: {integrity: sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==} + resolution: {integrity: sha1-39HtC/qwXp/lQOtodFJfChaECZs=} nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + resolution: {integrity: sha1-T08RLO++MDIC8hmYOBKJNiZtGFs=} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true nanoid@3.3.15: - resolution: {integrity: sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==} + resolution: {integrity: sha1-NsSQ+tjG6GyCTJQN/d6Zm2ntQxY=} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true nanoid@5.1.5: - resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==} + resolution: {integrity: sha1-91l/nZBU602pVIzdU8pw8XkOh94=} engines: {node: ^18 || >=20} hasBin: true napi-build-utils@2.0.0: - resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + resolution: {integrity: sha1-E8IsAYf8/MzhRhhEE2NypH3cAn4=} natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} natural-orderby@3.0.2: - resolution: {integrity: sha512-x7ZdOwBxZCEm9MM7+eQCjkrNLrW3rkBKNHVr78zbtqnMGVNlnDi6C/eUEYgxHNrcbu0ymvjzcwIL/6H1iHri9g==} + resolution: {integrity: sha1-G4dNaF+9aL6rLG59FPKY4D1jHsM=} engines: {node: '>=18'} needle@3.3.1: - resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} + resolution: {integrity: sha1-Y/da7FgMLnfiCfPzJOLN89Kb0Ek=} engines: {node: '>= 4.4.x'} hasBin: true negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + resolution: {integrity: sha1-WOMjpy/twNb5zU0x/kn1FHlZDM0=} engines: {node: '>= 0.6'} negotiator@0.6.4: - resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + resolution: {integrity: sha1-d3lI4kUmUcVwtxLdAcI+JicT//c=} engines: {node: '>= 0.6'} negotiator@1.0.0: - resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + resolution: {integrity: sha1-tskbtHFy1p+Tz9fDV7u1KQGbX2o=} engines: {node: '>= 0.6'} neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + resolution: {integrity: sha1-tKr7k+OustgXTKU88WOrfXMIMF8=} netmask@2.0.2: - resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} + resolution: {integrity: sha1-iwGgdkQGXVNjg4NYI7xSAE66xec=} engines: {node: '>= 0.4.0'} nice-try@1.0.5: - resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + resolution: {integrity: sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=} no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + resolution: {integrity: sha1-02H9XJgA9VhVGoNp/A3NRmK2Ek0=} node-abi@3.77.0: - resolution: {integrity: sha512-DSmt0OEcLoK4i3NuscSbGjOf3bqiDEutejqENSplMSFA/gmB8mkED9G4pKWnPl7MDU4rSHebKPHeitpDfyH0cQ==} + resolution: {integrity: sha1-OtkNXJ1FZjQg5apP9Y2/TjYlQZo=} engines: {node: '>=10'} node-abi@4.24.0: - resolution: {integrity: sha512-u2EC1CeNe25uVtX3EZbdQ275c74zdZmmpzrHEQh2aIYqoVjlglfUpOX9YY85x1nlBydEKDVaSmMNhR7N82Qj8A==} + resolution: {integrity: sha1-/MG0xkX/tMDzni2/ucQWmLp+eC4=} engines: {node: '>=22.12.0'} node-addon-api@1.7.2: - resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} + resolution: {integrity: sha1-PfMLlXILU8JOWZSLSVMrZiRE9U0=} node-addon-api@4.3.0: - resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==} + resolution: {integrity: sha1-UqGgtHUZPgko6Y4EJqDRJUeCt38=} node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + resolution: {integrity: sha1-Grpmk7DyVSWKBJ1iEykykyKq1Vg=} node-api-version@0.2.1: - resolution: {integrity: sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q==} + resolution: {integrity: sha1-GbrVT21lYoy+5OYHoyXkSIrOLek=} node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + resolution: {integrity: sha1-aIjbRqH3HAt2s/dVUBa2P+ZHZuU=} engines: {node: '>=10.5.0'} deprecated: Use your platform's native DOMException instead node-email-verifier@3.4.1: - resolution: {integrity: sha512-69JMeWgEUrCji+dOLULirdSoosRxgAq2y+imfmHHBGvgTwyTKqvm65Ls3+W30DCIWMrYj5kKVb/DHTQDK7OVwQ==} + resolution: {integrity: sha1-CNRFpHrzTjMzJEdIm8A2DOVfgBk=} engines: {node: '>=18.0.0'} node-emoji@2.2.0: - resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==} + resolution: {integrity: sha1-HQAOPHbkYld4lb4bQ29KotZ2DrA=} engines: {node: '>=18'} node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + resolution: {integrity: sha1-0PD6bj4twdJ+/NitmdVQvalNGH0=} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 @@ -15136,156 +15154,156 @@ packages: optional: true node-gyp@12.3.0: - resolution: {integrity: sha512-QNcUWM+HgJplcPzBvFBZ9VXacyGZ4+VTOb80PwWR+TlVzoHbRKULNEzpRsnaoxG3Wzr7Qh7BYxGDU3CbKib2Yg==} + resolution: {integrity: sha1-oODZNkd5RR6vQUi2+ac2b5gACz8=} engines: {node: ^20.17.0 || >=22.9.0} hasBin: true node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + resolution: {integrity: sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=} node-pty@1.1.0: - resolution: {integrity: sha512-20JqtutY6JPXTUnL0ij1uad7Qe1baT46lyolh2sSENDd4sTzKZ4nmAFkeAARDKwmlLjPx6XKRlwRUxwjOy+lUg==} + resolution: {integrity: sha1-Fhk21FpHdRwuO2lMNl5zAXQXqIc=} node-releases@2.0.47: - resolution: {integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==} + resolution: {integrity: sha1-UhuyeG2o6xQLdIhBwLOzp1M0/8Q=} engines: {node: '>=18'} node-rsa@1.1.1: - resolution: {integrity: sha512-Jd4cvbJMryN21r5HgxQOpMEqv+ooke/korixNNK3mGqfGJmy0M77WDDzo/05969+OkMy3XW1UuZsSmW9KQm7Fw==} + resolution: {integrity: sha1-79mtOCCXeC9QYVM5hJb3nkRkQ00=} node-sarif-builder@2.0.3: - resolution: {integrity: sha512-Pzr3rol8fvhG/oJjIq2NTVB0vmdNNlz22FENhhPojYRZ4/ee08CfK4YuKmuL54V9MLhI1kpzxfOJ/63LzmZzDg==} + resolution: {integrity: sha1-F5rlkM4CD5f55FA33BzehapDmOw=} engines: {node: '>=14'} node-sarif-builder@4.1.0: - resolution: {integrity: sha512-IWqZF6u0EI/07HTBm+zZ+MgXgWl09dnSJRGaDCPBSlOqilDcx6pj3Mpb3HvPN8V2Gr+ISw7ZrMsL7STWs1F++w==} + resolution: {integrity: sha1-Jjhit2aUMI0NkVmIqHsyqgy2NDk=} engines: {node: '>=20'} node-source-walk@7.0.2: - resolution: {integrity: sha512-71kFFjYaSshDTA8/a2HiTYPLdASWjLJxUyJxGE+ffxU+KhxSBtM9kiLUX+R2yooFdSFKMFpi4n3PFtDy6qXv8A==} + resolution: {integrity: sha1-sHUlnLQMMVhXBEe+e9Tez/0gdpQ=} engines: {node: '>=18'} nodemailer@8.0.4: - resolution: {integrity: sha512-k+jf6N8PfQJ0Fe8ZhJlgqU5qJU44Lpvp2yvidH3vp1lPnVQMgi4yEEMPXg5eJS1gFIJTVq1NHBk7Ia9ARdSBdQ==} + resolution: {integrity: sha1-tjYmWFaT83o5Ddrs3ic9qZHHYBA=} engines: {node: '>=6.0.0'} noms@0.0.0: - resolution: {integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==} + resolution: {integrity: sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=} nopt@9.0.0: - resolution: {integrity: sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==} + resolution: {integrity: sha1-a/8INrKWTSRQi2tBtamknE9KH5Y=} engines: {node: ^20.17.0 || >=22.9.0} hasBin: true normalize-package-data@6.0.2: - resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} + resolution: {integrity: sha1-p7wiFn/iQCVBK8/wqWUet2iwNQY=} engines: {node: ^16.14.0 || >=18.0.0} normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + resolution: {integrity: sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=} engines: {node: '>=0.10.0'} normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + resolution: {integrity: sha1-QNCIW1Nd7/4/MUe+yHfQX+TFZoo=} engines: {node: '>=10'} npm-run-path@2.0.2: - resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + resolution: {integrity: sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=} engines: {node: '>=4'} npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + resolution: {integrity: sha1-t+zR5e1T2o43pV4cImnguX7XSOo=} engines: {node: '>=8'} nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + resolution: {integrity: sha1-yeq0KO/842zWuSySS9sADvHx7R0=} nwsapi@2.2.20: - resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} + resolution: {integrity: sha1-IuUyU8Yeew5+k870LIkRVLzKEe8=} object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} engines: {node: '>=0.10.0'} object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + resolution: {integrity: sha1-c/l/dT57r/wOLMnW4HkHl0Ssguk=} engines: {node: '>= 6'} object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + resolution: {integrity: sha1-g3UmXiG8IND6WCwi4bE0hdbgAhM=} engines: {node: '>= 0.4'} object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + resolution: {integrity: sha1-HEfyct8nfzsdrwYWd9nILiMixg4=} engines: {node: '>= 0.4'} object-treeify@4.0.1: - resolution: {integrity: sha512-Y6tg5rHfsefSkfKujv2SwHulInROy/rCL5F4w0QOWxut8AnxYxf0YmNhTh95Zfyxpsudo66uqkux0ACFnyMSgQ==} + resolution: {integrity: sha1-+Rp97HldgnWIbn8b14QI9pdb6CU=} engines: {node: '>= 16'} object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + resolution: {integrity: sha1-jBTKGkJMalYbC7KiL2b1BJqUXT0=} engines: {node: '>= 0.4'} obliterator@2.0.5: - resolution: {integrity: sha512-42CPE9AhahZRsMNslczq0ctAEtqk8Eka26QofnqC346BZdHDySk3LWka23LI7ULIw11NmltpiLagIq8gBozxTw==} + resolution: {integrity: sha1-Ax4BRTVLDBiEAzauUdQefW0sdqo=} obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + resolution: {integrity: sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=} on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + resolution: {integrity: sha1-WMjEQRblSEWtV/FKsQsDUzGErD8=} engines: {node: '>= 0.8'} on-headers@1.1.0: - resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} + resolution: {integrity: sha1-WdpPkcRfX5icbkvO3Fo7Cu1w/2U=} engines: {node: '>= 0.8'} once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + resolution: {integrity: sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=} engines: {node: '>=6'} onetime@7.0.0: - resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + resolution: {integrity: sha1-nxbJLYye9RIOOs2d2ZV8zuzBq2A=} engines: {node: '>=18'} only@0.0.2: - resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==} + resolution: {integrity: sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=} onnxruntime-common@1.21.0: - resolution: {integrity: sha512-Q632iLLrtCAVOTO65dh2+mNbQir/QNTVBG3h/QdZBpns7mZ0RYbLRBgGABPbpU9351AgYy7SJf1WaeVwMrBFPQ==} + resolution: {integrity: sha1-qB1BkdQYrLv/JUapVMwswj7rCfg=} onnxruntime-common@1.22.0-dev.20250409-89f8206ba4: - resolution: {integrity: sha512-vDJMkfCfb0b1A836rgHj+ORuZf4B4+cc2bASQtpeoJLueuFc5DuYwjIZUBrSvx/fO5IrLjLz+oTrB3pcGlhovQ==} + resolution: {integrity: sha1-PUo5VjuT2z0EKLVSfLpYo8j4JsI=} onnxruntime-node@1.21.0: - resolution: {integrity: sha512-NeaCX6WW2L8cRCSqy3bInlo5ojjQqu2fD3D+9W5qb5irwxhEyWKXeH2vZ8W9r6VxaMPUan+4/7NDwZMtouZxEw==} + resolution: {integrity: sha1-f09ZRVuvhRGB4gf8hAEoisLrENE=} os: [win32, darwin, linux] onnxruntime-web@1.22.0-dev.20250409-89f8206ba4: - resolution: {integrity: sha512-0uS76OPgH0hWCPrFKlL8kYVV7ckM7t/36HfbgoFw6Nd0CZVVbQC4PkrR8mBX8LtNUFZO25IQBqV2Hx2ho3FlbQ==} + resolution: {integrity: sha1-0eOgTgPf7jkrQdQg71R7agNRsGs=} open@10.1.0: - resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + resolution: {integrity: sha1-p3lebl1Rmr5ChtmTe7JLURIlmOE=} engines: {node: '>=18'} open@10.1.2: - resolution: {integrity: sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw==} + resolution: {integrity: sha1-1d9AmEdVyanDyT34FWoSRn6IKSU=} engines: {node: '>=18'} open@10.2.0: - resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} + resolution: {integrity: sha1-udhVvgB2IOgLb7BfrJgUH+Yttzw=} engines: {node: '>=18'} open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + resolution: {integrity: sha1-W1/+Ko95Pc0qrXPlUMuHtZywhPk=} engines: {node: '>=12'} openai@4.103.0: - resolution: {integrity: sha512-eWcz9kdurkGOFDtd5ySS5y251H2uBgq9+1a2lTBnjMMzlexJ40Am5t6Mu76SSE87VvitPa0dkIAp75F+dZVC0g==} + resolution: {integrity: sha1-hO5S/sIvNIbcwQcziy6vVo70kks=} hasBin: true peerDependencies: ws: ^8.18.0 @@ -15297,7 +15315,7 @@ packages: optional: true openai@6.41.0: - resolution: {integrity: sha512-IGWPopZq6Rjoynjfb3NSLf/z2MTw7UiOsm9TAjPGAjUESH7Uq41Trg4QWehBEn58p74i+m7uoRPV2vXcpPXhyA==} + resolution: {integrity: sha1-snQ1RQFn9BWqOKj4maMaXKD7NH8=} peerDependencies: ws: ^8.18.0 zod: ^3.25 || ^4.0 @@ -15308,457 +15326,457 @@ packages: optional: true optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + resolution: {integrity: sha1-fqHBpdkddk+yghOciP4R4YKjpzQ=} engines: {node: '>= 0.8.0'} ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + resolution: {integrity: sha1-GyZ4Qmr0rEpQkAjl5KyemVnbnhg=} engines: {node: '>=10'} ora@8.2.0: - resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} + resolution: {integrity: sha1-j7u3FRr+M7VA3RU/Fx/6i9OOmGE=} engines: {node: '>=18'} orderedmap@2.1.1: - resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==} + resolution: {integrity: sha1-YUgSacRAMcRJkVSXv1pK0nPFEtI=} os-homedir@1.0.2: - resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} + resolution: {integrity: sha1-/7xJiDNuDoM94MFox+8VISGqf7M=} engines: {node: '>=0.10.0'} own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + resolution: {integrity: sha1-5ABpEKK/kTWFKJZ27r1vOQz1E1g=} engines: {node: '>= 0.4'} oxc-parser@0.137.0: - resolution: {integrity: sha512-yFImD+WLElJpLKy8llG1qe4DCmMsL18peRp8XP1JKfig/gISbJkglnpDtX2aTmAn10kZF7164HbN2H8QPsXxGg==} + resolution: {integrity: sha1-uIocWuKz02e50KHBy0LKXIF0XsQ=} engines: {node: ^20.19.0 || >=22.12.0} oxc-resolver@11.21.3: - resolution: {integrity: sha512-2Mx3fKQz7+xgrBONjsxOgCGtMHOn38/HxMzW1I5efwXB5a4lRN0Vp40gYUJFBWJslcrvwoofTrqoTnLbwTd3pA==} + resolution: {integrity: sha1-D94b2AHOHCyV7wEEBgc6p80P6Mw=} p-cancelable@2.1.1: - resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + resolution: {integrity: sha1-qrf71BZYL6MqPbSYWcEiSHxe0s8=} engines: {node: '>=8'} p-event@4.2.0: - resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==} + resolution: {integrity: sha1-r0sEnIrNka6BCD69Hm9criBEwbU=} engines: {node: '>=8'} p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + resolution: {integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=} engines: {node: '>=4'} p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + resolution: {integrity: sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=} engines: {node: '>=6'} p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + resolution: {integrity: sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=} engines: {node: '>=10'} p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + resolution: {integrity: sha1-kUr2VE7TK/pUZwsGHK/L0EmEtkQ=} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + resolution: {integrity: sha1-o0KLtwiLOmApL2aRkni3wpetTwc=} engines: {node: '>=8'} p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + resolution: {integrity: sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=} engines: {node: '>=10'} p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + resolution: {integrity: sha1-PamknUk0uQEIncozAvpl3FoFwE8=} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + resolution: {integrity: sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=} engines: {node: '>=10'} p-retry@6.2.1: - resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} + resolution: {integrity: sha1-gYKPjcYcbvWoAFhUkVcsyYknA68=} engines: {node: '>=16.17'} p-timeout@3.2.0: - resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + resolution: {integrity: sha1-x+F6vJcdKnli74NiazXWNazyPf4=} engines: {node: '>=8'} p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + resolution: {integrity: sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=} engines: {node: '>=6'} pac-proxy-agent@7.2.0: - resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} + resolution: {integrity: sha1-nPrzP/Jdo29hR6IIRCMOySwG5d8=} engines: {node: '>= 14'} pac-resolver@7.0.1: - resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} + resolution: {integrity: sha1-VGdVWOo2i2TSEP2ckqZAtfO4q7Y=} engines: {node: '>= 14'} package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + resolution: {integrity: sha1-TxRxoBCCeob5TP2bByfjbSZ95QU=} package-manager-detector@1.6.0: - resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} + resolution: {integrity: sha1-cNDPCqAsh37q9mxNmE7eC+kTBzQ=} pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + resolution: {integrity: sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=} pandemonium@2.4.1: - resolution: {integrity: sha512-wRqjisUyiUfXowgm7MFH2rwJzKIr20rca5FsHXCMNm1W5YPP1hCtrZfgmQ62kP7OZ7Xt+cR858aB28lu5NX55g==} + resolution: {integrity: sha1-vVHKchhMauE1+QSaM8hgW/25V00=} param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + resolution: {integrity: sha1-fRf+SqEr3jTUp32RrPtiGcqtAcU=} parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + resolution: {integrity: sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=} engines: {node: '>=6'} parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + resolution: {integrity: sha1-x2/Gbe5UIxyWKyK8yKcs8vmXU80=} engines: {node: '>=8'} parse-json@7.1.1: - resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} + resolution: {integrity: sha1-aPfm8O34jFSrFMAOtwC3U7FOISA=} engines: {node: '>=16'} parse-ms@2.1.0: - resolution: {integrity: sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==} + resolution: {integrity: sha1-NIVlp1PUOR+lJAKZVrFyy3dTCX0=} engines: {node: '>=6'} parse-node-version@1.0.1: - resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + resolution: {integrity: sha1-4rXb7eAOf6m8NjYH9TMn6LBzGJs=} engines: {node: '>= 0.10'} parse-semver@1.1.1: - resolution: {integrity: sha512-Eg1OuNntBMH0ojvEKSrvDSnwLmvVuUOSdylH/pSCPNMIspLlweJyIWXCE+k/5hm3cj/EBUYwmWkjhBALNP4LXQ==} + resolution: {integrity: sha1-mkr9bfBj3Egm+T+6SpnPIj9mbLg=} parse5-htmlparser2-tree-adapter@6.0.1: - resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + resolution: {integrity: sha1-LN+a2CMyEUA3DU2/XT6Sx8jdxuY=} parse5-htmlparser2-tree-adapter@7.0.0: - resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + resolution: {integrity: sha1-I8LMIzvPCbt766i4pp1GsIxiwvE=} parse5-htmlparser2-tree-adapter@7.1.0: - resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} + resolution: {integrity: sha1-tagGVI7Yk6Q+JMy0L7t4BpMR6Bs=} parse5-parser-stream@7.1.2: - resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + resolution: {integrity: sha1-18IOrcN5aNJy4sAmYP/5LdJ+YOE=} parse5@5.1.1: - resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + resolution: {integrity: sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg=} parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + resolution: {integrity: sha1-4aHAhcVps9wIMhGE8Zo5zCf3wws=} parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + resolution: {integrity: sha1-Bza+u/13eTgjJAojt/xeAQt/jjI=} parse5@7.3.0: - resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + resolution: {integrity: sha1-1+Ik+nI5nHoXUJn0X8KtAksF7AU=} parse5@8.0.0: - resolution: {integrity: sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==} + resolution: {integrity: sha1-rOsmf2sV+bbmup41v91IH8IWexI=} parseley@0.12.1: - resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} + resolution: {integrity: sha1-Sv1WHVAhXr4lnj56hT5i9gBoOu8=} parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + resolution: {integrity: sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=} engines: {node: '>= 0.8'} pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + resolution: {integrity: sha1-tI4O8rmOIF58Ha50fQsVCCN2YOs=} patch-console@2.0.0: - resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==} + resolution: {integrity: sha1-kCP0ZlhA5m9A6c53T5BKYxZ0M7s=} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} path-data-parser@0.1.0: - resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} + resolution: {integrity: sha1-j1ulzHD8e+yz3O+uoI4mWaumC4w=} path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + resolution: {integrity: sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=} engines: {node: '>=8'} path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + resolution: {integrity: sha1-pqrZSJIAsh+rMeSc8JJ35RFvuec=} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} path-expression-matcher@1.5.0: - resolution: {integrity: sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==} + resolution: {integrity: sha1-O5hUXciP/rtZPi2EWNCSnaknX0o=} engines: {node: '>=14.0.0'} path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} engines: {node: '>=0.10.0'} path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + resolution: {integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=} engines: {node: '>=4'} path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + resolution: {integrity: sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=} engines: {node: '>=8'} path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + resolution: {integrity: sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=} path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + resolution: {integrity: sha1-eWCmaIiFlKByCxKpEdGnQqufEdI=} engines: {node: '>=16 || 14 >=14.18'} path-scurry@2.0.2: - resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + resolution: {integrity: sha1-a+DQ7gKhDZ4N56mLrmXhgskGH4U=} engines: {node: 18 || 20 || >=22} path-to-regexp@0.1.13: - resolution: {integrity: sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==} + resolution: {integrity: sha1-myLsFrw6uI0FoMfjaYaUIUAasX0=} path-to-regexp@8.4.2: - resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} + resolution: {integrity: sha1-eVxCDE98pFxbiHNm9iLuDJhSzM0=} path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + resolution: {integrity: sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=} engines: {node: '>=8'} path-type@5.0.0: - resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + resolution: {integrity: sha1-FLAe166n3fnHw/RhgdTQT5x4W7g=} engines: {node: '>=12'} path-type@6.0.0: - resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} + resolution: {integrity: sha1-Lxu2eRqRzpkZTK7eXWxZIO2B61E=} engines: {node: '>=18'} pause-stream@0.0.11: - resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} + resolution: {integrity: sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=} pbf@3.3.0: - resolution: {integrity: sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==} + resolution: {integrity: sha1-F5Dz2ZEYMzzH9JjegWAoo0bvNn8=} hasBin: true pdfjs-dist@5.3.31: - resolution: {integrity: sha512-EhPdIjNX0fcdwYQO+e3BAAJPXt+XI29TZWC7COhIXs/K0JHcUt1Gdz1ITpebTwVMFiLsukdUZ3u0oTO7jij+VA==} + resolution: {integrity: sha1-DEKfO8Q8V+walfoodPL5MYnS1A4=} engines: {node: '>=20.16.0 || >=22.3.0'} pe-library@0.4.1: - resolution: {integrity: sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw==} + resolution: {integrity: sha1-4mm+A0DcsTqmlJ10PafWWMPi++o=} engines: {node: '>=12', npm: '>=6'} peberminta@0.9.0: - resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} + resolution: {integrity: sha1-jsm8DrhLfTaBJucc6QM1Adyio1I=} pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=} picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + resolution: {integrity: sha1-PTIa8+q5ObCDyPkpodEs2oHCa2s=} picomatch@2.3.2: - resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + resolution: {integrity: sha1-WpQpFeJrNy3A8OZ1MUmhbmscVgE=} engines: {node: '>=8.6'} picomatch@4.0.4: - resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + resolution: {integrity: sha1-/W9eAKFDCG4HTf/kySS4+yk7BYk=} engines: {node: '>=12'} picospinner@2.0.0: - resolution: {integrity: sha512-bRX16jAx5sDlSAEKJ26hKloGU+w2DIkGw0qeUn87WkT8xircacGumNFHS0d/s51S9QbrtoEFwRSAvIvHNstfjA==} + resolution: {integrity: sha1-Kzz39JsOy9Kt4T4AX0XomGGjNNA=} engines: {node: '>=18.0.0'} pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + resolution: {integrity: sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=} engines: {node: '>=6'} pirates@4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + resolution: {integrity: sha1-ZDtKGMQlfIplEEtz8wSc6aChXiI=} engines: {node: '>= 6'} pkce-challenge@5.0.1: - resolution: {integrity: sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==} + resolution: {integrity: sha1-O0RGhlsXsXRems4gFqMfSN32Iw0=} engines: {node: '>=16.20.0'} pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + resolution: {integrity: sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=} engines: {node: '>=8'} pkijs@3.4.0: - resolution: {integrity: sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==} + resolution: {integrity: sha1-2RZN7zD/bZe+LYiWbV42GSSZypw=} engines: {node: '>=16.0.0'} platform@1.3.6: - resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==} + resolution: {integrity: sha1-SLTOmDFksgnC1FoQetsx9HOm56c=} play-sound@1.1.6: - resolution: {integrity: sha512-09eO4QiXNFXJffJaOW5P6x6F5RLihpLUkXttvUZeWml0fU6x6Zp7AjG9zaeMpgH2ZNvq4GR1ytB22ddYcqJIZA==} + resolution: {integrity: sha1-5i7Z2vhQarqVno/SZ8Sdm5edifo=} playwright-core@1.57.0: - resolution: {integrity: sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==} + resolution: {integrity: sha1-PcyahlryVvqfCvDWf8jdVO7K6/U=} engines: {node: '>=18'} hasBin: true playwright@1.57.0: - resolution: {integrity: sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==} + resolution: {integrity: sha1-dNHaz/UEjcQL9GdpQLGQHhitD0Y=} engines: {node: '>=18'} hasBin: true plist@3.1.0: - resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} + resolution: {integrity: sha1-eXpRapPmL1veVeC5zJyWf4YIk8k=} engines: {node: '>=10.4.0'} pluralize@2.0.0: - resolution: {integrity: sha512-TqNZzQCD4S42De9IfnnBvILN7HAW7riLqsCyp8lgjXeysyPlX5HhqKAcJHHHb9XskE4/a+7VGC9zzx8Ls0jOAw==} + resolution: {integrity: sha1-crcmqm+sHt7uQiVsfY3CVrM1Z38=} pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + resolution: {integrity: sha1-Gm+hajjRKhkB4DIPoBcFHFOc47E=} engines: {node: '>=4'} points-on-curve@0.2.0: - resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} + resolution: {integrity: sha1-fbuYxDeRhZQ0KEdhMw+ok8uBtNE=} points-on-path@0.2.1: - resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==} + resolution: {integrity: sha1-VTICtUJMU77TcTWzGIWOrP+F3VI=} portfinder@1.0.38: - resolution: {integrity: sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==} + resolution: {integrity: sha1-5Ps6LYiLINKXfaBQ5Iq14fV6GF4=} engines: {node: '>= 10.12'} possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + resolution: {integrity: sha1-k+NYK8DlQmWG2dB7ee5A/IQd5K4=} engines: {node: '>= 0.4'} postcss-values-parser@6.0.2: - resolution: {integrity: sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==} + resolution: {integrity: sha1-Y27cW4bJU4lvG7DXp6ZhXfAPt28=} engines: {node: '>=10'} peerDependencies: postcss: ^8.2.9 postcss@8.5.14: - resolution: {integrity: sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==} + resolution: {integrity: sha1-pmwteAj632nrtbhKA/i6/XbEkZw=} engines: {node: ^10 || ^12 || >=14} postcss@8.5.16: - resolution: {integrity: sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==} + resolution: {integrity: sha1-EjDOC13zVMJMDqRfmc5faognnSg=} engines: {node: ^10 || ^12 || >=14} postject@1.0.0-alpha.6: - resolution: {integrity: sha512-b9Eb8h2eVqNE8edvKdwqkrY6O7kAwmI8kcnBv1NScolYJbo59XUF0noFq+lxbC1yN20bmC0WBEbDC5H/7ASb0A==} + resolution: {integrity: sha1-nQIjMicuLPzo3qTPzh7m3Rsu4TU=} engines: {node: '>=14.0.0'} hasBin: true prebuild-install@7.1.3: - resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} + resolution: {integrity: sha1-1jCrrSsUdEPyCiEpF76uaLgJLuw=} engines: {node: '>=10'} deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. hasBin: true precinct@12.3.2: - resolution: {integrity: sha512-JbJevI1K80z8e/WIyDt/4vUN/4qcfBSKKqOjJA4mosPPPb7zODKRJQV7YN7apVWN3k58nZYm/vEsLgEGYmnxwg==} + resolution: {integrity: sha1-DWoV0umVF0SiT13mqyfJsmk2URk=} engines: {node: '>=18'} hasBin: true prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + resolution: {integrity: sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=} engines: {node: '>= 0.8.0'} prettier@3.5.3: - resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} + resolution: {integrity: sha1-T8LODWV+egLmAlSfBTsjnLff4bU=} engines: {node: '>=14'} hasBin: true pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + resolution: {integrity: sha1-kKcD9G3XI0rbRtD4SCPp0cuPENY=} pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + resolution: {integrity: sha1-ykLHWDEPNlv6caC9oKgHFgt3aBI=} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} pretty-ms@7.0.1: - resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} + resolution: {integrity: sha1-fZA+qrKB99jgPGb4Z+I53DL7c+g=} engines: {node: '>=10'} priorityqueuejs@2.0.0: - resolution: {integrity: sha512-19BMarhgpq3x4ccvVi8k2QpJZcymo/iFUcrhPd4V96kYGovOdTsWwy7fxChYi4QY+m2EnGBWSX9Buakz+tWNQQ==} + resolution: {integrity: sha1-lgZAQO3YR+6d0wE9jhYpc5mmvU8=} prismjs@1.30.0: - resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + resolution: {integrity: sha1-2XCZadnU4WQD9vNIxjVTsZ8Jdak=} engines: {node: '>=6'} proc-log@6.1.0: - resolution: {integrity: sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==} + resolution: {integrity: sha1-GFGUgqN9UZjiMRM6cBRKUPIfAhU=} 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: sha1-eCDZsWEgzFXKmud5JoCufbptf+I=} process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + resolution: {integrity: sha1-czIwDoQBYb2j5podHZGn1LwW8YI=} engines: {node: '>= 0.6.0'} progress@2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + resolution: {integrity: sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=} engines: {node: '>=0.4.0'} promise-retry@2.0.1: - resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + resolution: {integrity: sha1-/3R6E2IKtXumiPX8Z4VUEMNw2iI=} engines: {node: '>=10'} promise@7.3.1: - resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} + resolution: {integrity: sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=} prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + resolution: {integrity: sha1-e1fnOzpIAprRDr1E90sBcipMsGk=} engines: {node: '>= 6'} proper-lockfile@4.1.2: - resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} + resolution: {integrity: sha1-yLneKvay8WAQZ/mOAaxmuqIjFB8=} prosemirror-changeset@2.3.1: - resolution: {integrity: sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==} + resolution: {integrity: sha1-7uMpnPq8egJ2lOmr3E6FUF6d1ec=} prosemirror-commands@1.7.1: - resolution: {integrity: sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==} + resolution: {integrity: sha1-0QH++FYYsb5T1bmeoXvuVgB4Gzg=} prosemirror-dropcursor@1.8.2: - resolution: {integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==} + resolution: {integrity: sha1-LtMMR5YQnd6xz3KCNys4UFKLcig=} prosemirror-gapcursor@1.3.2: - resolution: {integrity: sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==} + resolution: {integrity: sha1-X6M2uDeJxhmac0HJSTWH4kkhXLQ=} prosemirror-history@1.4.1: - resolution: {integrity: sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==} + resolution: {integrity: sha1-zDcKRvtinoOjOUag4SYS6TSri5g=} prosemirror-inputrules@1.5.0: - resolution: {integrity: sha512-K0xJRCmt+uSw7xesnHmcn72yBGTbY45vm8gXI4LZXbx2Z0jwh5aF9xrGQgrVPu0WbyFVFF3E/o9VhJYz6SQWnA==} + resolution: {integrity: sha1-4iv68dbqT+JArUR8GErz1SDUPDc=} prosemirror-keymap@1.2.3: - resolution: {integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==} + resolution: {integrity: sha1-wParlfdcC4LJfkTraq8py/wVBHI=} prosemirror-model@1.25.1: - resolution: {integrity: sha512-AUvbm7qqmpZa5d9fPKMvH1Q5bqYQvAZWOGRvxsB6iFLyycvC9MwNemNVjHVrWgjaoxAfY8XVg7DbvQ/qxvI9Eg==} + resolution: {integrity: sha1-rq6fHsefyqdvb8YZgA2R+89yaHA=} prosemirror-safari-ime-span@1.0.2: - resolution: {integrity: sha512-QJqD8s1zE/CuK56kDsUhndh5hiHh/gFnAuPOA9ytva2s85/ZEt2tNWeALTJN48DtWghSKOmiBsvVn2OlnJ5H2w==} + resolution: {integrity: sha1-IMncsz39aLLlneiSO2UG+dwHw1Y=} prosemirror-schema-list@1.5.1: - resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==} + resolution: {integrity: sha1-WGnI90nodFw5RUi7EYILD+seMvU=} prosemirror-state@1.4.3: - resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==} + resolution: {integrity: sha1-lK7PP/1U7DfoeqcXnRNQjaGBoIA=} prosemirror-tables@1.7.1: - resolution: {integrity: sha512-eRQ97Bf+i9Eby99QbyAiyov43iOKgWa7QCGly+lrDt7efZ1v8NWolhXiB43hSDGIXT1UXgbs4KJN3a06FGpr1Q==} + resolution: {integrity: sha1-3yUH8oXGx1Ywl7SQTLfEueDNcks=} prosemirror-transform@1.10.4: - resolution: {integrity: sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==} + resolution: {integrity: sha1-VkGerBT59WYSyAauRvkjhkjz8C4=} prosemirror-view@1.40.0: - resolution: {integrity: sha512-2G3svX0Cr1sJjkD/DYWSe3cfV5VPVTBOxI9XQEGWJDFEpsZb/gh4MV29ctv+OJx2RFX4BLt09i+6zaGM/ldkCw==} + resolution: {integrity: sha1-IS5iegxPAZismCOhIy4AmcmpKGU=} prosemirror-virtual-cursor@0.4.2: - resolution: {integrity: sha512-pUMKnIuOhhnMcgIJUjhIQTVJruBEGxfMBVQSrK0g2qhGPDm1i12KdsVaFw15dYk+29tZcxjMeR7P5VDKwmbwJg==} + resolution: {integrity: sha1-t5gloF2cmseLLdaQwtnrZ0UPtC0=} peerDependencies: prosemirror-model: ^1.0.0 prosemirror-state: ^1.0.0 @@ -15772,89 +15790,89 @@ packages: optional: true protobufjs@7.6.4: - resolution: {integrity: sha512-RJJPTTpvFfHcWLkIa2JFWK4XvtSzS0yEWDmunqHXli1h3JlkbcQZXDZdcWxv+JK3Xsl5/UFDPZ0iGm7DAengYw==} + resolution: {integrity: sha1-i7AAMAAm79Y+t5UdJuXbs49WWPI=} engines: {node: '>=12.0.0'} protocol-buffers-schema@3.6.1: - resolution: {integrity: sha512-VG2K63Igkiv9p76tk1lilczEK1cT+kCjKtkdhw1dQZV3k3IXJbd3o6Ho8b9zJZaHSnT2hKe4I+ObmX9w6m5SmQ==} + resolution: {integrity: sha1-/ZpYpcTpY4W5ZICPPd1Y+e8Yw8g=} proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + resolution: {integrity: sha1-8Z/mnOqzEe65S0LnDowgcPm6ECU=} engines: {node: '>= 0.10'} proxy-agent@6.5.0: - resolution: {integrity: sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==} + resolution: {integrity: sha1-nkmsuo5O4jSqy1Ofie2cI9AvIy0=} engines: {node: '>= 14'} proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + resolution: {integrity: sha1-4QLxbKNVQkhldV0sno6k8k1Yw+I=} prr@1.0.1: - resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + resolution: {integrity: sha1-0/wRS6BplaRexok/SEzrHXj19HY=} psl@1.15.0: - resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + resolution: {integrity: sha1-vazjGJbx2XzsannoIkiYzpPZdMY=} pug-attrs@3.0.0: - resolution: {integrity: sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==} + resolution: {integrity: sha1-sQRR4DSBZeMfrRzCPr3dncc0fEE=} pug-code-gen@3.0.4: - resolution: {integrity: sha512-6okWYIKdasTyXICyEtvobmTZAVX57JkzgzIi4iRJlin8kmhG+Xry2dsus+Mun/nGCn6F2U49haHI5mkELXB14g==} + resolution: {integrity: sha1-KoLNMX9Jg9m2G1EDXeNOT5ZNeI0=} pug-error@2.1.0: - resolution: {integrity: sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==} + resolution: {integrity: sha1-F+o3tYe2RD1LjxSDdOwntUtAblU=} pug-filters@4.0.0: - resolution: {integrity: sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==} + resolution: {integrity: sha1-0+Sa9bqEcum3pm2YDnB86dLMm14=} pug-lexer@5.0.1: - resolution: {integrity: sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==} + resolution: {integrity: sha1-rkRijFvvmxkLZlaDsojKkCS4sNU=} pug-linker@4.0.0: - resolution: {integrity: sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==} + resolution: {integrity: sha1-EsvAWU/Fo+Brn8Web5PBRpYqdwg=} pug-load@3.0.0: - resolution: {integrity: sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==} + resolution: {integrity: sha1-n9nNpSICsIrbEdJWgfufNL1BtmI=} pug-parser@6.0.0: - resolution: {integrity: sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==} + resolution: {integrity: sha1-qP3ANYY6lbLB3F6/Ts+AtOdqEmA=} pug-runtime@3.0.1: - resolution: {integrity: sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==} + resolution: {integrity: sha1-9jaXYgRyPzWoxfb61qzaKhkbg9c=} pug-strip-comments@2.0.0: - resolution: {integrity: sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==} + resolution: {integrity: sha1-+UsH/WtJVSMzD0kKf1VLT/h2MD4=} pug-walk@2.0.0: - resolution: {integrity: sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==} + resolution: {integrity: sha1-QXqrwpIyu0SZtbUGmistKiTV9f4=} pug@3.0.4: - resolution: {integrity: sha512-kFfq5mMzrS7+wrl5pLJzZEzemx34OQ0w4SARfhy/3yxTlhbstsudDwJzhf1hP02yHzbjoVMSXUj/Sz6RNfMyXg==} + resolution: {integrity: sha1-kEOujdhfyL61vs8J3Y5LdUuUsp8=} pump@3.0.2: - resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + resolution: {integrity: sha1-g28+3WvC7lmSVskk/+DYhXPdy/g=} pump@3.0.4: - resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} + resolution: {integrity: sha1-HzE0MFJ/qLkFYi69Iv4UROdXqzw=} punycode.js@2.3.1: - resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + resolution: {integrity: sha1-a1PlatdViCNOefSv+pCXLH3Yzbc=} engines: {node: '>=6'} punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + resolution: {integrity: sha1-AnQi4vrsCyXhVJw+G9gwm5EztuU=} engines: {node: '>=6'} puppeteer-core@23.11.1: - resolution: {integrity: sha512-3HZ2/7hdDKZvZQ7dhhITOUg4/wOrDRjyK2ZBllRB0ZCOi9u0cwq1ACHDjBB+nX+7+kltHjQvBRdeY7+W0T+7Gg==} + resolution: {integrity: sha1-PgZN4Rs8s6LfGoBg/y0FtBvlg9s=} engines: {node: '>=18'} puppeteer-core@24.37.5: - resolution: {integrity: sha512-ybL7iE78YPN4T6J+sPLO7r0lSByp/0NN6PvfBEql219cOnttoTFzCWKiBOjstXSqi/OKpwae623DWAsL7cn2MQ==} + resolution: {integrity: sha1-uVf0JHF8E/8VdlvGZKm5eAjly7Q=} engines: {node: '>=18'} puppeteer-extra-plugin-adblocker@2.13.6: - resolution: {integrity: sha512-AftgnUZ1rg2RPe9RpX6rkYAxEohwp3iFeGIyjsAuTaIiw4VLZqOb1LSY8/S60vAxpeat60fbCajxoUetmLy4Dw==} + resolution: {integrity: sha1-mYKCQ1ebWe2B6LHaI9FqOg265Vc=} engines: {node: '>=8'} peerDependencies: puppeteer: '*' @@ -15869,7 +15887,7 @@ packages: optional: true puppeteer-extra-plugin-stealth@2.11.2: - resolution: {integrity: sha512-bUemM5XmTj9i2ZerBzsk2AN5is0wHMNE6K0hXBzBXOzP5m5G3Wl0RHhiqKeHToe/uIH8AoZiGhc1tCkLZQPKTQ==} + resolution: {integrity: sha1-vT9aF4HKyKmMmD0UgIZYWoT8yPE=} engines: {node: '>=8'} peerDependencies: playwright-extra: '*' @@ -15881,7 +15899,7 @@ packages: optional: true puppeteer-extra-plugin-user-data-dir@2.4.1: - resolution: {integrity: sha512-kH1GnCcqEDoBXO7epAse4TBPJh9tEpVEK/vkedKfjOVOhZAvLkHGc9swMs5ChrJbRnf8Hdpug6TJlEuimXNQ+g==} + resolution: {integrity: sha1-TqnVbSBFVnKlT+CGMJoQKlEmQRw=} engines: {node: '>=8'} peerDependencies: playwright-extra: '*' @@ -15893,7 +15911,7 @@ packages: optional: true puppeteer-extra-plugin-user-preferences@2.4.1: - resolution: {integrity: sha512-i1oAZxRbc1bk8MZufKCruCEC3CCafO9RKMkkodZltI4OqibLFXF3tj6HZ4LZ9C5vCXZjYcDWazgtY69mnmrQ9A==} + resolution: {integrity: sha1-247GPASmoQqPiZfhX9/98TJyFh0=} engines: {node: '>=8'} peerDependencies: playwright-extra: '*' @@ -15905,7 +15923,7 @@ packages: optional: true puppeteer-extra-plugin@3.2.3: - resolution: {integrity: sha512-6RNy0e6pH8vaS3akPIKGg28xcryKscczt4wIl0ePciZENGE2yoaQJNd17UiEbdmh5/6WW6dPcfRWT9lxBwCi2Q==} + resolution: {integrity: sha1-UMnwdJwAW7x7iyCLzQCp1GoVtYU=} engines: {node: '>=9.11.2'} peerDependencies: playwright-extra: '*' @@ -15917,7 +15935,7 @@ packages: optional: true puppeteer-extra@3.3.6: - resolution: {integrity: sha512-rsLBE/6mMxAjlLd06LuGacrukP2bqbzKCLzV1vrhHFavqQE/taQ2UXv3H5P0Ls7nsrASa+6x3bDbXHpqMwq+7A==} + resolution: {integrity: sha1-/Bb/OWquUmZIQtqaVX6o+lHqqLc=} engines: {node: '>=8'} peerDependencies: '@types/puppeteer': '*' @@ -15932,952 +15950,952 @@ packages: optional: true puppeteer@24.37.5: - resolution: {integrity: sha512-3PAOIQLceyEmn1Fi76GkGO2EVxztv5OtdlB1m8hMUZL3f8KDHnlvXbvCXv+Ls7KzF1R0KdKBqLuT/Hhrok12hQ==} + resolution: {integrity: sha1-xhkyzbK8U9GJcGcb4Y1UchbSlfA=} engines: {node: '>=18'} hasBin: true pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + resolution: {integrity: sha1-0XPPIyWCMZdsy9sFJHyXh5V2BPI=} pvtsutils@1.3.6: - resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==} + resolution: {integrity: sha1-7EbjTbdCK55P3FSQV4wYg2V9YAE=} pvutils@1.1.5: - resolution: {integrity: sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==} + resolution: {integrity: sha1-hLDepKXWcCSaqYAFEYBO4LfCgJw=} engines: {node: '>=16.0.0'} qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + resolution: {integrity: sha1-bKO9WEOffiRWVXmJl3h7DYilGQY=} engines: {node: '>=0.6'} qs@6.14.2: - resolution: {integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==} + resolution: {integrity: sha1-tWNM+dmtmJjjH7o1BOhm6O+2eYw=} engines: {node: '>=0.6'} qs@6.15.3: - resolution: {integrity: sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==} + resolution: {integrity: sha1-doUhMqWO1cfA72fkRBubtdYGGzs=} engines: {node: '>=0.6'} querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + resolution: {integrity: sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=} queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + resolution: {integrity: sha1-SSkii7xyTfrEPg77BYyve2z7YkM=} quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + resolution: {integrity: sha1-NmST5rPkKjpoheLpnRj4D7eoyTI=} engines: {node: '>=10'} quote-unquote@1.0.0: - resolution: {integrity: sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==} + resolution: {integrity: sha1-Z6mncUjv/q+BpNQoQEpxC6qsigs=} range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + resolution: {integrity: sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=} engines: {node: '>= 0.6'} raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + resolution: {integrity: sha1-mf69g7kOCJdQh+jx+UGaFJNmtoo=} engines: {node: '>= 0.8'} raw-body@2.5.3: - resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} + resolution: {integrity: sha1-EcZlDudwp94bSU8ZeSfeDJI4IuI=} engines: {node: '>= 0.8'} raw-body@3.0.2: - resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} + resolution: {integrity: sha1-PjraWuVWj5CV2EN2/TpJuPsAClE=} engines: {node: '>= 0.10'} rc-config-loader@4.1.3: - resolution: {integrity: sha512-kD7FqML7l800i6pS6pvLyIE2ncbk9Du8Q0gp/4hMPhJU6ZxApkoLcGD8ZeqgiAlfwZ6BlETq6qqe+12DUL207w==} + resolution: {integrity: sha1-E1KYa4otjZbW/QVKW7GaYMV2h2o=} rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + resolution: {integrity: sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0=} hasBin: true react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + resolution: {integrity: sha1-GZQx7qqi4J+GQn77tPFHPttHYJs=} react-reconciler@0.29.2: - resolution: {integrity: sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==} + resolution: {integrity: sha1-js+vymNUmk9PPkweBJ3VrZrDpU8=} engines: {node: '>=0.10.0'} peerDependencies: react: ^18.3.1 react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + resolution: {integrity: sha1-SauJIAnFOTNiW9FrJTP8dUyrKJE=} engines: {node: '>=0.10.0'} read-binary-file-arch@1.0.6: - resolution: {integrity: sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==} + resolution: {integrity: sha1-lZxGN9qpMigKm5EbGmdmp+RCiPw=} hasBin: true read-pkg@8.1.0: - resolution: {integrity: sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==} + resolution: {integrity: sha1-bPVguR2Q32i85lhSfn4+7nX3xMc=} engines: {node: '>=16'} read@1.0.7: - resolution: {integrity: sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==} + resolution: {integrity: sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=} engines: {node: '>=0.8'} readable-stream@1.0.34: - resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} + resolution: {integrity: sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=} readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + resolution: {integrity: sha1-kRJegEK7obmIf0k0X2J3Anzovps=} readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + resolution: {integrity: sha1-VqmzbqllwAxak+8x6xEaDxEFaWc=} engines: {node: '>= 6'} readable-stream@4.5.2: - resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + resolution: {integrity: sha1-nn/ExFCZuu7ZNL/265e6bPJyngk=} 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: sha1-w9gx9R9ee/pi+i/75LUIxkDwlYQ=} readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + resolution: {integrity: sha1-dKNwvYVxFuJFspzJc0DNQxoCpsc=} engines: {node: '>=8.10.0'} readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + resolution: {integrity: sha1-64WAFDX78qfuWPGeCSGwaPxplI0=} engines: {node: '>= 14.18.0'} readline@1.3.0: - resolution: {integrity: sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==} + resolution: {integrity: sha1-xYDXfvLPyHUrEySYBg3JeTp6wBw=} rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + resolution: {integrity: sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=} engines: {node: '>= 0.10'} rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + resolution: {integrity: sha1-Sfhm4NMhRhQto62PDv81KzIV/yI=} engines: {node: '>= 10.13.0'} refa@0.12.1: - resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} + resolution: {integrity: sha1-2sE8R4LcIra65szoGiuGOIjqOcY=} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} reflect-metadata@0.2.2: - resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} + resolution: {integrity: sha1-QAyEW2y6h6IfLGXErrFY9PpNnFs=} reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + resolution: {integrity: sha1-xikhnnijMW2LYEx2XvaJlpZOe/k=} engines: {node: '>= 0.4'} regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + resolution: {integrity: sha1-XhnWjrEtSG95fhWjxqkY987F60U=} regexp-ast-analysis@0.7.1: - resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} + resolution: {integrity: sha1-wOJMsqkPbq3Uy6q6EpMX4p0pxII=} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} regexp.escape@2.0.1: - resolution: {integrity: sha512-JItRb4rmyTzmERBkAf6J87LjDPy/RscIwmaJQ3gsFlAzrmZbZU8LwBw5IydFZXW9hqpgbPlGbMhtpqtuAhMgtg==} + resolution: {integrity: sha1-CeS+750gLb1zmGjzgYIj+XfPkdo=} engines: {node: '>= 0.4'} regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + resolution: {integrity: sha1-GtbGLUSiWQB+VbOXDgD3Ru+8qhk=} engines: {node: '>= 0.4'} relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + resolution: {integrity: sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=} engines: {node: '>= 0.10'} remark-gfm@4.0.1: - resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + resolution: {integrity: sha1-MyJ7KnQ5dnDTV78FwJjq+FE/DWs=} remark-inline-links@7.0.0: - resolution: {integrity: sha512-4uj1pPM+F495ySZhTIB6ay2oSkTsKgmYaKk/q5HIdhX2fuyLEegpjWa0VdJRJ01sgOqAFo7MBKdDUejIYBMVMQ==} + resolution: {integrity: sha1-d/v/gGGrw9DsNBh6txZ4pxDfBeE=} remark-math@6.0.0: - resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==} + resolution: {integrity: sha1-Cs33RnXxwZX+pu//p4WC9+1/wNc=} remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + resolution: {integrity: sha1-qmB0P8s36/awaSBOtNowTkDbRaE=} remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + resolution: {integrity: sha1-TFsB3XEcJp3xqq4RdD634udjb9M=} remark@15.0.1: - resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==} + resolution: {integrity: sha1-rH51YyYFE7ZkJrxH+FDnqlhiw3w=} renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + resolution: {integrity: sha1-X9gj5NaVHTc1jsyaWLHwaDa2Joo=} repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + resolution: {integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc=} engines: {node: '>=0.10'} require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} engines: {node: '>=0.10.0'} require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + resolution: {integrity: sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=} engines: {node: '>=0.10.0'} requirejs-config-file@4.0.0: - resolution: {integrity: sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==} + resolution: {integrity: sha1-QkTaXdH1mHQDjMEJHQeNYgq7brw=} engines: {node: '>=10.13.0'} requirejs@2.3.8: - resolution: {integrity: sha512-7/cTSLOdYkNBNJcDMWf+luFvMriVm7eYxp4BcFCsAX0wF421Vyce5SXP17c+Jd5otXKGNehIonFlyQXSowL6Mw==} + resolution: {integrity: sha1-vKBhS2GKshIkYll+RIeNt1WLu6M=} engines: {node: '>=0.4.0'} hasBin: true requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + resolution: {integrity: sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=} resedit@1.7.2: - resolution: {integrity: sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA==} + resolution: {integrity: sha1-sQQRcLmYEXEME/lJx9Ilhx3kzHg=} engines: {node: '>=12', npm: '>=6'} resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + resolution: {integrity: sha1-t629rDVGqq7CC0Xn2CZZJwcnJvk=} resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + resolution: {integrity: sha1-DwB18bslRHZs9zumpuKt/ryxPy0=} engines: {node: '>=8'} resolve-dependency-path@4.0.1: - resolution: {integrity: sha512-YQftIIC4vzO9UMhO/sCgXukNyiwVRCVaxiWskCBy7Zpqkplm8kTAISZ8O1MoKW1ca6xzgLUBjZTcDgypXvXxiQ==} + resolution: {integrity: sha1-G51D5bYjhDAeJtBAufzmHuXbYL0=} engines: {node: '>=18'} resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + resolution: {integrity: sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=} engines: {node: '>=4'} resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + resolution: {integrity: sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=} engines: {node: '>=8'} resolve-path@1.4.0: - resolution: {integrity: sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==} + resolution: {integrity: sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc=} engines: {node: '>= 0.8'} resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolution: {integrity: sha1-YWs9wsVwVrVYjDHN9LPWTbEzcg8=} resolve-protobuf-schema@2.1.0: - resolution: {integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==} + resolution: {integrity: sha1-nKmp5pzxkrva8QBuwZc5SKpKN1g=} resolve.exports@2.0.3: - resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} + resolution: {integrity: sha1-QZVebxtAE7dYb4c3SaY13qB+vj8=} engines: {node: '>=10'} resolve@1.22.12: - resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} + resolution: {integrity: sha1-9bKmgIl8acI4oTzRaxVnH4tzVJ8=} engines: {node: '>= 0.4'} hasBin: true resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolution: {integrity: sha1-tsh6nyqgbfq1Lj1wrIzeMh+lpI0=} hasBin: true responselike@2.0.1: - resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + resolution: {integrity: sha1-mgvI/cJS8/scymiwFlkQWboUIrw=} restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + resolution: {integrity: sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=} engines: {node: '>=8'} restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + resolution: {integrity: sha1-UZVgpDGJdQlt725gnUQQDtqkzLk=} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} restore-cursor@5.1.0: - resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + resolution: {integrity: sha1-B2bZVpnvrLFBUJk/VbrwlT6h6+c=} engines: {node: '>=18'} retry@0.12.0: - resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + resolution: {integrity: sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=} engines: {node: '>= 4'} retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + resolution: {integrity: sha1-GFsVh6z2eRnWOzVzSeA1N7JIRlg=} engines: {node: '>= 4'} reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + resolution: {integrity: sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} rimraf@2.6.3: - resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + resolution: {integrity: sha1-stEE/g2Psnz54KHNqCYt04M8bKs=} 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: sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=} deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@4.4.1: - resolution: {integrity: sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==} + resolution: {integrity: sha1-vTM2T2cCHFt56T1/T6BWjHwht1U=} engines: {node: '>=14'} hasBin: true rimraf@5.0.10: - resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} + resolution: {integrity: sha1-I7mEPT3JLbcfluGizpLjn9KoIhw=} hasBin: true rimraf@6.0.1: - resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} + resolution: {integrity: sha1-/7itiETdYDMqsV9SvBBLw+1x6k4=} engines: {node: 20 || >=22} hasBin: true roarr@2.15.4: - resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} + resolution: {integrity: sha1-9f55W3uDjM/jXcYI4Cgrnrouev0=} engines: {node: '>=8.0'} robust-predicates@3.0.2: - resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} + resolution: {integrity: sha1-1bKFKMSCTSD8SN8ZKNQdnvoa13E=} rollup-plugin-copy@3.5.0: - resolution: {integrity: sha512-wI8D5dvYovRMx/YYKtUNt3Yxaw4ORC9xo6Gt9t22kveWz1enG9QrhVlagzwrxSC455xD1dHMKhIJkbsQ7d48BA==} + resolution: {integrity: sha1-f/oqeoMD4UOHb6ZPte7ZAi0wTus=} engines: {node: '>=8.3'} rollup@4.59.0: - resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==} + resolution: {integrity: sha1-z3TtrBfBSG9WLXKKTZI6aUq98G8=} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true rope-sequence@1.3.4: - resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} + resolution: {integrity: sha1-34VxGq7NMvHnVvduQ6QVFxI11CU=} roughjs@4.6.6: - resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} + resolution: {integrity: sha1-EFn0ml4MgN7lQaAFsgzDIrIiFYs=} router@2.2.0: - resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} + resolution: {integrity: sha1-AZvmILcRyHZBFnzHm5kJDwCxRu8=} engines: {node: '>= 18'} run-applescript@7.0.0: - resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + resolution: {integrity: sha1-5aVTwr/9Yg4WnSdsHNjxtkd4++s=} engines: {node: '>=18'} run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + resolution: {integrity: sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=} run-script-os@1.1.6: - resolution: {integrity: sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw==} + resolution: {integrity: sha1-iwF3+xtUyZpnD5XH/cVPGLnHI0c=} hasBin: true rw@1.3.3: - resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + resolution: {integrity: sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=} rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + resolution: {integrity: sha1-b289meqARCke/ZLnx/z1YsQFdUM=} safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + resolution: {integrity: sha1-yeVOxPYDsLu45+UAel7nrs0VOMM=} engines: {node: '>=0.4'} safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + resolution: {integrity: sha1-mR7GnSluAxN0fVm9/St0XDX4go0=} safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + resolution: {integrity: sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=} safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + resolution: {integrity: sha1-AYUOmBwWAtOYyFCB82Dk5tA9J/U=} engines: {node: '>= 0.4'} safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + resolution: {integrity: sha1-f4fftnoxUHguqvGFg/9dFxGsEME=} engines: {node: '>= 0.4'} safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + resolution: {integrity: sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=} sanitize-filename@1.6.3: - resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} + resolution: {integrity: sha1-dV69dSBFkxl34wsgJdNA18kJA3g=} sass-lookup@6.1.2: - resolution: {integrity: sha512-GjmndmKQBtlPil79RK72L7yc5kDXZPCQeH97bP8R8DcxtXQJO6vECExb3WP/m6+cxaV9h4ZxrSRvCkPG2v/VSw==} + resolution: {integrity: sha1-7vzJDr6uRR0lKkqdjQkP7xpionk=} engines: {node: '>=18'} hasBin: true sax@1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + resolution: {integrity: sha1-pdvnfbO+BcnR7neF29PqneUVk9A=} saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + resolution: {integrity: sha1-/ltKR2jfTxSiAbG6amXB89mYjMU=} engines: {node: '>=v12.22.7'} scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + resolution: {integrity: sha1-QUumSjsoKJLpRM8hCOzAeNEVzcM=} schema-utils@4.2.0: - resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + resolution: {integrity: sha1-cNfJPhU6JzqAWAGILr07/yDYnIs=} engines: {node: '>= 12.13.0'} schema-utils@4.3.3: - resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} + resolution: {integrity: sha1-WxhQkS+jHfkHFpY9RdkSH9/An0Y=} engines: {node: '>= 10.13.0'} scslre@0.3.0: - resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} + resolution: {integrity: sha1-wyEem/xVR/yGseq6o07RplcGAVU=} engines: {node: ^14.0.0 || >=16.0.0} secretlint@9.3.2: - resolution: {integrity: sha512-IuFrtWMGeVFSWpuhn1T6JC0mgfwD9rbFNZG1aWtpkBKOUCbcKZ+RoJcJjdJ0DXv8oa9vRg/+DZUl6Q6omZdPQQ==} + resolution: {integrity: sha1-INXib/mVkOs62BS423g2tawVVtU=} engines: {node: ^14.13.1 || >=16.0.0} hasBin: true secure-json-parse@4.1.0: - resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==} + resolution: {integrity: sha1-Txq0HGehNJfqG5Exu0GDoihlR3w=} selderee@0.11.0: - resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} + resolution: {integrity: sha1-avDHmD4HOtPjV4f/4gzv2drw7Io=} select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + resolution: {integrity: sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=} selfsigned@5.5.0: - resolution: {integrity: sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==} + resolution: {integrity: sha1-TJq3x8nzXxj7apiCwlPrDmvWVXs=} engines: {node: '>=18'} semaphore@1.1.0: - resolution: {integrity: sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==} + resolution: {integrity: sha1-qq2LhrIP6OmzKxbcLuaCqM0mqKo=} engines: {node: '>=0.8.0'} semver-compare@1.0.0: - resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + resolution: {integrity: sha1-De4hahyUGrN+nvsXiPavxf9VN/w=} semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + resolution: {integrity: sha1-SNVdtzfDKHzUg14X+hP+rOHEHvg=} hasBin: true semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + resolution: {integrity: sha1-VW0u+GiRRuRtzqS/3QlfNDTf/LQ=} hasBin: true semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + resolution: {integrity: sha1-SDmG7E7TjhxsSMNIlKkYLb/2im4=} engines: {node: '>=10'} hasBin: true semver@7.7.1: - resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + resolution: {integrity: sha1-q9UJjYKxjGyB9gdP8mR/0+ciDJ8=} engines: {node: '>=10'} hasBin: true semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + resolution: {integrity: sha1-Z9mf3NNc7CHm+Lh6f9UVoz+YK1g=} engines: {node: '>=10'} hasBin: true semver@7.7.3: - resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + resolution: {integrity: sha1-S19BQ9AHYzqNxnHNCm75FHuLuUY=} engines: {node: '>=10'} hasBin: true semver@7.7.4: - resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + resolution: {integrity: sha1-KEZONgYOmR+noR0CedLT87V6foo=} engines: {node: '>=10'} hasBin: true semver@7.8.0: - resolution: {integrity: sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==} + resolution: {integrity: sha1-7QZhA5/LzaLOcfAfpq2++qdwQN8=} engines: {node: '>=10'} hasBin: true semver@7.8.4: - resolution: {integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==} + resolution: {integrity: sha1-xz7O664GFpNL6N/yin/XB1fI5pY=} engines: {node: '>=10'} hasBin: true send@0.19.0: - resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + resolution: {integrity: sha1-u8WjiMjqbASJZwSdvqwOSj8J1/g=} engines: {node: '>= 0.8.0'} send@0.19.1: - resolution: {integrity: sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==} + resolution: {integrity: sha1-HCVjsu5P5RC4BrIexG81UAWjafk=} engines: {node: '>= 0.8.0'} send@0.19.2: - resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} + resolution: {integrity: sha1-WbwNobTqetQnNv1kKxxClOEU/yk=} engines: {node: '>= 0.8.0'} send@1.2.1: - resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} + resolution: {integrity: sha1-nqt0O4dPNVD0CiaGe/KGrWDT8+0=} engines: {node: '>= 18'} serialize-error@7.0.1: - resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + resolution: {integrity: sha1-8TYLBEf2H/tIPsQVfHN/q313jhg=} engines: {node: '>=10'} serialize-javascript@7.0.5: - resolution: {integrity: sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==} + resolution: {integrity: sha1-x5jMBVL/uwiYGRSkKodW4znQ1bE=} engines: {node: '>=20.0.0'} serve-index@1.9.2: - resolution: {integrity: sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==} + resolution: {integrity: sha1-KYjjYSEG14peSEnd/1Us5709m8s=} engines: {node: '>= 0.8.0'} serve-static@1.16.2: - resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + resolution: {integrity: sha1-tqU0PaR/a90mc4SL9FdUlB6AMpY=} engines: {node: '>= 0.8.0'} serve-static@1.16.3: - resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} + resolution: {integrity: sha1-qXt02VV3hYPzhipPC4QetNXXjPk=} engines: {node: '>= 0.8.0'} serve-static@2.2.1: - resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} + resolution: {integrity: sha1-fxhqSk5fW2Y616QpT/G/N88OmKk=} engines: {node: '>= 18'} set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + resolution: {integrity: sha1-qscjFBmOrtl1z3eyw7a4gGleVEk=} engines: {node: '>= 0.4'} set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + resolution: {integrity: sha1-FqcFxaDcL15jjKltiozU4cK5CYU=} engines: {node: '>= 0.4'} set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + resolution: {integrity: sha1-B2Dbz/MLLX6AH9bhmYPlbaM3Vl4=} engines: {node: '>= 0.4'} setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + resolution: {integrity: sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=} setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + resolution: {integrity: sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=} setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + resolution: {integrity: sha1-ZsmiSnP5/CjL5msJ/tPTPcrxtCQ=} shallow-clone@0.1.2: - resolution: {integrity: sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==} + resolution: {integrity: sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=} engines: {node: '>=0.10.0'} shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + resolution: {integrity: sha1-jymBrZJTH1UDWwH7IwdppA4C76M=} engines: {node: '>=8'} sharp@0.33.5: - resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + resolution: {integrity: sha1-E+DkEwzDCdapSXWWcVJAsuwMWU4=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} sharp@0.34.5: - resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} + resolution: {integrity: sha1-tvFI5LjGHxeXveEanRz+u64sV7A=} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + resolution: {integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=} engines: {node: '>=0.10.0'} shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + resolution: {integrity: sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=} engines: {node: '>=8'} shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + resolution: {integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=} engines: {node: '>=0.10.0'} shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + resolution: {integrity: sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=} engines: {node: '>=8'} shell-quote@1.8.4: - resolution: {integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==} + resolution: {integrity: sha1-Lt2aTc78lmSeLiyxL2N7Hx2SoZA=} engines: {node: '>= 0.4'} shelljs@0.9.2: - resolution: {integrity: sha512-S3I64fEiKgTZzKCC46zT/Ib9meqofLrQVbpSswtjFfAVDW+AZ54WTnAM/3/yENoxz/V1Cy6u3kiiEbQ4DNphvw==} + resolution: {integrity: sha1-qKxyRDRSDNeuJNUgceN6GKwrsYM=} engines: {node: '>=18'} hasBin: true shx@0.4.0: - resolution: {integrity: sha512-Z0KixSIlGPpijKgcH6oCMCbltPImvaKy0sGH8AkLRXw1KyzpKtaCTizP2xen+hNDqVF4xxgvA0KXSb9o4Q6hnA==} + resolution: {integrity: sha1-xupqzn53jaCrMtLqud71nXiOkzY=} engines: {node: '>=18'} hasBin: true side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + resolution: {integrity: sha1-EMtZhCYxFdO3oOM2WR4pCoMK+K0=} engines: {node: '>= 0.4'} side-channel-list@1.0.1: - resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} + resolution: {integrity: sha1-wuC1oUpUCuvuO7xsP4ZmzJtQkSc=} engines: {node: '>= 0.4'} side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + resolution: {integrity: sha1-1rtrN5Asb+9RdOX1M/q0xzKib0I=} engines: {node: '>= 0.4'} side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + resolution: {integrity: sha1-Ed2hnVNo5Azp7CvcH7DsvAeQ7Oo=} engines: {node: '>= 0.4'} side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + resolution: {integrity: sha1-w/z/nE2pMnhIczNeyXZfqU/2a8k=} engines: {node: '>= 0.4'} side-channel@1.1.1: - resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} + resolution: {integrity: sha1-6gLGLgXcS+pn1EQvD7ce4ZL44Ks=} engines: {node: '>= 0.4'} signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + resolution: {integrity: sha1-qaF2f4r4QVURTqq9c/mSc8j1mtk=} signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + resolution: {integrity: sha1-lSGIwcvVRgcOLdIND0HArgUwywQ=} engines: {node: '>=14'} simple-concat@1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + resolution: {integrity: sha1-9Gl2CCujXCJj8cirXt/ibEHJVS8=} simple-get@4.0.1: - resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + resolution: {integrity: sha1-SjnbVJKHyXnTUhEvoD/Zn9a8NUM=} simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + resolution: {integrity: sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=} simple-update-notifier@2.0.0: - resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} + resolution: {integrity: sha1-1wuSvat9bZDf1zkxGVowtuPXzrs=} engines: {node: '>=10'} sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + resolution: {integrity: sha1-E01oEpd1ZDfMBcoBNw06elcQde0=} skin-tone@2.0.0: - resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + resolution: {integrity: sha1-Tjkzq0XA1PT3gXRdZLn0wgjkEjc=} engines: {node: '>=8'} slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + resolution: {integrity: sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=} engines: {node: '>=8'} slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + resolution: {integrity: sha1-vjrd3N8JrDjuvo3Nx7GlenWwlc4=} engines: {node: '>=14.16'} slice-ansi@3.0.0: - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + resolution: {integrity: sha1-Md3BCTCht+C2ewjJbC9Jt3p4l4c=} engines: {node: '>=8'} slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + resolution: {integrity: sha1-UA6N0P1VsFgVCGJVsxla3ypF/ms=} engines: {node: '>=10'} slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + resolution: {integrity: sha1-tzBjxXqpb5zYgWVLFSlNldKFxCo=} engines: {node: '>=12'} slice-ansi@7.1.0: - resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + resolution: {integrity: sha1-zWtGVeKYqNG96wQlCkMwlLNHuak=} engines: {node: '>=18'} smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + resolution: {integrity: sha1-bh1x+k8YwF99D/IW3RakgdDo2a4=} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} smol-toml@1.7.0: - resolution: {integrity: sha512-aqVvWoyO21L23mb+drl4RmMXbf6N7FdHjAhTRA9ZBL7apWBgfWC16KjrASI+1p9GAroljyMHj6fK67i0UiTNvQ==} + resolution: {integrity: sha1-7RslnOfgWQffGr51iXG9Cg7ywN0=} engines: {node: '>= 18'} sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + resolution: {integrity: sha1-ybyJlfM6ERvqA5XsMKoyBr21zM4=} socks-proxy-agent@8.0.5: - resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} + resolution: {integrity: sha1-uc205+mYUJ12WdaJznaXrCFkW+4=} engines: {node: '>= 14'} socks@2.8.7: - resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} + resolution: {integrity: sha1-4vsdmmA63XUFCiBn24w4GgtWaeo=} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} sort-object-keys@1.1.3: - resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} + resolution: {integrity: sha1-v/gz/oXKsUezR0LkWGNFPB4ZC0U=} sort-package-json@1.57.0: - resolution: {integrity: sha512-FYsjYn2dHTRb41wqnv+uEqCUvBpK3jZcTp9rbz2qDTmel7Pmdtf+i2rLaaPMRZeSVM60V3Se31GyWFpmKs4Q5Q==} + resolution: {integrity: sha1-6V+0Svjt4LthR+PzklgQLUuyP8Q=} hasBin: true sort-package-json@3.2.1: - resolution: {integrity: sha512-rTfRdb20vuoAn7LDlEtCqOkYfl2X+Qze6cLbNOzcDpbmKEhJI30tTN44d5shbKJnXsvz24QQhlCm81Bag7EOKg==} + resolution: {integrity: sha1-iJ8730PO7/X6QninxTrlsVINKH4=} hasBin: true source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + resolution: {integrity: sha1-HOVlD93YerwJnto33P8CTCZnrkY=} engines: {node: '>=0.10.0'} source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + resolution: {integrity: sha1-MbJKnC5zwt6FBmwP631Edn7VKTI=} source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + resolution: {integrity: sha1-BP58f54e0tZiIzwoyys1ufY/bk8=} source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + resolution: {integrity: sha1-dHIq8y6WFOnCh6jQu95IteLxomM=} engines: {node: '>=0.10.0'} source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + resolution: {integrity: sha1-qbvnBcnYhG9OCP9nZazw8bCJhlY=} engines: {node: '>= 8'} spark-md5@3.0.2: - resolution: {integrity: sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==} + resolution: {integrity: sha1-eVLEoweENHq87nMmjkc7nAFn4/w=} sparse-bitfield@3.0.3: - resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} + resolution: {integrity: sha1-/0rm5oZWBWuks+eSqzM004JzyhE=} spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + resolution: {integrity: sha1-T1qwZo8AWeNPnADc4zF4ShLeTpw=} spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + resolution: {integrity: sha1-XWB9J/yAb2bXtkp2ZlD6iQ8E7WY=} spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + resolution: {integrity: sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=} spdx-license-ids@3.0.21: - resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} + resolution: {integrity: sha1-bW6YDJ3ytvyQU0OjstcCpiOVNsM=} spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + resolution: {integrity: sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=} spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + resolution: {integrity: sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=} engines: {node: '>=6.0.0'} split@0.3.3: - resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} + resolution: {integrity: sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=} sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} sprintf-js@1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + resolution: {integrity: sha1-SRS5A6L4toXRf994pw6RfocuREo=} stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + resolution: {integrity: sha1-qvB0gWnAL8M8gjKrzPkz9Uocw08=} engines: {node: '>=10'} stat-mode@1.0.0: - resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==} + resolution: {integrity: sha1-aLVcth6mOf9XE282shaikYANFGU=} engines: {node: '>= 6'} static-eval@2.1.1: - resolution: {integrity: sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==} + resolution: {integrity: sha1-caxqE6oyueFMW18GPDYhdrDVhLo=} statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + resolution: {integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=} engines: {node: '>= 0.6'} statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + resolution: {integrity: sha1-VcsADM8dSHKL0jxoWgY5mM8aG2M=} engines: {node: '>= 0.8'} statuses@2.0.2: - resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + resolution: {integrity: sha1-j3XuzvdlteHPzcCA2llAntQk44I=} engines: {node: '>= 0.8'} stdin-discarder@0.2.2: - resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + resolution: {integrity: sha1-OQA39ExK4aGuU1xf443Dq6jZl74=} engines: {node: '>=18'} stop-iteration-iterator@1.1.0: - resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + resolution: {integrity: sha1-9IH/cKVI9hJNAxLDqhTL+nqlQq0=} engines: {node: '>= 0.4'} stream-browserify@3.0.0: - resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + resolution: {integrity: sha1-IrCihQzfZQPnMIXaH8e30MISLy8=} stream-combiner@0.0.4: - resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} + resolution: {integrity: sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=} stream-to-array@2.3.0: - resolution: {integrity: sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==} + resolution: {integrity: sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M=} streamx@2.22.0: - resolution: {integrity: sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==} + resolution: {integrity: sha1-zXteV8larvD/myrveQWvpi7G5Kc=} string-compare@1.1.2: - resolution: {integrity: sha512-LKBVyWCmTPu6fg5Q8Jfdz7yFK9qaJMPVW+zJ1a23o8VuZa0UIgQ3oIsNaNUAXONRtFwD4dP5F/C/VuH+nDruig==} + resolution: {integrity: sha1-ByuOAKcTCLTkE3caGcpVtQ0L41g=} string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + resolution: {integrity: sha1-qKjce9XBqCubPIuH4SX2aHG25Xo=} engines: {node: '>=10'} string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + resolution: {integrity: sha1-JpxxF9J7Ba0uU2gwqOyJXvnG0BA=} engines: {node: '>=8'} string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + resolution: {integrity: sha1-FPja7G2B5yIdKjV+Zoyrc728p5Q=} engines: {node: '>=12'} string-width@7.2.0: - resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + resolution: {integrity: sha1-tbuOIWXOJ11NQ0dt0nAK2Qkdttw=} engines: {node: '>=18'} string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + resolution: {integrity: sha1-QLLdXulMlZtNz7HWXOcukNpIDIE=} engines: {node: '>= 0.4'} string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + resolution: {integrity: sha1-YuJzEnLNKFBBs2WWBU6fZlabaUI=} engines: {node: '>= 0.4'} string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + resolution: {integrity: sha1-fug03ajHwX7/MRhHK7Nb/tqjTd4=} engines: {node: '>= 0.4'} string_decoder@0.10.31: - resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + resolution: {integrity: sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=} string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + resolution: {integrity: sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=} string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + resolution: {integrity: sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=} stringify-object@3.3.0: - resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + resolution: {integrity: sha1-cDBlrvyhkwDTzoivT1s5VtdVZik=} engines: {node: '>=4'} strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + resolution: {integrity: sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=} engines: {node: '>=8'} strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + resolution: {integrity: sha1-1bZWjKaJ2FYTcLBwdoXSJDT6/0U=} engines: {node: '>=12'} strip-ansi@7.1.2: - resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + resolution: {integrity: sha1-Eyh1q95njH6o1pFTPy5+Irt0Tbo=} engines: {node: '>=12'} strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} engines: {node: '>=4'} strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + resolution: {integrity: sha1-nDUFwdtFvO3KPZz3oW9cWqOQGHg=} engines: {node: '>=8'} strip-eof@1.0.0: - resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + resolution: {integrity: sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=} engines: {node: '>=0.10.0'} strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + resolution: {integrity: sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=} engines: {node: '>=6'} strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} engines: {node: '>=0.10.0'} strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + resolution: {integrity: sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=} engines: {node: '>=8'} strip-json-comments@5.0.3: - resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} + resolution: {integrity: sha1-tzBCSd1ALuZ/1RitqZOrNZNFi88=} engines: {node: '>=14.16'} strnum@2.2.3: - resolution: {integrity: sha512-oKx6RUCuHfT3oyVjtnrmn19H1SiCqgJSg+54XqURKp5aCMbrXrhLjRN9TjuwMjiYstZ0MzDrHqkGZ5dFTKd+zg==} + resolution: {integrity: sha1-ARn84CdJoRuxJqTWhqxdvfbldYY=} structured-source@4.0.0: - resolution: {integrity: sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==} + resolution: {integrity: sha1-DJ5Z7kPe3Y/GCmNzH2DjWBAqSUg=} style-mod@4.1.2: - resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} + resolution: {integrity: sha1-yiOKGtR4ZSD3UVqFOdWmNpHXv2c=} stylis@4.4.0: - resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==} + resolution: {integrity: sha1-xYRsk0X0v8Ub0MvXyjWgdE9IWl0=} stylus-lookup@6.1.2: - resolution: {integrity: sha512-O+Q/SJ8s1X2aMLh4213fQ9X/bND9M3dhSsyTRe+O1OXPcewGLiYmAtKCrnP7FDvDBaXB2ZHPkCt3zi4cJXBlCQ==} + resolution: {integrity: sha1-W/3hcwW8dj31511FXpGe95Vf4Ms=} engines: {node: '>=18'} hasBin: true sumchecker@3.0.1: - resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} + resolution: {integrity: sha1-Y3fplnlauwttNI6bPh37JDRajkI=} engines: {node: '>= 8.0'} supports-color@10.2.2: - resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} + resolution: {integrity: sha1-RmwpeMxc0AUtVCoLV2RhwrgC67Q=} engines: {node: '>=18'} supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + resolution: {integrity: sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=} engines: {node: '>=4'} supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + resolution: {integrity: sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=} engines: {node: '>=8'} supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + resolution: {integrity: sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=} engines: {node: '>=10'} supports-hyperlinks@2.3.0: - resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + resolution: {integrity: sha1-OUNUQ0fB/5CxXv+wP8FK5F7BBiQ=} engines: {node: '>=8'} supports-hyperlinks@3.2.0: - resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==} + resolution: {integrity: sha1-uOSFsXloHepJah56vfiYW9MUVGE=} engines: {node: '>=14.18'} supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + resolution: {integrity: sha1-btpL00SjyUrqN21MwxvHcxEDngk=} engines: {node: '>= 0.4'} symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + resolution: {integrity: sha1-QwY30ki6d+B4iDlR+5qg7tfGP6I=} table-layout@4.1.1: - resolution: {integrity: sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==} + resolution: {integrity: sha1-D3KWXeGlwMFBnJuiHK5Oc6L3OkI=} engines: {node: '>=12.17'} table@6.9.0: - resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} + resolution: {integrity: sha1-UAQK+mJkFBx1ZrO4HU2CxHqGaPU=} engines: {node: '>=10.0.0'} tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + resolution: {integrity: sha1-GWenPvQGCoLxKrlq+G1S/bdu7KA=} engines: {node: '>=6'} tapable@2.3.3: - resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} + resolution: {integrity: sha1-XafJmSxGA4IhJnmFqyhCGoh58WA=} engines: {node: '>=6'} tar-fs@2.1.4: - resolution: {integrity: sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==} + resolution: {integrity: sha1-gAgk2/TvBt7Zr+pKyv5xxnx2uTA=} tar-fs@3.1.1: - resolution: {integrity: sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==} + resolution: {integrity: sha1-TxZOWftg8QPUcjYHMejGu0p/6e8=} tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + resolution: {integrity: sha1-rK2EwoQTawYNw/qmRHSqmuvXcoc=} engines: {node: '>=6'} tar-stream@3.1.7: - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + resolution: {integrity: sha1-JLP7XqutoZ/nM47W0m5ffEgueSs=} tar@7.5.16: - resolution: {integrity: sha512-56adEpPMouktRlBLXiaYFFzZ/3+JXa8P9n7WbR+ibIjtviN55mEaOkiysCnPnWm+7kkui1Dn8J9l+g6zV8731w==} + resolution: {integrity: sha1-8R4GOv7UVU91gEnQgpCeN9a1PO0=} engines: {node: '>=18'} temp-file@3.4.0: - resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} + resolution: {integrity: sha1-dm6iiRHGg5lsJI7xog7qBNUWUsc=} temp@0.9.4: - resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==} + resolution: {integrity: sha1-zSCoWAy2NjXQ5OnUvZidRChudiA=} engines: {node: '>=6.0.0'} terminal-link@2.1.1: - resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} + resolution: {integrity: sha1-FKZKJ6s8Dfkz6lRvulXy0HjtyZQ=} engines: {node: '>=8'} terser-webpack-plugin@5.3.16: - resolution: {integrity: sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==} + resolution: {integrity: sha1-dB5EjMP5PYAm6+T3755K+s/VYzA=} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -16893,191 +16911,191 @@ packages: optional: true terser@5.27.0: - resolution: {integrity: sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==} + resolution: {integrity: sha1-cBCGidmrJf72HE6T6Ajp/Qkr8gw=} engines: {node: '>=10'} hasBin: true terser@5.39.2: - resolution: {integrity: sha512-yEPUmWve+VA78bI71BW70Dh0TuV4HHd+I5SHOAfS1+QBOmvmCiiffgjR8ryyEd3KIfvPGFqoADt8LdQ6XpXIvg==} + resolution: {integrity: sha1-WhYmAwckpnLi5bXJzZBwMIwg6Pk=} engines: {node: '>=10'} hasBin: true test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + resolution: {integrity: sha1-BKhphmHYBepvopO2y55jrARO8V4=} engines: {node: '>=8'} test-exclude@7.0.1: - resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} + resolution: {integrity: sha1-ILO6SQasIJlOJ1u8r9aNUQJkwqI=} engines: {node: '>=18'} text-decoder@1.2.1: - resolution: {integrity: sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==} + resolution: {integrity: sha1-4XP1Eh2Xv6P/hyNCmtW6kuHq1n4=} text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} textextensions@5.16.0: - resolution: {integrity: sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw==} + resolution: {integrity: sha1-V91gwwUBm7oyHoSLH98Pmb+lnsE=} engines: {node: '>=0.8'} thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + resolution: {integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=} engines: {node: '>=0.8'} thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + resolution: {integrity: sha1-iTLmhqQGYDigFt2eLKRq3Zg4qV8=} thingies@2.6.0: - resolution: {integrity: sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==} + resolution: {integrity: sha1-4JuYueb2yvinWeyoSB/qHel00rE=} engines: {node: '>=10.18'} peerDependencies: tslib: ^2 through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + resolution: {integrity: sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=} through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=} thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + resolution: {integrity: sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30=} tiny-async-pool@1.3.0: - resolution: {integrity: sha512-01EAw5EDrcVrdgyCLgoSPvqznC0sVxDSVeiOz09FUpjh71G79VCqneOr+xvt7T1r76CF6ZZfPjHorN2+d+3mqA==} + resolution: {integrity: sha1-wBPhs2kJXnAF21WV+V5kbMpu+KU=} tiny-typed-emitter@2.1.0: - resolution: {integrity: sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==} + resolution: {integrity: sha1-s7An/dOJ/4GhUsjoR+4vW+n617U=} tinyexec@1.1.2: - resolution: {integrity: sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==} + resolution: {integrity: sha1-Ef7vIEtwbUZoykAT2ynzvWT1xNw=} engines: {node: '>=18'} tinyglobby@0.2.12: - resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} + resolution: {integrity: sha1-rJQaQuDFdzvQtdCPMt6C50oaYbU=} engines: {node: '>=12.0.0'} tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + resolution: {integrity: sha1-UoCwzz+XKwUOdK6IQGwKalj0B50=} engines: {node: '>=12.0.0'} tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + resolution: {integrity: sha1-4ijdHmOM6pk9L9tPzS1GAqeZUcI=} engines: {node: '>=12.0.0'} tinyglobby@0.2.17: - resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + resolution: {integrity: sha1-ViqabJ6ys7Ej05cZ+a9btE/NdjE=} engines: {node: '>=12.0.0'} tlds@1.261.0: - resolution: {integrity: sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==} + resolution: {integrity: sha1-BV5BLpLwH4SpyKwFBNNHLWizxMk=} hasBin: true tldts-core@5.7.112: - resolution: {integrity: sha512-mutrEUgG2sp0e/MIAnv9TbSLR0IPbvmAImpzqul5O/HJ2XM1/I1sajchQ/fbj0fPdA31IiuWde8EUhfwyldY1Q==} + resolution: {integrity: sha1-FoRZqnlJX11GQHpoWnqfDNyaJys=} tldts-core@6.1.86: - resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} + resolution: {integrity: sha1-qT5u2dUFy1TFQs5D/rFMc5EyZdg=} tldts-core@7.0.26: - resolution: {integrity: sha512-5WJ2SqFsv4G2Dwi7ZFVRnz6b2H1od39QME1lc2y5Ew3eWiZMAeqOAfWpRP9jHvhUl881406QtZTODvjttJs+ew==} + resolution: {integrity: sha1-Bw8UvHpN6r8RXGUBvFwLrk2nTRc=} tldts-experimental@5.7.112: - resolution: {integrity: sha512-Nq5qWN4OiLziAOOOEoSME7cZI4Hz8Srt+9q6cl8mZ5EAhCfmeE6l7K5XjuIKN+pySuGUvthE5aPiD185YU1/lg==} + resolution: {integrity: sha1-akS+EoERYefa8uiZUFY7jn2pTtE=} tldts-experimental@6.1.66: - resolution: {integrity: sha512-hAgdTxaOC1QP2WoB4HKH1R6Df7MDusIFtljZ9XB3bndsQPKeUxHyAuOmvXxzdF7MrgfJmMtfusavNlX/ateEow==} + resolution: {integrity: sha1-3uyv0mTuvmDel7F3H3j8VU1lpj4=} tldts@7.0.26: - resolution: {integrity: sha512-WiGwQjr0qYdNNG8KpMKlSvpxz652lqa3Rd+/hSaDcY4Uo6SKWZq2LAF+hsAhUewTtYhXlorBKgNF3Kk8hnjGoQ==} + resolution: {integrity: sha1-vyRy7YTlX6qv9cJCTAOmurabksU=} hasBin: true tmp-promise@3.0.3: - resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} + resolution: {integrity: sha1-YKGhzJjJiGdPy/0jtuM2e96sTOc=} tmp@0.2.7: - resolution: {integrity: sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==} + resolution: {integrity: sha1-JvTbEdFgHOgBLcuKeY7OHAapkFk=} engines: {node: '>=14.14'} tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + resolution: {integrity: sha1-hoPguQK7nCDE9ybjwLafNlGMB8w=} to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + resolution: {integrity: sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=} engines: {node: '>=8.0'} toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + resolution: {integrity: sha1-O+NDIaiKgg7RvYDfqjPkefu43TU=} engines: {node: '>=0.6'} token-stream@1.0.0: - resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==} + resolution: {integrity: sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=} tough-cookie@4.1.4: - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + resolution: {integrity: sha1-lF8UYbRbWox2ghwz6knDrBksGzY=} engines: {node: '>=6'} tough-cookie@6.0.1: - resolution: {integrity: sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==} + resolution: {integrity: sha1-pJX4M4NmCe2YPBm8ZWOc+861THY=} engines: {node: '>=16'} tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + resolution: {integrity: sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=} tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + resolution: {integrity: sha1-VVxOKXqVBhfo7t3vYzyH1NnWy/k=} engines: {node: '>=12'} tr46@4.1.1: - resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} + resolution: {integrity: sha1-KBp1jcyCrrT+OMff5NEaOVqshGk=} engines: {node: '>=14'} tr46@5.1.1: - resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} + resolution: {integrity: sha1-lq6GfN24/bZKScwwWajUKLzyOMo=} engines: {node: '>=18'} tr46@6.0.0: - resolution: {integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==} + resolution: {integrity: sha1-9aGuVGoK2zKid6InjQ0X+i+Qk+Y=} engines: {node: '>=20'} tree-dump@1.1.0: - resolution: {integrity: sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==} + resolution: {integrity: sha1-qykSkWncRgBEFPWp1KPG6J8T6KQ=} engines: {node: '>=10.0'} peerDependencies: tslib: '2' tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + resolution: {integrity: sha1-TKCakJLIi3OnzcXooBtQeweQoMw=} hasBin: true trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + resolution: {integrity: sha1-lKYL1r03XBUsHfkRpLEdWwJW9Q8=} truncate-utf8-bytes@1.0.2: - resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} + resolution: {integrity: sha1-QFkjkJWS1W94pYGENLC3hInKXys=} ts-algebra@2.0.0: - resolution: {integrity: sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==} + resolution: {integrity: sha1-Tj4JU4ePJlGPzn9rsRUGSmU4i3o=} ts-api-utils@2.5.0: - resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} + resolution: {integrity: sha1-Ss1KFV4ic0mQpe0f6el/ETvLN8E=} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' ts-dedent@2.2.0: - resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} + resolution: {integrity: sha1-OeS9KXzQNikq4jlOs0Er5j9WO7U=} engines: {node: '>=6.10'} ts-deepmerge@7.0.2: - resolution: {integrity: sha512-akcpDTPuez4xzULo5NwuoKwYRtjQJ9eoNfBACiBMaXwNAx7B1PKfe5wqUFJuW5uKzQ68YjDFwPaWHDG1KnFGsA==} + resolution: {integrity: sha1-YzOtzeg+TEI2bpqaf5VcdO6RNUc=} engines: {node: '>=14.13.1'} ts-graphviz@2.1.6: - resolution: {integrity: sha512-XyLVuhBVvdJTJr2FJJV2L1pc4MwSjMhcunRVgDE9k4wbb2ee7ORYnPewxMWUav12vxyfUM686MSGsqnVRIInuw==} + resolution: {integrity: sha1-AH/LQrToxV0mVD7OnoY5W9PDz9Y=} engines: {node: '>=18'} ts-jest@29.3.3: - resolution: {integrity: sha512-y6jLm19SL4GroiBmHwFK4dSHUfDNmOrJbRfp6QmDIlI9p5tT5Q8ItccB4pTIslCIqOZuQnBwpTR0bQ5eUMYwkw==} + resolution: {integrity: sha1-wkwxqdEiaPiImePusFkSyrQsV0w=} engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -17101,7 +17119,7 @@ packages: optional: true ts-jest@29.4.9: - resolution: {integrity: sha512-LTb9496gYPMCqjeDLdPrKuXtncudeV1yRZnF4Wo5l3SFi0RYEnYRNgMrFIdg+FHvfzjCyQk1cLncWVqiSX+EvQ==} + resolution: {integrity: sha1-R9wz0PXDa93O3Rav764oXgsEnS0=} engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -17128,14 +17146,14 @@ packages: optional: true ts-loader@9.5.2: - resolution: {integrity: sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw==} + resolution: {integrity: sha1-Hz1/S7cJtIeqomDo8ZswFjXQgCA=} engines: {node: '>=12.0.0'} peerDependencies: typescript: '*' webpack: ^5.0.0 ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + resolution: {integrity: sha1-cPAhyeGFvM3Kgg4m3EE4BcEBxx8=} hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -17149,76 +17167,76 @@ packages: optional: true tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} + resolution: {integrity: sha1-73jhkDkTNEbSRL6sD9ahYy4tEHw=} engines: {node: '>=6'} tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + resolution: {integrity: sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=} tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + resolution: {integrity: sha1-cDrClCXns3zW/UVukkBNRtHz5K4=} tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + resolution: {integrity: sha1-YS7+TtI11Wfoq6Xypfq3AoCt6D8=} tsscmp@1.0.6: - resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} + resolution: {integrity: sha1-hbmVg6w1iexL/vgltQAKqRHWBes=} engines: {node: '>=0.6.x'} tsx@4.21.0: - resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} + resolution: {integrity: sha1-Mqps8XSB4zb3Vhleb+BNrj5jCLE=} engines: {node: '>=18.0.0'} hasBin: true tsyringe@4.10.0: - resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==} + resolution: {integrity: sha1-0MlYFdWERkIUBgKF6qrdlKoDKZw=} engines: {node: '>= 6.0.0'} tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + resolution: {integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=} tunnel@0.0.6: - resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} + resolution: {integrity: sha1-cvExSzSlsZLbASMk3yzFh8pH+Sw=} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + resolution: {integrity: sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=} engines: {node: '>= 0.8.0'} type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + resolution: {integrity: sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=} engines: {node: '>=4'} type-fest@0.13.1: - resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + resolution: {integrity: sha1-AXLLW86AsL1ULqNI21DH4hg02TQ=} engines: {node: '>=10'} type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + resolution: {integrity: sha1-0mCiSwGYQ24TP6JqUkptZfo7Ljc=} engines: {node: '>=10'} type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + resolution: {integrity: sha1-iAaAFbszA2pZi5UuVekxGmD9Ops=} engines: {node: '>=12.20'} type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + resolution: {integrity: sha1-u3RMHwZ4vqdUOi0ewk6D5o6MhwY=} engines: {node: '>=14.16'} type-fest@4.41.0: - resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + resolution: {integrity: sha1-auHI5XMSc8K/H1itOcuuLJGkbFg=} engines: {node: '>=16'} type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + resolution: {integrity: sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=} engines: {node: '>= 0.6'} type-is@2.0.1: - resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} + resolution: {integrity: sha1-ZPbPA/kvzkAVwrIkeT9r3UsGjJc=} engines: {node: '>= 0.6'} typechat@0.1.1: - resolution: {integrity: sha512-Sw96vmkYqbAahqam7vCp8P/MjIGsR26Odz17UHpVGniYN5ir2B37nRRkoDuRpA5djwNQB+W5TB7w2xoF6kwbHQ==} + resolution: {integrity: sha1-+qW7DRtkeF9FbOnD7HMCxXfZJQk=} engines: {node: '>=18'} peerDependencies: typescript: ^5.3.3 @@ -17230,242 +17248,242 @@ packages: optional: true typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + resolution: {integrity: sha1-pyOVRQpIaewDP9VJNxtHrzou5TY=} engines: {node: '>= 0.4'} typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + resolution: {integrity: sha1-hAegT314aE89JSqhoUPSt3tBYM4=} engines: {node: '>= 0.4'} typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + resolution: {integrity: sha1-rjaYuOyRqKuUUBYQiu8A1b/xI1U=} engines: {node: '>= 0.4'} typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + resolution: {integrity: sha1-7k3v+YS2S+HhGLDejJyHfVznPT0=} engines: {node: '>= 0.4'} typed-query-selector@2.12.0: - resolution: {integrity: sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==} + resolution: {integrity: sha1-krZdvApCZV/M9K6xoIsd3c6K9fI=} typed-rest-client@1.8.11: - resolution: {integrity: sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==} + resolution: {integrity: sha1-aQbwLjyR6NhRV58lWr8P1ggAoE0=} typescript-eslint@8.62.1: - resolution: {integrity: sha512-vymnnM5g0AKQDSAyfP12nMIBvgwgA42syg74kkuZ4x1VuTzwQKwc5h9rGxeShCjny5o+zWAb6OEoz7XLgrIkIw==} + resolution: {integrity: sha1-65P9lNUnqgTsW4RPsLStphPMfT8=} 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@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + resolution: {integrity: sha1-QszvLFcf29D2cYsdH15uXvAG9hE=} engines: {node: '>=14.17'} hasBin: true typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + resolution: {integrity: sha1-W09Z4VMQqxeiFvXWz1PuR27eZw8=} engines: {node: '>=14.17'} hasBin: true typical@4.0.0: - resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} + resolution: {integrity: sha1-y+r/O5164eK7+vWk5vEezP3pT8Q=} engines: {node: '>=8'} typical@7.3.0: - resolution: {integrity: sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==} + resolution: {integrity: sha1-kwN2vjRCKHCfE0YTkR+iKqCWF6Q=} engines: {node: '>=12.17'} uc.micro@2.1.0: - resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + resolution: {integrity: sha1-+NP30OxMPeo1p+PI76TLi0XJ5+4=} uglify-js@3.19.3: - resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + resolution: {integrity: sha1-gjFem7xvKyWIiFis0f/4RBA1t38=} engines: {node: '>=0.8.0'} hasBin: true unbash@4.0.2: - resolution: {integrity: sha512-8gwNZ29+0/3zmXw7ToIHZtg6wK37xnniRUdBt7B27xZxaxfgR5tGMaGHT0t0dLtBV9fXE7zurh0s6Z1DHVjfWg==} + resolution: {integrity: sha1-eewPzKmQ4kx45r3cybjLfXVlM/A=} engines: {node: '>=14'} unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + resolution: {integrity: sha1-jZ0snt7qhGDH81AzqIhnlEk00eI=} engines: {node: '>= 0.4'} unbzip2-stream@1.4.3: - resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + resolution: {integrity: sha1-sNoExDcTEd93HNwhXofyEwmRrOc=} underscore@1.13.6: - resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} + resolution: {integrity: sha1-BHhqH1idxsCfdh/F9FuJ6TUTZEE=} underscore@1.13.8: - resolution: {integrity: sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==} + resolution: {integrity: sha1-qTohGGwEnb8OhHSW26cre9jB6Ss=} undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + resolution: {integrity: sha1-vNU5iT0AtW6WT9JlekhmsiGmVhc=} undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + resolution: {integrity: sha1-aR0ArzkJvpOn+qE75hs6W1DvEss=} undici-types@7.16.0: - resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + resolution: {integrity: sha1-/8zf82rqSITL/OmnUKBYAiT1ikY=} undici-types@7.24.4: - resolution: {integrity: sha512-cRaY9PagdEZoRmcwzk3tUV3SVGrVQkR6bcSilav/A0vXsfpW4Lvd0BvgRMwTEDTLLGN+QdyBTG+nnvTgJhdt6w==} + resolution: {integrity: sha1-ZC2sDLZaKuOJ+MIo/aknMIxlVDs=} undici-types@7.24.6: - resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} + resolution: {integrity: sha1-YSdbSF1/1OnSacfPBOwoc8nMD5E=} undici@6.27.0: - resolution: {integrity: sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==} + resolution: {integrity: sha1-Qfnkj3xaQNJzdsqurYyan8e8qcQ=} engines: {node: '>=18.17'} undici@7.28.0: - resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==} + resolution: {integrity: sha1-l9ZFZBmLKFvCgfDo4pWX49Ef5+w=} engines: {node: '>=20.18.1'} unicode-emoji-modifier-base@1.0.0: - resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + resolution: {integrity: sha1-271bVLow8ofiqNWiSdpsDO82lFk=} engines: {node: '>=4'} unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + resolution: {integrity: sha1-G7mlHII6r51zqL/NPRoj3elLDOQ=} engines: {node: '>=18'} unicorn-magic@0.3.0: - resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + resolution: {integrity: sha1-Tv1FyFpp4N1XbSVTL7+iKqXIoQQ=} engines: {node: '>=18'} unified@11.0.5: - resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + resolution: {integrity: sha1-9mZ3YQpcCp7pDKsrjU1mA3Am2eE=} unist-util-is@5.2.1: - resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + resolution: {integrity: sha1-t0lg4UXBjctiJrxXkzWX9Uht6uk=} unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + resolution: {integrity: sha1-t3WVZIav8Qep3tlx2ZbBczdL5CQ=} unist-util-remove-position@5.0.0: - resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + resolution: {integrity: sha1-/qaKJWWECclGBAi8a0mRuWW1IWM=} unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + resolution: {integrity: sha1-RJxuIaiA4IVb9aq63rOnQDFKusI=} unist-util-visit-parents@5.1.3: - resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} + resolution: {integrity: sha1-tFIIEbDKNChWM3hQRd96jWd2z+s=} unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + resolution: {integrity: sha1-TV+FdVw7jw3GniHspdbYLSIWKBU=} unist-util-visit@4.1.2: - resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} + resolution: {integrity: sha1-ElpC0euHYoNxWjy1zOqlMYKMcuI=} unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + resolution: {integrity: sha1-p94fMfcv/TUZ6nGBTMz1/WqSF9Y=} universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + resolution: {integrity: sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=} engines: {node: '>= 4.0.0'} universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + resolution: {integrity: sha1-ZFF2BWb6hXU0dFqx3elS0bF2G+A=} engines: {node: '>= 4.0.0'} universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + resolution: {integrity: sha1-Fo78IYCWTmOG0GHglN9hr+I5sY0=} engines: {node: '>= 10.0.0'} unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=} engines: {node: '>= 0.8'} untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + resolution: {integrity: sha1-K8lHuVNlJIfkYAlJ+wkeOujNkZs=} engines: {node: '>=8'} update-browserslist-db@1.2.3: - resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + resolution: {integrity: sha1-ZNdttYcTE2rL60xJEUNmzGzC6A0=} hasBin: true peerDependencies: browserslist: '>= 4.21.0' uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + resolution: {integrity: sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=} url-join@4.0.1: - resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + resolution: {integrity: sha1-tkLiGiZGgI/6F4xMX9o5hE4Szec=} url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + resolution: {integrity: sha1-nTwvc2wddd070r5QfcwRHx4uqcE=} url-template@2.0.8: - resolution: {integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==} + resolution: {integrity: sha1-/FZaPMy/93MMd19WQflVV5FDnyE=} user-home@2.0.0: - resolution: {integrity: sha512-KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==} + resolution: {integrity: sha1-nHC/2Babwdy/SGBODwS4tJzenp8=} engines: {node: '>=0.10.0'} utf8-byte-length@1.0.4: - resolution: {integrity: sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==} + resolution: {integrity: sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=} util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + resolution: {integrity: sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=} utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=} engines: {node: '>= 0.4.0'} uuid@14.0.1: - resolution: {integrity: sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew==} + resolution: {integrity: sha1-ill1s+A4kCv9FpoQtSAvXsDPP68=} hasBin: true uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + resolution: {integrity: sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=} 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@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + resolution: {integrity: sha1-4YjUyIU8xyIiA5LEJM1jfzIpPzA=} 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: sha1-Yzbo1xllyz01obu3hoRFp8BSZL8=} v8-to-istanbul@9.1.3: - resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==} + resolution: {integrity: sha1-6kVmBBAc0YAFrCyuPN0aoFimMGs=} engines: {node: '>=10.12.0'} validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + resolution: {integrity: sha1-/JH2uce6FchX9MssXe/uw51PQQo=} validate-npm-package-name@6.0.0: - resolution: {integrity: sha512-d7KLgL1LD3U3fgnvWEY1cQXoO/q6EQ1BSz48Sa149V/5zVTAbgmZIpyI8TRi6U9/JNyeYLlTKsEMPtLC27RFUg==} + resolution: {integrity: sha1-Ot2WbIU8/jbg6OanYu3XKubx1qw=} engines: {node: ^18.17.0 || >=20.5.0} validator@13.15.23: - resolution: {integrity: sha512-4yoz1kEWqUjzi5zsPbAS/903QXSYp0UOtHsPpp7p9rHAw/W+dkInskAE386Fat3oKRROwO98d9ZB0G4cObgUyw==} + resolution: {integrity: sha1-Wah0+E5FlFiONAmrHtvmTpbQxi0=} engines: {node: '>= 0.10'} vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + resolution: {integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=} engines: {node: '>= 0.8'} verror@1.10.1: - resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==} + resolution: {integrity: sha1-S/Ce7M9FY7EJ7Us9RYOAyXKwzes=} engines: {node: '>=0.6.0'} vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + resolution: {integrity: sha1-yIPJ9nfHLBZjYv1jXyH8Flp9EYE=} vfile@6.0.3: - resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + resolution: {integrity: sha1-NlKrHEllMYUr9VprrFevmB68OKs=} vite@5.4.21: - resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} + resolution: {integrity: sha1-hKT3xdhgsHFnbTm6UTwNWY/ccCc=} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -17496,7 +17514,7 @@ packages: optional: true vite@6.4.3: - resolution: {integrity: sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==} + resolution: {integrity: sha1-haFk23znBvKndoEu+is0DxchhY4=} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -17536,36 +17554,36 @@ packages: optional: true void-elements@3.1.0: - resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} + resolution: {integrity: sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=} engines: {node: '>=0.10.0'} vscode-jsonrpc@8.2.0: - resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + resolution: {integrity: sha1-9D36NftR52PRfNlNzKDJRY81q/k=} engines: {node: '>=14.0.0'} vscode-jsonrpc@8.2.1: - resolution: {integrity: sha512-kdjOSJ2lLIn7r1rtrMbbNCHjyMPfRnowdKjBQ+mGq6NAW5QY2bEZC/khaC5OR8svbbjvLEaIXkOq45e2X9BIbQ==} + resolution: {integrity: sha1-oyLMDx2X95T/2cTNKomKC94JfzQ=} engines: {node: '>=14.0.0'} vscode-languageclient@9.0.1: - resolution: {integrity: sha512-JZiimVdvimEuHh5olxhxkht09m3JzUGwggb5eRUkzzJhZ2KjCN0nh55VfiED9oez9DyF8/fz1g1iBV3h+0Z2EA==} + resolution: {integrity: sha1-zf4gJncmyNTbg53B6dGBbhKW6FQ=} engines: {vscode: ^1.82.0} vscode-languageserver-protocol@3.17.5: - resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + resolution: {integrity: sha1-hkqLjzkINVcvThO9n4MT0OOsS+o=} vscode-languageserver-textdocument@1.0.12: - resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + resolution: {integrity: sha1-RX7gQnGrOJmKCTxowjQvU/bkpjE=} vscode-languageserver-types@3.17.5: - resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + resolution: {integrity: sha1-MnNnbwzy6rQLP0TQhay7fwijnYo=} vscode-languageserver@9.0.1: - resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + resolution: {integrity: sha1-UArvggl+uU35DQCGeLC2tfR0AVs=} hasBin: true vue@3.5.16: - resolution: {integrity: sha512-rjOV2ecxMd5SiAmof2xzh2WxntRcigkX/He4YFJ6WdRvVUrbt6DxC1Iujh10XLl8xCDRDtGKMeO3D+pRQ1PP9w==} + resolution: {integrity: sha1-8M3ojCaINU8A/y136ylcJkQPjHo=} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -17573,57 +17591,57 @@ packages: optional: true w3c-keyname@2.2.8: - resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + resolution: {integrity: sha1-exfIxog9TouGrIq6edOeiA+IacU=} w3c-xmlserializer@4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + resolution: {integrity: sha1-rr3ISSDYBiIpNuPNzkCOMkiKMHM=} engines: {node: '>=14'} w3c-xmlserializer@5.0.0: - resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + resolution: {integrity: sha1-+SW6JoVRWFlNkHMTzt0UdsWWf2w=} engines: {node: '>=18'} walk-up-path@4.0.0: - resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} + resolution: {integrity: sha1-WQZm3PgUbi1yMYFk8fKsbvUdQZg=} engines: {node: 20 || >=22} walkdir@0.4.1: - resolution: {integrity: sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==} + resolution: {integrity: sha1-3BGfg/RCHfUuMGHlFCKKLbIK+jk=} engines: {node: '>=6.0.0'} walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + resolution: {integrity: sha1-vUmNtHev5XPcBBhfAR06uKjXZT8=} watchpack@2.5.1: - resolution: {integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==} + resolution: {integrity: sha1-3Ti2AfZp4Mv1Z8uALnXOrYLN4QI=} engines: {node: '>=10.13.0'} wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + resolution: {integrity: sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=} wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + resolution: {integrity: sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=} web-streams-polyfill@4.0.0-beta.3: - resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + resolution: {integrity: sha1-KJhIa3T1FWCV5HPv6Ync8YUEejg=} engines: {node: '>= 14'} webdriver-bidi-protocol@0.4.1: - resolution: {integrity: sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==} + resolution: {integrity: sha1-1BHnuOFYQI2DuxZrC08QVPo/B34=} webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=} webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + resolution: {integrity: sha1-JWtOGIK+feu/AdBfCqIDl3jqCAo=} engines: {node: '>=12'} webidl-conversions@8.0.1: - resolution: {integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==} + resolution: {integrity: sha1-Blflcf5vBvyxXKUO0f28tJXNFoY=} engines: {node: '>=20'} webpack-cli@5.1.4: - resolution: {integrity: sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==} + resolution: {integrity: sha1-yOBGun6q5JEdfnHislt3b8w1dZs=} engines: {node: '>=14.15.0'} hasBin: true peerDependencies: @@ -17640,7 +17658,7 @@ packages: optional: true webpack-dev-middleware@7.4.5: - resolution: {integrity: sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==} + resolution: {integrity: sha1-1OhyCqKcsDvBWAhKlO20WU47esA=} engines: {node: '>= 18.12.0'} peerDependencies: webpack: ^5.0.0 @@ -17649,7 +17667,7 @@ packages: optional: true webpack-dev-server@5.2.5: - resolution: {integrity: sha512-4wZtCquSuv9CKX8oybo+mqxtxZqWz47uM1Ch94lxowBztOhWCbhqvRbfC/mODOwxgV2brY+JGZpHq58/SuVFYg==} + resolution: {integrity: sha1-ZI/Oqsalc2sJNeXB5V1qodBiYRk=} engines: {node: '>= 18.12.0'} hasBin: true peerDependencies: @@ -17662,15 +17680,15 @@ packages: optional: true webpack-merge@5.10.0: - resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} + resolution: {integrity: sha1-o61ddzJB6caCgDq/Yo1M1iuKQXc=} engines: {node: '>=10.0.0'} webpack-sources@3.3.3: - resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} + resolution: {integrity: sha1-1L9/mQlnXXoHD/FNDvKk88mCxyM=} engines: {node: '>=10.13.0'} webpack@5.105.0: - resolution: {integrity: sha512-gX/dMkRQc7QOMzgTe6KsYFM7DxeIONQSui1s0n/0xht36HvrgbxtM1xBlgx596NbpHuQU8P7QpKwrZYwUX48nw==} + resolution: {integrity: sha1-OLXmxduMvoHeu9FuCJM1raBeojo=} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -17680,152 +17698,152 @@ packages: optional: true websocket-driver@0.7.5: - resolution: {integrity: sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==} + resolution: {integrity: sha1-Vp0idkqyHy3iCvDnS0EeiuWg+kY=} engines: {node: '>=0.8.0'} websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + resolution: {integrity: sha1-f4RzvIOd/YdgituV1+sHUhFXikI=} engines: {node: '>=0.8.0'} webvtt-parser@2.2.0: - resolution: {integrity: sha512-FzmaED+jZyt8SCJPTKbSsimrrnQU8ELlViE1wuF3x1pgiQUM8Llj5XWj2j/s6Tlk71ucPfGSMFqZWBtKn/0uEA==} + resolution: {integrity: sha1-eQKfuQZ+3LIQgg+mEBw32bi3jZ8=} whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + resolution: {integrity: sha1-52NfWX/YcCCFhiaAWicp+naYrFM=} engines: {node: '>=12'} deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + resolution: {integrity: sha1-0PTvdpkF1CbhaI8+NDgambYLduU=} engines: {node: '>=18'} deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + resolution: {integrity: sha1-X6GnYjhn/xr2yj3HKta4pCCL66c=} engines: {node: '>=12'} whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + resolution: {integrity: sha1-vBv5SphdxQOI1UqSWKxAXDyi/Ao=} engines: {node: '>=18'} whatwg-mimetype@5.0.0: - resolution: {integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==} + resolution: {integrity: sha1-2CMoldvVJ86u5079QWIAj7ioz0g=} engines: {node: '>=20'} whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + resolution: {integrity: sha1-CoSe67X68hGbkBu3b9eVwoSNQBg=} engines: {node: '>=12'} whatwg-url@13.0.0: - resolution: {integrity: sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==} + resolution: {integrity: sha1-t7U2rKSDBjlKNORL2o6Z8zJBD48=} engines: {node: '>=16'} whatwg-url@14.2.0: - resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} + resolution: {integrity: sha1-TuAtXXJRVdrgBPaulcc+fvXZVmM=} engines: {node: '>=18'} whatwg-url@16.0.1: - resolution: {integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==} + resolution: {integrity: sha1-BH9/S9Nu92txmMFy0bHOvGb3ZN0=} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + resolution: {integrity: sha1-lmRU6HZUYuN2RNNib2dCzotwll0=} which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + resolution: {integrity: sha1-127Cfff6Fl8Y1YCDdKX+I8KbF24=} engines: {node: '>= 0.4'} which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + resolution: {integrity: sha1-iRg9obSQerCJprAgKcxdjWV0Jw4=} engines: {node: '>= 0.4'} which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + resolution: {integrity: sha1-Yn73YkOSChB+fOjpYZHevksWwqA=} engines: {node: '>= 0.4'} which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} + resolution: {integrity: sha1-3wOELocLa4jhF1JKSzZLb8aJ+VY=} engines: {node: '>= 0.4'} which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + resolution: {integrity: sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=} hasBin: true which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + resolution: {integrity: sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=} engines: {node: '>= 8'} hasBin: true which@5.0.0: - resolution: {integrity: sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==} + resolution: {integrity: sha1-2T8tk/eYNNQ2PH0MI+ANB8RmyNY=} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true which@6.0.1: - resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} + resolution: {integrity: sha1-AhZCRDoZj7k7eEpWBnIcsYz8v84=} engines: {node: ^20.17.0 || >=22.9.0} hasBin: true widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + resolution: {integrity: sha1-gpIzO79my0X/DeFgOxNreuFJbso=} engines: {node: '>=8'} widest-line@5.0.0: - resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + resolution: {integrity: sha1-t0gmoeSAeDNF8M2QYbSXU8nacNA=} engines: {node: '>=18'} wildcard@2.0.1: - resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + resolution: {integrity: sha1-WrENAkhxmJVINrY0n3T/+WHhD2c=} winreg@1.2.5: - resolution: {integrity: sha512-uf7tHf+tw0B1y+x+mKTLHkykBgK2KMs3g+KlzmyMbLvICSHQyB/xOFjTT8qZ3oeTFyU7Bbj4FzXitGG6jvKhYw==} + resolution: {integrity: sha1-tlA4PokniVJJS10RO6BJpaT6ltg=} with@7.0.2: - resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==} + resolution: {integrity: sha1-zO461ULSVTinp6gKrSErmChJW6w=} engines: {node: '>= 10.0.0'} word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + resolution: {integrity: sha1-0sRcbdT7zmIaZvE2y+Mor9BBCzQ=} engines: {node: '>=0.10.0'} wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + resolution: {integrity: sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=} wordwrapjs@5.1.0: - resolution: {integrity: sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==} + resolution: {integrity: sha1-TE0gRG3MZwsU+hFe9Pj9mUevKzo=} engines: {node: '>=12.17'} workerpool@6.5.1: - resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} + resolution: {integrity: sha1-Bg9zs50Mr5fG22TaAEzQG0wJlUQ=} workerpool@9.3.4: - resolution: {integrity: sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==} + resolution: {integrity: sha1-9skjlbIUGv144qiJ6AyzOP6fykE=} wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + resolution: {integrity: sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=} engines: {node: '>=8'} wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + resolution: {integrity: sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=} engines: {node: '>=10'} wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + resolution: {integrity: sha1-VtwiNo7lcPrOG0mBmXXZuaXq0hQ=} engines: {node: '>=12'} wrap-ansi@9.0.0: - resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + resolution: {integrity: sha1-Gj3Itw2F7rg5jd+x5KAs0Ybliz4=} engines: {node: '>=18'} wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + resolution: {integrity: sha1-qd8Brlt3hYoCf9LoB2juQzVV/P0=} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} ws@7.5.11: - resolution: {integrity: sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA==} + resolution: {integrity: sha1-lGDa8YEruBpCPFuerHRpQahjEPo=} engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 @@ -17837,7 +17855,7 @@ packages: optional: true ws@8.21.0: - resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} + resolution: {integrity: sha1-AS5BP8B0KZRRIbDBUxWMQ0MIaVE=} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -17849,59 +17867,59 @@ packages: optional: true wsl-utils@0.1.0: - resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} + resolution: {integrity: sha1-h4PU32cdTVA2W+LuTHGRegVXuqs=} engines: {node: '>=18'} xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + resolution: {integrity: sha1-eaAG4uYxSahgDxVDDwpHJdFSSDU=} engines: {node: '>=12'} xml-name-validator@5.0.0: - resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + resolution: {integrity: sha1-gr6blX96/az5YeWYDxvyJ8C/dnM=} engines: {node: '>=18'} xml-naming@0.1.0: - resolution: {integrity: sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==} + resolution: {integrity: sha1-ircQbFuNI8qi+rrByt8XE2N5+9g=} engines: {node: '>=16.0.0'} xml2js@0.4.23: - resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} + resolution: {integrity: sha1-oMaVFnUkIesqx1juTUzPWIQ+rGY=} engines: {node: '>=4.0.0'} xml2js@0.5.0: - resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} + resolution: {integrity: sha1-2UQGMfuy7YACA/rRBvJyT2LEk7c=} engines: {node: '>=4.0.0'} xml2js@0.6.2: - resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} + resolution: {integrity: sha1-3QtjAIOqCcFh4lpNCQHisqkptJk=} engines: {node: '>=4.0.0'} xmlbuilder2@4.0.3: - resolution: {integrity: sha512-bx8Q1STctnNaaDymWnkfQLKofs0mGNN7rLLapJlGuV3VlvegD7Ls4ggMjE3aUSWItCCzU0PEv45lI87iSigiCA==} + resolution: {integrity: sha1-kWYPptMPGdcW+LEZTFZ2htRALGM=} engines: {node: '>=20.0'} xmlbuilder@11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + resolution: {integrity: sha1-vpuuHIoEbnazESdyY0fQrXACvrM=} engines: {node: '>=4.0'} xmlbuilder@15.1.1: - resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} + resolution: {integrity: sha1-nc3OSe6mbY0QtCyulKecPI0MLsU=} engines: {node: '>=8.0'} xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + resolution: {integrity: sha1-Bg/hvLf5x2/ioX24apvDq4lCEMs=} xss@1.0.15: - resolution: {integrity: sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==} + resolution: {integrity: sha1-lqDhOIbwZhBjAotBDtGxhnD05Zo=} engines: {node: '>= 0.10.0'} hasBin: true xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + resolution: {integrity: sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=} engines: {node: '>=0.4'} y-prosemirror@1.3.5: - resolution: {integrity: sha512-qW8fXCb72L6H2BWiuhZdSJ6hiShHUog08gh6KvBqLjhK6Et9DxfDnMDvx6yyO3iCdnEhDfUJviRvaMAAXb0dNg==} + resolution: {integrity: sha1-tz3+4G+ck2hDQGNbKahPnjoAHJ0=} engines: {node: '>=16.0.0', npm: '>=8.0.0'} peerDependencies: prosemirror-model: ^1.7.1 @@ -17911,121 +17929,121 @@ packages: yjs: ^13.5.38 y-protocols@1.0.6: - resolution: {integrity: sha512-vHRF2L6iT3rwj1jub/K5tYcTT/mEYDUppgNPXwp8fmLpui9f7Yeq3OEtTLVF012j39QnV+KEQpNqoN7CWU7Y9Q==} + resolution: {integrity: sha1-ZtrYqVdSYjRD6OKMDpI2gtLA1JU=} engines: {node: '>=16.0.0', npm: '>=8.0.0'} peerDependencies: yjs: ^13.0.0 y-websocket@3.0.0: - resolution: {integrity: sha512-mUHy7AzkOZ834T/7piqtlA8Yk6AchqKqcrCXjKW8J1w2lPtRDjz8W5/CvXz9higKAHgKRKqpI3T33YkRFLkPtg==} + resolution: {integrity: sha1-6GvbKcwKU8uNbjPsjSRhSnI4Mq8=} engines: {node: '>=16.0.0', npm: '>=8.0.0'} peerDependencies: yjs: ^13.5.6 y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + resolution: {integrity: sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=} engines: {node: '>=10'} yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + resolution: {integrity: sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=} yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + resolution: {integrity: sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=} yallist@5.0.0: - resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + resolution: {integrity: sha1-AOLeRDY57Q14/YfeDSdGn7z/tTM=} engines: {node: '>=18'} yaml@2.8.3: - resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==} + resolution: {integrity: sha1-oNa9Lvs90DxZNwIjcBg05gQJvX0=} engines: {node: '>= 14.6'} hasBin: true yaml@2.9.0: - resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + resolution: {integrity: sha1-eCdK/ZNZih391hMN9qVm3vy/mqQ=} engines: {node: '>= 14.6'} hasBin: true yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + resolution: {integrity: sha1-LrfcOwKJcY/ClfNidThFxBoMlO4=} engines: {node: '>=10'} yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + resolution: {integrity: sha1-kJa87r+ZDSG7MfqVFuDt4pSnfTU=} engines: {node: '>=12'} yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + resolution: {integrity: sha1-8TH5ImkRrl2a04xDL+gJNmwjJes=} engines: {node: '>=10'} yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + resolution: {integrity: sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=} engines: {node: '>=10'} yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + resolution: {integrity: sha1-mR3zmspnWhkrgW4eA2P5110qomk=} engines: {node: '>=12'} yauzl@2.10.0: - resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + resolution: {integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=} yazl@2.5.1: - resolution: {integrity: sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==} + resolution: {integrity: sha1-o9ZdPdZZpbCTeFDoYJ8i//orXDU=} yjs@13.6.27: - resolution: {integrity: sha512-OIDwaflOaq4wC6YlPBy2L6ceKeKuF7DeTxx+jPzv1FHn9tCZ0ZwSRnUBxD05E3yed46fv/FWJbvR+Ud7x0L7zw==} + resolution: {integrity: sha1-iJm+kp1X2gWgqhEtBEpcIEOTq3s=} engines: {node: '>=16.0.0', npm: '>=8.0.0'} ylru@1.4.0: - resolution: {integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==} + resolution: {integrity: sha1-DPCqV+nCT4osveDMHKLJWSrE4PY=} engines: {node: '>= 4.0.0'} yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + resolution: {integrity: sha1-HodAGgnXZ8HV6rJqbkwYUYLS61A=} engines: {node: '>=6'} yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + resolution: {integrity: sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=} engines: {node: '>=10'} yocto-queue@1.1.1: - resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} + resolution: {integrity: sha1-/vZc46yfijLOrFpjT3ThflsjIRA=} engines: {node: '>=12.20'} yoctocolors-cjs@2.1.2: - resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + resolution: {integrity: sha1-9LkFqECjdQaBOnrKoo/r6XdnokI=} engines: {node: '>=18'} yoga-wasm-web@0.3.3: - resolution: {integrity: sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==} + resolution: {integrity: sha1-646fyxjl5lGZRzLxmiIMuIXZMro=} zip-stream@2.1.3: - resolution: {integrity: sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==} + resolution: {integrity: sha1-JsxL25NkGoWQ3QcRLh93rxdYhls=} engines: {node: '>= 6'} zip-stream@6.0.1: - resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} + resolution: {integrity: sha1-4UG5MO1gzK9df6nIJg4NF0iiu/s=} engines: {node: '>= 14'} zod-to-json-schema@3.25.1: - resolution: {integrity: sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==} + resolution: {integrity: sha1-fySWIQGkOd2t4r8a6rPDv+x9hLo=} peerDependencies: zod: ^3.25 || ^4 zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + resolution: {integrity: sha1-43uVe11SB5dp+4CXCZtZLw70Bn0=} zod@3.25.76: - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + resolution: {integrity: sha1-JoQcP2/SKmonYOfMtxkXl2hHHjQ=} zod@4.1.13: - resolution: {integrity: sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==} + resolution: {integrity: sha1-k2maiv6Te6lrrbsM6L5gM8CktrE=} zod@4.3.6: - resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + resolution: {integrity: sha1-icVuCqfSsFEH2JRBIicIeIWrESo=} zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + resolution: {integrity: sha1-yCfUsKy3b8PmhaTG7CkC1RBw6dc=} snapshots: @@ -20563,10 +20581,10 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.4.5))': + '@jest/core@29.7.0(supports-color@8.1.1)(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5))': dependencies: '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 + '@jest/reporters': 29.7.0(supports-color@8.1.1) '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 @@ -20577,7 +20595,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.19.21)(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@22.19.21)(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -20598,10 +20616,10 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.4.5))': + '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.4.5))': dependencies: '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 + '@jest/reporters': 29.7.0(supports-color@8.1.1) '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 @@ -20612,7 +20630,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.19.21)(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@22.19.21)(ts-node@10.9.2(@types/node@22.15.18)(typescript@5.4.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -20633,10 +20651,10 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5))': + '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.4.5))': dependencies: '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 + '@jest/reporters': 29.7.0(supports-color@8.1.1) '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 @@ -20647,7 +20665,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.19.21)(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)) + jest-config: 29.7.0(@types/node@22.19.21)(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.4.5)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -20671,7 +20689,7 @@ snapshots: '@jest/core@29.7.0(ts-node@10.9.2(@types/node@25.9.3)(typescript@5.4.5))': dependencies: '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 + '@jest/reporters': 29.7.0(supports-color@8.1.1) '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 @@ -20739,7 +20757,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@jest/reporters@29.7.0': + '@jest/reporters@29.7.0(supports-color@8.1.1)': dependencies: '@bcoe/v8-coverage': 0.2.3 '@jest/console': 29.7.0 @@ -20756,7 +20774,7 @@ snapshots: istanbul-lib-coverage: 3.2.0 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.1.6 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -22226,18 +22244,18 @@ snapshots: dependencies: '@secretlint/types': 9.3.2 - '@secretlint/config-loader@9.3.2': + '@secretlint/config-loader@9.3.2(supports-color@8.1.1)': dependencies: '@secretlint/profiler': 9.3.2 '@secretlint/resolver': 9.3.2 '@secretlint/types': 9.3.2 ajv: 8.20.0 debug: 4.4.3(supports-color@8.1.1) - rc-config-loader: 4.1.3 + rc-config-loader: 4.1.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@secretlint/core@9.3.2': + '@secretlint/core@9.3.2(supports-color@8.1.1)': dependencies: '@secretlint/profiler': 9.3.2 '@secretlint/types': 9.3.2 @@ -22246,11 +22264,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@secretlint/formatter@9.3.2': + '@secretlint/formatter@9.3.2(supports-color@8.1.1)': dependencies: '@secretlint/resolver': 9.3.2 '@secretlint/types': 9.3.2 - '@textlint/linter-formatter': 14.7.1 + '@textlint/linter-formatter': 14.7.1(supports-color@8.1.1) '@textlint/module-interop': 14.7.1 '@textlint/types': 14.7.1 chalk: 4.1.2 @@ -22262,11 +22280,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@secretlint/node@9.3.2': + '@secretlint/node@9.3.2(supports-color@8.1.1)': dependencies: - '@secretlint/config-loader': 9.3.2 - '@secretlint/core': 9.3.2 - '@secretlint/formatter': 9.3.2 + '@secretlint/config-loader': 9.3.2(supports-color@8.1.1) + '@secretlint/core': 9.3.2(supports-color@8.1.1) + '@secretlint/formatter': 9.3.2(supports-color@8.1.1) '@secretlint/profiler': 9.3.2 '@secretlint/source-creator': 9.3.2 '@secretlint/types': 9.3.2 @@ -22665,7 +22683,7 @@ snapshots: '@textlint/ast-node-types@14.7.1': {} - '@textlint/linter-formatter@14.7.1': + '@textlint/linter-formatter@14.7.1(supports-color@8.1.1)': dependencies: '@azu/format-text': 1.0.2 '@azu/style-format': 1.0.1 @@ -23592,7 +23610,7 @@ snapshots: '@vscode/vsce@3.4.0(supports-color@8.1.1)': dependencies: '@azure/identity': 4.13.1 - '@secretlint/node': 9.3.2 + '@secretlint/node': 9.3.2(supports-color@8.1.1) '@secretlint/secretlint-formatter-sarif': 9.3.2 '@secretlint/secretlint-rule-no-dotenv': 9.3.2 '@secretlint/secretlint-rule-preset-recommend': 9.3.2 @@ -23770,7 +23788,7 @@ snapshots: internal-ip: 6.2.0 nanocolors: 0.2.13 open: 8.4.2 - portfinder: 1.0.38(supports-color@8.1.1) + portfinder: 1.0.38 transitivePeerDependencies: - bufferutil - supports-color @@ -23882,7 +23900,7 @@ snapshots: diff: 5.2.2 globby: 11.1.0 nanocolors: 0.2.13 - portfinder: 1.0.38(supports-color@8.1.1) + portfinder: 1.0.38 source-map: 0.7.4 transitivePeerDependencies: - bare-buffer @@ -27896,7 +27914,7 @@ snapshots: make-dir: 4.0.0 supports-color: 7.2.0 - 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@8.1.1) istanbul-lib-coverage: 3.2.0 @@ -28008,7 +28026,7 @@ snapshots: jest-cli@29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)) + '@jest/core': 29.7.0(supports-color@8.1.1)(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 @@ -28027,7 +28045,7 @@ snapshots: jest-cli@29.7.0(@types/node@22.19.21)(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)) + '@jest/core': 29.7.0(supports-color@8.1.1)(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 @@ -28559,24 +28577,24 @@ snapshots: - supports-color - ts-node - jest@29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.4.5)): + jest@29.7.0(@types/node@22.19.19)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.4.5)) + '@jest/core': 29.7.0(supports-color@8.1.1)(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.4.5)) + jest-cli: 29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros - supports-color - ts-node - jest@29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)): + jest@29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)) + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.4.5)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)) + jest-cli: 29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.19)(typescript@5.4.5)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -28585,7 +28603,7 @@ snapshots: jest@29.7.0(@types/node@22.19.21)(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)) + '@jest/core': 29.7.0(supports-color@8.1.1)(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)) '@jest/types': 29.6.3 import-local: 3.2.0 jest-cli: 29.7.0(@types/node@22.19.21)(ts-node@10.9.2(@types/node@22.19.21)(typescript@5.4.5)) @@ -30464,7 +30482,7 @@ snapshots: path-data-parser: 0.1.0 points-on-curve: 0.2.0 - portfinder@1.0.38(supports-color@8.1.1): + portfinder@1.0.38: dependencies: async: 3.2.6 debug: 4.4.3(supports-color@8.1.1) @@ -30997,7 +31015,7 @@ snapshots: iconv-lite: 0.7.2 unpipe: 1.0.0 - rc-config-loader@4.1.3: + rc-config-loader@4.1.3(supports-color@8.1.1): dependencies: debug: 4.4.3(supports-color@8.1.1) js-yaml: 4.3.0 @@ -31448,8 +31466,8 @@ snapshots: secretlint@9.3.2(supports-color@8.1.1): dependencies: '@secretlint/config-creator': 9.3.2 - '@secretlint/formatter': 9.3.2 - '@secretlint/node': 9.3.2 + '@secretlint/formatter': 9.3.2(supports-color@8.1.1) + '@secretlint/node': 9.3.2(supports-color@8.1.1) '@secretlint/profiler': 9.3.2 debug: 4.4.3(supports-color@8.1.1) globby: 14.1.0