From 673ac3205e36c37e9109a15597c598ddad13c322 Mon Sep 17 00:00:00 2001 From: Kevin Ness Date: Mon, 25 Aug 2025 13:24:17 -0500 Subject: [PATCH 01/11] Initial pass at blog post for next release --- blog/boa-release-21.md | 208 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 blog/boa-release-21.md diff --git a/blog/boa-release-21.md b/blog/boa-release-21.md new file mode 100644 index 00000000..00652cd6 --- /dev/null +++ b/blog/boa-release-21.md @@ -0,0 +1,208 @@ +--- +layout: post +tags: [post] +title: "Boa release v0.21" +description: "Boa release v0.21" +authors: boa-dev +--- + +## Summary + +Boa v0.21 is now available! After 9 months of development we are very +happy to present you the latest release of the Boa JavaScript engine. +Boa makes it easy to embed a JS engine in your projects, and you can +even use it from WebAssembly. See the [about](/about) page for more +info. + +In this release, our conformance has grown from 89.92% to 93.94% in the +official ECMAScript Test Suite (Test262). Our growth in conformance is +driven by increased conformance for Temporal (discussed further below) +with the rest of the development effort being focused on performance and +runtime features. We will continue to implement more of the +specification; however, as of the current moment, Boa's conformance +aligns with the major browser engine's conformance, so future increases +in conformance will be minor or bound to the feature size going forward. + +You can check the full list of changes [here][changelog], and the full +information on conformance [here][conformance]. + + + +## Feature Highlights + +### Temporal + +There has been a lot of progress made on Temporal, the new Stage 3 +date/time proposal. With this release, Boa's conformance on Temporal +grew from 40.67% to 97.06%. As of this moment, Boa is the second most +conformant Temporal implementation behind SpiderMonkey with others soon +to follow. + +The implementation is backed by the `temporal_rs` date/time Rust +library, which we went over briefly in our June +[blog post](./2025-06-15-temporal-impl-1.md) with hopefully another post +in the not too distant future. So far, `temporal_rs` has been used in +both V8 and Keisel to implement Temporal as well. + +Temporal can be used from `boa_cli` or enabled in `boa_engine` with the +`experimental` or `temporal` feature. + +You can also try out Temporal directly in Rust using `temporal_rs`: + +``` +cargo add temporal_rs +``` + +#### Special thanks + +Special thanks to all the student's from University of Bergen as well as +Shane Carr ([@sffc](https://github.com/@sffc)) and Manish Goregaokar +([@manishearth](https://github.com/@manishearth)) from ICU4X for their +contributions and help with `temporal_rs`. + +### New Set methods + +Boa now supports the new set methods added in ES2025. + +These new methods are: + +- `Set.prototype.intersection(other)` +- `Set.prototype.union(other)` +- `Set.prototype.difference(other)` +- `Set.prototype.symmetricDifference(other)` +- `Set.prototype.isSubsetOf(other)` +- `Set.prototype.isSupersetOf(other)` +- `Set.prototype.isDisjointFrom(other)` + +Thanks to [@Hemenguelbindi](https://github.com/@Hemenguelbindi) for +their work on this feature. + +### Float16 support for TypedArrays, Dataview and Math built-ins + +Boa now supports `f16` types for the TypedArray, Dataview, and Math +built-ins. + +```javascript +const x = new Float16Array([37, 42]); +console.log(x[1]); // 42 +``` + +### Error.isError + +Boa now supports `Error.isError`, which is accepted for ES2026. + +```javascript +let check = Error.isError(new Error()); // returns true +``` + +### Math.sumPrecise + +Boa now supports `Math.sumPrecise`, which is accepted for ES2026. + +```javascript +let sum = Math.sumPrecise([1.0, 2.5]); +console.log(sum); // 3.5 +``` + +## Boa Runtime + +Work on Boa's runtime crate has continued with additional APIs added. + +### Additional APIs + +Additional APIs added the the Runtime crate include: + +- `fetch` +- `setTimeout` +- `setInterval` +- `clearInterval` +- `queueMicrotask` + +### Conformance testing + +We've added some support for conformance testing runtime features +against the Web Platform Tests (WPT). + +## Performance + +### Register VM + +With this release, Boa's virtual machine (VM) moved from a stack based +VM to a register based VM. + +## New Contributors + +TODO + +## Looking Forward + +### Garbage collector rewrite + +This has been long overdue. Boa's garbage collector is a forked and +modified verison of `rust-gc`, and we have long been pushing our forked +gc to its limits. + +We have seen plenty of evidence that simply swapping allocators can +increase Boa's performance, and work on this will hopefully resume soon. +If you're interested in garbage collectors and/or would be interested in +helping out, feel free to join our GC room on [Matrix]. + +### Runtime functionality + +The `boa_runtime` crate was initially meant to contain functionality +that was not meant to exist in the core engine, primarily our console +implementation. Noticeably, we have since added more runtime features to +the crate with more expected in the next release. + +Our current plan is if there is enough interest and the crate becomes +too large, we will split `boa_runtime` into it's own repository. If you +are interested in implementing any runtime features, feel free to reach +out. + +## How can you support Boa? + +Boa is an independent JavaScript engine implementing the ECMAScript +specification, and we rely on the support of the community to keep it +going. If you want to support us, you can do so by donating to our [open +collective]. Proceeeds here go towards this very website, the domain +name, and remunerating members of the team who have worked on the +features released. + +If financial contribution is not your strength, you can contribute by +asking to be assigned to one of our [open issues], and asking for +mentoring if you don't know your way around the engine. Our +[contribution guide] should help you here. If you are more used to +working with JavaScript or frontend web development, we also welcome +help to improve our web presence, either in [our website], or in our +[testing representation] page or benchmarks page. You can also +contribute to our Criterion benchmark comparison GitHub [action]. + +We are also looking to improve the documentation of the engine, both for +developers of the engine itself and for users of the engine. Feel free +to contact us in [Matrix]. + +[open collective]: https://opencollective.com/boa +[open issues]: + https://github.com/boa-dev/boa/issues?q=is%3Aopen+is%3Aissue+no%3Aassignee +[contribution guide]: + https://github.com/boa-dev/boa/blob/main/CONTRIBUTING.md +[our website]: https://github.com/boa-dev/boa-dev.github.io +[testing representation]: https://github.com/boa-dev/boa/issues/820 +[action]: https://github.com/boa-dev/criterion-compare-action +[Matrix]: https://matrix.to/#/#boa:matrix.org + +## Thank You + +Once again, big thanks to [all the contributors][contributors] of this +release!!! + +[contributors]: + https://github.com/boa-dev/boa/graphs/contributors?from=2024-12-05&to=2025-08-30&type=c +[changelog]: https://github.com/boa-dev/boa/blob/v0.21/CHANGELOG.md +[conformance]: https://boajs.dev/boa/test262/ +[feed]: https://boajs.dev/blog/rss.xml +[collective]: https://opencollective.com/boa +[easy_issues]: + https://github.com/boa-dev/boa/issues?q=is%3Aopen+is%3Aissue+label%3AE-Easy +[first_issues]: + https://github.com/boa-dev/boa/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22 From 35878d7f5ef3c4f327e4d029c788ceb2762d10d4 Mon Sep 17 00:00:00 2001 From: Kevin Ness Date: Wed, 27 Aug 2025 22:24:53 -0500 Subject: [PATCH 02/11] Small adjustments + add backtrace section with gif --- blog/boa-release-21/img/backtrace.gif | Bin 0 -> 51491 bytes .../index.md} | 31 +++++++++++++----- blog/boa-release-21/tapes/backtrace.tape | 30 +++++++++++++++++ 3 files changed, 52 insertions(+), 9 deletions(-) create mode 100644 blog/boa-release-21/img/backtrace.gif rename blog/{boa-release-21.md => boa-release-21/index.md} (86%) create mode 100644 blog/boa-release-21/tapes/backtrace.tape diff --git a/blog/boa-release-21/img/backtrace.gif b/blog/boa-release-21/img/backtrace.gif new file mode 100644 index 0000000000000000000000000000000000000000..a65a17dbbf86518f6bccc094e719170cd4d8e7c2 GIT binary patch literal 51491 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 { throw new Error() }; oops();" > yikes.js ` + +Enter + +Type@100ms "boa yikes.js" + +Enter + +Sleep 4s + +Hide + +Type "rm yikes.js" + +Enter + From f6b41639eb7001c49c7ff47f736c51cb2199c78c Mon Sep 17 00:00:00 2001 From: Kevin Ness <46825870+nekevss@users.noreply.github.com> Date: Wed, 3 Sep 2025 18:28:20 -0500 Subject: [PATCH 03/11] Update blog/boa-release-21/index.md Co-authored-by: Hans Larsen --- blog/boa-release-21/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blog/boa-release-21/index.md b/blog/boa-release-21/index.md index 2656a6b6..4f95624c 100644 --- a/blog/boa-release-21/index.md +++ b/blog/boa-release-21/index.md @@ -91,8 +91,8 @@ This release adds support for `f16` types for the TypedArray, Dataview, and Math built-ins. ```javascript -const x = new Float16Array([37, 42]); -console.log(x[1]); // 42 +const x = new Float16Array([37, 42.123456]); +console.log(x[1]); // 42.125 ``` ### Error.isError From e321f6933afd8216799399f98ea6431be51f4330 Mon Sep 17 00:00:00 2001 From: Kevin Ness <46825870+nekevss@users.noreply.github.com> Date: Wed, 3 Sep 2025 18:28:25 -0500 Subject: [PATCH 04/11] Update blog/boa-release-21/index.md Co-authored-by: Hans Larsen --- blog/boa-release-21/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blog/boa-release-21/index.md b/blog/boa-release-21/index.md index 4f95624c..ae596de9 100644 --- a/blog/boa-release-21/index.md +++ b/blog/boa-release-21/index.md @@ -111,8 +111,8 @@ We've opted for using the new [`xsum`](https://crates.io/crates/xsum) summation for the underlying implementation. ```javascript -let sum = Math.sumPrecise([1.0, 2.5]); -console.log(sum); // 3.5 +let sum = Math.sumPrecise([1e20, 0.1, -1e20]); +console.log(sum); // 0.1 ``` ## Boa Runtime From 099029b72b72ebb76262ec4dde933422ec44e315 Mon Sep 17 00:00:00 2001 From: Kevin Ness Date: Sat, 6 Sep 2025 13:06:15 -0500 Subject: [PATCH 05/11] A few more changes / updates --- blog/boa-release-21/index.md | 67 +++++++++++++++++++++++------------- 1 file changed, 43 insertions(+), 24 deletions(-) diff --git a/blog/boa-release-21/index.md b/blog/boa-release-21/index.md index ae596de9..22812211 100644 --- a/blog/boa-release-21/index.md +++ b/blog/boa-release-21/index.md @@ -17,9 +17,9 @@ info. In this release, our conformance has grown from 89.92% to 93.94% in the official ECMAScript Test Suite (Test262). Our growth in conformance is driven by increased conformance for Temporal (discussed further below) -with the rest of the development effort being focused on performance and -runtime features. We will continue to implement more of the -specification; however, as of the current moment, Boa's conformance +with the rest of the development effort being focused on performance, +internal improvements, and runtime features. We will continue to implement +more of the specification; however, as of the current moment, Boa's conformance aligns with the major browser engine's conformance, so future increases in conformance will be minor or bound to the feature size going forward. @@ -34,15 +34,13 @@ information on conformance [here][conformance]. There has been a lot of progress made on Temporal, the new Stage 3 date/time proposal. With this release, Boa's conformance on Temporal -grew from 40.67% to 97.06%. As of this moment, Boa is the second most -conformant Temporal implementation behind SpiderMonkey with others soon -to follow. +grew from 40.67% to ~97%. The implementation is backed by the `temporal_rs` date/time Rust library, which we went over briefly in our June [blog post](./2025-06-15-temporal-impl-1.md) with hopefully another post -in the not too distant future. So far, `temporal_rs` has been used in -both V8 and Keisel to implement Temporal as well. +in the not too distant future. So far, `temporal_rs` has also been used in +both V8 and Keisel to implement Temporal. Temporal can be used from `boa_cli` or enabled in `boa_engine` with the `experimental` or `temporal` feature. @@ -62,13 +60,19 @@ and help with `temporal_rs`. ### Span nodes and error backtraces -We also closed an outstanding issue of supporting span nodes in our parser and AST. This -allowed us to implement backtraces to provide better debugging information when using -Boa. +We also add support for span nodes in our parser and AST. Span nodes mark the start and +end index in the source code for a specific token. + +As a result, this release of Boa supports error backtraces when an exception is thrown +as seen below. ![backtrace-example](./img/backtrace.gif) -### New Set methods +This feature will greatly help with debugging errors when using Boa. + +### Specification updates + +#### Set methods This release adds support for the new set methods added in ES2025. @@ -85,7 +89,7 @@ The new methods are: Thanks to [@Hemenguelbindi](https://github.com/@Hemenguelbindi) for their work on this feature. -### Float16 support for TypedArrays, Dataview and Math built-ins +#### Float16 support for TypedArrays, Dataview and Math built-ins This release adds support for `f16` types for the TypedArray, Dataview, and Math built-ins. @@ -95,7 +99,7 @@ const x = new Float16Array([37, 42.123456]); console.log(x[1]); // 42.125 ``` -### Error.isError +#### Error.isError This release adds support for `Error.isError`, which is accepted for ES2026. @@ -103,7 +107,7 @@ This release adds support for `Error.isError`, which is accepted for ES2026. let check = Error.isError(new Error()); // returns true ``` -### Math.sumPrecise +#### Math.sumPrecise This release adds support for `Math.sumPrecise`, which is accepted for ES2026. @@ -136,12 +140,22 @@ against the Web Platform Tests (WPT). ## Performance -### Register VM +### NaN Boxing + +With this release, Boa's `JsValue` will use nan-boxing by default. The NaN boxing of `JsValue` +increased memory and runtime performance over the older enum. -With this release, Boa's virtual machine (VM) moved from a stack based -VM to a register based VM. +As a note, the current implementation is not compatible with all platforms. While we hope +to address this in the future. The legacy enum JsValue will be available via the `jsvalue-enum` +feature flag. -TODO: Potentially add more here +Unfamiliar with NaN Boxing? We won't go over it in depth here, but we recommend +[this article](https://piotrduperas.com/posts/nan-boxing) to learn more. + +### Register VM + +Boa's virtual machine (VM) moved from a stack based VM to a register based VM in +[PR #3798](https://github.com/boa-dev/boa/pull/3798). ## New Contributors @@ -163,14 +177,19 @@ helping out, feel free to join our GC room on [Matrix]. ### Runtime functionality The `boa_runtime` crate was initially meant to contain functionality -that was not meant to exist in the core engine, primarily our console -implementation. Noticeably, we have since added more runtime features to -the crate with more expected in the next release. +that was not meant to exist in the core ECMAScript implementation, for instance +the console implementation. Noticeably, we have since added more runtime +features to the crate with even more features expected in the next release. Our current plan is if there is enough interest and the crate becomes too large, we will split `boa_runtime` into it's own repository. If you -are interested in implementing any runtime features, feel free to reach -out. +are interested in implementing any runtime features or contributing to +a runtime, feel free to reach out. + +### Continuing improvement of performance + +As mentioned on previous release posts, we will continue to further work +on improving Boa's overall performance. ## How can you support Boa? From 378a295a6525f804c41e175b22a34d0029225a28 Mon Sep 17 00:00:00 2001 From: Kevin Ness Date: Sat, 6 Sep 2025 13:12:23 -0500 Subject: [PATCH 06/11] Add intl / ecma402 to looking forward --- blog/boa-release-21/index.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/blog/boa-release-21/index.md b/blog/boa-release-21/index.md index 22812211..290b8e7b 100644 --- a/blog/boa-release-21/index.md +++ b/blog/boa-release-21/index.md @@ -169,10 +169,11 @@ This has been long overdue. Boa's garbage collector is a forked and modified verison of `rust-gc`, and we have long been pushing our forked gc to its limits. -We have seen plenty of evidence that simply swapping allocators can -increase Boa's performance, and work on this will hopefully resume soon. -If you're interested in garbage collectors and/or would be interested in -helping out, feel free to join our GC room on [Matrix]. +We have seen some evidence from previous pull requests that simply swapping +allocators from Rust's global allocator can increase Boa's performance, and +work on this will hopefully resume soon. If you're interested in garbage +collectors and/or would be interested in helping out, feel free to join our +GC room on [Matrix]. ### Runtime functionality @@ -186,11 +187,17 @@ too large, we will split `boa_runtime` into it's own repository. If you are interested in implementing any runtime features or contributing to a runtime, feel free to reach out. -### Continuing improvement of performance +### Continuing performance improvements As mentioned on previous release posts, we will continue to further work on improving Boa's overall performance. +### `Intl` and ECMA402 conformance + +We currently have some general support for the ECMA402 and ECMAScript's `Intl` object. We +will continue to some general work on ECMA402 conformance to allow Boa to be fully usable +for internationalization use cases. + ## How can you support Boa? Boa is an independent JavaScript engine implementing the ECMAScript From d0e52ce1880ddfde115efff4bfaa4e4f84da9e47 Mon Sep 17 00:00:00 2001 From: jedel1043 Date: Sat, 4 Oct 2025 12:16:59 -0600 Subject: [PATCH 07/11] Update deps and fix most warnings --- blog/boa-release-21/index.md | 4 +- docusaurus.config.ts | 4 +- package-lock.json | 2286 ++++++++++++++++++++-------------- package.json | 34 +- 4 files changed, 1377 insertions(+), 951 deletions(-) diff --git a/blog/boa-release-21/index.md b/blog/boa-release-21/index.md index 290b8e7b..8f2aae5b 100644 --- a/blog/boa-release-21/index.md +++ b/blog/boa-release-21/index.md @@ -38,7 +38,7 @@ grew from 40.67% to ~97%. The implementation is backed by the `temporal_rs` date/time Rust library, which we went over briefly in our June -[blog post](./2025-06-15-temporal-impl-1.md) with hopefully another post +[blog post](../2025-06-15-temporal-impl-1.md) with hopefully another post in the not too distant future. So far, `temporal_rs` has also been used in both V8 and Keisel to implement Temporal. @@ -143,7 +143,7 @@ against the Web Platform Tests (WPT). ### NaN Boxing With this release, Boa's `JsValue` will use nan-boxing by default. The NaN boxing of `JsValue` -increased memory and runtime performance over the older enum. +increased memory and runtime performance over the older enum. As a note, the current implementation is not compatible with all platforms. While we hope to address this in the future. The legacy enum JsValue will be available via the `jsvalue-enum` diff --git a/docusaurus.config.ts b/docusaurus.config.ts index d5470224..efa3e86b 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -23,7 +23,6 @@ const config: Config = { projectName: "boa-dev.github.io", onBrokenLinks: "throw", - onBrokenMarkdownLinks: "warn", // Even if you don't use internalization, you can use this field to set useful // metadata like html lang. For example, if your site is Chinese, you may want @@ -53,6 +52,9 @@ const config: Config = { markdown: { mermaid: true, + hooks: { + onBrokenMarkdownLinks: "warn" + } }, themes: ["@docusaurus/theme-mermaid"], diff --git a/package-lock.json b/package-lock.json index 53c2c454..11efdf46 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,93 +10,150 @@ "license": "ISC", "dependencies": { "@boa-dev/boa_wasm": "^0.20.0", - "@docusaurus/core": "^3.8.1", - "@docusaurus/plugin-content-pages": "^3.8.1", - "@docusaurus/preset-classic": "^3.8.1", - "@docusaurus/theme-mermaid": "^3.8.1", + "@docusaurus/core": "^3.9.1", + "@docusaurus/plugin-content-pages": "^3.9.1", + "@docusaurus/preset-classic": "^3.9.1", + "@docusaurus/theme-mermaid": "^3.9.1", "@mdx-js/react": "^3.1.1", "@monaco-editor/react": "^4.7.0", "chart.js": "^4.5.0", "clsx": "^2.1.1", "prism-react-renderer": "^2.4.1", - "react": "^19.1.1", + "react": "^19.2.0", "react-chartjs-2": "^5.3.0", - "react-dom": "^19.1.1" + "react-dom": "^19.2.0" }, "devDependencies": { - "@docusaurus/eslint-plugin": "^3.8.1", - "@docusaurus/module-type-aliases": "^3.8.1", - "@docusaurus/plugin-client-redirects": "^3.8.1", - "@docusaurus/tsconfig": "^3.8.1", - "@docusaurus/types": "^3.8.1", + "@docusaurus/eslint-plugin": "^3.9.1", + "@docusaurus/module-type-aliases": "^3.9.1", + "@docusaurus/plugin-client-redirects": "^3.9.1", + "@docusaurus/tsconfig": "^3.9.1", + "@docusaurus/types": "^3.9.1", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "^9.35.0", - "@typescript-eslint/eslint-plugin": "^8.42.0", - "@typescript-eslint/parser": "^8.42.0", - "eslint": "^9.35.0", + "@eslint/js": "^9.37.0", + "@typescript-eslint/eslint-plugin": "^8.45.0", + "@typescript-eslint/parser": "^8.45.0", + "eslint": "^9.37.0", "eslint-config-prettier": "^10.1.8", - "globals": "^16.3.0", + "globals": "^16.4.0", "prettier": "3.6.2", - "typescript": "^5.9.2" + "typescript": "^5.9.3" }, "engines": { "node": ">=20" } }, + "node_modules/@ai-sdk/gateway": { + "version": "1.0.33", + "resolved": "https://registry.npmjs.org/@ai-sdk/gateway/-/gateway-1.0.33.tgz", + "integrity": "sha512-v9i3GPEo4t3fGcSkQkc07xM6KJN75VUv7C1Mqmmsu2xD8lQwnQfsrgAXyNuWe20yGY0eHuheSPDZhiqsGKtH1g==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider": "2.0.0", + "@ai-sdk/provider-utils": "3.0.10", + "@vercel/oidc": "^3.0.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.25.76 || ^4.1.8" + } + }, + "node_modules/@ai-sdk/provider": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-2.0.0.tgz", + "integrity": "sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==", + "license": "Apache-2.0", + "dependencies": { + "json-schema": "^0.4.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@ai-sdk/provider-utils": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-3.0.10.tgz", + "integrity": "sha512-T1gZ76gEIwffep6MWI0QNy9jgoybUHE7TRaHB5k54K8mF91ciGFlbtCGxDYhMH3nCRergKwYFIDeFF0hJSIQHQ==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider": "2.0.0", + "@standard-schema/spec": "^1.0.0", + "eventsource-parser": "^3.0.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.25.76 || ^4.1.8" + } + }, + "node_modules/@ai-sdk/react": { + "version": "2.0.60", + "resolved": "https://registry.npmjs.org/@ai-sdk/react/-/react-2.0.60.tgz", + "integrity": "sha512-Ev0MC0I7eDcCH4FnrHzK48g9bJjyF3F67MMq76qoVsbtcs6fGIO5RjmYgPoFeSo8/yQ5EM6i/14yfcD0oB+moA==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider-utils": "3.0.10", + "ai": "5.0.60", + "swr": "^2.2.5", + "throttleit": "2.1.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "react": "^18 || ^19 || ^19.0.0-rc", + "zod": "^3.25.76 || ^4.1.8" + }, + "peerDependenciesMeta": { + "zod": { + "optional": true + } + } + }, "node_modules/@algolia/abtesting": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.3.0.tgz", - "integrity": "sha512-KqPVLdVNfoJzX5BKNGM9bsW8saHeyax8kmPFXul5gejrSPN3qss7PgsFH5mMem7oR8tvjvNkia97ljEYPYCN8Q==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.5.0.tgz", + "integrity": "sha512-W/ohRkbKQsqDWALJg28X15KF7Tcyg53L1MfdOkLgvkcCcofdzGHSimHHeNG05ojjFw9HK8+VPhe/Vwq4MozIJg==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.37.0", - "@algolia/requester-browser-xhr": "5.37.0", - "@algolia/requester-fetch": "5.37.0", - "@algolia/requester-node-http": "5.37.0" + "@algolia/client-common": "5.39.0", + "@algolia/requester-browser-xhr": "5.39.0", + "@algolia/requester-fetch": "5.39.0", + "@algolia/requester-node-http": "5.39.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/autocomplete-core": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.9.tgz", - "integrity": "sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.19.2.tgz", + "integrity": "sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw==", "license": "MIT", "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.17.9", - "@algolia/autocomplete-shared": "1.17.9" + "@algolia/autocomplete-plugin-algolia-insights": "1.19.2", + "@algolia/autocomplete-shared": "1.19.2" } }, "node_modules/@algolia/autocomplete-plugin-algolia-insights": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.9.tgz", - "integrity": "sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.2.tgz", + "integrity": "sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg==", "license": "MIT", "dependencies": { - "@algolia/autocomplete-shared": "1.17.9" + "@algolia/autocomplete-shared": "1.19.2" }, "peerDependencies": { "search-insights": ">= 1 < 3" } }, - "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.9.tgz", - "integrity": "sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ==", - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-shared": "1.17.9" - }, - "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" - } - }, "node_modules/@algolia/autocomplete-shared": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.9.tgz", - "integrity": "sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.2.tgz", + "integrity": "sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w==", "license": "MIT", "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", @@ -104,99 +161,99 @@ } }, "node_modules/@algolia/client-abtesting": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.37.0.tgz", - "integrity": "sha512-Dp2Zq+x9qQFnuiQhVe91EeaaPxWBhzwQ6QnznZQnH9C1/ei3dvtmAFfFeaTxM6FzfJXDLvVnaQagTYFTQz3R5g==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.39.0.tgz", + "integrity": "sha512-Vf0ZVe+qo3sHDrCinouJqlg8VoxM4Qo/KxNIqMYybkuctutfnp3kIY9OmESplOQ/9NGBthU9EG+4d5fBibWK/A==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.37.0", - "@algolia/requester-browser-xhr": "5.37.0", - "@algolia/requester-fetch": "5.37.0", - "@algolia/requester-node-http": "5.37.0" + "@algolia/client-common": "5.39.0", + "@algolia/requester-browser-xhr": "5.39.0", + "@algolia/requester-fetch": "5.39.0", + "@algolia/requester-node-http": "5.39.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-analytics": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.37.0.tgz", - "integrity": "sha512-wyXODDOluKogTuZxRII6mtqhAq4+qUR3zIUJEKTiHLe8HMZFxfUEI4NO2qSu04noXZHbv/sRVdQQqzKh12SZuQ==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.39.0.tgz", + "integrity": "sha512-V16ITZxYIwcv1arNce65JZmn94Ft6vKlBZ//gXw8AvIH32glJz1KcbaVAUr9p7PYlGZ/XVHP6LxDgrpNdtwgcA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.37.0", - "@algolia/requester-browser-xhr": "5.37.0", - "@algolia/requester-fetch": "5.37.0", - "@algolia/requester-node-http": "5.37.0" + "@algolia/client-common": "5.39.0", + "@algolia/requester-browser-xhr": "5.39.0", + "@algolia/requester-fetch": "5.39.0", + "@algolia/requester-node-http": "5.39.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-common": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.37.0.tgz", - "integrity": "sha512-GylIFlPvLy9OMgFG8JkonIagv3zF+Dx3H401Uo2KpmfMVBBJiGfAb9oYfXtplpRMZnZPxF5FnkWaI/NpVJMC+g==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.39.0.tgz", + "integrity": "sha512-UCJTuwySEQeiKPWV3wruhuI/wHbDYenHzgL9pYsvh6r/u5Z+g61ip1iwdAlFp02CnywzI9O7+AQPh2ManYyHmQ==", "license": "MIT", "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-insights": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.37.0.tgz", - "integrity": "sha512-T63afO2O69XHKw2+F7mfRoIbmXWGzgpZxgOFAdP3fR4laid7pWBt20P4eJ+Zn23wXS5kC9P2K7Bo3+rVjqnYiw==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.39.0.tgz", + "integrity": "sha512-s0ia8M/ZZR+iO2uLNTBrlQdEb6ZMAMcKMHckp5mcoglxrf8gHifL4LmdhGKdAxAn3UIagtqIP0RCnIymHUbm7A==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.37.0", - "@algolia/requester-browser-xhr": "5.37.0", - "@algolia/requester-fetch": "5.37.0", - "@algolia/requester-node-http": "5.37.0" + "@algolia/client-common": "5.39.0", + "@algolia/requester-browser-xhr": "5.39.0", + "@algolia/requester-fetch": "5.39.0", + "@algolia/requester-node-http": "5.39.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-personalization": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.37.0.tgz", - "integrity": "sha512-1zOIXM98O9zD8bYDCJiUJRC/qNUydGHK/zRK+WbLXrW1SqLFRXECsKZa5KoG166+o5q5upk96qguOtE8FTXDWQ==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.39.0.tgz", + "integrity": "sha512-vZPIt7Lw+toNsHZUiPhNIc1Z3vUjDp7nzn6AMOaPC73gEuTq2iLPNvM06CSB6aHePo5eMeJIP5YEKBUQUA/PJA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.37.0", - "@algolia/requester-browser-xhr": "5.37.0", - "@algolia/requester-fetch": "5.37.0", - "@algolia/requester-node-http": "5.37.0" + "@algolia/client-common": "5.39.0", + "@algolia/requester-browser-xhr": "5.39.0", + "@algolia/requester-fetch": "5.39.0", + "@algolia/requester-node-http": "5.39.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-query-suggestions": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.37.0.tgz", - "integrity": "sha512-31Nr2xOLBCYVal+OMZn1rp1H4lPs1914Tfr3a34wU/nsWJ+TB3vWjfkUUuuYhWoWBEArwuRzt3YNLn0F/KRVkg==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.39.0.tgz", + "integrity": "sha512-jcPQr3iKTWNVli2NYHPv02aNLwixDjPCpOgMp9CZTvEiPI6Ec4jHX+oFr3LDZagOFY9e1xJhc/JrgMGGW1sHnw==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.37.0", - "@algolia/requester-browser-xhr": "5.37.0", - "@algolia/requester-fetch": "5.37.0", - "@algolia/requester-node-http": "5.37.0" + "@algolia/client-common": "5.39.0", + "@algolia/requester-browser-xhr": "5.39.0", + "@algolia/requester-fetch": "5.39.0", + "@algolia/requester-node-http": "5.39.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-search": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.37.0.tgz", - "integrity": "sha512-DAFVUvEg+u7jUs6BZiVz9zdaUebYULPiQ4LM2R4n8Nujzyj7BZzGr2DCd85ip4p/cx7nAZWKM8pLcGtkTRTdsg==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.39.0.tgz", + "integrity": "sha512-/IYpF10BpthGZEJQZMhMqV4AqWr5avcWfZm/SIKK1RvUDmzGqLoW/+xeJVX9C8ZnNkIC8hivbIQFaNaRw0BFZQ==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.37.0", - "@algolia/requester-browser-xhr": "5.37.0", - "@algolia/requester-fetch": "5.37.0", - "@algolia/requester-node-http": "5.37.0" + "@algolia/client-common": "5.39.0", + "@algolia/requester-browser-xhr": "5.39.0", + "@algolia/requester-fetch": "5.39.0", + "@algolia/requester-node-http": "5.39.0" }, "engines": { "node": ">= 14.0.0" @@ -209,81 +266,81 @@ "license": "MIT" }, "node_modules/@algolia/ingestion": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.37.0.tgz", - "integrity": "sha512-pkCepBRRdcdd7dTLbFddnu886NyyxmhgqiRcHHaDunvX03Ij4WzvouWrQq7B7iYBjkMQrLS8wQqSP0REfA4W8g==", + "version": "1.39.0", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.39.0.tgz", + "integrity": "sha512-IgSHKUiuecqLfBlXiuCSdRTdsO3/yvpmXrMFz8fAJ8M4QmDtHkOuD769dmybRYqsbYMHivw+lir4BgbRGMtOIQ==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.37.0", - "@algolia/requester-browser-xhr": "5.37.0", - "@algolia/requester-fetch": "5.37.0", - "@algolia/requester-node-http": "5.37.0" + "@algolia/client-common": "5.39.0", + "@algolia/requester-browser-xhr": "5.39.0", + "@algolia/requester-fetch": "5.39.0", + "@algolia/requester-node-http": "5.39.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/monitoring": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.37.0.tgz", - "integrity": "sha512-fNw7pVdyZAAQQCJf1cc/ih4fwrRdQSgKwgor4gchsI/Q/ss9inmC6bl/69jvoRSzgZS9BX4elwHKdo0EfTli3w==", + "version": "1.39.0", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.39.0.tgz", + "integrity": "sha512-8Xnd4+609SKC/hqVsuFc4evFBmvA2765/4NcH+Dpr756SKPbL1BY0X8kVxlmM3YBLNqnduSQxHxpDJUK58imCA==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.37.0", - "@algolia/requester-browser-xhr": "5.37.0", - "@algolia/requester-fetch": "5.37.0", - "@algolia/requester-node-http": "5.37.0" + "@algolia/client-common": "5.39.0", + "@algolia/requester-browser-xhr": "5.39.0", + "@algolia/requester-fetch": "5.39.0", + "@algolia/requester-node-http": "5.39.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/recommend": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.37.0.tgz", - "integrity": "sha512-U+FL5gzN2ldx3TYfQO5OAta2TBuIdabEdFwD5UVfWPsZE5nvOKkc/6BBqP54Z/adW/34c5ZrvvZhlhNTZujJXQ==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.39.0.tgz", + "integrity": "sha512-D7Ye2Ss/5xqUkQUxKm/VqEJLt5kARd9IMmjdzlxaKhGgNlOemTay0lwBmOVFuJRp7UODjp5c9+K+B8g0ORObIw==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.37.0", - "@algolia/requester-browser-xhr": "5.37.0", - "@algolia/requester-fetch": "5.37.0", - "@algolia/requester-node-http": "5.37.0" + "@algolia/client-common": "5.39.0", + "@algolia/requester-browser-xhr": "5.39.0", + "@algolia/requester-fetch": "5.39.0", + "@algolia/requester-node-http": "5.39.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.37.0.tgz", - "integrity": "sha512-Ao8GZo8WgWFABrU7iq+JAftXV0t+UcOtCDL4mzHHZ+rQeTTf1TZssr4d0vIuoqkVNnKt9iyZ7T4lQff4ydcTrw==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.39.0.tgz", + "integrity": "sha512-mgPte1ZJqpk9dkVs44J3wKAbHATvHZNlSpzhMdjMLIg/3qTycSZyDiomLiSlxE8CLsxyBAOJWnyKRHfom+Z1rg==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.37.0" + "@algolia/client-common": "5.39.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-fetch": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.37.0.tgz", - "integrity": "sha512-H7OJOXrFg5dLcGJ22uxx8eiFId0aB9b0UBhoOi4SMSuDBe6vjJJ/LeZyY25zPaSvkXNBN3vAM+ad6M0h6ha3AA==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.39.0.tgz", + "integrity": "sha512-LIrCkrxu1WnO3ev1+w6NnZ12JZL/o+2H9w6oWnZAjQZIlA/Ym6M9QHkt+OQ/SwkuoiNkW3DAo+Pi4A2V9FPtqg==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.37.0" + "@algolia/client-common": "5.39.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-node-http": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.37.0.tgz", - "integrity": "sha512-npZ9aeag4SGTx677eqPL3rkSPlQrnzx/8wNrl1P7GpWq9w/eTmRbOq+wKrJ2r78idlY0MMgmY/mld2tq6dc44g==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.39.0.tgz", + "integrity": "sha512-6beG+egPwXmvhAg+m0STCj+ZssDcjrLzf4L05aKm2nGglMXSSPz0cH/rM+kVD9krNfldiMctURd4wjojW1fV0w==", "license": "MIT", "dependencies": { - "@algolia/client-common": "5.37.0" + "@algolia/client-common": "5.39.0" }, "engines": { "node": ">= 14.0.0" @@ -303,9 +360,9 @@ } }, "node_modules/@antfu/utils": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-9.2.0.tgz", - "integrity": "sha512-Oq1d9BGZakE/FyoEtcNeSwM7MpDO2vUBi11RWBZXf75zPsbUVWmUs03EqkRFrcgbXyKTas0BdZWC1wcuSoqSAw==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-TMilPqXyii1AsiEii6l6ubRzbo76p6oshUSYPaKsmXDavyMLqjzVDkcp3pHp5ELMUNJHATcEOGxKTTsX9yYhGg==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/antfu" @@ -2229,9 +2286,9 @@ } }, "node_modules/@csstools/postcss-alpha-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-alpha-function/-/postcss-alpha-function-1.0.0.tgz", - "integrity": "sha512-r2L8KNg5Wriq5n8IUQcjzy2Rh37J5YjzP9iOyHZL5fxdWYHB08vqykHQa4wAzN/tXwDuCHnhQDGCtxfS76xn7g==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-alpha-function/-/postcss-alpha-function-1.0.1.tgz", + "integrity": "sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w==", "funding": [ { "type": "github", @@ -2247,7 +2304,7 @@ "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2319,9 +2376,9 @@ } }, "node_modules/@csstools/postcss-color-function": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.11.tgz", - "integrity": "sha512-AtH22zLHTLm64HLdpv5EedT/zmYTm1MtdQbQhRZXxEB6iYtS6SrS1jLX3TcmUWMFzpumK/OVylCm3HcLms4slw==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.12.tgz", + "integrity": "sha512-yx3cljQKRaSBc2hfh8rMZFZzChaFgwmO2JfFgFr1vMcF3C/uyy5I4RFIBOIWGq1D+XbKCG789CGkG6zzkLpagA==", "funding": [ { "type": "github", @@ -2337,7 +2394,7 @@ "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2348,9 +2405,9 @@ } }, "node_modules/@csstools/postcss-color-function-display-p3-linear": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-1.0.0.tgz", - "integrity": "sha512-7q+OuUqfowRrP84m/Jl0wv3pfCQyUTCW5MxDIux+/yty5IkUUHOTigCjrC0Fjy3OT0ncGLudHbfLWmP7E1arNA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-1.0.1.tgz", + "integrity": "sha512-E5qusdzhlmO1TztYzDIi8XPdPoYOjoTY6HBYBCYSj+Gn4gQRBlvjgPQXzfzuPQqt8EhkC/SzPKObg4Mbn8/xMg==", "funding": [ { "type": "github", @@ -2366,7 +2423,7 @@ "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2377,9 +2434,9 @@ } }, "node_modules/@csstools/postcss-color-mix-function": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.11.tgz", - "integrity": "sha512-cQpXBelpTx0YhScZM5Ve0jDCA4RzwFc7oNafzZOGgCHt/GQVYiU8Vevz9QJcwy/W0Pyi/BneY+KMjz23lI9r+Q==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.12.tgz", + "integrity": "sha512-4STERZfCP5Jcs13P1U5pTvI9SkgLgfMUMhdXW8IlJWkzOOOqhZIjcNhWtNJZes2nkBDsIKJ0CJtFtuaZ00moag==", "funding": [ { "type": "github", @@ -2395,7 +2452,7 @@ "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2406,9 +2463,9 @@ } }, "node_modules/@csstools/postcss-color-mix-variadic-function-arguments": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.1.tgz", - "integrity": "sha512-c7hyBtbF+jlHIcUGVdWY06bHICgguV9ypfcELU3eU3W/9fiz2dxM8PqxQk2ndXYTzLnwPvNNqu1yCmQ++N6Dcg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.2.tgz", + "integrity": "sha512-rM67Gp9lRAkTo+X31DUqMEq+iK+EFqsidfecmhrteErxJZb6tUoJBVQca1Vn1GpDql1s1rD1pKcuYzMsg7Z1KQ==", "funding": [ { "type": "github", @@ -2424,7 +2481,7 @@ "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2435,9 +2492,9 @@ } }, "node_modules/@csstools/postcss-content-alt-text": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.7.tgz", - "integrity": "sha512-cq/zWaEkpcg3RttJ5+GdNwk26NwxY5KgqgtNL777Fdd28AVGHxuBvqmK4Jq4oKhW1NX4M2LbgYAVVN0NZ+/XYQ==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.8.tgz", + "integrity": "sha512-9SfEW9QCxEpTlNMnpSqFaHyzsiRpZ5J5+KqCu1u5/eEJAWsMhzT40qf0FIbeeglEvrGRMdDzAxMIz3wqoGSb+Q==", "funding": [ { "type": "github", @@ -2452,7 +2509,36 @@ "dependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-contrast-color-function": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-2.0.12.tgz", + "integrity": "sha512-YbwWckjK3qwKjeYz/CijgcS7WDUCtKTd8ShLztm3/i5dhh4NaqzsbYnhm4bjrpFpnLZ31jVcbK8YL77z3GBPzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2543,9 +2629,9 @@ } }, "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.11.tgz", - "integrity": "sha512-8M3mcNTL3cGIJXDnvrJ2oWEcKi3zyw7NeYheFKePUlBmLYm1gkw9Rr/BA7lFONrOPeQA3yeMPldrrws6lqHrug==", + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.12.tgz", + "integrity": "sha512-jugzjwkUY0wtNrZlFeyXzimUL3hN4xMvoPnIXxoZqxDvjZRiSh+itgHcVUWzJ2VwD/VAMEgCLvtaJHX+4Vj3Ow==", "funding": [ { "type": "github", @@ -2561,7 +2647,7 @@ "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2572,9 +2658,9 @@ } }, "node_modules/@csstools/postcss-hwb-function": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.11.tgz", - "integrity": "sha512-9meZbsVWTZkWsSBazQips3cHUOT29a/UAwFz0AMEXukvpIGGDR9+GMl3nIckWO5sPImsadu4F5Zy+zjt8QgCdA==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.12.tgz", + "integrity": "sha512-mL/+88Z53KrE4JdePYFJAQWFrcADEqsLprExCM04GDNgHIztwFzj0Mbhd/yxMBngq0NIlz58VVxjt5abNs1VhA==", "funding": [ { "type": "github", @@ -2590,7 +2676,7 @@ "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2601,9 +2687,9 @@ } }, "node_modules/@csstools/postcss-ic-unit": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.3.tgz", - "integrity": "sha512-RtYYm2qUIu9vAaHB0cC8rQGlOCQAUgEc2tMr7ewlGXYipBQKjoWmyVArqsk7SEr8N3tErq6P6UOJT3amaVof5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.4.tgz", + "integrity": "sha512-yQ4VmossuOAql65sCPppVO1yfb7hDscf4GseF0VCA/DTDaBc0Wtf8MTqVPfjGYlT5+2buokG0Gp7y0atYZpwjg==", "funding": [ { "type": "github", @@ -2616,7 +2702,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.2.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, @@ -2711,9 +2797,9 @@ } }, "node_modules/@csstools/postcss-light-dark-function": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.10.tgz", - "integrity": "sha512-g7Lwb294lSoNnyrwcqoooh9fTAp47rRNo+ILg7SLRSMU3K9ePIwRt566sNx+pehiCelv4E1ICaU1EwLQuyF2qw==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.11.tgz", + "integrity": "sha512-fNJcKXJdPM3Lyrbmgw2OBbaioU7yuKZtiXClf4sGdQttitijYlZMD5K7HrC/eF83VRWRrYq6OZ0Lx92leV2LFA==", "funding": [ { "type": "github", @@ -2728,7 +2814,7 @@ "dependencies": { "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2962,9 +3048,9 @@ } }, "node_modules/@csstools/postcss-oklab-function": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.11.tgz", - "integrity": "sha512-9f03ZGxZ2VmSCrM4SDXlAYP+Xpu4VFzemfQUQFL9OYxAbpvDy0FjDipZ0i8So1pgs8VIbQI0bNjFWgfdpGw8ig==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.12.tgz", + "integrity": "sha512-HhlSmnE1NKBhXsTnNGjxvhryKtO7tJd1w42DKOGFD6jSHtYOrsJTQDKPMwvOfrzUAk8t7GcpIfRyM7ssqHpFjg==", "funding": [ { "type": "github", @@ -2980,7 +3066,7 @@ "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2991,9 +3077,9 @@ } }, "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.2.0.tgz", - "integrity": "sha512-fWCXRasX17N1NCPTCuwC3FJDV+Wc031f16cFuuMEfIsYJ1q5ABCa59W0C6VeMGqjNv6ldf37vvwXXAeaZjD9PA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.2.1.tgz", + "integrity": "sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw==", "funding": [ { "type": "github", @@ -3043,9 +3129,9 @@ } }, "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.11.tgz", - "integrity": "sha512-oQ5fZvkcBrWR+k6arHXk0F8FlkmD4IxM+rcGDLWrF2f31tWyEM3lSraeWAV0f7BGH6LIrqmyU3+Qo/1acfoJng==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.12.tgz", + "integrity": "sha512-0RLIeONxu/mtxRtf3o41Lq2ghLimw0w9ByLWnnEVuy89exmEEq8bynveBxNW3nyHqLAFEeNtVEmC1QK9MZ8Huw==", "funding": [ { "type": "github", @@ -3061,7 +3147,7 @@ "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -3270,21 +3356,24 @@ } }, "node_modules/@docsearch/css": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.9.0.tgz", - "integrity": "sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-4.1.0.tgz", + "integrity": "sha512-nuNKGjHj/FQeWgE9t+i83QD/V67QiaAmGY7xS9TVCRUiCqSljOgIKlsLoQZKKVwEG8f+OWKdznzZkJxGZ7d06A==", "license": "MIT" }, "node_modules/@docsearch/react": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.9.0.tgz", - "integrity": "sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-4.1.0.tgz", + "integrity": "sha512-4GHI7TT3sJZ2Vs4Kjadv7vAkMrTsJqHvzvxO3JA7UT8iPRKaDottG5o5uNshPWhVVaBYPC35Ukf8bfCotGpjSg==", "license": "MIT", "dependencies": { - "@algolia/autocomplete-core": "1.17.9", - "@algolia/autocomplete-preset-algolia": "1.17.9", - "@docsearch/css": "3.9.0", - "algoliasearch": "^5.14.2" + "@ai-sdk/react": "^2.0.30", + "@algolia/autocomplete-core": "1.19.2", + "@docsearch/css": "4.1.0", + "ai": "^5.0.30", + "algoliasearch": "^5.28.0", + "marked": "^16.3.0", + "zod": "^4.1.8" }, "peerDependencies": { "@types/react": ">= 16.8.0 < 20.0.0", @@ -3308,9 +3397,9 @@ } }, "node_modules/@docusaurus/babel": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.8.1.tgz", - "integrity": "sha512-3brkJrml8vUbn9aeoZUlJfsI/GqyFcDgQJwQkmBtclJgWDEQBKKeagZfOgx0WfUQhagL1sQLNW0iBdxnI863Uw==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.9.1.tgz", + "integrity": "sha512-/uoi3oG+wvbVWNBRfPrzrEslOSeLxrQEyWMywK51TLDFTANqIRivzkMusudh5bdDty8fXzCYUT+tg5t697jYqg==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.9", @@ -3323,28 +3412,28 @@ "@babel/runtime": "^7.25.9", "@babel/runtime-corejs3": "^7.25.9", "@babel/traverse": "^7.25.9", - "@docusaurus/logger": "3.8.1", - "@docusaurus/utils": "3.8.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/utils": "3.9.1", "babel-plugin-dynamic-import-node": "^2.3.3", "fs-extra": "^11.1.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/bundler": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.8.1.tgz", - "integrity": "sha512-/z4V0FRoQ0GuSLToNjOSGsk6m2lQUG4FRn8goOVoZSRsTrU8YR2aJacX5K3RG18EaX9b+52pN4m1sL3MQZVsQA==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.9.1.tgz", + "integrity": "sha512-E1c9DgNmAz4NqbNtiJVp4UgjLtr8O01IgtXD/NDQ4PZaK8895cMiTOgb3k7mN0qX8A3lb8vqyrPJ842+yMpuUg==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.9", - "@docusaurus/babel": "3.8.1", - "@docusaurus/cssnano-preset": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", + "@docusaurus/babel": "3.9.1", + "@docusaurus/cssnano-preset": "3.9.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", "babel-loader": "^9.2.1", "clean-css": "^5.3.3", "copy-webpack-plugin": "^11.0.0", @@ -3365,7 +3454,7 @@ "webpackbar": "^6.0.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "@docusaurus/faster": "*" @@ -3377,18 +3466,18 @@ } }, "node_modules/@docusaurus/core": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.8.1.tgz", - "integrity": "sha512-ENB01IyQSqI2FLtOzqSI3qxG2B/jP4gQPahl2C3XReiLebcVh5B5cB9KYFvdoOqOWPyr5gXK4sjgTKv7peXCrA==", - "license": "MIT", - "dependencies": { - "@docusaurus/babel": "3.8.1", - "@docusaurus/bundler": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.9.1.tgz", + "integrity": "sha512-FWDk1LIGD5UR5Zmm9rCrXRoxZUgbwuP6FBA7rc50DVfzqDOMkeMe3NyJhOsA2dF0zBE3VbHEIMmTjKwTZJwbaA==", + "license": "MIT", + "dependencies": { + "@docusaurus/babel": "3.9.1", + "@docusaurus/bundler": "3.9.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/mdx-loader": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-common": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "boxen": "^6.2.1", "chalk": "^4.1.2", "chokidar": "^3.5.3", @@ -3422,14 +3511,14 @@ "update-notifier": "^6.0.2", "webpack": "^5.95.0", "webpack-bundle-analyzer": "^4.10.2", - "webpack-dev-server": "^4.15.2", + "webpack-dev-server": "^5.2.2", "webpack-merge": "^6.0.1" }, "bin": { "docusaurus": "bin/docusaurus.mjs" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "@mdx-js/react": "^3.0.0", @@ -3438,9 +3527,9 @@ } }, "node_modules/@docusaurus/cssnano-preset": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.8.1.tgz", - "integrity": "sha512-G7WyR2N6SpyUotqhGznERBK+x84uyhfMQM2MmDLs88bw4Flom6TY46HzkRkSEzaP9j80MbTN8naiL1fR17WQug==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.9.1.tgz", + "integrity": "sha512-2y7+s7RWQMqBg+9ejeKwvZs7Bdw/hHIVJIodwMXbs2kr+S48AhcmAfdOh6Cwm0unJb0hJUshN0ROwRoQMwl3xg==", "license": "MIT", "dependencies": { "cssnano-preset-advanced": "^6.1.2", @@ -3449,13 +3538,13 @@ "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/eslint-plugin": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/eslint-plugin/-/eslint-plugin-3.8.1.tgz", - "integrity": "sha512-moiMzNuUpWaIcoEqZP4FzFGk4j8Gg/fYJYc9lpTWZplsy4GswGZw150rPuFcZ1lW65kuKVeGqu/E60JG37AX5Q==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/eslint-plugin/-/eslint-plugin-3.9.1.tgz", + "integrity": "sha512-GHOjHgX/x04IO/fw4s0Ea3Y/0hagpiO60uBByPg/A1HxnOdJmczxtA7ykexvyNwHs0UDNtrfok1gc89b4Y61CA==", "dev": true, "license": "MIT", "dependencies": { @@ -3463,7 +3552,7 @@ "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "eslint": ">=6" @@ -3599,27 +3688,27 @@ } }, "node_modules/@docusaurus/logger": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.8.1.tgz", - "integrity": "sha512-2wjeGDhKcExEmjX8k1N/MRDiPKXGF2Pg+df/bDDPnnJWHXnVEZxXj80d6jcxp1Gpnksl0hF8t/ZQw9elqj2+ww==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.9.1.tgz", + "integrity": "sha512-C9iFzXwHzwvGlisE4bZx+XQE0JIqlGAYAd5LzpR7fEDgjctu7yL8bE5U4nTNywXKHURDzMt4RJK8V6+stFHVkA==", "license": "MIT", "dependencies": { "chalk": "^4.1.2", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/mdx-loader": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.8.1.tgz", - "integrity": "sha512-DZRhagSFRcEq1cUtBMo4TKxSNo/W6/s44yhr8X+eoXqCLycFQUylebOMPseHi5tc4fkGJqwqpWJLz6JStU9L4w==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.9.1.tgz", + "integrity": "sha512-/1PY8lqry8jCt0qZddJSpc0U2sH6XC27kVJZfpA7o2TiQ3mdBQyH5AVbj/B2m682B1ounE+XjI0LdpOkAQLPoA==", "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "@mdx-js/mdx": "^3.0.0", "@slorber/remark-comment": "^1.0.0", "escape-html": "^1.0.3", @@ -3643,7 +3732,7 @@ "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3651,12 +3740,12 @@ } }, "node_modules/@docusaurus/module-type-aliases": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.8.1.tgz", - "integrity": "sha512-6xhvAJiXzsaq3JdosS7wbRt/PwEPWHr9eM4YNYqVlbgG1hSK3uQDXTVvQktasp3VO6BmfYWPozueLWuj4gB+vg==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.9.1.tgz", + "integrity": "sha512-YBce3GbJGGcMbJTyHcnEOMvdXqg41pa5HsrMCGA5Rm4z0h0tHS6YtEldj0mlfQRhCG7Y0VD66t2tb87Aom+11g==", "license": "MIT", "dependencies": { - "@docusaurus/types": "3.8.1", + "@docusaurus/types": "3.9.1", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -3670,24 +3759,24 @@ } }, "node_modules/@docusaurus/plugin-client-redirects": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.8.1.tgz", - "integrity": "sha512-F+86R7PBn6VNgy/Ux8w3ZRypJGJEzksbejQKlbTC8u6uhBUhfdXWkDp6qdOisIoW0buY5nLqucvZt1zNJzhJhA==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.9.1.tgz", + "integrity": "sha512-+1InCGvAnw46H+TnVqxaYlJC0qy9AY5gTMgTx2ZFryjAsImJNs3i1pEYW/iUTVbOdtWRj3E/87E4ehbBIaA1TA==", "dev": true, "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-common": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "eta": "^2.2.0", "fs-extra": "^11.1.1", "lodash": "^4.17.21", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3695,19 +3784,19 @@ } }, "node_modules/@docusaurus/plugin-content-blog": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.8.1.tgz", - "integrity": "sha512-vNTpMmlvNP9n3hGEcgPaXyvTljanAKIUkuG9URQ1DeuDup0OR7Ltvoc8yrmH+iMZJbcQGhUJF+WjHLwuk8HSdw==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.9.1.tgz", + "integrity": "sha512-vT6kIimpJLWvW9iuWzH4u7VpTdsGlmn4yfyhq0/Kb1h4kf9uVouGsTmrD7WgtYBUG1P+TSmQzUUQa+ALBSRTig==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/mdx-loader": "3.9.1", + "@docusaurus/theme-common": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-common": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "cheerio": "1.0.0-rc.12", "feed": "^4.2.2", "fs-extra": "^11.1.1", @@ -3720,7 +3809,7 @@ "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "@docusaurus/plugin-content-docs": "*", @@ -3729,20 +3818,20 @@ } }, "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.8.1.tgz", - "integrity": "sha512-oByRkSZzeGNQByCMaX+kif5Nl2vmtj2IHQI2fWjCfCootsdKZDPFLonhIp5s3IGJO7PLUfe0POyw0Xh/RrGXJA==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.1.tgz", + "integrity": "sha512-DyLk9BIA6I9gPIuia8XIL+XIEbNnExam6AHzRsfrEq4zJr7k/DsWW7oi4aJMepDnL7jMRhpVcdsCxdjb0/A9xg==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/mdx-loader": "3.9.1", + "@docusaurus/module-type-aliases": "3.9.1", + "@docusaurus/theme-common": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-common": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "@types/react-router-config": "^5.0.7", "combine-promises": "^1.1.0", "fs-extra": "^11.1.1", @@ -3754,7 +3843,7 @@ "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3762,22 +3851,22 @@ } }, "node_modules/@docusaurus/plugin-content-pages": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.8.1.tgz", - "integrity": "sha512-a+V6MS2cIu37E/m7nDJn3dcxpvXb6TvgdNI22vJX8iUTp8eoMoPa0VArEbWvCxMY/xdC26WzNv4wZ6y0iIni/w==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.9.1.tgz", + "integrity": "sha512-/1wFzRnXYASI+Nv9ck9IVPIMw0O5BGQ8ZVhDzEwhkL+tl44ycvSnY6PIe6rW2HLxsw61Z3WFwAiU8+xMMtMZpg==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/mdx-loader": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "fs-extra": "^11.1.1", "tslib": "^2.6.0", "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3785,36 +3874,36 @@ } }, "node_modules/@docusaurus/plugin-css-cascade-layers": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.8.1.tgz", - "integrity": "sha512-VQ47xRxfNKjHS5ItzaVXpxeTm7/wJLFMOPo1BkmoMG4Cuz4nuI+Hs62+RMk1OqVog68Swz66xVPK8g9XTrBKRw==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.9.1.tgz", + "integrity": "sha512-/QyW2gRCk/XE3ttCK/ERIgle8KJ024dBNKMu6U5SmpJvuT2il1n5jR/48Pp/9wEwut8WVml4imNm6X8JsL5A0Q==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/plugin-debug": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.8.1.tgz", - "integrity": "sha512-nT3lN7TV5bi5hKMB7FK8gCffFTBSsBsAfV84/v293qAmnHOyg1nr9okEw8AiwcO3bl9vije5nsUvP0aRl2lpaw==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.9.1.tgz", + "integrity": "sha512-qPeAuk0LccC251d7jg2MRhNI+o7niyqa924oEM/AxnZJvIpMa596aAxkRImiAqNN6+gtLE1Hkrz/RHUH2HDGsA==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", "fs-extra": "^11.1.1", "react-json-view-lite": "^2.3.0", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3822,18 +3911,18 @@ } }, "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.8.1.tgz", - "integrity": "sha512-Hrb/PurOJsmwHAsfMDH6oVpahkEGsx7F8CWMjyP/dw1qjqmdS9rcV1nYCGlM8nOtD3Wk/eaThzUB5TSZsGz+7Q==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.9.1.tgz", + "integrity": "sha512-k4Qq2HphqOrIU/CevGPdEO1yJnWUI8m0zOJsYt5NfMJwNsIn/gDD6gv/DKD+hxHndQT5pacsfBd4BWHZVNVroQ==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3841,19 +3930,19 @@ } }, "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.8.1.tgz", - "integrity": "sha512-tKE8j1cEZCh8KZa4aa80zpSTxsC2/ZYqjx6AAfd8uA8VHZVw79+7OTEP2PoWi0uL5/1Is0LF5Vwxd+1fz5HlKg==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.9.1.tgz", + "integrity": "sha512-n9BURBiQyJKI/Ecz35IUjXYwXcgNCSq7/eA07+ZYcDiSyH2p/EjPf8q/QcZG3CyEJPZ/SzGkDHePfcVPahY4Gg==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "@types/gtag.js": "^0.0.12", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3861,18 +3950,18 @@ } }, "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.8.1.tgz", - "integrity": "sha512-iqe3XKITBquZq+6UAXdb1vI0fPY5iIOitVjPQ581R1ZKpHr0qe+V6gVOrrcOHixPDD/BUKdYwkxFjpNiEN+vBw==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.9.1.tgz", + "integrity": "sha512-rZAQZ25ZuXaThBajxzLjXieTDUCMmBzfAA6ThElQ3o7Q+LEpOjCIrwGFau0KLY9HeG6x91+FwwsAM8zeApYDrg==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3880,23 +3969,23 @@ } }, "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.8.1.tgz", - "integrity": "sha512-+9YV/7VLbGTq8qNkjiugIelmfUEVkTyLe6X8bWq7K5qPvGXAjno27QAfFq63mYfFFbJc7z+pudL63acprbqGzw==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.9.1.tgz", + "integrity": "sha512-k/bf5cXDxAJUYTzqatgFJwmZsLUbIgl6S8AdZMKGG2Mv2wcOHt+EQNN9qPyWZ5/9cFj+Q8f8DN+KQheBMYLong==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-common": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "fs-extra": "^11.1.1", "sitemap": "^7.1.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3904,22 +3993,22 @@ } }, "node_modules/@docusaurus/plugin-svgr": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.8.1.tgz", - "integrity": "sha512-rW0LWMDsdlsgowVwqiMb/7tANDodpy1wWPwCcamvhY7OECReN3feoFwLjd/U4tKjNY3encj0AJSTxJA+Fpe+Gw==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.9.1.tgz", + "integrity": "sha512-TeZOXT2PSdTNR1OpDJMkYqFyX7MMhbd4t16hQByXksgZQCXNyw3Dio+KaDJ2Nj+LA4WkOvsk45bWgYG5MAaXSQ==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "@svgr/core": "8.1.0", "@svgr/webpack": "^8.1.0", "tslib": "^2.6.0", "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3927,29 +4016,29 @@ } }, "node_modules/@docusaurus/preset-classic": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.8.1.tgz", - "integrity": "sha512-yJSjYNHXD8POMGc2mKQuj3ApPrN+eG0rO1UPgSx7jySpYU+n4WjBikbrA2ue5ad9A7aouEtMWUoiSRXTH/g7KQ==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.9.1.tgz", + "integrity": "sha512-ZHga2xsxxsyd0dN1BpLj8S889Eu9eMBuj2suqxdw/vaaXu/FjJ8KEGbcaeo6nHPo8VQcBBnPEdkBtSDm2TfMNw==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/plugin-content-blog": "3.8.1", - "@docusaurus/plugin-content-docs": "3.8.1", - "@docusaurus/plugin-content-pages": "3.8.1", - "@docusaurus/plugin-css-cascade-layers": "3.8.1", - "@docusaurus/plugin-debug": "3.8.1", - "@docusaurus/plugin-google-analytics": "3.8.1", - "@docusaurus/plugin-google-gtag": "3.8.1", - "@docusaurus/plugin-google-tag-manager": "3.8.1", - "@docusaurus/plugin-sitemap": "3.8.1", - "@docusaurus/plugin-svgr": "3.8.1", - "@docusaurus/theme-classic": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/theme-search-algolia": "3.8.1", - "@docusaurus/types": "3.8.1" + "@docusaurus/core": "3.9.1", + "@docusaurus/plugin-content-blog": "3.9.1", + "@docusaurus/plugin-content-docs": "3.9.1", + "@docusaurus/plugin-content-pages": "3.9.1", + "@docusaurus/plugin-css-cascade-layers": "3.9.1", + "@docusaurus/plugin-debug": "3.9.1", + "@docusaurus/plugin-google-analytics": "3.9.1", + "@docusaurus/plugin-google-gtag": "3.9.1", + "@docusaurus/plugin-google-tag-manager": "3.9.1", + "@docusaurus/plugin-sitemap": "3.9.1", + "@docusaurus/plugin-svgr": "3.9.1", + "@docusaurus/theme-classic": "3.9.1", + "@docusaurus/theme-common": "3.9.1", + "@docusaurus/theme-search-algolia": "3.9.1", + "@docusaurus/types": "3.9.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3957,27 +4046,26 @@ } }, "node_modules/@docusaurus/theme-classic": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.8.1.tgz", - "integrity": "sha512-bqDUCNqXeYypMCsE1VcTXSI1QuO4KXfx8Cvl6rYfY0bhhqN6d2WZlRkyLg/p6pm+DzvanqHOyYlqdPyP0iz+iw==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/plugin-content-blog": "3.8.1", - "@docusaurus/plugin-content-docs": "3.8.1", - "@docusaurus/plugin-content-pages": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/theme-translations": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.9.1.tgz", + "integrity": "sha512-LrAIu/mQ04nG6s1cssC0TMmICD8twFIIn/hJ5Pd9uIPQvtKnyAKEn12RefopAul5KfMo9kixPaqogV5jIJr26w==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/mdx-loader": "3.9.1", + "@docusaurus/module-type-aliases": "3.9.1", + "@docusaurus/plugin-content-blog": "3.9.1", + "@docusaurus/plugin-content-docs": "3.9.1", + "@docusaurus/plugin-content-pages": "3.9.1", + "@docusaurus/theme-common": "3.9.1", + "@docusaurus/theme-translations": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-common": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", - "copy-text-to-clipboard": "^3.2.0", "infima": "0.2.0-alpha.45", "lodash": "^4.17.21", "nprogress": "^0.2.0", @@ -3990,7 +4078,7 @@ "utility-types": "^3.10.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -3998,15 +4086,15 @@ } }, "node_modules/@docusaurus/theme-common": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.8.1.tgz", - "integrity": "sha512-UswMOyTnPEVRvN5Qzbo+l8k4xrd5fTFu2VPPfD6FcW/6qUtVLmJTQCktbAL3KJ0BVXGm5aJXz/ZrzqFuZERGPw==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.9.1.tgz", + "integrity": "sha512-j9adi961F+6Ps9d0jcb5BokMcbjXAAJqKkV43eo8nh4YgmDj7KUNDX4EnOh/MjTQeO06oPY5cxp3yUXdW/8Ggw==", "license": "MIT", "dependencies": { - "@docusaurus/mdx-loader": "3.8.1", - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", + "@docusaurus/mdx-loader": "3.9.1", + "@docusaurus/module-type-aliases": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-common": "3.9.1", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -4017,7 +4105,7 @@ "utility-types": "^3.10.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "@docusaurus/plugin-content-docs": "*", @@ -4026,43 +4114,49 @@ } }, "node_modules/@docusaurus/theme-mermaid": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.8.1.tgz", - "integrity": "sha512-IWYqjyTPjkNnHsFFu9+4YkeXS7PD1xI3Bn2shOhBq+f95mgDfWInkpfBN4aYvx4fTT67Am6cPtohRdwh4Tidtg==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.9.1.tgz", + "integrity": "sha512-aKMFlQfxueVBPdCdrNSshG12fOkJXSn1sb6EhI/sGn3UpiTEiazJm4QLP6NoF78mqq8O5Ar2Yll+iHWLvCsuZQ==", "license": "MIT", "dependencies": { - "@docusaurus/core": "3.8.1", - "@docusaurus/module-type-aliases": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", + "@docusaurus/core": "3.9.1", + "@docusaurus/module-type-aliases": "3.9.1", + "@docusaurus/theme-common": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", "mermaid": ">=11.6.0", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { + "@mermaid-js/layout-elk": "^0.1.9", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@mermaid-js/layout-elk": { + "optional": true + } } }, "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.8.1.tgz", - "integrity": "sha512-NBFH5rZVQRAQM087aYSRKQ9yGEK9eHd+xOxQjqNpxMiV85OhJDD4ZGz6YJIod26Fbooy54UWVdzNU0TFeUUUzQ==", - "license": "MIT", - "dependencies": { - "@docsearch/react": "^3.9.0", - "@docusaurus/core": "3.8.1", - "@docusaurus/logger": "3.8.1", - "@docusaurus/plugin-content-docs": "3.8.1", - "@docusaurus/theme-common": "3.8.1", - "@docusaurus/theme-translations": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-validation": "3.8.1", - "algoliasearch": "^5.17.1", - "algoliasearch-helper": "^3.22.6", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.9.1.tgz", + "integrity": "sha512-WjM28bzlgfT6nHlEJemkwyGVpvGsZWPireV/w+wZ1Uo64xCZ8lNOb4xwQRukDaLSed3oPBN0gSnu06l5VuCXHg==", + "license": "MIT", + "dependencies": { + "@docsearch/react": "^3.9.0 || ^4.1.0", + "@docusaurus/core": "3.9.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/plugin-content-docs": "3.9.1", + "@docusaurus/theme-common": "3.9.1", + "@docusaurus/theme-translations": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-validation": "3.9.1", + "algoliasearch": "^5.37.0", + "algoliasearch-helper": "^3.26.0", "clsx": "^2.0.0", "eta": "^2.2.0", "fs-extra": "^11.1.1", @@ -4071,7 +4165,7 @@ "utility-types": "^3.10.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", @@ -4079,33 +4173,34 @@ } }, "node_modules/@docusaurus/theme-translations": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.8.1.tgz", - "integrity": "sha512-OTp6eebuMcf2rJt4bqnvuwmm3NVXfzfYejL+u/Y1qwKhZPrjPoKWfk1CbOP5xH5ZOPkiAsx4dHdQBRJszK3z2g==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.9.1.tgz", + "integrity": "sha512-mUQd49BSGKTiM6vP9+JFgRJL28lMIN3PUvXjF3rzuOHMByUZUBNwCt26Z23GkKiSIOrRkjKoaBNTipR/MHdYSQ==", "license": "MIT", "dependencies": { "fs-extra": "^11.1.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/tsconfig": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.8.1.tgz", - "integrity": "sha512-XBWCcqhRHhkhfolnSolNL+N7gj3HVE3CoZVqnVjfsMzCoOsuQw2iCLxVVHtO+rePUUfouVZHURDgmqIySsF66A==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.9.1.tgz", + "integrity": "sha512-stdzM1dNDgRO0OvxeznXlE3N1igUoeHPNJjiKqyffLizgpVgNXJBAWeG6fuoYiCH4udGUBqy2dyM+1+kG2/UPQ==", "dev": true, "license": "MIT" }, "node_modules/@docusaurus/types": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.8.1.tgz", - "integrity": "sha512-ZPdW5AB+pBjiVrcLuw3dOS6BFlrG0XkS2lDGsj8TizcnREQg3J8cjsgfDviszOk4CweNfwo1AEELJkYaMUuOPg==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.9.1.tgz", + "integrity": "sha512-ElekJ29sk39s5LTEZMByY1c2oH9FMtw7KbWFU3BtuQ1TytfIK39HhUivDEJvm5KCLyEnnfUZlvSNDXeyk0vzAA==", "license": "MIT", "dependencies": { "@mdx-js/mdx": "^3.0.0", "@types/history": "^4.7.11", + "@types/mdast": "^4.0.2", "@types/react": "*", "commander": "^5.1.0", "joi": "^17.9.2", @@ -4134,14 +4229,14 @@ } }, "node_modules/@docusaurus/utils": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.8.1.tgz", - "integrity": "sha512-P1ml0nvOmEFdmu0smSXOqTS1sxU5tqvnc0dA4MTKV39kye+bhQnjkIKEE18fNOvxjyB86k8esoCIFM3x4RykOQ==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.9.1.tgz", + "integrity": "sha512-YAL4yhhWLl9DXuf5MVig260a6INz4MehrBGFU/CZu8yXmRiYEuQvRFWh9ZsjfAOyaG7za1MNmBVZ4VVAi/CiJA==", "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.8.1", - "@docusaurus/types": "3.8.1", - "@docusaurus/utils-common": "3.8.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/types": "3.9.1", + "@docusaurus/utils-common": "3.9.1", "escape-string-regexp": "^4.0.0", "execa": "5.1.1", "file-loader": "^6.2.0", @@ -4162,31 +4257,31 @@ "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/utils-common": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.8.1.tgz", - "integrity": "sha512-zTZiDlvpvoJIrQEEd71c154DkcriBecm4z94OzEE9kz7ikS3J+iSlABhFXM45mZ0eN5pVqqr7cs60+ZlYLewtg==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.9.1.tgz", + "integrity": "sha512-4M1u5Q8Zn2CYL2TJ864M51FV4YlxyGyfC3x+7CLuR6xsyTVNBNU4QMcPgsTHRS9J2+X6Lq7MyH6hiWXyi/sXUQ==", "license": "MIT", "dependencies": { - "@docusaurus/types": "3.8.1", + "@docusaurus/types": "3.9.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/utils-validation": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.8.1.tgz", - "integrity": "sha512-gs5bXIccxzEbyVecvxg6upTwaUbfa0KMmTj7HhHzc016AGyxH2o73k1/aOD0IFrdCsfJNt37MqNI47s2MgRZMA==", + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.9.1.tgz", + "integrity": "sha512-5bzab5si3E1udrlZuVGR17857Lfwe8iFPoy5AvMP9PXqDfoyIKT7gDQgAmxdRDMurgHaJlyhXEHHdzDKkOxxZQ==", "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.8.1", - "@docusaurus/utils": "3.8.1", - "@docusaurus/utils-common": "3.8.1", + "@docusaurus/logger": "3.9.1", + "@docusaurus/utils": "3.9.1", + "@docusaurus/utils-common": "3.9.1", "fs-extra": "^11.2.0", "joi": "^17.9.2", "js-yaml": "^4.1.0", @@ -4194,13 +4289,13 @@ "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.8.0.tgz", - "integrity": "sha512-MJQFqrZgcW0UNYLGOuQpey/oTN59vyWwplvCGZztn1cKz9agZPPYpJB7h2OMmuu7VLqkvEjN8feFZJmxNF9D+Q==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", "dev": true, "license": "MIT", "dependencies": { @@ -4242,19 +4337,22 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", - "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.0.tgz", + "integrity": "sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.16.0" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/core": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", - "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz", + "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -4302,9 +4400,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.35.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.35.0.tgz", - "integrity": "sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==", + "version": "9.37.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.37.0.tgz", + "integrity": "sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==", "dev": true, "license": "MIT", "engines": { @@ -4325,13 +4423,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", - "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz", + "integrity": "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.15.2", + "@eslint/core": "^0.16.0", "levn": "^0.4.1" }, "engines": { @@ -4412,9 +4510,9 @@ "license": "MIT" }, "node_modules/@iconify/utils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.0.1.tgz", - "integrity": "sha512-A78CUEnFGX8I/WlILxJCuIJXloL0j/OJ9PSchPAfCargEIKmUBWvvEMmKWB5oONwiUqlNt+5eRufdkLxeHIWYw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.0.2.tgz", + "integrity": "sha512-EfJS0rLfVuRuJRn4psJHtK2A9TqVnkxPpHY6lYHiB9+8eSuudsxbwMiavocG45ujOo6FJ+CIRlRnlOGinzkaGQ==", "license": "MIT", "dependencies": { "@antfu/install-pkg": "^1.1.0", @@ -4514,15 +4612,128 @@ "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.30", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", - "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/buffers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.0.0.tgz", + "integrity": "sha512-NDigYR3PHqCnQLXYyoLbnEdzMMvzeiCWo1KOut7Q0CoIqg9tUAPKJ1iq/2nFhc5kZtexzutNY0LFjdwWL3Dw3Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/codegen": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", + "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.14.0.tgz", + "integrity": "sha512-LpWbYgVnKzphN5S6uss4M25jJ/9+m6q6UJoeN6zTkK4xAGhKsiBRPVeF7OYMWonn5repMQbE5vieRXcMUrKDKw==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/base64": "^1.1.2", + "@jsonjoy.com/buffers": "^1.0.0", + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/json-pointer": "^1.0.1", + "@jsonjoy.com/util": "^1.9.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pointer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", + "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/util": "^1.9.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", + "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "^1.0.0", + "@jsonjoy.com/codegen": "^1.0.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/@kurkle/color": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz", @@ -4656,6 +4867,15 @@ "node": ">= 8" } }, + "node_modules/@opentelemetry/api": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "license": "Apache-2.0", + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/@pnpm/config.env-replace": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", @@ -4753,6 +4973,12 @@ "micromark-util-symbol": "^1.0.1" } }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "license": "MIT" + }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", @@ -5108,9 +5334,9 @@ } }, "node_modules/@types/d3-array": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", - "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", "license": "MIT" }, "node_modules/@types/d3-axis": { @@ -5379,18 +5605,6 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.7.tgz", - "integrity": "sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { "version": "4.19.6", "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", @@ -5514,12 +5728,12 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.3.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.1.tgz", - "integrity": "sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==", + "version": "24.6.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.6.2.tgz", + "integrity": "sha512-d2L25Y4j+W3ZlNAeMKcy7yDsK425ibcAOO2t7aPTz6gNMH0z2GThtwENCDc0d/Pw9wgyRqE5Px1wkV7naz8ang==", "license": "MIT", "dependencies": { - "undici-types": "~7.10.0" + "undici-types": "~7.13.0" } }, "node_modules/@types/node-forge": { @@ -5550,9 +5764,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "19.1.12", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.12.tgz", - "integrity": "sha512-cMoR+FoAf/Jyq6+Df2/Z41jISvGZZ2eTlnsaJRptmZ76Caldwy1odD4xTr/gNV9VLj0AWgg/nmkevIyUfIIq5w==", + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.0.tgz", + "integrity": "sha512-1LOH8xovvsKsCBq1wnT4ntDUdCJKmnEakhsuoUSy6ExlHCkGP2hqnatagYTgFk6oeL0VU31u7SNjunPN+GchtA==", "license": "MIT", "dependencies": { "csstype": "^3.0.2" @@ -5591,9 +5805,9 @@ } }, "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", "license": "MIT" }, "node_modules/@types/sax": { @@ -5613,12 +5827,11 @@ "license": "MIT" }, "node_modules/@types/send": { - "version": "0.17.5", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", - "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.0.tgz", + "integrity": "sha512-zBF6vZJn1IaMpg3xUF25VK3gd3l8zwE0ZLRX7dsQyQi+jp4E8mMDJNGDYnYse+bQhYwWERTxVwHpi3dMOq7RKQ==", "license": "MIT", "dependencies": { - "@types/mime": "^1", "@types/node": "*" } }, @@ -5632,14 +5845,24 @@ } }, "node_modules/@types/serve-static": { - "version": "1.15.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.8.tgz", - "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.9.tgz", + "integrity": "sha512-dOTIuqpWLyl3BBXU3maNQsS4A3zuuoYRNIvYSxxhebPfXg2mzWQEPne/nlJ37yOse6uGgR386uTpdsx4D0QZWA==", "license": "MIT", "dependencies": { "@types/http-errors": "*", "@types/node": "*", - "@types/send": "*" + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.5", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.5.tgz", + "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" } }, "node_modules/@types/sockjs": { @@ -5689,17 +5912,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.42.0.tgz", - "integrity": "sha512-Aq2dPqsQkxHOLfb2OPv43RnIvfj05nw8v/6n3B2NABIPpHnjQnaLo9QGMTvml+tv4korl/Cjfrb/BYhoL8UUTQ==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.45.0.tgz", + "integrity": "sha512-HC3y9CVuevvWCl/oyZuI47dOeDF9ztdMEfMH8/DW/Mhwa9cCLnK1oD7JoTVGW/u7kFzNZUKUoyJEqkaJh5y3Wg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.42.0", - "@typescript-eslint/type-utils": "8.42.0", - "@typescript-eslint/utils": "8.42.0", - "@typescript-eslint/visitor-keys": "8.42.0", + "@typescript-eslint/scope-manager": "8.45.0", + "@typescript-eslint/type-utils": "8.45.0", + "@typescript-eslint/utils": "8.45.0", + "@typescript-eslint/visitor-keys": "8.45.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", @@ -5713,7 +5936,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.42.0", + "@typescript-eslint/parser": "^8.45.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -5729,16 +5952,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.42.0.tgz", - "integrity": "sha512-r1XG74QgShUgXph1BYseJ+KZd17bKQib/yF3SR+demvytiRXrwd12Blnz5eYGm8tXaeRdd4x88MlfwldHoudGg==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.45.0.tgz", + "integrity": "sha512-TGf22kon8KW+DeKaUmOibKWktRY8b2NSAZNdtWh798COm1NWx8+xJ6iFBtk3IvLdv6+LGLJLRlyhrhEDZWargQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.42.0", - "@typescript-eslint/types": "8.42.0", - "@typescript-eslint/typescript-estree": "8.42.0", - "@typescript-eslint/visitor-keys": "8.42.0", + "@typescript-eslint/scope-manager": "8.45.0", + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/typescript-estree": "8.45.0", + "@typescript-eslint/visitor-keys": "8.45.0", "debug": "^4.3.4" }, "engines": { @@ -5754,14 +5977,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.42.0.tgz", - "integrity": "sha512-vfVpLHAhbPjilrabtOSNcUDmBboQNrJUiNAGoImkZKnMjs2TIcWG33s4Ds0wY3/50aZmTMqJa6PiwkwezaAklg==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.45.0.tgz", + "integrity": "sha512-3pcVHwMG/iA8afdGLMuTibGR7pDsn9RjDev6CCB+naRsSYs2pns5QbinF4Xqw6YC/Sj3lMrm/Im0eMfaa61WUg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.42.0", - "@typescript-eslint/types": "^8.42.0", + "@typescript-eslint/tsconfig-utils": "^8.45.0", + "@typescript-eslint/types": "^8.45.0", "debug": "^4.3.4" }, "engines": { @@ -5776,14 +5999,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.42.0.tgz", - "integrity": "sha512-51+x9o78NBAVgQzOPd17DkNTnIzJ8T/O2dmMBLoK9qbY0Gm52XJcdJcCl18ExBMiHo6jPMErUQWUv5RLE51zJw==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.45.0.tgz", + "integrity": "sha512-clmm8XSNj/1dGvJeO6VGH7EUSeA0FMs+5au/u3lrA3KfG8iJ4u8ym9/j2tTEoacAffdW1TVUzXO30W1JTJS7dA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.42.0", - "@typescript-eslint/visitor-keys": "8.42.0" + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/visitor-keys": "8.45.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5794,9 +6017,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.42.0.tgz", - "integrity": "sha512-kHeFUOdwAJfUmYKjR3CLgZSglGHjbNTi1H8sTYRYV2xX6eNz4RyJ2LIgsDLKf8Yi0/GL1WZAC/DgZBeBft8QAQ==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.45.0.tgz", + "integrity": "sha512-aFdr+c37sc+jqNMGhH+ajxPXwjv9UtFZk79k8pLoJ6p4y0snmYpPA52GuWHgt2ZF4gRRW6odsEj41uZLojDt5w==", "dev": true, "license": "MIT", "engines": { @@ -5811,15 +6034,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.42.0.tgz", - "integrity": "sha512-9KChw92sbPTYVFw3JLRH1ockhyR3zqqn9lQXol3/YbI6jVxzWoGcT3AsAW0mu1MY0gYtsXnUGV/AKpkAj5tVlQ==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.45.0.tgz", + "integrity": "sha512-bpjepLlHceKgyMEPglAeULX1vixJDgaKocp0RVJ5u4wLJIMNuKtUXIczpJCPcn2waII0yuvks/5m5/h3ZQKs0A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.42.0", - "@typescript-eslint/typescript-estree": "8.42.0", - "@typescript-eslint/utils": "8.42.0", + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/typescript-estree": "8.45.0", + "@typescript-eslint/utils": "8.45.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -5836,9 +6059,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.42.0.tgz", - "integrity": "sha512-LdtAWMiFmbRLNP7JNeY0SqEtJvGMYSzfiWBSmx+VSZ1CH+1zyl8Mmw1TT39OrtsRvIYShjJWzTDMPWZJCpwBlw==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.45.0.tgz", + "integrity": "sha512-WugXLuOIq67BMgQInIxxnsSyRLFxdkJEJu8r4ngLR56q/4Q5LrbfkFRH27vMTjxEK8Pyz7QfzuZe/G15qQnVRA==", "dev": true, "license": "MIT", "engines": { @@ -5850,16 +6073,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.42.0.tgz", - "integrity": "sha512-ku/uYtT4QXY8sl9EDJETD27o3Ewdi72hcXg1ah/kkUgBvAYHLwj2ofswFFNXS+FL5G+AGkxBtvGt8pFBHKlHsQ==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.45.0.tgz", + "integrity": "sha512-GfE1NfVbLam6XQ0LcERKwdTTPlLvHvXXhOeUGC1OXi4eQBoyy1iVsW+uzJ/J9jtCz6/7GCQ9MtrQ0fml/jWCnA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.42.0", - "@typescript-eslint/tsconfig-utils": "8.42.0", - "@typescript-eslint/types": "8.42.0", - "@typescript-eslint/visitor-keys": "8.42.0", + "@typescript-eslint/project-service": "8.45.0", + "@typescript-eslint/tsconfig-utils": "8.45.0", + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/visitor-keys": "8.45.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -5905,16 +6128,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.42.0.tgz", - "integrity": "sha512-JnIzu7H3RH5BrKC4NoZqRfmjqCIS1u3hGZltDYJgkVdqAezl4L9d1ZLw+36huCujtSBSAirGINF/S4UxOcR+/g==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.45.0.tgz", + "integrity": "sha512-bxi1ht+tLYg4+XV2knz/F7RVhU0k6VrSMc9sb8DQ6fyCTrGQLHfo7lDtN0QJjZjKkLA2ThrKuCdHEvLReqtIGg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.42.0", - "@typescript-eslint/types": "8.42.0", - "@typescript-eslint/typescript-estree": "8.42.0" + "@typescript-eslint/scope-manager": "8.45.0", + "@typescript-eslint/types": "8.45.0", + "@typescript-eslint/typescript-estree": "8.45.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5929,13 +6152,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.42.0.tgz", - "integrity": "sha512-3WbiuzoEowaEn8RSnhJBrxSwX8ULYE9CXaPepS2C2W3NSA5NNIvBaslpBSBElPq0UGr0xVJlXFWOAKIkyylydQ==", + "version": "8.45.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.45.0.tgz", + "integrity": "sha512-qsaFBA3e09MIDAGFUrTk+dzqtfv1XPVz8t8d1f0ybTzrCY7BKiMC5cjrl1O/P7UmHsNyW90EYSkU/ZWpmXelag==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.42.0", + "@typescript-eslint/types": "8.45.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -5965,6 +6188,15 @@ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", "license": "ISC" }, + "node_modules/@vercel/oidc": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@vercel/oidc/-/oidc-3.0.1.tgz", + "integrity": "sha512-V/YRVrJDqM6VaMBjRUrd6qRMrTKvZjHdVdEmdXsOZMulTa3iK98ijKTc3wldBmst6W5rHpqMoKllKcBAHgN7GQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 20" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", @@ -6233,6 +6465,24 @@ "node": ">=8" } }, + "node_modules/ai": { + "version": "5.0.60", + "resolved": "https://registry.npmjs.org/ai/-/ai-5.0.60.tgz", + "integrity": "sha512-80U/3kmdBW6g+JkLXpz/P2EwkyEaWlPlYtuLUpx/JYK9F7WZh9NnkYoh1KvUi1Sbpo0NyurBTvX0a2AG9mmbDA==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/gateway": "1.0.33", + "@ai-sdk/provider": "2.0.0", + "@ai-sdk/provider-utils": "3.0.10", + "@opentelemetry/api": "1.9.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.25.76 || ^4.1.8" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -6298,25 +6548,25 @@ } }, "node_modules/algoliasearch": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.37.0.tgz", - "integrity": "sha512-y7gau/ZOQDqoInTQp0IwTOjkrHc4Aq4R8JgpmCleFwiLl+PbN2DMWoDUWZnrK8AhNJwT++dn28Bt4NZYNLAmuA==", - "license": "MIT", - "dependencies": { - "@algolia/abtesting": "1.3.0", - "@algolia/client-abtesting": "5.37.0", - "@algolia/client-analytics": "5.37.0", - "@algolia/client-common": "5.37.0", - "@algolia/client-insights": "5.37.0", - "@algolia/client-personalization": "5.37.0", - "@algolia/client-query-suggestions": "5.37.0", - "@algolia/client-search": "5.37.0", - "@algolia/ingestion": "1.37.0", - "@algolia/monitoring": "1.37.0", - "@algolia/recommend": "5.37.0", - "@algolia/requester-browser-xhr": "5.37.0", - "@algolia/requester-fetch": "5.37.0", - "@algolia/requester-node-http": "5.37.0" + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.39.0.tgz", + "integrity": "sha512-DzTfhUxzg9QBNGzU/0kZkxEV72TeA4MmPJ7RVfLnQwHNhhliPo7ynglEWJS791rNlLFoTyrKvkapwr/P3EXV9A==", + "license": "MIT", + "dependencies": { + "@algolia/abtesting": "1.5.0", + "@algolia/client-abtesting": "5.39.0", + "@algolia/client-analytics": "5.39.0", + "@algolia/client-common": "5.39.0", + "@algolia/client-insights": "5.39.0", + "@algolia/client-personalization": "5.39.0", + "@algolia/client-query-suggestions": "5.39.0", + "@algolia/client-search": "5.39.0", + "@algolia/ingestion": "1.39.0", + "@algolia/monitoring": "1.39.0", + "@algolia/recommend": "5.39.0", + "@algolia/requester-browser-xhr": "5.39.0", + "@algolia/requester-fetch": "5.39.0", + "@algolia/requester-node-http": "5.39.0" }, "engines": { "node": ">= 14.0.0" @@ -6602,6 +6852,15 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "license": "MIT" }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.12.tgz", + "integrity": "sha512-vAPMQdnyKCBtkmQA6FMCBvU9qFIppS3nzyXnEM+Lo2IAhG4Mpjv9cCxMudhgV3YdNNJv6TNqXy97dfRVL2LmaQ==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -6750,9 +7009,9 @@ } }, "node_modules/browserslist": { - "version": "4.25.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.4.tgz", - "integrity": "sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==", + "version": "4.26.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz", + "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==", "funding": [ { "type": "opencollective", @@ -6769,9 +7028,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001737", - "electron-to-chromium": "^1.5.211", - "node-releases": "^2.0.19", + "baseline-browser-mapping": "^2.8.9", + "caniuse-lite": "^1.0.30001746", + "electron-to-chromium": "^1.5.227", + "node-releases": "^2.0.21", "update-browserslist-db": "^1.1.3" }, "bin": { @@ -6787,6 +7047,21 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "license": "MIT" }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", @@ -6914,9 +7189,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001741", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001741.tgz", - "integrity": "sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==", + "version": "1.0.30001747", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001747.tgz", + "integrity": "sha512-mzFa2DGIhuc5490Nd/G31xN1pnBnYMadtkyTjefPI7wzypqgCEpeWu9bJr0OnDsyKrW75zA9ZAt7pbQFmwLsQg==", "funding": [ { "type": "opencollective", @@ -7473,18 +7748,6 @@ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "license": "MIT" }, - "node_modules/copy-text-to-clipboard": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", - "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/copy-webpack-plugin": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", @@ -7708,9 +7971,9 @@ } }, "node_modules/css-declaration-sorter": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", - "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.3.0.tgz", + "integrity": "sha512-LQF6N/3vkAMYF4xoHLJfG718HRJh34Z8BnNhd6bosOMIVjMlhuZK5++oZa3uYAgrI5+7x2o27gUqTR2U/KjUOQ==", "license": "ISC", "engines": { "node": "^14 || ^16 || >=18" @@ -7924,9 +8187,9 @@ } }, "node_modules/cssdb": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.4.0.tgz", - "integrity": "sha512-lyATYGyvXwQ8h55WeQeEHXhI+47rl52pXSYkFK/ZrCbAJSgVIaPFjYc3RM8TpRHKk7W3wsAZImmLps+P5VyN9g==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.4.2.tgz", + "integrity": "sha512-PzjkRkRUS+IHDJohtxkIczlxPPZqRo0nXplsYXOMBRPjcVRjj1W4DfvRgshUYTVuUigU7ptVYkFJQ7abUB0nyg==", "funding": [ { "type": "opencollective", @@ -8608,9 +8871,9 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -8689,16 +8952,32 @@ "node": ">=0.10.0" } }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "license": "BSD-2-Clause", + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "license": "MIT", "dependencies": { - "execa": "^5.0.0" + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" }, "engines": { - "node": ">= 10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/defer-to-connect": { @@ -8901,9 +9180,9 @@ } }, "node_modules/dompurify": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz", - "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.7.tgz", + "integrity": "sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==", "license": "(MPL-2.0 OR Apache-2.0)", "optionalDependencies": { "@types/trusted-types": "^2.0.7" @@ -8990,9 +9269,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.214", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.214.tgz", - "integrity": "sha512-TpvUNdha+X3ybfU78NoQatKvQEm1oq3lf2QbnmCEdw+Bd9RuIAY+hJTvq1avzHM0f7EJfnH3vbCnbzKzisc/9Q==", + "version": "1.5.230", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.230.tgz", + "integrity": "sha512-A6A6Fd3+gMdaed9wX83CvHYJb4UuapPD5X5SLq72VZJzxHSY0/LUweGXRWmQlh2ln7KV7iw7jnwXK7dlPoOnHQ==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -9061,9 +9340,9 @@ } }, "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" @@ -9177,20 +9456,20 @@ } }, "node_modules/eslint": { - "version": "9.35.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.35.0.tgz", - "integrity": "sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg==", + "version": "9.37.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.37.0.tgz", + "integrity": "sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.0", - "@eslint/config-helpers": "^0.3.1", - "@eslint/core": "^0.15.2", + "@eslint/config-helpers": "^0.4.0", + "@eslint/core": "^0.16.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.35.0", - "@eslint/plugin-kit": "^0.3.5", + "@eslint/js": "9.37.0", + "@eslint/plugin-kit": "^0.4.0", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -9547,6 +9826,15 @@ "node": ">=0.8.x" } }, + "node_modules/eventsource-parser": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.6.tgz", + "integrity": "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -10031,9 +10319,9 @@ } }, "node_modules/fs-extra": { - "version": "11.3.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", - "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", + "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", @@ -10044,18 +10332,6 @@ "node": ">=14.14" } }, - "node_modules/fs-monkey": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz", - "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==", - "license": "Unlicense" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC" - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -10149,27 +10425,6 @@ "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", "license": "ISC" }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -10182,6 +10437,22 @@ "node": ">= 6" } }, + "node_modules/glob-to-regex.js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz", + "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", @@ -10204,9 +10475,9 @@ } }, "node_modules/globals": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz", - "integrity": "sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==", + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", + "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", "dev": true, "license": "MIT", "engines": { @@ -10665,27 +10936,11 @@ "node_modules/hpack.js/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", - "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT" + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } }, "node_modules/html-escaper": { "version": "2.0.2", @@ -10932,6 +11187,15 @@ "node": ">=10.17.0" } }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "license": "MIT", + "engines": { + "node": ">=10.18" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -11029,17 +11293,6 @@ "node": ">=12" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -11231,6 +11484,39 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -11247,10 +11533,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-network-error": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.0.tgz", + "integrity": "sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-npm": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", - "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.1.0.tgz", + "integrity": "sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA==", "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -11490,6 +11788,12 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "license": "MIT" }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -11528,9 +11832,9 @@ } }, "node_modules/katex": { - "version": "0.16.22", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz", - "integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==", + "version": "0.16.23", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.23.tgz", + "integrity": "sha512-7VlC1hsEEolL9xNO05v9VjrvWZePkCVBJqj8ruICxYjZfHaHbaU53AlP+PODyFIXEnaEIEWi3wJy7FPZ95JAVg==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -11846,15 +12150,15 @@ } }, "node_modules/marked": { - "version": "15.0.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.12.tgz", - "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==", + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-16.3.0.tgz", + "integrity": "sha512-K3UxuKu6l6bmA5FUwYho8CfJBlsUWAooKtdGgMcERSpF7gcBUrCGsLH7wDaaNOzwq18JzSUDyoEb/YsrqMac3w==", "license": "MIT", "bin": { "marked": "bin/marked.js" }, "engines": { - "node": ">= 18" + "node": ">= 20" } }, "node_modules/math-intrinsics": { @@ -12284,15 +12588,21 @@ } }, "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "license": "Unlicense", + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.48.1.tgz", + "integrity": "sha512-vWO+1ROkhOALF1UnT9aNOOflq5oFDlqwTXaPg6duo07fBLxSH0+bcF0TY1lbA1zTNKyGgDxgaDdKx5MaewLX5A==", + "license": "Apache-2.0", "dependencies": { - "fs-monkey": "^1.0.4" + "@jsonjoy.com/json-pack": "^1.11.0", + "@jsonjoy.com/util": "^1.9.0", + "glob-to-regex.js": "^1.0.1", + "thingies": "^2.5.0", + "tree-dump": "^1.0.3", + "tslib": "^2.0.0" }, - "engines": { - "node": ">= 4.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" } }, "node_modules/merge-descriptors": { @@ -12320,12 +12630,12 @@ } }, "node_modules/mermaid": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.11.0.tgz", - "integrity": "sha512-9lb/VNkZqWTRjVgCV+l1N+t4kyi94y+l5xrmBmbbxZYkfRl5hEDaTPMOcaWKCl1McG8nBEaMlWwkcAEEgjhBgg==", + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.12.0.tgz", + "integrity": "sha512-ZudVx73BwrMJfCFmSSJT84y6u5brEoV8DOItdHomNLz32uBjNrelm7mg95X7g+C6UoQH/W6mBLGDEDv73JdxBg==", "license": "MIT", "dependencies": { - "@braintree/sanitize-url": "^7.0.4", + "@braintree/sanitize-url": "^7.1.1", "@iconify/utils": "^3.0.1", "@mermaid-js/parser": "^0.6.2", "@types/d3": "^7.4.3", @@ -12335,12 +12645,12 @@ "d3": "^7.9.0", "d3-sankey": "^0.12.3", "dagre-d3-es": "7.0.11", - "dayjs": "^1.11.13", + "dayjs": "^1.11.18", "dompurify": "^3.2.5", "katex": "^0.16.22", "khroma": "^2.1.0", "lodash-es": "^4.17.21", - "marked": "^15.0.7", + "marked": "^16.2.1", "roughjs": "^4.6.6", "stylis": "^4.3.6", "ts-dedent": "^2.2.0", @@ -14284,9 +14594,19 @@ } }, "node_modules/monaco-editor": { - "version": "0.52.2", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.52.2.tgz", - "integrity": "sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==", + "version": "0.53.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.53.0.tgz", + "integrity": "sha512-0WNThgC6CMWNXXBxTbaYYcunj08iB5rnx4/G56UOPeL9UVIUGGHA1GR0EWIh9Ebabj7NpCRawQ5b0hfN1jQmYQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/trusted-types": "^1.0.6" + } + }, + "node_modules/monaco-editor/node_modules/@types/trusted-types": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-1.0.6.tgz", + "integrity": "sha512-230RC8sFeHoT6sSUlRO6a8cAnclO06eeiq1QDfiv2FGCLWFvvERWgwIQD4FWqD9A69BN7Lzee4OXwoMVnnsWDw==", "license": "MIT", "peer": true }, @@ -14393,9 +14713,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.20.tgz", - "integrity": "sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA==", + "version": "2.0.23", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.23.tgz", + "integrity": "sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==", "license": "MIT" }, "node_modules/normalize-path": { @@ -14417,9 +14737,9 @@ } }, "node_modules/normalize-url": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.2.tgz", - "integrity": "sha512-Ee/R3SyN4BuynXcnTaekmaVdbDAEiNrHqjQIA37mHU8G9pf7aaAD4ZX3XjBLo6rsdcxA/gtkcNYZLt30ACgynw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.1.0.tgz", + "integrity": "sha512-X06Mfd/5aKsRHc0O0J5CUedwnPmnDtLF2+nq+KN9KSDlJHkPuh0JUviWjEWMe0SW/9TDdSLVPuk7L5gGTIA1/w==", "license": "MIT", "engines": { "node": ">=14.16" @@ -14573,15 +14893,6 @@ "node": ">= 0.8" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", @@ -14723,16 +15034,20 @@ } }, "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", "license": "MIT", "dependencies": { - "@types/retry": "0.12.0", + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", "retry": "^0.13.1" }, "engines": { - "node": ">=8" + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-timeout": { @@ -14914,15 +15229,6 @@ "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", @@ -15208,9 +15514,9 @@ } }, "node_modules/postcss-color-functional-notation": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.11.tgz", - "integrity": "sha512-zfqoUSaHMko/k2PA9xnaydVTHqYv5vphq5Q2AHcG/dCdv/OkHYWcVWfVTBKZ526uzT8L7NghuvSw3C9PxlKnLg==", + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.12.tgz", + "integrity": "sha512-TLCW9fN5kvO/u38/uesdpbx3e8AkTYhMvDZYa9JpmImWuTE99bDQ7GU7hdOADIZsiI9/zuxfAJxny/khknp1Zw==", "funding": [ { "type": "github", @@ -15226,7 +15532,7 @@ "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -15522,9 +15828,9 @@ } }, "node_modules/postcss-double-position-gradients": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.3.tgz", - "integrity": "sha512-Dl0Z9sdbMwrPslgOaGBZRGo3TASmmgTcqcUODr82MTYyJk6devXZM6MlQjpQKMJqlLJ6oL1w78U7IXFdPA5+ug==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.4.tgz", + "integrity": "sha512-m6IKmxo7FxSP5nF2l63QbCC3r+bWpFUWmZXZf096WxG0m7Vl1Q1+ruFOhpdDRmKrRS+S3Jtk+TVk/7z0+BVK6g==", "funding": [ { "type": "github", @@ -15537,7 +15843,7 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.2.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, @@ -15682,9 +15988,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.11.tgz", - "integrity": "sha512-BEA4jId8uQe1gyjZZ6Bunb6ZsH2izks+v25AxQJDBtigXCjTLmCPWECwQpLTtcxH589MVxhs/9TAmRC6lUEmXQ==", + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.12.tgz", + "integrity": "sha512-tUcyRk1ZTPec3OuKFsqtRzW2Go5lehW29XA21lZ65XmzQkz43VY2tyWEC202F7W3mILOjw0voOiuxRGTsN+J9w==", "funding": [ { "type": "github", @@ -15700,7 +16006,7 @@ "@csstools/css-color-parser": "^3.1.0", "@csstools/css-parser-algorithms": "^3.0.5", "@csstools/css-tokenizer": "^3.0.4", - "@csstools/postcss-progressive-custom-properties": "^4.2.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -16271,9 +16577,9 @@ } }, "node_modules/postcss-preset-env": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.3.1.tgz", - "integrity": "sha512-8ZOOWVwQ0iMpfEYkYo+U6W7fE2dJ/tP6dtEFwPJ66eB5JjnFupfYh+y6zo+vWDO72nGhKOVdxwhTjfzcSNRg4Q==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.4.0.tgz", + "integrity": "sha512-2kqpOthQ6JhxqQq1FSAAZGe9COQv75Aw8WbsOvQVNJ2nSevc9Yx/IKZGuZ7XJ+iOTtVon7LfO7ELRzg8AZ+sdw==", "funding": [ { "type": "github", @@ -16286,22 +16592,23 @@ ], "license": "MIT-0", "dependencies": { - "@csstools/postcss-alpha-function": "^1.0.0", + "@csstools/postcss-alpha-function": "^1.0.1", "@csstools/postcss-cascade-layers": "^5.0.2", - "@csstools/postcss-color-function": "^4.0.11", - "@csstools/postcss-color-function-display-p3-linear": "^1.0.0", - "@csstools/postcss-color-mix-function": "^3.0.11", - "@csstools/postcss-color-mix-variadic-function-arguments": "^1.0.1", - "@csstools/postcss-content-alt-text": "^2.0.7", + "@csstools/postcss-color-function": "^4.0.12", + "@csstools/postcss-color-function-display-p3-linear": "^1.0.1", + "@csstools/postcss-color-mix-function": "^3.0.12", + "@csstools/postcss-color-mix-variadic-function-arguments": "^1.0.2", + "@csstools/postcss-content-alt-text": "^2.0.8", + "@csstools/postcss-contrast-color-function": "^2.0.12", "@csstools/postcss-exponential-functions": "^2.0.9", "@csstools/postcss-font-format-keywords": "^4.0.0", "@csstools/postcss-gamut-mapping": "^2.0.11", - "@csstools/postcss-gradients-interpolation-method": "^5.0.11", - "@csstools/postcss-hwb-function": "^4.0.11", - "@csstools/postcss-ic-unit": "^4.0.3", + "@csstools/postcss-gradients-interpolation-method": "^5.0.12", + "@csstools/postcss-hwb-function": "^4.0.12", + "@csstools/postcss-ic-unit": "^4.0.4", "@csstools/postcss-initial": "^2.0.1", "@csstools/postcss-is-pseudo-class": "^5.0.3", - "@csstools/postcss-light-dark-function": "^2.0.10", + "@csstools/postcss-light-dark-function": "^2.0.11", "@csstools/postcss-logical-float-and-clear": "^3.0.0", "@csstools/postcss-logical-overflow": "^2.0.0", "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", @@ -16311,10 +16618,10 @@ "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.5", "@csstools/postcss-nested-calc": "^4.0.0", "@csstools/postcss-normalize-display-values": "^4.0.0", - "@csstools/postcss-oklab-function": "^4.0.11", - "@csstools/postcss-progressive-custom-properties": "^4.2.0", + "@csstools/postcss-oklab-function": "^4.0.12", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/postcss-random-function": "^2.0.1", - "@csstools/postcss-relative-color-syntax": "^3.0.11", + "@csstools/postcss-relative-color-syntax": "^3.0.12", "@csstools/postcss-scope-pseudo-class": "^4.0.1", "@csstools/postcss-sign-functions": "^1.1.4", "@csstools/postcss-stepped-value-functions": "^4.0.9", @@ -16322,27 +16629,27 @@ "@csstools/postcss-trigonometric-functions": "^4.0.9", "@csstools/postcss-unset-value": "^4.0.0", "autoprefixer": "^10.4.21", - "browserslist": "^4.25.1", + "browserslist": "^4.26.0", "css-blank-pseudo": "^7.0.1", "css-has-pseudo": "^7.0.3", "css-prefers-color-scheme": "^10.0.0", - "cssdb": "^8.4.0", + "cssdb": "^8.4.2", "postcss-attribute-case-insensitive": "^7.0.1", "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^7.0.11", + "postcss-color-functional-notation": "^7.0.12", "postcss-color-hex-alpha": "^10.0.0", "postcss-color-rebeccapurple": "^10.0.0", "postcss-custom-media": "^11.0.6", "postcss-custom-properties": "^14.0.6", "postcss-custom-selectors": "^8.0.5", "postcss-dir-pseudo-class": "^9.0.1", - "postcss-double-position-gradients": "^6.0.3", + "postcss-double-position-gradients": "^6.0.4", "postcss-focus-visible": "^10.0.1", "postcss-focus-within": "^9.0.1", "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^6.0.0", "postcss-image-set-function": "^7.0.0", - "postcss-lab-function": "^7.0.11", + "postcss-lab-function": "^7.0.12", "postcss-logical": "^8.1.0", "postcss-nesting": "^13.0.2", "postcss-opacity-percentage": "^3.0.0", @@ -16713,9 +17020,9 @@ } }, "node_modules/pupa": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", - "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.3.0.tgz", + "integrity": "sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==", "license": "MIT", "dependencies": { "escape-goat": "^4.0.0" @@ -16875,9 +17182,9 @@ } }, "node_modules/react": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", - "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz", + "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -16894,15 +17201,15 @@ } }, "node_modules/react-dom": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", - "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz", + "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==", "license": "MIT", "dependencies": { - "scheduler": "^0.26.0" + "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.1.1" + "react": "^19.2.0" } }, "node_modules/react-fast-compare": { @@ -17127,9 +17434,9 @@ "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", "license": "MIT", "dependencies": { "regenerate": "^1.4.2" @@ -17139,17 +17446,17 @@ } }, "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", "license": "MIT", "dependencies": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", + "regenerate-unicode-properties": "^10.2.2", "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", + "regjsparser": "^0.13.0", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "unicode-match-property-value-ecmascript": "^2.2.1" }, "engines": { "node": ">=4" @@ -17189,29 +17496,17 @@ "license": "MIT" }, "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~3.0.2" + "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/rehype-raw": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", @@ -17586,22 +17881,6 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/robust-predicates": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", @@ -17638,6 +17917,18 @@ "node": ">=12.0.0" } }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -17700,9 +17991,9 @@ "license": "ISC" }, "node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", "license": "MIT" }, "node_modules/schema-dts": { @@ -17712,9 +18003,9 @@ "license": "Apache-2.0" }, "node_modules/schema-utils": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", - "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", @@ -18410,9 +18701,9 @@ } }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz", - "integrity": "sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "license": "MIT", "engines": { "node": ">=12" @@ -18422,9 +18713,9 @@ } }, "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -18610,10 +18901,23 @@ "node": ">= 10" } }, + "node_modules/swr": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.3.6.tgz", + "integrity": "sha512-wfHRmHWk/isGNMwlLGlZX5Gzz/uTgo0o2IRuTMcf4CPuPFJZlq0rDaKUx+ozB5nBOReNV1kiOyzMfj+MBMikLw==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.3", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/tapable": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz", - "integrity": "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", "license": "MIT", "engines": { "node": ">=6" @@ -18710,6 +19014,34 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "license": "MIT" }, + "node_modules/thingies": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.5.0.tgz", + "integrity": "sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==", + "license": "MIT", + "engines": { + "node": ">=10.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/throttleit": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-2.1.0.tgz", + "integrity": "sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -18773,6 +19105,22 @@ "node": ">=6" } }, + "node_modules/tree-dump": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", + "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -18913,9 +19261,9 @@ } }, "node_modules/typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "devOptional": true, "license": "Apache-2.0", "bin": { @@ -18933,9 +19281,9 @@ "license": "MIT" }, "node_modules/undici-types": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz", - "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.13.0.tgz", + "integrity": "sha512-Ov2Rr9Sx+fRgagJ5AX0qvItZG/JKKoBRAVITs1zk7IqZGTJUwgUr7qoYBpWwakpWilTZFM98rG/AFRocu10iIQ==", "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -18970,18 +19318,18 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", "license": "MIT", "engines": { "node": ">=4" @@ -19213,9 +19561,9 @@ } }, "node_modules/update-notifier/node_modules/chalk": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.0.tgz", - "integrity": "sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" @@ -19299,6 +19647,15 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -19481,9 +19838,9 @@ } }, "node_modules/webpack": { - "version": "5.101.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.101.3.tgz", - "integrity": "sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A==", + "version": "5.102.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.102.0.tgz", + "integrity": "sha512-hUtqAR3ZLVEYDEABdBioQCIqSoguHbFn1K7WlPPWSuXmx0031BD73PSE35jKyftdSh4YLDoQNgK4pqBt5Q82MA==", "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.7", @@ -19494,7 +19851,7 @@ "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.15.0", "acorn-import-phases": "^1.0.3", - "browserslist": "^4.24.0", + "browserslist": "^4.24.5", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.3", "es-module-lexer": "^1.2.1", @@ -19507,9 +19864,9 @@ "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^4.3.2", - "tapable": "^2.1.1", + "tapable": "^2.2.3", "terser-webpack-plugin": "^5.3.11", - "watchpack": "^2.4.1", + "watchpack": "^2.4.4", "webpack-sources": "^3.3.3" }, "bin": { @@ -19564,44 +19921,50 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz", + "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==", "license": "MIT", "dependencies": { "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", + "memfs": "^4.43.1", + "mime-types": "^3.0.1", + "on-finished": "^2.4.1", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } } }, "node_modules/webpack-dev-middleware/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/webpack-dev-middleware/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", "license": "MIT", "dependencies": { - "mime-db": "1.52.0" + "mime-db": "^1.54.0" }, "engines": { "node": ">= 0.6" @@ -19617,54 +19980,52 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.15.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", - "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", - "license": "MIT", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz", + "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==", + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.21", + "@types/express-serve-static-core": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", + "express": "^4.21.2", "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", + "http-proxy-middleware": "^2.0.9", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "schema-utils": "^4.2.0", + "selfsigned": "^2.4.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.4", - "ws": "^8.13.0" + "webpack-dev-middleware": "^7.4.2", + "ws": "^8.18.0" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" + "webpack": "^5.0.0" }, "peerDependenciesMeta": { "webpack": { @@ -19675,6 +20036,36 @@ } } }, + "node_modules/webpack-dev-server/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/webpack-dev-server/node_modules/ws": { "version": "8.18.3", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", @@ -19921,9 +20312,9 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz", - "integrity": "sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "license": "MIT", "engines": { "node": ">=12" @@ -19933,9 +20324,9 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "license": "MIT", "engines": { "node": ">=12" @@ -19945,9 +20336,9 @@ } }, "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -19959,12 +20350,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, "node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", @@ -19998,6 +20383,36 @@ } } }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wsl-utils/node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/xdg-basedir": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", @@ -20041,6 +20456,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/zod": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.11.tgz", + "integrity": "sha512-WPsqwxITS2tzx1bzhIKsEs19ABD5vmCVa4xBo2tq/SrV4RNZtfws1EnCWQXM6yh8bD08a1idvkB5MZSBiZsjwg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/package.json b/package.json index 36d6612b..aa024b3d 100644 --- a/package.json +++ b/package.json @@ -28,34 +28,34 @@ }, "dependencies": { "@boa-dev/boa_wasm": "^0.20.0", - "@docusaurus/core": "^3.8.1", - "@docusaurus/plugin-content-pages": "^3.8.1", - "@docusaurus/preset-classic": "^3.8.1", - "@docusaurus/theme-mermaid": "^3.8.1", + "@docusaurus/core": "^3.9.1", + "@docusaurus/plugin-content-pages": "^3.9.1", + "@docusaurus/preset-classic": "^3.9.1", + "@docusaurus/theme-mermaid": "^3.9.1", "@mdx-js/react": "^3.1.1", "@monaco-editor/react": "^4.7.0", "chart.js": "^4.5.0", "clsx": "^2.1.1", "prism-react-renderer": "^2.4.1", - "react": "^19.1.1", + "react": "^19.2.0", "react-chartjs-2": "^5.3.0", - "react-dom": "^19.1.1" + "react-dom": "^19.2.0" }, "devDependencies": { - "@docusaurus/eslint-plugin": "^3.8.1", - "@docusaurus/module-type-aliases": "^3.8.1", - "@docusaurus/plugin-client-redirects": "^3.8.1", - "@docusaurus/tsconfig": "^3.8.1", - "@docusaurus/types": "^3.8.1", + "@docusaurus/eslint-plugin": "^3.9.1", + "@docusaurus/module-type-aliases": "^3.9.1", + "@docusaurus/plugin-client-redirects": "^3.9.1", + "@docusaurus/tsconfig": "^3.9.1", + "@docusaurus/types": "^3.9.1", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "^9.35.0", - "@typescript-eslint/eslint-plugin": "^8.42.0", - "@typescript-eslint/parser": "^8.42.0", - "eslint": "^9.35.0", + "@eslint/js": "^9.37.0", + "@typescript-eslint/eslint-plugin": "^8.45.0", + "@typescript-eslint/parser": "^8.45.0", + "eslint": "^9.37.0", "eslint-config-prettier": "^10.1.8", - "globals": "^16.3.0", + "globals": "^16.4.0", "prettier": "3.6.2", - "typescript": "^5.9.2" + "typescript": "^5.9.3" }, "browserslist": { "production": [ From 01c3ef04dd885a31b58fe7e135b0054e96f1c757 Mon Sep 17 00:00:00 2001 From: jedel1043 Date: Mon, 6 Oct 2025 09:50:19 -0600 Subject: [PATCH 08/11] feat: add sections for JobExecutor, ModuleLoader and async changes --- blog/boa-release-21/img/backtrace.gif | Bin 51491 -> 72870 bytes blog/boa-release-21/img/native-backtrace.gif | Bin 0 -> 175139 bytes blog/boa-release-21/index.md | 182 +++++++++++++++--- blog/boa-release-21/tapes/backtrace.tape | 1 - .../tapes/native-backtrace.tape | 35 ++++ 5 files changed, 187 insertions(+), 31 deletions(-) create mode 100644 blog/boa-release-21/img/native-backtrace.gif create mode 100644 blog/boa-release-21/tapes/native-backtrace.tape diff --git a/blog/boa-release-21/img/backtrace.gif b/blog/boa-release-21/img/backtrace.gif index a65a17dbbf86518f6bccc094e719170cd4d8e7c2..d82d23b5c26ded979f28fd7af8e56e111d6d4c25 100644 GIT binary patch literal 72870 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 QIcG98Ymc()xQ0^ztjq%7PUBl`ky(VsCof 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Ⓢybqy4L*Dd_(Zro_-UI;P|neu+$}b_$`8`6%lqz{%e$X((B{

