From 558fe77be5319295aedf9b175d0655d3a836dd12 Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Fri, 13 Dec 2024 16:27:58 +0100 Subject: [PATCH 1/2] feat(unenv-preset): import the package sync at unjs/unenv d9d4d03 https://github.com/pi0/unenv-preset-cloudflare Co-authored-by: Pooya Parsa step step step --- package.json | 3 +- packages/unenv-preset/.eslintrc.js | 5 + packages/unenv-preset/LICENSE-APACHE | 176 ++ packages/unenv-preset/LICENSE-MIT | 25 + packages/unenv-preset/README.md | 13 + packages/unenv-preset/build.config.ts | 19 + packages/unenv-preset/package.json | 65 + packages/unenv-preset/src/index.ts | 1 + packages/unenv-preset/src/preset.ts | 94 + .../src/runtime/node/async_hooks/index.ts | 42 + .../src/runtime/node/console/index.ts | 77 + .../src/runtime/node/crypto/index.ts | 210 +++ .../src/runtime/node/module/index.ts | 99 ++ .../src/runtime/node/perf_hooks/index.ts | 98 ++ .../src/runtime/node/process/index.ts | 309 ++++ .../src/runtime/node/timers/index.ts | 52 + .../src/runtime/node/util/index.ts | 141 ++ packages/unenv-preset/tsconfig.json | 14 + packages/unenv-preset/turbo.json | 9 + pnpm-lock.yaml | 1547 +++++++++++++++-- .../__tests__/validate-changesets.test.ts | 51 +- 21 files changed, 2902 insertions(+), 148 deletions(-) create mode 100644 packages/unenv-preset/.eslintrc.js create mode 100644 packages/unenv-preset/LICENSE-APACHE create mode 100644 packages/unenv-preset/LICENSE-MIT create mode 100644 packages/unenv-preset/README.md create mode 100644 packages/unenv-preset/build.config.ts create mode 100644 packages/unenv-preset/package.json create mode 100644 packages/unenv-preset/src/index.ts create mode 100644 packages/unenv-preset/src/preset.ts create mode 100644 packages/unenv-preset/src/runtime/node/async_hooks/index.ts create mode 100644 packages/unenv-preset/src/runtime/node/console/index.ts create mode 100644 packages/unenv-preset/src/runtime/node/crypto/index.ts create mode 100644 packages/unenv-preset/src/runtime/node/module/index.ts create mode 100644 packages/unenv-preset/src/runtime/node/perf_hooks/index.ts create mode 100644 packages/unenv-preset/src/runtime/node/process/index.ts create mode 100644 packages/unenv-preset/src/runtime/node/timers/index.ts create mode 100644 packages/unenv-preset/src/runtime/node/util/index.ts create mode 100644 packages/unenv-preset/tsconfig.json create mode 100644 packages/unenv-preset/turbo.json diff --git a/package.json b/package.json index be7d694750b1..7c2d00001c20 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,8 @@ "@types/react-transition-group>@types/react": "^18", "@cloudflare/elements>@types/react": "^18", "capnpc-ts>typescript": "4.2.4", - "@types/node": "$@types/node" + "@types/node": "$@types/node", + "@cloudflare/unenv-preset>@types/node": "^22.10.2" }, "patchedDependencies": { "@cloudflare/component-listbox@1.10.6": "patches/@cloudflare__component-listbox@1.10.6.patch", diff --git a/packages/unenv-preset/.eslintrc.js b/packages/unenv-preset/.eslintrc.js new file mode 100644 index 000000000000..2ea9522797ca --- /dev/null +++ b/packages/unenv-preset/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + root: true, + extends: ["@cloudflare/eslint-config-worker/react"], + ignorePatterns: ["/dist", "/runtime"], +}; diff --git a/packages/unenv-preset/LICENSE-APACHE b/packages/unenv-preset/LICENSE-APACHE new file mode 100644 index 000000000000..1b5ec8b78e23 --- /dev/null +++ b/packages/unenv-preset/LICENSE-APACHE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS diff --git a/packages/unenv-preset/LICENSE-MIT b/packages/unenv-preset/LICENSE-MIT new file mode 100644 index 000000000000..baad650012fd --- /dev/null +++ b/packages/unenv-preset/LICENSE-MIT @@ -0,0 +1,25 @@ +Copyright (c) 2024 Pooya Parsa & Cloudflare, Inc. + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/packages/unenv-preset/README.md b/packages/unenv-preset/README.md new file mode 100644 index 000000000000..160412fe05b1 --- /dev/null +++ b/packages/unenv-preset/README.md @@ -0,0 +1,13 @@ +# @cloudflare/unenv-preset + +[unenv](https://github.com/unjs/unenv) preset for cloudflare. + +## Usage + +```ts +import { cloudflare, env, nodeless } from "@cloudflare/unenv-preset"; + +const { + /* ... */ +} = env(nodeless, cloudflare); +``` diff --git a/packages/unenv-preset/build.config.ts b/packages/unenv-preset/build.config.ts new file mode 100644 index 000000000000..f73862c567ff --- /dev/null +++ b/packages/unenv-preset/build.config.ts @@ -0,0 +1,19 @@ +import { defineBuildConfig } from "unbuild"; + +export default defineBuildConfig({ + declaration: true, + rollup: { + emitCJS: true, + }, + entries: [ + "src/index", + { input: "src/runtime/", outDir: "dist/runtime", format: "esm" }, + { + input: "src/runtime/", + outDir: "dist/runtime", + format: "cjs", + ext: "cjs", + declaration: false, + }, + ], +}); diff --git a/packages/unenv-preset/package.json b/packages/unenv-preset/package.json new file mode 100644 index 000000000000..760086247659 --- /dev/null +++ b/packages/unenv-preset/package.json @@ -0,0 +1,65 @@ +{ + "name": "@cloudflare/unenv-preset", + "version": "0.0.1", + "description": "cloudflare preset for unenv", + "keywords": [ + "cloudflare", + "workers", + "cloudflare workers", + "Node.js", + "unenv", + "polyfills" + ], + "homepage": "https://github.com/cloudflare/workers-sdk#readme", + "bugs": { + "url": "https://github.com/cloudflare/workers-sdk/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/cloudflare/workers-sdk.git", + "directory": "packages/unenv-preset" + }, + "license": "MIT OR Apache-2.0", + "sideEffects": false, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "require": "./dist/index.cjs", + "import": "./dist/index.mjs" + }, + "./runtime/*": { + "types": "./dist/runtime/*.d.ts", + "require": "./dist/runtime/*.cjs", + "import": "./dist/runtime/*.mjs" + } + }, + "main": "./dist/index.cjs", + "types": "./dist/index.d.ts", + "files": [ + "dist", + "runtime" + ], + "scripts": { + "build": "unbuild", + "check:lint": "eslint", + "check:type": "tsc --noEmit" + }, + "devDependencies": { + "@types/node": "*", + "typescript": "catalog:default", + "unbuild": "^2.0.0", + "wrangler": "3.95.0" + }, + "peerDependencies": { + "unenv": "npm:unenv-nightly@*", + "workerd": "^1.20241216.0" + }, + "peerDependenciesMeta": { + "workerd": { + "optional": true + } + }, + "workers-sdk": { + "prerelease": true + } +} diff --git a/packages/unenv-preset/src/index.ts b/packages/unenv-preset/src/index.ts new file mode 100644 index 000000000000..594f8340dfed --- /dev/null +++ b/packages/unenv-preset/src/index.ts @@ -0,0 +1 @@ +export { cloudflare } from "./preset"; diff --git a/packages/unenv-preset/src/preset.ts b/packages/unenv-preset/src/preset.ts new file mode 100644 index 000000000000..b936159f2b2e --- /dev/null +++ b/packages/unenv-preset/src/preset.ts @@ -0,0 +1,94 @@ +import { version } from "../package.json"; +import type { Preset } from "unenv"; + +// Built-in APIs provided by workerd. +// https://developers.cloudflare.com/workers/runtime-apis/nodejs/ +// https://github.com/cloudflare/workerd/tree/main/src/node +// Last checked: 2024-10-22 +const cloudflareNodeCompatModules = [ + "_stream_duplex", + "_stream_passthrough", + "_stream_readable", + "_stream_transform", + "_stream_writable", + "assert", + "assert/strict", + "buffer", + "diagnostics_channel", + "dns", + "dns/promises", + "events", + "path", + "path/posix", + "path/win32", + "querystring", + "stream", + "stream/consumers", + "stream/promises", + "stream/web", + "string_decoder", + "url", + "util/types", + "zlib", +]; + +// Modules implemented via a mix of workerd APIs and polyfills. +const hybridNodeCompatModules = [ + "async_hooks", + "console", + "crypto", + "module", + "process", + "timers", + "util", +]; + +export const cloudflare: Preset = { + meta: { + name: "unenv:cloudflare", + version, + url: __filename, + }, + alias: { + ...Object.fromEntries( + cloudflareNodeCompatModules.flatMap((p) => [ + [p, p], + [`node:${p}`, `node:${p}`], + ]) + ), + + // The `node:sys` module is just a deprecated alias for `node:util` which we implemented using a hybrid polyfill + sys: "@cloudflare/unenv-preset/runtime/node/util/index", + "node:sys": "@cloudflare/unenv-preset/runtime/node/util/index", + + // define aliases for hybrid modules + ...Object.fromEntries( + hybridNodeCompatModules.flatMap((m) => [ + [m, `@cloudflare/unenv-preset/runtime/node/${m}/index`], + [`node:${m}`, `@cloudflare/unenv-preset/runtime/node/${m}/index`], + ]) + ), + + // TODO: this is a hotfix and breaks unenv/fetch + // https://github.com/unjs/unenv/issues/364 + "unenv/runtime/node/stream/index": "node:stream", + }, + inject: { + // workerd already defines `global` and `Buffer` + // override the previous presets so that we use the native implementation + Buffer: false, + global: false, + console: "@cloudflare/unenv-preset/runtime/node/console/index", + process: "@cloudflare/unenv-preset/runtime/node/process/index", + setImmediate: [ + "@cloudflare/unenv-preset/runtime/node/timers/index", + "setImmediate", + ], + clearImmediate: [ + "@cloudflare/unenv-preset/runtime/node/timers/index", + "clearImmediate", + ], + }, + polyfill: [], + external: cloudflareNodeCompatModules.flatMap((p) => [p, `node:${p}`]), +}; diff --git a/packages/unenv-preset/src/runtime/node/async_hooks/index.ts b/packages/unenv-preset/src/runtime/node/async_hooks/index.ts new file mode 100644 index 000000000000..5c53fc988249 --- /dev/null +++ b/packages/unenv-preset/src/runtime/node/async_hooks/index.ts @@ -0,0 +1,42 @@ +// https://nodejs.org/api/events.html +import { + asyncWrapProviders, + createHook, + executionAsyncId, + executionAsyncResource, + triggerAsyncId, +} from "unenv/runtime/node/async_hooks/index"; +import type nodeAsyncHooks from "node:async_hooks"; + +export { + asyncWrapProviders, + createHook, + executionAsyncId, + executionAsyncResource, + triggerAsyncId, +} from "unenv/runtime/node/async_hooks/index"; + +// @ts-ignore typings are not up to date, but this API exists, see: https://github.com/cloudflare/workerd/pull/2147 +const workerdAsyncHooks = process.getBuiltinModule("node:async_hooks"); + +// TODO: Ideally this list is not hardcoded but instead is generated when the preset is being generated in the `env()` call +// This generation should use information from https://github.com/cloudflare/workerd/issues/2097 +export const { AsyncLocalStorage, AsyncResource } = workerdAsyncHooks; + +export default { + /** + * manually unroll unenv-polyfilled-symbols to make it tree-shakeable + */ + // @ts-expect-error @types/node is missing this one - this is a bug in typings + asyncWrapProviders, + createHook, + executionAsyncId, + executionAsyncResource, + triggerAsyncId, + + /** + * manually unroll workerd-polyfilled-symbols to make it tree-shakeable + */ + AsyncLocalStorage, + AsyncResource, +} satisfies typeof nodeAsyncHooks; diff --git a/packages/unenv-preset/src/runtime/node/console/index.ts b/packages/unenv-preset/src/runtime/node/console/index.ts new file mode 100644 index 000000000000..df4b6cc0f6cf --- /dev/null +++ b/packages/unenv-preset/src/runtime/node/console/index.ts @@ -0,0 +1,77 @@ +import { + _ignoreErrors, + _stderr, + _stderrErrorHandler, + _stdout, + _stdoutErrorHandler, + _times, + Console, +} from "unenv/runtime/node/console/index"; +import type nodeConsole from "node:console"; + +export { + Console, + _ignoreErrors, + _stderr, + _stderrErrorHandler, + _stdout, + _stdoutErrorHandler, + _times, +} from "unenv/runtime/node/console/index"; + +// The following is an unusual way to access the original/unpatched globalThis.console. +// This is needed to get hold of the real console object before any of the unenv polyfills are +// applied via `inject` or `polyfill` config in presets. +// +// This code relies on the that rollup/esbuild/webpack don't evaluate string concatenation +// so they don't recognize the below as `globalThis.console` which they would try to rewrite +// into unenv/runtime/node/console, thus creating a circular dependency, and breaking this polyfill. +const workerdConsole = (globalThis as any)[ + "con" + "sole" +] as typeof nodeConsole; + +// TODO: Ideally this list is not hardcoded but instead is generated when the preset is being generated in the `env()` call +// This generation should use information from https://github.com/cloudflare/workerd/issues/2097 +export const { + assert, + clear, + // @ts-expect-error undocumented public API + context, + count, + countReset, + // @ts-expect-error undocumented public API + createTask, + debug, + dir, + dirxml, + error, + group, + groupCollapsed, + groupEnd, + info, + log, + profile, + profileEnd, + table, + time, + timeEnd, + timeLog, + timeStamp, + trace, + warn, +} = workerdConsole; + +// polyfill missing globalThis.console API in workerd, while preserving its identity +Object.assign(workerdConsole, { + Console, + _ignoreErrors, + _stderr, + _stderrErrorHandler, + _stdout, + _stdoutErrorHandler, + _times, +}); + +// export the monkey-patched console to satisfy the following node behavior: +// require('node:console') === globalThis.console // true +export default workerdConsole satisfies typeof nodeConsole; diff --git a/packages/unenv-preset/src/runtime/node/crypto/index.ts b/packages/unenv-preset/src/runtime/node/crypto/index.ts new file mode 100644 index 000000000000..432e2e004c78 --- /dev/null +++ b/packages/unenv-preset/src/runtime/node/crypto/index.ts @@ -0,0 +1,210 @@ +// Node.js exposes createCipher, createDecipher, pseudoRandomBytes only via the default export 🤷🏼‍♂️ +// so extract it separately from the other exports +import { + Cipher, + Cipheriv, + constants, + createCipher, + createCipheriv, + createDecipher, + createDecipheriv, + createECDH, + createSign, + createVerify, + Decipher, + Decipheriv, + diffieHellman, + ECDH, + getCipherInfo, + hash, + privateDecrypt, + privateEncrypt, + pseudoRandomBytes, + publicDecrypt, + publicEncrypt, + Sign, + sign, + webcrypto as unenvCryptoWebcrypto, + Verify, + verify, +} from "unenv/runtime/node/crypto/index"; +import type nodeCrypto from "node:crypto"; + +export { + Cipher, + Cipheriv, + Decipher, + Decipheriv, + ECDH, + Sign, + Verify, + constants, + createCipheriv, + createDecipheriv, + createECDH, + createSign, + createVerify, + diffieHellman, + getCipherInfo, + hash, + privateDecrypt, + privateEncrypt, + publicDecrypt, + publicEncrypt, + sign, + verify, +} from "unenv/runtime/node/crypto/index"; + +const workerdCrypto = process.getBuiltinModule("node:crypto"); + +// TODO: Ideally this list is not hardcoded but instead is generated when the preset is being generated in the `env()` call +// This generation should use information from https://github.com/cloudflare/workerd/issues/2097 +export const { + Certificate, + DiffieHellman, + DiffieHellmanGroup, + Hash, + Hmac, + KeyObject, + X509Certificate, + checkPrime, + checkPrimeSync, + createDiffieHellman, + createDiffieHellmanGroup, + createHash, + createHmac, + createPrivateKey, + createPublicKey, + createSecretKey, + generateKey, + generateKeyPair, + generateKeyPairSync, + generateKeySync, + generatePrime, + generatePrimeSync, + getCiphers, + getCurves, + getDiffieHellman, + getFips, + getHashes, + hkdf, + hkdfSync, + pbkdf2, + pbkdf2Sync, + randomBytes, + randomFill, + randomFillSync, + randomInt, + randomUUID, + scrypt, + scryptSync, + secureHeapUsed, + setEngine, + setFips, + subtle, + timingSafeEqual, +} = workerdCrypto; + +// Special case getRandomValues as it must be bound to the webcrypto object +export const getRandomValues = workerdCrypto.getRandomValues.bind( + workerdCrypto.webcrypto +); + +export const webcrypto = { + CryptoKey: unenvCryptoWebcrypto.CryptoKey, + getRandomValues, + randomUUID, + subtle, +} satisfies typeof nodeCrypto.webcrypto; + +// Node.js exposes fips only via the default export 🤷🏼‍♂️ +// so extract it separately from the other exports +const fips = workerdCrypto.fips; + +export default { + /** + * manually unroll unenv-polyfilled-symbols to make it tree-shakeable + */ + Certificate, + Cipher, + Cipheriv, + Decipher, + Decipheriv, + ECDH, + Sign, + Verify, + X509Certificate, + // @ts-expect-error @types/node is out of date - this is a bug in typings + constants, + createCipheriv, + createDecipheriv, + createECDH, + createSign, + createVerify, + diffieHellman, + getCipherInfo, + hash, + privateDecrypt, + privateEncrypt, + publicDecrypt, + publicEncrypt, + scrypt, + scryptSync, + sign, + verify, + + // default-only export from unenv + createCipher, + createDecipher, + pseudoRandomBytes, + + /** + * manually unroll workerd-polyfilled-symbols to make it tree-shakeable + */ + DiffieHellman, + DiffieHellmanGroup, + Hash, + Hmac, + KeyObject, + checkPrime, + checkPrimeSync, + createDiffieHellman, + createDiffieHellmanGroup, + createHash, + createHmac, + createPrivateKey, + createPublicKey, + createSecretKey, + generateKey, + generateKeyPair, + generateKeyPairSync, + generateKeySync, + generatePrime, + generatePrimeSync, + getCiphers, + getCurves, + getDiffieHellman, + getFips, + getHashes, + getRandomValues, + hkdf, + hkdfSync, + pbkdf2, + pbkdf2Sync, + randomBytes, + randomFill, + randomFillSync, + randomInt, + randomUUID, + secureHeapUsed, + setEngine, + setFips, + subtle, + timingSafeEqual, + + // default-only export from workerd + fips, + + // special-cased deep merged symbols + webcrypto, +} satisfies typeof nodeCrypto; diff --git a/packages/unenv-preset/src/runtime/node/module/index.ts b/packages/unenv-preset/src/runtime/node/module/index.ts new file mode 100644 index 000000000000..b50299f6b89f --- /dev/null +++ b/packages/unenv-preset/src/runtime/node/module/index.ts @@ -0,0 +1,99 @@ +// https://nodejs.org/api/module.html +import { notImplemented } from "unenv/runtime/_internal/utils"; +import { + _cache, + _debug, + _extensions, + _findPath, + _initPaths, + _load, + _nodeModulePaths, + _pathCache, + _preloadModules, + _resolveFilename, + _resolveLookupPaths, + builtinModules, + constants, + enableCompileCache, + findSourceMap, + getCompileCacheDir, + globalPaths, + isBuiltin, + Module, + register, + runMain, + SourceMap, + syncBuiltinESMExports, + wrap, +} from "unenv/runtime/node/module/index"; +import type nodeModule from "node:module"; + +export { + Module, + SourceMap, + _cache, + _extensions, + _debug, + _pathCache, + _findPath, + _initPaths, + _load, + _nodeModulePaths, + _preloadModules, + _resolveFilename, + _resolveLookupPaths, + builtinModules, + constants, + enableCompileCache, + findSourceMap, + getCompileCacheDir, + globalPaths, + isBuiltin, + register, + runMain, + syncBuiltinESMExports, + wrap, +} from "unenv/runtime/node/module/index"; + +const workerdModule = process.getBuiltinModule("node:module"); + +export const createRequire: typeof nodeModule.createRequire = ( + file: string +) => { + return Object.assign(workerdModule.createRequire(file), { + resolve: Object.assign(notImplemented("module.require.resolve"), { + paths: notImplemented("module.require.resolve.paths"), + }), + cache: Object.create(null), + extensions: _extensions, + main: undefined, + }); +}; + +export default { + Module, + SourceMap, + _cache, + _extensions, + _debug, + _pathCache, + _findPath, + _initPaths, + _load, + _nodeModulePaths, + _preloadModules, + _resolveFilename, + _resolveLookupPaths, + builtinModules, + enableCompileCache, + constants, + createRequire, + findSourceMap, + getCompileCacheDir, + globalPaths, + isBuiltin, + register, + runMain, + syncBuiltinESMExports, + wrap, +}; diff --git a/packages/unenv-preset/src/runtime/node/perf_hooks/index.ts b/packages/unenv-preset/src/runtime/node/perf_hooks/index.ts new file mode 100644 index 000000000000..c34bef1cf122 --- /dev/null +++ b/packages/unenv-preset/src/runtime/node/perf_hooks/index.ts @@ -0,0 +1,98 @@ +import { + constants, + createHistogram, + monitorEventLoopDelay, + Performance, + PerformanceEntry, + PerformanceMark, + PerformanceMeasure, + PerformanceObserver, + PerformanceObserverEntryList, + PerformanceResourceTiming, + performance as unenvPerformance, +} from "unenv/runtime/node/perf_hooks/index"; +import type nodePerfHooks from "node:perf_hooks"; + +export { + Performance, + PerformanceEntry, + PerformanceMark, + PerformanceMeasure, + PerformanceObserverEntryList, + PerformanceObserver, + PerformanceResourceTiming, + constants, + createHistogram, + monitorEventLoopDelay, +} from "unenv/runtime/node/perf_hooks/index"; + +// The following is an unusual way to access the original/unpatched globalThis.performance. +// This is needed to get hold of the real performance object before any of the unenv polyfills are +// applied via `inject` or `polyfill` config in presets. +// +// This code relies on the that rollup/esbuild/webpack don't evaluate string concatenation +// so they don't recognize the below as `globalThis.performance` which they would try to rewrite +// into unenv/runtime/node/perf_hooks, thus creating a circular dependency, and breaking this polyfill. +const workerdGlobalPerformance = (globalThis as any)[ + "perf" + "ormance" +] as typeof nodePerfHooks.performance; + +// reuse unenv's polyfill, but since preserve globalThis.performance identity +// we use `.bind(unenvPerformance)` here to preserve the `this` for all delegated method calls +export const performance = Object.assign(workerdGlobalPerformance, { + // @ts-expect-error undocumented public API + addEventListener: unenvPerformance.addEventListener.bind(unenvPerformance), + clearMarks: unenvPerformance.clearMarks.bind(unenvPerformance), + clearMeasures: unenvPerformance.clearMeasures.bind(unenvPerformance), + clearResourceTimings: + unenvPerformance.clearResourceTimings.bind(unenvPerformance), + // @ts-expect-error undocumented public API + dispatchEvent: unenvPerformance.dispatchEvent.bind(unenvPerformance), + eventLoopUtilization: + unenvPerformance.eventLoopUtilization.bind(unenvPerformance), + getEntries: unenvPerformance.getEntries.bind(unenvPerformance), + getEntriesByName: unenvPerformance.getEntriesByName.bind(unenvPerformance), + getEntriesByType: unenvPerformance.getEntriesByType.bind(unenvPerformance), + mark: unenvPerformance.mark.bind(unenvPerformance), + markResourceTiming: + unenvPerformance.markResourceTiming.bind(unenvPerformance), + measure: unenvPerformance.measure.bind(unenvPerformance), + nodeTiming: { ...unenvPerformance.nodeTiming }, + onresourcetimingbufferfull: + // @ts-expect-error undocumented public API + typeof unenvPerformance.onresourcetimingbufferfull === "function" + ? // @ts-expect-error undocumented public API + unenvPerformance.onresourcetimingbufferfull.bind(unenvPerformance) + : // @ts-expect-error undocumented public API + unenvPerformance.onresourcetimingbufferfull, + removeEventListener: + // @ts-expect-error undocumented public API + unenvPerformance.removeEventListener.bind(unenvPerformance), + setResourceTimingBufferSize: + unenvPerformance.setResourceTimingBufferSize.bind(unenvPerformance), + timerify: unenvPerformance.timerify.bind(unenvPerformance), + toJSON: unenvPerformance.toJSON.bind(unenvPerformance), +}); + +export default { + /** + * manually unroll unenv-polyfilled-symbols to make it tree-shakeable + */ + Performance, + PerformanceEntry, + PerformanceMark, + PerformanceMeasure, + // @ts-expect-error TODO: resolve type-mismatch between web and node PerformanceObserverEntryList + PerformanceObserverEntryList, + PerformanceObserver, + // @ts-expect-error TODO: resolve type-mismatch between web and node PerformanceObserverEntryList + PerformanceResourceTiming, + constants, + createHistogram, + monitorEventLoopDelay, + + /** + * manually unroll workerd-polyfilled-symbols to make it tree-shakeable + */ + performance, +} satisfies typeof nodePerfHooks; diff --git a/packages/unenv-preset/src/runtime/node/process/index.ts b/packages/unenv-preset/src/runtime/node/process/index.ts new file mode 100644 index 000000000000..50cf2d21a751 --- /dev/null +++ b/packages/unenv-preset/src/runtime/node/process/index.ts @@ -0,0 +1,309 @@ +import { + _debugEnd, + _debugProcess, + _events, + _eventsCount, + _exiting, + _fatalException, + _getActiveHandles, + _getActiveRequests, + _kill, + _linkedBinding, + _maxListeners, + _preload_modules, + _rawDebug, + _startProfilerIdleNotifier, + _stopProfilerIdleNotifier, + _tickCallback, + abort, + addListener, + allowedNodeEnvironmentFlags, + arch, + argv, + argv0, + assert, + availableMemory, + binding, + chdir, + config, + constrainedMemory, + cpuUsage, + cwd, + debugPort, + dlopen, + domain, + emit, + emitWarning, + eventNames, + execArgv, + execPath, + exitCode, + features, + getActiveResourcesInfo, + getegid, + geteuid, + getgid, + getgroups, + getMaxListeners, + getuid, + hasUncaughtExceptionCaptureCallback, + hrtime, + initgroups, + kill, + listenerCount, + listeners, + loadEnvFile, + memoryUsage, + moduleLoadList, + off, + on, + once, + openStdin, + pid, + ppid, + prependListener, + prependOnceListener, + rawListeners, + reallyExit, + release, + removeAllListeners, + removeListener, + report, + resourceUsage, + setegid, + seteuid, + setgid, + setgroups, + setMaxListeners, + setSourceMapsEnabled, + setuid, + setUncaughtExceptionCaptureCallback, + sourceMapsEnabled, + stderr, + stdin, + stdout, + title, + umask, + uptime, + version, + versions, +} from "unenv/runtime/node/process/index"; +import type nodeProcess from "node:process"; + +export { + _debugEnd, + _debugProcess, + _events, + _eventsCount, + _exiting, + _fatalException, + _getActiveHandles, + _getActiveRequests, + _kill, + _linkedBinding, + _maxListeners, + _preload_modules, + _rawDebug, + _startProfilerIdleNotifier, + _stopProfilerIdleNotifier, + _tickCallback, + abort, + addListener, + allowedNodeEnvironmentFlags, + arch, + argv, + argv0, + assert, + availableMemory, + binding, + chdir, + config, + constrainedMemory, + cpuUsage, + cwd, + debugPort, + dlopen, + domain, + emit, + emitWarning, + eventNames, + execArgv, + execPath, + exitCode, + features, + getActiveResourcesInfo, + getMaxListeners, + getegid, + geteuid, + getgid, + getgroups, + getuid, + hasUncaughtExceptionCaptureCallback, + hrtime, + initgroups, + kill, + listenerCount, + listeners, + loadEnvFile, + memoryUsage, + moduleLoadList, + off, + on, + once, + openStdin, + pid, + ppid, + prependListener, + prependOnceListener, + rawListeners, + reallyExit, + release, + removeAllListeners, + removeListener, + report, + resourceUsage, + setMaxListeners, + setSourceMapsEnabled, + setUncaughtExceptionCaptureCallback, + setegid, + seteuid, + setgid, + setgroups, + setuid, + sourceMapsEnabled, + stderr, + stdin, + stdout, + title, + umask, + uptime, + version, + versions, +} from "unenv/runtime/node/process/index"; + +// The following is an unusual way to access the original/unpatched globalThis.process. +// This is needed to get hold of the real process object before any of the unenv polyfills are +// applied via `inject` or `polyfill` config in presets. +// +// This code relies on the that rollup/esbuild/webpack don't evaluate string concatenation +// so they don't recognize the below as `globalThis.process` which they would try to rewrite +// into unenv/runtime/node/process, thus creating a circular dependency, and breaking this polyfill. +const unpatchedGlobalThisProcess = (globalThis as any)[ + "pro" + "cess" +] as typeof nodeProcess; + +export const getBuiltinModule = + unpatchedGlobalThisProcess.getBuiltinModule as (typeof nodeProcess)["getBuiltinModule"]; + +const workerdProcess = getBuiltinModule("node:process") as typeof nodeProcess; + +// TODO: Ideally this list is not hardcoded but instead is generated when the preset is being +// generated in the `env()` call. +// This generation should use information from https://github.com/cloudflare/workerd/issues/2097 +export const { env, exit, nextTick, platform } = workerdProcess; + +const _process = { + /** + * manually unroll unenv-polyfilled-symbols to make it tree-shakeable + */ + // @ts-expect-error (not typed) + _debugEnd, + _debugProcess, + _events, + _eventsCount, + _exiting, + _fatalException, + _getActiveHandles, + _getActiveRequests, + _kill, + _linkedBinding, + _maxListeners, + _preload_modules, + _rawDebug, + _startProfilerIdleNotifier, + _stopProfilerIdleNotifier, + _tickCallback, + abort, + addListener, + allowedNodeEnvironmentFlags, + arch, + argv, + argv0, + assert, + availableMemory, + binding, + chdir, + config, + constrainedMemory, + cpuUsage, + cwd, + debugPort, + dlopen, + domain, + emit, + emitWarning, + eventNames, + execArgv, + execPath, + exit, + exitCode, + features, + getActiveResourcesInfo, + getMaxListeners, + getegid, + geteuid, + getgid, + getgroups, + getuid, + hasUncaughtExceptionCaptureCallback, + hrtime, + initgroups, + kill, + listenerCount, + listeners, + loadEnvFile, + memoryUsage, + moduleLoadList, + off, + on, + once, + openStdin, + pid, + platform, + ppid, + prependListener, + prependOnceListener, + rawListeners, + reallyExit, + release, + removeAllListeners, + removeListener, + report, + resourceUsage, + setMaxListeners, + setSourceMapsEnabled, + setUncaughtExceptionCaptureCallback, + setegid, + seteuid, + setgid, + setgroups, + setuid, + sourceMapsEnabled, + stderr, + stdin, + stdout, + title, + umask, + uptime, + version, + versions, + + /** + * manually unroll workerd-polyfilled-symbols to make it tree-shakeable + */ + env, + getBuiltinModule, + nextTick, +} satisfies typeof nodeProcess; + +export default _process as unknown as typeof globalThis.process; diff --git a/packages/unenv-preset/src/runtime/node/timers/index.ts b/packages/unenv-preset/src/runtime/node/timers/index.ts new file mode 100644 index 000000000000..ba682c69abb2 --- /dev/null +++ b/packages/unenv-preset/src/runtime/node/timers/index.ts @@ -0,0 +1,52 @@ +import { + _unrefActive, + active, + clearInterval, + clearTimeout, + enroll, + promises, + setInterval, + setTimeout, + unenroll, +} from "unenv/runtime/node/timers/index"; +import { + clearImmediateFallback as clearImmediate, + setImmediateFallback as setImmediate, +} from "unenv/runtime/node/timers/internal/set-immediate"; +import type nodeTimers from "node:timers"; + +export { + _unrefActive, + active, + clearInterval, + clearTimeout, + enroll, + promises, + setInterval, + setTimeout, + unenroll, +} from "unenv/runtime/node/timers/index"; + +// Always use the polyfill rather than the worked implementation. +// +// NOTE: +// `setImmediate` and `clearImmediate` must be function (re)exports. +// `export const setImmediate = ...` might cause esbuild to generate invalid code. +export { + setImmediateFallback as setImmediate, + clearImmediateFallback as clearImmediate, +} from "unenv/runtime/node/timers/internal/set-immediate"; + +export default { + _unrefActive, + active, + clearImmediate, + clearInterval, + clearTimeout, + enroll, + promises, + setImmediate, + setInterval, + setTimeout, + unenroll, +}; diff --git a/packages/unenv-preset/src/runtime/node/util/index.ts b/packages/unenv-preset/src/runtime/node/util/index.ts new file mode 100644 index 000000000000..a814ec5c814c --- /dev/null +++ b/packages/unenv-preset/src/runtime/node/util/index.ts @@ -0,0 +1,141 @@ +// https://nodejs.org/api/util.html +import { + _errnoException, + _exceptionWithHostPort, + getSystemErrorMap, + getSystemErrorName, + isArray, + isBoolean, + isBuffer, + isDate, + isDeepStrictEqual, + isError, + isFunction, + isNull, + isNullOrUndefined, + isNumber, + isObject, + isPrimitive, + isRegExp, + isString, + isSymbol, + isUndefined, + parseEnv, + styleText, +} from "unenv/runtime/node/util/index"; +import type nodeUtil from "node:util"; + +export { + _errnoException, + _exceptionWithHostPort, + getSystemErrorMap, + getSystemErrorName, + isArray, + isBoolean, + isBuffer, + isDate, + isDeepStrictEqual, + isError, + isFunction, + isNull, + isNullOrUndefined, + isNumber, + isObject, + isPrimitive, + isRegExp, + isString, + isSymbol, + isUndefined, + parseEnv, + styleText, +} from "unenv/runtime/node/util/index"; + +const workerdUtil = process.getBuiltinModule("node:util"); + +// TODO: Ideally this list is not hardcoded but instead is generated when the preset is being generated in the `env()` call +// This generation should use information from https://github.com/cloudflare/workerd/issues/2097 +export const { + MIMEParams, + MIMEType, + TextDecoder, + TextEncoder, + // @ts-expect-error missing types? + _extend, + aborted, + callbackify, + debug, + debuglog, + deprecate, + format, + formatWithOptions, + getCallSite, + inherits, + inspect, + log, + parseArgs, + promisify, + stripVTControlCharacters, + toUSVString, + transferableAbortController, + transferableAbortSignal, +} = workerdUtil; + +export const types = workerdUtil.types; + +export default { + /** + * manually unroll unenv-polyfilled-symbols to make it tree-shakeable + */ + // @ts-expect-error undocumented public API + _errnoException, + _exceptionWithHostPort, + getSystemErrorMap, + getSystemErrorName, + isArray, + isBoolean, + isBuffer, + isDate, + isDeepStrictEqual, + isError, + isFunction, + isNull, + isNullOrUndefined, + isNumber, + isObject, + isPrimitive, + isRegExp, + isString, + isSymbol, + isUndefined, + parseEnv, + styleText, + + /** + * manually unroll workerd-polyfilled-symbols to make it tree-shakeable + */ + MIMEParams, + MIMEType, + TextDecoder, + TextEncoder, + _extend, + aborted, + callbackify, + debug, + debuglog, + deprecate, + format, + formatWithOptions, + getCallSite, + inherits, + inspect, + log, + parseArgs, + promisify, + stripVTControlCharacters, + toUSVString, + transferableAbortController, + transferableAbortSignal, + + // special-cased deep merged symbols + types, +} satisfies typeof nodeUtil; diff --git a/packages/unenv-preset/tsconfig.json b/packages/unenv-preset/tsconfig.json new file mode 100644 index 000000000000..83d1badbd61a --- /dev/null +++ b/packages/unenv-preset/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Node", + "skipLibCheck": true, + "esModuleInterop": true, + "strict": true, + "declaration": true, + "resolveJsonModule": true, + "types": ["node"] + }, + "include": ["src/**/*"] +} diff --git a/packages/unenv-preset/turbo.json b/packages/unenv-preset/turbo.json new file mode 100644 index 000000000000..113eff071ee7 --- /dev/null +++ b/packages/unenv-preset/turbo.json @@ -0,0 +1,9 @@ +{ + "$schema": "http://turbo.build/schema.json", + "extends": ["//"], + "tasks": { + "build": { + "outputs": ["dist/**", "runtime/**"] + } + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7cda8af2148f..9cc949518434 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,6 +32,7 @@ overrides: '@cloudflare/elements>@types/react': ^18 capnpc-ts>typescript: 4.2.4 '@types/node': ^18.19.59 + '@cloudflare/unenv-preset>@types/node': ^22.10.2 patchedDependencies: '@cloudflare/component-listbox@1.10.6': @@ -119,7 +120,7 @@ importers: version: 5.0.12(@types/node@18.19.59) vitest: specifier: catalog:default - version: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8) + version: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8)(msw@2.4.3(typescript@5.6.3))(supports-color@9.2.2) fixtures/additional-modules: devDependencies: @@ -167,7 +168,7 @@ importers: version: 5.28.4 vitest: specifier: catalog:default - version: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8) + version: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8)(msw@2.4.3(typescript@5.6.3))(supports-color@9.2.2) wrangler: specifier: workspace:* version: link:../../packages/wrangler @@ -664,7 +665,7 @@ importers: version: 5.6.3 vitest: specifier: catalog:default - version: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8) + version: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8)(msw@2.4.3(typescript@5.6.3))(supports-color@9.2.2) wrangler: specifier: workspace:* version: link:../../packages/wrangler @@ -1401,6 +1402,28 @@ importers: specifier: workspace:* version: link:../wrangler + packages/unenv-preset: + dependencies: + unenv: + specifier: npm:unenv-nightly@* + version: unenv-nightly@2.0.0-20241216-144314-7e05819 + workerd: + specifier: ^1.20241216.0 + version: 1.20241216.0 + devDependencies: + '@types/node': + specifier: ^22.10.2 + version: 22.10.2 + typescript: + specifier: catalog:default + version: 5.6.3 + unbuild: + specifier: ^2.0.0 + version: 2.0.0(typescript@5.6.3)(vue-tsc@2.0.29(typescript@5.6.3)) + wrangler: + specifier: 3.95.0 + version: 3.95.0(@cloudflare/workers-types@4.20241205.0) + packages/vitest-pool-workers: dependencies: birpc: @@ -1466,7 +1489,7 @@ importers: version: 5.28.4 vitest: specifier: catalog:default - version: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8) + version: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8)(msw@2.4.3(typescript@5.6.3))(supports-color@9.2.2) packages/workers-editor-shared: dependencies: @@ -1673,7 +1696,7 @@ importers: version: 5.6.3 vitest: specifier: catalog:default - version: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8) + version: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8)(msw@2.4.3(typescript@5.6.3))(supports-color@9.2.2) packages/workers-tsconfig: {} @@ -1696,7 +1719,7 @@ importers: version: 5.6.3 vitest: specifier: catalog:default - version: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8) + version: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8)(msw@2.4.3(typescript@5.6.3))(supports-color@9.2.2) wrangler: specifier: workspace:* version: link:../wrangler @@ -1739,7 +1762,7 @@ importers: version: 5.6.3 vitest: specifier: catalog:default - version: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8) + version: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8)(msw@2.4.3(typescript@5.6.3))(supports-color@9.2.2) packages/wrangler: dependencies: @@ -2110,6 +2133,10 @@ packages: resolution: {integrity: sha512-z88xeGxnzehn2sqZ8UdGQEvYErF1odv2CftxInpSYJt6uHuPe9YjahKZITGs3l5LeI9d2ROG+obuDAoSlqbNfQ==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.24.4': resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} engines: {node: '>=6.9.0'} @@ -2126,6 +2153,10 @@ packages: resolution: {integrity: sha512-WYvQviPw+Qyib0v92AwNIrdLISTp7RfDkM7bPqBvpbnhY4wq8HvHBZREVdYDXk98C8BkOIVnHAY3yvj7AVISxQ==} engines: {node: '>=6.9.0'} + '@babel/core@7.26.0': + resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.24.5': resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==} engines: {node: '>=6.9.0'} @@ -2134,6 +2165,10 @@ packages: resolution: {integrity: sha512-omlUGkr5EaoIJrhLf9CJ0TvjBRpd9+AXRG//0GEQ9THSo8wPiTlbpy1/Ow8ZTrbXpjd9FHXfbFQx32I04ht0FA==} engines: {node: '>=6.9.0'} + '@babel/generator@7.26.3': + resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.23.6': resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} @@ -2174,6 +2209,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-plugin-utils@7.25.9': resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} engines: {node: '>=6.9.0'} @@ -2222,6 +2263,10 @@ packages: resolution: {integrity: sha512-oKWp3+usOJSzDZOucZUAMayhPz/xVjzymyDzUN8dk0Wd3RWMlGLXi07UCQ/CgQVb8LvXx3XBajJH4XGgkt7H7g==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.26.0': + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} + engines: {node: '>=6.9.0'} + '@babel/highlight@7.24.7': resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} @@ -2240,6 +2285,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.26.3': + resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-transform-react-jsx-self@7.25.9': resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} engines: {node: '>=6.9.0'} @@ -2260,6 +2310,10 @@ packages: resolution: {integrity: sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==} engines: {node: '>=6.9.0'} + '@babel/standalone@7.26.4': + resolution: {integrity: sha512-SF+g7S2mhTT1b7CHyfNjDkPU1corxg4LPYsyP0x5KuCl+EbtBQHRLqr9N3q7e7+x7NQ5LYxQf8mJ2PmzebLr0A==} + engines: {node: '>=6.9.0'} + '@babel/template@7.24.0': resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} @@ -2284,6 +2338,10 @@ packages: resolution: {integrity: sha512-OwS2CM5KocvQ/k7dFJa8i5bNGJP0hXWfVCfDkqRFP1IreH1JDC7wG6eCYCi0+McbfT8OR/kNqsI0UU0xP9H6PQ==} engines: {node: '>=6.9.0'} + '@babel/types@7.26.3': + resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -2547,6 +2605,12 @@ packages: cpu: [x64] os: [darwin] + '@cloudflare/workerd-darwin-64@1.20241216.0': + resolution: {integrity: sha512-GreuUuvd1tp34i/I8rv9I6tJTGkLIdUZfPd4Gq7glRntWhZSfeJOlhFHOa/tIil1SrWi1UzXmWeW22DCcUIprA==} + engines: {node: '>=16'} + cpu: [x64] + os: [darwin] + '@cloudflare/workerd-darwin-arm64@1.20241106.1': resolution: {integrity: sha512-j3dg/42D/bPgfNP3cRUBxF+4waCKO/5YKwXNj+lnVOwHxDu+ne5pFw9TIkKYcWTcwn0ZUkbNZNM5rhJqRn4xbg==} engines: {node: '>=16'} @@ -2559,6 +2623,12 @@ packages: cpu: [arm64] os: [darwin] + '@cloudflare/workerd-darwin-arm64@1.20241216.0': + resolution: {integrity: sha512-wGtzIWx4a8uu4y601Zq/x+5fPoSfJoXEEPkqxhcTs2g22Py60wnG91vAeVa8pZe9SipBozYczXh2OwoeCO1QVg==} + engines: {node: '>=16'} + cpu: [arm64] + os: [darwin] + '@cloudflare/workerd-linux-64@1.20241106.1': resolution: {integrity: sha512-Ih+Ye8E1DMBXcKrJktGfGztFqHKaX1CeByqshmTbODnWKHt6O65ax3oTecUwyC0+abuyraOpAtdhHNpFMhUkmw==} engines: {node: '>=16'} @@ -2571,6 +2641,12 @@ packages: cpu: [x64] os: [linux] + '@cloudflare/workerd-linux-64@1.20241216.0': + resolution: {integrity: sha512-HRkePwhnb/4r2Bd6SS3n8VWLPnczh2ApKo3j5N0YSVOz/bEJlqEbEnKAUivCb79C3zptTsbsb0tJ4b5uZsaHtw==} + engines: {node: '>=16'} + cpu: [x64] + os: [linux] + '@cloudflare/workerd-linux-arm64@1.20241106.1': resolution: {integrity: sha512-mdQFPk4+14Yywn7n1xIzI+6olWM8Ybz10R7H3h+rk0XulMumCWUCy1CzIDauOx6GyIcSgKIibYMssVHZR30ObA==} engines: {node: '>=16'} @@ -2583,6 +2659,12 @@ packages: cpu: [arm64] os: [linux] + '@cloudflare/workerd-linux-arm64@1.20241216.0': + resolution: {integrity: sha512-5U99Iaj18BEJAEpKr+n2kdOyzCITbmzV0Ld4zMpIw5ZW0R2MHCo1swra84Q+bvElVOK6+7KGhjKQSqyZUF1WWA==} + engines: {node: '>=16'} + cpu: [arm64] + os: [linux] + '@cloudflare/workerd-windows-64@1.20241106.1': resolution: {integrity: sha512-4rtcss31E/Rb/PeFocZfr+B9i1MdrkhsTBWizh8siNR4KMmkslU2xs2wPaH1z8+ErxkOsHrKRa5EPLh5rIiFeg==} engines: {node: '>=16'} @@ -2595,6 +2677,16 @@ packages: cpu: [x64] os: [win32] + '@cloudflare/workerd-windows-64@1.20241216.0': + resolution: {integrity: sha512-6UtbWgZNFuVyq6d3nKsp3Eb53Ghm2EYObCKTs9TSzV2ZHbovgOIU8BKIlbfJvmkEbG4Q8bbfZkb3QJpG/IwchQ==} + engines: {node: '>=16'} + cpu: [x64] + os: [win32] + + '@cloudflare/workers-shared@0.11.0': + resolution: {integrity: sha512-A+lQ8xp7992qSeMmuQ0ssL6CPmm+ZmAv6Ddikan0n1jjpMAic+97l7xtVIsswSn9iLMFPYQ9uNN/8Fl0AgARIQ==} + engines: {node: '>=16.7.0'} + '@cloudflare/workers-shared@0.8.0': resolution: {integrity: sha512-1OvFkNtslaMZAJsaocTmbACApgmWv55uLpNj50Pn2MGcxdAjpqykXJFQw5tKc+lGV9TDZh9oO3Rsk17IEQDzIg==} engines: {node: '>=16.7.0'} @@ -2644,6 +2736,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.24.0': + resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.17.19': resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} @@ -2668,6 +2766,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.24.0': + resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.17.19': resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} @@ -2692,6 +2796,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.24.0': + resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.17.19': resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} @@ -2716,6 +2826,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.24.0': + resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.17.19': resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} @@ -2740,6 +2856,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.24.0': + resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.17.19': resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} @@ -2764,6 +2886,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.24.0': + resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.17.19': resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} @@ -2788,6 +2916,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.24.0': + resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.17.19': resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} @@ -2812,6 +2946,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.24.0': + resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.17.19': resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} @@ -2836,6 +2976,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.24.0': + resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.17.19': resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} @@ -2860,6 +3006,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.24.0': + resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.17.19': resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} @@ -2884,6 +3036,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.24.0': + resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.17.19': resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} @@ -2908,6 +3066,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.24.0': + resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.17.19': resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} @@ -2932,6 +3096,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.24.0': + resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.17.19': resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} @@ -2956,6 +3126,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.24.0': + resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.17.19': resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} @@ -2980,6 +3156,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.24.0': + resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.17.19': resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} @@ -3004,6 +3186,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.24.0': + resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.17.19': resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} @@ -3028,6 +3216,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.24.0': + resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-x64@0.17.19': resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} @@ -3052,6 +3246,18 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.24.0': + resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.24.0': + resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.17.19': resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} @@ -3076,6 +3282,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.24.0': + resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.17.19': resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} @@ -3100,6 +3312,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.24.0': + resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.17.19': resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} @@ -3124,6 +3342,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.24.0': + resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.17.19': resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} @@ -3148,6 +3372,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.24.0': + resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.17.19': resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} @@ -3172,6 +3402,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.24.0': + resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3578,6 +3814,51 @@ packages: '@types/react': optional: true + '@rollup/plugin-alias@5.1.1': + resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-commonjs@25.0.8': + resolution: {integrity: sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-json@6.1.0': + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-node-resolve@15.3.1': + resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-replace@5.0.7': + resolution: {integrity: sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/pluginutils@4.2.1': resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} @@ -3768,6 +4049,10 @@ packages: '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + '@tsconfig/node10@1.0.9': resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} @@ -3906,6 +4191,9 @@ packages: '@types/node@18.19.59': resolution: {integrity: sha512-vizm2EqwV/7Zay+A6J3tGl9Lhr7CjZe2HmWS988sefiEmsyP9CeXEleho6i4hJk/8UtZAo0bWN4QPZZr83RxvQ==} + '@types/node@22.10.2': + resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} + '@types/normalize-package-data@2.4.1': resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -3933,6 +4221,9 @@ packages: '@types/react@18.3.3': resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -4478,6 +4769,13 @@ packages: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + ava@6.1.1: resolution: {integrity: sha512-A+DG0Ag0e5zvt262Ze0pG5QH7EBmhn+DB9uK7WkUtJVAtGjZFeKTpUOKx339DMGn53+FB24pCJC5klX2WU4VOw==} engines: {node: ^18.18 || ^20.8 || ^21} @@ -4684,6 +4982,9 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + caniuse-lite@1.0.30001618: resolution: {integrity: sha512-p407+D1tIkDvsEAPS22lJxLQQaG8OTBEqo0KhzfABGk0TU4juBNDSfH0hyAp/HRyx+M8L17z/ltyhxh27FTfQg==} @@ -4776,6 +5077,9 @@ packages: ci-parallel-vars@1.0.1: resolution: {integrity: sha512-uvzpYrpmidaoxvIQHM+rKSrigjOe9feHYbw4uOI2gdfe1C3xIlxO+kVXq83WQWNniTf8bAxVpy+cQeFQsMERKg==} + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + cjs-module-lexer@1.2.3: resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} @@ -4861,6 +5165,9 @@ packages: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -4884,9 +5191,16 @@ packages: resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + common-path-prefix@3.0.0: resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + compare-versions@6.1.1: resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} @@ -4918,6 +5232,10 @@ packages: config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} @@ -4988,6 +5306,12 @@ packages: resolution: {integrity: sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==} deprecated: This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in. + css-declaration-sorter@7.2.0: + resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + css-in-js-utils@2.0.1: resolution: {integrity: sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==} @@ -4997,6 +5321,14 @@ packages: css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} @@ -5005,11 +5337,38 @@ packages: resolution: {integrity: sha512-ljnSOCOiMbklF+dwPbpooyB78foId02vUrTDogWzu6ca2DCNB7Kc/BHEGBnYOlUYtwXvSW0mWTwaiO2pwFIoRg==} hasBin: true + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + csslint@1.0.5: resolution: {integrity: sha512-GXGpPqGIuEBKesM4bt2IKFrzDKpemh9wVZRHVuculUErar554QrXHOonhgkBOP3uiZzbAETz0N2A4oWlIoxPuw==} engines: {node: '>=0.10.0'} hasBin: true + cssnano-preset-default@7.0.6: + resolution: {integrity: sha512-ZzrgYupYxEvdGGuqL+JKOY70s7+saoNlHSCK/OGn1vB2pQK8KSET8jvenzItcY+kA7NoWvfbb/YhlzuzNKjOhQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + cssnano-utils@5.0.0: + resolution: {integrity: sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + cssnano@7.0.6: + resolution: {integrity: sha512-54woqx8SCbp8HwvNZYn68ZFAepuouZW4lTwiMVnBErM3VkO7/Sd4oTOt3Zz3bPx3kxQ36aISppyXj2Md4lg8bw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} @@ -5437,6 +5796,11 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.24.0: + resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} + engines: {node: '>=18'} + hasBin: true + escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} @@ -5843,6 +6207,9 @@ packages: fp-ts@2.13.1: resolution: {integrity: sha512-0eu5ULPS2c/jsa1lGFneEFFEdTbembJv8e4QKXeVJ3lm/5hyve06dlKZrpxmMwJt6rYen7sxmHHK2CLaXvWuWQ==} + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} @@ -6017,6 +6384,10 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} + globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + globby@14.0.1: resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==} engines: {node: '>=18'} @@ -6137,6 +6508,9 @@ packages: resolution: {integrity: sha512-LSpxVgIMR3UzyFiXZaPvqBUGqyOKG0LMZqgMn2RXz9f+YAdkHSfFQQX0dtU72fPm5GnEMh5AYXs0ek5NYgMOmA==} engines: {node: '>=16.0.0'} + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -6411,6 +6785,9 @@ packages: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + is-nan@1.3.2: resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} engines: {node: '>= 0.4'} @@ -6465,6 +6842,9 @@ packages: is-promise@4.0.0: resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -6600,6 +6980,14 @@ packages: javascript-time-ago@2.5.7: resolution: {integrity: sha512-EGvh6K4hpJz0S0aZinbW2EfXDqT/JBB84HfMOFDTzGg7yjpjql9feSgtlG1JQ6b6/NkIxl+PoKSUTEMsatTuTg==} + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + + jiti@2.4.1: + resolution: {integrity: sha512-yPBThwecp1wS9DmoA4x4KR2h3QoslacnDR8ypuFM962kI4/456Iy1oHx2RAgh4jfZNdn0bctsdadceiBUgpU1g==} + hasBin: true + jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -6701,6 +7089,9 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} + knitwork@1.2.0: + resolution: {integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==} + kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} @@ -6722,6 +7113,10 @@ packages: lie@3.3.0: resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -6804,6 +7199,9 @@ packages: lodash.union@4.6.0: resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + lodash.uniqueid@4.0.1: resolution: {integrity: sha512-GQQWaIeGlL6DIIr06kj1j6sSmBxyNMwI8kaX9aKpHR/XsMTiaXDVPNPAkiboOTK9OJpTJF/dXT3xYoFQnj386Q==} @@ -6928,6 +7326,12 @@ packages: resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==} engines: {node: '>=8'} + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + mdurl@1.0.1: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} @@ -7012,6 +7416,11 @@ packages: engines: {node: '>=16.13'} hasBin: true + miniflare@3.20241205.0: + resolution: {integrity: sha512-Z0cTtIf6ZrcAJ3SrOI9EUM3s4dkGhNeU6Ubl8sroYhsPVD+rtz3m5+p6McHFWCkcMff1o60X5XEKVTmkz0gbpA==} + engines: {node: '>=16.13'} + hasBin: true + minimatch@10.0.1: resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} engines: {node: 20 || >=22} @@ -7077,17 +7486,32 @@ packages: engines: {node: '>=10'} hasBin: true + mkdist@1.6.0: + resolution: {integrity: sha512-nD7J/mx33Lwm4Q4qoPgRBVA9JQNKgyE7fLo5vdPWVDdjz96pXglGERp/fRnGPCTB37Kykfxs5bDdXa9BWOT9nw==} + hasBin: true + peerDependencies: + sass: ^1.78.0 + typescript: '>=5.5.4' + vue-tsc: ^1.8.27 || ^2.0.21 + peerDependenciesMeta: + sass: + optional: true + typescript: + optional: true + vue-tsc: + optional: true + mlly@1.4.2: resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + mlly@1.7.3: + resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==} + mocha@10.8.2: resolution: {integrity: sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==} engines: {node: '>= 14.0.0'} hasBin: true - mlly@1.7.3: - resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==} - mock-socket@9.3.1: resolution: {integrity: sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw==} engines: {node: '>= 8'} @@ -7216,6 +7640,10 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + normalize-url@8.0.1: resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} engines: {node: '>=14.16'} @@ -7672,10 +8100,189 @@ packages: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} - postcss@8.4.33: + postcss-calc@10.0.2: + resolution: {integrity: sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==} + engines: {node: ^18.12 || ^20.9 || >=22.0} + peerDependencies: + postcss: ^8.4.38 + + postcss-colormin@7.0.2: + resolution: {integrity: sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-convert-values@7.0.4: + resolution: {integrity: sha512-e2LSXPqEHVW6aoGbjV9RsSSNDO3A0rZLCBxN24zvxF25WknMPpX8Dm9UxxThyEbaytzggRuZxaGXqaOhxQ514Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-comments@7.0.3: + resolution: {integrity: sha512-q6fjd4WU4afNhWOA2WltHgCbkRhZPgQe7cXF74fuVB/ge4QbM9HEaOIzGSiMvM+g/cOsNAUGdf2JDzqA2F8iLA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-duplicates@7.0.1: + resolution: {integrity: sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-empty@7.0.0: + resolution: {integrity: sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-overridden@7.0.0: + resolution: {integrity: sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-merge-longhand@7.0.4: + resolution: {integrity: sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-merge-rules@7.0.4: + resolution: {integrity: sha512-ZsaamiMVu7uBYsIdGtKJ64PkcQt6Pcpep/uO90EpLS3dxJi6OXamIobTYcImyXGoW0Wpugh7DSD3XzxZS9JCPg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-font-values@7.0.0: + resolution: {integrity: sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-gradients@7.0.0: + resolution: {integrity: sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-params@7.0.2: + resolution: {integrity: sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-selectors@7.0.4: + resolution: {integrity: sha512-JG55VADcNb4xFCf75hXkzc1rNeURhlo7ugf6JjiiKRfMsKlDzN9CXHZDyiG6x/zGchpjQS+UAgb1d4nqXqOpmA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-normalize-charset@7.0.0: + resolution: {integrity: sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-display-values@7.0.0: + resolution: {integrity: sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-positions@7.0.0: + resolution: {integrity: sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-repeat-style@7.0.0: + resolution: {integrity: sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-string@7.0.0: + resolution: {integrity: sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-timing-functions@7.0.0: + resolution: {integrity: sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-unicode@7.0.2: + resolution: {integrity: sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-url@7.0.0: + resolution: {integrity: sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-whitespace@7.0.0: + resolution: {integrity: sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-ordered-values@7.0.1: + resolution: {integrity: sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-reduce-initial@7.0.2: + resolution: {integrity: sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-reduce-transforms@7.0.0: + resolution: {integrity: sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-svgo@7.0.1: + resolution: {integrity: sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==} + engines: {node: ^18.12.0 || ^20.9.0 || >= 18} + peerDependencies: + postcss: ^8.4.31 + + postcss-unique-selectors@7.0.3: + resolution: {integrity: sha512-J+58u5Ic5T1QjP/LDV9g3Cx4CNOgB5vz+kM6+OxHHhFACdcDeKhBXjQmB7fnIZM12YSTvsL0Opwco83DmacW2g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.33: resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} engines: {node: ^10 || ^12 || >=14} + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + engines: {node: ^10 || ^12 || >=14} + postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} @@ -7747,6 +8354,10 @@ packages: resolution: {integrity: sha512-6UqkYefdogmzqAZWzJ7laYeJnaXDy2/J+ZqiiMtS7t7OfpXWTlaeGMwX8U6EFvPV/YWWEKRkS8hKS4k60WHTOg==} engines: {node: ^14.13.1 || >=16.0.0} + pretty-bytes@6.1.1: + resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} + engines: {node: ^14.13.1 || >=16.0.0} + pretty-ms@9.0.0: resolution: {integrity: sha512-E9e9HJ9R9NasGOgPaPE8VMeiPKAyWR5jcFpNnwIejslIhWqdqOrb2wShBsncMPUb+BcCd2OPYfh7p2W6oemTng==} engines: {node: '>=18'} @@ -8097,6 +8708,13 @@ packages: resolution: {integrity: sha512-DKiMaEYHoOZ0JyD4Ohr5KRnqybQ162s3ZL/WNO9oy6EUszYvpp0eLYJErc/U4NI96HYnHsbROhFaH4LYuJPnDg==} engines: {node: '>=12.0'} + rollup-plugin-dts@6.1.1: + resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==} + engines: {node: '>=16'} + peerDependencies: + rollup: ^3.29.4 || ^4 + typescript: ^4.5 || ^5.0 + rollup-plugin-inject@3.0.2: resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. @@ -8107,6 +8725,11 @@ packages: rollup-pluginutils@2.8.2: resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} + rollup@3.29.5: + resolution: {integrity: sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + rollup@4.9.6: resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -8171,6 +8794,9 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + selfsigned@2.1.1: resolution: {integrity: sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==} engines: {node: '>=10'} @@ -8312,6 +8938,10 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + slash@5.1.0: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} @@ -8355,6 +8985,10 @@ packages: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -8520,6 +9154,12 @@ packages: styled-system@5.1.5: resolution: {integrity: sha512-7VoD0o2R3RKzOzPK0jYrVnS8iJdfkKsQJNiLRDjikOpQVqQHns/DXWaPZOH4tIKkhAT7I6wIsy9FWTWh2X3q+A==} + stylehacks@7.0.4: + resolution: {integrity: sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + stylis@4.3.0: resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==} @@ -8551,6 +9191,11 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} + engines: {node: '>=14.0.0'} + hasBin: true + swap-case@1.1.2: resolution: {integrity: sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==} @@ -8918,12 +9563,24 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbuild@2.0.0: + resolution: {integrity: sha512-JWCUYx3Oxdzvw2J9kTAp+DKE8df/BnH/JTSj6JyA4SH40ECdFu7FoJJcrm8G92B7TjofQ6GZGjJs50TRxoH6Wg==} + hasBin: true + peerDependencies: + typescript: ^5.1.6 + peerDependenciesMeta: + typescript: + optional: true + underscore@1.13.7: resolution: {integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==} undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + undici@5.28.2: resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==} engines: {node: '>=14.0'} @@ -8939,9 +9596,15 @@ packages: unenv-nightly@2.0.0-20241111-080453-894aa31: resolution: {integrity: sha512-0W39QQOQ9VE8kVVUpGwEG+pZcsCXk5wqNG6rDPE6Gr+fiA69LR0qERM61hW5KCOkC1/ArCFrfCGjwHyyv/bI0Q==} + unenv-nightly@2.0.0-20241204-140205-a5d5190: + resolution: {integrity: sha512-jpmAytLeiiW01pl5bhVn9wYJ4vtiLdhGe10oXlJBuQEX8mxjxO8BlEXGHU4vr4yEikjFP1wsomTHt/CLU8kUwg==} + unenv-nightly@2.0.0-20241212-153011-af71c96: resolution: {integrity: sha512-Yugb9yPs/EZsPOY+IHloqVVEcZeJ0uwwViTedsZjOtVeYO8I29B1rzU/p84FMT0R1Ht3bHsKkNV/rzrjSd07QA==} + unenv-nightly@2.0.0-20241216-144314-7e05819: + resolution: {integrity: sha512-HpRspwDDxEwb6f9jOJYdL8iuZ054GIJ61LWHui7FPcgSVUPIXjZ3Nf0bh0qVIEqSGb3bNU/C1Zcw6fKHVl4lDg==} + unicorn-magic@0.1.0: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} @@ -8969,6 +9632,10 @@ packages: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} + untyped@1.5.2: + resolution: {integrity: sha512-eL/8PlhLcMmlMDtNPKhyyz9kEBDS3Uk4yMu/ewlkT2WFbtzScjHWPJLdQLmaGPUKjXzwe9MumOtOgc4Fro96Kg==} + hasBin: true + unzip-stream@0.3.1: resolution: {integrity: sha512-RzaGXLNt+CW+T41h1zl6pGz3EaeVhYlK+rdAap+7DxW5kqsqePO8kRtWPaCiVqdhZc86EctSPVYNix30YOMzmw==} @@ -9258,6 +9925,11 @@ packages: engines: {node: '>=16'} hasBin: true + workerd@1.20241216.0: + resolution: {integrity: sha512-q92hkfZ0ZmH6DrcQ426AqJR0KyG6NRAUNUT3Kvpzk76rLHzw6pvVeU9exATkqnwk5K3LQK6l1asuSsBDdXsPpw==} + engines: {node: '>=16'} + hasBin: true + workerpool@6.5.1: resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} @@ -9271,6 +9943,16 @@ packages: '@cloudflare/workers-types': optional: true + wrangler@3.95.0: + resolution: {integrity: sha512-3w5852i3FNyDz421K2Qk4v5L8jjwegO5O8E1+VAQmjnm82HFNxpIRUBq0bmM7CTLvOPI/Jjcmj/eAWjQBL7QYg==} + engines: {node: '>=16.17.0'} + hasBin: true + peerDependencies: + '@cloudflare/workers-types': ^4.20241205.0 + peerDependenciesMeta: + '@cloudflare/workers-types': + optional: true + wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} @@ -9546,6 +10228,12 @@ snapshots: '@babel/highlight': 7.25.9 picocolors: 1.0.1 + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.24.4': {} '@babel/compat-data@7.25.9': {} @@ -9563,7 +10251,7 @@ snapshots: '@babel/traverse': 7.24.5 '@babel/types': 7.25.2 convert-source-map: 2.0.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7(supports-color@9.2.2) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -9583,7 +10271,27 @@ snapshots: '@babel/traverse': 7.25.9 '@babel/types': 7.25.9 convert-source-map: 2.0.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7(supports-color@9.2.2) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/core@7.26.0': + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.3 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helpers': 7.26.0 + '@babel/parser': 7.26.3 + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.3 + convert-source-map: 2.0.0 + debug: 4.3.7(supports-color@9.2.2) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -9604,6 +10312,14 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 + '@babel/generator@7.26.3': + dependencies: + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 + '@babel/helper-compilation-targets@7.23.6': dependencies: '@babel/compat-data': 7.24.4 @@ -9661,6 +10377,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + '@babel/helper-plugin-utils@7.25.9': {} '@babel/helper-simple-access@7.24.5': @@ -9703,6 +10428,11 @@ snapshots: '@babel/template': 7.25.9 '@babel/types': 7.25.9 + '@babel/helpers@7.26.0': + dependencies: + '@babel/template': 7.25.9 + '@babel/types': 7.26.3 + '@babel/highlight@7.24.7': dependencies: '@babel/helper-validator-identifier': 7.24.7 @@ -9725,6 +10455,10 @@ snapshots: dependencies: '@babel/types': 7.25.9 + '@babel/parser@7.26.3': + dependencies: + '@babel/types': 7.26.3 + '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.25.9)': dependencies: '@babel/core': 7.25.9 @@ -9744,6 +10478,8 @@ snapshots: dependencies: regenerator-runtime: 0.13.11 + '@babel/standalone@7.26.4': {} + '@babel/template@7.24.0': dependencies: '@babel/code-frame': 7.24.7 @@ -9766,7 +10502,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.5 '@babel/parser': 7.25.3 '@babel/types': 7.25.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7(supports-color@9.2.2) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -9778,7 +10514,7 @@ snapshots: '@babel/parser': 7.25.9 '@babel/template': 7.25.9 '@babel/types': 7.25.9 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7(supports-color@9.2.2) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -9794,6 +10530,11 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@babel/types@7.26.3': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@bcoe/v8-coverage@0.2.3': {} '@bundled-es-modules/cookie@2.0.0': @@ -10240,7 +10981,7 @@ snapshots: esbuild: 0.17.19 miniflare: 3.20241106.1 semver: 7.5.4 - vitest: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8) + vitest: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8)(msw@2.4.3(typescript@5.6.3))(supports-color@9.2.2) wrangler: 3.90.0(@cloudflare/workers-types@4.20241205.0) zod: 3.22.3 transitivePeerDependencies: @@ -10255,30 +10996,50 @@ snapshots: '@cloudflare/workerd-darwin-64@1.20241205.0': optional: true + '@cloudflare/workerd-darwin-64@1.20241216.0': + optional: true + '@cloudflare/workerd-darwin-arm64@1.20241106.1': optional: true '@cloudflare/workerd-darwin-arm64@1.20241205.0': optional: true + '@cloudflare/workerd-darwin-arm64@1.20241216.0': + optional: true + '@cloudflare/workerd-linux-64@1.20241106.1': optional: true '@cloudflare/workerd-linux-64@1.20241205.0': optional: true + '@cloudflare/workerd-linux-64@1.20241216.0': + optional: true + '@cloudflare/workerd-linux-arm64@1.20241106.1': optional: true '@cloudflare/workerd-linux-arm64@1.20241205.0': optional: true + '@cloudflare/workerd-linux-arm64@1.20241216.0': + optional: true + '@cloudflare/workerd-windows-64@1.20241106.1': optional: true '@cloudflare/workerd-windows-64@1.20241205.0': optional: true + '@cloudflare/workerd-windows-64@1.20241216.0': + optional: true + + '@cloudflare/workers-shared@0.11.0': + dependencies: + mime: 3.0.0 + zod: 3.22.3 + '@cloudflare/workers-shared@0.8.0': dependencies: mime: 3.0.0 @@ -10324,6 +11085,9 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true + '@esbuild/aix-ppc64@0.24.0': + optional: true + '@esbuild/android-arm64@0.17.19': optional: true @@ -10336,6 +11100,9 @@ snapshots: '@esbuild/android-arm64@0.21.5': optional: true + '@esbuild/android-arm64@0.24.0': + optional: true + '@esbuild/android-arm@0.17.19': optional: true @@ -10348,6 +11115,9 @@ snapshots: '@esbuild/android-arm@0.21.5': optional: true + '@esbuild/android-arm@0.24.0': + optional: true + '@esbuild/android-x64@0.17.19': optional: true @@ -10360,6 +11130,9 @@ snapshots: '@esbuild/android-x64@0.21.5': optional: true + '@esbuild/android-x64@0.24.0': + optional: true + '@esbuild/darwin-arm64@0.17.19': optional: true @@ -10372,6 +11145,9 @@ snapshots: '@esbuild/darwin-arm64@0.21.5': optional: true + '@esbuild/darwin-arm64@0.24.0': + optional: true + '@esbuild/darwin-x64@0.17.19': optional: true @@ -10384,6 +11160,9 @@ snapshots: '@esbuild/darwin-x64@0.21.5': optional: true + '@esbuild/darwin-x64@0.24.0': + optional: true + '@esbuild/freebsd-arm64@0.17.19': optional: true @@ -10396,6 +11175,9 @@ snapshots: '@esbuild/freebsd-arm64@0.21.5': optional: true + '@esbuild/freebsd-arm64@0.24.0': + optional: true + '@esbuild/freebsd-x64@0.17.19': optional: true @@ -10408,6 +11190,9 @@ snapshots: '@esbuild/freebsd-x64@0.21.5': optional: true + '@esbuild/freebsd-x64@0.24.0': + optional: true + '@esbuild/linux-arm64@0.17.19': optional: true @@ -10420,6 +11205,9 @@ snapshots: '@esbuild/linux-arm64@0.21.5': optional: true + '@esbuild/linux-arm64@0.24.0': + optional: true + '@esbuild/linux-arm@0.17.19': optional: true @@ -10432,6 +11220,9 @@ snapshots: '@esbuild/linux-arm@0.21.5': optional: true + '@esbuild/linux-arm@0.24.0': + optional: true + '@esbuild/linux-ia32@0.17.19': optional: true @@ -10444,6 +11235,9 @@ snapshots: '@esbuild/linux-ia32@0.21.5': optional: true + '@esbuild/linux-ia32@0.24.0': + optional: true + '@esbuild/linux-loong64@0.17.19': optional: true @@ -10456,6 +11250,9 @@ snapshots: '@esbuild/linux-loong64@0.21.5': optional: true + '@esbuild/linux-loong64@0.24.0': + optional: true + '@esbuild/linux-mips64el@0.17.19': optional: true @@ -10468,6 +11265,9 @@ snapshots: '@esbuild/linux-mips64el@0.21.5': optional: true + '@esbuild/linux-mips64el@0.24.0': + optional: true + '@esbuild/linux-ppc64@0.17.19': optional: true @@ -10480,6 +11280,9 @@ snapshots: '@esbuild/linux-ppc64@0.21.5': optional: true + '@esbuild/linux-ppc64@0.24.0': + optional: true + '@esbuild/linux-riscv64@0.17.19': optional: true @@ -10492,6 +11295,9 @@ snapshots: '@esbuild/linux-riscv64@0.21.5': optional: true + '@esbuild/linux-riscv64@0.24.0': + optional: true + '@esbuild/linux-s390x@0.17.19': optional: true @@ -10504,6 +11310,9 @@ snapshots: '@esbuild/linux-s390x@0.21.5': optional: true + '@esbuild/linux-s390x@0.24.0': + optional: true + '@esbuild/linux-x64@0.17.19': optional: true @@ -10516,6 +11325,9 @@ snapshots: '@esbuild/linux-x64@0.21.5': optional: true + '@esbuild/linux-x64@0.24.0': + optional: true + '@esbuild/netbsd-x64@0.17.19': optional: true @@ -10528,6 +11340,12 @@ snapshots: '@esbuild/netbsd-x64@0.21.5': optional: true + '@esbuild/netbsd-x64@0.24.0': + optional: true + + '@esbuild/openbsd-arm64@0.24.0': + optional: true + '@esbuild/openbsd-x64@0.17.19': optional: true @@ -10540,6 +11358,9 @@ snapshots: '@esbuild/openbsd-x64@0.21.5': optional: true + '@esbuild/openbsd-x64@0.24.0': + optional: true + '@esbuild/sunos-x64@0.17.19': optional: true @@ -10552,6 +11373,9 @@ snapshots: '@esbuild/sunos-x64@0.21.5': optional: true + '@esbuild/sunos-x64@0.24.0': + optional: true + '@esbuild/win32-arm64@0.17.19': optional: true @@ -10564,6 +11388,9 @@ snapshots: '@esbuild/win32-arm64@0.21.5': optional: true + '@esbuild/win32-arm64@0.24.0': + optional: true + '@esbuild/win32-ia32@0.17.19': optional: true @@ -10576,6 +11403,9 @@ snapshots: '@esbuild/win32-ia32@0.21.5': optional: true + '@esbuild/win32-ia32@0.24.0': + optional: true + '@esbuild/win32-x64@0.17.19': optional: true @@ -10588,6 +11418,9 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true + '@esbuild/win32-x64@0.24.0': + optional: true + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: eslint: 8.57.0 @@ -10769,7 +11602,7 @@ snapshots: '@mapbox/node-pre-gyp@1.0.11(encoding@0.1.13)': dependencies: detect-libc: 2.0.2 - https-proxy-agent: 5.0.1 + https-proxy-agent: 5.0.1(supports-color@9.2.2) make-dir: 3.1.0 node-fetch: 2.6.11(encoding@0.1.13) nopt: 5.0.0 @@ -11124,11 +11957,57 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 + '@rollup/plugin-alias@5.1.1(rollup@3.29.5)': + optionalDependencies: + rollup: 3.29.5 + + '@rollup/plugin-commonjs@25.0.8(rollup@3.29.5)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.5) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 8.1.0 + is-reference: 1.2.1 + magic-string: 0.30.14 + optionalDependencies: + rollup: 3.29.5 + + '@rollup/plugin-json@6.1.0(rollup@3.29.5)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.5) + optionalDependencies: + rollup: 3.29.5 + + '@rollup/plugin-node-resolve@15.3.1(rollup@3.29.5)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.5) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.8 + optionalDependencies: + rollup: 3.29.5 + + '@rollup/plugin-replace@5.0.7(rollup@3.29.5)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@3.29.5) + magic-string: 0.30.14 + optionalDependencies: + rollup: 3.29.5 + '@rollup/pluginutils@4.2.1': dependencies: estree-walker: 2.0.2 picomatch: 2.3.1 + '@rollup/pluginutils@5.1.0(rollup@3.29.5)': + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 3.29.5 + '@rollup/pluginutils@5.1.0(rollup@4.9.6)': dependencies: '@types/estree': 1.0.5 @@ -11316,6 +12195,8 @@ snapshots: '@tootallnate/quickjs-emscripten@0.23.0': {} + '@trysound/sax@0.2.0': {} + '@tsconfig/node10@1.0.9': {} '@tsconfig/node12@1.0.11': {} @@ -11491,6 +12372,10 @@ snapshots: dependencies: undici-types: 5.26.5 + '@types/node@22.10.2': + dependencies: + undici-types: 6.20.0 + '@types/normalize-package-data@2.4.1': {} '@types/pg@8.11.6': @@ -11520,6 +12405,8 @@ snapshots: '@types/prop-types': 15.7.4 csstype: 3.1.2 + '@types/resolve@1.20.2': {} + '@types/resolve@1.20.6': {} '@types/rimraf@4.0.5': @@ -11642,7 +12529,7 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7(supports-color@9.2.2) eslint: 8.57.0 optionalDependencies: typescript: 5.6.3 @@ -11675,7 +12562,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.6.3) - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7(supports-color@9.2.2) eslint: 8.57.0 ts-api-utils: 1.4.3(typescript@5.6.3) optionalDependencies: @@ -11705,7 +12592,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7(supports-color@9.2.2) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 @@ -11830,7 +12717,7 @@ snapshots: sirv: 3.0.0 tinyglobby: 0.2.10 tinyrainbow: 1.2.0 - vitest: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8) + vitest: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8)(msw@2.4.3(typescript@5.6.3))(supports-color@9.2.2) '@vitest/utils@2.1.3': dependencies: @@ -11986,12 +12873,6 @@ snapshots: acorn@8.11.3: {} - agent-base@6.0.2: - dependencies: - debug: 4.3.7(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - acorn@8.14.0: {} agent-base@6.0.2(supports-color@9.2.2): @@ -12000,12 +12881,6 @@ snapshots: transitivePeerDependencies: - supports-color - agent-base@7.1.0: - dependencies: - debug: 4.3.7(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - agent-base@7.1.0(supports-color@9.2.2): dependencies: debug: 4.3.7(supports-color@9.2.2) @@ -12242,6 +13117,16 @@ snapshots: at-least-node@1.0.0: {} + autoprefixer@10.4.20(postcss@8.4.49): + dependencies: + browserslist: 4.24.2 + caniuse-lite: 1.0.30001669 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + ava@6.1.1(@ava/typescript@4.1.0)(encoding@0.1.13): dependencies: '@vercel/nft': 0.26.3(encoding@0.1.13) @@ -12509,13 +13394,20 @@ snapshots: camelcase@6.3.0: {} + caniuse-api@3.0.0: + dependencies: + browserslist: 4.24.2 + caniuse-lite: 1.0.30001669 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + caniuse-lite@1.0.30001618: {} caniuse-lite@1.0.30001669: {} capnp-ts@0.5.1: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7(supports-color@9.2.2) format: 0.2.2 tslib: 2.5.3 utf8-encoding: 0.1.2 @@ -12652,6 +13544,10 @@ snapshots: ci-parallel-vars@1.0.1: {} + citty@0.1.6: + dependencies: + consola: 3.2.3 + cjs-module-lexer@1.2.3: {} clean-stack@2.2.0: {} @@ -12729,6 +13625,8 @@ snapshots: color-support@1.1.3: {} + colord@2.9.3: {} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -12743,8 +13641,12 @@ snapshots: commander@6.2.1: {} + commander@7.2.0: {} + common-path-prefix@3.0.0: {} + commondir@1.0.1: {} + compare-versions@6.1.1: {} compress-commons@4.1.2: @@ -12790,6 +13692,8 @@ snapshots: ini: 1.3.8 proto-list: 1.2.4 + consola@3.2.3: {} + console-control-strings@1.1.0: {} constant-case@2.0.0: @@ -12852,6 +13756,10 @@ snapshots: crypto@1.0.1: {} + css-declaration-sorter@7.2.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + css-in-js-utils@2.0.1: dependencies: hyphenate-style-name: 1.0.4 @@ -12869,15 +13777,75 @@ snapshots: domutils: 3.1.0 nth-check: 2.1.1 + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.0 + + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.0 + css-what@6.1.0: {} cssbeautify@0.3.1: {} + cssesc@3.0.0: {} + csslint@1.0.5: dependencies: clone: 2.1.2 parserlib: 1.1.1 + cssnano-preset-default@7.0.6(postcss@8.4.49): + dependencies: + browserslist: 4.24.2 + css-declaration-sorter: 7.2.0(postcss@8.4.49) + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-calc: 10.0.2(postcss@8.4.49) + postcss-colormin: 7.0.2(postcss@8.4.49) + postcss-convert-values: 7.0.4(postcss@8.4.49) + postcss-discard-comments: 7.0.3(postcss@8.4.49) + postcss-discard-duplicates: 7.0.1(postcss@8.4.49) + postcss-discard-empty: 7.0.0(postcss@8.4.49) + postcss-discard-overridden: 7.0.0(postcss@8.4.49) + postcss-merge-longhand: 7.0.4(postcss@8.4.49) + postcss-merge-rules: 7.0.4(postcss@8.4.49) + postcss-minify-font-values: 7.0.0(postcss@8.4.49) + postcss-minify-gradients: 7.0.0(postcss@8.4.49) + postcss-minify-params: 7.0.2(postcss@8.4.49) + postcss-minify-selectors: 7.0.4(postcss@8.4.49) + postcss-normalize-charset: 7.0.0(postcss@8.4.49) + postcss-normalize-display-values: 7.0.0(postcss@8.4.49) + postcss-normalize-positions: 7.0.0(postcss@8.4.49) + postcss-normalize-repeat-style: 7.0.0(postcss@8.4.49) + postcss-normalize-string: 7.0.0(postcss@8.4.49) + postcss-normalize-timing-functions: 7.0.0(postcss@8.4.49) + postcss-normalize-unicode: 7.0.2(postcss@8.4.49) + postcss-normalize-url: 7.0.0(postcss@8.4.49) + postcss-normalize-whitespace: 7.0.0(postcss@8.4.49) + postcss-ordered-values: 7.0.1(postcss@8.4.49) + postcss-reduce-initial: 7.0.2(postcss@8.4.49) + postcss-reduce-transforms: 7.0.0(postcss@8.4.49) + postcss-svgo: 7.0.1(postcss@8.4.49) + postcss-unique-selectors: 7.0.3(postcss@8.4.49) + + cssnano-utils@5.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + + cssnano@7.0.6(postcss@8.4.49): + dependencies: + cssnano-preset-default: 7.0.6(postcss@8.4.49) + lilconfig: 3.1.3 + postcss: 8.4.49 + + csso@5.0.5: + dependencies: + css-tree: 2.2.1 + csstype@3.1.2: {} csv-generate@3.4.3: {} @@ -13452,6 +14420,33 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 + esbuild@0.24.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.0 + '@esbuild/android-arm': 0.24.0 + '@esbuild/android-arm64': 0.24.0 + '@esbuild/android-x64': 0.24.0 + '@esbuild/darwin-arm64': 0.24.0 + '@esbuild/darwin-x64': 0.24.0 + '@esbuild/freebsd-arm64': 0.24.0 + '@esbuild/freebsd-x64': 0.24.0 + '@esbuild/linux-arm': 0.24.0 + '@esbuild/linux-arm64': 0.24.0 + '@esbuild/linux-ia32': 0.24.0 + '@esbuild/linux-loong64': 0.24.0 + '@esbuild/linux-mips64el': 0.24.0 + '@esbuild/linux-ppc64': 0.24.0 + '@esbuild/linux-riscv64': 0.24.0 + '@esbuild/linux-s390x': 0.24.0 + '@esbuild/linux-x64': 0.24.0 + '@esbuild/netbsd-x64': 0.24.0 + '@esbuild/openbsd-arm64': 0.24.0 + '@esbuild/openbsd-x64': 0.24.0 + '@esbuild/sunos-x64': 0.24.0 + '@esbuild/win32-arm64': 0.24.0 + '@esbuild/win32-ia32': 0.24.0 + '@esbuild/win32-x64': 0.24.0 + escalade@3.1.2: {} escalade@3.2.0: {} @@ -13964,6 +14959,8 @@ snapshots: fp-ts@2.13.1: {} + fraction.js@4.3.7: {} + fresh@0.5.2: {} fs-constants@1.0.0: {} @@ -14088,7 +15085,7 @@ snapshots: dependencies: basic-ftp: 5.0.3 data-uri-to-buffer: 5.0.1 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7(supports-color@9.2.2) fs-extra: 8.1.0 transitivePeerDependencies: - supports-color @@ -14195,6 +15192,14 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 + globby@13.2.2: + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 4.0.0 + globby@14.0.1: dependencies: '@sindresorhus/merge-streams': 2.1.0 @@ -14313,6 +15318,8 @@ snapshots: hono@3.12.11: {} + hookable@5.5.3: {} + hosted-git-info@2.8.9: {} hosted-git-info@4.1.0: @@ -14342,15 +15349,15 @@ snapshots: http-proxy-agent@7.0.0: dependencies: - agent-base: 7.1.0 - debug: 4.3.7(supports-color@8.1.1) + agent-base: 7.1.0(supports-color@9.2.2) + debug: 4.3.7(supports-color@9.2.2) transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: - agent-base: 7.1.0 - debug: 4.3.7(supports-color@8.1.1) + agent-base: 7.1.0(supports-color@9.2.2) + debug: 4.3.7(supports-color@9.2.2) transitivePeerDependencies: - supports-color @@ -14366,13 +15373,6 @@ snapshots: quick-lru: 5.1.1 resolve-alpn: 1.2.1 - https-proxy-agent@5.0.1: - dependencies: - agent-base: 6.0.2 - debug: 4.3.7(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - https-proxy-agent@5.0.1(supports-color@9.2.2): dependencies: agent-base: 6.0.2(supports-color@9.2.2) @@ -14380,13 +15380,6 @@ snapshots: transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.2: - dependencies: - agent-base: 7.1.0 - debug: 4.3.6(supports-color@9.2.2) - transitivePeerDependencies: - - supports-color - https-proxy-agent@7.0.2(supports-color@9.2.2): dependencies: agent-base: 7.1.0(supports-color@9.2.2) @@ -14397,7 +15390,7 @@ snapshots: https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.3 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.7(supports-color@9.2.2) transitivePeerDependencies: - supports-color @@ -14612,6 +15605,8 @@ snapshots: is-map@2.0.3: {} + is-module@1.0.0: {} + is-nan@1.3.2: dependencies: call-bind: 1.0.2 @@ -14647,6 +15642,10 @@ snapshots: is-promise@4.0.0: {} + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.5 + is-regex@1.1.4: dependencies: call-bind: 1.0.2 @@ -14777,6 +15776,10 @@ snapshots: dependencies: relative-time-format: 1.1.4 + jiti@1.21.6: {} + + jiti@2.4.1: {} + jju@1.4.0: {} jose@5.9.3: {} @@ -14863,6 +15866,8 @@ snapshots: kleur@4.1.5: {} + knitwork@1.2.0: {} + kolorist@1.8.0: {} lazystream@1.0.1: @@ -14884,6 +15889,8 @@ snapshots: dependencies: immediate: 3.0.6 + lilconfig@3.1.3: {} + lines-and-columns@1.2.4: {} linkify-it@3.0.3: @@ -14964,6 +15971,8 @@ snapshots: lodash.union@4.6.0: {} + lodash.uniq@4.5.0: {} + lodash.uniqueid@4.0.1: {} lodash@4.17.21: {} @@ -15084,6 +16093,10 @@ snapshots: dependencies: blueimp-md5: 2.19.0 + mdn-data@2.0.28: {} + + mdn-data@2.0.30: {} + mdurl@1.0.1: {} media-typer@0.3.0: {} @@ -15162,6 +16175,25 @@ snapshots: - supports-color - utf-8-validate + miniflare@3.20241205.0: + dependencies: + '@cspotcode/source-map-support': 0.8.1 + acorn: 8.14.0 + acorn-walk: 8.3.2 + capnp-ts: 0.7.0(patch_hash=l4yimnxyvkiyj6alnps2ec3sii) + exit-hook: 2.2.1 + glob-to-regexp: 0.4.1 + stoppable: 1.1.0 + undici: 5.28.4 + workerd: 1.20241205.0 + ws: 8.18.0 + youch: 3.2.3 + zod: 3.22.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + minimatch@10.0.1: dependencies: brace-expansion: 2.0.1 @@ -15225,6 +16257,25 @@ snapshots: mkdirp@1.0.4: {} + mkdist@1.6.0(typescript@5.6.3)(vue-tsc@2.0.29(typescript@5.6.3)): + dependencies: + autoprefixer: 10.4.20(postcss@8.4.49) + citty: 0.1.6 + cssnano: 7.0.6(postcss@8.4.49) + defu: 6.1.4 + esbuild: 0.24.0 + jiti: 1.21.6 + mlly: 1.7.3 + pathe: 1.1.2 + pkg-types: 1.2.1 + postcss: 8.4.49 + postcss-nested: 6.2.0(postcss@8.4.49) + semver: 7.6.3 + tinyglobby: 0.2.10 + optionalDependencies: + typescript: 5.6.3 + vue-tsc: 2.0.29(typescript@5.6.3) + mlly@1.4.2: dependencies: acorn: 8.11.3 @@ -15232,6 +16283,13 @@ snapshots: pkg-types: 1.0.3 ufo: 1.5.4 + mlly@1.7.3: + dependencies: + acorn: 8.14.0 + pathe: 1.1.2 + pkg-types: 1.2.1 + ufo: 1.5.4 + mocha@10.8.2: dependencies: ansi-colors: 4.1.3 @@ -15255,13 +16313,6 @@ snapshots: yargs-parser: 20.2.9 yargs-unparser: 2.0.0 - mlly@1.7.3: - dependencies: - acorn: 8.14.0 - pathe: 1.1.2 - pkg-types: 1.2.1 - ufo: 1.5.4 - mock-socket@9.3.1: {} mrmime@2.0.0: {} @@ -15385,6 +16436,8 @@ snapshots: normalize-path@3.0.0: {} + normalize-range@0.1.2: {} + normalize-url@8.0.1: {} npm-run-all@4.1.5: @@ -15629,11 +16682,11 @@ snapshots: pac-proxy-agent@7.0.1: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 - agent-base: 7.1.0 - debug: 4.3.7(supports-color@8.1.1) + agent-base: 7.1.0(supports-color@9.2.2) + debug: 4.3.7(supports-color@9.2.2) get-uri: 6.0.1 http-proxy-agent: 7.0.0 - https-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.2(supports-color@9.2.2) pac-resolver: 7.0.0 socks-proxy-agent: 8.0.2 transitivePeerDependencies: @@ -15860,7 +16913,7 @@ snapshots: pkg-types@1.0.3: dependencies: jsonc-parser: 3.2.0 - mlly: 1.4.2 + mlly: 1.7.3 pathe: 1.1.2 pkg-types@1.2.1: @@ -15879,12 +16932,179 @@ snapshots: possible-typed-array-names@1.0.0: {} + postcss-calc@10.0.2(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + + postcss-colormin@7.0.2(postcss@8.4.49): + dependencies: + browserslist: 4.24.2 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-convert-values@7.0.4(postcss@8.4.49): + dependencies: + browserslist: 4.24.2 + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-discard-comments@7.0.3(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-selector-parser: 6.1.2 + + postcss-discard-duplicates@7.0.1(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + + postcss-discard-empty@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + + postcss-discard-overridden@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + + postcss-merge-longhand@7.0.4(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + stylehacks: 7.0.4(postcss@8.4.49) + + postcss-merge-rules@7.0.4(postcss@8.4.49): + dependencies: + browserslist: 4.24.2 + caniuse-api: 3.0.0 + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-selector-parser: 6.1.2 + + postcss-minify-font-values@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-minify-gradients@7.0.0(postcss@8.4.49): + dependencies: + colord: 2.9.3 + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-minify-params@7.0.2(postcss@8.4.49): + dependencies: + browserslist: 4.24.2 + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-minify-selectors@7.0.4(postcss@8.4.49): + dependencies: + cssesc: 3.0.0 + postcss: 8.4.49 + postcss-selector-parser: 6.1.2 + + postcss-nested@6.2.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-selector-parser: 6.1.2 + + postcss-normalize-charset@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + + postcss-normalize-display-values@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-normalize-positions@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-normalize-repeat-style@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-normalize-string@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-normalize-timing-functions@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-normalize-unicode@7.0.2(postcss@8.4.49): + dependencies: + browserslist: 4.24.2 + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-normalize-url@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-normalize-whitespace@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-ordered-values@7.0.1(postcss@8.4.49): + dependencies: + cssnano-utils: 5.0.0(postcss@8.4.49) + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-reduce-initial@7.0.2(postcss@8.4.49): + dependencies: + browserslist: 4.24.2 + caniuse-api: 3.0.0 + postcss: 8.4.49 + + postcss-reduce-transforms@7.0.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-svgo@7.0.1(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + svgo: 3.3.2 + + postcss-unique-selectors@7.0.3(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-selector-parser: 6.1.2 + + postcss-value-parser@4.2.0: {} + postcss@8.4.33: dependencies: nanoid: 3.3.7 picocolors: 1.0.1 source-map-js: 1.2.0 + postcss@8.4.49: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postgres-array@2.0.0: {} postgres-array@3.0.2: {} @@ -15946,6 +17166,8 @@ snapshots: pretty-bytes@6.0.0: {} + pretty-bytes@6.1.1: {} + pretty-ms@9.0.0: dependencies: parse-ms: 4.0.0 @@ -15982,10 +17204,10 @@ snapshots: proxy-agent@6.3.1: dependencies: - agent-base: 7.1.0 - debug: 4.3.7(supports-color@8.1.1) + agent-base: 7.1.0(supports-color@9.2.2) + debug: 4.3.7(supports-color@9.2.2) http-proxy-agent: 7.0.0 - https-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.2(supports-color@9.2.2) lru-cache: 7.18.3 pac-proxy-agent: 7.0.1 proxy-from-env: 1.1.0 @@ -16331,6 +17553,14 @@ snapshots: globalthis: 1.0.3 semver-compare: 1.0.0 + rollup-plugin-dts@6.1.1(rollup@3.29.5)(typescript@5.6.3): + dependencies: + magic-string: 0.30.14 + rollup: 3.29.5 + typescript: 5.6.3 + optionalDependencies: + '@babel/code-frame': 7.25.9 + rollup-plugin-inject@3.0.2: dependencies: estree-walker: 0.6.1 @@ -16345,6 +17575,10 @@ snapshots: dependencies: estree-walker: 0.6.1 + rollup@3.29.5: + optionalDependencies: + fsevents: 2.3.3 + rollup@4.9.6: dependencies: '@types/estree': 1.0.5 @@ -16429,6 +17663,8 @@ snapshots: dependencies: loose-envify: 1.4.0 + scule@1.3.0: {} + selfsigned@2.1.1: dependencies: node-forge: 1.3.0 @@ -16584,6 +17820,8 @@ snapshots: slash@3.0.0: {} + slash@4.0.0: {} + slash@5.1.0: {} slice-ansi@5.0.0: @@ -16608,8 +17846,8 @@ snapshots: socks-proxy-agent@8.0.2: dependencies: - agent-base: 7.1.0 - debug: 4.3.7(supports-color@8.1.1) + agent-base: 7.1.0(supports-color@9.2.2) + debug: 4.3.7(supports-color@9.2.2) socks: 2.7.1 transitivePeerDependencies: - supports-color @@ -16634,6 +17872,8 @@ snapshots: source-map-js@1.2.0: {} + source-map-js@1.2.1: {} + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -16827,6 +18067,12 @@ snapshots: '@styled-system/variant': 5.1.5 object-assign: 4.1.1 + stylehacks@7.0.4(postcss@8.4.49): + dependencies: + browserslist: 4.24.2 + postcss: 8.4.49 + postcss-selector-parser: 6.1.2 + stylis@4.3.0: {} supertap@3.0.1: @@ -16854,6 +18100,16 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + svgo@3.3.2: + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.1.1 + swap-case@1.1.2: dependencies: lower-case: 1.1.4 @@ -17223,10 +18479,45 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + unbuild@2.0.0(typescript@5.6.3)(vue-tsc@2.0.29(typescript@5.6.3)): + dependencies: + '@rollup/plugin-alias': 5.1.1(rollup@3.29.5) + '@rollup/plugin-commonjs': 25.0.8(rollup@3.29.5) + '@rollup/plugin-json': 6.1.0(rollup@3.29.5) + '@rollup/plugin-node-resolve': 15.3.1(rollup@3.29.5) + '@rollup/plugin-replace': 5.0.7(rollup@3.29.5) + '@rollup/pluginutils': 5.1.0(rollup@3.29.5) + chalk: 5.3.0 + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + esbuild: 0.19.12 + globby: 13.2.2 + hookable: 5.5.3 + jiti: 1.21.6 + magic-string: 0.30.14 + mkdist: 1.6.0(typescript@5.6.3)(vue-tsc@2.0.29(typescript@5.6.3)) + mlly: 1.7.3 + pathe: 1.1.2 + pkg-types: 1.2.1 + pretty-bytes: 6.1.1 + rollup: 3.29.5 + rollup-plugin-dts: 6.1.1(rollup@3.29.5)(typescript@5.6.3) + scule: 1.3.0 + untyped: 1.5.2 + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - sass + - supports-color + - vue-tsc + underscore@1.13.7: {} undici-types@5.26.5: {} + undici-types@6.20.0: {} + undici@5.28.2: dependencies: '@fastify/busboy': 2.1.1 @@ -17244,6 +18535,13 @@ snapshots: pathe: 1.1.2 ufo: 1.5.4 + unenv-nightly@2.0.0-20241204-140205-a5d5190: + dependencies: + defu: 6.1.4 + ohash: 1.1.4 + pathe: 1.1.2 + ufo: 1.5.4 + unenv-nightly@2.0.0-20241212-153011-af71c96: dependencies: defu: 6.1.4 @@ -17252,6 +18550,14 @@ snapshots: pathe: 1.1.2 ufo: 1.5.4 + unenv-nightly@2.0.0-20241216-144314-7e05819: + dependencies: + defu: 6.1.4 + mlly: 1.7.3 + ohash: 1.1.4 + pathe: 1.1.2 + ufo: 1.5.4 + unicorn-magic@0.1.0: {} universal-user-agent@6.0.1: {} @@ -17266,6 +18572,19 @@ snapshots: untildify@4.0.0: {} + untyped@1.5.2: + dependencies: + '@babel/core': 7.26.0 + '@babel/standalone': 7.26.4 + '@babel/types': 7.26.3 + citty: 0.1.6 + defu: 6.1.4 + jiti: 2.4.1 + knitwork: 1.2.0 + scule: 1.3.0 + transitivePeerDependencies: + - supports-color + unzip-stream@0.3.1: dependencies: binary: 0.3.0 @@ -17362,23 +18681,6 @@ snapshots: vary@1.1.2: {} - vite-node@2.1.8(@types/node@18.19.59): - dependencies: - cac: 6.7.14 - debug: 4.3.7(supports-color@8.1.1) - es-module-lexer: 1.5.4 - pathe: 1.1.2 - vite: 5.0.12(@types/node@18.19.59) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - vite-node@2.1.8(@types/node@18.19.59)(supports-color@9.2.2): dependencies: cac: 6.7.14 @@ -17442,41 +18744,6 @@ snapshots: mock-socket: 9.3.1 vitest: 2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8)(msw@2.4.3(typescript@5.6.3))(supports-color@9.2.2) - vitest@2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8): - dependencies: - '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(msw@2.4.3(typescript@5.6.3))(vite@5.0.12(@types/node@18.19.59)) - '@vitest/pretty-format': 2.1.8 - '@vitest/runner': 2.1.8 - '@vitest/snapshot': 2.1.8 - '@vitest/spy': 2.1.8 - '@vitest/utils': 2.1.8 - chai: 5.1.2 - debug: 4.3.7(supports-color@8.1.1) - expect-type: 1.1.0 - magic-string: 0.30.14 - pathe: 1.1.2 - std-env: 3.8.0 - tinybench: 2.9.0 - tinyexec: 0.3.1 - tinypool: 1.0.1 - tinyrainbow: 1.2.0 - vite: 5.0.12(@types/node@18.19.59) - vite-node: 2.1.8(@types/node@18.19.59) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 18.19.59 - '@vitest/ui': 2.1.8(vitest@2.1.8) - transitivePeerDependencies: - - less - - lightningcss - - msw - - sass - - stylus - - sugarss - - supports-color - - terser - vitest@2.1.8(@types/node@18.19.59)(@vitest/ui@2.1.8)(msw@2.4.3(typescript@5.6.3))(supports-color@9.2.2): dependencies: '@vitest/expect': 2.1.8 @@ -17686,6 +18953,14 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20241205.0 '@cloudflare/workerd-windows-64': 1.20241205.0 + workerd@1.20241216.0: + optionalDependencies: + '@cloudflare/workerd-darwin-64': 1.20241216.0 + '@cloudflare/workerd-darwin-arm64': 1.20241216.0 + '@cloudflare/workerd-linux-64': 1.20241216.0 + '@cloudflare/workerd-linux-arm64': 1.20241216.0 + '@cloudflare/workerd-windows-64': 1.20241216.0 + workerpool@6.5.1: {} wrangler@3.90.0(@cloudflare/workers-types@4.20241205.0): @@ -17717,6 +18992,34 @@ snapshots: - supports-color - utf-8-validate + wrangler@3.95.0(@cloudflare/workers-types@4.20241205.0): + dependencies: + '@cloudflare/kv-asset-handler': 0.3.4 + '@cloudflare/workers-shared': 0.11.0 + '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) + '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) + blake3-wasm: 2.1.5 + chokidar: 4.0.1 + date-fns: 4.1.0 + esbuild: 0.17.19 + itty-time: 1.0.6 + miniflare: 3.20241205.0 + nanoid: 3.3.7 + path-to-regexp: 6.3.0 + resolve: 1.22.8 + selfsigned: 2.1.1 + source-map: 0.6.1 + unenv: unenv-nightly@2.0.0-20241204-140205-a5d5190 + workerd: 1.20241205.0 + xxhash-wasm: 1.0.1 + optionalDependencies: + '@cloudflare/workers-types': 4.20241205.0 + fsevents: 2.3.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 diff --git a/tools/deployments/__tests__/validate-changesets.test.ts b/tools/deployments/__tests__/validate-changesets.test.ts index fa9ed221a977..a345f5a705e2 100644 --- a/tools/deployments/__tests__/validate-changesets.test.ts +++ b/tools/deployments/__tests__/validate-changesets.test.ts @@ -19,31 +19,32 @@ describe("findPackageNames()", () => { it("should return all the private packages which contain deploy scripts", ({ expect, }) => { - expect(findPackageNames()).toMatchInlineSnapshot(` - Set { - "@cloudflare/chrome-devtools-patches", - "cloudflare-workers-bindings-extension", - "create-cloudflare", - "devprod-status-bot", - "edge-preview-authenticated-proxy", - "format-errors", - "@cloudflare/kv-asset-handler", - "miniflare", - "@cloudflare/pages-shared", - "playground-preview-worker", - "@cloudflare/prerelease-registry", - "@cloudflare/quick-edit", - "solarflare-theme", - "turbo-r2-archive", - "@cloudflare/vitest-pool-workers", - "@cloudflare/workers-editor-shared", - "workers-playground", - "@cloudflare/workers-shared", - "workers.new", - "@cloudflare/workflows-shared", - "wrangler", - } - `); + expect(findPackageNames()).toEqual( + new Set([ + "@cloudflare/chrome-devtools-patches", + "@cloudflare/kv-asset-handler", + "@cloudflare/pages-shared", + "@cloudflare/prerelease-registry", + "@cloudflare/quick-edit", + "@cloudflare/unenv-preset", + "@cloudflare/vitest-pool-workers", + "@cloudflare/workers-editor-shared", + "@cloudflare/workers-shared", + "@cloudflare/workflows-shared", + "cloudflare-workers-bindings-extension", + "create-cloudflare", + "devprod-status-bot", + "edge-preview-authenticated-proxy", + "format-errors", + "miniflare", + "playground-preview-worker", + "solarflare-theme", + "turbo-r2-archive", + "workers-playground", + "workers.new", + "wrangler", + ]) + ); }); }); From 2ab4cbd8e24233e6f9f34e902d991f77d83371de Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Tue, 17 Dec 2024 11:01:46 +0100 Subject: [PATCH 2/2] fixup! turbo.json --- packages/unenv-preset/turbo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/unenv-preset/turbo.json b/packages/unenv-preset/turbo.json index 113eff071ee7..6556dcf3e5e5 100644 --- a/packages/unenv-preset/turbo.json +++ b/packages/unenv-preset/turbo.json @@ -3,7 +3,7 @@ "extends": ["//"], "tasks": { "build": { - "outputs": ["dist/**", "runtime/**"] + "outputs": ["dist/**"] } } }