JNyQe^ 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ŕ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

)rn3v<4M zECQ(p5ra8L9C^nE4tkYX=%i76A3EeRP24XTajB++UL7vjf;4F`RckaGroA|C)Zj@S zPE{Mnb4Qq@Pm_B{0w4)&k<%v`oasaQER)mJn}Cp_AUwy;5FTo7049oUr7gpF#kBPo zKxNNi1Rb1*tJ~7gG?!qE?zVFF0$>h^OraV^z;-23%{y%IBwLwf75#6$>#yc>u4L?% zX8Tn7S{0?KbBD`kgRNS?L^|+n{DGYEebh<2Gi^*CKGQU?&)7TSU2?xli!cXaPcEXG z_xFOm?IBG<5(8|JqNNF;nxp5X0^tbArcl}$lvA9h*^;XMSt=i)N&K3wGHFZw+^e(f zdrZFCjjkDZg{fr&I4+X1YXTB;LeyD8sUo<{CxB)P$dc68A`A<+ejA?THE9mi$3pbw z2iuOxBR9ZGTp;-j*rHz|w?Z`KZC|~@APj7kZ`*+ulo@J z&NNeD-Sc;W08Xs8`;iGZTQtLJY4+Qh#;B<106EXfBBPitd;82cZ1K|+Y|)}iSfuuN z+5Vdma_~rFLA@$N&g1$fkh{xn?@dX)lbsc*56d4y7zC2}y*593O(jnn9pSbr=lw=o z8O((PgT0_-t%JMm($Cdtv4(R_FWHx6Q{1VhYGr33!-*|hm)8a&AyiX&$HO-vmy_-B zHp~V@KWsJ9(OIA(0c+jC%HxZU^no3^4V|`8C9&^IdLFN@ml5N8x1})2c(CLh7(%z- zd9&Aaok{X!K$aI^2U$95Y2}Z~umS*>#BhQLu@Utq9A<$J)fjH8D!FPYsXbMKQuh0@ zlK17-kbNWpfJC)2o0T?u=kQk3&=NGuN>%dhGe-w`t=dB(82MGc>zH{U_RZnKXsb^^ zB~SR7l1(si*cRd}z)#!mn8DhSfpU@?fpgVhxYwvgoOruziw<-AmoEqpfRqi`-`0{p z19oN$2OZSqQUZ#F4D`2N^G|l#DFXGc3=ch~ns>e0B+&i5+~4|PuiFbi1BQ;LkAbtm zdo)#3u&_-Bq~e^4HM7M{GngLvShx_0hT477xs?e)=LF!^iCzSjaJknMy%31j_5C2w zaSk9yP@1h-p_)-AzN(Z~d>W~ZUvuB0PG_FFGZ0p;`0Pa1q7LqyulW3!f z4_1h!zI>wO>-5ylzDl;AX`xPX$CyK8@Tneq(@b@!raEb4%QY{5gxK94#urq4 z)@(|2e7X`V@V~BQxAO9EZ;(FA^bE0eUi3B~B9S)haVF(&r-+KzRG822-M zydkiRkn^rsgkZ(vx-Bx7|0>beVWZa^PK~L+>%)miM+%F=*uqmXqlaOr9F^rb^J$>c zC$daG*(y0rqBB|-rD12exR(*+jwmmMgSNaGzntb)J^sH$5 z*2j0>2M+PJH)XYf_Gpr{$!HUP)99vcb}Nu5P_T5TUcGm`u7yK$7nq>HZk#j1Is)JWask#v6u@TnPD^%ZUJkJ99 zy+KZN*fp^;3uGWi(#VR3^g5&~cKM_%AiWW4kqH5!E4wle$`BfYG2g=@HX@QE$cJgW zk%q?&J-Pk%@FQLo4@Rg;0T`L-Ps2a!WGO_9`Cq|3r%?nLe+BIL4JhfQhEi>U=Le=C zg8*Z)gbXUAoadm!?d)3M0e*-C_*q3aJ+d+9i8Oq>z=T?{fLYx9n^IXTAgwDTT_cv? zdsfl|s(kMY=sHkMmu)hBhLpk*r%<&b%RXj=o9*cbJte5?g6@g|1^tjAO^fU@Dd)N- z9BzKv+pWVg@MCyT`iG zLzRi?U~41EiFOe~1In~BI>QIpdSUh37m!gTST`Wra2e5a zXY^8ir{3od==44B^{yh*#J~?V2*3I*V5g2^E-Ix%E?MPS=!Qn~svX_2>h;A&HAVU9 zEN`)n@bhp9Cvy;EF5Clb&~>pY{TmohyV~+tk4X#>8RT0TRow*o9^Km>KmSwlM6?t# z5yO0mUMA|=B^FN2nwR85CFnYvRNqo#Ygd-fV8LR)BSp5e)~rL8bn4L8R`_FO0~~m= z*ktO{5#bOoL}-K|ZcLv-l}E8awQGu08F0-+9oxKGPAyQP{Y-6Ug_ND@;|@!A!u0fI zwBfuet(gzj@idRgZMS9+(23rp>aJ7S&g)Ms@ohEjO$ltbVT2m9pao4tob1Ge7!q23 ziW{`69c+hoQT0NaKIU8_mEcbWkO^)vs9Kj;CAQRCGPa5pyMlA0?;1A{(=6~<_cttg z_BfQIo@fs^pF(g7Ri!0=< zF=Z-7{$e>+WosqYTGgmCHt^y;5(qr`vfN zqi0h@aiJyMiO=SrBb-Nn%%FXfWv~?XEwzaf+39h5epwj?noAVyL z>G~=grUa5Ue5vCccet|8OiZ6#(k=L_`b^`VU$y!q_8T9}^2X~f)=xd9Z~=+mv^-Q7 z6S!0%2tJ(P>=4x4rTImr^l3g{p<~EEV%qh0<-(+9*KZw)->d@4Q@2)KJCk;_hw-h0 zw|tL?;;csTkb{C~zYJZAsZ?Ht#Z6jq=$$Vrmmjpsuxm z#4C1sXOX#>c|2G4^+=;Rn`7n;jVY}coFF;1=UvGX%Th}o`HIluP#3(yWb^Y(K> zm}XB~_Cdt4mo}Q+g24#$T|Q;Oe7Ym?sGj3MDvjoO5i;acm9QXl^zlTht#WK`v3&&VdOy%q{!zZW!^G}+>J>M_ zyi+D-{K*W}eP!jiu$cuBbJVPtd2BrY9J1?LXl<&B1p73r*oP~acLg6ZO@2wuXC0BS zsfStrW{w+N8-8F!RwuY`FePLAp~Pzhw0 zpslW}#g-KN`cEf`N|!}WBELB8x*v@mXBZkCqc&pV-GatjdtAT`anwRgu{S6(!_qIC zTPC3An}w(u({^X(=lHMcpgo%?W2HnvWPt39K)?e3QnS|Qz)u1wN(rV;?US|6{hKO4 zexyaVN}k>2ctTS4aqrUa<6d#{KPLQ7-0{oxUJgVw)ZMkwDb)PkH8elyed}zw>>2xz zC!V040~JEg(rB<5_+M3}W2X03OH0%)t(HD(V?CHgTfXyqk#t~o`-T`OGNSkVJH^d7 z?JS0{Qzq6z_V-$Ti=n69qvt7kJhJsoCvo<48LhylhZ0`oRnhF5xQ zutjfquoDE4OHi5;e3s8m?H=rwq9YQQ_E8X?PHrCdl!fL%A`oEl&CJW#v034$3DSXI z&=jjRd4K8zEdEvhiO@Y6caejMod{FWv}5!+xb<- zYN3B!G$W9#?5weRIm7^*IhOK4t~gsri^WI}9`nsn9X+h~RWvIBKCj5%LV!CmM0Ong zOnE}X7>(oy z0qr9y(9PCEVl69aBH3hlMC9c5X#SJ2XQq(Zc=}th!ankXUg4zOfpP{Qsn=3B%FRAl z>}A2w*utTfN&7!8Ia{|3KGW%&9PnPa3FT%WjV33LMzq1Mzo%7cKM%COxUF2ebmf!j z)}%w+uUr}ms=g;slw%u5)-M=a|EQr!v5Pl_my70oHosxuNY(Sd{-HvZSd;1y<^-=$ z68~alT|^hA$MeV!1Npd$=$>D5ZjO5fpyl12ir>Mjv2V}t-lZfPIs&;6&7Y4gL=8t@ z%gtAKReiK@id=2_Jr5QML@Ji?qK6q=mOft`lR*7mp$1igbqC3P?k@MPze-0Hu(+5E zUOS&T=-Fl}%+;Nq-+#ZPjjZ9mHFe_YuP_=4Pv9M&a=8;t6x5kviLHIkEuVrl{%}>{ zPT_GKI4N5V;77%jfvYmAj=_qiVq_#AO}=7Z+_{|~ zYRBSrW!yO)%b@k>Wr50YcTB!RrdQe|+rEX}!Fy4-(LNopX!f=DrAcAN$@e4X;yJWp$&1UVnKw zQ6k{)@1No6ujwtFrkMg1rr@O&U}4>s+%+b+MH|!&>F0q8vk;e=j|r_~&(JE>^n*30 zD-OSxeo?>E=%gz+AJk^_B0*xEfqr<#s3zjckFL|n{BHv+&5V6{9weJO1`oY=nE_{w zuUBE8R9pe&KFL+pw?FI^x*L^OB?mFB8h^hmoAh!tjE9>GR@jjE2~|J0Zaqo0A=>&QRYg*ooONSGUoH=?6Z{qhF_5oy zQkdSSr^pG*|4pXu$7_!ruN^3Z9WUO4gHYF5`-i8Yw~v%epo%4=^c@{P->dg+i#9$bAQ@3VMwTr9@VC8&`g3J~bSkNbxU)RDRGq8#qICO*_&N5OsRZKIrA5zvvieBz zRaX*vuF}%D_LY2(@>4-Ywt2}8qWnwYk|sHHwkPc8$l!n!+WTT&XVq?qyls&g1NPV&@H~h+ms#`4k z|GK-YWnrUVa1C*mD#pZ`r+@7Z-8`WKUrP}=4*6K9bK}=8E(wBFLeIVD7l))USn-fC zyiWpz44~pc4Kp)|inv}PO++t1NkHOP;;G9Z4p9DP#_lI52PprBdbJ-f4p2Bi`8O%8 z{mkW%<{w0w{jhL=!T|~gD4gE)f7!KjfWm2c{+(+<`({tSwrEJ!oRH)a)9y= z0?L2gqS!A0oL-323;hFoq5TBq0EGh-&h`&Sp>Pz+|En#*{Q|&IC>(|IKT{}&{{vPW B+t&a9 literal 0 HcmV?d00001 diff --git a/blog/boa-release-21/index.md b/blog/boa-release-21/index.md index 8f2aae5b..a1fd05c2 100644 --- a/blog/boa-release-21/index.md +++ b/blog/boa-release-21/index.md @@ -14,7 +14,7 @@ Boa makes it easy to embed a JS engine in your projects, and you can even use it from WebAssembly. See the [about](/about) page for more info. -In this release, our conformance has grown from 89.92% to 93.94% in the +In this release, our conformance has grown from 89.92% to 94.12% in the official ECMAScript Test Suite (Test262). Our growth in conformance is driven by increased conformance for Temporal (discussed further below) with the rest of the development effort being focused on performance, @@ -34,47 +34,159 @@ information on conformance [here][conformance]. There has been a lot of progress made on Temporal, the new Stage 3 date/time proposal. With this release, Boa's conformance on Temporal -grew from 40.67% to ~97%. +grew from 40.67% to ~97%. This implementation is backed by the `temporal_rs` +date/time Rust library, which we went over in our announcement +[blog post](../2025-09-24-temporal-release). Give the post a read if you are +interested in `temporal_rs` and its development history. -The implementation is backed by the `temporal_rs` date/time Rust -library, which we went over briefly in our June -[blog post](../2025-06-15-temporal-impl-1.md) with hopefully another post -in the not too distant future. So far, `temporal_rs` has also been used in -both V8 and Keisel to implement Temporal. +### Span nodes and error backtraces -Temporal can be used from `boa_cli` or enabled in `boa_engine` with the -`experimental` or `temporal` feature. +We added support for storing spans in our AST nodes, which allows determining the +exact location of an AST node on its original file. We already kind of +supported this feature in our lexer, but we did not store the spans after parsing. -You can also try out Temporal directly in Rust using `temporal_rs`: +Why is this important? Well, as a direct result from this, Boa now supports error backtraces +when an exception is thrown! -``` -cargo add temporal_rs +![backtrace-example](./img/backtrace.gif) + +As an additional plus, you can enable the `native-backtrace` feature to include +"native" functions on a backtrace. + +![native-backtrace-example](./img/native-backtrace.gif) + +This feature has been one of the most requested ones for years, +and we hope it will +greatly help with debugging errors when using Boa. + +### Async APIs enhancements + +Historically, hooking functions returning a `Future` into Boa has been one of the +biggest pain points of our API. This was mostly caused by how we defined +`FutureJob`: + +```rust +pub type FutureJob = Pin + 'static>>; ``` -#### Special thanks +With this definition, it was pretty much impossible to capture the `Context` +inside the future, and functions that needed to interweave engine operations +with awaiting `Future`s would have to be split into multiple parts: + +```rust +let fetch = async move { + let body: Result<_, isahc::Error> = async { + let mut response = Request::get(&url) + .body(())? + .send_async() + .await?; + + Ok(response.text().await?) + } + .await; + + // Since the async context cannot take the `context` by ref, we have to continue + // parsing inside a new `NativeJob` that will be enqueued into the promise job queue. + NativeJob::new(move |context| -> JsResult { + parse(body).await; + + // Also needed to match `NativeJob::new`. + Ok(JsValue::undefined()) + }) +}; + +// Just enqueue the future for now. We'll advance all the enqueued futures inside our custom +// `JobQueue`. +context + .job_queue() + .enqueue_future_job(Box::pin(fetch), context) +} +``` -Special thanks to all the student's from University of Bergen who helped contribute to -`temporal_rs` and Boa, as well as Shane Carr ([@sffc](https://github.com/@sffc)) and -Manish Goregaokar ([@manishearth](https://github.com/@manishearth)) for their contributions -and help with `temporal_rs`. +We wanted to improve this API, and the solution we thought about was to make +`Context` shareable by wrapping it using `RefCell`. However, this proved to be +very difficult for two reasons: +1. We needed to change all definitions to take `&RefCell` instead + of `&mut Context`, which meant changing pretty much the whole codebase. +2. Some of our VM code was reentrant, which meant calling `RefCell::borrow_mut` + would cause panics in the reentrant parts of the code; we would need to + redesign some parts of the engine to remove the reentrancy. + +After putting a lot of thought on this, we came up with a really nice solution; +instead of wrapping `Context` with `RefCell`, we would wrap `&mut Context` with +`RefCell`, and only on the async-related APIs. This would allow not only capturing +the context to `Future`-related functions, but also doing this without having to +refactor big parts of the code. Thus, we ditched `FutureJob` and introduced a new +type of job: `NativeAsyncJob`. + +```Rust +/// An ECMAScript [Job] that can be run asynchronously. +/// +/// This is an additional type of job that is not defined by the specification, enabling running `Future` tasks +/// created by ECMAScript code in an easier way. +#[allow(clippy::type_complexity)] +pub struct NativeAsyncJob { + f: Box FnOnce(&'a RefCell<&mut Context>) -> BoxedFuture<'a>>, + realm: Option, +} +``` -### Span nodes and error backtraces +With this change, any API that integrates with `Future` can additionally capture +the `&RefCell<&mut Context>` to run engine-related operations after awaiting on +a `Future`. + +### Revamped `JobQueue` + +After introducing the new job type, changes had to be made on +[`JobQueue`](https://docs.rs/boa_engine/0.20.0/boa_engine/job/trait.JobQueue.html) +to better support new job types. Thus, `JobQueue` was revamped and renamed to be the +new `JobExecutor`: + +```rust +/// An executor of `ECMAscript` [Jobs]. +/// +/// This is the main API that allows creating custom event loops. +/// +/// [Jobs]: https://tc39.es/ecma262/#sec-jobs +pub trait JobExecutor: Any { + /// Enqueues a `Job` on the executor. + /// + /// This method combines all the host-defined job enqueueing operations into a single method. + /// See the [spec] for more information on the requirements that each operation must follow. + /// + /// [spec]: https://tc39.es/ecma262/#sec-jobs + fn enqueue_job(self: Rc, job: Job, context: &mut Context); + + /// Runs all jobs in the executor. + fn run_jobs(self: Rc, context: &mut Context) -> JsResult<()>; + + /// Asynchronously runs all jobs in the executor. + /// + /// By default forwards to [`JobExecutor::run_jobs`]. Implementors using async should override this + /// with a proper algorithm to run jobs asynchronously. + async fn run_jobs_async(self: Rc, context: &RefCell<&mut Context>) -> JsResult<()> + where + Self: Sized, + { + self.run_jobs(&mut context.borrow_mut()) + } +} +``` -We also add support for span nodes in our parser and AST. Span nodes mark the start and -end index in the source code for a specific token. +As you can probably tell, we made a lot of changes on the `JobExecutor`: -As a result, this release of Boa supports error backtraces when an exception is thrown -as seen below. +TODO -![backtrace-example](./img/backtrace.gif) +### Revamped `ModuleLoader` -This feature will greatly help with debugging errors when using Boa. +TODO -### Specification updates +### Built-ins updates #### Set methods -This release adds support for the new set methods added in ES2025. +This release adds support for the new set methods added in ECMAScript's 2025 +specification. The new methods are: @@ -101,15 +213,18 @@ console.log(x[1]); // 42.125 #### Error.isError -This release adds support for `Error.isError`, which is accepted for ES2026. +This release adds support for `Error.isError`, which will be introduced in +ECMAScript's 2026 specification. ```javascript -let check = Error.isError(new Error()); // returns true +console.log(Error.isError(new Error())); // true +console.log(Error.isError({ __proto__: Error.prototype })); // false ``` #### Math.sumPrecise -This release adds support for `Math.sumPrecise`, which is accepted for ES2026. +This release adds support for `Math.sumPrecise`, which will be introduced in +ECMAScript's 2026 specification. We've opted for using the new [`xsum`](https://crates.io/crates/xsum) summation algorithm for the underlying implementation. @@ -119,6 +234,13 @@ let sum = Math.sumPrecise([1e20, 0.1, -1e20]); console.log(sum); // 0.1 ``` +#### Atomics.waitAsync + +TODO + + +#### Array.fromAsync + ## Boa Runtime Work on Boa's runtime crate has continued with additional APIs added. @@ -146,7 +268,7 @@ With this release, Boa's `JsValue` will use nan-boxing by default. The NaN boxin increased memory and runtime performance over the older enum. As a note, the current implementation is not compatible with all platforms. While we hope -to address this in the future. The legacy enum JsValue will be available via the `jsvalue-enum` +to address this in the future, the legacy enum JsValue will be available via the `jsvalue-enum` feature flag. Unfamiliar with NaN Boxing? We won't go over it in depth here, but we recommend diff --git a/blog/boa-release-21/tapes/backtrace.tape b/blog/boa-release-21/tapes/backtrace.tape index 27de5778..9f8a4675 100644 --- a/blog/boa-release-21/tapes/backtrace.tape +++ b/blog/boa-release-21/tapes/backtrace.tape @@ -27,4 +27,3 @@ Hide Type "rm yikes.js" Enter - diff --git a/blog/boa-release-21/tapes/native-backtrace.tape b/blog/boa-release-21/tapes/native-backtrace.tape new file mode 100644 index 00000000..c9667ff6 --- /dev/null +++ b/blog/boa-release-21/tapes/native-backtrace.tape @@ -0,0 +1,35 @@ +Output native-backtrace.gif + +# Setup env +Hide + +Set TypingSpeed 50ms +Set Theme "GruvboxDark" + +# boa_cli needs to be installed for the tape to run. +Require boa + +Show + +Type@100ms `cat < native.js` +Enter +Type@100ms `Array.prototype.every.call([[10]], arr => arr.forEach(` +Enter +Type@100ms ` e => { throw value; }` +Enter +Type@100ms `));` +Enter +Type@100ms `EOF` +Enter + +Type@100ms "boa native.js" + +Enter + +Sleep 10s + +Hide + +Type "rm native.js" + +Enter From 867f1ae191d1f619c7ac7c43e212b9a6356ff491 Mon Sep 17 00:00:00 2001 From: jedel1043 Date: Mon, 6 Oct 2025 21:26:11 -0600 Subject: [PATCH 09/11] feat: finish new API sections --- blog/boa-release-21/index.md | 258 +++++++++++++++++++++++++++++++++-- 1 file changed, 248 insertions(+), 10 deletions(-) diff --git a/blog/boa-release-21/index.md b/blog/boa-release-21/index.md index a1fd05c2..e08bc3cb 100644 --- a/blog/boa-release-21/index.md +++ b/blog/boa-release-21/index.md @@ -66,11 +66,16 @@ biggest pain points of our API. This was mostly caused by how we defined `FutureJob`: ```rust +pub struct NativeJob { + f: Box JsResult>, + realm: Option, +} + pub type FutureJob = Pin + 'static>>; ``` With this definition, it was pretty much impossible to capture the `Context` -inside the future, and functions that needed to interweave engine operations +inside the `Future`, and functions that needed to interweave engine operations with awaiting `Future`s would have to be split into multiple parts: ```rust @@ -99,8 +104,7 @@ let fetch = async move { // `JobQueue`. context .job_queue() - .enqueue_future_job(Box::pin(fetch), context) -} + .enqueue_future_job(Box::pin(fetch), context); ``` We wanted to improve this API, and the solution we thought about was to make @@ -173,16 +177,228 @@ pub trait JobExecutor: Any { } ``` -As you can probably tell, we made a lot of changes on the `JobExecutor`: +As you can probably tell, we made a lot of changes on `JobExecutor`: -TODO +- All methods now take `Rc` as their receiver, making it consistent with + how the `Context` itself stores the `JobExecutor`. +- [`enqueue_promise_job`] and [`enqueue_future_job`] now are unified in a single + `enqueue_job`, where `Job` is an enum containing the type of job that needs to + be scheduled. This makes it much simpler to extend the engine with newer job + types in the future, such as the newly introduced `TimeoutJob` and `GenericJob` + types. +- `run_jobs_async` was converted to a proper async function, and excluded from + `JobExecutor`'s VTable. Additionally, this method now takes a `&RefCell<&mut Context>` + as its context, which is the missing piece that enables sharing the `Context` between + multiple `Future`s at the same time. This, however, means that we cannot provide + a convenient wrapper such as [`Context::run_jobs`] anymore, which is one of the + reasons why we decided to exclude that method from `JobExecutor`'s VTable. -### Revamped `ModuleLoader` +These changes not only made `JobExecutor` much simpler, but it also expanded +the places where we could use its async capabilities to handle "special" +features of ECMAScript that are more suited to an async way of doing things. +`ModuleLoader` is one of those places. -TODO +[`enqueue_promise_job`]: https://docs.rs/boa_engine/0.20.0/boa_engine/job/trait.JobQueue.html#tymethod.enqueue_promise_job +[`enqueue_future_job`]: https://docs.rs/boa_engine/0.20.0/boa_engine/job/trait.JobQueue.html#tymethod.enqueue_future_job +[`Context::run_jobs`]: https://docs.rs/boa_engine/0.20.0/boa_engine/context/struct.Context.html#method.run_jobs + +### Asyncified `ModuleLoader` + +Looking at the previous definition of `ModuleLoader`: + +```rust +pub trait ModuleLoader { + // Required method + fn load_imported_module( + &self, + referrer: Referrer, + specifier: JsString, + finish_load: Box, &mut Context)>, + context: &mut Context, + ); + + // Provided methods + fn register_module(&self, _specifier: JsString, _module: Module) { ... } + fn get_module(&self, _specifier: JsString) -> Option { ... } + fn init_import_meta( + &self, + _import_meta: &JsObject, + _module: &Module, + _context: &mut Context, + ) { ... } +} +``` + +... the weird `finish_load` on `load_imported_module` immediately pops up as an anomaly. +In this case, `finish_load` is Boa's equivalent to +[HostLoadImportedModule ( referrer, moduleRequest, hostDefined, payload )][hlim], +which is an abstract operation that is primarily used to define how an application +will load and resolve a "module request"; think of it as a function that takes +the `"module-name"` from `import * as name from "module-name"`, then does +"things" to load the module that corresponds to `"module_name"`. + +[hlim]: https://tc39.es/ecma262/#sec-HostLoadImportedModule + +The peculiarity about this abstract operation is that it doesn't return anything! +Instead, it just has a special requirement: + +> The host environment must perform `FinishLoadingImportedModule(referrer, moduleRequest, payload, result)`, + where result is either a normal completion containing the loaded `Module Record` or a throw completion, + either synchronously or asynchronously. + +Why expose the hook this way? Well, there is a clue in the previous requirement: + +> ... either synchronously or asynchronously. + +Aha! Directly returning from the hook makes it very hard to enable use cases +where an application wants to load multiple modules asynchronously. Thus, the +specification instead exposes a hook to pass the name of the module that needs to +be loaded, and delegates the task of running the "post-load" phase to the host, which +enables fetching modules synchronously or asynchronously, depending on the specific +requirements of each application. + +One downside of this definition, however, is that any data that is required +by the engine to properly process the returned module would need to be transparently +passed to the `FinishLoadingImportedModule` abstract operation, which is why +the hook also has an additional requirement: + +> The operation must treat `payload` as an opaque value to be passed through to + `FinishLoadingImportedModule`. + +`payload` is precisely that data, and it may change depending on how the module +is imported in the code; `import "module"` and `import("module")` are two examples +of this. + +We could expose this as an opaque `*const ()` pointer argument and call it a day, +but we're using Rust, dang it! and we like statically guaranteed safety! +So, instead, we exposed `FinishLoadingImportedModule` as `finish_load`, which is a +"closure" that captures `payload` on its stack, and can be called anywhere +(like inside a `Future`) on the application with a proper `Module` and `Context` +to further continue processing the module loaded by the `ModuleLoader`. + +```rust +... +finish_load: Box, &mut Context)>, +... +``` + +Unfortunately, +this API has downsides: it is still possible to forget to call `finish_load`, +which is still safe but prone to bugs. It is also really painful to work with, +because you cannot capture the `Context` to further process the module after +loading it ... Sounds familiar? **This is exactly [the code snippet we talked about before!](#async-apis-enhancements)** + +Fast forward a couple of years and we're now changing big parts of `JobExecutor`: +adding new job types, tinkering with `JobExecutor`, changing API signatures, etc. +Then, while looking at the definition of `ModuleLoader`, we thought... + +> Huh, can't we make `load_imported_module` async now? + +And that's exactly what we did! Behold, the new `ModuleLoader`! + +```rust +pub trait ModuleLoader: Any { + async fn load_imported_module( + self: Rc, + referrer: Referrer, + specifier: JsString, + context: &RefCell<&mut Context>, + ) -> JsResult; + + fn init_import_meta( + self: Rc, + _import_meta: &JsObject, + _module: &Module, + _context: &mut Context, + ) { + } +} +``` + +Then, the code snippet we mentioned before nicely simplifies to: + +```rust +async fn load_imported_module( + self: Rc, + _referrer: boa_engine::module::Referrer, + specifier: JsString, + context: &RefCell<&mut Context>, +) -> JsResult { + let url = specifier.to_std_string_escaped(); + + let response = async { + let request = Request::get(&url) + .redirect_policy(RedirectPolicy::Limit(5)) + .body(())?; + let response = request.send_async().await?.text().await?; + Ok(response) + } + .await + .map_err(|err: isahc::Error| JsNativeError::typ().with_message(err.to_string()))?; + + let source = Source::from_bytes(&response); + + Module::parse(source, None, &mut context.borrow_mut()) +} +``` + +> *What about synchronous applications?* + +The advantage of having `JobExecutor` be the main entry point for any Rust +`Future`s that are enqueued by the engine is that an application can decide how to +handle all `Future`s received by the implementation of `JobExecutor`. Thus, an application +that doesn't want to deal with async Rust executors can implement a completely synchronous +`ModuleLoader` and poll on all futures received by `JobExecutor` using something like +[`futures_lite::poll_once`][poll_once]. + +> *Why not just block on each `Future` one by one instead?* + +Well, there is one new built-in that was introduced on this release which heavily +depends on "properly" running `Future`s, and by "properly" we mean "not blocking +the whole thread waiting on a future to finish". More on that in a bit. ### Built-ins updates +#### Atomics.waitAsync + +This release adds support for the `Atomics.waitAsync` method introduced in +ECMAScript's 2024 specification. +This method allows doing thread synchronization just like `Atomics.wait`, but with +the big difference that it will return a `Promise` that will resolve when the +thread gets notified with the `Atomics.notify` method, instead of blocking until +that happens. + +```javascript +// Given an `Int32Array` shared between two threads: + +const sab = new SharedArrayBuffer(1024); +const int32 = new Int32Array(sab); + +// Thread 1 runs the following: +// { async: true, value: Promise {} } +const result = Atomics.waitAsync(int32, 0, 0, 1000); +result.value.then(() => console.log("waited!")); + +// And thread 2 runs the following after Thread 1: +Atomics.notify(int32, 0); + +// Then, in thread 1 we will (eventually) see "waited!" printed. +``` + +Note that this built-in requires having a "proper" implementation of a `JobExecutor`; again, "proper" +in the sense of "not blocking the whole thread waiting on a future to finish", which can be accomplished +with [`FutureGroup`] and [`futures_lite::poll_once`][poll_once] if an async executor is not required +(see [`SimpleJobExecutor`'s implementation][sje-impl]). +This is because it heavily relies on `TimeoutJob` and `NativeAsyncJob` to timeout if a notification +doesn't arrive and communicate with the notifier threads, respectively. This is the reason why +we don't recommend just blocking on each received `Future`; that could cause +`TimeoutJob`s to run much later than required, or even make it so that they don't +run at all! + +[poll_once]: https://docs.rs/futures-lite/latest/futures_lite/future/fn.poll_once.html +[`FutureGroup`]: https://docs.rs/futures-concurrency/latest/futures_concurrency/future/future_group/struct.FutureGroup.html +[sje-impl]: https://github.com/boa-dev/boa/blob/0468498b4bb9da31caa20123201e4d8ee132c608/core/engine/src/job.rs#L678 + #### Set methods This release adds support for the new set methods added in ECMAScript's 2025 @@ -234,12 +450,34 @@ let sum = Math.sumPrecise([1e20, 0.1, -1e20]); console.log(sum); // 0.1 ``` -#### Atomics.waitAsync +#### Array.fromAsync -TODO +This release adds support for `Array.fromAsync`, which will be introduced in +ECMAScript's 2026 specification. +`Array.fromAsync` allows to conveniently create a array from an async iterable by +awaiting all of the items consecutively. -#### Array.fromAsync +```javascript +// Array.fromAsync is roughly equivalent to: +async function toArray(asyncIterator){ + const arr=[]; + for await(const i of asyncIterator) arr.push(i); + return arr; +} + +async function* asyncIterable() { + for (let i = 0; i < 5; i++) { + await new Promise((resolve) => setTimeout(resolve, 10 * i)); + yield i; + } +}; + +Array.fromAsync(asyncIterable()).then((array) => console.log(array)); +// [0, 1, 2, 3, 4] +toArray(asyncIterable()).then((array) => console.log(array)); +// [0, 1, 2, 3, 4] +``` ## Boa Runtime From ad51c7a56a5873ec4a706ba4022378d2880e0c4c Mon Sep 17 00:00:00 2001 From: jedel1043 Date: Mon, 6 Oct 2025 22:16:06 -0600 Subject: [PATCH 10/11] fix link --- blog/boa-release-21/index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/blog/boa-release-21/index.md b/blog/boa-release-21/index.md index e08bc3cb..77115ceb 100644 --- a/blog/boa-release-21/index.md +++ b/blog/boa-release-21/index.md @@ -36,7 +36,7 @@ There has been a lot of progress made on Temporal, the new Stage 3 date/time proposal. With this release, Boa's conformance on Temporal grew from 40.67% to ~97%. This implementation is backed by the `temporal_rs` date/time Rust library, which we went over in our announcement -[blog post](../2025-09-24-temporal-release). Give the post a read if you are +[blog post](../2025-09-24-temporal-release/index.md). Give the post a read if you are interested in `temporal_rs` and its development history. ### Span nodes and error backtraces @@ -389,10 +389,10 @@ Note that this built-in requires having a "proper" implementation of a `JobExecu in the sense of "not blocking the whole thread waiting on a future to finish", which can be accomplished with [`FutureGroup`] and [`futures_lite::poll_once`][poll_once] if an async executor is not required (see [`SimpleJobExecutor`'s implementation][sje-impl]). -This is because it heavily relies on `TimeoutJob` and `NativeAsyncJob` to timeout if a notification -doesn't arrive and communicate with the notifier threads, respectively. This is the reason why -we don't recommend just blocking on each received `Future`; that could cause -`TimeoutJob`s to run much later than required, or even make it so that they don't +This is because it heavily relies on `TimeoutJob` to timeout if a notification +doesn't arrive, and in `NativeAsyncJob` to communicate with the notifier threads using an +async channel. This is the reason why we don't recommend just blocking on each received `Future`; +that could cause `TimeoutJob`s to run much later than required, or even make it so that they don't run at all! [poll_once]: https://docs.rs/futures-lite/latest/futures_lite/future/fn.poll_once.html From da91d30669159e126d82c06abc168c7ddfc49237 Mon Sep 17 00:00:00 2001 From: jedel1043 Date: Mon, 6 Oct 2025 22:27:23 -0600 Subject: [PATCH 11/11] clarify some sentences --- blog/boa-release-21/index.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/blog/boa-release-21/index.md b/blog/boa-release-21/index.md index 77115ceb..915691d3 100644 --- a/blog/boa-release-21/index.md +++ b/blog/boa-release-21/index.md @@ -76,7 +76,7 @@ pub type FutureJob = Pin + 'static>>; With this definition, it was pretty much impossible to capture the `Context` inside the `Future`, and functions that needed to interweave engine operations -with awaiting `Future`s would have to be split into multiple parts: +with awaiting `Future`s needed to be split into multiple parts: ```rust let fetch = async move { @@ -143,7 +143,7 @@ a `Future`. After introducing the new job type, changes had to be made on [`JobQueue`](https://docs.rs/boa_engine/0.20.0/boa_engine/job/trait.JobQueue.html) -to better support new job types. Thus, `JobQueue` was revamped and renamed to be the +to better support new types of jobs. Thus, `JobQueue` was revamped and renamed to be the new `JobExecutor`: ```rust @@ -283,10 +283,14 @@ finish_load: Box, &mut Context)>, ``` Unfortunately, -this API has downsides: it is still possible to forget to call `finish_load`, -which is still safe but prone to bugs. It is also really painful to work with, -because you cannot capture the `Context` to further process the module after -loading it ... Sounds familiar? **This is exactly [the code snippet we talked about before!](#async-apis-enhancements)** +this API has downsides: it is possible to forget to call `finish_load`, +which is safer than a dangling `*const()` pointer, but still prone to bugs. +It is also really painful to work with, because you cannot capture the `Context` +to further process the module after loading it ... Sounds familiar? +**[The async code snippet we showed before](#async-apis-enhancements) has this exact problem!** +And that snippet is directly taken from [one of our `ModuleLoader` implementation examples][mod-loader]. + +[mod-loader]: https://github.com/boa-dev/boa/blob/b345775138f56401bd627b1f36daadfc5bf75772/examples/src/bin/module_fetch.rs#L38 Fast forward a couple of years and we're now changing big parts of `JobExecutor`: adding new job types, tinkering with `JobExecutor`, changing API signatures, etc. @@ -294,7 +298,7 @@ Then, while looking at the definition of `ModuleLoader`, we thought... > Huh, can't we make `load_imported_module` async now? -And that's exactly what we did! Behold, the new `ModuleLoader`! +And that's exactly what we did. Behold, the new `ModuleLoader`! ```rust pub trait ModuleLoader: Any {