diff --git a/.eslintignore b/.eslintignore
index 16c74be..fa1d9ea 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,5 +1,5 @@
# Build artifacts
-dist/**
+**/dist/**
# JS files at the root of the project
*.js
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 7f378af..c591ddb 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -58,6 +58,8 @@ jobs:
- name: Install
run: pnpm install
+ - run: pnpm exec playwright install chromium
+
- name: Build
run: pnpm run build
diff --git a/.idea/universal-handler.iml b/.idea/universal-handler.iml
index 0a1efd5..64fef6f 100644
--- a/.idea/universal-handler.iml
+++ b/.idea/universal-handler.iml
@@ -10,6 +10,9 @@
+
+
+
diff --git a/.npmrc b/.npmrc
index e941d13..7da6d52 100644
--- a/.npmrc
+++ b/.npmrc
@@ -1 +1,2 @@
package-manager-strict=false
+auto-install-peers=false
diff --git a/README.md b/README.md
deleted file mode 100644
index 1fe3d49..0000000
--- a/README.md
+++ /dev/null
@@ -1,97 +0,0 @@
-The goal of this repository is to flatten out the state of current JS (HTTP) servers(less) ecosystem,
-and determine what would be the best course of action to create a unified way to represent Handlers and Middlewares (and their Context).
-
-The [playground](https://github.com/magne4000/universal-handler/tree/main/playground) contains code to test some patterns, represent Handlers and Middlewares, and adapters for all the major implementations.
-
-Some [packages](https://github.com/magne4000/universal-handler/tree/main/packages) are also being authored (WIP).
-The goal of those packages will be to provide tool authors a mean to declare their Handlers and Middlewares once, targetting all supported servers.
-Think of it as [unplugin](https://github.com/unjs/unplugin) but for Handlers and Middlewares.
-
-## Definitions
-### Handler
-A function that returns a response. Depending on the framework, a response can be anything from a [standard Response](https://workers.js.org/), a string, an object, a [ServerResponse](https://nodejs.org/api/http.html#class-httpserverresponse), etc.
-
-A standard, agnostic and future-proof way to represent a request would certainly be with the [Response interface](https://fetch.spec.whatwg.org/#request), even if it currently have [some limitations](https://github.com/whatwg/fetch/issues/1716).
-
-### Middleware
-A function that modifies the Context or Response, and can return nothing. It can be called before and after a Handler.
-[Hono as a great way to represent this](https://hono.dev/concepts/middleware).
-Each framework as its own way to implement middlewares.
-
-### Context
-Some data with the same lifespan as a Request.
-Each framework as its own way to represent the Context, either by attaching it to their internal Request representation, or by having the Context itself containing the Request.
-
-## Current state of popular servers
-### express
-- Internal representation as superset of [IncomingMessage](https://nodejs.org/api/http.html#class-httpincomingmessage) and [ServerResponse](https://nodejs.org/api/http.html#class-httpserverresponse)
-- Legacy, most used
-- Robust ecosystem of middlewares
-- 😞 Not following WhatWG/WinterCG
-- Works on:
- - node
- - bun
- - deno
- - netlify (and probably others) with [serverless adapter](https://www.npmjs.com/package/serverless-http)
-
-### fastify
-- Own internal representation as [Request](https://github.com/fastify/fastify/blob/main/docs/Reference/Request.md#request) and [Reply](https://github.com/fastify/fastify/blob/main/docs/Reference/Reply.md#reply)
-- Compatible with express middlewares with [@fastify/express](https://github.com/fastify/fastify-express)
- - Also has its own recommended middleware lib [@fastify/middie](https://github.com/fastify/middie)
-- [Serverless compatible](https://github.com/fastify/fastify/blob/main/docs/Guides/Serverless.md), but like with express, actually tailored for stateful server usage
-- 😞 Not following WhatWG/WinterCG
-- Works on:
- - node
- - bun
- - [serverless with adapter](https://github.com/fastify/fastify/blob/main/docs/Guides/Serverless.md)
-
-### h3
-- Internal representation as node [IncomingMessage](https://nodejs.org/api/http.html#class-httpincomingmessage) and [ServerResponse](https://nodejs.org/api/http.html#class-httpserverresponse) (with partial polyfill for unsuported environments thanks to [unenv](https://github.com/unjs/unenv))
-- Compatible with express middlewares with a [simple adapter](https://h3.unjs.io/examples/from-expressjs-to-h3#middleware)
-- 😞 Not following WhatWG/WinterCG, but compatible with them
-- Works on:
- - node
- - web
- - plain
- - bun
- - deno
- - cloudflare
- - netlify
-
-### hatTip
-- Internal representation as standard `Request` ([wrapped in context](https://github.com/hattipjs/hattip/blob/69237d181300b200a14114df2c3c115c44e0f3eb/packages/base/core/index.d.ts)) and standard `Response`
-- 😊 Follows WhatWG/WinterCG
-- Works on:
- - bun
- - cloudflare
- - deno (including Deno Deploy)
- - as an express middleware
- - fastly
- - lagon
- - netlify
- - node
- - uWebSockets.js
- - vercel
-
-### hono
-- Internal representation as a [superset of `Request`](https://hono.dev/api/request#honorequest) and standard `Response`
-- 😊 [Follows WhatWG/WinterCG](https://hono.dev/concepts/web-standard)
-- Works on:
- - cloudflare
- - deno
- - bun
- - fastly
- - vercel
- - netlify
- - aws lambda
- - lambda@edge
- - azure functions
- - node
-
-### elysia
-TBD
-
-## Useful resources
-- [Hono vs. H3 vs. HatTip vs. Elysia](https://dev.to/this-is-learning/hono-vs-h3-vs-hattip-vs-elysia-modern-serverless-replacements-for-express-3a6n)
-- https://github.com/hattipjs/hattip/discussions/45
-- https://workers.js.org/
diff --git a/README.md b/README.md
new file mode 120000
index 0000000..c011f10
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+packages/universal-middleware/README.md
\ No newline at end of file
diff --git a/examples/tool/package.json b/examples/tool/package.json
new file mode 100644
index 0000000..3629671
--- /dev/null
+++ b/examples/tool/package.json
@@ -0,0 +1,116 @@
+{
+ "name": "@universal-middleware-examples/tool",
+ "version": "0.0.0",
+ "private": true,
+ "type": "module",
+ "files": [
+ "dist"
+ ],
+ "exports": {
+ "./dummy-handler": {
+ "types": "./dist/dummy.d.ts",
+ "import": "./dist/dummy.js",
+ "default": "./dist/dummy.js"
+ },
+ "./middlewares/context-middleware": {
+ "types": "./dist/middlewares/context.d.ts",
+ "import": "./dist/middlewares/context.js",
+ "default": "./dist/middlewares/context.js"
+ },
+ "./middlewares/headers-middleware": {
+ "types": "./dist/middlewares/headers.d.ts",
+ "import": "./dist/middlewares/headers.js",
+ "default": "./dist/middlewares/headers.js"
+ },
+ "./dummy-handler-hono": {
+ "types": "./dist/handlers/universal-hono-handler-handler.d.ts",
+ "import": "./dist/handlers/universal-hono-handler-handler.js",
+ "default": "./dist/handlers/universal-hono-handler-handler.js"
+ },
+ "./dummy-handler-express": {
+ "types": "./dist/handlers/universal-express-handler-handler.d.ts",
+ "import": "./dist/handlers/universal-express-handler-handler.js",
+ "default": "./dist/handlers/universal-express-handler-handler.js"
+ },
+ "./dummy-handler-hattip": {
+ "types": "./dist/handlers/universal-hattip-handler-handler.d.ts",
+ "import": "./dist/handlers/universal-hattip-handler-handler.js",
+ "default": "./dist/handlers/universal-hattip-handler-handler.js"
+ },
+ "./middlewares/context-middleware-hono": {
+ "types": "./dist/middlewares/universal-hono-middleware-context.middleware.d.ts",
+ "import": "./dist/middlewares/universal-hono-middleware-context.middleware.js",
+ "default": "./dist/middlewares/universal-hono-middleware-context.middleware.js"
+ },
+ "./middlewares/context-middleware-express": {
+ "types": "./dist/middlewares/universal-express-middleware-context.middleware.d.ts",
+ "import": "./dist/middlewares/universal-express-middleware-context.middleware.js",
+ "default": "./dist/middlewares/universal-express-middleware-context.middleware.js"
+ },
+ "./middlewares/context-middleware-hattip": {
+ "types": "./dist/middlewares/universal-hattip-middleware-context.middleware.d.ts",
+ "import": "./dist/middlewares/universal-hattip-middleware-context.middleware.js",
+ "default": "./dist/middlewares/universal-hattip-middleware-context.middleware.js"
+ },
+ "./middlewares/headers-middleware-hono": {
+ "types": "./dist/middlewares/universal-hono-middleware-headers.middleware.d.ts",
+ "import": "./dist/middlewares/universal-hono-middleware-headers.middleware.js",
+ "default": "./dist/middlewares/universal-hono-middleware-headers.middleware.js"
+ },
+ "./middlewares/headers-middleware-express": {
+ "types": "./dist/middlewares/universal-express-middleware-headers.middleware.d.ts",
+ "import": "./dist/middlewares/universal-express-middleware-headers.middleware.js",
+ "default": "./dist/middlewares/universal-express-middleware-headers.middleware.js"
+ },
+ "./middlewares/headers-middleware-hattip": {
+ "types": "./dist/middlewares/universal-hattip-middleware-headers.middleware.d.ts",
+ "import": "./dist/middlewares/universal-hattip-middleware-headers.middleware.js",
+ "default": "./dist/middlewares/universal-hattip-middleware-headers.middleware.js"
+ },
+ "./dummy-handler-webroute": {
+ "types": "./dist/handlers/universal-webroute-handler-handler.d.ts",
+ "import": "./dist/handlers/universal-webroute-handler-handler.js",
+ "default": "./dist/handlers/universal-webroute-handler-handler.js"
+ },
+ "./middlewares/context-middleware-webroute": {
+ "types": "./dist/middlewares/universal-webroute-middleware-context.middleware.d.ts",
+ "import": "./dist/middlewares/universal-webroute-middleware-context.middleware.js",
+ "default": "./dist/middlewares/universal-webroute-middleware-context.middleware.js"
+ },
+ "./middlewares/headers-middleware-webroute": {
+ "types": "./dist/middlewares/universal-webroute-middleware-headers.middleware.d.ts",
+ "import": "./dist/middlewares/universal-webroute-middleware-headers.middleware.js",
+ "default": "./dist/middlewares/universal-webroute-middleware-headers.middleware.js"
+ }
+ },
+ "author": "Joël Charles ",
+ "repository": "https://github.com/magne4000/universal-handler",
+ "license": "MIT",
+ "scripts": {
+ "build": "rimraf dist && tsup",
+ "prepack": "pnpm build",
+ "test:typecheck": "tsc -p tsconfig.json --noEmit"
+ },
+ "devDependencies": {
+ "@hono/node-server": "^1.12.0",
+ "@swc/core": "^1.7.11",
+ "@types/node": "^20.14.10",
+ "rimraf": "^6.0.0",
+ "tsup": "^8.2.4",
+ "typescript": "^5.5.4",
+ "universal-middleware": "*"
+ },
+ "optionalDependencies": {
+ "@universal-middleware/express": "^0",
+ "@universal-middleware/hattip": "^0",
+ "@universal-middleware/hono": "^0",
+ "@universal-middleware/webroute": "^0"
+ },
+ "sideEffects": false,
+ "peerDependencies": {
+ "@universal-middleware/express": "^0",
+ "@universal-middleware/hattip": "^0",
+ "@universal-middleware/hono": "^0",
+ "@universal-middleware/webroute": "^0"
+ }
+}
\ No newline at end of file
diff --git a/examples/tool/src/handlers/handler.ts b/examples/tool/src/handlers/handler.ts
new file mode 100644
index 0000000..64e2b88
--- /dev/null
+++ b/examples/tool/src/handlers/handler.ts
@@ -0,0 +1,9 @@
+import type { Get, UniversalHandler } from "universal-middleware";
+
+const handler: Get<[], UniversalHandler> = () => (_request, ctx) => {
+ return new Response("context: " + JSON.stringify(ctx), {
+ status: 200,
+ });
+};
+
+export default handler;
diff --git a/examples/tool/src/middlewares/context.middleware.ts b/examples/tool/src/middlewares/context.middleware.ts
new file mode 100644
index 0000000..3b6368c
--- /dev/null
+++ b/examples/tool/src/middlewares/context.middleware.ts
@@ -0,0 +1,11 @@
+import type { Get, UniversalMiddleware } from "universal-middleware";
+
+const contextMiddleware = ((value) => (_request, ctx) => {
+ return {
+ ...ctx,
+ something: value,
+ };
+ // Using `satisfies` to not lose return type
+}) satisfies Get<[string], UniversalMiddleware>;
+
+export default contextMiddleware;
diff --git a/examples/tool/src/middlewares/headers.middleware.ts b/examples/tool/src/middlewares/headers.middleware.ts
new file mode 100644
index 0000000..44f9e79
--- /dev/null
+++ b/examples/tool/src/middlewares/headers.middleware.ts
@@ -0,0 +1,12 @@
+import type { Get, UniversalMiddleware } from "universal-middleware";
+
+const headersMiddleware: Get<[], UniversalMiddleware<{ something?: string }>> =
+ () => (_request, ctx) => {
+ return (response) => {
+ response.headers.set("X-Custom-Header", ctx.something ?? "NONE");
+
+ return response;
+ };
+ };
+
+export default headersMiddleware;
diff --git a/examples/tool/tsconfig.json b/examples/tool/tsconfig.json
new file mode 100644
index 0000000..2c54119
--- /dev/null
+++ b/examples/tool/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "compilerOptions": {
+ "strict": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "verbatimModuleSyntax": true,
+ "resolveJsonModule": true,
+ "skipLibCheck": true,
+ "sourceMap": true,
+ "module": "ESNext",
+ "noEmit": true,
+ "moduleResolution": "Bundler",
+ "target": "ES2022",
+ "lib": ["DOM", "DOM.Iterable", "ESNext"]
+ },
+ "exclude": ["dist"]
+}
diff --git a/examples/tool/tsup.config.ts b/examples/tool/tsup.config.ts
new file mode 100644
index 0000000..56e3ed5
--- /dev/null
+++ b/examples/tool/tsup.config.ts
@@ -0,0 +1,21 @@
+import { defineConfig } from "tsup";
+import universalMiddleware from "universal-middleware/esbuild";
+
+export default defineConfig([
+ {
+ entry: {
+ dummy: "./src/handlers/handler.ts",
+ "middlewares/context": "./src/middlewares/context.middleware.ts",
+ "middlewares/headers": "./src/middlewares/headers.middleware.ts",
+ },
+ format: ["esm"],
+ platform: "neutral",
+ target: "es2022",
+ dts: true,
+ esbuildPlugins: [universalMiddleware()],
+ esbuildOptions(opts) {
+ opts.outbase = "src";
+ },
+ bundle: true,
+ },
+]);
diff --git a/package.json b/package.json
index 434dff9..0bc2c79 100644
--- a/package.json
+++ b/package.json
@@ -1,24 +1,28 @@
{
- "name": "my-app",
+ "name": "universal-middlewware",
+ "private": true,
"version": "0.0.1",
"description": "",
"type": "module",
"scripts": {
- "dev:express": "tsx ./playground/express-entry.ts",
- "dev:h3": "tsx ./playground/h3-entry.ts",
- "dev:hono": "vite --mode hono",
- "dev:hattip": "hattip serve ./playground/hattip-entry.ts --client",
+ "play:express": "tsx ./playground/express-entry.ts",
+ "play:h3": "tsx ./playground/h3-entry.ts",
+ "play:hono": "vite --mode hono",
+ "play:hattip": "hattip serve ./playground/hattip-entry.ts --client",
"lint": "eslint --ext .js,.jsx,.ts,.tsx .",
- "build": "pnpm run -r build",
+ "build:core": "pnpm run -r --filter \"@universal-middleware/*\" build",
+ "build:plugin": "pnpm run --filter \"universal-middleware\" build",
+ "build:examples": "pnpm run --filter \"@universal-middleware-examples/*\" build",
+ "build": "run-s build:core build:plugin build:examples",
"test": "pnpm run -r --sequential test",
"test:typecheck": "pnpm run -r test:typecheck"
},
"keywords": [],
"author": "",
"devDependencies": {
- "@hattip/compose": "^0.0.46",
- "@hattip/vite": "^0.0.46",
- "@hono/vite-dev-server": "^0.13.0",
+ "@hattip/compose": "^0.0.47",
+ "@hattip/vite": "^0.0.47",
+ "@hono/vite-dev-server": "^0.14.0",
"@types/express": "^4.17.21",
"@types/express-session": "^1.18.0",
"@types/node": "^18.19.14",
@@ -27,33 +31,42 @@
"@typescript-eslint/parser": "^7.15.0",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
- "express-rate-limit": "^7.3.1",
+ "express-rate-limit": "^7.4.0",
"express-session": "^1.18.0",
"microdiff": "^1.4.0",
+ "npm-run-all2": "^6.2.2",
"on-change": "^5.0.1",
+ "playwright": "^1.46.1",
"prettier": "^3.3.2",
"proxy-deep": "^4.0.1",
"rfdc": "^1.4.1",
- "typescript": "^5.5.3"
+ "typescript": "^5.5.4"
},
"dependencies": {
- "@hattip/adapter-node": "^0.0.46",
- "@hattip/core": "^0.0.46",
- "@hattip/polyfills": "^0.0.46",
- "@hattip/router": "^0.0.46",
+ "@hattip/adapter-node": "^0.0.47",
+ "@hattip/core": "^0.0.47",
+ "@hattip/polyfills": "^0.0.47",
+ "@hattip/router": "^0.0.47",
"@hono/node-server": "^1.12.0",
"express": "^4.19.2",
"h3": "~1.12.0",
"hattip": "^0.0.33",
"helmet": "^7.1.0",
- "hono": "^4.4.12",
+ "hono": "^4.5.6",
"serve-static": "^1.15.0",
- "tsx": "^4.16.2",
- "vite": "^5.3.3"
+ "tsx": "^4.17.0",
+ "vite": "^5.4.1"
},
"pnpm": {
"overrides": {
- "@universal-middleware/core": "link:./packages/core"
+ "@universal-middleware/core": "link:./packages/core",
+ "@universal-middleware/express": "link:./packages/adapter-express",
+ "@universal-middleware/hono": "link:./packages/adapter-hono",
+ "@universal-middleware/hattip": "link:./packages/adapter-hattip",
+ "@universal-middleware/webroute": "link:./packages/adapter-webroute",
+ "universal-middleware": "link:./packages/universal-middleware",
+ "@webroute/middleware": "^0.9.0",
+ "esbuild": "^0.23.1"
}
},
"packageManager": "pnpm@9.4.0"
diff --git a/packages/adapter-express/deno.json b/packages/adapter-express/deno.json
index 7f10135..a38c68a 100644
--- a/packages/adapter-express/deno.json
+++ b/packages/adapter-express/deno.json
@@ -1,8 +1,10 @@
{
"imports": {
"@universal-middleware/tests": "../tests/dist",
+ "@universal-middleware/core": "../core/dist",
"mri": "npm:mri",
"zx": "npm:zx",
"wait-port": "npm:wait-port"
- }
+ },
+ "lock": false
}
diff --git a/packages/adapter-express/deno.lock b/packages/adapter-express/deno.lock
deleted file mode 100644
index 2b2a292..0000000
--- a/packages/adapter-express/deno.lock
+++ /dev/null
@@ -1,2095 +0,0 @@
-{
- "version": "3",
- "packages": {
- "specifiers": {
- "npm:@brillout/release-me@^0.3.9": "npm:@brillout/release-me@0.3.9",
- "npm:@types/node@^20.14.10": "npm:@types/node@20.14.10",
- "npm:@universal-middleware/core@^0.1.1": "npm:@universal-middleware/core@0.1.1",
- "npm:express@^4.19.2": "npm:express@4.19.2",
- "npm:helmet@^7.1.0": "npm:helmet@7.1.0",
- "npm:mri": "npm:mri@1.2.0",
- "npm:rimraf@^6.0.0": "npm:rimraf@6.0.1",
- "npm:tsup@^8.1.0": "npm:tsup@8.1.0_typescript@5.5.3_esbuild@0.21.5",
- "npm:tsx@^4.16.2": "npm:tsx@4.16.2",
- "npm:typescript@^5.5.3": "npm:typescript@5.5.3",
- "npm:vitest@^2.0.2": "npm:vitest@2.0.2_@types+node@20.14.10",
- "npm:wait-port": "npm:wait-port@1.1.0",
- "npm:zx": "npm:zx@8.1.4"
- },
- "npm": {
- "@ampproject/remapping@2.3.0": {
- "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
- "dependencies": {
- "@jridgewell/gen-mapping": "@jridgewell/gen-mapping@0.3.5",
- "@jridgewell/trace-mapping": "@jridgewell/trace-mapping@0.3.25"
- }
- },
- "@babel/code-frame@7.24.7": {
- "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
- "dependencies": {
- "@babel/highlight": "@babel/highlight@7.24.7",
- "picocolors": "picocolors@1.0.1"
- }
- },
- "@babel/helper-validator-identifier@7.24.7": {
- "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
- "dependencies": {}
- },
- "@babel/highlight@7.24.7": {
- "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
- "dependencies": {
- "@babel/helper-validator-identifier": "@babel/helper-validator-identifier@7.24.7",
- "chalk": "chalk@2.4.2",
- "js-tokens": "js-tokens@4.0.0",
- "picocolors": "picocolors@1.0.1"
- }
- },
- "@brillout/picocolors@1.0.13": {
- "integrity": "sha512-LblvMKItHbvkaIMI+Awsk1EEjmReE8E8Mgjtj3Pdn/qBvwQ6e+ts5uEqG6iTrK6JWndcxrQgSe664KfoteN6fA==",
- "dependencies": {}
- },
- "@brillout/release-me@0.3.9": {
- "integrity": "sha512-7Q9YD+rnVF9hFmRFNSEePAejYSgZzWABJTA5sFrfD1utREt5K8aokoldvm/WES83SOMIkPO97c2kII9J4snc7Q==",
- "dependencies": {
- "@brillout/picocolors": "@brillout/picocolors@1.0.13",
- "commander": "commander@11.1.0",
- "conventional-changelog": "conventional-changelog@5.1.0",
- "execa": "execa@5.1.1",
- "semver": "semver@7.6.2"
- }
- },
- "@esbuild/aix-ppc64@0.21.5": {
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
- "dependencies": {}
- },
- "@esbuild/android-arm64@0.21.5": {
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
- "dependencies": {}
- },
- "@esbuild/android-arm@0.21.5": {
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
- "dependencies": {}
- },
- "@esbuild/android-x64@0.21.5": {
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
- "dependencies": {}
- },
- "@esbuild/darwin-arm64@0.21.5": {
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
- "dependencies": {}
- },
- "@esbuild/darwin-x64@0.21.5": {
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
- "dependencies": {}
- },
- "@esbuild/freebsd-arm64@0.21.5": {
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
- "dependencies": {}
- },
- "@esbuild/freebsd-x64@0.21.5": {
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
- "dependencies": {}
- },
- "@esbuild/linux-arm64@0.21.5": {
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
- "dependencies": {}
- },
- "@esbuild/linux-arm@0.21.5": {
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
- "dependencies": {}
- },
- "@esbuild/linux-ia32@0.21.5": {
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
- "dependencies": {}
- },
- "@esbuild/linux-loong64@0.21.5": {
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
- "dependencies": {}
- },
- "@esbuild/linux-mips64el@0.21.5": {
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
- "dependencies": {}
- },
- "@esbuild/linux-ppc64@0.21.5": {
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
- "dependencies": {}
- },
- "@esbuild/linux-riscv64@0.21.5": {
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
- "dependencies": {}
- },
- "@esbuild/linux-s390x@0.21.5": {
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
- "dependencies": {}
- },
- "@esbuild/linux-x64@0.21.5": {
- "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
- "dependencies": {}
- },
- "@esbuild/netbsd-x64@0.21.5": {
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
- "dependencies": {}
- },
- "@esbuild/openbsd-x64@0.21.5": {
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
- "dependencies": {}
- },
- "@esbuild/sunos-x64@0.21.5": {
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
- "dependencies": {}
- },
- "@esbuild/win32-arm64@0.21.5": {
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
- "dependencies": {}
- },
- "@esbuild/win32-ia32@0.21.5": {
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
- "dependencies": {}
- },
- "@esbuild/win32-x64@0.21.5": {
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
- "dependencies": {}
- },
- "@hutson/parse-repository-url@5.0.0": {
- "integrity": "sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==",
- "dependencies": {}
- },
- "@isaacs/cliui@8.0.2": {
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "dependencies": {
- "string-width": "string-width@5.1.2",
- "string-width-cjs": "string-width@4.2.3",
- "strip-ansi": "strip-ansi@7.1.0",
- "strip-ansi-cjs": "strip-ansi@6.0.1",
- "wrap-ansi": "wrap-ansi@8.1.0",
- "wrap-ansi-cjs": "wrap-ansi@7.0.0"
- }
- },
- "@jridgewell/gen-mapping@0.3.5": {
- "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
- "dependencies": {
- "@jridgewell/set-array": "@jridgewell/set-array@1.2.1",
- "@jridgewell/sourcemap-codec": "@jridgewell/sourcemap-codec@1.5.0",
- "@jridgewell/trace-mapping": "@jridgewell/trace-mapping@0.3.25"
- }
- },
- "@jridgewell/resolve-uri@3.1.2": {
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dependencies": {}
- },
- "@jridgewell/set-array@1.2.1": {
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
- "dependencies": {}
- },
- "@jridgewell/sourcemap-codec@1.5.0": {
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
- "dependencies": {}
- },
- "@jridgewell/trace-mapping@0.3.25": {
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
- "dependencies": {
- "@jridgewell/resolve-uri": "@jridgewell/resolve-uri@3.1.2",
- "@jridgewell/sourcemap-codec": "@jridgewell/sourcemap-codec@1.5.0"
- }
- },
- "@nodelib/fs.scandir@2.1.5": {
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dependencies": {
- "@nodelib/fs.stat": "@nodelib/fs.stat@2.0.5",
- "run-parallel": "run-parallel@1.2.0"
- }
- },
- "@nodelib/fs.stat@2.0.5": {
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dependencies": {}
- },
- "@nodelib/fs.walk@1.2.8": {
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dependencies": {
- "@nodelib/fs.scandir": "@nodelib/fs.scandir@2.1.5",
- "fastq": "fastq@1.17.1"
- }
- },
- "@pkgjs/parseargs@0.11.0": {
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "dependencies": {}
- },
- "@rollup/rollup-android-arm-eabi@4.18.1": {
- "integrity": "sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==",
- "dependencies": {}
- },
- "@rollup/rollup-android-arm64@4.18.1": {
- "integrity": "sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==",
- "dependencies": {}
- },
- "@rollup/rollup-darwin-arm64@4.18.1": {
- "integrity": "sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==",
- "dependencies": {}
- },
- "@rollup/rollup-darwin-x64@4.18.1": {
- "integrity": "sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-arm-gnueabihf@4.18.1": {
- "integrity": "sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-arm-musleabihf@4.18.1": {
- "integrity": "sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-arm64-gnu@4.18.1": {
- "integrity": "sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-arm64-musl@4.18.1": {
- "integrity": "sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-powerpc64le-gnu@4.18.1": {
- "integrity": "sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-riscv64-gnu@4.18.1": {
- "integrity": "sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-s390x-gnu@4.18.1": {
- "integrity": "sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-x64-gnu@4.18.1": {
- "integrity": "sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-x64-musl@4.18.1": {
- "integrity": "sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==",
- "dependencies": {}
- },
- "@rollup/rollup-win32-arm64-msvc@4.18.1": {
- "integrity": "sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==",
- "dependencies": {}
- },
- "@rollup/rollup-win32-ia32-msvc@4.18.1": {
- "integrity": "sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==",
- "dependencies": {}
- },
- "@rollup/rollup-win32-x64-msvc@4.18.1": {
- "integrity": "sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==",
- "dependencies": {}
- },
- "@types/estree@1.0.5": {
- "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
- "dependencies": {}
- },
- "@types/fs-extra@11.0.4": {
- "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==",
- "dependencies": {
- "@types/jsonfile": "@types/jsonfile@6.1.4",
- "@types/node": "@types/node@18.16.19"
- }
- },
- "@types/jsonfile@6.1.4": {
- "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==",
- "dependencies": {
- "@types/node": "@types/node@18.16.19"
- }
- },
- "@types/node@18.16.19": {
- "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==",
- "dependencies": {}
- },
- "@types/node@20.14.10": {
- "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==",
- "dependencies": {
- "undici-types": "undici-types@5.26.5"
- }
- },
- "@types/normalize-package-data@2.4.4": {
- "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
- "dependencies": {}
- },
- "@universal-middleware/core@0.1.1": {
- "integrity": "sha512-1paKMQ/B/l5NL9j5vR3T7mvk3VqfP3aIuJj0XU5WvlrqZGjde1qFyjEDfw4RQtSkgloUobgttdhs4qzop9lS2g==",
- "dependencies": {}
- },
- "@vitest/expect@2.0.2": {
- "integrity": "sha512-nKAvxBYqcDugYZ4nJvnm5OR8eDJdgWjk4XM9owQKUjzW70q0icGV2HVnQOyYsp906xJaBDUXw0+9EHw2T8e0mQ==",
- "dependencies": {
- "@vitest/spy": "@vitest/spy@2.0.2",
- "@vitest/utils": "@vitest/utils@2.0.2",
- "chai": "chai@5.1.1",
- "tinyrainbow": "tinyrainbow@1.2.0"
- }
- },
- "@vitest/pretty-format@2.0.2": {
- "integrity": "sha512-SBCyOXfGVvddRd9r2PwoVR0fonQjh9BMIcBMlSzbcNwFfGr6ZhOhvBzurjvi2F4ryut2HcqiFhNeDVGwru8tLg==",
- "dependencies": {
- "tinyrainbow": "tinyrainbow@1.2.0"
- }
- },
- "@vitest/runner@2.0.2": {
- "integrity": "sha512-OCh437Vi8Wdbif1e0OvQcbfM3sW4s2lpmOjAE7qfLrpzJX2M7J1IQlNvEcb/fu6kaIB9n9n35wS0G2Q3en5kHg==",
- "dependencies": {
- "@vitest/utils": "@vitest/utils@2.0.2",
- "pathe": "pathe@1.1.2"
- }
- },
- "@vitest/snapshot@2.0.2": {
- "integrity": "sha512-Yc2ewhhZhx+0f9cSUdfzPRcsM6PhIb+S43wxE7OG0kTxqgqzo8tHkXFuFlndXeDMp09G3sY/X5OAo/RfYydf1g==",
- "dependencies": {
- "@vitest/pretty-format": "@vitest/pretty-format@2.0.2",
- "magic-string": "magic-string@0.30.10",
- "pathe": "pathe@1.1.2"
- }
- },
- "@vitest/spy@2.0.2": {
- "integrity": "sha512-MgwJ4AZtCgqyp2d7WcQVE8aNG5vQ9zu9qMPYQHjsld/QVsrvg78beNrXdO4HYkP0lDahCO3P4F27aagIag+SGQ==",
- "dependencies": {
- "tinyspy": "tinyspy@3.0.0"
- }
- },
- "@vitest/utils@2.0.2": {
- "integrity": "sha512-pxCY1v7kmOCWYWjzc0zfjGTA3Wmn8PKnlPvSrsA643P1NHl1fOyXj2Q9SaNlrlFE+ivCsxM80Ov3AR82RmHCWQ==",
- "dependencies": {
- "@vitest/pretty-format": "@vitest/pretty-format@2.0.2",
- "estree-walker": "estree-walker@3.0.3",
- "loupe": "loupe@3.1.1",
- "tinyrainbow": "tinyrainbow@1.2.0"
- }
- },
- "JSONStream@1.3.5": {
- "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
- "dependencies": {
- "jsonparse": "jsonparse@1.3.1",
- "through": "through@2.3.8"
- }
- },
- "accepts@1.3.8": {
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dependencies": {
- "mime-types": "mime-types@2.1.35",
- "negotiator": "negotiator@0.6.3"
- }
- },
- "add-stream@1.0.0": {
- "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==",
- "dependencies": {}
- },
- "ansi-regex@5.0.1": {
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dependencies": {}
- },
- "ansi-regex@6.0.1": {
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dependencies": {}
- },
- "ansi-styles@3.2.1": {
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dependencies": {
- "color-convert": "color-convert@1.9.3"
- }
- },
- "ansi-styles@4.3.0": {
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "color-convert@2.0.1"
- }
- },
- "ansi-styles@6.2.1": {
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dependencies": {}
- },
- "any-promise@1.3.0": {
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "dependencies": {}
- },
- "anymatch@3.1.3": {
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dependencies": {
- "normalize-path": "normalize-path@3.0.0",
- "picomatch": "picomatch@2.3.1"
- }
- },
- "array-flatten@1.1.1": {
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
- "dependencies": {}
- },
- "array-ify@1.0.0": {
- "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==",
- "dependencies": {}
- },
- "array-union@2.1.0": {
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dependencies": {}
- },
- "assertion-error@2.0.1": {
- "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
- "dependencies": {}
- },
- "balanced-match@1.0.2": {
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dependencies": {}
- },
- "binary-extensions@2.3.0": {
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "dependencies": {}
- },
- "body-parser@1.20.2": {
- "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
- "dependencies": {
- "bytes": "bytes@3.1.2",
- "content-type": "content-type@1.0.5",
- "debug": "debug@2.6.9",
- "depd": "depd@2.0.0",
- "destroy": "destroy@1.2.0",
- "http-errors": "http-errors@2.0.0",
- "iconv-lite": "iconv-lite@0.4.24",
- "on-finished": "on-finished@2.4.1",
- "qs": "qs@6.11.0",
- "raw-body": "raw-body@2.5.2",
- "type-is": "type-is@1.6.18",
- "unpipe": "unpipe@1.0.0"
- }
- },
- "brace-expansion@2.0.1": {
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "balanced-match@1.0.2"
- }
- },
- "braces@3.0.3": {
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "dependencies": {
- "fill-range": "fill-range@7.1.1"
- }
- },
- "bundle-require@4.2.1_esbuild@0.21.5": {
- "integrity": "sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==",
- "dependencies": {
- "esbuild": "esbuild@0.21.5",
- "load-tsconfig": "load-tsconfig@0.2.5"
- }
- },
- "bytes@3.1.2": {
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "dependencies": {}
- },
- "cac@6.7.14": {
- "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
- "dependencies": {}
- },
- "call-bind@1.0.7": {
- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
- "dependencies": {
- "es-define-property": "es-define-property@1.0.0",
- "es-errors": "es-errors@1.3.0",
- "function-bind": "function-bind@1.1.2",
- "get-intrinsic": "get-intrinsic@1.2.4",
- "set-function-length": "set-function-length@1.2.2"
- }
- },
- "chai@5.1.1": {
- "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==",
- "dependencies": {
- "assertion-error": "assertion-error@2.0.1",
- "check-error": "check-error@2.1.1",
- "deep-eql": "deep-eql@5.0.2",
- "loupe": "loupe@3.1.1",
- "pathval": "pathval@2.0.0"
- }
- },
- "chalk@2.4.2": {
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dependencies": {
- "ansi-styles": "ansi-styles@3.2.1",
- "escape-string-regexp": "escape-string-regexp@1.0.5",
- "supports-color": "supports-color@5.5.0"
- }
- },
- "chalk@4.1.2": {
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "ansi-styles@4.3.0",
- "supports-color": "supports-color@7.2.0"
- }
- },
- "check-error@2.1.1": {
- "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
- "dependencies": {}
- },
- "chokidar@3.6.0": {
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dependencies": {
- "anymatch": "anymatch@3.1.3",
- "braces": "braces@3.0.3",
- "fsevents": "fsevents@2.3.3",
- "glob-parent": "glob-parent@5.1.2",
- "is-binary-path": "is-binary-path@2.1.0",
- "is-glob": "is-glob@4.0.3",
- "normalize-path": "normalize-path@3.0.0",
- "readdirp": "readdirp@3.6.0"
- }
- },
- "color-convert@1.9.3": {
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dependencies": {
- "color-name": "color-name@1.1.3"
- }
- },
- "color-convert@2.0.1": {
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "color-name@1.1.4"
- }
- },
- "color-name@1.1.3": {
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dependencies": {}
- },
- "color-name@1.1.4": {
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dependencies": {}
- },
- "commander@11.1.0": {
- "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
- "dependencies": {}
- },
- "commander@4.1.1": {
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "dependencies": {}
- },
- "commander@9.5.0": {
- "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
- "dependencies": {}
- },
- "compare-func@2.0.0": {
- "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==",
- "dependencies": {
- "array-ify": "array-ify@1.0.0",
- "dot-prop": "dot-prop@5.3.0"
- }
- },
- "content-disposition@0.5.4": {
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dependencies": {
- "safe-buffer": "safe-buffer@5.2.1"
- }
- },
- "content-type@1.0.5": {
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "dependencies": {}
- },
- "conventional-changelog-angular@7.0.0": {
- "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==",
- "dependencies": {
- "compare-func": "compare-func@2.0.0"
- }
- },
- "conventional-changelog-atom@4.0.0": {
- "integrity": "sha512-q2YtiN7rnT1TGwPTwjjBSIPIzDJCRE+XAUahWxnh+buKK99Kks4WLMHoexw38GXx9OUxAsrp44f9qXe5VEMYhw==",
- "dependencies": {}
- },
- "conventional-changelog-codemirror@4.0.0": {
- "integrity": "sha512-hQSojc/5imn1GJK3A75m9hEZZhc3urojA5gMpnar4JHmgLnuM3CUIARPpEk86glEKr3c54Po3WV/vCaO/U8g3Q==",
- "dependencies": {}
- },
- "conventional-changelog-conventionalcommits@7.0.2": {
- "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==",
- "dependencies": {
- "compare-func": "compare-func@2.0.0"
- }
- },
- "conventional-changelog-core@7.0.0": {
- "integrity": "sha512-UYgaB1F/COt7VFjlYKVE/9tTzfU3VUq47r6iWf6lM5T7TlOxr0thI63ojQueRLIpVbrtHK4Ffw+yQGduw2Bhdg==",
- "dependencies": {
- "@hutson/parse-repository-url": "@hutson/parse-repository-url@5.0.0",
- "add-stream": "add-stream@1.0.0",
- "conventional-changelog-writer": "conventional-changelog-writer@7.0.1",
- "conventional-commits-parser": "conventional-commits-parser@5.0.0",
- "git-raw-commits": "git-raw-commits@4.0.0",
- "git-semver-tags": "git-semver-tags@7.0.1",
- "hosted-git-info": "hosted-git-info@7.0.2",
- "normalize-package-data": "normalize-package-data@6.0.2",
- "read-pkg": "read-pkg@8.1.0",
- "read-pkg-up": "read-pkg-up@10.1.0"
- }
- },
- "conventional-changelog-ember@4.0.0": {
- "integrity": "sha512-D0IMhwcJUg1Y8FSry6XAplEJcljkHVlvAZddhhsdbL1rbsqRsMfGx/PIkPYq0ru5aDgn+OxhQ5N5yR7P9mfsvA==",
- "dependencies": {}
- },
- "conventional-changelog-eslint@5.0.0": {
- "integrity": "sha512-6JtLWqAQIeJLn/OzUlYmzd9fKeNSWmQVim9kql+v4GrZwLx807kAJl3IJVc3jTYfVKWLxhC3BGUxYiuVEcVjgA==",
- "dependencies": {}
- },
- "conventional-changelog-express@4.0.0": {
- "integrity": "sha512-yWyy5c7raP9v7aTvPAWzqrztACNO9+FEI1FSYh7UP7YT1AkWgv5UspUeB5v3Ibv4/o60zj2o9GF2tqKQ99lIsw==",
- "dependencies": {}
- },
- "conventional-changelog-jquery@5.0.0": {
- "integrity": "sha512-slLjlXLRNa/icMI3+uGLQbtrgEny3RgITeCxevJB+p05ExiTgHACP5p3XiMKzjBn80n+Rzr83XMYfRInEtCPPw==",
- "dependencies": {}
- },
- "conventional-changelog-jshint@4.0.0": {
- "integrity": "sha512-LyXq1bbl0yG0Ai1SbLxIk8ZxUOe3AjnlwE6sVRQmMgetBk+4gY9EO3d00zlEt8Y8gwsITytDnPORl8al7InTjg==",
- "dependencies": {
- "compare-func": "compare-func@2.0.0"
- }
- },
- "conventional-changelog-preset-loader@4.1.0": {
- "integrity": "sha512-HozQjJicZTuRhCRTq4rZbefaiCzRM2pr6u2NL3XhrmQm4RMnDXfESU6JKu/pnKwx5xtdkYfNCsbhN5exhiKGJA==",
- "dependencies": {}
- },
- "conventional-changelog-writer@7.0.1": {
- "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==",
- "dependencies": {
- "conventional-commits-filter": "conventional-commits-filter@4.0.0",
- "handlebars": "handlebars@4.7.8",
- "json-stringify-safe": "json-stringify-safe@5.0.1",
- "meow": "meow@12.1.1",
- "semver": "semver@7.6.2",
- "split2": "split2@4.2.0"
- }
- },
- "conventional-changelog@5.1.0": {
- "integrity": "sha512-aWyE/P39wGYRPllcCEZDxTVEmhyLzTc9XA6z6rVfkuCD2UBnhV/sgSOKbQrEG5z9mEZJjnopjgQooTKxEg8mAg==",
- "dependencies": {
- "conventional-changelog-angular": "conventional-changelog-angular@7.0.0",
- "conventional-changelog-atom": "conventional-changelog-atom@4.0.0",
- "conventional-changelog-codemirror": "conventional-changelog-codemirror@4.0.0",
- "conventional-changelog-conventionalcommits": "conventional-changelog-conventionalcommits@7.0.2",
- "conventional-changelog-core": "conventional-changelog-core@7.0.0",
- "conventional-changelog-ember": "conventional-changelog-ember@4.0.0",
- "conventional-changelog-eslint": "conventional-changelog-eslint@5.0.0",
- "conventional-changelog-express": "conventional-changelog-express@4.0.0",
- "conventional-changelog-jquery": "conventional-changelog-jquery@5.0.0",
- "conventional-changelog-jshint": "conventional-changelog-jshint@4.0.0",
- "conventional-changelog-preset-loader": "conventional-changelog-preset-loader@4.1.0"
- }
- },
- "conventional-commits-filter@4.0.0": {
- "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==",
- "dependencies": {}
- },
- "conventional-commits-parser@5.0.0": {
- "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==",
- "dependencies": {
- "JSONStream": "JSONStream@1.3.5",
- "is-text-path": "is-text-path@2.0.0",
- "meow": "meow@12.1.1",
- "split2": "split2@4.2.0"
- }
- },
- "cookie-signature@1.0.6": {
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
- "dependencies": {}
- },
- "cookie@0.6.0": {
- "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
- "dependencies": {}
- },
- "cross-spawn@7.0.3": {
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dependencies": {
- "path-key": "path-key@3.1.1",
- "shebang-command": "shebang-command@2.0.0",
- "which": "which@2.0.2"
- }
- },
- "dargs@8.1.0": {
- "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==",
- "dependencies": {}
- },
- "debug@2.6.9": {
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "ms@2.0.0"
- }
- },
- "debug@4.3.5": {
- "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
- "dependencies": {
- "ms": "ms@2.1.2"
- }
- },
- "deep-eql@5.0.2": {
- "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
- "dependencies": {}
- },
- "define-data-property@1.1.4": {
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
- "dependencies": {
- "es-define-property": "es-define-property@1.0.0",
- "es-errors": "es-errors@1.3.0",
- "gopd": "gopd@1.0.1"
- }
- },
- "depd@2.0.0": {
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "dependencies": {}
- },
- "destroy@1.2.0": {
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "dependencies": {}
- },
- "dir-glob@3.0.1": {
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dependencies": {
- "path-type": "path-type@4.0.0"
- }
- },
- "dot-prop@5.3.0": {
- "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
- "dependencies": {
- "is-obj": "is-obj@2.0.0"
- }
- },
- "eastasianwidth@0.2.0": {
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dependencies": {}
- },
- "ee-first@1.1.1": {
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
- "dependencies": {}
- },
- "emoji-regex@8.0.0": {
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dependencies": {}
- },
- "emoji-regex@9.2.2": {
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dependencies": {}
- },
- "encodeurl@1.0.2": {
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "dependencies": {}
- },
- "error-ex@1.3.2": {
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dependencies": {
- "is-arrayish": "is-arrayish@0.2.1"
- }
- },
- "es-define-property@1.0.0": {
- "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
- "dependencies": {
- "get-intrinsic": "get-intrinsic@1.2.4"
- }
- },
- "es-errors@1.3.0": {
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "dependencies": {}
- },
- "esbuild@0.21.5": {
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
- "dependencies": {
- "@esbuild/aix-ppc64": "@esbuild/aix-ppc64@0.21.5",
- "@esbuild/android-arm": "@esbuild/android-arm@0.21.5",
- "@esbuild/android-arm64": "@esbuild/android-arm64@0.21.5",
- "@esbuild/android-x64": "@esbuild/android-x64@0.21.5",
- "@esbuild/darwin-arm64": "@esbuild/darwin-arm64@0.21.5",
- "@esbuild/darwin-x64": "@esbuild/darwin-x64@0.21.5",
- "@esbuild/freebsd-arm64": "@esbuild/freebsd-arm64@0.21.5",
- "@esbuild/freebsd-x64": "@esbuild/freebsd-x64@0.21.5",
- "@esbuild/linux-arm": "@esbuild/linux-arm@0.21.5",
- "@esbuild/linux-arm64": "@esbuild/linux-arm64@0.21.5",
- "@esbuild/linux-ia32": "@esbuild/linux-ia32@0.21.5",
- "@esbuild/linux-loong64": "@esbuild/linux-loong64@0.21.5",
- "@esbuild/linux-mips64el": "@esbuild/linux-mips64el@0.21.5",
- "@esbuild/linux-ppc64": "@esbuild/linux-ppc64@0.21.5",
- "@esbuild/linux-riscv64": "@esbuild/linux-riscv64@0.21.5",
- "@esbuild/linux-s390x": "@esbuild/linux-s390x@0.21.5",
- "@esbuild/linux-x64": "@esbuild/linux-x64@0.21.5",
- "@esbuild/netbsd-x64": "@esbuild/netbsd-x64@0.21.5",
- "@esbuild/openbsd-x64": "@esbuild/openbsd-x64@0.21.5",
- "@esbuild/sunos-x64": "@esbuild/sunos-x64@0.21.5",
- "@esbuild/win32-arm64": "@esbuild/win32-arm64@0.21.5",
- "@esbuild/win32-ia32": "@esbuild/win32-ia32@0.21.5",
- "@esbuild/win32-x64": "@esbuild/win32-x64@0.21.5"
- }
- },
- "escape-html@1.0.3": {
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
- "dependencies": {}
- },
- "escape-string-regexp@1.0.5": {
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dependencies": {}
- },
- "estree-walker@3.0.3": {
- "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
- "dependencies": {
- "@types/estree": "@types/estree@1.0.5"
- }
- },
- "etag@1.8.1": {
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "dependencies": {}
- },
- "execa@5.1.1": {
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dependencies": {
- "cross-spawn": "cross-spawn@7.0.3",
- "get-stream": "get-stream@6.0.1",
- "human-signals": "human-signals@2.1.0",
- "is-stream": "is-stream@2.0.1",
- "merge-stream": "merge-stream@2.0.0",
- "npm-run-path": "npm-run-path@4.0.1",
- "onetime": "onetime@5.1.2",
- "signal-exit": "signal-exit@3.0.7",
- "strip-final-newline": "strip-final-newline@2.0.0"
- }
- },
- "execa@8.0.1": {
- "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
- "dependencies": {
- "cross-spawn": "cross-spawn@7.0.3",
- "get-stream": "get-stream@8.0.1",
- "human-signals": "human-signals@5.0.0",
- "is-stream": "is-stream@3.0.0",
- "merge-stream": "merge-stream@2.0.0",
- "npm-run-path": "npm-run-path@5.3.0",
- "onetime": "onetime@6.0.0",
- "signal-exit": "signal-exit@4.1.0",
- "strip-final-newline": "strip-final-newline@3.0.0"
- }
- },
- "express@4.19.2": {
- "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
- "dependencies": {
- "accepts": "accepts@1.3.8",
- "array-flatten": "array-flatten@1.1.1",
- "body-parser": "body-parser@1.20.2",
- "content-disposition": "content-disposition@0.5.4",
- "content-type": "content-type@1.0.5",
- "cookie": "cookie@0.6.0",
- "cookie-signature": "cookie-signature@1.0.6",
- "debug": "debug@2.6.9",
- "depd": "depd@2.0.0",
- "encodeurl": "encodeurl@1.0.2",
- "escape-html": "escape-html@1.0.3",
- "etag": "etag@1.8.1",
- "finalhandler": "finalhandler@1.2.0",
- "fresh": "fresh@0.5.2",
- "http-errors": "http-errors@2.0.0",
- "merge-descriptors": "merge-descriptors@1.0.1",
- "methods": "methods@1.1.2",
- "on-finished": "on-finished@2.4.1",
- "parseurl": "parseurl@1.3.3",
- "path-to-regexp": "path-to-regexp@0.1.7",
- "proxy-addr": "proxy-addr@2.0.7",
- "qs": "qs@6.11.0",
- "range-parser": "range-parser@1.2.1",
- "safe-buffer": "safe-buffer@5.2.1",
- "send": "send@0.18.0",
- "serve-static": "serve-static@1.15.0",
- "setprototypeof": "setprototypeof@1.2.0",
- "statuses": "statuses@2.0.1",
- "type-is": "type-is@1.6.18",
- "utils-merge": "utils-merge@1.0.1",
- "vary": "vary@1.1.2"
- }
- },
- "fast-glob@3.3.2": {
- "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
- "dependencies": {
- "@nodelib/fs.stat": "@nodelib/fs.stat@2.0.5",
- "@nodelib/fs.walk": "@nodelib/fs.walk@1.2.8",
- "glob-parent": "glob-parent@5.1.2",
- "merge2": "merge2@1.4.1",
- "micromatch": "micromatch@4.0.7"
- }
- },
- "fastq@1.17.1": {
- "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
- "dependencies": {
- "reusify": "reusify@1.0.4"
- }
- },
- "fill-range@7.1.1": {
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "dependencies": {
- "to-regex-range": "to-regex-range@5.0.1"
- }
- },
- "finalhandler@1.2.0": {
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "dependencies": {
- "debug": "debug@2.6.9",
- "encodeurl": "encodeurl@1.0.2",
- "escape-html": "escape-html@1.0.3",
- "on-finished": "on-finished@2.4.1",
- "parseurl": "parseurl@1.3.3",
- "statuses": "statuses@2.0.1",
- "unpipe": "unpipe@1.0.0"
- }
- },
- "find-up@6.3.0": {
- "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
- "dependencies": {
- "locate-path": "locate-path@7.2.0",
- "path-exists": "path-exists@5.0.0"
- }
- },
- "foreground-child@3.2.1": {
- "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
- "dependencies": {
- "cross-spawn": "cross-spawn@7.0.3",
- "signal-exit": "signal-exit@4.1.0"
- }
- },
- "forwarded@0.2.0": {
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "dependencies": {}
- },
- "fresh@0.5.2": {
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "dependencies": {}
- },
- "fsevents@2.3.3": {
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dependencies": {}
- },
- "function-bind@1.1.2": {
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "dependencies": {}
- },
- "get-func-name@2.0.2": {
- "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
- "dependencies": {}
- },
- "get-intrinsic@1.2.4": {
- "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
- "dependencies": {
- "es-errors": "es-errors@1.3.0",
- "function-bind": "function-bind@1.1.2",
- "has-proto": "has-proto@1.0.3",
- "has-symbols": "has-symbols@1.0.3",
- "hasown": "hasown@2.0.2"
- }
- },
- "get-stream@6.0.1": {
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dependencies": {}
- },
- "get-stream@8.0.1": {
- "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
- "dependencies": {}
- },
- "get-tsconfig@4.7.5": {
- "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==",
- "dependencies": {
- "resolve-pkg-maps": "resolve-pkg-maps@1.0.0"
- }
- },
- "git-raw-commits@4.0.0": {
- "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==",
- "dependencies": {
- "dargs": "dargs@8.1.0",
- "meow": "meow@12.1.1",
- "split2": "split2@4.2.0"
- }
- },
- "git-semver-tags@7.0.1": {
- "integrity": "sha512-NY0ZHjJzyyNXHTDZmj+GG7PyuAKtMsyWSwh07CR2hOZFa+/yoTsXci/nF2obzL8UDhakFNkD9gNdt/Ed+cxh2Q==",
- "dependencies": {
- "meow": "meow@12.1.1",
- "semver": "semver@7.6.2"
- }
- },
- "glob-parent@5.1.2": {
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dependencies": {
- "is-glob": "is-glob@4.0.3"
- }
- },
- "glob@10.4.5": {
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "dependencies": {
- "foreground-child": "foreground-child@3.2.1",
- "jackspeak": "jackspeak@3.4.3",
- "minimatch": "minimatch@9.0.5",
- "minipass": "minipass@7.1.2",
- "package-json-from-dist": "package-json-from-dist@1.0.0",
- "path-scurry": "path-scurry@1.11.1"
- }
- },
- "glob@11.0.0": {
- "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==",
- "dependencies": {
- "foreground-child": "foreground-child@3.2.1",
- "jackspeak": "jackspeak@4.0.1",
- "minimatch": "minimatch@10.0.1",
- "minipass": "minipass@7.1.2",
- "package-json-from-dist": "package-json-from-dist@1.0.0",
- "path-scurry": "path-scurry@2.0.0"
- }
- },
- "globby@11.1.0": {
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "dependencies": {
- "array-union": "array-union@2.1.0",
- "dir-glob": "dir-glob@3.0.1",
- "fast-glob": "fast-glob@3.3.2",
- "ignore": "ignore@5.3.1",
- "merge2": "merge2@1.4.1",
- "slash": "slash@3.0.0"
- }
- },
- "gopd@1.0.1": {
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
- "dependencies": {
- "get-intrinsic": "get-intrinsic@1.2.4"
- }
- },
- "handlebars@4.7.8": {
- "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
- "dependencies": {
- "minimist": "minimist@1.2.8",
- "neo-async": "neo-async@2.6.2",
- "source-map": "source-map@0.6.1",
- "uglify-js": "uglify-js@3.18.0",
- "wordwrap": "wordwrap@1.0.0"
- }
- },
- "has-flag@3.0.0": {
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dependencies": {}
- },
- "has-flag@4.0.0": {
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dependencies": {}
- },
- "has-property-descriptors@1.0.2": {
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
- "dependencies": {
- "es-define-property": "es-define-property@1.0.0"
- }
- },
- "has-proto@1.0.3": {
- "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
- "dependencies": {}
- },
- "has-symbols@1.0.3": {
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "dependencies": {}
- },
- "hasown@2.0.2": {
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "dependencies": {
- "function-bind": "function-bind@1.1.2"
- }
- },
- "helmet@7.1.0": {
- "integrity": "sha512-g+HZqgfbpXdCkme/Cd/mZkV0aV3BZZZSugecH03kl38m/Kmdx8jKjBikpDj2cr+Iynv4KpYEviojNdTJActJAg==",
- "dependencies": {}
- },
- "hosted-git-info@7.0.2": {
- "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
- "dependencies": {
- "lru-cache": "lru-cache@10.4.3"
- }
- },
- "http-errors@2.0.0": {
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dependencies": {
- "depd": "depd@2.0.0",
- "inherits": "inherits@2.0.4",
- "setprototypeof": "setprototypeof@1.2.0",
- "statuses": "statuses@2.0.1",
- "toidentifier": "toidentifier@1.0.1"
- }
- },
- "human-signals@2.1.0": {
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dependencies": {}
- },
- "human-signals@5.0.0": {
- "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
- "dependencies": {}
- },
- "iconv-lite@0.4.24": {
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": "safer-buffer@2.1.2"
- }
- },
- "ignore@5.3.1": {
- "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
- "dependencies": {}
- },
- "inherits@2.0.4": {
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dependencies": {}
- },
- "ipaddr.js@1.9.1": {
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "dependencies": {}
- },
- "is-arrayish@0.2.1": {
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dependencies": {}
- },
- "is-binary-path@2.1.0": {
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dependencies": {
- "binary-extensions": "binary-extensions@2.3.0"
- }
- },
- "is-extglob@2.1.1": {
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dependencies": {}
- },
- "is-fullwidth-code-point@3.0.0": {
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dependencies": {}
- },
- "is-glob@4.0.3": {
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dependencies": {
- "is-extglob": "is-extglob@2.1.1"
- }
- },
- "is-number@7.0.0": {
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dependencies": {}
- },
- "is-obj@2.0.0": {
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
- "dependencies": {}
- },
- "is-stream@2.0.1": {
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dependencies": {}
- },
- "is-stream@3.0.0": {
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
- "dependencies": {}
- },
- "is-text-path@2.0.0": {
- "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==",
- "dependencies": {
- "text-extensions": "text-extensions@2.4.0"
- }
- },
- "isexe@2.0.0": {
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dependencies": {}
- },
- "jackspeak@3.4.3": {
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "dependencies": {
- "@isaacs/cliui": "@isaacs/cliui@8.0.2",
- "@pkgjs/parseargs": "@pkgjs/parseargs@0.11.0"
- }
- },
- "jackspeak@4.0.1": {
- "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==",
- "dependencies": {
- "@isaacs/cliui": "@isaacs/cliui@8.0.2",
- "@pkgjs/parseargs": "@pkgjs/parseargs@0.11.0"
- }
- },
- "joycon@3.1.1": {
- "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==",
- "dependencies": {}
- },
- "js-tokens@4.0.0": {
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dependencies": {}
- },
- "json-parse-even-better-errors@3.0.2": {
- "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
- "dependencies": {}
- },
- "json-stringify-safe@5.0.1": {
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
- "dependencies": {}
- },
- "jsonparse@1.3.1": {
- "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
- "dependencies": {}
- },
- "lilconfig@3.1.2": {
- "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
- "dependencies": {}
- },
- "lines-and-columns@1.2.4": {
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dependencies": {}
- },
- "lines-and-columns@2.0.4": {
- "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==",
- "dependencies": {}
- },
- "load-tsconfig@0.2.5": {
- "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==",
- "dependencies": {}
- },
- "locate-path@7.2.0": {
- "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
- "dependencies": {
- "p-locate": "p-locate@6.0.0"
- }
- },
- "lodash.sortby@4.7.0": {
- "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==",
- "dependencies": {}
- },
- "loupe@3.1.1": {
- "integrity": "sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==",
- "dependencies": {
- "get-func-name": "get-func-name@2.0.2"
- }
- },
- "lru-cache@10.4.3": {
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dependencies": {}
- },
- "lru-cache@11.0.0": {
- "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==",
- "dependencies": {}
- },
- "magic-string@0.30.10": {
- "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "@jridgewell/sourcemap-codec@1.5.0"
- }
- },
- "media-typer@0.3.0": {
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "dependencies": {}
- },
- "meow@12.1.1": {
- "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
- "dependencies": {}
- },
- "merge-descriptors@1.0.1": {
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
- "dependencies": {}
- },
- "merge-stream@2.0.0": {
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dependencies": {}
- },
- "merge2@1.4.1": {
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dependencies": {}
- },
- "methods@1.1.2": {
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "dependencies": {}
- },
- "micromatch@4.0.7": {
- "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
- "dependencies": {
- "braces": "braces@3.0.3",
- "picomatch": "picomatch@2.3.1"
- }
- },
- "mime-db@1.52.0": {
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dependencies": {}
- },
- "mime-types@2.1.35": {
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "mime-db@1.52.0"
- }
- },
- "mime@1.6.0": {
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "dependencies": {}
- },
- "mimic-fn@2.1.0": {
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dependencies": {}
- },
- "mimic-fn@4.0.0": {
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
- "dependencies": {}
- },
- "minimatch@10.0.1": {
- "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==",
- "dependencies": {
- "brace-expansion": "brace-expansion@2.0.1"
- }
- },
- "minimatch@9.0.5": {
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dependencies": {
- "brace-expansion": "brace-expansion@2.0.1"
- }
- },
- "minimist@1.2.8": {
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "dependencies": {}
- },
- "minipass@7.1.2": {
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "dependencies": {}
- },
- "mri@1.2.0": {
- "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
- "dependencies": {}
- },
- "ms@2.0.0": {
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dependencies": {}
- },
- "ms@2.1.2": {
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dependencies": {}
- },
- "ms@2.1.3": {
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dependencies": {}
- },
- "mz@2.7.0": {
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "dependencies": {
- "any-promise": "any-promise@1.3.0",
- "object-assign": "object-assign@4.1.1",
- "thenify-all": "thenify-all@1.6.0"
- }
- },
- "nanoid@3.3.7": {
- "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
- "dependencies": {}
- },
- "negotiator@0.6.3": {
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "dependencies": {}
- },
- "neo-async@2.6.2": {
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dependencies": {}
- },
- "normalize-package-data@6.0.2": {
- "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
- "dependencies": {
- "hosted-git-info": "hosted-git-info@7.0.2",
- "semver": "semver@7.6.2",
- "validate-npm-package-license": "validate-npm-package-license@3.0.4"
- }
- },
- "normalize-path@3.0.0": {
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dependencies": {}
- },
- "npm-run-path@4.0.1": {
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dependencies": {
- "path-key": "path-key@3.1.1"
- }
- },
- "npm-run-path@5.3.0": {
- "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
- "dependencies": {
- "path-key": "path-key@4.0.0"
- }
- },
- "object-assign@4.1.1": {
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dependencies": {}
- },
- "object-inspect@1.13.2": {
- "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
- "dependencies": {}
- },
- "on-finished@2.4.1": {
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dependencies": {
- "ee-first": "ee-first@1.1.1"
- }
- },
- "onetime@5.1.2": {
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dependencies": {
- "mimic-fn": "mimic-fn@2.1.0"
- }
- },
- "onetime@6.0.0": {
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
- "dependencies": {
- "mimic-fn": "mimic-fn@4.0.0"
- }
- },
- "p-limit@4.0.0": {
- "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
- "dependencies": {
- "yocto-queue": "yocto-queue@1.1.1"
- }
- },
- "p-locate@6.0.0": {
- "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
- "dependencies": {
- "p-limit": "p-limit@4.0.0"
- }
- },
- "package-json-from-dist@1.0.0": {
- "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==",
- "dependencies": {}
- },
- "parse-json@7.1.1": {
- "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==",
- "dependencies": {
- "@babel/code-frame": "@babel/code-frame@7.24.7",
- "error-ex": "error-ex@1.3.2",
- "json-parse-even-better-errors": "json-parse-even-better-errors@3.0.2",
- "lines-and-columns": "lines-and-columns@2.0.4",
- "type-fest": "type-fest@3.13.1"
- }
- },
- "parseurl@1.3.3": {
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "dependencies": {}
- },
- "path-exists@5.0.0": {
- "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
- "dependencies": {}
- },
- "path-key@3.1.1": {
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dependencies": {}
- },
- "path-key@4.0.0": {
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
- "dependencies": {}
- },
- "path-scurry@1.11.1": {
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
- "dependencies": {
- "lru-cache": "lru-cache@10.4.3",
- "minipass": "minipass@7.1.2"
- }
- },
- "path-scurry@2.0.0": {
- "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==",
- "dependencies": {
- "lru-cache": "lru-cache@11.0.0",
- "minipass": "minipass@7.1.2"
- }
- },
- "path-to-regexp@0.1.7": {
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
- "dependencies": {}
- },
- "path-type@4.0.0": {
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dependencies": {}
- },
- "pathe@1.1.2": {
- "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
- "dependencies": {}
- },
- "pathval@2.0.0": {
- "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
- "dependencies": {}
- },
- "picocolors@1.0.1": {
- "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
- "dependencies": {}
- },
- "picomatch@2.3.1": {
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dependencies": {}
- },
- "pirates@4.0.6": {
- "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
- "dependencies": {}
- },
- "postcss-load-config@4.0.2": {
- "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
- "dependencies": {
- "lilconfig": "lilconfig@3.1.2",
- "yaml": "yaml@2.4.5"
- }
- },
- "postcss@8.4.39": {
- "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==",
- "dependencies": {
- "nanoid": "nanoid@3.3.7",
- "picocolors": "picocolors@1.0.1",
- "source-map-js": "source-map-js@1.2.0"
- }
- },
- "proxy-addr@2.0.7": {
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dependencies": {
- "forwarded": "forwarded@0.2.0",
- "ipaddr.js": "ipaddr.js@1.9.1"
- }
- },
- "punycode@2.3.1": {
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "dependencies": {}
- },
- "qs@6.11.0": {
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dependencies": {
- "side-channel": "side-channel@1.0.6"
- }
- },
- "queue-microtask@1.2.3": {
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dependencies": {}
- },
- "range-parser@1.2.1": {
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "dependencies": {}
- },
- "raw-body@2.5.2": {
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
- "dependencies": {
- "bytes": "bytes@3.1.2",
- "http-errors": "http-errors@2.0.0",
- "iconv-lite": "iconv-lite@0.4.24",
- "unpipe": "unpipe@1.0.0"
- }
- },
- "read-pkg-up@10.1.0": {
- "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==",
- "dependencies": {
- "find-up": "find-up@6.3.0",
- "read-pkg": "read-pkg@8.1.0",
- "type-fest": "type-fest@4.21.0"
- }
- },
- "read-pkg@8.1.0": {
- "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==",
- "dependencies": {
- "@types/normalize-package-data": "@types/normalize-package-data@2.4.4",
- "normalize-package-data": "normalize-package-data@6.0.2",
- "parse-json": "parse-json@7.1.1",
- "type-fest": "type-fest@4.21.0"
- }
- },
- "readdirp@3.6.0": {
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dependencies": {
- "picomatch": "picomatch@2.3.1"
- }
- },
- "resolve-from@5.0.0": {
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dependencies": {}
- },
- "resolve-pkg-maps@1.0.0": {
- "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
- "dependencies": {}
- },
- "reusify@1.0.4": {
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dependencies": {}
- },
- "rimraf@6.0.1": {
- "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==",
- "dependencies": {
- "glob": "glob@11.0.0",
- "package-json-from-dist": "package-json-from-dist@1.0.0"
- }
- },
- "rollup@4.18.1": {
- "integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==",
- "dependencies": {
- "@rollup/rollup-android-arm-eabi": "@rollup/rollup-android-arm-eabi@4.18.1",
- "@rollup/rollup-android-arm64": "@rollup/rollup-android-arm64@4.18.1",
- "@rollup/rollup-darwin-arm64": "@rollup/rollup-darwin-arm64@4.18.1",
- "@rollup/rollup-darwin-x64": "@rollup/rollup-darwin-x64@4.18.1",
- "@rollup/rollup-linux-arm-gnueabihf": "@rollup/rollup-linux-arm-gnueabihf@4.18.1",
- "@rollup/rollup-linux-arm-musleabihf": "@rollup/rollup-linux-arm-musleabihf@4.18.1",
- "@rollup/rollup-linux-arm64-gnu": "@rollup/rollup-linux-arm64-gnu@4.18.1",
- "@rollup/rollup-linux-arm64-musl": "@rollup/rollup-linux-arm64-musl@4.18.1",
- "@rollup/rollup-linux-powerpc64le-gnu": "@rollup/rollup-linux-powerpc64le-gnu@4.18.1",
- "@rollup/rollup-linux-riscv64-gnu": "@rollup/rollup-linux-riscv64-gnu@4.18.1",
- "@rollup/rollup-linux-s390x-gnu": "@rollup/rollup-linux-s390x-gnu@4.18.1",
- "@rollup/rollup-linux-x64-gnu": "@rollup/rollup-linux-x64-gnu@4.18.1",
- "@rollup/rollup-linux-x64-musl": "@rollup/rollup-linux-x64-musl@4.18.1",
- "@rollup/rollup-win32-arm64-msvc": "@rollup/rollup-win32-arm64-msvc@4.18.1",
- "@rollup/rollup-win32-ia32-msvc": "@rollup/rollup-win32-ia32-msvc@4.18.1",
- "@rollup/rollup-win32-x64-msvc": "@rollup/rollup-win32-x64-msvc@4.18.1",
- "@types/estree": "@types/estree@1.0.5",
- "fsevents": "fsevents@2.3.3"
- }
- },
- "run-parallel@1.2.0": {
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dependencies": {
- "queue-microtask": "queue-microtask@1.2.3"
- }
- },
- "safe-buffer@5.2.1": {
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dependencies": {}
- },
- "safer-buffer@2.1.2": {
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dependencies": {}
- },
- "semver@7.6.2": {
- "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
- "dependencies": {}
- },
- "send@0.18.0": {
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "dependencies": {
- "debug": "debug@2.6.9",
- "depd": "depd@2.0.0",
- "destroy": "destroy@1.2.0",
- "encodeurl": "encodeurl@1.0.2",
- "escape-html": "escape-html@1.0.3",
- "etag": "etag@1.8.1",
- "fresh": "fresh@0.5.2",
- "http-errors": "http-errors@2.0.0",
- "mime": "mime@1.6.0",
- "ms": "ms@2.1.3",
- "on-finished": "on-finished@2.4.1",
- "range-parser": "range-parser@1.2.1",
- "statuses": "statuses@2.0.1"
- }
- },
- "serve-static@1.15.0": {
- "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
- "dependencies": {
- "encodeurl": "encodeurl@1.0.2",
- "escape-html": "escape-html@1.0.3",
- "parseurl": "parseurl@1.3.3",
- "send": "send@0.18.0"
- }
- },
- "set-function-length@1.2.2": {
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
- "dependencies": {
- "define-data-property": "define-data-property@1.1.4",
- "es-errors": "es-errors@1.3.0",
- "function-bind": "function-bind@1.1.2",
- "get-intrinsic": "get-intrinsic@1.2.4",
- "gopd": "gopd@1.0.1",
- "has-property-descriptors": "has-property-descriptors@1.0.2"
- }
- },
- "setprototypeof@1.2.0": {
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
- "dependencies": {}
- },
- "shebang-command@2.0.0": {
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dependencies": {
- "shebang-regex": "shebang-regex@3.0.0"
- }
- },
- "shebang-regex@3.0.0": {
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dependencies": {}
- },
- "side-channel@1.0.6": {
- "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
- "dependencies": {
- "call-bind": "call-bind@1.0.7",
- "es-errors": "es-errors@1.3.0",
- "get-intrinsic": "get-intrinsic@1.2.4",
- "object-inspect": "object-inspect@1.13.2"
- }
- },
- "siginfo@2.0.0": {
- "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
- "dependencies": {}
- },
- "signal-exit@3.0.7": {
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dependencies": {}
- },
- "signal-exit@4.1.0": {
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dependencies": {}
- },
- "slash@3.0.0": {
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dependencies": {}
- },
- "source-map-js@1.2.0": {
- "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
- "dependencies": {}
- },
- "source-map@0.6.1": {
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dependencies": {}
- },
- "source-map@0.8.0-beta.0": {
- "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
- "dependencies": {
- "whatwg-url": "whatwg-url@7.1.0"
- }
- },
- "spdx-correct@3.2.0": {
- "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
- "dependencies": {
- "spdx-expression-parse": "spdx-expression-parse@3.0.1",
- "spdx-license-ids": "spdx-license-ids@3.0.18"
- }
- },
- "spdx-exceptions@2.5.0": {
- "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
- "dependencies": {}
- },
- "spdx-expression-parse@3.0.1": {
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dependencies": {
- "spdx-exceptions": "spdx-exceptions@2.5.0",
- "spdx-license-ids": "spdx-license-ids@3.0.18"
- }
- },
- "spdx-license-ids@3.0.18": {
- "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==",
- "dependencies": {}
- },
- "split2@4.2.0": {
- "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
- "dependencies": {}
- },
- "stackback@0.0.2": {
- "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
- "dependencies": {}
- },
- "statuses@2.0.1": {
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dependencies": {}
- },
- "std-env@3.7.0": {
- "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==",
- "dependencies": {}
- },
- "string-width@4.2.3": {
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dependencies": {
- "emoji-regex": "emoji-regex@8.0.0",
- "is-fullwidth-code-point": "is-fullwidth-code-point@3.0.0",
- "strip-ansi": "strip-ansi@6.0.1"
- }
- },
- "string-width@5.1.2": {
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dependencies": {
- "eastasianwidth": "eastasianwidth@0.2.0",
- "emoji-regex": "emoji-regex@9.2.2",
- "strip-ansi": "strip-ansi@7.1.0"
- }
- },
- "strip-ansi@6.0.1": {
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dependencies": {
- "ansi-regex": "ansi-regex@5.0.1"
- }
- },
- "strip-ansi@7.1.0": {
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dependencies": {
- "ansi-regex": "ansi-regex@6.0.1"
- }
- },
- "strip-final-newline@2.0.0": {
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dependencies": {}
- },
- "strip-final-newline@3.0.0": {
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
- "dependencies": {}
- },
- "sucrase@3.35.0": {
- "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
- "dependencies": {
- "@jridgewell/gen-mapping": "@jridgewell/gen-mapping@0.3.5",
- "commander": "commander@4.1.1",
- "glob": "glob@10.4.5",
- "lines-and-columns": "lines-and-columns@1.2.4",
- "mz": "mz@2.7.0",
- "pirates": "pirates@4.0.6",
- "ts-interface-checker": "ts-interface-checker@0.1.13"
- }
- },
- "supports-color@5.5.0": {
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dependencies": {
- "has-flag": "has-flag@3.0.0"
- }
- },
- "supports-color@7.2.0": {
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "has-flag@4.0.0"
- }
- },
- "text-extensions@2.4.0": {
- "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==",
- "dependencies": {}
- },
- "thenify-all@1.6.0": {
- "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
- "dependencies": {
- "thenify": "thenify@3.3.1"
- }
- },
- "thenify@3.3.1": {
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "dependencies": {
- "any-promise": "any-promise@1.3.0"
- }
- },
- "through@2.3.8": {
- "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
- "dependencies": {}
- },
- "tinybench@2.8.0": {
- "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==",
- "dependencies": {}
- },
- "tinypool@1.0.0": {
- "integrity": "sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==",
- "dependencies": {}
- },
- "tinyrainbow@1.2.0": {
- "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==",
- "dependencies": {}
- },
- "tinyspy@3.0.0": {
- "integrity": "sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==",
- "dependencies": {}
- },
- "to-regex-range@5.0.1": {
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dependencies": {
- "is-number": "is-number@7.0.0"
- }
- },
- "toidentifier@1.0.1": {
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "dependencies": {}
- },
- "tr46@1.0.1": {
- "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
- "dependencies": {
- "punycode": "punycode@2.3.1"
- }
- },
- "tree-kill@1.2.2": {
- "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
- "dependencies": {}
- },
- "ts-interface-checker@0.1.13": {
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "dependencies": {}
- },
- "tsup@8.1.0_typescript@5.5.3_esbuild@0.21.5": {
- "integrity": "sha512-UFdfCAXukax+U6KzeTNO2kAARHcWxmKsnvSPXUcfA1D+kU05XDccCrkffCQpFaWDsZfV0jMyTsxU39VfCp6EOg==",
- "dependencies": {
- "bundle-require": "bundle-require@4.2.1_esbuild@0.21.5",
- "cac": "cac@6.7.14",
- "chokidar": "chokidar@3.6.0",
- "debug": "debug@4.3.5",
- "esbuild": "esbuild@0.21.5",
- "execa": "execa@5.1.1",
- "globby": "globby@11.1.0",
- "joycon": "joycon@3.1.1",
- "postcss-load-config": "postcss-load-config@4.0.2",
- "resolve-from": "resolve-from@5.0.0",
- "rollup": "rollup@4.18.1",
- "source-map": "source-map@0.8.0-beta.0",
- "sucrase": "sucrase@3.35.0",
- "tree-kill": "tree-kill@1.2.2",
- "typescript": "typescript@5.5.3"
- }
- },
- "tsx@4.16.2": {
- "integrity": "sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==",
- "dependencies": {
- "esbuild": "esbuild@0.21.5",
- "fsevents": "fsevents@2.3.3",
- "get-tsconfig": "get-tsconfig@4.7.5"
- }
- },
- "type-fest@3.13.1": {
- "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
- "dependencies": {}
- },
- "type-fest@4.21.0": {
- "integrity": "sha512-ADn2w7hVPcK6w1I0uWnM//y1rLXZhzB9mr0a3OirzclKF1Wp6VzevUmzz/NRAWunOT6E8HrnpGY7xOfc6K57fA==",
- "dependencies": {}
- },
- "type-is@1.6.18": {
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dependencies": {
- "media-typer": "media-typer@0.3.0",
- "mime-types": "mime-types@2.1.35"
- }
- },
- "typescript@5.5.3": {
- "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==",
- "dependencies": {}
- },
- "uglify-js@3.18.0": {
- "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==",
- "dependencies": {}
- },
- "undici-types@5.26.5": {
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
- "dependencies": {}
- },
- "unpipe@1.0.0": {
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "dependencies": {}
- },
- "utils-merge@1.0.1": {
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "dependencies": {}
- },
- "validate-npm-package-license@3.0.4": {
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dependencies": {
- "spdx-correct": "spdx-correct@3.2.0",
- "spdx-expression-parse": "spdx-expression-parse@3.0.1"
- }
- },
- "vary@1.1.2": {
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "dependencies": {}
- },
- "vite-node@2.0.2_@types+node@20.14.10": {
- "integrity": "sha512-w4vkSz1Wo+NIQg8pjlEn0jQbcM/0D+xVaYjhw3cvarTanLLBh54oNiRbsT8PNK5GfuST0IlVXjsNRoNlqvY/fw==",
- "dependencies": {
- "cac": "cac@6.7.14",
- "debug": "debug@4.3.5",
- "pathe": "pathe@1.1.2",
- "tinyrainbow": "tinyrainbow@1.2.0",
- "vite": "vite@5.3.3_@types+node@20.14.10"
- }
- },
- "vite@5.3.3_@types+node@20.14.10": {
- "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==",
- "dependencies": {
- "@types/node": "@types/node@20.14.10",
- "esbuild": "esbuild@0.21.5",
- "fsevents": "fsevents@2.3.3",
- "postcss": "postcss@8.4.39",
- "rollup": "rollup@4.18.1"
- }
- },
- "vitest@2.0.2_@types+node@20.14.10": {
- "integrity": "sha512-WlpZ9neRIjNBIOQwBYfBSr0+of5ZCbxT2TVGKW4Lv0c8+srCFIiRdsP7U009t8mMn821HQ4XKgkx5dVWpyoyLw==",
- "dependencies": {
- "@ampproject/remapping": "@ampproject/remapping@2.3.0",
- "@types/node": "@types/node@20.14.10",
- "@vitest/expect": "@vitest/expect@2.0.2",
- "@vitest/pretty-format": "@vitest/pretty-format@2.0.2",
- "@vitest/runner": "@vitest/runner@2.0.2",
- "@vitest/snapshot": "@vitest/snapshot@2.0.2",
- "@vitest/spy": "@vitest/spy@2.0.2",
- "@vitest/utils": "@vitest/utils@2.0.2",
- "chai": "chai@5.1.1",
- "debug": "debug@4.3.5",
- "execa": "execa@8.0.1",
- "magic-string": "magic-string@0.30.10",
- "pathe": "pathe@1.1.2",
- "std-env": "std-env@3.7.0",
- "tinybench": "tinybench@2.8.0",
- "tinypool": "tinypool@1.0.0",
- "tinyrainbow": "tinyrainbow@1.2.0",
- "vite": "vite@5.3.3_@types+node@20.14.10",
- "vite-node": "vite-node@2.0.2_@types+node@20.14.10",
- "why-is-node-running": "why-is-node-running@2.3.0"
- }
- },
- "wait-port@1.1.0": {
- "integrity": "sha512-3e04qkoN3LxTMLakdqeWth8nih8usyg+sf1Bgdf9wwUkp05iuK1eSY/QpLvscT/+F/gA89+LpUmmgBtesbqI2Q==",
- "dependencies": {
- "chalk": "chalk@4.1.2",
- "commander": "commander@9.5.0",
- "debug": "debug@4.3.5"
- }
- },
- "webidl-conversions@4.0.2": {
- "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
- "dependencies": {}
- },
- "whatwg-url@7.1.0": {
- "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
- "dependencies": {
- "lodash.sortby": "lodash.sortby@4.7.0",
- "tr46": "tr46@1.0.1",
- "webidl-conversions": "webidl-conversions@4.0.2"
- }
- },
- "which@2.0.2": {
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dependencies": {
- "isexe": "isexe@2.0.0"
- }
- },
- "why-is-node-running@2.3.0": {
- "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
- "dependencies": {
- "siginfo": "siginfo@2.0.0",
- "stackback": "stackback@0.0.2"
- }
- },
- "wordwrap@1.0.0": {
- "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
- "dependencies": {}
- },
- "wrap-ansi@7.0.0": {
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dependencies": {
- "ansi-styles": "ansi-styles@4.3.0",
- "string-width": "string-width@4.2.3",
- "strip-ansi": "strip-ansi@6.0.1"
- }
- },
- "wrap-ansi@8.1.0": {
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "dependencies": {
- "ansi-styles": "ansi-styles@6.2.1",
- "string-width": "string-width@5.1.2",
- "strip-ansi": "strip-ansi@7.1.0"
- }
- },
- "yaml@2.4.5": {
- "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==",
- "dependencies": {}
- },
- "yocto-queue@1.1.1": {
- "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==",
- "dependencies": {}
- },
- "zx@8.1.4": {
- "integrity": "sha512-QFDYYpnzdpRiJ3dL2102Cw26FpXpWshW4QLTGxiYfIcwdAqg084jRCkK/kuP/NOSkxOjydRwNFG81qzA5r1a6w==",
- "dependencies": {
- "@types/fs-extra": "@types/fs-extra@11.0.4",
- "@types/node": "@types/node@20.14.10"
- }
- }
- }
- },
- "remote": {},
- "workspace": {
- "dependencies": [
- "npm:mri",
- "npm:wait-port",
- "npm:zx"
- ],
- "packageJson": {
- "dependencies": [
- "npm:@brillout/release-me@^0.3.9",
- "npm:@types/node@^20.14.10",
- "npm:@universal-middleware/core@^0.1.1",
- "npm:express@^4.19.2",
- "npm:helmet@^7.1.0",
- "npm:rimraf@^6.0.0",
- "npm:tsup@^8.1.0",
- "npm:tsx@^4.16.2",
- "npm:typescript@^5.5.3",
- "npm:vitest@^2.0.2"
- ]
- }
- }
-}
diff --git a/packages/adapter-express/package.json b/packages/adapter-express/package.json
index 8cba4b3..b0068e2 100644
--- a/packages/adapter-express/package.json
+++ b/packages/adapter-express/package.json
@@ -22,7 +22,7 @@
"test": "vitest run",
"test:run-express:node": "tsx tests/entry-express.ts",
"test:run-express:bun": "bun tests/entry-express.ts",
- "test:run-express:deno": "deno run --unstable-sloppy-imports -A tests/entry-express.ts",
+ "test:run-express:deno": "deno run --unstable-byonm --unstable-sloppy-imports -A tests/entry-express.ts",
"test:typecheck": "tsc -p tsconfig.json --noEmit",
"release": "LANG=en_US release-me patch",
"release:minor": "LANG=en_US release-me minor",
@@ -32,15 +32,17 @@
"@universal-middleware/core": "^0.1.1"
},
"devDependencies": {
- "@brillout/release-me": "^0.3.9",
+ "@brillout/release-me": "^0.4.0",
+ "@swc/core": "^1.7.11",
"@types/node": "^20.14.10",
"@universal-middleware/tests": "workspace:*",
"express": "^4.19.2",
"helmet": "^7.1.0",
"rimraf": "^6.0.0",
- "tsup": "^8.1.0",
- "tsx": "^4.16.2",
- "typescript": "^5.5.3",
- "vitest": "^2.0.2"
- }
+ "tsup": "^8.2.4",
+ "tsx": "^4.17.0",
+ "typescript": "^5.5.4",
+ "vitest": "^2.0.5"
+ },
+ "sideEffects": false
}
diff --git a/packages/adapter-express/src/common.ts b/packages/adapter-express/src/common.ts
index 3360910..9b053b1 100644
--- a/packages/adapter-express/src/common.ts
+++ b/packages/adapter-express/src/common.ts
@@ -7,9 +7,11 @@ import {
import { sendResponse, wrapResponse } from "./response.js";
import type {
Awaitable,
+ Get,
UniversalHandler,
UniversalMiddleware,
} from "@universal-middleware/core";
+import { getAdapterRuntime } from "@universal-middleware/core";
export const contextSymbol = Symbol("unContext");
export const requestSymbol = Symbol("unRequest");
@@ -41,12 +43,14 @@ export interface PossiblyEncryptedSocket extends Socket {
* `IncomingMessage` possibly augmented by Express-specific
* `ip` and `protocol` properties.
*/
-export interface DecoratedRequest extends Omit {
+export interface DecoratedRequest<
+ C extends Universal.Context = Universal.Context,
+> extends Omit {
ip?: string;
protocol?: string;
socket?: PossiblyEncryptedSocket;
rawBody?: Buffer | null;
- [contextSymbol]?: Universal.Context;
+ [contextSymbol]?: C;
[requestSymbol]?: Request;
}
@@ -56,12 +60,15 @@ export interface DecoratedServerResponse extends ServerResponse {
}
/** Connect/Express style request listener/middleware */
-export type NodeMiddleware = (
- req: DecoratedRequest,
+export type NodeMiddleware = (
+ req: DecoratedRequest,
res: DecoratedServerResponse,
next?: (err?: unknown) => void,
) => void;
+export type NodeHandler =
+ NodeMiddleware;
+
/** Adapter options */
export interface NodeAdapterHandlerOptions extends NodeRequestAdapterOptions {}
export interface NodeAdapterMiddlewareOptions
@@ -71,88 +78,117 @@ export interface NodeAdapterMiddlewareOptions
* Creates a request handler to be passed to http.createServer() or used as a
* middleware in Connect-style frameworks like Express.
*/
-export function createHandler(
- handler: UniversalHandler,
+export function createHandler(
+ handlerFactory: Get,
options: NodeAdapterHandlerOptions = {},
-): NodeMiddleware {
+): Get {
const requestAdapter = createRequestAdapter(options);
- return async (req, res, next) => {
- try {
- req[contextSymbol] ??= {};
- const request = requestAdapter(req);
- const response = await handler(request, req[contextSymbol]);
-
- await sendResponse(response, res);
- } catch (error) {
- if (next) {
- next(error);
- } else {
- console.error(error);
-
- if (!res.headersSent) {
- res.statusCode = 500;
- }
+ return (...args) => {
+ const handler = handlerFactory(...args);
+
+ return async (req, res, next) => {
+ try {
+ req[contextSymbol] ??= {};
+ const request = requestAdapter(req);
+ const response = await handler(
+ request,
+ req[contextSymbol],
+ getAdapterRuntime("node", {
+ req: req as IncomingMessage,
+ res,
+ }),
+ );
- if (!res.writableEnded) {
- res.end();
+ await sendResponse(response, res);
+ } catch (error) {
+ if (next) {
+ next(error);
+ } else {
+ console.error(error);
+
+ if (!res.headersSent) {
+ res.statusCode = 500;
+ }
+
+ if (!res.writableEnded) {
+ res.end();
+ }
}
}
- }
+ };
};
}
/**
* Creates a middleware to be passed to Connect-style frameworks like Express
*/
-export function createMiddleware(
- middleware: UniversalMiddleware,
+export function createMiddleware<
+ T extends unknown[],
+ InContext extends Universal.Context,
+ OutContext extends Universal.Context,
+>(
+ middlewareFactory: Get>,
options: NodeAdapterMiddlewareOptions = {},
-): NodeMiddleware {
+): Get> {
const requestAdapter = createRequestAdapter(options);
- return async (req, res, next) => {
- try {
- req[contextSymbol] ??= {};
- const request = requestAdapter(req);
- const response = await middleware(request, req[contextSymbol]);
-
- if (!response) {
- return next?.();
- } else if (typeof response === "function") {
- if (res.headersSent) {
- throw new Error(
- "Universal Middleware called after headers have been sent. Please open an issue at https://github.com/magne4000/universal-handler",
- );
+ return (...args) => {
+ const middleware = middlewareFactory(...args);
+
+ return async (req, res, next) => {
+ try {
+ req[contextSymbol] ??= {} as OutContext;
+ const request = requestAdapter(req);
+ const response = await middleware(
+ request,
+ getContext(req)!,
+ getAdapterRuntime("node", {
+ req: req as IncomingMessage,
+ res,
+ }),
+ );
+
+ if (!response) {
+ return next?.();
+ } else if (typeof response === "function") {
+ if (res.headersSent) {
+ throw new Error(
+ "Universal Middleware called after headers have been sent. Please open an issue at https://github.com/magne4000/universal-handler",
+ );
+ }
+ wrapResponse(res);
+ res[pendingMiddlewaresSymbol] ??= [];
+ // `wrapResponse` takes care of calling those middlewares right before sending the response
+ res[pendingMiddlewaresSymbol].push(response);
+ return next?.();
+ } else if (response instanceof Response) {
+ await sendResponse(response, res);
+ } else {
+ req[contextSymbol] = response;
+ return next?.();
}
- wrapResponse(res);
- res[pendingMiddlewaresSymbol] ??= [];
- // `wrapResponse` takes care of calling those middlewares right before sending the response
- res[pendingMiddlewaresSymbol].push(response);
- return next?.();
- } else {
- await sendResponse(response, res);
- }
- } catch (error) {
- if (next) {
- next(error);
- } else {
- console.error(error);
-
- if (!res.headersSent) {
- res.statusCode = 500;
- }
-
- if (!res.writableEnded) {
- res.end();
+ } catch (error) {
+ if (next) {
+ next(error);
+ } else {
+ console.error(error);
+
+ if (!res.headersSent) {
+ res.statusCode = 500;
+ }
+
+ if (!res.writableEnded) {
+ res.end();
+ }
}
}
- }
+ };
};
}
-export function getContext(
- req: DecoratedRequest,
-): Universal.Context | undefined {
- return req[contextSymbol];
+export function getContext<
+ InContext extends Universal.Context = Universal.Context,
+>(req: DecoratedRequest): InContext | undefined {
+ return req[contextSymbol] as InContext | undefined;
}
diff --git a/packages/adapter-express/src/index.ts b/packages/adapter-express/src/index.ts
index 8c2b5ae..cacf267 100644
--- a/packages/adapter-express/src/index.ts
+++ b/packages/adapter-express/src/index.ts
@@ -1,14 +1,11 @@
-import type { DecoratedRequest, DecoratedServerResponse } from "./common.js";
-
-export type { DecoratedRequest, DecoratedServerResponse };
-
-/** Connect/Express style request listener/middleware */
-export type NodeMiddleware = (
- req: DecoratedRequest,
- res: DecoratedServerResponse,
- next?: () => void,
-) => void;
-
-export { createHandler, createMiddleware, getContext } from "./common.js";
+export {
+ createHandler,
+ createMiddleware,
+ getContext,
+ type DecoratedRequest,
+ type DecoratedServerResponse,
+ type NodeMiddleware,
+ type NodeHandler,
+} from "./common.js";
export { createRequestAdapter } from "./request.js";
export { sendResponse } from "./response.js";
diff --git a/packages/adapter-express/tests/entry-express.ts b/packages/adapter-express/tests/entry-express.ts
index cda175c..65a4bde 100644
--- a/packages/adapter-express/tests/entry-express.ts
+++ b/packages/adapter-express/tests/entry-express.ts
@@ -2,15 +2,18 @@ import { createHandler, createMiddleware } from "../src/index.js";
import express from "express";
import helmet from "helmet";
import { args, handler, middlewares } from "@universal-middleware/tests";
+import type { Get, UniversalMiddleware } from "@universal-middleware/core";
const app = express();
app.use(helmet());
-middlewares.forEach((middleware) => app.use(createMiddleware(middleware)));
+middlewares.forEach((middleware) =>
+ app.use(createMiddleware(middleware as Get<[], UniversalMiddleware>)()),
+);
// universal handler
-app.get("/", createHandler(handler));
+app.get("/", createHandler(handler)());
const port = args.port ? parseInt(args.port) : 3000;
diff --git a/packages/adapter-hattip/deno.json b/packages/adapter-hattip/deno.json
index 7f10135..a38c68a 100644
--- a/packages/adapter-hattip/deno.json
+++ b/packages/adapter-hattip/deno.json
@@ -1,8 +1,10 @@
{
"imports": {
"@universal-middleware/tests": "../tests/dist",
+ "@universal-middleware/core": "../core/dist",
"mri": "npm:mri",
"zx": "npm:zx",
"wait-port": "npm:wait-port"
- }
+ },
+ "lock": false
}
diff --git a/packages/adapter-hattip/deno.lock b/packages/adapter-hattip/deno.lock
deleted file mode 100644
index c94f74a..0000000
--- a/packages/adapter-hattip/deno.lock
+++ /dev/null
@@ -1,1868 +0,0 @@
-{
- "version": "3",
- "packages": {
- "specifiers": {
- "npm:@brillout/release-me@^0.3.9": "npm:@brillout/release-me@0.3.9",
- "npm:@hattip/adapter-bun@^0.0.46": "npm:@hattip/adapter-bun@0.0.46",
- "npm:@hattip/adapter-deno@^0.0.46": "npm:@hattip/adapter-deno@0.0.46",
- "npm:@hattip/adapter-node@^0.0.46": "npm:@hattip/adapter-node@0.0.46",
- "npm:@hattip/compose@^0.0.46": "npm:@hattip/compose@0.0.46",
- "npm:@hattip/core@^0.0.46": "npm:@hattip/core@0.0.46",
- "npm:@hattip/cors@^0.0.46": "npm:@hattip/cors@0.0.46",
- "npm:@hattip/router@^0.0.46": "npm:@hattip/router@0.0.46",
- "npm:@types/node@^20.14.10": "npm:@types/node@20.14.10",
- "npm:@universal-middleware/core@^0.1.1": "npm:@universal-middleware/core@0.1.1",
- "npm:mri": "npm:mri@1.2.0",
- "npm:rimraf@^6.0.0": "npm:rimraf@6.0.1",
- "npm:tsup@^8.1.0": "npm:tsup@8.1.0_typescript@5.5.3_esbuild@0.21.5",
- "npm:tsx@^4.16.2": "npm:tsx@4.16.2",
- "npm:typescript@^5.5.3": "npm:typescript@5.5.3",
- "npm:vitest@^2.0.2": "npm:vitest@2.0.2_@types+node@20.14.10",
- "npm:wait-port": "npm:wait-port@1.1.0",
- "npm:zx": "npm:zx@8.1.4"
- },
- "npm": {
- "@ampproject/remapping@2.3.0": {
- "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
- "dependencies": {
- "@jridgewell/gen-mapping": "@jridgewell/gen-mapping@0.3.5",
- "@jridgewell/trace-mapping": "@jridgewell/trace-mapping@0.3.25"
- }
- },
- "@babel/code-frame@7.24.7": {
- "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
- "dependencies": {
- "@babel/highlight": "@babel/highlight@7.24.7",
- "picocolors": "picocolors@1.0.1"
- }
- },
- "@babel/helper-validator-identifier@7.24.7": {
- "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
- "dependencies": {}
- },
- "@babel/highlight@7.24.7": {
- "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
- "dependencies": {
- "@babel/helper-validator-identifier": "@babel/helper-validator-identifier@7.24.7",
- "chalk": "chalk@2.4.2",
- "js-tokens": "js-tokens@4.0.0",
- "picocolors": "picocolors@1.0.1"
- }
- },
- "@brillout/picocolors@1.0.13": {
- "integrity": "sha512-LblvMKItHbvkaIMI+Awsk1EEjmReE8E8Mgjtj3Pdn/qBvwQ6e+ts5uEqG6iTrK6JWndcxrQgSe664KfoteN6fA==",
- "dependencies": {}
- },
- "@brillout/release-me@0.3.9": {
- "integrity": "sha512-7Q9YD+rnVF9hFmRFNSEePAejYSgZzWABJTA5sFrfD1utREt5K8aokoldvm/WES83SOMIkPO97c2kII9J4snc7Q==",
- "dependencies": {
- "@brillout/picocolors": "@brillout/picocolors@1.0.13",
- "commander": "commander@11.1.0",
- "conventional-changelog": "conventional-changelog@5.1.0",
- "execa": "execa@5.1.1",
- "semver": "semver@7.6.2"
- }
- },
- "@esbuild/aix-ppc64@0.21.5": {
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
- "dependencies": {}
- },
- "@esbuild/android-arm64@0.21.5": {
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
- "dependencies": {}
- },
- "@esbuild/android-arm@0.21.5": {
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
- "dependencies": {}
- },
- "@esbuild/android-x64@0.21.5": {
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
- "dependencies": {}
- },
- "@esbuild/darwin-arm64@0.21.5": {
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
- "dependencies": {}
- },
- "@esbuild/darwin-x64@0.21.5": {
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
- "dependencies": {}
- },
- "@esbuild/freebsd-arm64@0.21.5": {
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
- "dependencies": {}
- },
- "@esbuild/freebsd-x64@0.21.5": {
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
- "dependencies": {}
- },
- "@esbuild/linux-arm64@0.21.5": {
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
- "dependencies": {}
- },
- "@esbuild/linux-arm@0.21.5": {
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
- "dependencies": {}
- },
- "@esbuild/linux-ia32@0.21.5": {
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
- "dependencies": {}
- },
- "@esbuild/linux-loong64@0.21.5": {
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
- "dependencies": {}
- },
- "@esbuild/linux-mips64el@0.21.5": {
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
- "dependencies": {}
- },
- "@esbuild/linux-ppc64@0.21.5": {
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
- "dependencies": {}
- },
- "@esbuild/linux-riscv64@0.21.5": {
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
- "dependencies": {}
- },
- "@esbuild/linux-s390x@0.21.5": {
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
- "dependencies": {}
- },
- "@esbuild/linux-x64@0.21.5": {
- "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
- "dependencies": {}
- },
- "@esbuild/netbsd-x64@0.21.5": {
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
- "dependencies": {}
- },
- "@esbuild/openbsd-x64@0.21.5": {
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
- "dependencies": {}
- },
- "@esbuild/sunos-x64@0.21.5": {
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
- "dependencies": {}
- },
- "@esbuild/win32-arm64@0.21.5": {
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
- "dependencies": {}
- },
- "@esbuild/win32-ia32@0.21.5": {
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
- "dependencies": {}
- },
- "@esbuild/win32-x64@0.21.5": {
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
- "dependencies": {}
- },
- "@hattip/adapter-bun@0.0.46": {
- "integrity": "sha512-7hlKJRO1DfaLHihmIloi9Gb9Qta1MxFCwOV3/rlqn39hd9L7LvJjLRxprVtfGTZcBFu8nJcG4A8H/i5hxqZsmA==",
- "dependencies": {
- "@hattip/core": "@hattip/core@0.0.46",
- "bun-types": "bun-types@1.1.20"
- }
- },
- "@hattip/adapter-deno@0.0.46": {
- "integrity": "sha512-7JL/H5l8jc/JtEa5vzh2KsL2HKu3gp2jzE8+3OGjzTxMs+aOp14dLbt6N4Uy32fHoGXME36I46WTCrM30gq9Dw==",
- "dependencies": {
- "@hattip/core": "@hattip/core@0.0.46"
- }
- },
- "@hattip/adapter-node@0.0.46": {
- "integrity": "sha512-DvG2VH4/116T7x1ibzzeGcoGA940w4G0Gy7XjVOgE6ZXwAOunoXS2zfqTlSxFsdTegDnXpGxI50XVq6cdcwBKA==",
- "dependencies": {
- "@hattip/core": "@hattip/core@0.0.46",
- "@hattip/polyfills": "@hattip/polyfills@0.0.46",
- "@hattip/walk": "@hattip/walk@0.0.46"
- }
- },
- "@hattip/compose@0.0.46": {
- "integrity": "sha512-CZRQ+6CnJWY5tslKGgRnS8kKaEBvkViIz9V49Obk4ieGXK0HlGMU9Cyflktx5Pcb5tVNwbrX0dTRiIDesJ1maA==",
- "dependencies": {
- "@hattip/core": "@hattip/core@0.0.46"
- }
- },
- "@hattip/core@0.0.46": {
- "integrity": "sha512-6pk22hPi9qVc6jyROu89T2yV2IcORTJZUq5OdFDfWmu4ynMP4I2avC+hnCJj6o3vlN1Io7zBbdT5OIPxpBIX7A==",
- "dependencies": {}
- },
- "@hattip/cors@0.0.46": {
- "integrity": "sha512-ldg+HNACfZ4Vud7V1+plmXB/csJIIECTB9O8b08KrLBY5y+L3CB049UIeCz8WVmKvVxjj+H4VZfF+JUoHoWQDQ==",
- "dependencies": {
- "@hattip/compose": "@hattip/compose@0.0.46",
- "@hattip/core": "@hattip/core@0.0.46",
- "@types/cookie": "@types/cookie@0.6.0",
- "cookie": "cookie@0.6.0"
- }
- },
- "@hattip/headers@0.0.46": {
- "integrity": "sha512-kk6hzTjTv0McRgt8bv8IwUOWsphrRQzaUvtXz4w60eQQCO6RHL/wzX6BEh+3eJQFVtmu6yFnh/O6NDnSxSPM7Q==",
- "dependencies": {
- "@hattip/core": "@hattip/core@0.0.46"
- }
- },
- "@hattip/polyfills@0.0.46": {
- "integrity": "sha512-S+0lm8lDZrw5nT9QZwf9+3LukPL6z0kOgMFqW0xkCnJvzZ7NTmn/xc4SsOFD7bYZ4bH/Z4kdi5xw38hLyfMYOw==",
- "dependencies": {
- "@hattip/core": "@hattip/core@0.0.46",
- "@whatwg-node/fetch": "@whatwg-node/fetch@0.9.18",
- "node-fetch-native": "node-fetch-native@1.6.4"
- }
- },
- "@hattip/router@0.0.46": {
- "integrity": "sha512-+cDVNElFOUqCf89aK2qJWck12U+i51JzW1q8KgEJCCCEbni2L6BIWjeJ+Cgxx80Mk27B+In3EdEOdX043qNGbA==",
- "dependencies": {
- "@hattip/compose": "@hattip/compose@0.0.46",
- "@hattip/core": "@hattip/core@0.0.46"
- }
- },
- "@hattip/walk@0.0.46": {
- "integrity": "sha512-LFzLLNgEpf8ulR/ni/5IuQ1c3rTEDj7f9LD6xnMvlIZsYklRDFY6BmfcJTGMICVG3g0tOQjsAL0xkPPPGAv8WQ==",
- "dependencies": {
- "@hattip/headers": "@hattip/headers@0.0.46",
- "cac": "cac@6.7.14",
- "mime-types": "mime-types@2.1.35"
- }
- },
- "@hutson/parse-repository-url@5.0.0": {
- "integrity": "sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==",
- "dependencies": {}
- },
- "@isaacs/cliui@8.0.2": {
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "dependencies": {
- "string-width": "string-width@5.1.2",
- "string-width-cjs": "string-width@4.2.3",
- "strip-ansi": "strip-ansi@7.1.0",
- "strip-ansi-cjs": "strip-ansi@6.0.1",
- "wrap-ansi": "wrap-ansi@8.1.0",
- "wrap-ansi-cjs": "wrap-ansi@7.0.0"
- }
- },
- "@jridgewell/gen-mapping@0.3.5": {
- "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
- "dependencies": {
- "@jridgewell/set-array": "@jridgewell/set-array@1.2.1",
- "@jridgewell/sourcemap-codec": "@jridgewell/sourcemap-codec@1.5.0",
- "@jridgewell/trace-mapping": "@jridgewell/trace-mapping@0.3.25"
- }
- },
- "@jridgewell/resolve-uri@3.1.2": {
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dependencies": {}
- },
- "@jridgewell/set-array@1.2.1": {
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
- "dependencies": {}
- },
- "@jridgewell/sourcemap-codec@1.5.0": {
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
- "dependencies": {}
- },
- "@jridgewell/trace-mapping@0.3.25": {
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
- "dependencies": {
- "@jridgewell/resolve-uri": "@jridgewell/resolve-uri@3.1.2",
- "@jridgewell/sourcemap-codec": "@jridgewell/sourcemap-codec@1.5.0"
- }
- },
- "@kamilkisiela/fast-url-parser@1.1.4": {
- "integrity": "sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==",
- "dependencies": {}
- },
- "@nodelib/fs.scandir@2.1.5": {
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dependencies": {
- "@nodelib/fs.stat": "@nodelib/fs.stat@2.0.5",
- "run-parallel": "run-parallel@1.2.0"
- }
- },
- "@nodelib/fs.stat@2.0.5": {
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dependencies": {}
- },
- "@nodelib/fs.walk@1.2.8": {
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dependencies": {
- "@nodelib/fs.scandir": "@nodelib/fs.scandir@2.1.5",
- "fastq": "fastq@1.17.1"
- }
- },
- "@pkgjs/parseargs@0.11.0": {
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "dependencies": {}
- },
- "@rollup/rollup-android-arm-eabi@4.18.1": {
- "integrity": "sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==",
- "dependencies": {}
- },
- "@rollup/rollup-android-arm64@4.18.1": {
- "integrity": "sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==",
- "dependencies": {}
- },
- "@rollup/rollup-darwin-arm64@4.18.1": {
- "integrity": "sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==",
- "dependencies": {}
- },
- "@rollup/rollup-darwin-x64@4.18.1": {
- "integrity": "sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-arm-gnueabihf@4.18.1": {
- "integrity": "sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-arm-musleabihf@4.18.1": {
- "integrity": "sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-arm64-gnu@4.18.1": {
- "integrity": "sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-arm64-musl@4.18.1": {
- "integrity": "sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-powerpc64le-gnu@4.18.1": {
- "integrity": "sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-riscv64-gnu@4.18.1": {
- "integrity": "sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-s390x-gnu@4.18.1": {
- "integrity": "sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-x64-gnu@4.18.1": {
- "integrity": "sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-x64-musl@4.18.1": {
- "integrity": "sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==",
- "dependencies": {}
- },
- "@rollup/rollup-win32-arm64-msvc@4.18.1": {
- "integrity": "sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==",
- "dependencies": {}
- },
- "@rollup/rollup-win32-ia32-msvc@4.18.1": {
- "integrity": "sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==",
- "dependencies": {}
- },
- "@rollup/rollup-win32-x64-msvc@4.18.1": {
- "integrity": "sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==",
- "dependencies": {}
- },
- "@types/cookie@0.6.0": {
- "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==",
- "dependencies": {}
- },
- "@types/estree@1.0.5": {
- "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
- "dependencies": {}
- },
- "@types/fs-extra@11.0.4": {
- "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==",
- "dependencies": {
- "@types/jsonfile": "@types/jsonfile@6.1.4",
- "@types/node": "@types/node@18.16.19"
- }
- },
- "@types/jsonfile@6.1.4": {
- "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==",
- "dependencies": {
- "@types/node": "@types/node@18.16.19"
- }
- },
- "@types/node@18.16.19": {
- "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==",
- "dependencies": {}
- },
- "@types/node@20.12.14": {
- "integrity": "sha512-scnD59RpYD91xngrQQLGkE+6UrHUPzeKZWhhjBSa3HSkwjbQc38+q3RoIVEwxQGRw3M+j5hpNAM+lgV3cVormg==",
- "dependencies": {
- "undici-types": "undici-types@5.26.5"
- }
- },
- "@types/node@20.14.10": {
- "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==",
- "dependencies": {
- "undici-types": "undici-types@5.26.5"
- }
- },
- "@types/normalize-package-data@2.4.4": {
- "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
- "dependencies": {}
- },
- "@types/ws@8.5.11": {
- "integrity": "sha512-4+q7P5h3SpJxaBft0Dzpbr6lmMaqh0Jr2tbhJZ/luAwvD7ohSCniYkwz/pLxuT2h0EOa6QADgJj1Ko+TzRfZ+w==",
- "dependencies": {
- "@types/node": "@types/node@18.16.19"
- }
- },
- "@universal-middleware/core@0.1.1": {
- "integrity": "sha512-1paKMQ/B/l5NL9j5vR3T7mvk3VqfP3aIuJj0XU5WvlrqZGjde1qFyjEDfw4RQtSkgloUobgttdhs4qzop9lS2g==",
- "dependencies": {}
- },
- "@vitest/expect@2.0.2": {
- "integrity": "sha512-nKAvxBYqcDugYZ4nJvnm5OR8eDJdgWjk4XM9owQKUjzW70q0icGV2HVnQOyYsp906xJaBDUXw0+9EHw2T8e0mQ==",
- "dependencies": {
- "@vitest/spy": "@vitest/spy@2.0.2",
- "@vitest/utils": "@vitest/utils@2.0.2",
- "chai": "chai@5.1.1",
- "tinyrainbow": "tinyrainbow@1.2.0"
- }
- },
- "@vitest/pretty-format@2.0.2": {
- "integrity": "sha512-SBCyOXfGVvddRd9r2PwoVR0fonQjh9BMIcBMlSzbcNwFfGr6ZhOhvBzurjvi2F4ryut2HcqiFhNeDVGwru8tLg==",
- "dependencies": {
- "tinyrainbow": "tinyrainbow@1.2.0"
- }
- },
- "@vitest/runner@2.0.2": {
- "integrity": "sha512-OCh437Vi8Wdbif1e0OvQcbfM3sW4s2lpmOjAE7qfLrpzJX2M7J1IQlNvEcb/fu6kaIB9n9n35wS0G2Q3en5kHg==",
- "dependencies": {
- "@vitest/utils": "@vitest/utils@2.0.2",
- "pathe": "pathe@1.1.2"
- }
- },
- "@vitest/snapshot@2.0.2": {
- "integrity": "sha512-Yc2ewhhZhx+0f9cSUdfzPRcsM6PhIb+S43wxE7OG0kTxqgqzo8tHkXFuFlndXeDMp09G3sY/X5OAo/RfYydf1g==",
- "dependencies": {
- "@vitest/pretty-format": "@vitest/pretty-format@2.0.2",
- "magic-string": "magic-string@0.30.10",
- "pathe": "pathe@1.1.2"
- }
- },
- "@vitest/spy@2.0.2": {
- "integrity": "sha512-MgwJ4AZtCgqyp2d7WcQVE8aNG5vQ9zu9qMPYQHjsld/QVsrvg78beNrXdO4HYkP0lDahCO3P4F27aagIag+SGQ==",
- "dependencies": {
- "tinyspy": "tinyspy@3.0.0"
- }
- },
- "@vitest/utils@2.0.2": {
- "integrity": "sha512-pxCY1v7kmOCWYWjzc0zfjGTA3Wmn8PKnlPvSrsA643P1NHl1fOyXj2Q9SaNlrlFE+ivCsxM80Ov3AR82RmHCWQ==",
- "dependencies": {
- "@vitest/pretty-format": "@vitest/pretty-format@2.0.2",
- "estree-walker": "estree-walker@3.0.3",
- "loupe": "loupe@3.1.1",
- "tinyrainbow": "tinyrainbow@1.2.0"
- }
- },
- "@whatwg-node/events@0.1.1": {
- "integrity": "sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==",
- "dependencies": {}
- },
- "@whatwg-node/fetch@0.9.18": {
- "integrity": "sha512-hqoz6StCW+AjV/3N+vg0s1ah82ptdVUb9nH2ttj3UbySOXUvytWw2yqy8c1cKzyRk6mDD00G47qS3fZI9/gMjg==",
- "dependencies": {
- "@whatwg-node/node-fetch": "@whatwg-node/node-fetch@0.5.11",
- "urlpattern-polyfill": "urlpattern-polyfill@10.0.0"
- }
- },
- "@whatwg-node/node-fetch@0.5.11": {
- "integrity": "sha512-LS8tSomZa3YHnntpWt3PP43iFEEl6YeIsvDakczHBKlay5LdkXFr8w7v8H6akpG5nRrzydyB0k1iE2eoL6aKIQ==",
- "dependencies": {
- "@kamilkisiela/fast-url-parser": "@kamilkisiela/fast-url-parser@1.1.4",
- "@whatwg-node/events": "@whatwg-node/events@0.1.1",
- "busboy": "busboy@1.6.0",
- "fast-querystring": "fast-querystring@1.1.2",
- "tslib": "tslib@2.6.3"
- }
- },
- "JSONStream@1.3.5": {
- "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
- "dependencies": {
- "jsonparse": "jsonparse@1.3.1",
- "through": "through@2.3.8"
- }
- },
- "add-stream@1.0.0": {
- "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==",
- "dependencies": {}
- },
- "ansi-regex@5.0.1": {
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dependencies": {}
- },
- "ansi-regex@6.0.1": {
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dependencies": {}
- },
- "ansi-styles@3.2.1": {
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dependencies": {
- "color-convert": "color-convert@1.9.3"
- }
- },
- "ansi-styles@4.3.0": {
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "color-convert@2.0.1"
- }
- },
- "ansi-styles@6.2.1": {
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dependencies": {}
- },
- "any-promise@1.3.0": {
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "dependencies": {}
- },
- "anymatch@3.1.3": {
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dependencies": {
- "normalize-path": "normalize-path@3.0.0",
- "picomatch": "picomatch@2.3.1"
- }
- },
- "array-ify@1.0.0": {
- "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==",
- "dependencies": {}
- },
- "array-union@2.1.0": {
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dependencies": {}
- },
- "assertion-error@2.0.1": {
- "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
- "dependencies": {}
- },
- "balanced-match@1.0.2": {
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dependencies": {}
- },
- "binary-extensions@2.3.0": {
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "dependencies": {}
- },
- "brace-expansion@2.0.1": {
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "balanced-match@1.0.2"
- }
- },
- "braces@3.0.3": {
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "dependencies": {
- "fill-range": "fill-range@7.1.1"
- }
- },
- "bun-types@1.1.20": {
- "integrity": "sha512-2u84HciDR3E7Uc0t0AEeXHmQAWe9uzRKTz120D3silIJOQlbGIMJMJiGaM8Yx7nEvMyfV0LfSdkEGnb77AN5AA==",
- "dependencies": {
- "@types/node": "@types/node@20.12.14",
- "@types/ws": "@types/ws@8.5.11"
- }
- },
- "bundle-require@4.2.1_esbuild@0.21.5": {
- "integrity": "sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==",
- "dependencies": {
- "esbuild": "esbuild@0.21.5",
- "load-tsconfig": "load-tsconfig@0.2.5"
- }
- },
- "busboy@1.6.0": {
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "dependencies": {
- "streamsearch": "streamsearch@1.1.0"
- }
- },
- "cac@6.7.14": {
- "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
- "dependencies": {}
- },
- "chai@5.1.1": {
- "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==",
- "dependencies": {
- "assertion-error": "assertion-error@2.0.1",
- "check-error": "check-error@2.1.1",
- "deep-eql": "deep-eql@5.0.2",
- "loupe": "loupe@3.1.1",
- "pathval": "pathval@2.0.0"
- }
- },
- "chalk@2.4.2": {
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dependencies": {
- "ansi-styles": "ansi-styles@3.2.1",
- "escape-string-regexp": "escape-string-regexp@1.0.5",
- "supports-color": "supports-color@5.5.0"
- }
- },
- "chalk@4.1.2": {
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "ansi-styles@4.3.0",
- "supports-color": "supports-color@7.2.0"
- }
- },
- "check-error@2.1.1": {
- "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
- "dependencies": {}
- },
- "chokidar@3.6.0": {
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dependencies": {
- "anymatch": "anymatch@3.1.3",
- "braces": "braces@3.0.3",
- "fsevents": "fsevents@2.3.3",
- "glob-parent": "glob-parent@5.1.2",
- "is-binary-path": "is-binary-path@2.1.0",
- "is-glob": "is-glob@4.0.3",
- "normalize-path": "normalize-path@3.0.0",
- "readdirp": "readdirp@3.6.0"
- }
- },
- "color-convert@1.9.3": {
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dependencies": {
- "color-name": "color-name@1.1.3"
- }
- },
- "color-convert@2.0.1": {
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "color-name@1.1.4"
- }
- },
- "color-name@1.1.3": {
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dependencies": {}
- },
- "color-name@1.1.4": {
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dependencies": {}
- },
- "commander@11.1.0": {
- "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
- "dependencies": {}
- },
- "commander@4.1.1": {
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "dependencies": {}
- },
- "commander@9.5.0": {
- "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
- "dependencies": {}
- },
- "compare-func@2.0.0": {
- "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==",
- "dependencies": {
- "array-ify": "array-ify@1.0.0",
- "dot-prop": "dot-prop@5.3.0"
- }
- },
- "conventional-changelog-angular@7.0.0": {
- "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==",
- "dependencies": {
- "compare-func": "compare-func@2.0.0"
- }
- },
- "conventional-changelog-atom@4.0.0": {
- "integrity": "sha512-q2YtiN7rnT1TGwPTwjjBSIPIzDJCRE+XAUahWxnh+buKK99Kks4WLMHoexw38GXx9OUxAsrp44f9qXe5VEMYhw==",
- "dependencies": {}
- },
- "conventional-changelog-codemirror@4.0.0": {
- "integrity": "sha512-hQSojc/5imn1GJK3A75m9hEZZhc3urojA5gMpnar4JHmgLnuM3CUIARPpEk86glEKr3c54Po3WV/vCaO/U8g3Q==",
- "dependencies": {}
- },
- "conventional-changelog-conventionalcommits@7.0.2": {
- "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==",
- "dependencies": {
- "compare-func": "compare-func@2.0.0"
- }
- },
- "conventional-changelog-core@7.0.0": {
- "integrity": "sha512-UYgaB1F/COt7VFjlYKVE/9tTzfU3VUq47r6iWf6lM5T7TlOxr0thI63ojQueRLIpVbrtHK4Ffw+yQGduw2Bhdg==",
- "dependencies": {
- "@hutson/parse-repository-url": "@hutson/parse-repository-url@5.0.0",
- "add-stream": "add-stream@1.0.0",
- "conventional-changelog-writer": "conventional-changelog-writer@7.0.1",
- "conventional-commits-parser": "conventional-commits-parser@5.0.0",
- "git-raw-commits": "git-raw-commits@4.0.0",
- "git-semver-tags": "git-semver-tags@7.0.1",
- "hosted-git-info": "hosted-git-info@7.0.2",
- "normalize-package-data": "normalize-package-data@6.0.2",
- "read-pkg": "read-pkg@8.1.0",
- "read-pkg-up": "read-pkg-up@10.1.0"
- }
- },
- "conventional-changelog-ember@4.0.0": {
- "integrity": "sha512-D0IMhwcJUg1Y8FSry6XAplEJcljkHVlvAZddhhsdbL1rbsqRsMfGx/PIkPYq0ru5aDgn+OxhQ5N5yR7P9mfsvA==",
- "dependencies": {}
- },
- "conventional-changelog-eslint@5.0.0": {
- "integrity": "sha512-6JtLWqAQIeJLn/OzUlYmzd9fKeNSWmQVim9kql+v4GrZwLx807kAJl3IJVc3jTYfVKWLxhC3BGUxYiuVEcVjgA==",
- "dependencies": {}
- },
- "conventional-changelog-express@4.0.0": {
- "integrity": "sha512-yWyy5c7raP9v7aTvPAWzqrztACNO9+FEI1FSYh7UP7YT1AkWgv5UspUeB5v3Ibv4/o60zj2o9GF2tqKQ99lIsw==",
- "dependencies": {}
- },
- "conventional-changelog-jquery@5.0.0": {
- "integrity": "sha512-slLjlXLRNa/icMI3+uGLQbtrgEny3RgITeCxevJB+p05ExiTgHACP5p3XiMKzjBn80n+Rzr83XMYfRInEtCPPw==",
- "dependencies": {}
- },
- "conventional-changelog-jshint@4.0.0": {
- "integrity": "sha512-LyXq1bbl0yG0Ai1SbLxIk8ZxUOe3AjnlwE6sVRQmMgetBk+4gY9EO3d00zlEt8Y8gwsITytDnPORl8al7InTjg==",
- "dependencies": {
- "compare-func": "compare-func@2.0.0"
- }
- },
- "conventional-changelog-preset-loader@4.1.0": {
- "integrity": "sha512-HozQjJicZTuRhCRTq4rZbefaiCzRM2pr6u2NL3XhrmQm4RMnDXfESU6JKu/pnKwx5xtdkYfNCsbhN5exhiKGJA==",
- "dependencies": {}
- },
- "conventional-changelog-writer@7.0.1": {
- "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==",
- "dependencies": {
- "conventional-commits-filter": "conventional-commits-filter@4.0.0",
- "handlebars": "handlebars@4.7.8",
- "json-stringify-safe": "json-stringify-safe@5.0.1",
- "meow": "meow@12.1.1",
- "semver": "semver@7.6.2",
- "split2": "split2@4.2.0"
- }
- },
- "conventional-changelog@5.1.0": {
- "integrity": "sha512-aWyE/P39wGYRPllcCEZDxTVEmhyLzTc9XA6z6rVfkuCD2UBnhV/sgSOKbQrEG5z9mEZJjnopjgQooTKxEg8mAg==",
- "dependencies": {
- "conventional-changelog-angular": "conventional-changelog-angular@7.0.0",
- "conventional-changelog-atom": "conventional-changelog-atom@4.0.0",
- "conventional-changelog-codemirror": "conventional-changelog-codemirror@4.0.0",
- "conventional-changelog-conventionalcommits": "conventional-changelog-conventionalcommits@7.0.2",
- "conventional-changelog-core": "conventional-changelog-core@7.0.0",
- "conventional-changelog-ember": "conventional-changelog-ember@4.0.0",
- "conventional-changelog-eslint": "conventional-changelog-eslint@5.0.0",
- "conventional-changelog-express": "conventional-changelog-express@4.0.0",
- "conventional-changelog-jquery": "conventional-changelog-jquery@5.0.0",
- "conventional-changelog-jshint": "conventional-changelog-jshint@4.0.0",
- "conventional-changelog-preset-loader": "conventional-changelog-preset-loader@4.1.0"
- }
- },
- "conventional-commits-filter@4.0.0": {
- "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==",
- "dependencies": {}
- },
- "conventional-commits-parser@5.0.0": {
- "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==",
- "dependencies": {
- "JSONStream": "JSONStream@1.3.5",
- "is-text-path": "is-text-path@2.0.0",
- "meow": "meow@12.1.1",
- "split2": "split2@4.2.0"
- }
- },
- "cookie@0.6.0": {
- "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
- "dependencies": {}
- },
- "cross-spawn@7.0.3": {
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dependencies": {
- "path-key": "path-key@3.1.1",
- "shebang-command": "shebang-command@2.0.0",
- "which": "which@2.0.2"
- }
- },
- "dargs@8.1.0": {
- "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==",
- "dependencies": {}
- },
- "debug@4.3.5": {
- "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
- "dependencies": {
- "ms": "ms@2.1.2"
- }
- },
- "deep-eql@5.0.2": {
- "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
- "dependencies": {}
- },
- "dir-glob@3.0.1": {
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dependencies": {
- "path-type": "path-type@4.0.0"
- }
- },
- "dot-prop@5.3.0": {
- "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
- "dependencies": {
- "is-obj": "is-obj@2.0.0"
- }
- },
- "eastasianwidth@0.2.0": {
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dependencies": {}
- },
- "emoji-regex@8.0.0": {
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dependencies": {}
- },
- "emoji-regex@9.2.2": {
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dependencies": {}
- },
- "error-ex@1.3.2": {
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dependencies": {
- "is-arrayish": "is-arrayish@0.2.1"
- }
- },
- "esbuild@0.21.5": {
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
- "dependencies": {
- "@esbuild/aix-ppc64": "@esbuild/aix-ppc64@0.21.5",
- "@esbuild/android-arm": "@esbuild/android-arm@0.21.5",
- "@esbuild/android-arm64": "@esbuild/android-arm64@0.21.5",
- "@esbuild/android-x64": "@esbuild/android-x64@0.21.5",
- "@esbuild/darwin-arm64": "@esbuild/darwin-arm64@0.21.5",
- "@esbuild/darwin-x64": "@esbuild/darwin-x64@0.21.5",
- "@esbuild/freebsd-arm64": "@esbuild/freebsd-arm64@0.21.5",
- "@esbuild/freebsd-x64": "@esbuild/freebsd-x64@0.21.5",
- "@esbuild/linux-arm": "@esbuild/linux-arm@0.21.5",
- "@esbuild/linux-arm64": "@esbuild/linux-arm64@0.21.5",
- "@esbuild/linux-ia32": "@esbuild/linux-ia32@0.21.5",
- "@esbuild/linux-loong64": "@esbuild/linux-loong64@0.21.5",
- "@esbuild/linux-mips64el": "@esbuild/linux-mips64el@0.21.5",
- "@esbuild/linux-ppc64": "@esbuild/linux-ppc64@0.21.5",
- "@esbuild/linux-riscv64": "@esbuild/linux-riscv64@0.21.5",
- "@esbuild/linux-s390x": "@esbuild/linux-s390x@0.21.5",
- "@esbuild/linux-x64": "@esbuild/linux-x64@0.21.5",
- "@esbuild/netbsd-x64": "@esbuild/netbsd-x64@0.21.5",
- "@esbuild/openbsd-x64": "@esbuild/openbsd-x64@0.21.5",
- "@esbuild/sunos-x64": "@esbuild/sunos-x64@0.21.5",
- "@esbuild/win32-arm64": "@esbuild/win32-arm64@0.21.5",
- "@esbuild/win32-ia32": "@esbuild/win32-ia32@0.21.5",
- "@esbuild/win32-x64": "@esbuild/win32-x64@0.21.5"
- }
- },
- "escape-string-regexp@1.0.5": {
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dependencies": {}
- },
- "estree-walker@3.0.3": {
- "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
- "dependencies": {
- "@types/estree": "@types/estree@1.0.5"
- }
- },
- "execa@5.1.1": {
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dependencies": {
- "cross-spawn": "cross-spawn@7.0.3",
- "get-stream": "get-stream@6.0.1",
- "human-signals": "human-signals@2.1.0",
- "is-stream": "is-stream@2.0.1",
- "merge-stream": "merge-stream@2.0.0",
- "npm-run-path": "npm-run-path@4.0.1",
- "onetime": "onetime@5.1.2",
- "signal-exit": "signal-exit@3.0.7",
- "strip-final-newline": "strip-final-newline@2.0.0"
- }
- },
- "execa@8.0.1": {
- "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
- "dependencies": {
- "cross-spawn": "cross-spawn@7.0.3",
- "get-stream": "get-stream@8.0.1",
- "human-signals": "human-signals@5.0.0",
- "is-stream": "is-stream@3.0.0",
- "merge-stream": "merge-stream@2.0.0",
- "npm-run-path": "npm-run-path@5.3.0",
- "onetime": "onetime@6.0.0",
- "signal-exit": "signal-exit@4.1.0",
- "strip-final-newline": "strip-final-newline@3.0.0"
- }
- },
- "fast-decode-uri-component@1.0.1": {
- "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==",
- "dependencies": {}
- },
- "fast-glob@3.3.2": {
- "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
- "dependencies": {
- "@nodelib/fs.stat": "@nodelib/fs.stat@2.0.5",
- "@nodelib/fs.walk": "@nodelib/fs.walk@1.2.8",
- "glob-parent": "glob-parent@5.1.2",
- "merge2": "merge2@1.4.1",
- "micromatch": "micromatch@4.0.7"
- }
- },
- "fast-querystring@1.1.2": {
- "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==",
- "dependencies": {
- "fast-decode-uri-component": "fast-decode-uri-component@1.0.1"
- }
- },
- "fastq@1.17.1": {
- "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
- "dependencies": {
- "reusify": "reusify@1.0.4"
- }
- },
- "fill-range@7.1.1": {
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "dependencies": {
- "to-regex-range": "to-regex-range@5.0.1"
- }
- },
- "find-up@6.3.0": {
- "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
- "dependencies": {
- "locate-path": "locate-path@7.2.0",
- "path-exists": "path-exists@5.0.0"
- }
- },
- "foreground-child@3.2.1": {
- "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
- "dependencies": {
- "cross-spawn": "cross-spawn@7.0.3",
- "signal-exit": "signal-exit@4.1.0"
- }
- },
- "fsevents@2.3.3": {
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dependencies": {}
- },
- "get-func-name@2.0.2": {
- "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
- "dependencies": {}
- },
- "get-stream@6.0.1": {
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dependencies": {}
- },
- "get-stream@8.0.1": {
- "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
- "dependencies": {}
- },
- "get-tsconfig@4.7.5": {
- "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==",
- "dependencies": {
- "resolve-pkg-maps": "resolve-pkg-maps@1.0.0"
- }
- },
- "git-raw-commits@4.0.0": {
- "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==",
- "dependencies": {
- "dargs": "dargs@8.1.0",
- "meow": "meow@12.1.1",
- "split2": "split2@4.2.0"
- }
- },
- "git-semver-tags@7.0.1": {
- "integrity": "sha512-NY0ZHjJzyyNXHTDZmj+GG7PyuAKtMsyWSwh07CR2hOZFa+/yoTsXci/nF2obzL8UDhakFNkD9gNdt/Ed+cxh2Q==",
- "dependencies": {
- "meow": "meow@12.1.1",
- "semver": "semver@7.6.2"
- }
- },
- "glob-parent@5.1.2": {
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dependencies": {
- "is-glob": "is-glob@4.0.3"
- }
- },
- "glob@10.4.5": {
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "dependencies": {
- "foreground-child": "foreground-child@3.2.1",
- "jackspeak": "jackspeak@3.4.3",
- "minimatch": "minimatch@9.0.5",
- "minipass": "minipass@7.1.2",
- "package-json-from-dist": "package-json-from-dist@1.0.0",
- "path-scurry": "path-scurry@1.11.1"
- }
- },
- "glob@11.0.0": {
- "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==",
- "dependencies": {
- "foreground-child": "foreground-child@3.2.1",
- "jackspeak": "jackspeak@4.0.1",
- "minimatch": "minimatch@10.0.1",
- "minipass": "minipass@7.1.2",
- "package-json-from-dist": "package-json-from-dist@1.0.0",
- "path-scurry": "path-scurry@2.0.0"
- }
- },
- "globby@11.1.0": {
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "dependencies": {
- "array-union": "array-union@2.1.0",
- "dir-glob": "dir-glob@3.0.1",
- "fast-glob": "fast-glob@3.3.2",
- "ignore": "ignore@5.3.1",
- "merge2": "merge2@1.4.1",
- "slash": "slash@3.0.0"
- }
- },
- "handlebars@4.7.8": {
- "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
- "dependencies": {
- "minimist": "minimist@1.2.8",
- "neo-async": "neo-async@2.6.2",
- "source-map": "source-map@0.6.1",
- "uglify-js": "uglify-js@3.18.0",
- "wordwrap": "wordwrap@1.0.0"
- }
- },
- "has-flag@3.0.0": {
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dependencies": {}
- },
- "has-flag@4.0.0": {
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dependencies": {}
- },
- "hosted-git-info@7.0.2": {
- "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
- "dependencies": {
- "lru-cache": "lru-cache@10.4.3"
- }
- },
- "human-signals@2.1.0": {
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dependencies": {}
- },
- "human-signals@5.0.0": {
- "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
- "dependencies": {}
- },
- "ignore@5.3.1": {
- "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
- "dependencies": {}
- },
- "is-arrayish@0.2.1": {
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dependencies": {}
- },
- "is-binary-path@2.1.0": {
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dependencies": {
- "binary-extensions": "binary-extensions@2.3.0"
- }
- },
- "is-extglob@2.1.1": {
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dependencies": {}
- },
- "is-fullwidth-code-point@3.0.0": {
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dependencies": {}
- },
- "is-glob@4.0.3": {
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dependencies": {
- "is-extglob": "is-extglob@2.1.1"
- }
- },
- "is-number@7.0.0": {
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dependencies": {}
- },
- "is-obj@2.0.0": {
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
- "dependencies": {}
- },
- "is-stream@2.0.1": {
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dependencies": {}
- },
- "is-stream@3.0.0": {
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
- "dependencies": {}
- },
- "is-text-path@2.0.0": {
- "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==",
- "dependencies": {
- "text-extensions": "text-extensions@2.4.0"
- }
- },
- "isexe@2.0.0": {
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dependencies": {}
- },
- "jackspeak@3.4.3": {
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "dependencies": {
- "@isaacs/cliui": "@isaacs/cliui@8.0.2",
- "@pkgjs/parseargs": "@pkgjs/parseargs@0.11.0"
- }
- },
- "jackspeak@4.0.1": {
- "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==",
- "dependencies": {
- "@isaacs/cliui": "@isaacs/cliui@8.0.2",
- "@pkgjs/parseargs": "@pkgjs/parseargs@0.11.0"
- }
- },
- "joycon@3.1.1": {
- "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==",
- "dependencies": {}
- },
- "js-tokens@4.0.0": {
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dependencies": {}
- },
- "json-parse-even-better-errors@3.0.2": {
- "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
- "dependencies": {}
- },
- "json-stringify-safe@5.0.1": {
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
- "dependencies": {}
- },
- "jsonparse@1.3.1": {
- "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
- "dependencies": {}
- },
- "lilconfig@3.1.2": {
- "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
- "dependencies": {}
- },
- "lines-and-columns@1.2.4": {
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dependencies": {}
- },
- "lines-and-columns@2.0.4": {
- "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==",
- "dependencies": {}
- },
- "load-tsconfig@0.2.5": {
- "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==",
- "dependencies": {}
- },
- "locate-path@7.2.0": {
- "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
- "dependencies": {
- "p-locate": "p-locate@6.0.0"
- }
- },
- "lodash.sortby@4.7.0": {
- "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==",
- "dependencies": {}
- },
- "loupe@3.1.1": {
- "integrity": "sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==",
- "dependencies": {
- "get-func-name": "get-func-name@2.0.2"
- }
- },
- "lru-cache@10.4.3": {
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dependencies": {}
- },
- "lru-cache@11.0.0": {
- "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==",
- "dependencies": {}
- },
- "magic-string@0.30.10": {
- "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "@jridgewell/sourcemap-codec@1.5.0"
- }
- },
- "meow@12.1.1": {
- "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
- "dependencies": {}
- },
- "merge-stream@2.0.0": {
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dependencies": {}
- },
- "merge2@1.4.1": {
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dependencies": {}
- },
- "micromatch@4.0.7": {
- "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
- "dependencies": {
- "braces": "braces@3.0.3",
- "picomatch": "picomatch@2.3.1"
- }
- },
- "mime-db@1.52.0": {
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dependencies": {}
- },
- "mime-types@2.1.35": {
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "mime-db@1.52.0"
- }
- },
- "mimic-fn@2.1.0": {
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dependencies": {}
- },
- "mimic-fn@4.0.0": {
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
- "dependencies": {}
- },
- "minimatch@10.0.1": {
- "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==",
- "dependencies": {
- "brace-expansion": "brace-expansion@2.0.1"
- }
- },
- "minimatch@9.0.5": {
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dependencies": {
- "brace-expansion": "brace-expansion@2.0.1"
- }
- },
- "minimist@1.2.8": {
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "dependencies": {}
- },
- "minipass@7.1.2": {
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "dependencies": {}
- },
- "mri@1.2.0": {
- "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
- "dependencies": {}
- },
- "ms@2.1.2": {
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dependencies": {}
- },
- "mz@2.7.0": {
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "dependencies": {
- "any-promise": "any-promise@1.3.0",
- "object-assign": "object-assign@4.1.1",
- "thenify-all": "thenify-all@1.6.0"
- }
- },
- "nanoid@3.3.7": {
- "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
- "dependencies": {}
- },
- "neo-async@2.6.2": {
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dependencies": {}
- },
- "node-fetch-native@1.6.4": {
- "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==",
- "dependencies": {}
- },
- "normalize-package-data@6.0.2": {
- "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
- "dependencies": {
- "hosted-git-info": "hosted-git-info@7.0.2",
- "semver": "semver@7.6.2",
- "validate-npm-package-license": "validate-npm-package-license@3.0.4"
- }
- },
- "normalize-path@3.0.0": {
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dependencies": {}
- },
- "npm-run-path@4.0.1": {
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dependencies": {
- "path-key": "path-key@3.1.1"
- }
- },
- "npm-run-path@5.3.0": {
- "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
- "dependencies": {
- "path-key": "path-key@4.0.0"
- }
- },
- "object-assign@4.1.1": {
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dependencies": {}
- },
- "onetime@5.1.2": {
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dependencies": {
- "mimic-fn": "mimic-fn@2.1.0"
- }
- },
- "onetime@6.0.0": {
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
- "dependencies": {
- "mimic-fn": "mimic-fn@4.0.0"
- }
- },
- "p-limit@4.0.0": {
- "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
- "dependencies": {
- "yocto-queue": "yocto-queue@1.1.1"
- }
- },
- "p-locate@6.0.0": {
- "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
- "dependencies": {
- "p-limit": "p-limit@4.0.0"
- }
- },
- "package-json-from-dist@1.0.0": {
- "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==",
- "dependencies": {}
- },
- "parse-json@7.1.1": {
- "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==",
- "dependencies": {
- "@babel/code-frame": "@babel/code-frame@7.24.7",
- "error-ex": "error-ex@1.3.2",
- "json-parse-even-better-errors": "json-parse-even-better-errors@3.0.2",
- "lines-and-columns": "lines-and-columns@2.0.4",
- "type-fest": "type-fest@3.13.1"
- }
- },
- "path-exists@5.0.0": {
- "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
- "dependencies": {}
- },
- "path-key@3.1.1": {
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dependencies": {}
- },
- "path-key@4.0.0": {
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
- "dependencies": {}
- },
- "path-scurry@1.11.1": {
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
- "dependencies": {
- "lru-cache": "lru-cache@10.4.3",
- "minipass": "minipass@7.1.2"
- }
- },
- "path-scurry@2.0.0": {
- "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==",
- "dependencies": {
- "lru-cache": "lru-cache@11.0.0",
- "minipass": "minipass@7.1.2"
- }
- },
- "path-type@4.0.0": {
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dependencies": {}
- },
- "pathe@1.1.2": {
- "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
- "dependencies": {}
- },
- "pathval@2.0.0": {
- "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
- "dependencies": {}
- },
- "picocolors@1.0.1": {
- "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
- "dependencies": {}
- },
- "picomatch@2.3.1": {
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dependencies": {}
- },
- "pirates@4.0.6": {
- "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
- "dependencies": {}
- },
- "postcss-load-config@4.0.2": {
- "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
- "dependencies": {
- "lilconfig": "lilconfig@3.1.2",
- "yaml": "yaml@2.4.5"
- }
- },
- "postcss@8.4.39": {
- "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==",
- "dependencies": {
- "nanoid": "nanoid@3.3.7",
- "picocolors": "picocolors@1.0.1",
- "source-map-js": "source-map-js@1.2.0"
- }
- },
- "punycode@2.3.1": {
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "dependencies": {}
- },
- "queue-microtask@1.2.3": {
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dependencies": {}
- },
- "read-pkg-up@10.1.0": {
- "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==",
- "dependencies": {
- "find-up": "find-up@6.3.0",
- "read-pkg": "read-pkg@8.1.0",
- "type-fest": "type-fest@4.21.0"
- }
- },
- "read-pkg@8.1.0": {
- "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==",
- "dependencies": {
- "@types/normalize-package-data": "@types/normalize-package-data@2.4.4",
- "normalize-package-data": "normalize-package-data@6.0.2",
- "parse-json": "parse-json@7.1.1",
- "type-fest": "type-fest@4.21.0"
- }
- },
- "readdirp@3.6.0": {
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dependencies": {
- "picomatch": "picomatch@2.3.1"
- }
- },
- "resolve-from@5.0.0": {
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dependencies": {}
- },
- "resolve-pkg-maps@1.0.0": {
- "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
- "dependencies": {}
- },
- "reusify@1.0.4": {
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dependencies": {}
- },
- "rimraf@6.0.1": {
- "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==",
- "dependencies": {
- "glob": "glob@11.0.0",
- "package-json-from-dist": "package-json-from-dist@1.0.0"
- }
- },
- "rollup@4.18.1": {
- "integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==",
- "dependencies": {
- "@rollup/rollup-android-arm-eabi": "@rollup/rollup-android-arm-eabi@4.18.1",
- "@rollup/rollup-android-arm64": "@rollup/rollup-android-arm64@4.18.1",
- "@rollup/rollup-darwin-arm64": "@rollup/rollup-darwin-arm64@4.18.1",
- "@rollup/rollup-darwin-x64": "@rollup/rollup-darwin-x64@4.18.1",
- "@rollup/rollup-linux-arm-gnueabihf": "@rollup/rollup-linux-arm-gnueabihf@4.18.1",
- "@rollup/rollup-linux-arm-musleabihf": "@rollup/rollup-linux-arm-musleabihf@4.18.1",
- "@rollup/rollup-linux-arm64-gnu": "@rollup/rollup-linux-arm64-gnu@4.18.1",
- "@rollup/rollup-linux-arm64-musl": "@rollup/rollup-linux-arm64-musl@4.18.1",
- "@rollup/rollup-linux-powerpc64le-gnu": "@rollup/rollup-linux-powerpc64le-gnu@4.18.1",
- "@rollup/rollup-linux-riscv64-gnu": "@rollup/rollup-linux-riscv64-gnu@4.18.1",
- "@rollup/rollup-linux-s390x-gnu": "@rollup/rollup-linux-s390x-gnu@4.18.1",
- "@rollup/rollup-linux-x64-gnu": "@rollup/rollup-linux-x64-gnu@4.18.1",
- "@rollup/rollup-linux-x64-musl": "@rollup/rollup-linux-x64-musl@4.18.1",
- "@rollup/rollup-win32-arm64-msvc": "@rollup/rollup-win32-arm64-msvc@4.18.1",
- "@rollup/rollup-win32-ia32-msvc": "@rollup/rollup-win32-ia32-msvc@4.18.1",
- "@rollup/rollup-win32-x64-msvc": "@rollup/rollup-win32-x64-msvc@4.18.1",
- "@types/estree": "@types/estree@1.0.5",
- "fsevents": "fsevents@2.3.3"
- }
- },
- "run-parallel@1.2.0": {
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dependencies": {
- "queue-microtask": "queue-microtask@1.2.3"
- }
- },
- "semver@7.6.2": {
- "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
- "dependencies": {}
- },
- "shebang-command@2.0.0": {
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dependencies": {
- "shebang-regex": "shebang-regex@3.0.0"
- }
- },
- "shebang-regex@3.0.0": {
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dependencies": {}
- },
- "siginfo@2.0.0": {
- "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
- "dependencies": {}
- },
- "signal-exit@3.0.7": {
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dependencies": {}
- },
- "signal-exit@4.1.0": {
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dependencies": {}
- },
- "slash@3.0.0": {
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dependencies": {}
- },
- "source-map-js@1.2.0": {
- "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
- "dependencies": {}
- },
- "source-map@0.6.1": {
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dependencies": {}
- },
- "source-map@0.8.0-beta.0": {
- "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
- "dependencies": {
- "whatwg-url": "whatwg-url@7.1.0"
- }
- },
- "spdx-correct@3.2.0": {
- "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
- "dependencies": {
- "spdx-expression-parse": "spdx-expression-parse@3.0.1",
- "spdx-license-ids": "spdx-license-ids@3.0.18"
- }
- },
- "spdx-exceptions@2.5.0": {
- "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
- "dependencies": {}
- },
- "spdx-expression-parse@3.0.1": {
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dependencies": {
- "spdx-exceptions": "spdx-exceptions@2.5.0",
- "spdx-license-ids": "spdx-license-ids@3.0.18"
- }
- },
- "spdx-license-ids@3.0.18": {
- "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==",
- "dependencies": {}
- },
- "split2@4.2.0": {
- "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
- "dependencies": {}
- },
- "stackback@0.0.2": {
- "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
- "dependencies": {}
- },
- "std-env@3.7.0": {
- "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==",
- "dependencies": {}
- },
- "streamsearch@1.1.0": {
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
- "dependencies": {}
- },
- "string-width@4.2.3": {
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dependencies": {
- "emoji-regex": "emoji-regex@8.0.0",
- "is-fullwidth-code-point": "is-fullwidth-code-point@3.0.0",
- "strip-ansi": "strip-ansi@6.0.1"
- }
- },
- "string-width@5.1.2": {
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dependencies": {
- "eastasianwidth": "eastasianwidth@0.2.0",
- "emoji-regex": "emoji-regex@9.2.2",
- "strip-ansi": "strip-ansi@7.1.0"
- }
- },
- "strip-ansi@6.0.1": {
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dependencies": {
- "ansi-regex": "ansi-regex@5.0.1"
- }
- },
- "strip-ansi@7.1.0": {
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dependencies": {
- "ansi-regex": "ansi-regex@6.0.1"
- }
- },
- "strip-final-newline@2.0.0": {
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dependencies": {}
- },
- "strip-final-newline@3.0.0": {
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
- "dependencies": {}
- },
- "sucrase@3.35.0": {
- "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
- "dependencies": {
- "@jridgewell/gen-mapping": "@jridgewell/gen-mapping@0.3.5",
- "commander": "commander@4.1.1",
- "glob": "glob@10.4.5",
- "lines-and-columns": "lines-and-columns@1.2.4",
- "mz": "mz@2.7.0",
- "pirates": "pirates@4.0.6",
- "ts-interface-checker": "ts-interface-checker@0.1.13"
- }
- },
- "supports-color@5.5.0": {
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dependencies": {
- "has-flag": "has-flag@3.0.0"
- }
- },
- "supports-color@7.2.0": {
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "has-flag@4.0.0"
- }
- },
- "text-extensions@2.4.0": {
- "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==",
- "dependencies": {}
- },
- "thenify-all@1.6.0": {
- "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
- "dependencies": {
- "thenify": "thenify@3.3.1"
- }
- },
- "thenify@3.3.1": {
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "dependencies": {
- "any-promise": "any-promise@1.3.0"
- }
- },
- "through@2.3.8": {
- "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
- "dependencies": {}
- },
- "tinybench@2.8.0": {
- "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==",
- "dependencies": {}
- },
- "tinypool@1.0.0": {
- "integrity": "sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==",
- "dependencies": {}
- },
- "tinyrainbow@1.2.0": {
- "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==",
- "dependencies": {}
- },
- "tinyspy@3.0.0": {
- "integrity": "sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==",
- "dependencies": {}
- },
- "to-regex-range@5.0.1": {
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dependencies": {
- "is-number": "is-number@7.0.0"
- }
- },
- "tr46@1.0.1": {
- "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
- "dependencies": {
- "punycode": "punycode@2.3.1"
- }
- },
- "tree-kill@1.2.2": {
- "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
- "dependencies": {}
- },
- "ts-interface-checker@0.1.13": {
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "dependencies": {}
- },
- "tslib@2.6.3": {
- "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
- "dependencies": {}
- },
- "tsup@8.1.0_typescript@5.5.3_esbuild@0.21.5": {
- "integrity": "sha512-UFdfCAXukax+U6KzeTNO2kAARHcWxmKsnvSPXUcfA1D+kU05XDccCrkffCQpFaWDsZfV0jMyTsxU39VfCp6EOg==",
- "dependencies": {
- "bundle-require": "bundle-require@4.2.1_esbuild@0.21.5",
- "cac": "cac@6.7.14",
- "chokidar": "chokidar@3.6.0",
- "debug": "debug@4.3.5",
- "esbuild": "esbuild@0.21.5",
- "execa": "execa@5.1.1",
- "globby": "globby@11.1.0",
- "joycon": "joycon@3.1.1",
- "postcss-load-config": "postcss-load-config@4.0.2",
- "resolve-from": "resolve-from@5.0.0",
- "rollup": "rollup@4.18.1",
- "source-map": "source-map@0.8.0-beta.0",
- "sucrase": "sucrase@3.35.0",
- "tree-kill": "tree-kill@1.2.2",
- "typescript": "typescript@5.5.3"
- }
- },
- "tsx@4.16.2": {
- "integrity": "sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==",
- "dependencies": {
- "esbuild": "esbuild@0.21.5",
- "fsevents": "fsevents@2.3.3",
- "get-tsconfig": "get-tsconfig@4.7.5"
- }
- },
- "type-fest@3.13.1": {
- "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
- "dependencies": {}
- },
- "type-fest@4.21.0": {
- "integrity": "sha512-ADn2w7hVPcK6w1I0uWnM//y1rLXZhzB9mr0a3OirzclKF1Wp6VzevUmzz/NRAWunOT6E8HrnpGY7xOfc6K57fA==",
- "dependencies": {}
- },
- "typescript@5.5.3": {
- "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==",
- "dependencies": {}
- },
- "uglify-js@3.18.0": {
- "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==",
- "dependencies": {}
- },
- "undici-types@5.26.5": {
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
- "dependencies": {}
- },
- "urlpattern-polyfill@10.0.0": {
- "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==",
- "dependencies": {}
- },
- "validate-npm-package-license@3.0.4": {
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dependencies": {
- "spdx-correct": "spdx-correct@3.2.0",
- "spdx-expression-parse": "spdx-expression-parse@3.0.1"
- }
- },
- "vite-node@2.0.2_@types+node@20.14.10": {
- "integrity": "sha512-w4vkSz1Wo+NIQg8pjlEn0jQbcM/0D+xVaYjhw3cvarTanLLBh54oNiRbsT8PNK5GfuST0IlVXjsNRoNlqvY/fw==",
- "dependencies": {
- "cac": "cac@6.7.14",
- "debug": "debug@4.3.5",
- "pathe": "pathe@1.1.2",
- "tinyrainbow": "tinyrainbow@1.2.0",
- "vite": "vite@5.3.3_@types+node@20.14.10"
- }
- },
- "vite@5.3.3_@types+node@20.14.10": {
- "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==",
- "dependencies": {
- "@types/node": "@types/node@20.14.10",
- "esbuild": "esbuild@0.21.5",
- "fsevents": "fsevents@2.3.3",
- "postcss": "postcss@8.4.39",
- "rollup": "rollup@4.18.1"
- }
- },
- "vitest@2.0.2_@types+node@20.14.10": {
- "integrity": "sha512-WlpZ9neRIjNBIOQwBYfBSr0+of5ZCbxT2TVGKW4Lv0c8+srCFIiRdsP7U009t8mMn821HQ4XKgkx5dVWpyoyLw==",
- "dependencies": {
- "@ampproject/remapping": "@ampproject/remapping@2.3.0",
- "@types/node": "@types/node@20.14.10",
- "@vitest/expect": "@vitest/expect@2.0.2",
- "@vitest/pretty-format": "@vitest/pretty-format@2.0.2",
- "@vitest/runner": "@vitest/runner@2.0.2",
- "@vitest/snapshot": "@vitest/snapshot@2.0.2",
- "@vitest/spy": "@vitest/spy@2.0.2",
- "@vitest/utils": "@vitest/utils@2.0.2",
- "chai": "chai@5.1.1",
- "debug": "debug@4.3.5",
- "execa": "execa@8.0.1",
- "magic-string": "magic-string@0.30.10",
- "pathe": "pathe@1.1.2",
- "std-env": "std-env@3.7.0",
- "tinybench": "tinybench@2.8.0",
- "tinypool": "tinypool@1.0.0",
- "tinyrainbow": "tinyrainbow@1.2.0",
- "vite": "vite@5.3.3_@types+node@20.14.10",
- "vite-node": "vite-node@2.0.2_@types+node@20.14.10",
- "why-is-node-running": "why-is-node-running@2.3.0"
- }
- },
- "wait-port@1.1.0": {
- "integrity": "sha512-3e04qkoN3LxTMLakdqeWth8nih8usyg+sf1Bgdf9wwUkp05iuK1eSY/QpLvscT/+F/gA89+LpUmmgBtesbqI2Q==",
- "dependencies": {
- "chalk": "chalk@4.1.2",
- "commander": "commander@9.5.0",
- "debug": "debug@4.3.5"
- }
- },
- "webidl-conversions@4.0.2": {
- "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
- "dependencies": {}
- },
- "whatwg-url@7.1.0": {
- "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
- "dependencies": {
- "lodash.sortby": "lodash.sortby@4.7.0",
- "tr46": "tr46@1.0.1",
- "webidl-conversions": "webidl-conversions@4.0.2"
- }
- },
- "which@2.0.2": {
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dependencies": {
- "isexe": "isexe@2.0.0"
- }
- },
- "why-is-node-running@2.3.0": {
- "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
- "dependencies": {
- "siginfo": "siginfo@2.0.0",
- "stackback": "stackback@0.0.2"
- }
- },
- "wordwrap@1.0.0": {
- "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
- "dependencies": {}
- },
- "wrap-ansi@7.0.0": {
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dependencies": {
- "ansi-styles": "ansi-styles@4.3.0",
- "string-width": "string-width@4.2.3",
- "strip-ansi": "strip-ansi@6.0.1"
- }
- },
- "wrap-ansi@8.1.0": {
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "dependencies": {
- "ansi-styles": "ansi-styles@6.2.1",
- "string-width": "string-width@5.1.2",
- "strip-ansi": "strip-ansi@7.1.0"
- }
- },
- "yaml@2.4.5": {
- "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==",
- "dependencies": {}
- },
- "yocto-queue@1.1.1": {
- "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==",
- "dependencies": {}
- },
- "zx@8.1.4": {
- "integrity": "sha512-QFDYYpnzdpRiJ3dL2102Cw26FpXpWshW4QLTGxiYfIcwdAqg084jRCkK/kuP/NOSkxOjydRwNFG81qzA5r1a6w==",
- "dependencies": {
- "@types/fs-extra": "@types/fs-extra@11.0.4",
- "@types/node": "@types/node@20.14.10"
- }
- }
- }
- },
- "remote": {},
- "workspace": {
- "dependencies": [
- "npm:mri",
- "npm:wait-port",
- "npm:zx"
- ],
- "packageJson": {
- "dependencies": [
- "npm:@brillout/release-me@^0.3.9",
- "npm:@hattip/adapter-bun@^0.0.46",
- "npm:@hattip/adapter-deno@^0.0.46",
- "npm:@hattip/adapter-node@^0.0.46",
- "npm:@hattip/compose@^0.0.46",
- "npm:@hattip/core@^0.0.46",
- "npm:@hattip/cors@^0.0.46",
- "npm:@hattip/router@^0.0.46",
- "npm:@types/node@^20.14.10",
- "npm:@universal-middleware/core@^0.1.1",
- "npm:rimraf@^6.0.0",
- "npm:tsup@^8.1.0",
- "npm:tsx@^4.16.2",
- "npm:typescript@^5.5.3",
- "npm:vitest@^2.0.2"
- ]
- }
- }
-}
diff --git a/packages/adapter-hattip/package.json b/packages/adapter-hattip/package.json
index 375830d..2175592 100644
--- a/packages/adapter-hattip/package.json
+++ b/packages/adapter-hattip/package.json
@@ -19,7 +19,7 @@
"test": "vitest run",
"test:run-hattip:node": "tsx tests/entry-hattip.ts",
"test:run-hattip:bun": "bun tests/entry-hattip.ts",
- "test:run-hattip:deno": "deno run --unstable-sloppy-imports -A tests/entry-hattip.ts",
+ "test:run-hattip:deno": "deno run --unstable-byonm --unstable-sloppy-imports -A tests/entry-hattip.ts",
"test:typecheck": "tsc -p tsconfig.json --noEmit",
"release": "LANG=en_US release-me patch",
"release:minor": "LANG=en_US release-me minor",
@@ -29,20 +29,22 @@
"@universal-middleware/core": "^0.1.1"
},
"devDependencies": {
- "@brillout/release-me": "^0.3.9",
- "@hattip/adapter-bun": "^0.0.46",
- "@hattip/adapter-deno": "^0.0.46",
- "@hattip/adapter-node": "^0.0.46",
- "@hattip/compose": "^0.0.46",
- "@hattip/core": "^0.0.46",
- "@hattip/cors": "^0.0.46",
- "@hattip/router": "^0.0.46",
+ "@brillout/release-me": "^0.4.0",
+ "@hattip/adapter-bun": "^0.0.47",
+ "@hattip/adapter-deno": "^0.0.47",
+ "@hattip/adapter-node": "^0.0.47",
+ "@hattip/compose": "^0.0.47",
+ "@hattip/core": "^0.0.47",
+ "@hattip/cors": "^0.0.47",
+ "@hattip/router": "^0.0.47",
+ "@swc/core": "^1.7.11",
"@types/node": "^20.14.10",
"@universal-middleware/tests": "workspace:*",
"rimraf": "^6.0.0",
- "tsup": "^8.1.0",
- "tsx": "^4.16.2",
- "typescript": "^5.5.3",
- "vitest": "^2.0.2"
- }
+ "tsup": "^8.2.4",
+ "tsx": "^4.17.0",
+ "typescript": "^5.5.4",
+ "vitest": "^2.0.5"
+ },
+ "sideEffects": false
}
diff --git a/packages/adapter-hattip/src/common.ts b/packages/adapter-hattip/src/common.ts
index fe73c6b..f4b59cd 100644
--- a/packages/adapter-hattip/src/common.ts
+++ b/packages/adapter-hattip/src/common.ts
@@ -1,9 +1,11 @@
import type { AdapterRequestContext, HattipHandler } from "@hattip/core";
import type { RequestHandler } from "@hattip/compose";
import type {
+ Get,
UniversalHandler,
UniversalMiddleware,
} from "@universal-middleware/core";
+import { getAdapterRuntime } from "@universal-middleware/core";
export const contextSymbol = Symbol("unContext");
@@ -13,37 +15,93 @@ declare module "@hattip/core" {
}
}
+export type { HattipHandler };
+export type HattipMiddleware = RequestHandler;
+
/**
* Creates a request handler to be passed to hattip
*/
-export function createHandler(handler: UniversalHandler): HattipHandler {
- return (context) => {
- context[contextSymbol] ??= {};
- return handler(context.request, context[contextSymbol]);
+export function createHandler(
+ handlerFactory: Get,
+): Get {
+ return (...args) => {
+ const handler = handlerFactory(...args);
+
+ return (context) => {
+ const ctx = initContext(context);
+ return handler(
+ context.request,
+ ctx,
+ getAdapterRuntime(
+ "other",
+ {},
+ {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ env: (context.platform as any)?.env,
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ ctx: (context.platform as any)?.context,
+ },
+ ),
+ );
+ };
};
}
/**
* Creates a middleware to be passed to @hattip/compose or @hattip/router
*/
-export function createMiddleware(
- middleware: UniversalMiddleware,
-): RequestHandler {
- return async (context) => {
- context[contextSymbol] ??= {};
- const response = await middleware(context.request, context[contextSymbol]);
-
- if (typeof response === "function") {
- const res = await context.next();
- return response(res);
- } else if (typeof response === "object" && "body" in response) {
- return response;
- }
+export function createMiddleware<
+ T extends unknown[],
+ InContext extends Universal.Context,
+ OutContext extends Universal.Context,
+>(
+ middlewareFactory: Get>,
+): Get {
+ return (...args) => {
+ const middleware = middlewareFactory(...args);
+
+ return async (context) => {
+ const ctx = initContext(context);
+ const response = await middleware(
+ context.request,
+ ctx,
+ getAdapterRuntime(
+ "other",
+ {},
+ {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ env: (context.platform as any)?.env,
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ ctx: (context.platform as any)?.context,
+ },
+ ),
+ );
+
+ if (typeof response === "function") {
+ const res = await context.next();
+ return response(res);
+ } else if (response !== null && typeof response === "object") {
+ if (response instanceof Response) {
+ return response;
+ }
+
+ // Update context
+ context[contextSymbol] = response;
+ }
+ };
};
}
-export function getContext(
- context: AdapterRequestContext,
-): Universal.Context | undefined {
- return context[contextSymbol];
+export function initContext<
+ InContext extends Universal.Context = Universal.Context,
+>(context: AdapterRequestContext): InContext {
+ context[contextSymbol] ??= {};
+
+ return context[contextSymbol] as InContext;
+}
+
+export function getContext<
+ InContext extends Universal.Context = Universal.Context,
+>(context: AdapterRequestContext): InContext | undefined {
+ return context[contextSymbol] as InContext | undefined;
}
diff --git a/packages/adapter-hattip/src/index.ts b/packages/adapter-hattip/src/index.ts
index 2f74b9c..e5a3fb9 100644
--- a/packages/adapter-hattip/src/index.ts
+++ b/packages/adapter-hattip/src/index.ts
@@ -1 +1,7 @@
-export { createHandler, createMiddleware, getContext } from "./common.js";
+export {
+ createHandler,
+ createMiddleware,
+ getContext,
+ type HattipHandler,
+ type HattipMiddleware,
+} from "./common.js";
diff --git a/packages/adapter-hattip/tests/entry-hattip.ts b/packages/adapter-hattip/tests/entry-hattip.ts
index a60b887..fcf94e7 100644
--- a/packages/adapter-hattip/tests/entry-hattip.ts
+++ b/packages/adapter-hattip/tests/entry-hattip.ts
@@ -8,16 +8,19 @@ import {
middlewares,
} from "@universal-middleware/tests";
import { createRouter } from "@hattip/router";
+import type { Get, UniversalMiddleware } from "@universal-middleware/core";
const app = createRouter();
// standard hattip middleware
app.use(cors());
-middlewares.forEach((middleware) => app.use(createMiddleware(middleware)));
+middlewares.forEach((middleware) =>
+ app.use(createMiddleware(middleware as Get<[], UniversalMiddleware>)()),
+);
// universal handler
-app.get("/", createHandler(handler));
+app.get("/", createHandler(handler)());
const hattipHandler = app.buildHandler();
@@ -45,7 +48,7 @@ if (deno) {
const bunAdapter = await import("@hattip/adapter-bun");
bunHandler = bunAdapter.default(hattipHandler, {
port,
- });
+ } as import("@hattip/adapter-bun").BunAdapterOptions);
}
// Bun
diff --git a/packages/adapter-hono/deno.json b/packages/adapter-hono/deno.json
index 7f10135..a38c68a 100644
--- a/packages/adapter-hono/deno.json
+++ b/packages/adapter-hono/deno.json
@@ -1,8 +1,10 @@
{
"imports": {
"@universal-middleware/tests": "../tests/dist",
+ "@universal-middleware/core": "../core/dist",
"mri": "npm:mri",
"zx": "npm:zx",
"wait-port": "npm:wait-port"
- }
+ },
+ "lock": false
}
diff --git a/packages/adapter-hono/deno.lock b/packages/adapter-hono/deno.lock
deleted file mode 100644
index 38ef4d1..0000000
--- a/packages/adapter-hono/deno.lock
+++ /dev/null
@@ -1,1697 +0,0 @@
-{
- "version": "3",
- "packages": {
- "specifiers": {
- "npm:@brillout/release-me@^0.3.9": "npm:@brillout/release-me@0.3.9",
- "npm:@types/node@^20.14.10": "npm:@types/node@20.14.10",
- "npm:@universal-middleware/core@^0.1.1": "npm:@universal-middleware/core@0.1.1",
- "npm:hono@^4.4.13": "npm:hono@4.4.13",
- "npm:mri": "npm:mri@1.2.0",
- "npm:rimraf@^6.0.0": "npm:rimraf@6.0.1",
- "npm:tsup@^8.1.0": "npm:tsup@8.1.0_typescript@5.5.3_esbuild@0.21.5",
- "npm:tsx@^4.16.2": "npm:tsx@4.16.2",
- "npm:typescript@^5.5.3": "npm:typescript@5.5.3",
- "npm:vitest@^2.0.2": "npm:vitest@2.0.2_@types+node@20.14.10",
- "npm:wait-port": "npm:wait-port@1.1.0",
- "npm:zx": "npm:zx@8.1.4"
- },
- "npm": {
- "@ampproject/remapping@2.3.0": {
- "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
- "dependencies": {
- "@jridgewell/gen-mapping": "@jridgewell/gen-mapping@0.3.5",
- "@jridgewell/trace-mapping": "@jridgewell/trace-mapping@0.3.25"
- }
- },
- "@babel/code-frame@7.24.7": {
- "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
- "dependencies": {
- "@babel/highlight": "@babel/highlight@7.24.7",
- "picocolors": "picocolors@1.0.1"
- }
- },
- "@babel/helper-validator-identifier@7.24.7": {
- "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
- "dependencies": {}
- },
- "@babel/highlight@7.24.7": {
- "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
- "dependencies": {
- "@babel/helper-validator-identifier": "@babel/helper-validator-identifier@7.24.7",
- "chalk": "chalk@2.4.2",
- "js-tokens": "js-tokens@4.0.0",
- "picocolors": "picocolors@1.0.1"
- }
- },
- "@brillout/picocolors@1.0.13": {
- "integrity": "sha512-LblvMKItHbvkaIMI+Awsk1EEjmReE8E8Mgjtj3Pdn/qBvwQ6e+ts5uEqG6iTrK6JWndcxrQgSe664KfoteN6fA==",
- "dependencies": {}
- },
- "@brillout/release-me@0.3.9": {
- "integrity": "sha512-7Q9YD+rnVF9hFmRFNSEePAejYSgZzWABJTA5sFrfD1utREt5K8aokoldvm/WES83SOMIkPO97c2kII9J4snc7Q==",
- "dependencies": {
- "@brillout/picocolors": "@brillout/picocolors@1.0.13",
- "commander": "commander@11.1.0",
- "conventional-changelog": "conventional-changelog@5.1.0",
- "execa": "execa@5.1.1",
- "semver": "semver@7.6.2"
- }
- },
- "@esbuild/aix-ppc64@0.21.5": {
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
- "dependencies": {}
- },
- "@esbuild/android-arm64@0.21.5": {
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
- "dependencies": {}
- },
- "@esbuild/android-arm@0.21.5": {
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
- "dependencies": {}
- },
- "@esbuild/android-x64@0.21.5": {
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
- "dependencies": {}
- },
- "@esbuild/darwin-arm64@0.21.5": {
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
- "dependencies": {}
- },
- "@esbuild/darwin-x64@0.21.5": {
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
- "dependencies": {}
- },
- "@esbuild/freebsd-arm64@0.21.5": {
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
- "dependencies": {}
- },
- "@esbuild/freebsd-x64@0.21.5": {
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
- "dependencies": {}
- },
- "@esbuild/linux-arm64@0.21.5": {
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
- "dependencies": {}
- },
- "@esbuild/linux-arm@0.21.5": {
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
- "dependencies": {}
- },
- "@esbuild/linux-ia32@0.21.5": {
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
- "dependencies": {}
- },
- "@esbuild/linux-loong64@0.21.5": {
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
- "dependencies": {}
- },
- "@esbuild/linux-mips64el@0.21.5": {
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
- "dependencies": {}
- },
- "@esbuild/linux-ppc64@0.21.5": {
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
- "dependencies": {}
- },
- "@esbuild/linux-riscv64@0.21.5": {
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
- "dependencies": {}
- },
- "@esbuild/linux-s390x@0.21.5": {
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
- "dependencies": {}
- },
- "@esbuild/linux-x64@0.21.5": {
- "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
- "dependencies": {}
- },
- "@esbuild/netbsd-x64@0.21.5": {
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
- "dependencies": {}
- },
- "@esbuild/openbsd-x64@0.21.5": {
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
- "dependencies": {}
- },
- "@esbuild/sunos-x64@0.21.5": {
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
- "dependencies": {}
- },
- "@esbuild/win32-arm64@0.21.5": {
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
- "dependencies": {}
- },
- "@esbuild/win32-ia32@0.21.5": {
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
- "dependencies": {}
- },
- "@esbuild/win32-x64@0.21.5": {
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
- "dependencies": {}
- },
- "@hutson/parse-repository-url@5.0.0": {
- "integrity": "sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==",
- "dependencies": {}
- },
- "@isaacs/cliui@8.0.2": {
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "dependencies": {
- "string-width": "string-width@5.1.2",
- "string-width-cjs": "string-width@4.2.3",
- "strip-ansi": "strip-ansi@7.1.0",
- "strip-ansi-cjs": "strip-ansi@6.0.1",
- "wrap-ansi": "wrap-ansi@8.1.0",
- "wrap-ansi-cjs": "wrap-ansi@7.0.0"
- }
- },
- "@jridgewell/gen-mapping@0.3.5": {
- "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
- "dependencies": {
- "@jridgewell/set-array": "@jridgewell/set-array@1.2.1",
- "@jridgewell/sourcemap-codec": "@jridgewell/sourcemap-codec@1.5.0",
- "@jridgewell/trace-mapping": "@jridgewell/trace-mapping@0.3.25"
- }
- },
- "@jridgewell/resolve-uri@3.1.2": {
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dependencies": {}
- },
- "@jridgewell/set-array@1.2.1": {
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
- "dependencies": {}
- },
- "@jridgewell/sourcemap-codec@1.5.0": {
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
- "dependencies": {}
- },
- "@jridgewell/trace-mapping@0.3.25": {
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
- "dependencies": {
- "@jridgewell/resolve-uri": "@jridgewell/resolve-uri@3.1.2",
- "@jridgewell/sourcemap-codec": "@jridgewell/sourcemap-codec@1.5.0"
- }
- },
- "@nodelib/fs.scandir@2.1.5": {
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dependencies": {
- "@nodelib/fs.stat": "@nodelib/fs.stat@2.0.5",
- "run-parallel": "run-parallel@1.2.0"
- }
- },
- "@nodelib/fs.stat@2.0.5": {
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dependencies": {}
- },
- "@nodelib/fs.walk@1.2.8": {
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dependencies": {
- "@nodelib/fs.scandir": "@nodelib/fs.scandir@2.1.5",
- "fastq": "fastq@1.17.1"
- }
- },
- "@pkgjs/parseargs@0.11.0": {
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "dependencies": {}
- },
- "@rollup/rollup-android-arm-eabi@4.18.1": {
- "integrity": "sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==",
- "dependencies": {}
- },
- "@rollup/rollup-android-arm64@4.18.1": {
- "integrity": "sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==",
- "dependencies": {}
- },
- "@rollup/rollup-darwin-arm64@4.18.1": {
- "integrity": "sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==",
- "dependencies": {}
- },
- "@rollup/rollup-darwin-x64@4.18.1": {
- "integrity": "sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-arm-gnueabihf@4.18.1": {
- "integrity": "sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-arm-musleabihf@4.18.1": {
- "integrity": "sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-arm64-gnu@4.18.1": {
- "integrity": "sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-arm64-musl@4.18.1": {
- "integrity": "sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-powerpc64le-gnu@4.18.1": {
- "integrity": "sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-riscv64-gnu@4.18.1": {
- "integrity": "sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-s390x-gnu@4.18.1": {
- "integrity": "sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-x64-gnu@4.18.1": {
- "integrity": "sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==",
- "dependencies": {}
- },
- "@rollup/rollup-linux-x64-musl@4.18.1": {
- "integrity": "sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==",
- "dependencies": {}
- },
- "@rollup/rollup-win32-arm64-msvc@4.18.1": {
- "integrity": "sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==",
- "dependencies": {}
- },
- "@rollup/rollup-win32-ia32-msvc@4.18.1": {
- "integrity": "sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==",
- "dependencies": {}
- },
- "@rollup/rollup-win32-x64-msvc@4.18.1": {
- "integrity": "sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==",
- "dependencies": {}
- },
- "@types/estree@1.0.5": {
- "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
- "dependencies": {}
- },
- "@types/fs-extra@11.0.4": {
- "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==",
- "dependencies": {
- "@types/jsonfile": "@types/jsonfile@6.1.4",
- "@types/node": "@types/node@18.16.19"
- }
- },
- "@types/jsonfile@6.1.4": {
- "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==",
- "dependencies": {
- "@types/node": "@types/node@18.16.19"
- }
- },
- "@types/node@18.16.19": {
- "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==",
- "dependencies": {}
- },
- "@types/node@20.14.10": {
- "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==",
- "dependencies": {
- "undici-types": "undici-types@5.26.5"
- }
- },
- "@types/normalize-package-data@2.4.4": {
- "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
- "dependencies": {}
- },
- "@universal-middleware/core@0.1.1": {
- "integrity": "sha512-1paKMQ/B/l5NL9j5vR3T7mvk3VqfP3aIuJj0XU5WvlrqZGjde1qFyjEDfw4RQtSkgloUobgttdhs4qzop9lS2g==",
- "dependencies": {}
- },
- "@vitest/expect@2.0.2": {
- "integrity": "sha512-nKAvxBYqcDugYZ4nJvnm5OR8eDJdgWjk4XM9owQKUjzW70q0icGV2HVnQOyYsp906xJaBDUXw0+9EHw2T8e0mQ==",
- "dependencies": {
- "@vitest/spy": "@vitest/spy@2.0.2",
- "@vitest/utils": "@vitest/utils@2.0.2",
- "chai": "chai@5.1.1",
- "tinyrainbow": "tinyrainbow@1.2.0"
- }
- },
- "@vitest/pretty-format@2.0.2": {
- "integrity": "sha512-SBCyOXfGVvddRd9r2PwoVR0fonQjh9BMIcBMlSzbcNwFfGr6ZhOhvBzurjvi2F4ryut2HcqiFhNeDVGwru8tLg==",
- "dependencies": {
- "tinyrainbow": "tinyrainbow@1.2.0"
- }
- },
- "@vitest/runner@2.0.2": {
- "integrity": "sha512-OCh437Vi8Wdbif1e0OvQcbfM3sW4s2lpmOjAE7qfLrpzJX2M7J1IQlNvEcb/fu6kaIB9n9n35wS0G2Q3en5kHg==",
- "dependencies": {
- "@vitest/utils": "@vitest/utils@2.0.2",
- "pathe": "pathe@1.1.2"
- }
- },
- "@vitest/snapshot@2.0.2": {
- "integrity": "sha512-Yc2ewhhZhx+0f9cSUdfzPRcsM6PhIb+S43wxE7OG0kTxqgqzo8tHkXFuFlndXeDMp09G3sY/X5OAo/RfYydf1g==",
- "dependencies": {
- "@vitest/pretty-format": "@vitest/pretty-format@2.0.2",
- "magic-string": "magic-string@0.30.10",
- "pathe": "pathe@1.1.2"
- }
- },
- "@vitest/spy@2.0.2": {
- "integrity": "sha512-MgwJ4AZtCgqyp2d7WcQVE8aNG5vQ9zu9qMPYQHjsld/QVsrvg78beNrXdO4HYkP0lDahCO3P4F27aagIag+SGQ==",
- "dependencies": {
- "tinyspy": "tinyspy@3.0.0"
- }
- },
- "@vitest/utils@2.0.2": {
- "integrity": "sha512-pxCY1v7kmOCWYWjzc0zfjGTA3Wmn8PKnlPvSrsA643P1NHl1fOyXj2Q9SaNlrlFE+ivCsxM80Ov3AR82RmHCWQ==",
- "dependencies": {
- "@vitest/pretty-format": "@vitest/pretty-format@2.0.2",
- "estree-walker": "estree-walker@3.0.3",
- "loupe": "loupe@3.1.1",
- "tinyrainbow": "tinyrainbow@1.2.0"
- }
- },
- "JSONStream@1.3.5": {
- "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
- "dependencies": {
- "jsonparse": "jsonparse@1.3.1",
- "through": "through@2.3.8"
- }
- },
- "add-stream@1.0.0": {
- "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==",
- "dependencies": {}
- },
- "ansi-regex@5.0.1": {
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dependencies": {}
- },
- "ansi-regex@6.0.1": {
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dependencies": {}
- },
- "ansi-styles@3.2.1": {
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dependencies": {
- "color-convert": "color-convert@1.9.3"
- }
- },
- "ansi-styles@4.3.0": {
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "color-convert@2.0.1"
- }
- },
- "ansi-styles@6.2.1": {
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dependencies": {}
- },
- "any-promise@1.3.0": {
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "dependencies": {}
- },
- "anymatch@3.1.3": {
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dependencies": {
- "normalize-path": "normalize-path@3.0.0",
- "picomatch": "picomatch@2.3.1"
- }
- },
- "array-ify@1.0.0": {
- "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==",
- "dependencies": {}
- },
- "array-union@2.1.0": {
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dependencies": {}
- },
- "assertion-error@2.0.1": {
- "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
- "dependencies": {}
- },
- "balanced-match@1.0.2": {
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "dependencies": {}
- },
- "binary-extensions@2.3.0": {
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "dependencies": {}
- },
- "brace-expansion@2.0.1": {
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dependencies": {
- "balanced-match": "balanced-match@1.0.2"
- }
- },
- "braces@3.0.3": {
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "dependencies": {
- "fill-range": "fill-range@7.1.1"
- }
- },
- "bundle-require@4.2.1_esbuild@0.21.5": {
- "integrity": "sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==",
- "dependencies": {
- "esbuild": "esbuild@0.21.5",
- "load-tsconfig": "load-tsconfig@0.2.5"
- }
- },
- "cac@6.7.14": {
- "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
- "dependencies": {}
- },
- "chai@5.1.1": {
- "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==",
- "dependencies": {
- "assertion-error": "assertion-error@2.0.1",
- "check-error": "check-error@2.1.1",
- "deep-eql": "deep-eql@5.0.2",
- "loupe": "loupe@3.1.1",
- "pathval": "pathval@2.0.0"
- }
- },
- "chalk@2.4.2": {
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dependencies": {
- "ansi-styles": "ansi-styles@3.2.1",
- "escape-string-regexp": "escape-string-regexp@1.0.5",
- "supports-color": "supports-color@5.5.0"
- }
- },
- "chalk@4.1.2": {
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "ansi-styles@4.3.0",
- "supports-color": "supports-color@7.2.0"
- }
- },
- "check-error@2.1.1": {
- "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
- "dependencies": {}
- },
- "chokidar@3.6.0": {
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "dependencies": {
- "anymatch": "anymatch@3.1.3",
- "braces": "braces@3.0.3",
- "fsevents": "fsevents@2.3.3",
- "glob-parent": "glob-parent@5.1.2",
- "is-binary-path": "is-binary-path@2.1.0",
- "is-glob": "is-glob@4.0.3",
- "normalize-path": "normalize-path@3.0.0",
- "readdirp": "readdirp@3.6.0"
- }
- },
- "color-convert@1.9.3": {
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dependencies": {
- "color-name": "color-name@1.1.3"
- }
- },
- "color-convert@2.0.1": {
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "color-name@1.1.4"
- }
- },
- "color-name@1.1.3": {
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dependencies": {}
- },
- "color-name@1.1.4": {
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dependencies": {}
- },
- "commander@11.1.0": {
- "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
- "dependencies": {}
- },
- "commander@4.1.1": {
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "dependencies": {}
- },
- "commander@9.5.0": {
- "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
- "dependencies": {}
- },
- "compare-func@2.0.0": {
- "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==",
- "dependencies": {
- "array-ify": "array-ify@1.0.0",
- "dot-prop": "dot-prop@5.3.0"
- }
- },
- "conventional-changelog-angular@7.0.0": {
- "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==",
- "dependencies": {
- "compare-func": "compare-func@2.0.0"
- }
- },
- "conventional-changelog-atom@4.0.0": {
- "integrity": "sha512-q2YtiN7rnT1TGwPTwjjBSIPIzDJCRE+XAUahWxnh+buKK99Kks4WLMHoexw38GXx9OUxAsrp44f9qXe5VEMYhw==",
- "dependencies": {}
- },
- "conventional-changelog-codemirror@4.0.0": {
- "integrity": "sha512-hQSojc/5imn1GJK3A75m9hEZZhc3urojA5gMpnar4JHmgLnuM3CUIARPpEk86glEKr3c54Po3WV/vCaO/U8g3Q==",
- "dependencies": {}
- },
- "conventional-changelog-conventionalcommits@7.0.2": {
- "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==",
- "dependencies": {
- "compare-func": "compare-func@2.0.0"
- }
- },
- "conventional-changelog-core@7.0.0": {
- "integrity": "sha512-UYgaB1F/COt7VFjlYKVE/9tTzfU3VUq47r6iWf6lM5T7TlOxr0thI63ojQueRLIpVbrtHK4Ffw+yQGduw2Bhdg==",
- "dependencies": {
- "@hutson/parse-repository-url": "@hutson/parse-repository-url@5.0.0",
- "add-stream": "add-stream@1.0.0",
- "conventional-changelog-writer": "conventional-changelog-writer@7.0.1",
- "conventional-commits-parser": "conventional-commits-parser@5.0.0",
- "git-raw-commits": "git-raw-commits@4.0.0",
- "git-semver-tags": "git-semver-tags@7.0.1",
- "hosted-git-info": "hosted-git-info@7.0.2",
- "normalize-package-data": "normalize-package-data@6.0.2",
- "read-pkg": "read-pkg@8.1.0",
- "read-pkg-up": "read-pkg-up@10.1.0"
- }
- },
- "conventional-changelog-ember@4.0.0": {
- "integrity": "sha512-D0IMhwcJUg1Y8FSry6XAplEJcljkHVlvAZddhhsdbL1rbsqRsMfGx/PIkPYq0ru5aDgn+OxhQ5N5yR7P9mfsvA==",
- "dependencies": {}
- },
- "conventional-changelog-eslint@5.0.0": {
- "integrity": "sha512-6JtLWqAQIeJLn/OzUlYmzd9fKeNSWmQVim9kql+v4GrZwLx807kAJl3IJVc3jTYfVKWLxhC3BGUxYiuVEcVjgA==",
- "dependencies": {}
- },
- "conventional-changelog-express@4.0.0": {
- "integrity": "sha512-yWyy5c7raP9v7aTvPAWzqrztACNO9+FEI1FSYh7UP7YT1AkWgv5UspUeB5v3Ibv4/o60zj2o9GF2tqKQ99lIsw==",
- "dependencies": {}
- },
- "conventional-changelog-jquery@5.0.0": {
- "integrity": "sha512-slLjlXLRNa/icMI3+uGLQbtrgEny3RgITeCxevJB+p05ExiTgHACP5p3XiMKzjBn80n+Rzr83XMYfRInEtCPPw==",
- "dependencies": {}
- },
- "conventional-changelog-jshint@4.0.0": {
- "integrity": "sha512-LyXq1bbl0yG0Ai1SbLxIk8ZxUOe3AjnlwE6sVRQmMgetBk+4gY9EO3d00zlEt8Y8gwsITytDnPORl8al7InTjg==",
- "dependencies": {
- "compare-func": "compare-func@2.0.0"
- }
- },
- "conventional-changelog-preset-loader@4.1.0": {
- "integrity": "sha512-HozQjJicZTuRhCRTq4rZbefaiCzRM2pr6u2NL3XhrmQm4RMnDXfESU6JKu/pnKwx5xtdkYfNCsbhN5exhiKGJA==",
- "dependencies": {}
- },
- "conventional-changelog-writer@7.0.1": {
- "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==",
- "dependencies": {
- "conventional-commits-filter": "conventional-commits-filter@4.0.0",
- "handlebars": "handlebars@4.7.8",
- "json-stringify-safe": "json-stringify-safe@5.0.1",
- "meow": "meow@12.1.1",
- "semver": "semver@7.6.2",
- "split2": "split2@4.2.0"
- }
- },
- "conventional-changelog@5.1.0": {
- "integrity": "sha512-aWyE/P39wGYRPllcCEZDxTVEmhyLzTc9XA6z6rVfkuCD2UBnhV/sgSOKbQrEG5z9mEZJjnopjgQooTKxEg8mAg==",
- "dependencies": {
- "conventional-changelog-angular": "conventional-changelog-angular@7.0.0",
- "conventional-changelog-atom": "conventional-changelog-atom@4.0.0",
- "conventional-changelog-codemirror": "conventional-changelog-codemirror@4.0.0",
- "conventional-changelog-conventionalcommits": "conventional-changelog-conventionalcommits@7.0.2",
- "conventional-changelog-core": "conventional-changelog-core@7.0.0",
- "conventional-changelog-ember": "conventional-changelog-ember@4.0.0",
- "conventional-changelog-eslint": "conventional-changelog-eslint@5.0.0",
- "conventional-changelog-express": "conventional-changelog-express@4.0.0",
- "conventional-changelog-jquery": "conventional-changelog-jquery@5.0.0",
- "conventional-changelog-jshint": "conventional-changelog-jshint@4.0.0",
- "conventional-changelog-preset-loader": "conventional-changelog-preset-loader@4.1.0"
- }
- },
- "conventional-commits-filter@4.0.0": {
- "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==",
- "dependencies": {}
- },
- "conventional-commits-parser@5.0.0": {
- "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==",
- "dependencies": {
- "JSONStream": "JSONStream@1.3.5",
- "is-text-path": "is-text-path@2.0.0",
- "meow": "meow@12.1.1",
- "split2": "split2@4.2.0"
- }
- },
- "cross-spawn@7.0.3": {
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dependencies": {
- "path-key": "path-key@3.1.1",
- "shebang-command": "shebang-command@2.0.0",
- "which": "which@2.0.2"
- }
- },
- "dargs@8.1.0": {
- "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==",
- "dependencies": {}
- },
- "debug@4.3.5": {
- "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
- "dependencies": {
- "ms": "ms@2.1.2"
- }
- },
- "deep-eql@5.0.2": {
- "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
- "dependencies": {}
- },
- "dir-glob@3.0.1": {
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dependencies": {
- "path-type": "path-type@4.0.0"
- }
- },
- "dot-prop@5.3.0": {
- "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
- "dependencies": {
- "is-obj": "is-obj@2.0.0"
- }
- },
- "eastasianwidth@0.2.0": {
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dependencies": {}
- },
- "emoji-regex@8.0.0": {
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dependencies": {}
- },
- "emoji-regex@9.2.2": {
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dependencies": {}
- },
- "error-ex@1.3.2": {
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dependencies": {
- "is-arrayish": "is-arrayish@0.2.1"
- }
- },
- "esbuild@0.21.5": {
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
- "dependencies": {
- "@esbuild/aix-ppc64": "@esbuild/aix-ppc64@0.21.5",
- "@esbuild/android-arm": "@esbuild/android-arm@0.21.5",
- "@esbuild/android-arm64": "@esbuild/android-arm64@0.21.5",
- "@esbuild/android-x64": "@esbuild/android-x64@0.21.5",
- "@esbuild/darwin-arm64": "@esbuild/darwin-arm64@0.21.5",
- "@esbuild/darwin-x64": "@esbuild/darwin-x64@0.21.5",
- "@esbuild/freebsd-arm64": "@esbuild/freebsd-arm64@0.21.5",
- "@esbuild/freebsd-x64": "@esbuild/freebsd-x64@0.21.5",
- "@esbuild/linux-arm": "@esbuild/linux-arm@0.21.5",
- "@esbuild/linux-arm64": "@esbuild/linux-arm64@0.21.5",
- "@esbuild/linux-ia32": "@esbuild/linux-ia32@0.21.5",
- "@esbuild/linux-loong64": "@esbuild/linux-loong64@0.21.5",
- "@esbuild/linux-mips64el": "@esbuild/linux-mips64el@0.21.5",
- "@esbuild/linux-ppc64": "@esbuild/linux-ppc64@0.21.5",
- "@esbuild/linux-riscv64": "@esbuild/linux-riscv64@0.21.5",
- "@esbuild/linux-s390x": "@esbuild/linux-s390x@0.21.5",
- "@esbuild/linux-x64": "@esbuild/linux-x64@0.21.5",
- "@esbuild/netbsd-x64": "@esbuild/netbsd-x64@0.21.5",
- "@esbuild/openbsd-x64": "@esbuild/openbsd-x64@0.21.5",
- "@esbuild/sunos-x64": "@esbuild/sunos-x64@0.21.5",
- "@esbuild/win32-arm64": "@esbuild/win32-arm64@0.21.5",
- "@esbuild/win32-ia32": "@esbuild/win32-ia32@0.21.5",
- "@esbuild/win32-x64": "@esbuild/win32-x64@0.21.5"
- }
- },
- "escape-string-regexp@1.0.5": {
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dependencies": {}
- },
- "estree-walker@3.0.3": {
- "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
- "dependencies": {
- "@types/estree": "@types/estree@1.0.5"
- }
- },
- "execa@5.1.1": {
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dependencies": {
- "cross-spawn": "cross-spawn@7.0.3",
- "get-stream": "get-stream@6.0.1",
- "human-signals": "human-signals@2.1.0",
- "is-stream": "is-stream@2.0.1",
- "merge-stream": "merge-stream@2.0.0",
- "npm-run-path": "npm-run-path@4.0.1",
- "onetime": "onetime@5.1.2",
- "signal-exit": "signal-exit@3.0.7",
- "strip-final-newline": "strip-final-newline@2.0.0"
- }
- },
- "execa@8.0.1": {
- "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
- "dependencies": {
- "cross-spawn": "cross-spawn@7.0.3",
- "get-stream": "get-stream@8.0.1",
- "human-signals": "human-signals@5.0.0",
- "is-stream": "is-stream@3.0.0",
- "merge-stream": "merge-stream@2.0.0",
- "npm-run-path": "npm-run-path@5.3.0",
- "onetime": "onetime@6.0.0",
- "signal-exit": "signal-exit@4.1.0",
- "strip-final-newline": "strip-final-newline@3.0.0"
- }
- },
- "fast-glob@3.3.2": {
- "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
- "dependencies": {
- "@nodelib/fs.stat": "@nodelib/fs.stat@2.0.5",
- "@nodelib/fs.walk": "@nodelib/fs.walk@1.2.8",
- "glob-parent": "glob-parent@5.1.2",
- "merge2": "merge2@1.4.1",
- "micromatch": "micromatch@4.0.7"
- }
- },
- "fastq@1.17.1": {
- "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
- "dependencies": {
- "reusify": "reusify@1.0.4"
- }
- },
- "fill-range@7.1.1": {
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "dependencies": {
- "to-regex-range": "to-regex-range@5.0.1"
- }
- },
- "find-up@6.3.0": {
- "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
- "dependencies": {
- "locate-path": "locate-path@7.2.0",
- "path-exists": "path-exists@5.0.0"
- }
- },
- "foreground-child@3.2.1": {
- "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
- "dependencies": {
- "cross-spawn": "cross-spawn@7.0.3",
- "signal-exit": "signal-exit@4.1.0"
- }
- },
- "fsevents@2.3.3": {
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dependencies": {}
- },
- "get-func-name@2.0.2": {
- "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
- "dependencies": {}
- },
- "get-stream@6.0.1": {
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dependencies": {}
- },
- "get-stream@8.0.1": {
- "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
- "dependencies": {}
- },
- "get-tsconfig@4.7.5": {
- "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==",
- "dependencies": {
- "resolve-pkg-maps": "resolve-pkg-maps@1.0.0"
- }
- },
- "git-raw-commits@4.0.0": {
- "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==",
- "dependencies": {
- "dargs": "dargs@8.1.0",
- "meow": "meow@12.1.1",
- "split2": "split2@4.2.0"
- }
- },
- "git-semver-tags@7.0.1": {
- "integrity": "sha512-NY0ZHjJzyyNXHTDZmj+GG7PyuAKtMsyWSwh07CR2hOZFa+/yoTsXci/nF2obzL8UDhakFNkD9gNdt/Ed+cxh2Q==",
- "dependencies": {
- "meow": "meow@12.1.1",
- "semver": "semver@7.6.2"
- }
- },
- "glob-parent@5.1.2": {
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dependencies": {
- "is-glob": "is-glob@4.0.3"
- }
- },
- "glob@10.4.5": {
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "dependencies": {
- "foreground-child": "foreground-child@3.2.1",
- "jackspeak": "jackspeak@3.4.3",
- "minimatch": "minimatch@9.0.5",
- "minipass": "minipass@7.1.2",
- "package-json-from-dist": "package-json-from-dist@1.0.0",
- "path-scurry": "path-scurry@1.11.1"
- }
- },
- "glob@11.0.0": {
- "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==",
- "dependencies": {
- "foreground-child": "foreground-child@3.2.1",
- "jackspeak": "jackspeak@4.0.1",
- "minimatch": "minimatch@10.0.1",
- "minipass": "minipass@7.1.2",
- "package-json-from-dist": "package-json-from-dist@1.0.0",
- "path-scurry": "path-scurry@2.0.0"
- }
- },
- "globby@11.1.0": {
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "dependencies": {
- "array-union": "array-union@2.1.0",
- "dir-glob": "dir-glob@3.0.1",
- "fast-glob": "fast-glob@3.3.2",
- "ignore": "ignore@5.3.1",
- "merge2": "merge2@1.4.1",
- "slash": "slash@3.0.0"
- }
- },
- "handlebars@4.7.8": {
- "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
- "dependencies": {
- "minimist": "minimist@1.2.8",
- "neo-async": "neo-async@2.6.2",
- "source-map": "source-map@0.6.1",
- "uglify-js": "uglify-js@3.18.0",
- "wordwrap": "wordwrap@1.0.0"
- }
- },
- "has-flag@3.0.0": {
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dependencies": {}
- },
- "has-flag@4.0.0": {
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dependencies": {}
- },
- "hono@4.4.13": {
- "integrity": "sha512-c6qqenclmQ6wpXzqiElMa2jt423PVCmgBreDfC5s2lPPpGk7d0lOymd8QTzFZyYC5mSSs6imiTMPip+gLwuW/g==",
- "dependencies": {}
- },
- "hosted-git-info@7.0.2": {
- "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
- "dependencies": {
- "lru-cache": "lru-cache@10.4.3"
- }
- },
- "human-signals@2.1.0": {
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dependencies": {}
- },
- "human-signals@5.0.0": {
- "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
- "dependencies": {}
- },
- "ignore@5.3.1": {
- "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
- "dependencies": {}
- },
- "is-arrayish@0.2.1": {
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dependencies": {}
- },
- "is-binary-path@2.1.0": {
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dependencies": {
- "binary-extensions": "binary-extensions@2.3.0"
- }
- },
- "is-extglob@2.1.1": {
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dependencies": {}
- },
- "is-fullwidth-code-point@3.0.0": {
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dependencies": {}
- },
- "is-glob@4.0.3": {
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dependencies": {
- "is-extglob": "is-extglob@2.1.1"
- }
- },
- "is-number@7.0.0": {
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dependencies": {}
- },
- "is-obj@2.0.0": {
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
- "dependencies": {}
- },
- "is-stream@2.0.1": {
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dependencies": {}
- },
- "is-stream@3.0.0": {
- "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
- "dependencies": {}
- },
- "is-text-path@2.0.0": {
- "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==",
- "dependencies": {
- "text-extensions": "text-extensions@2.4.0"
- }
- },
- "isexe@2.0.0": {
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dependencies": {}
- },
- "jackspeak@3.4.3": {
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "dependencies": {
- "@isaacs/cliui": "@isaacs/cliui@8.0.2",
- "@pkgjs/parseargs": "@pkgjs/parseargs@0.11.0"
- }
- },
- "jackspeak@4.0.1": {
- "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==",
- "dependencies": {
- "@isaacs/cliui": "@isaacs/cliui@8.0.2",
- "@pkgjs/parseargs": "@pkgjs/parseargs@0.11.0"
- }
- },
- "joycon@3.1.1": {
- "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==",
- "dependencies": {}
- },
- "js-tokens@4.0.0": {
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dependencies": {}
- },
- "json-parse-even-better-errors@3.0.2": {
- "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
- "dependencies": {}
- },
- "json-stringify-safe@5.0.1": {
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
- "dependencies": {}
- },
- "jsonparse@1.3.1": {
- "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
- "dependencies": {}
- },
- "lilconfig@3.1.2": {
- "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
- "dependencies": {}
- },
- "lines-and-columns@1.2.4": {
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dependencies": {}
- },
- "lines-and-columns@2.0.4": {
- "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==",
- "dependencies": {}
- },
- "load-tsconfig@0.2.5": {
- "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==",
- "dependencies": {}
- },
- "locate-path@7.2.0": {
- "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
- "dependencies": {
- "p-locate": "p-locate@6.0.0"
- }
- },
- "lodash.sortby@4.7.0": {
- "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==",
- "dependencies": {}
- },
- "loupe@3.1.1": {
- "integrity": "sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==",
- "dependencies": {
- "get-func-name": "get-func-name@2.0.2"
- }
- },
- "lru-cache@10.4.3": {
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dependencies": {}
- },
- "lru-cache@11.0.0": {
- "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==",
- "dependencies": {}
- },
- "magic-string@0.30.10": {
- "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
- "dependencies": {
- "@jridgewell/sourcemap-codec": "@jridgewell/sourcemap-codec@1.5.0"
- }
- },
- "meow@12.1.1": {
- "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==",
- "dependencies": {}
- },
- "merge-stream@2.0.0": {
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dependencies": {}
- },
- "merge2@1.4.1": {
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dependencies": {}
- },
- "micromatch@4.0.7": {
- "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
- "dependencies": {
- "braces": "braces@3.0.3",
- "picomatch": "picomatch@2.3.1"
- }
- },
- "mimic-fn@2.1.0": {
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dependencies": {}
- },
- "mimic-fn@4.0.0": {
- "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
- "dependencies": {}
- },
- "minimatch@10.0.1": {
- "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==",
- "dependencies": {
- "brace-expansion": "brace-expansion@2.0.1"
- }
- },
- "minimatch@9.0.5": {
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dependencies": {
- "brace-expansion": "brace-expansion@2.0.1"
- }
- },
- "minimist@1.2.8": {
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "dependencies": {}
- },
- "minipass@7.1.2": {
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "dependencies": {}
- },
- "mri@1.2.0": {
- "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
- "dependencies": {}
- },
- "ms@2.1.2": {
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dependencies": {}
- },
- "mz@2.7.0": {
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "dependencies": {
- "any-promise": "any-promise@1.3.0",
- "object-assign": "object-assign@4.1.1",
- "thenify-all": "thenify-all@1.6.0"
- }
- },
- "nanoid@3.3.7": {
- "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
- "dependencies": {}
- },
- "neo-async@2.6.2": {
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dependencies": {}
- },
- "normalize-package-data@6.0.2": {
- "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
- "dependencies": {
- "hosted-git-info": "hosted-git-info@7.0.2",
- "semver": "semver@7.6.2",
- "validate-npm-package-license": "validate-npm-package-license@3.0.4"
- }
- },
- "normalize-path@3.0.0": {
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dependencies": {}
- },
- "npm-run-path@4.0.1": {
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dependencies": {
- "path-key": "path-key@3.1.1"
- }
- },
- "npm-run-path@5.3.0": {
- "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
- "dependencies": {
- "path-key": "path-key@4.0.0"
- }
- },
- "object-assign@4.1.1": {
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dependencies": {}
- },
- "onetime@5.1.2": {
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dependencies": {
- "mimic-fn": "mimic-fn@2.1.0"
- }
- },
- "onetime@6.0.0": {
- "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
- "dependencies": {
- "mimic-fn": "mimic-fn@4.0.0"
- }
- },
- "p-limit@4.0.0": {
- "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
- "dependencies": {
- "yocto-queue": "yocto-queue@1.1.1"
- }
- },
- "p-locate@6.0.0": {
- "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
- "dependencies": {
- "p-limit": "p-limit@4.0.0"
- }
- },
- "package-json-from-dist@1.0.0": {
- "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==",
- "dependencies": {}
- },
- "parse-json@7.1.1": {
- "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==",
- "dependencies": {
- "@babel/code-frame": "@babel/code-frame@7.24.7",
- "error-ex": "error-ex@1.3.2",
- "json-parse-even-better-errors": "json-parse-even-better-errors@3.0.2",
- "lines-and-columns": "lines-and-columns@2.0.4",
- "type-fest": "type-fest@3.13.1"
- }
- },
- "path-exists@5.0.0": {
- "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
- "dependencies": {}
- },
- "path-key@3.1.1": {
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dependencies": {}
- },
- "path-key@4.0.0": {
- "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
- "dependencies": {}
- },
- "path-scurry@1.11.1": {
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
- "dependencies": {
- "lru-cache": "lru-cache@10.4.3",
- "minipass": "minipass@7.1.2"
- }
- },
- "path-scurry@2.0.0": {
- "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==",
- "dependencies": {
- "lru-cache": "lru-cache@11.0.0",
- "minipass": "minipass@7.1.2"
- }
- },
- "path-type@4.0.0": {
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dependencies": {}
- },
- "pathe@1.1.2": {
- "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
- "dependencies": {}
- },
- "pathval@2.0.0": {
- "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
- "dependencies": {}
- },
- "picocolors@1.0.1": {
- "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
- "dependencies": {}
- },
- "picomatch@2.3.1": {
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dependencies": {}
- },
- "pirates@4.0.6": {
- "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
- "dependencies": {}
- },
- "postcss-load-config@4.0.2": {
- "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
- "dependencies": {
- "lilconfig": "lilconfig@3.1.2",
- "yaml": "yaml@2.4.5"
- }
- },
- "postcss@8.4.39": {
- "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==",
- "dependencies": {
- "nanoid": "nanoid@3.3.7",
- "picocolors": "picocolors@1.0.1",
- "source-map-js": "source-map-js@1.2.0"
- }
- },
- "punycode@2.3.1": {
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "dependencies": {}
- },
- "queue-microtask@1.2.3": {
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dependencies": {}
- },
- "read-pkg-up@10.1.0": {
- "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==",
- "dependencies": {
- "find-up": "find-up@6.3.0",
- "read-pkg": "read-pkg@8.1.0",
- "type-fest": "type-fest@4.21.0"
- }
- },
- "read-pkg@8.1.0": {
- "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==",
- "dependencies": {
- "@types/normalize-package-data": "@types/normalize-package-data@2.4.4",
- "normalize-package-data": "normalize-package-data@6.0.2",
- "parse-json": "parse-json@7.1.1",
- "type-fest": "type-fest@4.21.0"
- }
- },
- "readdirp@3.6.0": {
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dependencies": {
- "picomatch": "picomatch@2.3.1"
- }
- },
- "resolve-from@5.0.0": {
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dependencies": {}
- },
- "resolve-pkg-maps@1.0.0": {
- "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
- "dependencies": {}
- },
- "reusify@1.0.4": {
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dependencies": {}
- },
- "rimraf@6.0.1": {
- "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==",
- "dependencies": {
- "glob": "glob@11.0.0",
- "package-json-from-dist": "package-json-from-dist@1.0.0"
- }
- },
- "rollup@4.18.1": {
- "integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==",
- "dependencies": {
- "@rollup/rollup-android-arm-eabi": "@rollup/rollup-android-arm-eabi@4.18.1",
- "@rollup/rollup-android-arm64": "@rollup/rollup-android-arm64@4.18.1",
- "@rollup/rollup-darwin-arm64": "@rollup/rollup-darwin-arm64@4.18.1",
- "@rollup/rollup-darwin-x64": "@rollup/rollup-darwin-x64@4.18.1",
- "@rollup/rollup-linux-arm-gnueabihf": "@rollup/rollup-linux-arm-gnueabihf@4.18.1",
- "@rollup/rollup-linux-arm-musleabihf": "@rollup/rollup-linux-arm-musleabihf@4.18.1",
- "@rollup/rollup-linux-arm64-gnu": "@rollup/rollup-linux-arm64-gnu@4.18.1",
- "@rollup/rollup-linux-arm64-musl": "@rollup/rollup-linux-arm64-musl@4.18.1",
- "@rollup/rollup-linux-powerpc64le-gnu": "@rollup/rollup-linux-powerpc64le-gnu@4.18.1",
- "@rollup/rollup-linux-riscv64-gnu": "@rollup/rollup-linux-riscv64-gnu@4.18.1",
- "@rollup/rollup-linux-s390x-gnu": "@rollup/rollup-linux-s390x-gnu@4.18.1",
- "@rollup/rollup-linux-x64-gnu": "@rollup/rollup-linux-x64-gnu@4.18.1",
- "@rollup/rollup-linux-x64-musl": "@rollup/rollup-linux-x64-musl@4.18.1",
- "@rollup/rollup-win32-arm64-msvc": "@rollup/rollup-win32-arm64-msvc@4.18.1",
- "@rollup/rollup-win32-ia32-msvc": "@rollup/rollup-win32-ia32-msvc@4.18.1",
- "@rollup/rollup-win32-x64-msvc": "@rollup/rollup-win32-x64-msvc@4.18.1",
- "@types/estree": "@types/estree@1.0.5",
- "fsevents": "fsevents@2.3.3"
- }
- },
- "run-parallel@1.2.0": {
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dependencies": {
- "queue-microtask": "queue-microtask@1.2.3"
- }
- },
- "semver@7.6.2": {
- "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
- "dependencies": {}
- },
- "shebang-command@2.0.0": {
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dependencies": {
- "shebang-regex": "shebang-regex@3.0.0"
- }
- },
- "shebang-regex@3.0.0": {
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dependencies": {}
- },
- "siginfo@2.0.0": {
- "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
- "dependencies": {}
- },
- "signal-exit@3.0.7": {
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dependencies": {}
- },
- "signal-exit@4.1.0": {
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dependencies": {}
- },
- "slash@3.0.0": {
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dependencies": {}
- },
- "source-map-js@1.2.0": {
- "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
- "dependencies": {}
- },
- "source-map@0.6.1": {
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dependencies": {}
- },
- "source-map@0.8.0-beta.0": {
- "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
- "dependencies": {
- "whatwg-url": "whatwg-url@7.1.0"
- }
- },
- "spdx-correct@3.2.0": {
- "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
- "dependencies": {
- "spdx-expression-parse": "spdx-expression-parse@3.0.1",
- "spdx-license-ids": "spdx-license-ids@3.0.18"
- }
- },
- "spdx-exceptions@2.5.0": {
- "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
- "dependencies": {}
- },
- "spdx-expression-parse@3.0.1": {
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dependencies": {
- "spdx-exceptions": "spdx-exceptions@2.5.0",
- "spdx-license-ids": "spdx-license-ids@3.0.18"
- }
- },
- "spdx-license-ids@3.0.18": {
- "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==",
- "dependencies": {}
- },
- "split2@4.2.0": {
- "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
- "dependencies": {}
- },
- "stackback@0.0.2": {
- "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
- "dependencies": {}
- },
- "std-env@3.7.0": {
- "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==",
- "dependencies": {}
- },
- "string-width@4.2.3": {
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dependencies": {
- "emoji-regex": "emoji-regex@8.0.0",
- "is-fullwidth-code-point": "is-fullwidth-code-point@3.0.0",
- "strip-ansi": "strip-ansi@6.0.1"
- }
- },
- "string-width@5.1.2": {
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dependencies": {
- "eastasianwidth": "eastasianwidth@0.2.0",
- "emoji-regex": "emoji-regex@9.2.2",
- "strip-ansi": "strip-ansi@7.1.0"
- }
- },
- "strip-ansi@6.0.1": {
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dependencies": {
- "ansi-regex": "ansi-regex@5.0.1"
- }
- },
- "strip-ansi@7.1.0": {
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dependencies": {
- "ansi-regex": "ansi-regex@6.0.1"
- }
- },
- "strip-final-newline@2.0.0": {
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dependencies": {}
- },
- "strip-final-newline@3.0.0": {
- "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
- "dependencies": {}
- },
- "sucrase@3.35.0": {
- "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
- "dependencies": {
- "@jridgewell/gen-mapping": "@jridgewell/gen-mapping@0.3.5",
- "commander": "commander@4.1.1",
- "glob": "glob@10.4.5",
- "lines-and-columns": "lines-and-columns@1.2.4",
- "mz": "mz@2.7.0",
- "pirates": "pirates@4.0.6",
- "ts-interface-checker": "ts-interface-checker@0.1.13"
- }
- },
- "supports-color@5.5.0": {
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dependencies": {
- "has-flag": "has-flag@3.0.0"
- }
- },
- "supports-color@7.2.0": {
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "has-flag@4.0.0"
- }
- },
- "text-extensions@2.4.0": {
- "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==",
- "dependencies": {}
- },
- "thenify-all@1.6.0": {
- "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
- "dependencies": {
- "thenify": "thenify@3.3.1"
- }
- },
- "thenify@3.3.1": {
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "dependencies": {
- "any-promise": "any-promise@1.3.0"
- }
- },
- "through@2.3.8": {
- "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
- "dependencies": {}
- },
- "tinybench@2.8.0": {
- "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==",
- "dependencies": {}
- },
- "tinypool@1.0.0": {
- "integrity": "sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==",
- "dependencies": {}
- },
- "tinyrainbow@1.2.0": {
- "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==",
- "dependencies": {}
- },
- "tinyspy@3.0.0": {
- "integrity": "sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==",
- "dependencies": {}
- },
- "to-regex-range@5.0.1": {
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dependencies": {
- "is-number": "is-number@7.0.0"
- }
- },
- "tr46@1.0.1": {
- "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
- "dependencies": {
- "punycode": "punycode@2.3.1"
- }
- },
- "tree-kill@1.2.2": {
- "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
- "dependencies": {}
- },
- "ts-interface-checker@0.1.13": {
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "dependencies": {}
- },
- "tsup@8.1.0_typescript@5.5.3_esbuild@0.21.5": {
- "integrity": "sha512-UFdfCAXukax+U6KzeTNO2kAARHcWxmKsnvSPXUcfA1D+kU05XDccCrkffCQpFaWDsZfV0jMyTsxU39VfCp6EOg==",
- "dependencies": {
- "bundle-require": "bundle-require@4.2.1_esbuild@0.21.5",
- "cac": "cac@6.7.14",
- "chokidar": "chokidar@3.6.0",
- "debug": "debug@4.3.5",
- "esbuild": "esbuild@0.21.5",
- "execa": "execa@5.1.1",
- "globby": "globby@11.1.0",
- "joycon": "joycon@3.1.1",
- "postcss-load-config": "postcss-load-config@4.0.2",
- "resolve-from": "resolve-from@5.0.0",
- "rollup": "rollup@4.18.1",
- "source-map": "source-map@0.8.0-beta.0",
- "sucrase": "sucrase@3.35.0",
- "tree-kill": "tree-kill@1.2.2",
- "typescript": "typescript@5.5.3"
- }
- },
- "tsx@4.16.2": {
- "integrity": "sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==",
- "dependencies": {
- "esbuild": "esbuild@0.21.5",
- "fsevents": "fsevents@2.3.3",
- "get-tsconfig": "get-tsconfig@4.7.5"
- }
- },
- "type-fest@3.13.1": {
- "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
- "dependencies": {}
- },
- "type-fest@4.21.0": {
- "integrity": "sha512-ADn2w7hVPcK6w1I0uWnM//y1rLXZhzB9mr0a3OirzclKF1Wp6VzevUmzz/NRAWunOT6E8HrnpGY7xOfc6K57fA==",
- "dependencies": {}
- },
- "typescript@5.5.3": {
- "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==",
- "dependencies": {}
- },
- "uglify-js@3.18.0": {
- "integrity": "sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==",
- "dependencies": {}
- },
- "undici-types@5.26.5": {
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
- "dependencies": {}
- },
- "validate-npm-package-license@3.0.4": {
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dependencies": {
- "spdx-correct": "spdx-correct@3.2.0",
- "spdx-expression-parse": "spdx-expression-parse@3.0.1"
- }
- },
- "vite-node@2.0.2_@types+node@20.14.10": {
- "integrity": "sha512-w4vkSz1Wo+NIQg8pjlEn0jQbcM/0D+xVaYjhw3cvarTanLLBh54oNiRbsT8PNK5GfuST0IlVXjsNRoNlqvY/fw==",
- "dependencies": {
- "cac": "cac@6.7.14",
- "debug": "debug@4.3.5",
- "pathe": "pathe@1.1.2",
- "tinyrainbow": "tinyrainbow@1.2.0",
- "vite": "vite@5.3.3_@types+node@20.14.10"
- }
- },
- "vite@5.3.3_@types+node@20.14.10": {
- "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==",
- "dependencies": {
- "@types/node": "@types/node@20.14.10",
- "esbuild": "esbuild@0.21.5",
- "fsevents": "fsevents@2.3.3",
- "postcss": "postcss@8.4.39",
- "rollup": "rollup@4.18.1"
- }
- },
- "vitest@2.0.2_@types+node@20.14.10": {
- "integrity": "sha512-WlpZ9neRIjNBIOQwBYfBSr0+of5ZCbxT2TVGKW4Lv0c8+srCFIiRdsP7U009t8mMn821HQ4XKgkx5dVWpyoyLw==",
- "dependencies": {
- "@ampproject/remapping": "@ampproject/remapping@2.3.0",
- "@types/node": "@types/node@20.14.10",
- "@vitest/expect": "@vitest/expect@2.0.2",
- "@vitest/pretty-format": "@vitest/pretty-format@2.0.2",
- "@vitest/runner": "@vitest/runner@2.0.2",
- "@vitest/snapshot": "@vitest/snapshot@2.0.2",
- "@vitest/spy": "@vitest/spy@2.0.2",
- "@vitest/utils": "@vitest/utils@2.0.2",
- "chai": "chai@5.1.1",
- "debug": "debug@4.3.5",
- "execa": "execa@8.0.1",
- "magic-string": "magic-string@0.30.10",
- "pathe": "pathe@1.1.2",
- "std-env": "std-env@3.7.0",
- "tinybench": "tinybench@2.8.0",
- "tinypool": "tinypool@1.0.0",
- "tinyrainbow": "tinyrainbow@1.2.0",
- "vite": "vite@5.3.3_@types+node@20.14.10",
- "vite-node": "vite-node@2.0.2_@types+node@20.14.10",
- "why-is-node-running": "why-is-node-running@2.3.0"
- }
- },
- "wait-port@1.1.0": {
- "integrity": "sha512-3e04qkoN3LxTMLakdqeWth8nih8usyg+sf1Bgdf9wwUkp05iuK1eSY/QpLvscT/+F/gA89+LpUmmgBtesbqI2Q==",
- "dependencies": {
- "chalk": "chalk@4.1.2",
- "commander": "commander@9.5.0",
- "debug": "debug@4.3.5"
- }
- },
- "webidl-conversions@4.0.2": {
- "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
- "dependencies": {}
- },
- "whatwg-url@7.1.0": {
- "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
- "dependencies": {
- "lodash.sortby": "lodash.sortby@4.7.0",
- "tr46": "tr46@1.0.1",
- "webidl-conversions": "webidl-conversions@4.0.2"
- }
- },
- "which@2.0.2": {
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dependencies": {
- "isexe": "isexe@2.0.0"
- }
- },
- "why-is-node-running@2.3.0": {
- "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
- "dependencies": {
- "siginfo": "siginfo@2.0.0",
- "stackback": "stackback@0.0.2"
- }
- },
- "wordwrap@1.0.0": {
- "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
- "dependencies": {}
- },
- "wrap-ansi@7.0.0": {
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dependencies": {
- "ansi-styles": "ansi-styles@4.3.0",
- "string-width": "string-width@4.2.3",
- "strip-ansi": "strip-ansi@6.0.1"
- }
- },
- "wrap-ansi@8.1.0": {
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "dependencies": {
- "ansi-styles": "ansi-styles@6.2.1",
- "string-width": "string-width@5.1.2",
- "strip-ansi": "strip-ansi@7.1.0"
- }
- },
- "yaml@2.4.5": {
- "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==",
- "dependencies": {}
- },
- "yocto-queue@1.1.1": {
- "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==",
- "dependencies": {}
- },
- "zx@8.1.4": {
- "integrity": "sha512-QFDYYpnzdpRiJ3dL2102Cw26FpXpWshW4QLTGxiYfIcwdAqg084jRCkK/kuP/NOSkxOjydRwNFG81qzA5r1a6w==",
- "dependencies": {
- "@types/fs-extra": "@types/fs-extra@11.0.4",
- "@types/node": "@types/node@20.14.10"
- }
- }
- }
- },
- "remote": {},
- "workspace": {
- "dependencies": [
- "npm:mri",
- "npm:wait-port",
- "npm:zx"
- ],
- "packageJson": {
- "dependencies": [
- "npm:@brillout/release-me@^0.3.9",
- "npm:@types/node@^20.14.10",
- "npm:@universal-middleware/core@^0.1.1",
- "npm:hono@^4.4.13",
- "npm:rimraf@^6.0.0",
- "npm:tsup@^8.1.0",
- "npm:tsx@^4.16.2",
- "npm:typescript@^5.5.3",
- "npm:vitest@^2.0.2"
- ]
- }
- }
-}
diff --git a/packages/adapter-hono/package.json b/packages/adapter-hono/package.json
index 080a25a..bca75c9 100644
--- a/packages/adapter-hono/package.json
+++ b/packages/adapter-hono/package.json
@@ -19,7 +19,7 @@
"test": "vitest run",
"test:run-hono:node": "tsx tests/entry-hono.ts",
"test:run-hono:bun": "bun tests/entry-hono.ts",
- "test:run-hono:deno": "deno run --unstable-sloppy-imports -A tests/entry-hono.ts",
+ "test:run-hono:deno": "deno run --unstable-byonm --unstable-sloppy-imports -A tests/entry-hono.ts",
"test:typecheck": "tsc -p tsconfig.json --noEmit",
"release": "LANG=en_US release-me patch",
"release:minor": "LANG=en_US release-me minor",
@@ -29,14 +29,16 @@
"@universal-middleware/core": "^0.1.1"
},
"devDependencies": {
- "@brillout/release-me": "^0.3.9",
+ "@brillout/release-me": "^0.4.0",
+ "@swc/core": "^1.7.11",
"@types/node": "^20.14.10",
"@universal-middleware/tests": "workspace:*",
- "hono": "^4.4.13",
+ "hono": "^4.5.6",
"rimraf": "^6.0.0",
- "tsup": "^8.1.0",
- "tsx": "^4.16.2",
- "typescript": "^5.5.3",
- "vitest": "^2.0.2"
- }
+ "tsup": "^8.2.4",
+ "tsx": "^4.17.0",
+ "typescript": "^5.5.4",
+ "vitest": "^2.0.5"
+ },
+ "sideEffects": false
}
diff --git a/packages/adapter-hono/src/common.ts b/packages/adapter-hono/src/common.ts
index 512afa6..baef990 100644
--- a/packages/adapter-hono/src/common.ts
+++ b/packages/adapter-hono/src/common.ts
@@ -1,52 +1,116 @@
-import type { Context as HonoContext, Handler, MiddlewareHandler } from "hono";
import type {
+ Context as HonoContext,
+ Env,
+ Handler,
+ MiddlewareHandler,
+} from "hono";
+import type {
+ Get,
UniversalHandler,
UniversalMiddleware,
} from "@universal-middleware/core";
+import { getAdapterRuntime } from "@universal-middleware/core";
+
+interface UniversalEnv {
+ Bindings: Env["Bindings"];
+ Variables: Env["Variables"] & Record;
+}
+
+export type HonoHandler = Handler;
+export type HonoMiddleware = MiddlewareHandler;
export const contextSymbol = Symbol("unContext");
+function getExecutionCtx(honoContext: HonoContext) {
+ try {
+ return honoContext.executionCtx;
+ } catch {
+ return;
+ }
+}
+
/**
* Creates a request handler to be passed to app.all() or any other route function
*/
-export function createHandler(handler: UniversalHandler): Handler {
- return (honoContext) => {
- let context: Universal.Context = honoContext.get(contextSymbol);
- if (typeof context !== "object") {
- context = {};
- honoContext.set(contextSymbol, context);
- }
- return handler(honoContext.req.raw, context);
+export function createHandler(
+ handlerFactory: Get,
+): Get {
+ return (...args) => {
+ const handler = handlerFactory(...args);
+
+ return (honoContext) => {
+ let context: Universal.Context = honoContext.get(contextSymbol);
+ if (typeof context !== "object") {
+ context = {};
+ honoContext.set(contextSymbol, context);
+ }
+ return handler(
+ honoContext.req.raw,
+ context,
+ getAdapterRuntime(
+ "other",
+ {},
+ {
+ env: honoContext.env,
+ ctx: getExecutionCtx(honoContext),
+ },
+ ),
+ );
+ };
};
}
/**
* Creates a middleware to be passed to app.use() or any route function
*/
-export function createMiddleware(
- middleware: UniversalMiddleware,
-): MiddlewareHandler {
- return async (honoContext, next) => {
- let context: Universal.Context = honoContext.get(contextSymbol);
- if (typeof context !== "object") {
- context = {};
- honoContext.set(contextSymbol, context);
- }
- const response = await middleware(honoContext.req.raw, context);
-
- if (typeof response === "function") {
- await next();
- honoContext.res = await response(honoContext.res);
- } else if (typeof response === "object" && "body" in response) {
- return response;
- } else {
- return next();
- }
+export function createMiddleware<
+ T extends unknown[],
+ InContext extends Universal.Context,
+ OutContext extends Universal.Context,
+>(
+ middlewareFactory: Get>,
+): Get {
+ return (...args) => {
+ const middleware = middlewareFactory(...args);
+
+ return async (honoContext, next) => {
+ let context = honoContext.get(contextSymbol) as InContext;
+ if (typeof context !== "object") {
+ context = {} as InContext;
+ honoContext.set(contextSymbol, context);
+ }
+ const response = await middleware(
+ honoContext.req.raw,
+ context,
+ getAdapterRuntime(
+ "other",
+ {},
+ {
+ env: honoContext.env,
+ ctx: getExecutionCtx(honoContext),
+ },
+ ),
+ );
+
+ if (typeof response === "function") {
+ await next();
+ honoContext.res = await response(honoContext.res);
+ } else if (response !== null && typeof response === "object") {
+ if (response instanceof Response) {
+ return response;
+ }
+ // Update context
+ honoContext.set(contextSymbol, response);
+ return next();
+ } else {
+ return next();
+ }
+ };
};
}
export function getContext(
- honoContext: HonoContext,
+ honoContext: HonoContext,
): Universal.Context | undefined {
return honoContext.get(contextSymbol);
}
diff --git a/packages/adapter-hono/src/index.ts b/packages/adapter-hono/src/index.ts
index 2f74b9c..328a98b 100644
--- a/packages/adapter-hono/src/index.ts
+++ b/packages/adapter-hono/src/index.ts
@@ -1 +1,7 @@
-export { createHandler, createMiddleware, getContext } from "./common.js";
+export {
+ createHandler,
+ createMiddleware,
+ getContext,
+ type HonoHandler,
+ type HonoMiddleware,
+} from "./common.js";
diff --git a/packages/adapter-hono/tests/entry-hono.ts b/packages/adapter-hono/tests/entry-hono.ts
index 69e9a88..9148e3c 100644
--- a/packages/adapter-hono/tests/entry-hono.ts
+++ b/packages/adapter-hono/tests/entry-hono.ts
@@ -8,16 +8,19 @@ import {
handler,
middlewares,
} from "@universal-middleware/tests";
+import type { Get, UniversalMiddleware } from "@universal-middleware/core";
const app = new Hono();
// standard Hono middleware
app.use(secureHeaders());
-middlewares.forEach((middleware) => app.use(createMiddleware(middleware)));
+middlewares.forEach((middleware) =>
+ app.use(createMiddleware(middleware as Get<[], UniversalMiddleware>)()),
+);
// universal handler
-app.get("/", createHandler(handler));
+app.get("/", createHandler(handler)());
const port = args.port ? parseInt(args.port) : 3000;
diff --git a/packages/adapter-webroute/CHANGELOG.md b/packages/adapter-webroute/CHANGELOG.md
new file mode 100644
index 0000000..9566676
--- /dev/null
+++ b/packages/adapter-webroute/CHANGELOG.md
@@ -0,0 +1,11 @@
+# 0.1.0 (2024-08-18)
+
+
+### Features
+
+* complete webroute support ([043298c](https://github.com/magne4000/universal-handler/commit/043298c8a3766159996ed4d02bad538a279a5617))
+* initial support for runtime parameter ([c1ac056](https://github.com/magne4000/universal-handler/commit/c1ac0566193b9492beb0ddcc135a7895319cc02c))
+* webroute adapter ([1cb1080](https://github.com/magne4000/universal-handler/commit/1cb1080c482b84c2890a6002f6b1166a0ac15005))
+
+
+
diff --git a/packages/adapter-webroute/deno.json b/packages/adapter-webroute/deno.json
new file mode 100644
index 0000000..81b93a2
--- /dev/null
+++ b/packages/adapter-webroute/deno.json
@@ -0,0 +1,11 @@
+{
+ "imports": {
+ "@universal-middleware/tests": "../tests/dist",
+ "@universal-middleware/hono": "../adapter-hono/dist",
+ "@universal-middleware/core": "../core/dist",
+ "mri": "npm:mri",
+ "zx": "npm:zx",
+ "wait-port": "npm:wait-port"
+ },
+ "lock": false
+}
diff --git a/packages/adapter-webroute/package.json b/packages/adapter-webroute/package.json
new file mode 100644
index 0000000..8a9c63e
--- /dev/null
+++ b/packages/adapter-webroute/package.json
@@ -0,0 +1,47 @@
+{
+ "name": "@universal-middleware/webroute",
+ "version": "0.1.0",
+ "type": "module",
+ "description": "Webroute adapter for universal middlewares",
+ "files": [
+ "dist"
+ ],
+ "exports": {
+ ".": "./dist/index.js"
+ },
+ "author": "Joël Charles ",
+ "repository": "https://github.com/magne4000/universal-handler",
+ "license": "MIT",
+ "scripts": {
+ "build": "rimraf dist && tsup",
+ "dev": "tsup --watch",
+ "prepack": "pnpm build",
+ "test": "vitest run",
+ "test:run-webroute:node": "tsx tests/entry-webroute.ts",
+ "test:run-webroute:bun": "bun tests/entry-webroute.ts",
+ "test:run-webroute:deno": "deno run --unstable-byonm --unstable-sloppy-imports -A tests/entry-webroute.ts",
+ "test:typecheck": "tsc -p tsconfig.json --noEmit",
+ "release": "LANG=en_US release-me patch",
+ "release:minor": "LANG=en_US release-me minor",
+ "release:commit": "LANG=en_US release-me commit"
+ },
+ "dependencies": {
+ "@universal-middleware/core": "^0.1.1"
+ },
+ "devDependencies": {
+ "@brillout/release-me": "^0.4.0",
+ "@swc/core": "^1.7.11",
+ "@types/node": "^20.14.10",
+ "@universal-middleware/hono": "workspace:*",
+ "@universal-middleware/tests": "workspace:*",
+ "@webroute/middleware": "^0.9.0",
+ "@webroute/route": "^0.6.0",
+ "hono": "^4.5.6",
+ "rimraf": "^6.0.0",
+ "tsup": "^8.2.4",
+ "tsx": "^4.17.0",
+ "typescript": "^5.5.4",
+ "vitest": "^2.0.5"
+ },
+ "sideEffects": false
+}
diff --git a/packages/adapter-webroute/readme.md b/packages/adapter-webroute/readme.md
new file mode 100644
index 0000000..1673c73
--- /dev/null
+++ b/packages/adapter-webroute/readme.md
@@ -0,0 +1,3 @@
+# `@universal-middleware/webroute`
+
+[Universal Middleware](https://github.com/magne4000/universal-middleware) adapter for [Webroute](https://webroute.vercel.app).
diff --git a/packages/adapter-webroute/src/common.ts b/packages/adapter-webroute/src/common.ts
new file mode 100644
index 0000000..48fd554
--- /dev/null
+++ b/packages/adapter-webroute/src/common.ts
@@ -0,0 +1,110 @@
+import type { RequestCtx } from "@webroute/route";
+import type {
+ Get,
+ UniversalHandler,
+ UniversalMiddleware,
+} from "@universal-middleware/core";
+import { getAdapterRuntime } from "@universal-middleware/core";
+import { type DataResult, type MiddlewareFn } from "@webroute/middleware";
+
+export type WebrouteMiddleware<
+ InContext extends object = {},
+ TResult extends DataResult | void = void,
+ TParams = unknown,
+ TQuery = unknown,
+ TBody = unknown,
+ THeaders = unknown,
+ TState extends InContext = InContext,
+ TProviders = unknown,
+> = MiddlewareFn<
+ TResult,
+ [ctx: RequestCtx]
+>;
+
+export type WebrouteHandler<
+ InContext extends object = {},
+ TResult extends DataResult | void = void,
+ TParams = unknown,
+ TQuery = unknown,
+ TBody = unknown,
+ THeaders = unknown,
+ TState extends InContext = InContext,
+ TProviders = unknown,
+> = WebrouteMiddleware<
+ InContext,
+ TResult,
+ TParams,
+ TQuery,
+ TBody,
+ THeaders,
+ TState,
+ TProviders
+>;
+
+/**
+ * Creates a request handler to be passed to app.all() or any other route function
+ */
+export function createHandler<
+ T extends unknown[],
+ InContext extends Universal.Context,
+>(
+ handlerFactory: Get,
+): Get> {
+ return (...args) => {
+ const handler = handlerFactory(...args);
+
+ return (request, ctx) => {
+ const context = initContext(ctx);
+ return handler(request, context, getAdapterRuntime("other", {}));
+ };
+ };
+}
+
+type ExtractVoid = T extends U ? T : void;
+
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+type MiddlewareFactoryReturnType any> =
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ ReturnType extends UniversalMiddleware
+ ? Awaited>>
+ : never;
+
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+export type MiddlewareFactoryDataResult any> =
+ ExtractVoid, DataResult>;
+
+/**
+ * Creates a middleware to be passed to app.use() or any route function
+ */
+export function createMiddleware<
+ T extends unknown[],
+ InContext extends Universal.Context,
+ OutContext extends Universal.Context,
+>(
+ middlewareFactory: Get>,
+): Get<
+ T,
+ WebrouteMiddleware<
+ InContext,
+ MiddlewareFactoryDataResult
+ >
+> {
+ return (...args) => {
+ const middleware = middlewareFactory(...args);
+
+ return ((request, ctx) => {
+ const context = initContext(ctx);
+ return middleware(request, context, getAdapterRuntime("other", {}));
+ }) as WebrouteMiddleware<
+ InContext,
+ MiddlewareFactoryDataResult
+ >;
+ };
+}
+
+function initContext(
+ ctx: RequestCtx,
+): Context {
+ ctx.state ??= {} as Context;
+ return ctx.state;
+}
diff --git a/packages/adapter-webroute/src/index.ts b/packages/adapter-webroute/src/index.ts
new file mode 100644
index 0000000..12886f0
--- /dev/null
+++ b/packages/adapter-webroute/src/index.ts
@@ -0,0 +1,7 @@
+export {
+ createHandler,
+ createMiddleware,
+ type MiddlewareFactoryDataResult,
+ type WebrouteHandler,
+ type WebrouteMiddleware,
+} from "./common.js";
diff --git a/packages/adapter-webroute/tests/entry-webroute.ts b/packages/adapter-webroute/tests/entry-webroute.ts
new file mode 100644
index 0000000..3d292b3
--- /dev/null
+++ b/packages/adapter-webroute/tests/entry-webroute.ts
@@ -0,0 +1,95 @@
+import { createHandler, createMiddleware } from "../src/index.js";
+import { Hono, type MiddlewareHandler } from "hono";
+import { secureHeaders } from "hono/secure-headers";
+import {
+ args,
+ bun,
+ deno,
+ handler,
+ middlewares,
+} from "@universal-middleware/tests";
+import { route } from "@webroute/route";
+import { createAdapter } from "@webroute/middleware";
+
+const app = new Hono();
+
+const m1 = middlewares[0];
+const m2 = middlewares[1];
+const m3 = middlewares[2];
+
+const router = route()
+ // `createMiddleware(m1)()` or `m1()` are roughly equivalant (if not using the second parameter).
+ // The former allows better extraction of typings.
+ .use(m1())
+ .use((_request, ctx) => {
+ console.log("something BEFORE", ctx.state.something);
+ })
+ .use(createMiddleware(m2)())
+ .use(createMiddleware(m3)())
+ .use((_request, ctx) => {
+ console.log("something", ctx.state.something);
+ console.log("somethingElse", ctx.state.somethingElse);
+ })
+ .handle(createHandler(handler)());
+
+// standard Hono middleware
+app.use(secureHeaders());
+
+const toHono = createAdapter((c, next) => {
+ return {
+ async onData(data) {
+ c.set("state", { ...c.get("state"), ...data });
+ next();
+ },
+ async onEmpty() {
+ next();
+ },
+ async onResponse(response) {
+ return response;
+ },
+ async onResponseHandler(handler) {
+ await next();
+ return handler(c.res);
+ },
+ };
+});
+
+// universal handler
+app.use(
+ "*",
+ toHono((c) => {
+ return router(c.req.raw);
+ }),
+);
+
+const port = args.port ? parseInt(args.port) : 3000;
+
+if (deno) {
+ // @ts-ignore
+ Deno.serve(
+ {
+ port,
+ onListen() {
+ console.log(`Server listening on http://localhost:${port}`);
+ },
+ },
+ app.fetch,
+ );
+} else if (!bun) {
+ const { serve } = await import("@hono/node-server");
+ serve(
+ {
+ fetch: app.fetch,
+ port,
+ },
+ () => {
+ console.log(`Server listening on http://localhost:${port}`);
+ },
+ );
+}
+
+// Bun
+export default {
+ port,
+ fetch: app.fetch,
+};
diff --git a/packages/adapter-webroute/tests/webroute.spec.ts b/packages/adapter-webroute/tests/webroute.spec.ts
new file mode 100644
index 0000000..5aac7c5
--- /dev/null
+++ b/packages/adapter-webroute/tests/webroute.spec.ts
@@ -0,0 +1,34 @@
+import { type Run, runTests } from "@universal-middleware/tests";
+import * as vitest from "vitest";
+
+let port = 3300;
+
+const runs: Run[] = [
+ // Waiting for fix https://github.com/sinclairnick/webroute/pull/40
+ // {
+ // name: "adapter-webroute: node",
+ // command: "pnpm run test:run-webroute:node",
+ // port: port++,
+ // },
+ // {
+ // name: "adapter-webroute: bun",
+ // command: "pnpm run test:run-webroute:bun",
+ // port: port++,
+ // },
+ {
+ name: "adapter-webroute: deno",
+ command: "pnpm run test:run-webroute:deno",
+ port: port++,
+ },
+];
+
+runTests(runs, {
+ vitest,
+ test(response) {
+ // added by hono/secure-headers
+ vitest
+ .expect(response.headers.has("cross-origin-opener-policy"))
+ .toBe(true);
+ vitest.expect(response.headers.has("x-xss-protection")).toBe(true);
+ },
+});
diff --git a/packages/adapter-webroute/tsconfig.json b/packages/adapter-webroute/tsconfig.json
new file mode 100644
index 0000000..4082f16
--- /dev/null
+++ b/packages/adapter-webroute/tsconfig.json
@@ -0,0 +1,3 @@
+{
+ "extends": "../../tsconfig.json"
+}
diff --git a/packages/adapter-webroute/tsup.config.ts b/packages/adapter-webroute/tsup.config.ts
new file mode 100644
index 0000000..3d7103f
--- /dev/null
+++ b/packages/adapter-webroute/tsup.config.ts
@@ -0,0 +1,12 @@
+import { defineConfig } from "tsup";
+
+export default defineConfig([
+ {
+ entry: ["./src/index.ts"],
+ format: ["esm"],
+ platform: "neutral",
+ target: "es2022",
+ dts: true,
+ clean: true,
+ },
+]);
diff --git a/packages/adapter-webroute/vitest.config.ts b/packages/adapter-webroute/vitest.config.ts
new file mode 100644
index 0000000..f06d95f
--- /dev/null
+++ b/packages/adapter-webroute/vitest.config.ts
@@ -0,0 +1,4 @@
+///
+import { defineConfig } from "vite";
+
+export default defineConfig({});
diff --git a/packages/core/package.json b/packages/core/package.json
index fb9536d..5b0247a 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -21,10 +21,13 @@
"release:commit": "LANG=en_US release-me commit"
},
"devDependencies": {
- "@brillout/release-me": "^0.3.9",
+ "@brillout/release-me": "^0.4.0",
+ "@swc/core": "^1.7.11",
+ "@types/bun": "^1.1.6",
"@types/node": "^20.14.10",
"rimraf": "^6.0.0",
- "tsup": "^8.1.0",
- "typescript": "^5.5.3"
- }
+ "tsup": "^8.2.4",
+ "typescript": "^5.5.4"
+ },
+ "sideEffects": false
}
diff --git a/packages/core/src/adapter.ts b/packages/core/src/adapter.ts
new file mode 100644
index 0000000..9218fb0
--- /dev/null
+++ b/packages/core/src/adapter.ts
@@ -0,0 +1,23 @@
+import type { Adapter, Runtime } from "./types";
+import { getRuntime } from "./runtime";
+
+export function getAdapter(
+ key: K,
+ args: Omit, "adapter">,
+): Adapter {
+ return {
+ adapter: key,
+ ...args,
+ } as Adapter;
+}
+
+export function getAdapterRuntime(
+ adapter: K,
+ adapterArgs: Omit, "adapter">,
+ runtimeArgs?: Omit,
+) {
+ const a = getAdapter(adapter, adapterArgs);
+ const r = getRuntime(runtimeArgs);
+
+ return { ...r, ...a };
+}
diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts
index 44e6f36..87cc43a 100644
--- a/packages/core/src/index.ts
+++ b/packages/core/src/index.ts
@@ -1,5 +1,3 @@
-export type {
- Awaitable,
- UniversalHandler,
- UniversalMiddleware,
-} from "./types.js";
+export type * from "./types.js";
+export * from "./runtime.js";
+export * from "./adapter.js";
diff --git a/packages/core/src/runtime.ts b/packages/core/src/runtime.ts
new file mode 100644
index 0000000..0365957
--- /dev/null
+++ b/packages/core/src/runtime.ts
@@ -0,0 +1,69 @@
+// reference: https://github.com/honojs/hono/blob/8f1680238b1c0550049998586a414b5a1ae2012b/src/helper/adapter/index.ts
+import type { Runtime } from "./types";
+
+const knownUserAgents: Partial> = {
+ deno: "Deno",
+ bun: "Bun",
+ workerd: "Cloudflare-Workers",
+ node: "Node.js",
+};
+
+const _getRuntimeKey = (): Runtime["runtime"] => {
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ const global = globalThis as any;
+
+ // check if the current runtime supports navigator.userAgent
+ const userAgentSupported =
+ typeof navigator !== "undefined" && typeof navigator.userAgent === "string";
+
+ // if supported, check the user agent
+ if (userAgentSupported) {
+ for (const [runtimeKey, userAgent] of Object.entries(knownUserAgents)) {
+ if (checkUserAgentEquals(userAgent)) {
+ return runtimeKey as Runtime["runtime"];
+ }
+ }
+ }
+
+ // check if running on Edge Runtime
+ if (typeof global?.EdgeRuntime === "string") {
+ return "edge-light";
+ }
+
+ // check if running on Fastly
+ if (global?.fastly !== undefined) {
+ return "fastly";
+ }
+
+ // userAgent isn't supported before Node v21.1.0; so fallback to the old way
+ if (global?.process?.release?.name === "node") {
+ return "node";
+ }
+
+ // couldn't detect the runtime
+ return "other";
+};
+
+// Cache runtimekey computation
+let runtimeKey: Runtime["runtime"] | undefined = undefined;
+export const getRuntimeKey = (): Runtime["runtime"] => {
+ if (runtimeKey === undefined) {
+ runtimeKey = _getRuntimeKey();
+ }
+ return runtimeKey;
+};
+
+const checkUserAgentEquals = (platform: string): boolean => {
+ const userAgent = navigator.userAgent;
+
+ return userAgent.startsWith(platform);
+};
+
+export function getRuntime(args?: Omit): Runtime {
+ const key = getRuntimeKey();
+
+ return {
+ runtime: key,
+ ...args,
+ } as Runtime;
+}
diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts
index cca0fcf..8fb1ee3 100644
--- a/packages/core/src/types.ts
+++ b/packages/core/src/types.ts
@@ -1,15 +1,113 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
+import type { IncomingMessage, ServerResponse } from "node:http";
+import type { Server as BunServer } from "bun";
+
export type Awaitable = T | Promise;
-export interface UniversalMiddleware {
+// Runtimes
+
+export interface CloudflareWorkerdRuntime<
+ Env extends Record = Record,
+> {
+ runtime: "workerd";
+
+ /**
+ * @see {@link https://developers.cloudflare.com/workers/runtime-apis/bindings/}
+ */
+ env?: Env;
+ /**
+ * @see {@link https://developers.cloudflare.com/workers/runtime-apis/context/}
+ */
+ ctx?: {
+ /**
+ * @see {@link https://developers.cloudflare.com/workers/runtime-apis/context/#waituntil}
+ */
+ waitUntil?: (promise: Promise) => void;
+ /**
+ * @see {@link https://developers.cloudflare.com/workers/runtime-apis/context/#passthroughonexception}
+ */
+ passThroughOnException?: () => void;
+ };
+}
+
+export interface DenoRuntime {
+ runtime: "deno";
+}
+
+export interface NodeRuntime {
+ runtime: "node";
+}
+
+export interface BunRuntime {
+ runtime: "bun";
+
+ server: BunServer;
+}
+
+export interface VercelEdgeRuntime {
+ runtime: "edge-light";
+}
+
+export interface FastlyRuntime {
+ runtime: "fastly";
+}
+
+export interface OtherRuntime {
+ runtime: "other";
+}
+
+/**
+ * Inspired by Runtime Keys proposal
+ * @see {@link https://runtime-keys.proposal.wintercg.org/}
+ */
+export type Runtime =
+ | CloudflareWorkerdRuntime
+ | DenoRuntime
+ | NodeRuntime
+ | BunRuntime
+ | VercelEdgeRuntime
+ | FastlyRuntime
+ | OtherRuntime;
+
+// Adapters
+
+export interface NodeAdapter {
+ adapter: "node";
+
+ req: IncomingMessage;
+ res: ServerResponse;
+}
+
+export interface OtherAdapter {
+ adapter: "other";
+}
+
+export type Adapter = NodeAdapter | OtherAdapter;
+export type RuntimeAdapter = Runtime & Adapter;
+
+export interface UniversalMiddleware<
+ InContext extends Universal.Context = Universal.Context,
+ OutContext extends Universal.Context = Universal.Context,
+> {
(
request: Request,
- context: Universal.Context,
+ context: InContext,
+ runtime: RuntimeAdapter,
):
| Awaitable
| Awaitable
+ | Awaitable
| ((response: Response) => Awaitable);
}
-export interface UniversalHandler {
- (request: Request, context: Universal.Context): Awaitable;
+export interface UniversalHandler<
+ InContext extends Universal.Context = Universal.Context,
+> {
+ (
+ request: Request,
+ context: InContext,
+ runtime: RuntimeAdapter,
+ ): Awaitable;
}
+
+export type Get = (...args: T) => U;
diff --git a/packages/tests/package.json b/packages/tests/package.json
index daf46ed..ec85d0a 100644
--- a/packages/tests/package.json
+++ b/packages/tests/package.json
@@ -24,12 +24,13 @@
"zx": "^8.1.4"
},
"devDependencies": {
+ "@swc/core": "^1.7.11",
"@types/node": "^20.14.10",
"@universal-middleware/core": "workspace:*",
"rimraf": "^6.0.0",
- "tsup": "^8.1.0",
- "typescript": "^5.5.3",
- "vitest": "^2.0.2"
+ "tsup": "^8.2.4",
+ "typescript": "^5.5.4",
+ "vitest": "^2.0.5"
},
"peerDependencies": {
"vitest": "^2.0.2"
diff --git a/packages/tests/src/index.ts b/packages/tests/src/index.ts
index 95446c4..7475feb 100644
--- a/packages/tests/src/index.ts
+++ b/packages/tests/src/index.ts
@@ -1,7 +1,7 @@
import { kill } from "zx";
import { type ChildProcess, spawn } from "node:child_process";
import waitPort from "wait-port";
-import type { UniversalMiddleware } from "@universal-middleware/core";
+import type { Get, UniversalMiddleware } from "@universal-middleware/core";
import type { UniversalHandler } from "../../../playground/types";
import mri from "mri";
@@ -101,17 +101,19 @@ export function runTests(runs: Run[], options: Options) {
});
}
-export const middlewares: UniversalMiddleware[] = [
+export const middlewares = [
// universal middleware that updates the context synchronously
- (_request, context) => {
- context.something = {
- a: 1,
- c: 3,
+ () => () => {
+ return {
+ something: {
+ a: 1,
+ c: 3,
+ },
};
},
// universal middleware that update the response headers asynchronously
- (_request, _context) => {
- return async (response) => {
+ () => () => {
+ return async (response: Response) => {
response.headers.set("x-test-value", "universal-middleware");
response.headers.delete("x-should-be-removed");
@@ -121,17 +123,21 @@ export const middlewares: UniversalMiddleware[] = [
};
},
// universal middleware that updates the context asynchronously
- async (_request, context) => {
+ () => async (_request: Request, context: Universal.Context) => {
await new Promise((resolve) => setTimeout(resolve, 100));
- context.somethingElse = {
- b: 2,
+ return {
+ something: {
+ a: context.something?.a,
+ },
+ somethingElse: {
+ b: 2,
+ },
};
- delete context.something!.c;
},
-];
+] as const satisfies Get<[], UniversalMiddleware>[];
-export const handler: UniversalHandler = (_request, context) => {
+export const handler: Get<[], UniversalHandler> = () => (_request, context) => {
return new Response(JSON.stringify(context, null, 2), {
headers: {
"x-should-be-removed": "universal-middleware",
diff --git a/packages/universal-middleware/README.md b/packages/universal-middleware/README.md
new file mode 100644
index 0000000..d6af7bc
--- /dev/null
+++ b/packages/universal-middleware/README.md
@@ -0,0 +1,274 @@
+# `universal-middleware`
+
+Write standard-based middlewares and handlers once, target all supported servers.
+
+Supports the following adapters:
+- [Hono](https://github.com/magne4000/universal-middleware/tree/main/packages/adapter-hono)
+- [Express](https://github.com/magne4000/universal-middleware/tree/main/packages/adapter-express)
+- [Hattip](https://github.com/magne4000/universal-middleware/tree/main/packages/adapter-hattip)
+- [Webroute](https://github.com/magne4000/universal-middleware/tree/main/packages/adapter-webroute)
+- TODO: fastify
+- TODO: h3
+- TODO: elysia
+
+## Who is this for?
+The main goal of this package is for lib authors to be able to write server related logic once,
+and target all supported servers.
+
+Example of possible middleware or handler that can benefit from this lib:
+- middleware that modifies HTTP headers
+- middleware that modifies some request related context, like an authentication middleware that creates a `user` property for logged-in users
+- middleware that applies guard logic upon request, like checking for `Authentication` header before continuing
+- handler written following web standard Request/Response
+
+## Code example
+
+In this example, we are writing a middleware that adds a `something` property onto the request Context.
+Any subsequent middleware or handler will have access to this property.
+```ts
+// src/middlewares/context.middleware.ts
+import type { Get, UniversalMiddleware } from "universal-middleware";
+
+const contextMiddleware = ((value) => (request, ctx) => {
+ // Return the new Context, thus keeping complete type safety
+ // A less typesafe way to do the same thing would be to `ctx.something = value` and return nothing
+ return {
+ ...ctx,
+ something: value,
+ };
+ // Using `satisfies` to not lose return type
+}) satisfies Get<[string], UniversalMiddleware>;
+
+// export default is mandatory
+export default contextMiddleware;
+```
+
+Here, the build process is handled by [tsup](https://tsup.egoist.dev/) (which mostly relies on [esbuild](https://esbuild.github.io/) under the hood).
+It also supports [rollup](https://rollupjs.org/) (and by consequence [vite](https://vitejs.dev/))
+```ts
+// tsup.config.ts
+import { defineConfig } from "tsup";
+// Also available for rollup with "universal-middleware/rollup"
+import universalMiddleware from "universal-middleware/esbuild";
+
+export default defineConfig([
+ {
+ entry: {
+ // all .middleware. or .handler. entry will be managed by `universal-middleware`
+ "middlewares/context": "./src/middlewares/context.middleware.ts",
+ },
+ format: ["esm"],
+ platform: "neutral",
+ target: "es2022",
+ dts: true,
+ esbuildPlugins: [universalMiddleware({
+ // Only generate files for selected servers. All enabled by default
+ servers?: ('hono' | 'express' | 'hattip' | 'webroute')[];
+ // akin to esbuild `entryNames` for generated "exports" in package.json
+ serversExportNames?: string;
+ // akin to ebsuild `entryNames` for generated "exports" in package.json
+ entryExportNames?: string;
+ // Disables some warning
+ ignoreRecommendations?: boolean;
+ // No auto writing in package.json. All info available to do it manually in `buildEnd`
+ doNotEditPackageJson?: boolean;
+ // Generate typings. true by default
+ dts?: boolean;
+ // Hook called when bundle is generated
+ buildEnd?: (report: Report[]) => void | Promise;
+ })],
+ esbuildOptions(opts) {
+ opts.outbase = "src";
+ },
+ bundle: true,
+ },
+]);
+```
+
+Once the build is executed, all target files will be generated into your dist folder,
+and your `package.json` will be updated with necessary `exports` config.
+```json5
+// package.json
+// --> Generates the following "exports" in package.json
+
+{
+ "./middlewares/context-middleware": {
+ "types": "./dist/middlewares/context.d.ts",
+ "import": "./dist/middlewares/context.js",
+ "default": "./dist/middlewares/context.js"
+ },
+ "./middlewares/context-middleware-hono": {
+ "types": "./dist/middlewares/universal-hono-middleware-context.middleware.d.ts",
+ "import": "./dist/middlewares/universal-hono-middleware-context.middleware.js",
+ "default": "./dist/middlewares/universal-hono-middleware-context.middleware.js"
+ },
+ "./middlewares/context-middleware-express": {
+ "types": "./dist/middlewares/universal-express-middleware-context.middleware.d.ts",
+ "import": "./dist/middlewares/universal-express-middleware-context.middleware.js",
+ "default": "./dist/middlewares/universal-express-middleware-context.middleware.js"
+ },
+ "./middlewares/context-middleware-hattip": {
+ "types": "./dist/middlewares/universal-hattip-middleware-context.middleware.d.ts",
+ "import": "./dist/middlewares/universal-hattip-middleware-context.middleware.js",
+ "default": "./dist/middlewares/universal-hattip-middleware-context.middleware.js"
+ }
+}
+
+// --> Also generates "optionalDependencies"
+{
+ "@universal-middleware/express": "^0",
+ "@universal-middleware/hattip": "^0",
+ "@universal-middleware/webroute": "^0",
+ "@universal-middleware/hono": "^0"
+}
+```
+
+### For users
+Easy usage for supported servers:
+
+```ts
+//hono-entry.ts
+import { Hono } from "hono";
+// hattip users would use "some-lib/middlewares/context-middleware-hattip"
+// express users would use "some-lib/middlewares/context-middleware-express"
+// etc.
+import contextMiddleware from "some-lib/middlewares/context-middleware-hono";
+
+const app = new Hono();
+
+app.use(contextMiddleware("something"));
+app.get("/", () => return new Response('ok')));
+
+export default app;
+```
+
+## Supported syntax
+### Handler
+
+Universal Handler compatible with all supported servers.
+
+```ts
+// src/handlers/index.handler.ts
+import type { Get, UniversalHandler } from "universal-middleware";
+
+const handler: Get<[string], UniversalHandler> = () => (request, ctx) => {
+ // A handler must ALWAYS return a Response
+ // Here, we return the Context to the user
+ return new Response(JSON.stringify(ctx));
+};
+
+// export default is mandatory
+export default handler;
+```
+
+### Middleware that updates the Context
+
+The Context contains data with the same lifespan as a Request. It can be used by middleware to pass any kind of data
+to any subsequent middleware or handler.
+
+```ts
+// src/middlewares/context.middleware.ts
+import type { Get, UniversalMiddleware } from "universal-middleware";
+
+const contextMiddleware = (() => (request, ctx) => {
+ // The new Context can either be returned, thus keeping complete type safety, or mutated
+ return {
+ ...ctx,
+ // subsequent middlewares and handlers will have access to this property
+ something: value,
+ };
+ // Using `satisfies` to not lose return type
+}) satisfies Get<[string], UniversalMiddleware>;
+
+// export default is mandatory
+export default contextMiddleware;
+```
+
+#### Using the Context
+
+Each adapter have its own way to store the Context.
+For instance, using Hono, you can either retrieve the Context as usual in other `universal-middleware` middlewares.
+Or you can write a simple Hono handler, and retrieve the Context like this:
+```ts
+// Also exists for others servers, such as "@universal-middleware/express", "@universal-middleware/hattip", etc.
+import { getContext } from "@universal-middleware/hono";
+import contextMiddleware from "@my-lib/middlewares/context-middleware-hono";
+import { Hono } from "hono";
+
+const app = new Hono();
+
+// Update Context
+app.use(contextMiddleware("something"));
+app.get("/", (honoContext) => {
+ // retrieve `universal-middleware` Context
+ const universalContext = getContext(honoContext);
+ // send it to the user
+ return new Response(JSON.stringify(universalContext));
+});
+
+export default app;
+```
+
+### Middleware that updates the Response
+
+Those are usually used to modify the Response headers.
+
+```ts
+// src/middlewares/headers.middleware.ts
+import type { Get, UniversalMiddleware } from "universal-middleware";
+
+const headersMiddleware = (() => (request, ctx) => {
+ // This is a Response Handler, and will be executed after a handler or a middleware have returned a Response
+ return (response) => {
+ // Add a new header, using previously set Context
+ response.headers.set("X-Custom-Header", ctx.something ?? "NONE");
+
+ return response;
+ }
+ // Using `satisfies` to not lose return type
+ // You can specify the type of the Context upon entry
+}) satisfies Get<[string], UniversalMiddleware<{ something?: string }>>;
+
+// export default is mandatory
+export default headersMiddleware;
+```
+
+### Middleware that return an early Response
+
+Those can be used to guard some routes
+
+```ts
+// src/middlewares/guard.middleware.ts
+import type { Get, UniversalMiddleware } from "universal-middleware";
+
+const guardMiddleware = (() => (request, ctx) => {
+ if (!ctx.user) {
+ return new Response("Unauthorized", {
+ status: 401
+ });
+ }
+ // If a middleware returns nothing, next middleware is automatically executed
+
+ // Using `satisfies` to not lose return type
+ // You can specify the type of the Context upon entry
+}) satisfies Get<[string], UniversalMiddleware<{ user?: string }>>;
+
+// export default is mandatory
+export default guardMiddleware;
+```
+
+## Adapters specifity
+### Hono
+TODO
+
+### Express
+TODO
+
+### Hattip
+TODO
+
+### Webroute
+TODO
+
+## Access runtime specific API
+TODO
diff --git a/packages/universal-middleware/package.json b/packages/universal-middleware/package.json
new file mode 100644
index 0000000..14fb4be
--- /dev/null
+++ b/packages/universal-middleware/package.json
@@ -0,0 +1,96 @@
+{
+ "name": "universal-middleware",
+ "type": "module",
+ "version": "0.1.0",
+ "description": "",
+ "license": "MIT",
+ "repository": "https://github.com/magne4000/universal-handler",
+ "bugs": {
+ "url": "https://github.com/magne4000/universal-handler/issues"
+ },
+ "keywords": [
+ "esbuild",
+ "vite",
+ "rollup",
+ "transform",
+ "universal-middleware"
+ ],
+ "exports": {
+ ".": {
+ "types": "./dist/index.d.ts",
+ "import": "./dist/index.js",
+ "default": "./dist/index.js"
+ },
+ "./vite": {
+ "types": "./dist/rollup.d.ts",
+ "import": "./dist/rollup.js",
+ "default": "./dist/rollup.js"
+ },
+ "./rollup": {
+ "types": "./dist/rollup.d.ts",
+ "import": "./dist/rollup.js",
+ "default": "./dist/rollup.js"
+ },
+ "./esbuild": {
+ "types": "./dist/esbuild.d.ts",
+ "import": "./dist/esbuild.js",
+ "default": "./dist/esbuild.js"
+ }
+ },
+ "module": "dist/index.js",
+ "types": "dist/index.d.ts",
+ "files": [
+ "dist"
+ ],
+ "scripts": {
+ "build": "rimraf dist && tsup",
+ "prepack": "pnpm build",
+ "test:typecheck": "tsc -p tsconfig.json --noEmit",
+ "release": "LANG=en_US release-me patch",
+ "release:minor": "LANG=en_US release-me minor",
+ "release:commit": "LANG=en_US release-me commit",
+ "test": "vitest run"
+ },
+ "dependencies": {
+ "@universal-middleware/core": "^0.1.1",
+ "@universal-middleware/express": "^0.1.1",
+ "@universal-middleware/hattip": "^0.1.0",
+ "@universal-middleware/hono": "^0.1.1",
+ "@universal-middleware/webroute": "^0.1.0",
+ "oxc-transform": "^0.24.3",
+ "package-up": "^5.0.0",
+ "unplugin": "^1.12.2"
+ },
+ "devDependencies": {
+ "@rollup/plugin-node-resolve": "^15.2.3",
+ "@rollup/plugin-typescript": "^11.1.6",
+ "@swc/core": "^1.7.11",
+ "esbuild": "^0.23.1",
+ "rimraf": "^6.0.1",
+ "rollup": "^4.21.0",
+ "tsup": "^8.2.4",
+ "typescript": "^5.5.4",
+ "vite": "^5.4.1",
+ "vitest": "^2.0.5"
+ },
+ "peerDependencies": {
+ "@rollup/plugin-node-resolve": "^15",
+ "esbuild": "*",
+ "rollup": "^4",
+ "vite": ">=5"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ },
+ "@rollup/plugin-node-resolve": {
+ "optional": true
+ },
+ "vite": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ }
+ }
+}
diff --git a/packages/universal-middleware/src/esbuild.ts b/packages/universal-middleware/src/esbuild.ts
new file mode 100644
index 0000000..695d735
--- /dev/null
+++ b/packages/universal-middleware/src/esbuild.ts
@@ -0,0 +1,4 @@
+import plugin from "./plugin.js";
+import { createEsbuildPlugin } from "unplugin";
+
+export default createEsbuildPlugin(plugin);
diff --git a/packages/universal-middleware/src/index.ts b/packages/universal-middleware/src/index.ts
new file mode 100644
index 0000000..0526636
--- /dev/null
+++ b/packages/universal-middleware/src/index.ts
@@ -0,0 +1,8 @@
+import rollup from "./rollup.js";
+import esbuild from "./esbuild.js";
+
+export { readAndEditPackageJson } from "./plugin.js";
+
+export type * from "@universal-middleware/core";
+
+export { rollup, esbuild };
diff --git a/packages/universal-middleware/src/plugin.ts b/packages/universal-middleware/src/plugin.ts
new file mode 100644
index 0000000..6df5fe0
--- /dev/null
+++ b/packages/universal-middleware/src/plugin.ts
@@ -0,0 +1,650 @@
+import { dirname, join, parse, posix, resolve } from "node:path";
+import { type UnpluginFactory } from "unplugin";
+import { packageUp } from "package-up";
+import { mkdir, readFile, writeFile } from "node:fs/promises";
+
+export interface Options {
+ servers?: (typeof defaultWrappers)[number][];
+ serversExportNames?: string;
+ entryExportNames?: string;
+ ignoreRecommendations?: boolean;
+ doNotEditPackageJson?: boolean;
+ dts?: boolean;
+ buildEnd?: (report: Report[]) => void | Promise;
+}
+
+export interface Report {
+ in: string;
+ out: string;
+ dts?: string;
+ type: "handler" | "middleware";
+ exports: string;
+}
+
+interface BundleInfo {
+ in: string;
+ out: string;
+ dts: string;
+ id: string;
+ dir: string;
+ name: string;
+ type: "handler" | "middleware";
+ exports: string;
+}
+
+const defaultWrappers = ["hono", "express", "hattip", "webroute"] as const;
+const namespace = "virtual:universal-middleware";
+const externals = defaultWrappers.map((w) => `@universal-middleware/${w}`);
+const versionRange = "^0";
+
+function getVirtualInputs(
+ type: "handler" | "middleware",
+ handler: string,
+ wrappers: ReadonlyArray<(typeof defaultWrappers)[number]> = defaultWrappers,
+) {
+ const parsed = parse(handler);
+ return wrappers.map((server) => ({
+ server,
+ type,
+ handler,
+ get value() {
+ return `${namespace}:${this.server}:${this.type}:${this.handler}`;
+ },
+ get key() {
+ return join(
+ parsed.dir,
+ `universal-${this.server}-${this.type}-${parsed.name}`,
+ );
+ },
+ }));
+}
+
+function filterInput(input: string) {
+ if (input.match(/(^|\.|\/|\\\\)handler\.[cm]?[jt]sx?$/)) {
+ return "handler";
+ }
+ if (input.match(/(^|\.|\/|\\\\)middleware\.[cm]?[jt]sx?$/)) {
+ return "middleware";
+ }
+ return null;
+}
+
+function normalizeInput(
+ input:
+ | undefined
+ | string
+ | string[]
+ | Record
+ | { in: string; out: string }[],
+ options?: Options,
+) {
+ const keys = new Set();
+
+ function getTuple(key: string, value: string) {
+ if (keys.has(key)) {
+ throw new Error(`Conflict on entry ${key}: ${value}`);
+ } else {
+ keys.add(key);
+ }
+ return [key, value] as const;
+ }
+
+ if (typeof input === "string") {
+ const filtered = filterInput(input);
+ if (filtered) {
+ const parsed = parse(input);
+ const tuple = getTuple(join(parsed.dir, parsed.name), input);
+ return {
+ [tuple[0]]: tuple[1],
+ };
+ }
+ } else if (Array.isArray(input)) {
+ let i = 0;
+ const res = Object.fromEntries(
+ input.map((e) => {
+ if (typeof e === "string") {
+ if (filterInput(e)) {
+ i += 1;
+ }
+ const parsed = parse(e);
+ return getTuple(join(parsed.dir, parsed.name), e);
+ }
+ return getTuple(e.out, e.in);
+ }),
+ );
+
+ if (!options?.ignoreRecommendations && i >= 2) {
+ console.warn(
+ "Prefer using an object for esbuild `entryPoints` instead of an array",
+ );
+ }
+
+ return res;
+ } else if (input && typeof input === "object") {
+ return input;
+ }
+ return null;
+}
+
+function appendVirtualInputs(
+ input: Record,
+ wrappers: ReadonlyArray<(typeof defaultWrappers)[number]> = defaultWrappers,
+) {
+ Object.values(input).forEach((v) => {
+ const filtered = filterInput(v);
+ if (filtered) {
+ const virtualInputs = getVirtualInputs(filtered, v, wrappers);
+ virtualInputs.forEach((vinput) => {
+ input[vinput.key] = vinput.value;
+ });
+ }
+ });
+}
+
+function applyOutbase(input: Record, outbase: string) {
+ if (!outbase) return input;
+
+ const re = new RegExp(
+ `^(${outbase.replaceAll("\\\\", "/")}|${outbase.replaceAll("/", "\\\\")})/?`,
+ "gu",
+ );
+
+ return Object.keys(input).reduce(
+ (acc, key) => {
+ acc[key.replace(re, "")] = input[key];
+ return acc;
+ },
+ {} as Record,
+ );
+}
+
+function load(id: string, resolve?: (handler: string, type: string) => string) {
+ const [, , server, type, handler] = id.split(":");
+
+ const fn = type === "handler" ? "createHandler" : "createMiddleware";
+ const code = `import { ${fn} } from "@universal-middleware/${server}";
+import ${type} from "${resolve ? resolve(handler, type) : handler}";
+export default ${fn}(${type});
+`;
+ return { code };
+}
+
+const typesByServer: Record<
+ (typeof defaultWrappers)[number],
+ {
+ middleware: string;
+ handler: string;
+ selfImports?: string[];
+ outContext?: (type: string) => string;
+ genericParameters?: string;
+ }
+> = {
+ hono: {
+ middleware: "HonoMiddleware",
+ handler: "HonoHandler",
+ },
+ express: {
+ middleware: "NodeMiddleware",
+ handler: "NodeHandler",
+ },
+ hattip: {
+ middleware: "HattipMiddleware",
+ handler: "HattipHandler",
+ },
+ webroute: {
+ middleware: "WebrouteMiddleware",
+ handler: "WebrouteHandler",
+ selfImports: ["type MiddlewareFactoryDataResult"],
+ outContext: (type) => `MiddlewareFactoryDataResult`,
+ genericParameters:
+ "",
+ },
+};
+
+function loadDts(
+ id: string,
+ resolve?: (handler: string, type: string) => string,
+) {
+ const [, , server, type, handler] = id.split(":");
+
+ const fn = type === "handler" ? "createHandler" : "createMiddleware";
+ const info = typesByServer[server as (typeof defaultWrappers)[number]];
+ const t = info[type as "middleware" | "handler"];
+ const selfImports = [fn, `type ${t}`, ...(info.selfImports ?? [])];
+ const code = `import { type UniversalMiddleware } from 'universal-middleware';
+import { ${selfImports.join(", ")} } from "@universal-middleware/${server}";
+import ${type} from "${resolve ? resolve(handler, type) : handler}";
+type ExtractT = T extends (...args: infer X) => any ? X : never;
+type ExtractInContext = T extends (...args: any[]) => UniversalMiddleware ? X : {};
+export type InContext = ExtractInContext;
+export type OutContext = ${info.outContext?.(type) ?? "unknown"};
+export default ${fn}(${type}) as (...args: ExtractT) => ${t}${info.genericParameters ?? ""};
+`;
+
+ return { code };
+}
+
+function findDuplicateReports(reports: Report[]): Map {
+ const exportCounts: Record = {};
+ const duplicates = new Map();
+
+ // Count occurrences of each 'exports' value
+ reports.forEach((report) => {
+ exportCounts[report.exports] = (exportCounts[report.exports] || 0) + 1;
+ });
+
+ // Collect reports that have duplicates
+ reports.forEach((report) => {
+ if (exportCounts[report.exports] > 1) {
+ if (!duplicates.has(report.exports)) {
+ duplicates.set(report.exports, []);
+ }
+ duplicates.get(report.exports)!.push(report);
+ }
+ });
+
+ return duplicates;
+}
+
+function formatDuplicatesForErrorMessage(duplicates: Map) {
+ let formattedMessage = "The following files have overlapping exports:\n";
+
+ duplicates.forEach((reports, exportValue) => {
+ formattedMessage += `exports: ${exportValue}\n`;
+ reports.forEach((report) => {
+ formattedMessage += ` in: ${report.in}, out: ${report.out}\n`;
+ });
+ });
+
+ formattedMessage +=
+ "Make sure you are using esbuild `entryPoints` object syntax or that `serversExportNames` option contains [dir].";
+
+ return formattedMessage;
+}
+
+function genBundleInfo(
+ input: Record,
+ findDest: (path: string) => string,
+): Record {
+ const entries = Object.entries(input);
+
+ return Object.fromEntries(
+ entries.map(([k, v]) => {
+ const dest = findDest(v);
+ const parsed = parse(dest!);
+ return [
+ v,
+ {
+ in: v,
+ out: dest!,
+ dts: dest!.replace(/\.js$/, ".d.ts"),
+ id: k,
+ dir: parsed.dir,
+ name: parsed.name,
+ type: filterInput(v)! as "handler" | "middleware",
+ exports: "",
+ },
+ ];
+ }),
+ );
+}
+
+function fixBundleExports(
+ bundle: Record,
+ options: { entryExportNames: string; serversExportNames: string },
+) {
+ Object.entries(bundle).forEach(([k, v]) => {
+ if (!k.startsWith(namespace)) {
+ v.exports =
+ "./" +
+ posix
+ .normalize(
+ options.entryExportNames
+ .replace("[dir]", v.dir)
+ .replace("[name]", v.name)
+ .replace("[type]", v.type),
+ )
+ .replaceAll("\\", "/");
+ }
+ });
+
+ Object.entries(bundle).forEach(([k, v]) => {
+ if (k.startsWith(namespace)) {
+ const [, , server, type, handler] = k.split(":");
+ v.exports =
+ "./" +
+ posix
+ .normalize(
+ options.serversExportNames
+ .replace("[name]", bundle[handler].name)
+ .replace("[dir]", bundle[handler].dir)
+ .replace("[type]", type)
+ .replace("[server]", server),
+ )
+ .replaceAll("\\", "/");
+ }
+ });
+
+ return bundle;
+}
+
+async function generateDts(content: string, outFile: string) {
+ const { isolatedDeclaration } = await import("oxc-transform");
+
+ const code = isolatedDeclaration("file.ts", content);
+
+ await mkdir(dirname(outFile), { recursive: true });
+
+ await writeFile(outFile, code.sourceText);
+}
+
+async function genDts(bundle: Record, options?: Options) {
+ if (options?.dts === false) return;
+
+ for (const value of Object.values(bundle)) {
+ if (!value.in.startsWith(namespace)) continue;
+
+ await generateDts(
+ loadDts(value.in, (handler) =>
+ posix.relative(value.dts, bundle[handler].dts).replace(/^\.\./, "."),
+ ).code,
+ value.dts,
+ );
+ }
+}
+
+function genReport(bundle: Record, options?: Options) {
+ const reports = Object.values(bundle).reduce((acc, curr) => {
+ const report: Report = {
+ in: curr.in,
+ out: curr.out,
+ type: curr.type,
+ exports: curr.exports,
+ };
+
+ if (options?.dts !== false) {
+ report.dts = curr.dts;
+ }
+
+ acc.push(report);
+
+ return acc;
+ }, [] as Report[]);
+
+ const duplicates = findDuplicateReports(reports);
+
+ if (duplicates.size > 0) {
+ const message = formatDuplicatesForErrorMessage(duplicates);
+ throw new Error(message);
+ }
+
+ return reports;
+}
+
+export async function readAndEditPackageJson(reports: Report[]) {
+ const packageJsonPath = await packageUp();
+
+ if (!packageJsonPath) {
+ throw new Error("Cannot find package.json");
+ }
+
+ const packageJson = JSON.parse(await readFile(packageJsonPath, "utf8"));
+
+ packageJson.optionalDependencies ??= {};
+ for (const external of externals) {
+ packageJson.optionalDependencies[external] = versionRange;
+ }
+
+ packageJson.exports ??= {};
+
+ for (const report of reports) {
+ // No CJS support
+ packageJson.exports[report.exports] = {
+ types: report.dts ? "./" + report.dts : undefined,
+ import: "./" + report.out,
+ default: "./" + report.out,
+ };
+ }
+
+ return {
+ path: packageJsonPath,
+ packageJson,
+ };
+}
+
+const universalMiddleware: UnpluginFactory = (
+ options?: Options,
+) => {
+ const serversExportNames =
+ options?.serversExportNames ?? "./[dir]/[name]-[type]-[server]";
+ const entryExportNames = options?.entryExportNames ?? "./[dir]/[name]-[type]";
+
+ let normalizedInput: Record | null = null;
+
+ return {
+ name: namespace,
+ enforce: "post",
+ rollup: {
+ resolveId(id) {
+ if (id.startsWith(namespace) || filterInput(id)) {
+ return id;
+ }
+ },
+
+ options(opts) {
+ normalizedInput = normalizeInput(opts.input, options);
+ if (normalizedInput) {
+ opts.input = normalizedInput;
+ appendVirtualInputs(opts.input, options?.servers);
+
+ if (typeof opts.external === "function") {
+ const orig = opts.external;
+ opts.external = (id, parentId, isResolved) => {
+ if (externals.includes(id)) return true;
+ return orig(id, parentId, isResolved);
+ };
+ } else if (Array.isArray(opts.external)) {
+ opts.external = [...opts.external, ...externals];
+ } else if (opts.external) {
+ opts.external = [opts.external, ...externals];
+ } else {
+ opts.external = [...externals];
+ }
+
+ return opts;
+ }
+ },
+ async generateBundle(opts, bundle) {
+ if (!normalizedInput) return;
+
+ const out = opts.dir ?? "dist";
+ const outputs = Object.entries(bundle);
+
+ let mapping = genBundleInfo(normalizedInput, (cleanV) => {
+ const found = outputs.find(([, value]) => {
+ if (value.type === "chunk" && value.isEntry) {
+ const cleanEntry = value.facadeModuleId!;
+ return (
+ posix.relative(cleanEntry, cleanV) === "" ||
+ posix.relative(cleanEntry, namespace + ":" + cleanV) === ""
+ );
+ }
+
+ return false;
+ })?.[0];
+
+ if (!found) {
+ throw new Error("Error occured while generating bundle info");
+ }
+
+ return found;
+ });
+
+ mapping = fixBundleExports(mapping, {
+ serversExportNames,
+ entryExportNames,
+ });
+
+ // Add dist folder to `out` and `dts`
+ Object.values(mapping).forEach((v) => {
+ v.out = join(out, v.out);
+ v.dts = join(out, v.dts);
+ });
+
+ await genDts(mapping, options);
+
+ const report = genReport(mapping);
+
+ if (!options?.doNotEditPackageJson) {
+ const { path, packageJson } = await readAndEditPackageJson(report);
+ await writeFile(path, JSON.stringify(packageJson, undefined, 2));
+ }
+
+ await options?.buildEnd?.(report);
+ },
+ },
+
+ esbuild: {
+ setup(builder) {
+ if (builder.initialOptions.bundle !== true) {
+ throw new Error(
+ "`bundle` options must be `true` for universal-middleware to work properly",
+ );
+ }
+
+ if (!options?.ignoreRecommendations) {
+ if (
+ builder.initialOptions.entryNames &&
+ !builder.initialOptions.entryNames.includes("[hash]") &&
+ !builder.initialOptions.entryNames.includes("[dir]")
+ ) {
+ console.warn(
+ "esbuild config specifies `entryNames` without [hash] or [dir]. This could lead to missing files",
+ );
+ }
+ if (!builder.initialOptions.splitting) {
+ console.warn(
+ "enable esbuild `splitting` option to reduce bundle size",
+ );
+ }
+ }
+
+ builder.initialOptions.metafile = true;
+
+ if (builder.initialOptions.bundle) {
+ builder.initialOptions.external = [
+ ...(builder.initialOptions.external ?? []),
+ ...externals,
+ ];
+ }
+
+ const normalizedInput = normalizeInput(
+ builder.initialOptions.entryPoints,
+ );
+
+ if (!normalizedInput) return;
+
+ const outbase = builder.initialOptions.outbase ?? "";
+ const outdir = builder.initialOptions.outdir ?? "dist";
+
+ builder.initialOptions.entryPoints = normalizedInput;
+ appendVirtualInputs(
+ builder.initialOptions.entryPoints,
+ options?.servers,
+ );
+ builder.initialOptions.entryPoints = applyOutbase(
+ builder.initialOptions.entryPoints,
+ outbase,
+ );
+
+ builder.onResolve(
+ { filter: /^virtual:universal-middleware/ },
+ (args) => {
+ // console.log("onResolve:virtual", args);
+ return {
+ path: args.path,
+ namespace: namespace,
+ pluginData: {
+ resolveDir: args.resolveDir,
+ },
+ };
+ },
+ );
+
+ builder.onResolve(
+ { filter: /(^|\.|\/|\\\\)(handler|middleware)\./ },
+ (args) => {
+ // console.log("onResolve:?", args);
+ return {
+ path: resolve(args.path),
+ };
+ },
+ );
+
+ builder.onLoad({ filter: /.*/, namespace: namespace }, async (args) => {
+ // console.log("onLoad", args);
+ const { code } = load(args.path);
+
+ return {
+ contents: code,
+ resolveDir: args.pluginData.resolveDir,
+ loader: "js",
+ };
+ });
+
+ builder.onEnd(async (result) => {
+ const outputs = Object.entries(result.metafile!.outputs);
+
+ let mapping = genBundleInfo(normalizedInput, (cleanV) => {
+ const found = outputs.find(([, value]) => {
+ if (value.entryPoint) {
+ const cleanEntry = value.entryPoint;
+ return (
+ posix.relative(cleanEntry, cleanV) === "" ||
+ posix.relative(cleanEntry, namespace + ":" + cleanV) === ""
+ );
+ }
+
+ return false;
+ })?.[0];
+
+ if (!found) {
+ throw new Error("Error occured while generating bundle info");
+ }
+
+ return found;
+ });
+
+ mapping = fixBundleExports(mapping, {
+ serversExportNames,
+ entryExportNames,
+ });
+
+ // Remove dist folder from `exports`
+ Object.values(mapping).forEach(
+ (v) => (v.exports = "./" + posix.relative(outdir, v.exports)),
+ );
+
+ await genDts(mapping, options);
+
+ const report = genReport(mapping);
+
+ if (!options?.doNotEditPackageJson) {
+ const { path, packageJson } = await readAndEditPackageJson(report);
+ await writeFile(path, JSON.stringify(packageJson, undefined, 2));
+ }
+
+ await options?.buildEnd?.(report);
+ });
+ },
+ },
+
+ loadInclude(id) {
+ return id.startsWith(namespace);
+ },
+
+ load,
+ };
+};
+
+export default universalMiddleware;
diff --git a/packages/universal-middleware/src/rollup.ts b/packages/universal-middleware/src/rollup.ts
new file mode 100644
index 0000000..0db65e5
--- /dev/null
+++ b/packages/universal-middleware/src/rollup.ts
@@ -0,0 +1,4 @@
+import plugin from "./plugin.js";
+import { createRollupPlugin } from "unplugin";
+
+export default createRollupPlugin(plugin);
diff --git a/packages/universal-middleware/test/esbuild.test.ts b/packages/universal-middleware/test/esbuild.test.ts
new file mode 100644
index 0000000..2670a60
--- /dev/null
+++ b/packages/universal-middleware/test/esbuild.test.ts
@@ -0,0 +1,412 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
+
+import { describe, expect, it } from "vitest";
+import { build, type BuildResult } from "esbuild";
+import plugin from "../src/esbuild";
+import { join } from "node:path";
+
+const adapters = ["hono", "express", "hattip", "webroute"] as const;
+
+describe("esbuild", () => {
+ it("generates all server files (in/out input)", async () => {
+ const entry = "test/files/folder1/handler.ts";
+ const result = await build({
+ entryPoints: [{ out: "handler", in: entry }],
+ plugins: [
+ plugin({
+ doNotEditPackageJson: true,
+ dts: false,
+ buildEnd(report) {
+ expect(report).toHaveLength(expectNbOutput(1));
+ const exports = report.map((r) => r.exports);
+
+ expect(exports).toContain("./handler-handler");
+
+ for (const adapter of adapters) {
+ expect(exports).toContain(`./handler-handler-${adapter}`);
+ }
+ },
+ }),
+ ],
+ outdir: "dist",
+ write: false,
+ metafile: true,
+ bundle: true,
+ platform: "neutral",
+ format: "esm",
+ target: "es2022",
+ splitting: true,
+ });
+
+ expect(result.errors).toHaveLength(0);
+ expect(
+ result.outputFiles.filter(
+ (f) => !f.path.includes(join("dist", "chunk-")),
+ ),
+ ).toHaveLength(expectNbOutput(1));
+
+ expect(findOutput(result, entry)).toSatisfy((s: string) =>
+ s.startsWith("dist/handler"),
+ );
+
+ testEsbuildOutput(result, "handler", entry);
+ });
+
+ it("generates all server files (object input)", async () => {
+ const entry1 = "test/files/folder1/handler.ts";
+ const entry2 = "test/files/middleware.ts";
+ const result = await build({
+ entryPoints: {
+ "handlers/one": entry1,
+ middleware: entry2,
+ },
+ plugins: [
+ plugin({
+ doNotEditPackageJson: true,
+ dts: false,
+ buildEnd(report) {
+ expect(report).toHaveLength(expectNbOutput(2));
+ const exports = report.map((r) => r.exports);
+
+ expect(exports).toContain("./handlers/one-handler");
+ expect(exports).toContain("./middleware-middleware");
+ for (const adapter of adapters) {
+ expect(exports).toContain(`./handlers/one-handler-${adapter}`);
+ expect(exports).toContain(`./middleware-middleware-${adapter}`);
+ }
+ },
+ }),
+ ],
+ outdir: "dist",
+ write: false,
+ metafile: true,
+ bundle: true,
+ platform: "neutral",
+ format: "esm",
+ target: "es2022",
+ splitting: true,
+ });
+
+ expect(result.errors).toHaveLength(0);
+ expect(
+ result.outputFiles.filter(
+ (f) => !f.path.includes(join("dist", "chunk-")),
+ ),
+ ).toHaveLength(expectNbOutput(2));
+
+ expect(findOutput(result, entry1)).toSatisfy((s: string) =>
+ s.startsWith("dist/handlers/one"),
+ );
+ expect(findOutput(result, entry2)).toSatisfy((s: string) =>
+ s.startsWith("dist/middleware"),
+ );
+
+ testEsbuildOutput(result, "handler", entry1);
+ testEsbuildOutput(result, "middleware", entry2);
+ });
+
+ it("generates all server files (array input)", async () => {
+ const entry1 = "test/files/folder1/handler.ts";
+ const entry2 = "test/files/middleware.ts";
+ const result = await build({
+ entryPoints: [entry1, entry2],
+ plugins: [
+ plugin({
+ doNotEditPackageJson: true,
+ dts: false,
+ buildEnd(report) {
+ expect(report).toHaveLength(expectNbOutput(2));
+ const exports = report.map((r) => r.exports);
+
+ expect(exports).toContain("./test/files/folder1/handler-handler");
+ expect(exports).toContain("./test/files/middleware-middleware");
+ for (const adapter of adapters) {
+ expect(exports).toContain(
+ `./test/files/folder1/handler-handler-${adapter}`,
+ );
+ expect(exports).toContain(
+ `./test/files/middleware-middleware-${adapter}`,
+ );
+ }
+ },
+ }),
+ ],
+ outdir: "dist",
+ write: false,
+ metafile: true,
+ bundle: true,
+ platform: "neutral",
+ format: "esm",
+ target: "es2022",
+ splitting: true,
+ });
+
+ expect(result.errors).toHaveLength(0);
+ expect(
+ result.outputFiles.filter(
+ (f) => !f.path.includes(join("dist", "chunk-")),
+ ),
+ ).toHaveLength(expectNbOutput(2));
+
+ expect(findOutput(result, entry1)).toSatisfy((s: string) =>
+ s.startsWith("dist/test/files/folder1/handler"),
+ );
+ expect(findOutput(result, entry2)).toSatisfy((s: string) =>
+ s.startsWith("dist/test/files/middleware"),
+ );
+
+ testEsbuildOutput(result, "handler", entry1);
+ testEsbuildOutput(result, "middleware", entry2);
+ });
+
+ it("generates all server files (multiple handlers)", async () => {
+ const entry1 = "test/files/folder1/handler.ts";
+ const entry2 = "test/files/folder2/handler.ts";
+ const result = await build({
+ entryPoints: [entry1, entry2],
+ plugins: [
+ plugin({
+ doNotEditPackageJson: true,
+ dts: false,
+ buildEnd(report) {
+ expect(report).toHaveLength(expectNbOutput(2));
+ const exports = report.map((r) => r.exports);
+
+ expect(exports).toContain("./test/files/folder1/handler-handler");
+ expect(exports).toContain("./test/files/folder2/handler-handler");
+ for (const adapter of adapters) {
+ expect(exports).toContain(
+ `./test/files/folder1/handler-handler-${adapter}`,
+ );
+ expect(exports).toContain(
+ `./test/files/folder2/handler-handler-${adapter}`,
+ );
+ }
+ },
+ }),
+ ],
+ outdir: "dist",
+ write: false,
+ metafile: true,
+ bundle: true,
+ platform: "neutral",
+ format: "esm",
+ target: "es2022",
+ splitting: true,
+ });
+
+ expect(result.errors).toHaveLength(0);
+ expect(
+ result.outputFiles.filter(
+ (f) => !f.path.includes(join("dist", "chunk-")),
+ ),
+ ).toHaveLength(expectNbOutput(2));
+
+ expect(findOutput(result, entry1)).toSatisfy((s: string) =>
+ s.startsWith("dist/test/files/folder1/handler"),
+ );
+ expect(findOutput(result, entry2)).toSatisfy((s: string) =>
+ s.startsWith("dist/test/files/folder2/handler"),
+ );
+
+ testEsbuildOutput(result, "handler", entry1);
+ testEsbuildOutput(result, "handler", entry2);
+ });
+
+ it("respects outbase", async () => {
+ const entry1 = "test/files/folder1/handler.ts";
+ const entry2 = "test/files/folder2/handler.ts";
+ const result = await build({
+ entryPoints: [entry1, entry2],
+ plugins: [
+ plugin({
+ doNotEditPackageJson: true,
+ dts: false,
+ buildEnd(report) {
+ expect(report).toHaveLength(expectNbOutput(2));
+ const exports = report.map((r) => r.exports);
+
+ expect(exports).toContain("./folder1/handler-handler");
+ expect(exports).toContain("./folder2/handler-handler");
+
+ for (const adapter of adapters) {
+ expect(exports).toContain(`./folder1/handler-handler-${adapter}`);
+ expect(exports).toContain(`./folder2/handler-handler-${adapter}`);
+ }
+ },
+ }),
+ ],
+ outdir: "dist",
+ outbase: "test/files",
+ write: false,
+ metafile: true,
+ bundle: true,
+ platform: "neutral",
+ format: "esm",
+ target: "es2022",
+ splitting: true,
+ });
+
+ expect(result.errors).toHaveLength(0);
+ expect(
+ result.outputFiles.filter(
+ (f) => !f.path.includes(join("dist", "chunk-")),
+ ),
+ ).toHaveLength(expectNbOutput(2));
+
+ expect(findOutput(result, entry1)).toSatisfy((s: string) =>
+ s.startsWith("dist/folder1/handler"),
+ );
+ expect(findOutput(result, entry2)).toSatisfy((s: string) =>
+ s.startsWith("dist/folder2/handler"),
+ );
+
+ testEsbuildOutput(result, "handler", entry1);
+ testEsbuildOutput(result, "handler", entry2);
+ });
+
+ it("generates selected server files", async () => {
+ const entry1 = "test/files/folder1/handler.ts";
+ const entry2 = "test/files/folder2/handler.ts";
+ const result = await build({
+ entryPoints: [entry1, entry2],
+ plugins: [
+ plugin({
+ doNotEditPackageJson: true,
+ dts: false,
+ servers: ["hono"],
+ buildEnd(report) {
+ expect(report).toHaveLength(4);
+ const exports = report.map((r) => r.exports);
+
+ expect(exports).toContain("./test/files/folder1/handler-handler");
+ expect(exports).toContain("./test/files/folder2/handler-handler");
+ expect(exports).toContain(
+ "./test/files/folder1/handler-handler-hono",
+ );
+ expect(exports).toContain(
+ "./test/files/folder2/handler-handler-hono",
+ );
+ },
+ }),
+ ],
+ outdir: "dist",
+ write: false,
+ metafile: true,
+ bundle: true,
+ platform: "neutral",
+ format: "esm",
+ target: "es2022",
+ splitting: true,
+ });
+
+ expect(result.errors).toHaveLength(0);
+ expect(
+ result.outputFiles.filter(
+ (f) => !f.path.includes(join("dist", "chunk-")),
+ ),
+ ).toHaveLength(4);
+
+ expect(findOutput(result, entry1)).toSatisfy((s: string) =>
+ s.startsWith("dist/test/files/folder1/handler"),
+ );
+ expect(findOutput(result, entry2)).toSatisfy((s: string) =>
+ s.startsWith("dist/test/files/folder2/handler"),
+ );
+ });
+
+ it("fails when bundle is not true", async () => {
+ const entry1 = "test/files/folder1/handler.ts";
+ const entry2 = "test/files/folder2/handler.ts";
+ await expect(
+ build({
+ entryPoints: [entry1, entry2],
+ plugins: [
+ plugin({
+ doNotEditPackageJson: true,
+ dts: false,
+ }),
+ ],
+ outdir: "dist",
+ write: false,
+ metafile: true,
+ platform: "neutral",
+ format: "esm",
+ target: "es2022",
+ }),
+ ).rejects.toThrow("bundle");
+ });
+
+ it("fails when exports overlap", async () => {
+ const entry1 = "test/files/folder1/handler.ts";
+ const entry2 = "test/files/folder2/handler.ts";
+ await expect(
+ build({
+ entryPoints: [entry1, entry2],
+ plugins: [
+ plugin({
+ doNotEditPackageJson: true,
+ dts: false,
+ serversExportNames: "[name]-[type]-[server]",
+ }),
+ ],
+ outdir: "dist",
+ bundle: true,
+ write: false,
+ metafile: true,
+ platform: "neutral",
+ format: "esm",
+ target: "es2022",
+ }),
+ ).rejects.toThrow("The following files have overlapping exports");
+ });
+});
+
+function findOutput(
+ result: BuildResult<{ metafile: true; write: false }>,
+ entry: string,
+) {
+ return Object.entries(result.metafile.outputs).find(
+ ([, value]) => value.entryPoint === entry,
+ )?.[0];
+}
+
+function testEsbuildHandler(
+ result: BuildResult<{ metafile: true; write: false }>,
+ type: "handler" | "middleware",
+ server: string,
+ f: string,
+) {
+ const output = findOutput(
+ result,
+ `virtual:universal-middleware:virtual:universal-middleware:${server}:${type}:${f}`,
+ );
+ expect(output).toBeTruthy();
+
+ const file = result.outputFiles.find((f) =>
+ f.path.includes(`universal-${server}-${type}`),
+ );
+ if (type === "handler") {
+ expect(file?.text).toContain(
+ `import { createHandler } from "@universal-middleware/${server}"`,
+ );
+ } else {
+ expect(file?.text).toContain(
+ `import { createMiddleware } from "@universal-middleware/${server}"`,
+ );
+ }
+}
+
+function testEsbuildOutput(
+ result: BuildResult<{ metafile: true; write: false }>,
+ type: "handler" | "middleware",
+ file: string,
+) {
+ for (const adapter of adapters) {
+ testEsbuildHandler(result, type, adapter, file);
+ }
+}
+
+function expectNbOutput(i: number) {
+ return i * (adapters.length + 1);
+}
diff --git a/packages/universal-middleware/test/files/dependency.ts b/packages/universal-middleware/test/files/dependency.ts
new file mode 100644
index 0000000..210b03b
--- /dev/null
+++ b/packages/universal-middleware/test/files/dependency.ts
@@ -0,0 +1 @@
+export default "DEPENDENCY";
diff --git a/packages/universal-middleware/test/files/folder1/handler.ts b/packages/universal-middleware/test/files/folder1/handler.ts
new file mode 100644
index 0000000..1d03c1f
--- /dev/null
+++ b/packages/universal-middleware/test/files/folder1/handler.ts
@@ -0,0 +1,3 @@
+import dependency from "../dependency.js";
+
+export default dependency;
diff --git a/packages/universal-middleware/test/files/folder2/handler.ts b/packages/universal-middleware/test/files/folder2/handler.ts
new file mode 100644
index 0000000..1d03c1f
--- /dev/null
+++ b/packages/universal-middleware/test/files/folder2/handler.ts
@@ -0,0 +1,3 @@
+import dependency from "../dependency.js";
+
+export default dependency;
diff --git a/packages/universal-middleware/test/files/middleware.ts b/packages/universal-middleware/test/files/middleware.ts
new file mode 100644
index 0000000..ed50652
--- /dev/null
+++ b/packages/universal-middleware/test/files/middleware.ts
@@ -0,0 +1 @@
+export default "MIDDLEWARE";
diff --git a/packages/universal-middleware/test/rollup.test.ts b/packages/universal-middleware/test/rollup.test.ts
new file mode 100644
index 0000000..6bec4fa
--- /dev/null
+++ b/packages/universal-middleware/test/rollup.test.ts
@@ -0,0 +1,330 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
+
+import { describe, expect, it } from "vitest";
+import { type OutputChunk, rollup, type RollupOutput } from "rollup";
+import { nodeResolve } from "@rollup/plugin-node-resolve";
+import typescript from "@rollup/plugin-typescript";
+import plugin from "../src/rollup";
+import { join, parse } from "node:path";
+
+const adapters = ["hono", "express", "hattip", "webroute"] as const;
+
+describe("rollup", () => {
+ it("generates all server files (string input)", async () => {
+ const entry = "test/files/folder1/handler.ts";
+ const result = await rollup({
+ input: entry,
+ plugins: [
+ plugin({
+ doNotEditPackageJson: true,
+ dts: false,
+ buildEnd(report) {
+ expect(report).toHaveLength(expectNbOutput(1));
+ const exports = report.map((r) => r.exports);
+
+ expect(exports).toContain("./test/files/folder1/handler-handler");
+
+ for (const adapter of adapters) {
+ expect(exports).toContain(
+ `./test/files/folder1/handler-handler-${adapter}`,
+ );
+ }
+ },
+ }),
+ nodeResolve(),
+ typescript({
+ sourceMap: false,
+ }),
+ ],
+ onwarn(warning) {
+ throw new Error(warning.message);
+ },
+ });
+
+ const gen = await result.generate({});
+
+ expect(
+ gen.output.filter((f) => f.type === "chunk" && f.isEntry),
+ ).toHaveLength(expectNbOutput(1));
+
+ const handler = gen.output.find((f: any) => f.facadeModuleId === entry) as
+ | OutputChunk
+ | undefined;
+ expect(handler?.name).toEqual(join("test", "files", "folder1", "handler"));
+
+ testRollupOutput(gen, "handler", entry);
+ });
+
+ it("generates all server files (object input)", async () => {
+ const entry1 = "test/files/folder1/handler.ts";
+ const entry2 = "test/files/middleware.ts";
+ const result = await rollup({
+ input: {
+ h: entry1,
+ m: entry2,
+ },
+ plugins: [
+ plugin({
+ doNotEditPackageJson: true,
+ dts: false,
+ buildEnd(report) {
+ expect(report).toHaveLength(expectNbOutput(2));
+ const exports = report.map((r) => r.exports);
+
+ expect(exports).toContain("./h-handler");
+ expect(exports).toContain("./m-middleware");
+ for (const adapter of adapters) {
+ expect(exports).toContain(`./h-handler-${adapter}`);
+ expect(exports).toContain(`./m-middleware-${adapter}`);
+ }
+ },
+ }),
+ nodeResolve(),
+ typescript({
+ sourceMap: false,
+ }),
+ ],
+ onwarn(warning) {
+ throw new Error(warning.message);
+ },
+ });
+
+ const gen = await result.generate({});
+
+ expect(
+ gen.output.filter((f) => f.type === "chunk" && f.isEntry),
+ ).toHaveLength(expectNbOutput(2));
+
+ const handler = gen.output.find((f: any) => f.facadeModuleId === entry1) as
+ | OutputChunk
+ | undefined;
+ expect(handler?.name).toEqual("h");
+
+ const middleware = gen.output.find(
+ (f: any) => f.facadeModuleId === entry2,
+ ) as OutputChunk | undefined;
+ expect(middleware?.name).toEqual("m");
+
+ testRollupOutput(gen, "handler", entry1);
+ testRollupOutput(gen, "middleware", entry2);
+ });
+
+ it("generates all server files (array input)", async () => {
+ const entry1 = "test/files/folder1/handler.ts";
+ const entry2 = "test/files/middleware.ts";
+ const result = await rollup({
+ input: [entry1, entry2],
+ plugins: [
+ plugin({
+ doNotEditPackageJson: true,
+ dts: false,
+ buildEnd(report) {
+ expect(report).toHaveLength(expectNbOutput(2));
+ const exports = report.map((r) => r.exports);
+
+ expect(exports).toContain("./test/files/folder1/handler-handler");
+ expect(exports).toContain("./test/files/middleware-middleware");
+ for (const adapter of adapters) {
+ expect(exports).toContain(
+ `./test/files/folder1/handler-handler-${adapter}`,
+ );
+ expect(exports).toContain(
+ `./test/files/middleware-middleware-${adapter}`,
+ );
+ }
+ },
+ }),
+ nodeResolve(),
+ typescript({
+ sourceMap: false,
+ }),
+ ],
+ onwarn(warning) {
+ throw new Error(warning.message);
+ },
+ });
+
+ const gen = await result.generate({});
+
+ expect(
+ gen.output.filter((f) => f.type === "chunk" && f.isEntry),
+ ).toHaveLength(expectNbOutput(2));
+
+ const handler = gen.output.find((f: any) => f.facadeModuleId === entry1) as
+ | OutputChunk
+ | undefined;
+ expect(handler?.name).toEqual(join("test", "files", "folder1", "handler"));
+
+ const middleware = gen.output.find(
+ (f: any) => f.facadeModuleId === entry2,
+ ) as OutputChunk | undefined;
+ expect(middleware?.name).toEqual(join("test", "files", "middleware"));
+
+ testRollupOutput(gen, "handler", entry1);
+ testRollupOutput(gen, "middleware", entry2);
+ });
+
+ it("generates all server files (multiple handlers)", async () => {
+ const entry1 = "test/files/folder1/handler.ts";
+ const entry2 = "test/files/folder2/handler.ts";
+ const result = await rollup({
+ input: [entry1, entry2],
+ plugins: [
+ plugin({
+ doNotEditPackageJson: true,
+ dts: false,
+ buildEnd(report) {
+ expect(report).toHaveLength(expectNbOutput(2));
+ const exports = report.map((r) => r.exports);
+
+ expect(exports).toContain("./test/files/folder1/handler-handler");
+ expect(exports).toContain("./test/files/folder2/handler-handler");
+ for (const adapter of adapters) {
+ expect(exports).toContain(
+ `./test/files/folder1/handler-handler-${adapter}`,
+ );
+ expect(exports).toContain(
+ `./test/files/folder2/handler-handler-${adapter}`,
+ );
+ }
+ },
+ }),
+ nodeResolve(),
+ typescript({
+ sourceMap: false,
+ }),
+ ],
+ onwarn(warning) {
+ throw new Error(warning.message);
+ },
+ });
+
+ const gen = await result.generate({});
+
+ expect(
+ gen.output.filter((f) => f.type === "chunk" && f.isEntry),
+ ).toHaveLength(expectNbOutput(2));
+
+ const handler1 = gen.output.find(
+ (f: any) => f.facadeModuleId === entry1,
+ ) as OutputChunk | undefined;
+ expect(handler1?.name).toEqual(join("test", "files", "folder1", "handler"));
+
+ const handler2 = gen.output.find(
+ (f: any) => f.facadeModuleId === entry2,
+ ) as OutputChunk | undefined;
+ expect(handler2?.name).toEqual(join("test", "files", "folder2", "handler"));
+
+ testRollupOutput(gen, "handler", entry1);
+ testRollupOutput(gen, "handler", entry2);
+ });
+
+ it("generates selected server files", async () => {
+ const entry1 = "test/files/folder1/handler.ts";
+ const entry2 = "test/files/folder2/handler.ts";
+ const result = await rollup({
+ input: [entry1, entry2],
+ plugins: [
+ plugin({
+ doNotEditPackageJson: true,
+ dts: false,
+ servers: ["hono"],
+ buildEnd(report) {
+ expect(report).toHaveLength(4);
+ const exports = report.map((r) => r.exports);
+
+ expect(exports).toContain("./test/files/folder1/handler-handler");
+ expect(exports).toContain("./test/files/folder2/handler-handler");
+ expect(exports).toContain(
+ "./test/files/folder1/handler-handler-hono",
+ );
+ expect(exports).toContain(
+ "./test/files/folder2/handler-handler-hono",
+ );
+ },
+ }),
+ nodeResolve(),
+ typescript({
+ sourceMap: false,
+ }),
+ ],
+ onwarn(warning) {
+ throw new Error(warning.message);
+ },
+ });
+
+ const gen = await result.generate({});
+
+ expect(
+ gen.output.filter((f) => f.type === "chunk" && f.isEntry),
+ ).toHaveLength(4);
+
+ const handler1 = gen.output.find(
+ (f: any) => f.facadeModuleId === entry1,
+ ) as OutputChunk | undefined;
+ expect(handler1?.name).toEqual(join("test", "files", "folder1", "handler"));
+
+ const handler2 = gen.output.find(
+ (f: any) => f.facadeModuleId === entry2,
+ ) as OutputChunk | undefined;
+ expect(handler2?.name).toEqual(join("test", "files", "folder2", "handler"));
+ });
+
+ it("fails when exports overlap", async () => {
+ const entry1 = "test/files/folder1/handler.ts";
+ const entry2 = "test/files/folder2/handler.ts";
+
+ const result = await rollup({
+ input: [entry1, entry2],
+ plugins: [
+ plugin({
+ doNotEditPackageJson: true,
+ dts: false,
+ serversExportNames: "[name]-[type]-[server]",
+ }),
+ nodeResolve(),
+ typescript({
+ sourceMap: false,
+ }),
+ ],
+ onwarn(warning) {
+ throw new Error(warning.message);
+ },
+ });
+
+ await expect(result.generate({})).rejects.toThrow(
+ "The following files have overlapping exports",
+ );
+ });
+});
+
+function testRollupHandler(
+ gen: RollupOutput,
+ type: "handler" | "middleware",
+ server: string,
+ f: string,
+) {
+ const parsed = parse(f);
+ const res = gen.output.find(
+ (file: any) =>
+ file.facadeModuleId ===
+ `virtual:universal-middleware:${server}:${type}:${f}`,
+ ) as OutputChunk | undefined;
+ expect(res!.name.replaceAll("\\", "/")).toEqual(
+ `${parsed.dir}/universal-${server}-${type}-${parsed.name}`,
+ );
+}
+
+function testRollupOutput(
+ gen: RollupOutput,
+ type: "handler" | "middleware",
+ f: string,
+) {
+ for (const adapter of adapters) {
+ testRollupHandler(gen, type, adapter, f);
+ }
+}
+
+function expectNbOutput(i: number) {
+ return i * (adapters.length + 1);
+}
diff --git a/packages/universal-middleware/tsconfig.json b/packages/universal-middleware/tsconfig.json
new file mode 100644
index 0000000..4082f16
--- /dev/null
+++ b/packages/universal-middleware/tsconfig.json
@@ -0,0 +1,3 @@
+{
+ "extends": "../../tsconfig.json"
+}
diff --git a/packages/universal-middleware/tsup.config.ts b/packages/universal-middleware/tsup.config.ts
new file mode 100644
index 0000000..af7cfe5
--- /dev/null
+++ b/packages/universal-middleware/tsup.config.ts
@@ -0,0 +1,11 @@
+import { defineConfig } from "tsup";
+
+export default defineConfig([
+ {
+ entry: ["src/index.ts", "src/rollup.ts", "src/esbuild.ts"],
+ format: "esm",
+ dts: true,
+ splitting: true,
+ bundle: true,
+ },
+]);
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b1837f8..21a7f71 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,28 +1,35 @@
lockfileVersion: '9.0'
settings:
- autoInstallPeers: true
+ autoInstallPeers: false
excludeLinksFromLockfile: false
overrides:
'@universal-middleware/core': link:./packages/core
+ '@universal-middleware/express': link:./packages/adapter-express
+ '@universal-middleware/hono': link:./packages/adapter-hono
+ '@universal-middleware/hattip': link:./packages/adapter-hattip
+ '@universal-middleware/webroute': link:./packages/adapter-webroute
+ universal-middleware: link:./packages/universal-middleware
+ '@webroute/middleware': ^0.9.0
+ esbuild: ^0.23.1
importers:
.:
dependencies:
'@hattip/adapter-node':
- specifier: ^0.0.46
- version: 0.0.46
+ specifier: ^0.0.47
+ version: 0.0.47
'@hattip/core':
- specifier: ^0.0.46
- version: 0.0.46
+ specifier: ^0.0.47
+ version: 0.0.47
'@hattip/polyfills':
- specifier: ^0.0.46
- version: 0.0.46
+ specifier: ^0.0.47
+ version: 0.0.47
'@hattip/router':
- specifier: ^0.0.46
- version: 0.0.46
+ specifier: ^0.0.47
+ version: 0.0.47
'@hono/node-server':
specifier: ^1.12.0
version: 1.12.0
@@ -39,27 +46,27 @@ importers:
specifier: ^7.1.0
version: 7.1.0
hono:
- specifier: ^4.4.12
- version: 4.4.12
+ specifier: ^4.5.6
+ version: 4.5.6
serve-static:
specifier: ^1.15.0
version: 1.15.0
tsx:
- specifier: ^4.16.2
- version: 4.16.2
+ specifier: ^4.17.0
+ version: 4.17.0
vite:
- specifier: ^5.3.3
- version: 5.3.3(@types/node@18.19.39)
+ specifier: ^5.4.1
+ version: 5.4.1(@types/node@18.19.44)
devDependencies:
'@hattip/compose':
- specifier: ^0.0.46
- version: 0.0.46
+ specifier: ^0.0.47
+ version: 0.0.47
'@hattip/vite':
- specifier: ^0.0.46
- version: 0.0.46(vite@5.3.3(@types/node@18.19.39))
+ specifier: ^0.0.47
+ version: 0.0.47(vite@5.4.1(@types/node@18.19.44))
'@hono/vite-dev-server':
- specifier: ^0.13.0
- version: 0.13.0(hono@4.4.12)
+ specifier: ^0.14.0
+ version: 0.14.0(hono@4.5.6)
'@types/express':
specifier: ^4.17.21
version: 4.17.21
@@ -68,16 +75,16 @@ importers:
version: 1.18.0
'@types/node':
specifier: ^18.19.14
- version: 18.19.39
+ version: 18.19.44
'@types/serve-static':
specifier: ^1.15.7
version: 1.15.7
'@typescript-eslint/eslint-plugin':
specifier: ^7.15.0
- version: 7.15.0(@typescript-eslint/parser@7.15.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3)
+ version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)
'@typescript-eslint/parser':
specifier: ^7.15.0
- version: 7.15.0(eslint@8.57.0)(typescript@5.5.3)
+ version: 7.18.0(eslint@8.57.0)(typescript@5.5.4)
eslint:
specifier: ^8.57.0
version: 8.57.0
@@ -85,20 +92,26 @@ importers:
specifier: ^9.1.0
version: 9.1.0(eslint@8.57.0)
express-rate-limit:
- specifier: ^7.3.1
- version: 7.3.1(express@4.19.2)
+ specifier: ^7.4.0
+ version: 7.4.0(express@4.19.2)
express-session:
specifier: ^1.18.0
version: 1.18.0
microdiff:
specifier: ^1.4.0
version: 1.4.0
+ npm-run-all2:
+ specifier: ^6.2.2
+ version: 6.2.2
on-change:
specifier: ^5.0.1
version: 5.0.1
+ playwright:
+ specifier: ^1.46.1
+ version: 1.46.1
prettier:
specifier: ^3.3.2
- version: 3.3.2
+ version: 3.3.3
proxy-deep:
specifier: ^4.0.1
version: 4.0.1
@@ -106,8 +119,45 @@ importers:
specifier: ^1.4.1
version: 1.4.1
typescript:
- specifier: ^5.5.3
- version: 5.5.3
+ specifier: ^5.5.4
+ version: 5.5.4
+
+ examples/tool:
+ optionalDependencies:
+ '@universal-middleware/express':
+ specifier: link:../../packages/adapter-express
+ version: link:../../packages/adapter-express
+ '@universal-middleware/hattip':
+ specifier: link:../../packages/adapter-hattip
+ version: link:../../packages/adapter-hattip
+ '@universal-middleware/hono':
+ specifier: link:../../packages/adapter-hono
+ version: link:../../packages/adapter-hono
+ '@universal-middleware/webroute':
+ specifier: link:../../packages/adapter-webroute
+ version: link:../../packages/adapter-webroute
+ devDependencies:
+ '@hono/node-server':
+ specifier: ^1.12.0
+ version: 1.12.0
+ '@swc/core':
+ specifier: ^1.7.11
+ version: 1.7.11
+ '@types/node':
+ specifier: ^20.14.10
+ version: 20.16.0
+ rimraf:
+ specifier: ^6.0.0
+ version: 6.0.1
+ tsup:
+ specifier: ^8.2.4
+ version: 8.2.4(@swc/core@1.7.11)(postcss@8.4.41)(tsx@4.17.0)(typescript@5.5.4)
+ typescript:
+ specifier: ^5.5.4
+ version: 5.5.4
+ universal-middleware:
+ specifier: link:../../packages/universal-middleware
+ version: link:../../packages/universal-middleware
packages/adapter-express:
dependencies:
@@ -116,11 +166,14 @@ importers:
version: link:../core
devDependencies:
'@brillout/release-me':
- specifier: ^0.3.9
- version: 0.3.9
+ specifier: ^0.4.0
+ version: 0.4.0
+ '@swc/core':
+ specifier: ^1.7.11
+ version: 1.7.11
'@types/node':
specifier: ^20.14.10
- version: 20.14.10
+ version: 20.16.0
'@universal-middleware/tests':
specifier: workspace:*
version: link:../tests
@@ -132,19 +185,19 @@ importers:
version: 7.1.0
rimraf:
specifier: ^6.0.0
- version: 6.0.0
+ version: 6.0.1
tsup:
- specifier: ^8.1.0
- version: 8.1.0(postcss@8.4.39)(typescript@5.5.3)
+ specifier: ^8.2.4
+ version: 8.2.4(@swc/core@1.7.11)(postcss@8.4.41)(tsx@4.17.0)(typescript@5.5.4)
tsx:
- specifier: ^4.16.2
- version: 4.16.2
+ specifier: ^4.17.0
+ version: 4.17.0
typescript:
- specifier: ^5.5.3
- version: 5.5.3
+ specifier: ^5.5.4
+ version: 5.5.4
vitest:
- specifier: ^2.0.2
- version: 2.0.2(@types/node@20.14.10)
+ specifier: ^2.0.5
+ version: 2.0.5(@types/node@20.16.0)
packages/adapter-hattip:
dependencies:
@@ -153,50 +206,53 @@ importers:
version: link:../core
devDependencies:
'@brillout/release-me':
- specifier: ^0.3.9
- version: 0.3.9
+ specifier: ^0.4.0
+ version: 0.4.0
'@hattip/adapter-bun':
- specifier: ^0.0.46
- version: 0.0.46
+ specifier: ^0.0.47
+ version: 0.0.47
'@hattip/adapter-deno':
- specifier: ^0.0.46
- version: 0.0.46
+ specifier: ^0.0.47
+ version: 0.0.47
'@hattip/adapter-node':
- specifier: ^0.0.46
- version: 0.0.46
+ specifier: ^0.0.47
+ version: 0.0.47
'@hattip/compose':
- specifier: ^0.0.46
- version: 0.0.46
+ specifier: ^0.0.47
+ version: 0.0.47
'@hattip/core':
- specifier: ^0.0.46
- version: 0.0.46
+ specifier: ^0.0.47
+ version: 0.0.47
'@hattip/cors':
- specifier: ^0.0.46
- version: 0.0.46
+ specifier: ^0.0.47
+ version: 0.0.47
'@hattip/router':
- specifier: ^0.0.46
- version: 0.0.46
+ specifier: ^0.0.47
+ version: 0.0.47
+ '@swc/core':
+ specifier: ^1.7.11
+ version: 1.7.11
'@types/node':
specifier: ^20.14.10
- version: 20.14.10
+ version: 20.16.0
'@universal-middleware/tests':
specifier: workspace:*
version: link:../tests
rimraf:
specifier: ^6.0.0
- version: 6.0.0
+ version: 6.0.1
tsup:
- specifier: ^8.1.0
- version: 8.1.0(postcss@8.4.39)(typescript@5.5.3)
+ specifier: ^8.2.4
+ version: 8.2.4(@swc/core@1.7.11)(postcss@8.4.41)(tsx@4.17.0)(typescript@5.5.4)
tsx:
- specifier: ^4.16.2
- version: 4.16.2
+ specifier: ^4.17.0
+ version: 4.17.0
typescript:
- specifier: ^5.5.3
- version: 5.5.3
+ specifier: ^5.5.4
+ version: 5.5.4
vitest:
- specifier: ^2.0.2
- version: 2.0.2(@types/node@20.14.10)
+ specifier: ^2.0.5
+ version: 2.0.5(@types/node@20.16.0)
packages/adapter-hono:
dependencies:
@@ -205,50 +261,105 @@ importers:
version: link:../core
devDependencies:
'@brillout/release-me':
- specifier: ^0.3.9
- version: 0.3.9
+ specifier: ^0.4.0
+ version: 0.4.0
+ '@swc/core':
+ specifier: ^1.7.11
+ version: 1.7.11
'@types/node':
specifier: ^20.14.10
- version: 20.14.10
+ version: 20.16.0
'@universal-middleware/tests':
specifier: workspace:*
version: link:../tests
hono:
- specifier: ^4.4.13
- version: 4.4.13
+ specifier: ^4.5.6
+ version: 4.5.6
rimraf:
specifier: ^6.0.0
- version: 6.0.0
+ version: 6.0.1
tsup:
- specifier: ^8.1.0
- version: 8.1.0(postcss@8.4.39)(typescript@5.5.3)
+ specifier: ^8.2.4
+ version: 8.2.4(@swc/core@1.7.11)(postcss@8.4.41)(tsx@4.17.0)(typescript@5.5.4)
tsx:
- specifier: ^4.16.2
- version: 4.16.2
+ specifier: ^4.17.0
+ version: 4.17.0
typescript:
- specifier: ^5.5.3
- version: 5.5.3
+ specifier: ^5.5.4
+ version: 5.5.4
vitest:
- specifier: ^2.0.2
- version: 2.0.2(@types/node@20.14.10)
+ specifier: ^2.0.5
+ version: 2.0.5(@types/node@20.16.0)
+
+ packages/adapter-webroute:
+ dependencies:
+ '@universal-middleware/core':
+ specifier: link:../core
+ version: link:../core
+ devDependencies:
+ '@brillout/release-me':
+ specifier: ^0.4.0
+ version: 0.4.0
+ '@swc/core':
+ specifier: ^1.7.11
+ version: 1.7.11
+ '@types/node':
+ specifier: ^20.14.10
+ version: 20.16.0
+ '@universal-middleware/hono':
+ specifier: link:../adapter-hono
+ version: link:../adapter-hono
+ '@universal-middleware/tests':
+ specifier: workspace:*
+ version: link:../tests
+ '@webroute/middleware':
+ specifier: ^0.9.0
+ version: 0.9.0
+ '@webroute/route':
+ specifier: ^0.6.0
+ version: 0.6.0
+ hono:
+ specifier: ^4.5.6
+ version: 4.5.6
+ rimraf:
+ specifier: ^6.0.0
+ version: 6.0.1
+ tsup:
+ specifier: ^8.2.4
+ version: 8.2.4(@swc/core@1.7.11)(postcss@8.4.41)(tsx@4.17.0)(typescript@5.5.4)
+ tsx:
+ specifier: ^4.17.0
+ version: 4.17.0
+ typescript:
+ specifier: ^5.5.4
+ version: 5.5.4
+ vitest:
+ specifier: ^2.0.5
+ version: 2.0.5(@types/node@20.16.0)
packages/core:
devDependencies:
'@brillout/release-me':
- specifier: ^0.3.9
- version: 0.3.9
+ specifier: ^0.4.0
+ version: 0.4.0
+ '@swc/core':
+ specifier: ^1.7.11
+ version: 1.7.11
+ '@types/bun':
+ specifier: ^1.1.6
+ version: 1.1.6
'@types/node':
specifier: ^20.14.10
- version: 20.14.10
+ version: 20.16.0
rimraf:
specifier: ^6.0.0
- version: 6.0.0
+ version: 6.0.1
tsup:
- specifier: ^8.1.0
- version: 8.1.0(postcss@8.4.39)(typescript@5.5.3)
+ specifier: ^8.2.4
+ version: 8.2.4(@swc/core@1.7.11)(postcss@8.4.41)(tsx@4.17.0)(typescript@5.5.4)
typescript:
- specifier: ^5.5.3
- version: 5.5.3
+ specifier: ^5.5.4
+ version: 5.5.4
packages/tests:
dependencies:
@@ -262,24 +373,139 @@ importers:
specifier: ^8.1.4
version: 8.1.4
devDependencies:
+ '@swc/core':
+ specifier: ^1.7.11
+ version: 1.7.11
'@types/node':
specifier: ^20.14.10
- version: 20.14.10
+ version: 20.16.0
'@universal-middleware/core':
specifier: link:../core
version: link:../core
rimraf:
specifier: ^6.0.0
- version: 6.0.0
+ version: 6.0.1
+ tsup:
+ specifier: ^8.2.4
+ version: 8.2.4(@swc/core@1.7.11)(postcss@8.4.41)(tsx@4.17.0)(typescript@5.5.4)
+ typescript:
+ specifier: ^5.5.4
+ version: 5.5.4
+ vitest:
+ specifier: ^2.0.5
+ version: 2.0.5(@types/node@20.16.0)
+
+ packages/universal-middleware:
+ dependencies:
+ '@universal-middleware/core':
+ specifier: link:../core
+ version: link:../core
+ '@universal-middleware/express':
+ specifier: link:../adapter-express
+ version: link:../adapter-express
+ '@universal-middleware/hattip':
+ specifier: link:../adapter-hattip
+ version: link:../adapter-hattip
+ '@universal-middleware/hono':
+ specifier: link:../adapter-hono
+ version: link:../adapter-hono
+ '@universal-middleware/webroute':
+ specifier: link:../adapter-webroute
+ version: link:../adapter-webroute
+ oxc-transform:
+ specifier: ^0.24.3
+ version: 0.24.3
+ package-up:
+ specifier: ^5.0.0
+ version: 5.0.0
+ unplugin:
+ specifier: ^1.12.2
+ version: 1.12.2
+ devDependencies:
+ '@rollup/plugin-node-resolve':
+ specifier: ^15.2.3
+ version: 15.2.3(rollup@4.21.0)
+ '@rollup/plugin-typescript':
+ specifier: ^11.1.6
+ version: 11.1.6(rollup@4.21.0)(tslib@2.6.3)(typescript@5.5.4)
+ '@swc/core':
+ specifier: ^1.7.11
+ version: 1.7.11
+ esbuild:
+ specifier: ^0.23.1
+ version: 0.23.1
+ rimraf:
+ specifier: ^6.0.1
+ version: 6.0.1
+ rollup:
+ specifier: ^4.21.0
+ version: 4.21.0
tsup:
- specifier: ^8.1.0
- version: 8.1.0(postcss@8.4.39)(typescript@5.5.3)
+ specifier: ^8.2.4
+ version: 8.2.4(@swc/core@1.7.11)(postcss@8.4.41)(tsx@4.17.0)(typescript@5.5.4)
typescript:
- specifier: ^5.5.3
- version: 5.5.3
+ specifier: ^5.5.4
+ version: 5.5.4
+ vite:
+ specifier: ^5.4.1
+ version: 5.4.1(@types/node@20.16.0)
+ vitest:
+ specifier: ^2.0.5
+ version: 2.0.5(@types/node@20.16.0)
+
+ tests-examples/tests-tool:
+ devDependencies:
+ '@brillout/test-e2e':
+ specifier: ^0.5.34
+ version: 0.5.34
+ '@hono/vite-dev-server':
+ specifier: ^0.14.0
+ version: 0.14.0(hono@4.5.6)
+ '@types/node':
+ specifier: ^20.14.10
+ version: 20.16.0
+ '@universal-middleware-examples/tool':
+ specifier: workspace:*
+ version: link:../../examples/tool
+ '@universal-middleware/core':
+ specifier: link:../../packages/core
+ version: link:../../packages/core
+ '@universal-middleware/express':
+ specifier: link:../../packages/adapter-express
+ version: link:../../packages/adapter-express
+ '@universal-middleware/hattip':
+ specifier: link:../../packages/adapter-hattip
+ version: link:../../packages/adapter-hattip
+ '@universal-middleware/hono':
+ specifier: link:../../packages/adapter-hono
+ version: link:../../packages/adapter-hono
+ '@universal-middleware/webroute':
+ specifier: link:../../packages/adapter-webroute
+ version: link:../../packages/adapter-webroute
+ hono:
+ specifier: ^4.5.6
+ version: 4.5.6
+ npm-run-all2:
+ specifier: ^6.2.2
+ version: 6.2.2
+ playwright:
+ specifier: ^1.46.1
+ version: 1.46.1
+ rimraf:
+ specifier: ^6.0.0
+ version: 6.0.1
+ tsx:
+ specifier: ^4.17.0
+ version: 4.17.0
+ typescript:
+ specifier: ^5.5.4
+ version: 5.5.4
+ vite:
+ specifier: ^5.4.1
+ version: 5.4.1(@types/node@20.16.0)
vitest:
- specifier: ^2.0.2
- version: 2.0.2(@types/node@20.14.10)
+ specifier: ^2.0.5
+ version: 2.0.5(@types/node@20.16.0)
packages:
@@ -299,39 +525,46 @@ packages:
resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==}
engines: {node: '>=6.9.0'}
- '@brillout/picocolors@1.0.13':
- resolution: {integrity: sha512-LblvMKItHbvkaIMI+Awsk1EEjmReE8E8Mgjtj3Pdn/qBvwQ6e+ts5uEqG6iTrK6JWndcxrQgSe664KfoteN6fA==}
+ '@brillout/part-regex@0.1.4':
+ resolution: {integrity: sha512-PQy5LfRmIueEfGwhvMedsnj6KulDfxlfvUaTsUchBqA7nTge4C7taG/V6np2uCHVxxE4+cSmwM4COn9aNcMn7g==}
+
+ '@brillout/picocolors@1.0.14':
+ resolution: {integrity: sha512-XhyZY3/FUh56mDuLIjv5kN9qy+oQj7A/d2uQ6cJJ4uVv55+velua3abcrM5WIvs2RHZGA3EE7S9FWo+TjF10ew==}
- '@brillout/release-me@0.3.9':
- resolution: {integrity: sha512-7Q9YD+rnVF9hFmRFNSEePAejYSgZzWABJTA5sFrfD1utREt5K8aokoldvm/WES83SOMIkPO97c2kII9J4snc7Q==}
+ '@brillout/release-me@0.4.0':
+ resolution: {integrity: sha512-V4YwITguHK3zOy9B4606lc9PQiFDp3p3Ifeq4KF7V8o9fs7OmcrfTWBE0EWFtiLhG2JeKb2RzM0t6Y4tLgXd6w==}
hasBin: true
- '@cloudflare/workerd-darwin-64@1.20240701.0':
- resolution: {integrity: sha512-XAZa4ZP+qyTn6JQQACCPH09hGZXP2lTnWKkmg5mPwT8EyRzCKLkczAf98vPP5bq7JZD/zORdFWRY0dOTap8zTQ==}
+ '@brillout/test-e2e@0.5.34':
+ resolution: {integrity: sha512-7opuTq9Uy06RwgTtCc2GHoTDcdZafsF5WktZXLYl+FAwrn6xW3f2UTeRBFLdKTgGw7g1MPv0QnTOIzlM9r+G6A==}
+ hasBin: true
+
+ '@cloudflare/workerd-darwin-64@1.20240806.0':
+ resolution: {integrity: sha512-FqcVBBCO//I39K5F+HqE/v+UkqY1UrRnS653Jv+XsNNH9TpX5fTs7VCKG4kDSnmxlAaKttyIN5sMEt7lpuNExQ==}
engines: {node: '>=16'}
cpu: [x64]
os: [darwin]
- '@cloudflare/workerd-darwin-arm64@1.20240701.0':
- resolution: {integrity: sha512-w80ZVAgfH4UwTz7fXZtk7KmS2FzlXniuQm4ku4+cIgRTilBAuKqjpOjwUCbx5g13Gqcm9NuiHce+IDGtobRTIQ==}
+ '@cloudflare/workerd-darwin-arm64@1.20240806.0':
+ resolution: {integrity: sha512-8c3KvmzYp/wg+82KHSOzDetJK+pThH4MTrU1OsjmsR2cUfedm5dk5Lah9/0Ld68+6A0umFACi4W2xJHs/RoBpA==}
engines: {node: '>=16'}
cpu: [arm64]
os: [darwin]
- '@cloudflare/workerd-linux-64@1.20240701.0':
- resolution: {integrity: sha512-UWLr/Anxwwe/25nGv451MNd2jhREmPt/ws17DJJqTLAx6JxwGWA15MeitAIzl0dbxRFAJa+0+R8ag2WR3F/D6g==}
+ '@cloudflare/workerd-linux-64@1.20240806.0':
+ resolution: {integrity: sha512-/149Bpxw4e2p5QqnBc06g0mx+4sZYh9j0doilnt0wk/uqYkLp0DdXGMQVRB74sBLg2UD3wW8amn1w3KyFhK2tQ==}
engines: {node: '>=16'}
cpu: [x64]
os: [linux]
- '@cloudflare/workerd-linux-arm64@1.20240701.0':
- resolution: {integrity: sha512-3kCnF9kYgov1ggpuWbgpXt4stPOIYtVmPCa7MO2xhhA0TWP6JDUHRUOsnmIgKrvDjXuXqlK16cdg3v+EWsaPJg==}
+ '@cloudflare/workerd-linux-arm64@1.20240806.0':
+ resolution: {integrity: sha512-lacDWY3S1rKL/xT6iMtTQJEKmTTKrBavPczInEuBFXElmrS6IwVjZwv8hhVm32piyNt/AuFu9BYoJALi9D85/g==}
engines: {node: '>=16'}
cpu: [arm64]
os: [linux]
- '@cloudflare/workerd-windows-64@1.20240701.0':
- resolution: {integrity: sha512-6IPGITRAeS67j3BH1rN4iwYWDt47SqJG7KlZJ5bB4UaNAia4mvMBSy/p2p4vA89bbXoDRjMtEvRu7Robu6O7hQ==}
+ '@cloudflare/workerd-windows-64@1.20240806.0':
+ resolution: {integrity: sha512-hC6JEfTSQK6//Lg+D54TLVn1ceTPY+fv4MXqDZIYlPP53iN+dL8Xd0utn2SG57UYdlL5FRAhm/EWHcATZg1RgA==}
engines: {node: '>=16'}
cpu: [x64]
os: [win32]
@@ -340,141 +573,147 @@ packages:
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
engines: {node: '>=12'}
- '@esbuild/aix-ppc64@0.21.5':
- resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
- engines: {node: '>=12'}
+ '@esbuild/aix-ppc64@0.23.1':
+ resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==}
+ engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
- '@esbuild/android-arm64@0.21.5':
- resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
- engines: {node: '>=12'}
+ '@esbuild/android-arm64@0.23.1':
+ resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [android]
- '@esbuild/android-arm@0.21.5':
- resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
- engines: {node: '>=12'}
+ '@esbuild/android-arm@0.23.1':
+ resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==}
+ engines: {node: '>=18'}
cpu: [arm]
os: [android]
- '@esbuild/android-x64@0.21.5':
- resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
- engines: {node: '>=12'}
+ '@esbuild/android-x64@0.23.1':
+ resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [android]
- '@esbuild/darwin-arm64@0.21.5':
- resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
- engines: {node: '>=12'}
+ '@esbuild/darwin-arm64@0.23.1':
+ resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
- '@esbuild/darwin-x64@0.21.5':
- resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
- engines: {node: '>=12'}
+ '@esbuild/darwin-x64@0.23.1':
+ resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
- '@esbuild/freebsd-arm64@0.21.5':
- resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
- engines: {node: '>=12'}
+ '@esbuild/freebsd-arm64@0.23.1':
+ resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
- '@esbuild/freebsd-x64@0.21.5':
- resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
- engines: {node: '>=12'}
+ '@esbuild/freebsd-x64@0.23.1':
+ resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
- '@esbuild/linux-arm64@0.21.5':
- resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
- engines: {node: '>=12'}
+ '@esbuild/linux-arm64@0.23.1':
+ resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
- '@esbuild/linux-arm@0.21.5':
- resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
- engines: {node: '>=12'}
+ '@esbuild/linux-arm@0.23.1':
+ resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==}
+ engines: {node: '>=18'}
cpu: [arm]
os: [linux]
- '@esbuild/linux-ia32@0.21.5':
- resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
- engines: {node: '>=12'}
+ '@esbuild/linux-ia32@0.23.1':
+ resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==}
+ engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
- '@esbuild/linux-loong64@0.21.5':
- resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
- engines: {node: '>=12'}
+ '@esbuild/linux-loong64@0.23.1':
+ resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==}
+ engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
- '@esbuild/linux-mips64el@0.21.5':
- resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
- engines: {node: '>=12'}
+ '@esbuild/linux-mips64el@0.23.1':
+ resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==}
+ engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
- '@esbuild/linux-ppc64@0.21.5':
- resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
- engines: {node: '>=12'}
+ '@esbuild/linux-ppc64@0.23.1':
+ resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==}
+ engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
- '@esbuild/linux-riscv64@0.21.5':
- resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
- engines: {node: '>=12'}
+ '@esbuild/linux-riscv64@0.23.1':
+ resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==}
+ engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
- '@esbuild/linux-s390x@0.21.5':
- resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
- engines: {node: '>=12'}
+ '@esbuild/linux-s390x@0.23.1':
+ resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==}
+ engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
- '@esbuild/linux-x64@0.21.5':
- resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
- engines: {node: '>=12'}
+ '@esbuild/linux-x64@0.23.1':
+ resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [linux]
- '@esbuild/netbsd-x64@0.21.5':
- resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
- engines: {node: '>=12'}
+ '@esbuild/netbsd-x64@0.23.1':
+ resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
- '@esbuild/openbsd-x64@0.21.5':
- resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
- engines: {node: '>=12'}
+ '@esbuild/openbsd-arm64@0.23.1':
+ resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==}
+ engines: {node: '>=18'}
+ cpu: [arm64]
+ os: [openbsd]
+
+ '@esbuild/openbsd-x64@0.23.1':
+ resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
- '@esbuild/sunos-x64@0.21.5':
- resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
- engines: {node: '>=12'}
+ '@esbuild/sunos-x64@0.23.1':
+ resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
- '@esbuild/win32-arm64@0.21.5':
- resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
- engines: {node: '>=12'}
+ '@esbuild/win32-arm64@0.23.1':
+ resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==}
+ engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
- '@esbuild/win32-ia32@0.21.5':
- resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
- engines: {node: '>=12'}
+ '@esbuild/win32-ia32@0.23.1':
+ resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==}
+ engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
- '@esbuild/win32-x64@0.21.5':
- resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
- engines: {node: '>=12'}
+ '@esbuild/win32-x64@0.23.1':
+ resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==}
+ engines: {node: '>=18'}
cpu: [x64]
os: [win32]
@@ -500,49 +739,61 @@ packages:
resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==}
engines: {node: '>=14'}
- '@hattip/adapter-bun@0.0.46':
- resolution: {integrity: sha512-7hlKJRO1DfaLHihmIloi9Gb9Qta1MxFCwOV3/rlqn39hd9L7LvJjLRxprVtfGTZcBFu8nJcG4A8H/i5hxqZsmA==}
+ '@hapi/hoek@9.3.0':
+ resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
+
+ '@hapi/topo@5.1.0':
+ resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
+
+ '@hattip/adapter-bun@0.0.47':
+ resolution: {integrity: sha512-QwQbnZ1RVBEPathn8vPU2AGH0LtMfTMDYKGHhA3QjRntdTySv6vpBtGKDA9A+qpU/b/cx4u9ZZ+yMNsblQkZsA==}
+
+ '@hattip/adapter-deno@0.0.47':
+ resolution: {integrity: sha512-evaL45aZthrZjMIhRSCFkyEIlT/4N8EuBjcLE6AlIqDA+BmhvVTbZk8ucxo8ybAqRAhVDyLFCgEqTR2jgLekSQ==}
+
+ '@hattip/adapter-node@0.0.47':
+ resolution: {integrity: sha512-QC0+p3w9nmIDsqwJKHDw26htJtbOm+K2HFAnxFq1+6MzOLwticRo0zM5KSQzkXWwt/3/7vTbwxHY+pO9tE9jTg==}
- '@hattip/adapter-deno@0.0.46':
- resolution: {integrity: sha512-7JL/H5l8jc/JtEa5vzh2KsL2HKu3gp2jzE8+3OGjzTxMs+aOp14dLbt6N4Uy32fHoGXME36I46WTCrM30gq9Dw==}
+ '@hattip/compose@0.0.45':
+ resolution: {integrity: sha512-Xrxk2kx6htAoR/fBQEnhhqfjBdHFBi2UtiFuhD6qSSwEaD2jTGkyDzYAmVqPIO0ZSvIlIBBpGKdXip4JhdBMww==}
- '@hattip/adapter-node@0.0.46':
- resolution: {integrity: sha512-DvG2VH4/116T7x1ibzzeGcoGA940w4G0Gy7XjVOgE6ZXwAOunoXS2zfqTlSxFsdTegDnXpGxI50XVq6cdcwBKA==}
+ '@hattip/compose@0.0.47':
+ resolution: {integrity: sha512-4v5CqHthQpGAJpY+T5FZhbweue5ivSZ/Uy7LLCijJlx+qZGTHFmKsh96cno99Wn2PMUCUQIctGkgfjWPa9azTA==}
- '@hattip/compose@0.0.46':
- resolution: {integrity: sha512-CZRQ+6CnJWY5tslKGgRnS8kKaEBvkViIz9V49Obk4ieGXK0HlGMU9Cyflktx5Pcb5tVNwbrX0dTRiIDesJ1maA==}
+ '@hattip/core@0.0.45':
+ resolution: {integrity: sha512-4BK9dPU7sLvmP9sUq048uSaKFvQY2Qa6D0xQteQBIiDYuTdbopcUQLETM1sdkUeUtFxHPwPu/NclfJAC5INarw==}
- '@hattip/core@0.0.46':
- resolution: {integrity: sha512-6pk22hPi9qVc6jyROu89T2yV2IcORTJZUq5OdFDfWmu4ynMP4I2avC+hnCJj6o3vlN1Io7zBbdT5OIPxpBIX7A==}
+ '@hattip/core@0.0.47':
+ resolution: {integrity: sha512-g+yoz7ZCTc4WRIGvbrbnrzfB77Z3tknbJxkLDicxpCL/oErj+IV+jfJj/DWNsgijuUFYCqR2HLaYzl0NGfppRA==}
- '@hattip/cors@0.0.46':
- resolution: {integrity: sha512-ldg+HNACfZ4Vud7V1+plmXB/csJIIECTB9O8b08KrLBY5y+L3CB049UIeCz8WVmKvVxjj+H4VZfF+JUoHoWQDQ==}
+ '@hattip/cors@0.0.47':
+ resolution: {integrity: sha512-EUtGOYugKKU+iNT7jugArR2M5QPRXzBOT/R6JDuT6alwnJqPpahr/CAcq3Ra2XqPE6BeanAr8WV6JP+nq0JVGg==}
- '@hattip/headers@0.0.46':
- resolution: {integrity: sha512-kk6hzTjTv0McRgt8bv8IwUOWsphrRQzaUvtXz4w60eQQCO6RHL/wzX6BEh+3eJQFVtmu6yFnh/O6NDnSxSPM7Q==}
+ '@hattip/headers@0.0.47':
+ resolution: {integrity: sha512-t52miakFhUHpgDvOHafuWVYksMNVr4umOc/zt0N9jt2g8qNSQWrt/vh2olx7WMKtft2Jbl23F0xZBIIN55Je3w==}
- '@hattip/polyfills@0.0.46':
- resolution: {integrity: sha512-S+0lm8lDZrw5nT9QZwf9+3LukPL6z0kOgMFqW0xkCnJvzZ7NTmn/xc4SsOFD7bYZ4bH/Z4kdi5xw38hLyfMYOw==}
+ '@hattip/polyfills@0.0.47':
+ resolution: {integrity: sha512-sVW4kz0tQieVBCE6y0bWbGjtd8r9dhK9pBje3g/bc77F4qXhLGyxM3gfgRQpjalM4anBIkIwG31cmeLQTyxalg==}
- '@hattip/router@0.0.46':
- resolution: {integrity: sha512-+cDVNElFOUqCf89aK2qJWck12U+i51JzW1q8KgEJCCCEbni2L6BIWjeJ+Cgxx80Mk27B+In3EdEOdX043qNGbA==}
+ '@hattip/router@0.0.47':
+ resolution: {integrity: sha512-XpwrvKQuEh26KCa1OyIawmmGn1bIAt2O1RZCvAKcE2z9zy9IM7v8R81b6gt0qOwfmMae92Grfyjl5tcH6/eGbA==}
- '@hattip/vite@0.0.46':
- resolution: {integrity: sha512-7BhpL1tJqdRiXnPzubXzd46013cXxITXTIxT4iQAH13ARCrSiatwdHVPo8q5TyxNDWPRuLaUlnWNmMB+JNaQNw==}
+ '@hattip/vite@0.0.47':
+ resolution: {integrity: sha512-mo9fd7pkqOBhWyC7sfZ6t0a4OTvwvIHJYW0KQaAebzDJkgUIy0uXmNwJtdteSc7w1S9H5SeXGIec9OAmmWfrzg==}
hasBin: true
peerDependencies:
- vite: ^4 | ^5
+ vite: ^4 || ^5
- '@hattip/walk@0.0.46':
- resolution: {integrity: sha512-LFzLLNgEpf8ulR/ni/5IuQ1c3rTEDj7f9LD6xnMvlIZsYklRDFY6BmfcJTGMICVG3g0tOQjsAL0xkPPPGAv8WQ==}
+ '@hattip/walk@0.0.47':
+ resolution: {integrity: sha512-kCEdC2kG3mbFCc2gHs13GFI5VaWfvYYYxZwu7u3wax3R7JkLqztyxno35TT9cMv33XhuN5hf+CkDGCPoO0DIag==}
hasBin: true
'@hono/node-server@1.12.0':
resolution: {integrity: sha512-e6oHjNiErRxsZRZBmc2KucuvY3btlO/XPncIpP2X75bRdTilF9GLjm3NHvKKunpJbbJJj31/FoPTksTf8djAVw==}
engines: {node: '>=18.14.1'}
- '@hono/vite-dev-server@0.13.0':
- resolution: {integrity: sha512-Qy+wEMFb6sphFsOoCSVsgt0tM4rXdNs/9Y9OJSu5kjs+xqNoKzCTXahFQJQYXkQQ1RAOOZxJaPZfdomD14zmwA==}
+ '@hono/vite-dev-server@0.14.0':
+ resolution: {integrity: sha512-rhd+hxIIG6wSS73WQxXF7/CiOHBlxdynrRUihSwEszpysB0HWOMN2Q7QprnPHsZSNmGohoTXZxwo7iM4hukGzw==}
engines: {node: '>=18.14.1'}
peerDependencies:
hono: '*'
@@ -580,8 +831,8 @@ packages:
resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
engines: {node: '>=6.0.0'}
- '@jridgewell/sourcemap-codec@1.4.15':
- resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
+ '@jridgewell/sourcemap-codec@1.5.0':
+ resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
'@jridgewell/trace-mapping@0.3.25':
resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
@@ -604,93 +855,254 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
+ '@oxc-transform/binding-darwin-arm64@0.24.3':
+ resolution: {integrity: sha512-zCbdMm3wV2EhRK/za4KiEmukusyaYCqK6+/5at3lx3WuKUjF1lXiLUCuMSK06J6kOqG3uVe2whb5w76L5t5X/Q==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@oxc-transform/binding-darwin-x64@0.24.3':
+ resolution: {integrity: sha512-M6M+Nrkps9vlFlWP2JJAkmOXVBTSsqmOIfACfaAUAydzGK84UAximxrTLp4JHPbsIx9FPX3Z9Di32B+lK1hOVg==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@oxc-transform/binding-linux-arm64-gnu@0.24.3':
+ resolution: {integrity: sha512-XzLxUmjztX+/8rlmFyTrZTcECiDBgN1/fAXcj0dNYp8fKspmo7ahPix3IZPPa6kgSpA8SQ4sKhMsT428jM901A==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@oxc-transform/binding-linux-arm64-musl@0.24.3':
+ resolution: {integrity: sha512-giu3raN2bcU+mnI8nfVH71TTD1QzudZUKjYoYIZBbuTvT9FHtZILhbrWijhhhXXWrJqDoB92Ko+G02Ned9S6lw==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@oxc-transform/binding-linux-x64-gnu@0.24.3':
+ resolution: {integrity: sha512-W++VfrY6vpko0T6iyJhiN2bphMHFiMM8bt2BWwF5tXRaPZMXW7wvfxBR1l7r/Y1f0lniLviBTLlZjOJeYBrDwQ==}
+ cpu: [x64]
+ os: [linux]
+
+ '@oxc-transform/binding-linux-x64-musl@0.24.3':
+ resolution: {integrity: sha512-eJzAJhzwfTkHqSAZ+GvcSKY4UfBDv86Zk/gDIa+zmpxpovtCWlGXRiNyUZI0aWgPbH3+5FZnjRLMbw4bJZfrHw==}
+ cpu: [x64]
+ os: [linux]
+
+ '@oxc-transform/binding-win32-arm64-msvc@0.24.3':
+ resolution: {integrity: sha512-gUZ9OQujXhtXWamNWBt1FAW0+ECAMOdrq4MWdqnrzkXKY9ndyJ4CjzulPH8nj/+6AaDq5iv9yTfgJ4bWM9uVTg==}
+ cpu: [arm64]
+ os: [win32]
+
+ '@oxc-transform/binding-win32-x64-msvc@0.24.3':
+ resolution: {integrity: sha512-KfrdrMAn+ZX21qncVjsXt5Tu3Fs/nKj8D6gPL7pXZ8zB/qzYP6aroMChsassb1d3u8fEJB0tl/5DziprZFZYng==}
+ cpu: [x64]
+ os: [win32]
+
'@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
- '@rollup/rollup-android-arm-eabi@4.18.0':
- resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==}
+ '@rollup/plugin-node-resolve@15.2.3':
+ resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^2.78.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/plugin-typescript@11.1.6':
+ resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^2.14.0||^3.0.0||^4.0.0
+ tslib: '*'
+ typescript: '>=3.7.0'
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ tslib:
+ optional: true
+
+ '@rollup/pluginutils@5.1.0':
+ resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/rollup-android-arm-eabi@4.21.0':
+ resolution: {integrity: sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==}
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm64@4.18.0':
- resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==}
+ '@rollup/rollup-android-arm64@4.21.0':
+ resolution: {integrity: sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==}
cpu: [arm64]
os: [android]
- '@rollup/rollup-darwin-arm64@4.18.0':
- resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==}
+ '@rollup/rollup-darwin-arm64@4.21.0':
+ resolution: {integrity: sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==}
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.18.0':
- resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==}
+ '@rollup/rollup-darwin-x64@4.21.0':
+ resolution: {integrity: sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==}
cpu: [x64]
os: [darwin]
- '@rollup/rollup-linux-arm-gnueabihf@4.18.0':
- resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==}
+ '@rollup/rollup-linux-arm-gnueabihf@4.21.0':
+ resolution: {integrity: sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-musleabihf@4.18.0':
- resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==}
+ '@rollup/rollup-linux-arm-musleabihf@4.21.0':
+ resolution: {integrity: sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==}
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm64-gnu@4.18.0':
- resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==}
+ '@rollup/rollup-linux-arm64-gnu@4.21.0':
+ resolution: {integrity: sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-musl@4.18.0':
- resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==}
+ '@rollup/rollup-linux-arm64-musl@4.21.0':
+ resolution: {integrity: sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==}
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-powerpc64le-gnu@4.18.0':
- resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==}
+ '@rollup/rollup-linux-powerpc64le-gnu@4.21.0':
+ resolution: {integrity: sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==}
cpu: [ppc64]
os: [linux]
- '@rollup/rollup-linux-riscv64-gnu@4.18.0':
- resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==}
+ '@rollup/rollup-linux-riscv64-gnu@4.21.0':
+ resolution: {integrity: sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==}
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-s390x-gnu@4.18.0':
- resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==}
+ '@rollup/rollup-linux-s390x-gnu@4.21.0':
+ resolution: {integrity: sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==}
cpu: [s390x]
os: [linux]
- '@rollup/rollup-linux-x64-gnu@4.18.0':
- resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==}
+ '@rollup/rollup-linux-x64-gnu@4.21.0':
+ resolution: {integrity: sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-musl@4.18.0':
- resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==}
+ '@rollup/rollup-linux-x64-musl@4.21.0':
+ resolution: {integrity: sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==}
cpu: [x64]
os: [linux]
- '@rollup/rollup-win32-arm64-msvc@4.18.0':
- resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==}
+ '@rollup/rollup-win32-arm64-msvc@4.21.0':
+ resolution: {integrity: sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==}
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.18.0':
- resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==}
+ '@rollup/rollup-win32-ia32-msvc@4.21.0':
+ resolution: {integrity: sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==}
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.18.0':
- resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==}
+ '@rollup/rollup-win32-x64-msvc@4.21.0':
+ resolution: {integrity: sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==}
cpu: [x64]
os: [win32]
+ '@sideway/address@4.1.5':
+ resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
+
+ '@sideway/formula@3.0.1':
+ resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==}
+
+ '@sideway/pinpoint@2.0.0':
+ resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==}
+
+ '@sinclair/typebox@0.32.35':
+ resolution: {integrity: sha512-Ul3YyOTU++to8cgNkttakC0dWvpERr6RYoHO2W47DLbFvrwBDJUY31B1sImH6JZSYc4Kt4PyHtoPNu+vL2r2dA==}
+
+ '@swc/core-darwin-arm64@1.7.11':
+ resolution: {integrity: sha512-HRQv4qIeMBPThZ6Y/4yYW52rGsS6yrpusvuxLGyoFo45Y0y12/V2yXkOIA/0HIQyrqoUAxn1k4zQXpPaPNCmnw==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@swc/core-darwin-x64@1.7.11':
+ resolution: {integrity: sha512-vtMQj0F3oYwDu5yhO7SKDRg1XekRSi6/TbzHAbBXv+dBhlGGvcZZynT1H90EVFTv+7w7Sh+lOFvRv5Z4ZTcxow==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@swc/core-linux-arm-gnueabihf@1.7.11':
+ resolution: {integrity: sha512-mHtzWKxhtyreI4CSxs+3+ENv8t/Qo35WFoYG66qHEgJz/Z2Lh6jv1E+MYgHdYwnpQHgHbdvAco7HsBu/Dt6xXw==}
+ engines: {node: '>=10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@swc/core-linux-arm64-gnu@1.7.11':
+ resolution: {integrity: sha512-FRwe/x0GfXSQjGP2lIk+NO0pUFS/lI/RorCLBPiK808EVE9JTbh9DKCc/4Bbb4jgScAjNkrFCUVObQYl3YKmpA==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@swc/core-linux-arm64-musl@1.7.11':
+ resolution: {integrity: sha512-GY/rs0+GUq14Gbnza90KOrQd/9yHd5qQMii5jcSWcUCT5A8QTa8kiicsM2NxZeTJ69xlKmT7sLod5l99lki/2A==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@swc/core-linux-x64-gnu@1.7.11':
+ resolution: {integrity: sha512-QDkGRwSPmp2RBOlSs503IUXlWYlny8DyznTT0QuK0ML2RpDFlXWU94K/EZhS0RBEUkMY/W51OacM8P8aS/dkCg==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@swc/core-linux-x64-musl@1.7.11':
+ resolution: {integrity: sha512-SBEfKrXy6zQ6ksnyxw1FaCftrIH4fLfA81xNnKb7x/6iblv7Ko6H0aK3P5C86jyqF/82+ONl9C7ImGkUFQADig==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@swc/core-win32-arm64-msvc@1.7.11':
+ resolution: {integrity: sha512-a2Y4xxEsLLYHJN7sMnw9+YQJDi3M1BxEr9hklfopPuGGnYLFNnx5CypH1l9ReijEfWjIAHNi7pq3m023lzW1Hg==}
+ engines: {node: '>=10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@swc/core-win32-ia32-msvc@1.7.11':
+ resolution: {integrity: sha512-ZbZFMwZO+j8ulhegJ7EhJ/QVZPoQ5qc30ylJQSxizizTJaen71Q7/13lXWc6ksuCKvg6dUKrp/TPgoxOOtSrFA==}
+ engines: {node: '>=10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@swc/core-win32-x64-msvc@1.7.11':
+ resolution: {integrity: sha512-IUohZedSJyDu/ReEBG/mqX6uG29uA7zZ9z6dIAF+p6eFxjXmh9MuHryyM+H8ebUyoq/Ad3rL+rUCksnuYNnI0w==}
+ engines: {node: '>=10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@swc/core@1.7.11':
+ resolution: {integrity: sha512-AB+qc45UrJrDfbhPKcUXk+9z/NmFfYYwJT6G7/iur0fCse9kXjx45gi40+u/O2zgarG/30/zV6E3ps8fUvjh7g==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@swc/helpers': '*'
+ peerDependenciesMeta:
+ '@swc/helpers':
+ optional: true
+
+ '@swc/counter@0.1.3':
+ resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
+
+ '@swc/types@0.1.12':
+ resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==}
+
'@types/body-parser@1.19.5':
resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
+ '@types/bun@1.1.6':
+ resolution: {integrity: sha512-uJgKjTdX0GkWEHZzQzFsJkWp5+43ZS7HC8sZPFnOwnSo1AsNl2q9o2bFeS23disNDqbggEgyFkKCHl/w8iZsMA==}
+
'@types/connect@3.4.38':
resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
@@ -721,14 +1133,14 @@ packages:
'@types/mime@1.3.5':
resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
- '@types/node@18.19.39':
- resolution: {integrity: sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==}
+ '@types/node@18.19.44':
+ resolution: {integrity: sha512-ZsbGerYg72WMXUIE9fYxtvfzLEuq6q8mKERdWFnqTmOvudMxnz+CBNRoOwJ2kNpFOncrKjT1hZwxjlFgQ9qvQA==}
'@types/node@20.12.14':
resolution: {integrity: sha512-scnD59RpYD91xngrQQLGkE+6UrHUPzeKZWhhjBSa3HSkwjbQc38+q3RoIVEwxQGRw3M+j5hpNAM+lgV3cVormg==}
- '@types/node@20.14.10':
- resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==}
+ '@types/node@20.16.0':
+ resolution: {integrity: sha512-vDxceJcoZhIVh67S568bm1UGZO0DX0hpplJZxzeXMKwIPLn190ec5RRxQ69BKhX44SUGIxxgMdDY557lGLKprQ==}
'@types/normalize-package-data@2.4.4':
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
@@ -739,17 +1151,20 @@ packages:
'@types/range-parser@1.2.7':
resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
+ '@types/resolve@1.20.2':
+ resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
+
'@types/send@0.17.4':
resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
'@types/serve-static@1.15.7':
resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==}
- '@types/ws@8.5.11':
- resolution: {integrity: sha512-4+q7P5h3SpJxaBft0Dzpbr6lmMaqh0Jr2tbhJZ/luAwvD7ohSCniYkwz/pLxuT2h0EOa6QADgJj1Ko+TzRfZ+w==}
+ '@types/ws@8.5.12':
+ resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==}
- '@typescript-eslint/eslint-plugin@7.15.0':
- resolution: {integrity: sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==}
+ '@typescript-eslint/eslint-plugin@7.18.0':
+ resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
'@typescript-eslint/parser': ^7.0.0
@@ -759,8 +1174,8 @@ packages:
typescript:
optional: true
- '@typescript-eslint/parser@7.15.0':
- resolution: {integrity: sha512-k9fYuQNnypLFcqORNClRykkGOMOj+pV6V91R4GO/l1FDGwpqmSwoOQrOHo3cGaH63e+D3ZiCAOsuS/D2c99j/A==}
+ '@typescript-eslint/parser@7.18.0':
+ resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
@@ -769,12 +1184,12 @@ packages:
typescript:
optional: true
- '@typescript-eslint/scope-manager@7.15.0':
- resolution: {integrity: sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==}
+ '@typescript-eslint/scope-manager@7.18.0':
+ resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==}
engines: {node: ^18.18.0 || >=20.0.0}
- '@typescript-eslint/type-utils@7.15.0':
- resolution: {integrity: sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==}
+ '@typescript-eslint/type-utils@7.18.0':
+ resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
@@ -783,12 +1198,12 @@ packages:
typescript:
optional: true
- '@typescript-eslint/types@7.15.0':
- resolution: {integrity: sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==}
+ '@typescript-eslint/types@7.18.0':
+ resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==}
engines: {node: ^18.18.0 || >=20.0.0}
- '@typescript-eslint/typescript-estree@7.15.0':
- resolution: {integrity: sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==}
+ '@typescript-eslint/typescript-estree@7.18.0':
+ resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
typescript: '*'
@@ -796,64 +1211,73 @@ packages:
typescript:
optional: true
- '@typescript-eslint/utils@7.15.0':
- resolution: {integrity: sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==}
+ '@typescript-eslint/utils@7.18.0':
+ resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
- '@typescript-eslint/visitor-keys@7.15.0':
- resolution: {integrity: sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==}
+ '@typescript-eslint/visitor-keys@7.18.0':
+ resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==}
engines: {node: ^18.18.0 || >=20.0.0}
'@ungap/structured-clone@1.2.0':
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
- '@vavite/connect@4.1.1':
- resolution: {integrity: sha512-UjJEPX9t1fPNJiDbTzzW/ZIorTipCWO9x9aQ0CkNqtH6+dKnaWI/a03gFiNU+7ybhYI1LxdY17ar10ns7DQ08Q==}
+ '@vavite/connect@4.1.2':
+ resolution: {integrity: sha512-BeyDUMHM+OGlqrZkJaPj7JLmDzd00nmqg6baU/jgOmKKfvmtWl/Ybvss8k2G8d93jhcPjg6Bp3sbEXILLIRoSA==}
peerDependencies:
vite: ^2.8.1 || 3 || 4 || 5
- '@vavite/multibuild@4.1.1':
- resolution: {integrity: sha512-R+UJWT2wH598OsGNA/NHgUgtOGvyh9kqaDsP/twJa/OJSH+RWgzj+ONQPqbkAYqPYu0NgRb8rkQOK4QJwdLx0A==}
+ '@vavite/multibuild@4.1.2':
+ resolution: {integrity: sha512-cGUoadUXNChe1NmU0BnQNdLlQNY/q9QcORoEX7LyVf5/EI+jgSbr11ljjWnAhSage6n5tv6Yki47ToNm/6c+qQ==}
peerDependencies:
vite: ^2.8.1 || 3 || 4 || 5
- '@vavite/node-loader@4.1.1':
- resolution: {integrity: sha512-3vJ3lnO2yJYE+i7DlZuSc7jUT4z+Fe4yVaxlODHWn1lpkVsXjIz2TfTp6zEJGXZJlhY1SnIzZczfQzA3Gs/NZw==}
+ '@vavite/node-loader@4.1.2':
+ resolution: {integrity: sha512-EnrbhHorFI5gL8B6DAoeM2LfI3NZMVUz1U9NPjm+tkgyx3EE6xFVclC2LGp3QdrvA4A+79Q/2+gDiJ16qLo1Ng==}
hasBin: true
peerDependencies:
vite: ^2.8.1 || 3 || 4 || 5
- '@vitest/expect@2.0.2':
- resolution: {integrity: sha512-nKAvxBYqcDugYZ4nJvnm5OR8eDJdgWjk4XM9owQKUjzW70q0icGV2HVnQOyYsp906xJaBDUXw0+9EHw2T8e0mQ==}
+ '@vitest/expect@2.0.5':
+ resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==}
- '@vitest/pretty-format@2.0.2':
- resolution: {integrity: sha512-SBCyOXfGVvddRd9r2PwoVR0fonQjh9BMIcBMlSzbcNwFfGr6ZhOhvBzurjvi2F4ryut2HcqiFhNeDVGwru8tLg==}
+ '@vitest/pretty-format@2.0.5':
+ resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==}
- '@vitest/runner@2.0.2':
- resolution: {integrity: sha512-OCh437Vi8Wdbif1e0OvQcbfM3sW4s2lpmOjAE7qfLrpzJX2M7J1IQlNvEcb/fu6kaIB9n9n35wS0G2Q3en5kHg==}
+ '@vitest/runner@2.0.5':
+ resolution: {integrity: sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig==}
- '@vitest/snapshot@2.0.2':
- resolution: {integrity: sha512-Yc2ewhhZhx+0f9cSUdfzPRcsM6PhIb+S43wxE7OG0kTxqgqzo8tHkXFuFlndXeDMp09G3sY/X5OAo/RfYydf1g==}
+ '@vitest/snapshot@2.0.5':
+ resolution: {integrity: sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==}
- '@vitest/spy@2.0.2':
- resolution: {integrity: sha512-MgwJ4AZtCgqyp2d7WcQVE8aNG5vQ9zu9qMPYQHjsld/QVsrvg78beNrXdO4HYkP0lDahCO3P4F27aagIag+SGQ==}
+ '@vitest/spy@2.0.5':
+ resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==}
- '@vitest/utils@2.0.2':
- resolution: {integrity: sha512-pxCY1v7kmOCWYWjzc0zfjGTA3Wmn8PKnlPvSrsA643P1NHl1fOyXj2Q9SaNlrlFE+ivCsxM80Ov3AR82RmHCWQ==}
+ '@vitest/utils@2.0.5':
+ resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==}
- '@whatwg-node/events@0.1.1':
- resolution: {integrity: sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==}
- engines: {node: '>=16.0.0'}
+ '@webroute/common@1.0.0':
+ resolution: {integrity: sha512-JQ1+RDjQuwtbXJg46EaZvh6NqgHEKObfQHq3YwUYGiZ9TsfnP+zbaNUYi0mpQfZZjZl18O54vC13s2Hc6dDNuw==}
- '@whatwg-node/fetch@0.9.18':
- resolution: {integrity: sha512-hqoz6StCW+AjV/3N+vg0s1ah82ptdVUb9nH2ttj3UbySOXUvytWw2yqy8c1cKzyRk6mDD00G47qS3fZI9/gMjg==}
- engines: {node: '>=16.0.0'}
+ '@webroute/middleware@0.9.0':
+ resolution: {integrity: sha512-KECzsFrxadVRpZYfA4W4xElANOAucOigrAN8g/7BEHTFL8tIcT2xZ0SzxpSY07foGbBbipq7GLC0hrfauNuoKQ==}
- '@whatwg-node/node-fetch@0.5.11':
- resolution: {integrity: sha512-LS8tSomZa3YHnntpWt3PP43iFEEl6YeIsvDakczHBKlay5LdkXFr8w7v8H6akpG5nRrzydyB0k1iE2eoL6aKIQ==}
- engines: {node: '>=16.0.0'}
+ '@webroute/route@0.6.0':
+ resolution: {integrity: sha512-w4XMPRdLjuqpRiGrPfzpIuhtlXLX2NuClWMq3pRAqdRxlj2ZVJeulzSqDR5eSe7vyxl1DLUTfIQnt/1g7prfKg==}
+ engines: {node: ^20.0.0}
+
+ '@webroute/schema@0.4.0':
+ resolution: {integrity: sha512-ZRv2jAuACvaR/j7syVB0HEwnQocqfLJZwqamUJjb0ymLpnkD70kZFgUzxEsz8TX31clr+owdTGSBcJoz5d8AhQ==}
+
+ '@whatwg-node/fetch@0.9.20':
+ resolution: {integrity: sha512-bayE8tJBVw3QRg5vDqGIOfBmdxCV6HHUqCxMhZ1pOHukUk1TrfNH3tViivJErhmtSN0bbvjWaBQpJllAOpgSxA==}
+ engines: {node: '>=18.0.0'}
+
+ '@whatwg-node/node-fetch@0.5.22':
+ resolution: {integrity: sha512-ccjjD+JCaylDGGcbJ69jFK2FaoGobpyOiDr2FnzSpcEss20MJzfJAiUIrpglWADplyB2AwfunMM7ph3IpPArhw==}
+ engines: {node: '>=18.0.0'}
JSONStream@1.3.5:
resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
@@ -926,6 +1350,9 @@ packages:
as-table@1.0.55:
resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
+ assertion-error@1.1.0:
+ resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
+
assertion-error@2.0.1:
resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
engines: {node: '>=12'}
@@ -951,14 +1378,24 @@ packages:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
- bun-types@1.1.20:
- resolution: {integrity: sha512-2u84HciDR3E7Uc0t0AEeXHmQAWe9uzRKTz120D3silIJOQlbGIMJMJiGaM8Yx7nEvMyfV0LfSdkEGnb77AN5AA==}
+ buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
+ builtin-modules@3.3.0:
+ resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
+ engines: {node: '>=6'}
+
+ bun-types@1.1.17:
+ resolution: {integrity: sha512-Z4+OplcSd/YZq7ZsrfD00DKJeCwuNY96a1IDJyR73+cTBaFIS7SC6LhpY/W3AMEXO9iYq5NJ58WAwnwL1p5vKg==}
- bundle-require@4.2.1:
- resolution: {integrity: sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==}
+ bun-types@1.1.24:
+ resolution: {integrity: sha512-UNEcYawHWOVw9GYQdOgjJvTQduYlPckmRMqpBqfkWpUzeK2CZfEP/JOYBH6SMypyfkNg/Zsqf0olN6vMrSPg3w==}
+
+ bundle-require@5.0.0:
+ resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
peerDependencies:
- esbuild: '>=0.17'
+ esbuild: ^0.23.1
busboy@1.6.0:
resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
@@ -983,6 +1420,10 @@ packages:
capnp-ts@0.7.0:
resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==}
+ chai@4.5.0:
+ resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==}
+ engines: {node: '>=4'}
+
chai@5.1.1:
resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==}
engines: {node: '>=12'}
@@ -995,6 +1436,9 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
+ check-error@1.0.3:
+ resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
+
check-error@2.1.1:
resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
engines: {node: '>= 16'}
@@ -1108,8 +1552,8 @@ packages:
engines: {node: '>=16'}
hasBin: true
- cookie-es@1.1.0:
- resolution: {integrity: sha512-L2rLOcK0wzWSfSDA33YR+PUHDG10a8px7rUHKWbGLP4YfbsMed2KFUw5fczvDPbT98DDe3LEzviswl810apTEw==}
+ cookie-es@1.2.2:
+ resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==}
cookie-signature@1.0.6:
resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
@@ -1152,8 +1596,8 @@ packages:
supports-color:
optional: true
- debug@4.3.5:
- resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==}
+ debug@4.3.6:
+ resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
@@ -1161,6 +1605,10 @@ packages:
supports-color:
optional: true
+ deep-eql@4.1.4:
+ resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==}
+ engines: {node: '>=6'}
+
deep-eql@5.0.2:
resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
engines: {node: '>=6'}
@@ -1168,6 +1616,10 @@ packages:
deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+ deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+
define-data-property@1.1.4:
resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
engines: {node: '>= 0.4'}
@@ -1225,9 +1677,9 @@ packages:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: '>= 0.4'}
- esbuild@0.21.5:
- resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
- engines: {node: '>=12'}
+ esbuild@0.23.1:
+ resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==}
+ engines: {node: '>=18'}
hasBin: true
escape-html@1.0.3:
@@ -1264,8 +1716,8 @@ packages:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- esquery@1.5.0:
- resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
+ esquery@1.6.0:
+ resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
engines: {node: '>=0.10'}
esrecurse@4.3.0:
@@ -1276,6 +1728,9 @@ packages:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: '>=4.0'}
+ estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
estree-walker@3.0.3:
resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
@@ -1299,8 +1754,8 @@ packages:
resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==}
engines: {node: '>=6'}
- express-rate-limit@7.3.1:
- resolution: {integrity: sha512-BbaryvkY4wEgDqLgD18/NSy2lDO2jTuT9Y8c1Mpx0X63Yz0sYd5zN6KPe7UvpuSVvV33T6RaE1o1IVZQjHMYgw==}
+ express-rate-limit@7.4.0:
+ resolution: {integrity: sha512-v1204w3cXu5gCDmAvgvzI6qjzZzoMWKnyVDk3ACgfswTQLYiGen+r8w0VnXnGMmzEN/g8fwIQ4JrFFd4ZP6ssg==}
engines: {node: '>= 16'}
peerDependencies:
express: 4 || 5 || ^5.0.0-beta.1
@@ -1347,6 +1802,10 @@ packages:
resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==}
engines: {node: '>= 0.8'}
+ find-up-simple@1.0.0:
+ resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==}
+ engines: {node: '>=18'}
+
find-up@5.0.0:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
@@ -1362,8 +1821,8 @@ packages:
flatted@3.3.1:
resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
- foreground-child@3.2.1:
- resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==}
+ foreground-child@3.3.0:
+ resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
engines: {node: '>=14'}
forwarded@0.2.0:
@@ -1377,6 +1836,11 @@ packages:
fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+ fsevents@2.3.2:
+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@@ -1403,8 +1867,8 @@ packages:
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
engines: {node: '>=16'}
- get-tsconfig@4.7.5:
- resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==}
+ get-tsconfig@4.7.6:
+ resolution: {integrity: sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==}
git-raw-commits@4.0.0:
resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==}
@@ -1427,9 +1891,8 @@ packages:
glob-to-regexp@0.4.1:
resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
- glob@10.4.3:
- resolution: {integrity: sha512-Q38SGlYRpVtDBPSWEylRyctn7uDeTp4NQERTLiCT1FqA9JXPYWqAVmQU6qh4r/zMM5ehxTcbaO8EjhWnvEhmyg==}
- engines: {node: '>=18'}
+ glob@10.4.5:
+ resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
hasBin: true
glob@11.0.0:
@@ -1493,12 +1956,8 @@ packages:
resolution: {integrity: sha512-g+HZqgfbpXdCkme/Cd/mZkV0aV3BZZZSugecH03kl38m/Kmdx8jKjBikpDj2cr+Iynv4KpYEviojNdTJActJAg==}
engines: {node: '>=16.0.0'}
- hono@4.4.12:
- resolution: {integrity: sha512-Lx4Vwbws0IqFfXIVYychxUW0A4EE+7dn/jsjVeM34OXSA2Xs45MkDDP14Mzznp7LlDemUNHQG2uv2N5jQld0hA==}
- engines: {node: '>=16.0.0'}
-
- hono@4.4.13:
- resolution: {integrity: sha512-c6qqenclmQ6wpXzqiElMa2jt423PVCmgBreDfC5s2lPPpGk7d0lOymd8QTzFZyYC5mSSs6imiTMPip+gLwuW/g==}
+ hono@4.5.6:
+ resolution: {integrity: sha512-9SuUC/zLQv8YAcnIxJko0KCeLI0Q6menPsDWuJ9jaH+r8ZkVXeLqeLs1QJXCPKKbURAWj9x0SJBSFh803EnAUw==}
engines: {node: '>=16.0.0'}
hosted-git-info@7.0.2:
@@ -1521,8 +1980,8 @@ packages:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
engines: {node: '>=0.10.0'}
- ignore@5.3.1:
- resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
+ ignore@5.3.2:
+ resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
import-fresh@3.3.0:
@@ -1557,6 +2016,14 @@ packages:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
+ is-builtin-module@3.2.1:
+ resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
+ engines: {node: '>=6'}
+
+ is-core-module@2.15.0:
+ resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==}
+ engines: {node: '>= 0.4'}
+
is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -1569,6 +2036,9 @@ packages:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
+ is-module@1.0.0:
+ resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
+
is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
@@ -1596,14 +2066,16 @@ packages:
isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
- jackspeak@3.4.1:
- resolution: {integrity: sha512-U23pQPDnmYybVkYjObcuYMk43VRlMLLqLI+RdZy8s8WV8WsxO9SnqSroKaluuvcNOdCAlauKszDwd+umbot5Mg==}
- engines: {node: '>=18'}
+ jackspeak@3.4.3:
+ resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
jackspeak@4.0.1:
resolution: {integrity: sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==}
engines: {node: 20 || >=22}
+ joi@17.13.3:
+ resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==}
+
joycon@3.1.1:
resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==}
engines: {node: '>=10'}
@@ -1671,24 +2143,30 @@ packages:
lodash.sortby@4.7.0:
resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
+ loupe@2.3.7:
+ resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==}
+
loupe@3.1.1:
resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==}
- lru-cache@10.4.0:
- resolution: {integrity: sha512-bfJaPTuEiTYBu+ulDaeQ0F+uLmlfFkMgXj4cbwfuMSjgObGMzb55FMMbDvbRU0fAHZ4sLGkz2mKwcMg8Dvm8Ww==}
- engines: {node: '>=18'}
+ lru-cache@10.4.3:
+ resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
lru-cache@11.0.0:
resolution: {integrity: sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==}
engines: {node: 20 || >=22}
- magic-string@0.30.10:
- resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==}
+ magic-string@0.30.11:
+ resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==}
media-typer@0.3.0:
resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
engines: {node: '>= 0.6'}
+ memorystream@0.3.1:
+ resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==}
+ engines: {node: '>= 0.10.0'}
+
meow@12.1.1:
resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==}
engines: {node: '>=16.10'}
@@ -1740,8 +2218,8 @@ packages:
resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
engines: {node: '>=12'}
- miniflare@3.20240701.0:
- resolution: {integrity: sha512-m9+I+7JNyqDGftCMKp9cK9pCZkK72hAL2mM9IWwhct+ZmucLBA8Uu6+rHQqA5iod86cpwOkrB2PrPA3wx9YNgw==}
+ miniflare@3.20240806.1:
+ resolution: {integrity: sha512-wJq3YQYx9k83L2CNYtxvwWvXSi+uHrC6aFoXYSbzhxIDlUWvMEqippj+3HeKLgsggC31nHJab3b1Pifg9IxIFQ==}
engines: {node: '>=16.13'}
hasBin: true
@@ -1801,6 +2279,15 @@ packages:
node-fetch-native@1.6.4:
resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==}
+ node-fetch@2.7.0:
+ resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+
normalize-package-data@6.0.2:
resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==}
engines: {node: ^16.14.0 || >=18.0.0}
@@ -1809,6 +2296,15 @@ packages:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
+ npm-normalize-package-bin@3.0.1:
+ resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
+ npm-run-all2@6.2.2:
+ resolution: {integrity: sha512-Q+alQAGIW7ZhKcxLt8GcSi3h3ryheD6xnmXahkMRVM5LYmajcUrSITm8h+OPC9RYWMV2GR0Q1ntTUCfxaNoOJw==}
+ engines: {node: ^14.18.0 || ^16.13.0 || >=18.0.0, npm: '>= 8'}
+ hasBin: true
+
npm-run-path@4.0.1:
resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
engines: {node: '>=8'}
@@ -1855,6 +2351,9 @@ packages:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
engines: {node: '>= 0.8.0'}
+ oxc-transform@0.24.3:
+ resolution: {integrity: sha512-aOwwJibIHngKt8ccLRaIBHuVKDZB4VB1NgnObmNw6dwuGSmWpAff12tqZbbSwY0X2bGfwm7goY0Tur3yWxpUdA==}
+
p-limit@3.1.0:
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
engines: {node: '>=10'}
@@ -1874,6 +2373,10 @@ packages:
package-json-from-dist@1.0.0:
resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==}
+ package-up@5.0.0:
+ resolution: {integrity: sha512-MQEgDUvXCa3sGvqHg3pzHO8e9gqTCMPVrWUko3vPQGntwegmFo52mZb2abIVTjFnUcW0BcPz0D93jV5Cas1DWA==}
+ engines: {node: '>=18'}
+
parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
@@ -1906,6 +2409,9 @@ packages:
resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
engines: {node: '>=12'}
+ path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
path-scurry@1.11.1:
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
engines: {node: '>=16 || 14 >=14.18'}
@@ -1924,6 +2430,9 @@ packages:
pathe@1.1.2:
resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
+ pathval@1.1.1:
+ resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
+
pathval@2.0.0:
resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
engines: {node: '>= 14.16'}
@@ -1935,38 +2444,75 @@ packages:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
+ pidtree@0.6.0:
+ resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+
pirates@4.0.6:
resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
engines: {node: '>= 6'}
- postcss-load-config@4.0.2:
- resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
- engines: {node: '>= 14'}
+ pixelmatch@5.3.0:
+ resolution: {integrity: sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q==}
+ hasBin: true
+
+ playwright-chromium@1.46.1:
+ resolution: {integrity: sha512-WuNzXHHWaIqnq66Zkg1gu6LGkJ13HsSBkHBXiHKDfPfzAv8stIyNBHJiDqFLFaM5wSl+LSbPbLMlhCicaBg4oA==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ playwright-core@1.46.1:
+ resolution: {integrity: sha512-h9LqIQaAv+CYvWzsZ+h3RsrqCStkBHlgo6/TJlFst3cOTlLghBQlJwPOZKQJTKNaD3QIB7aAVQ+gfWbN3NXB7A==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ playwright@1.46.1:
+ resolution: {integrity: sha512-oPcr1yqoXLCkgKtD5eNUPLiN40rYEM39odNpIb6VE6S7/15gJmA1NzVv6zJYusV0e7tzvkU/utBFNa/Kpxmwng==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ pngjs@6.0.0:
+ resolution: {integrity: sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==}
+ engines: {node: '>=12.13.0'}
+
+ postcss-load-config@6.0.1:
+ resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==}
+ engines: {node: '>= 18'}
peerDependencies:
+ jiti: '>=1.21.0'
postcss: '>=8.0.9'
- ts-node: '>=9.0.0'
+ tsx: ^4.8.1
+ yaml: ^2.4.2
peerDependenciesMeta:
+ jiti:
+ optional: true
postcss:
optional: true
- ts-node:
+ tsx:
+ optional: true
+ yaml:
optional: true
- postcss@8.4.39:
- resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==}
+ postcss@8.4.41:
+ resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==}
engines: {node: ^10 || ^12 || >=14}
prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
- prettier@3.3.2:
- resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==}
+ prettier@3.3.3:
+ resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==}
engines: {node: '>=14'}
hasBin: true
printable-characters@1.0.42:
resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
+ property-expr@2.0.6:
+ resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==}
+
proxy-addr@2.0.7:
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
engines: {node: '>= 0.10'}
@@ -2000,6 +2546,10 @@ packages:
resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
engines: {node: '>= 0.8'}
+ read-package-json-fast@3.0.2:
+ resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+
read-pkg-up@10.1.0:
resolution: {integrity: sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==}
engines: {node: '>=16'}
@@ -2027,6 +2577,10 @@ packages:
resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==}
engines: {node: '>=10'}
+ resolve@1.22.8:
+ resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
+ hasBin: true
+
reusify@1.0.4:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
@@ -2039,27 +2593,30 @@ packages:
deprecated: Rimraf versions prior to v4 are no longer supported
hasBin: true
- rimraf@6.0.0:
- resolution: {integrity: sha512-u+yqhM92LW+89cxUQK0SRyvXYQmyuKHx0jkx4W7KfwLGLqJnQM5031Uv1trE4gB9XEXBM/s6MxKlfW95IidqaA==}
+ rimraf@6.0.1:
+ resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==}
engines: {node: 20 || >=22}
hasBin: true
- rollup@4.18.0:
- resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==}
+ rollup@4.21.0:
+ resolution: {integrity: sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ runtypes@6.7.0:
+ resolution: {integrity: sha512-3TLdfFX8YHNFOhwHrSJza6uxVBmBrEjnNQlNXvXCdItS0Pdskfg5vVXUTWIN+Y23QR09jWpSl99UHkA83m4uWA==}
+
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
- semver@7.6.2:
- resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==}
+ semver@7.6.3:
+ resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
engines: {node: '>=10'}
hasBin: true
@@ -2086,6 +2643,9 @@ packages:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
+ shell-quote@1.8.1:
+ resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
+
side-channel@1.0.6:
resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
engines: {node: '>= 0.4'}
@@ -2108,6 +2668,9 @@ packages:
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
engines: {node: '>=0.10.0'}
+ source-map-support@0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+
source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
@@ -2186,6 +2749,10 @@ packages:
engines: {node: '>=16 || 14 >=14.17'}
hasBin: true
+ superstruct@1.0.4:
+ resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==}
+ engines: {node: '>=14.0.0'}
+
supports-color@5.5.0:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
engines: {node: '>=4'}
@@ -2194,6 +2761,10 @@ packages:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'}
+ supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
text-extensions@2.4.0:
resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==}
engines: {node: '>=8'}
@@ -2211,8 +2782,11 @@ packages:
through@2.3.8:
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
- tinybench@2.8.0:
- resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==}
+ tiny-case@1.0.3:
+ resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==}
+
+ tinybench@2.9.0:
+ resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
tinypool@1.0.0:
resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==}
@@ -2234,6 +2808,12 @@ packages:
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
engines: {node: '>=0.6'}
+ toposort@2.0.2:
+ resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==}
+
+ tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+
tr46@1.0.1:
resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==}
@@ -2253,8 +2833,8 @@ packages:
tslib@2.6.3:
resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==}
- tsup@8.1.0:
- resolution: {integrity: sha512-UFdfCAXukax+U6KzeTNO2kAARHcWxmKsnvSPXUcfA1D+kU05XDccCrkffCQpFaWDsZfV0jMyTsxU39VfCp6EOg==}
+ tsup@8.2.4:
+ resolution: {integrity: sha512-akpCPePnBnC/CXgRrcy72ZSntgIEUa1jN0oJbbvpALWKNOz1B7aM+UVDWGRGIO/T/PZugAESWDJUAb5FD48o8Q==}
engines: {node: '>=18'}
hasBin: true
peerDependencies:
@@ -2272,8 +2852,8 @@ packages:
typescript:
optional: true
- tsx@4.16.2:
- resolution: {integrity: sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==}
+ tsx@4.17.0:
+ resolution: {integrity: sha512-eN4mnDA5UMKDt4YZixo9tBioibaMBpoxBkD+rIPAjVmYERSG0/dWEY1CEFuV89CgASlKL499q8AhmkMnnjtOJg==}
engines: {node: '>=18.0.0'}
hasBin: true
@@ -2281,32 +2861,40 @@ packages:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines: {node: '>= 0.8.0'}
+ type-detect@4.1.0:
+ resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==}
+ engines: {node: '>=4'}
+
type-fest@0.20.2:
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
engines: {node: '>=10'}
+ type-fest@2.19.0:
+ resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
+ engines: {node: '>=12.20'}
+
type-fest@3.13.1:
resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==}
engines: {node: '>=14.16'}
- type-fest@4.21.0:
- resolution: {integrity: sha512-ADn2w7hVPcK6w1I0uWnM//y1rLXZhzB9mr0a3OirzclKF1Wp6VzevUmzz/NRAWunOT6E8HrnpGY7xOfc6K57fA==}
+ type-fest@4.25.0:
+ resolution: {integrity: sha512-bRkIGlXsnGBRBQRAY56UXBm//9qH4bmJfFvq83gSz41N282df+fjy8ofcEgc1sM8geNt5cl6mC2g9Fht1cs8Aw==}
engines: {node: '>=16'}
type-is@1.6.18:
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
engines: {node: '>= 0.6'}
- typescript@5.5.3:
- resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==}
+ typescript@5.5.4:
+ resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==}
engines: {node: '>=14.17'}
hasBin: true
- ufo@1.5.3:
- resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==}
+ ufo@1.5.4:
+ resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==}
- uglify-js@3.18.0:
- resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==}
+ uglify-js@3.19.2:
+ resolution: {integrity: sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==}
engines: {node: '>=0.8.0'}
hasBin: true
@@ -2320,17 +2908,24 @@ packages:
undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+ undici-types@6.19.6:
+ resolution: {integrity: sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org==}
+
undici@5.28.4:
resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==}
engines: {node: '>=14.0'}
- unenv@1.9.0:
- resolution: {integrity: sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g==}
+ unenv@1.10.0:
+ resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==}
unpipe@1.0.0:
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
engines: {node: '>= 0.8'}
+ unplugin@1.12.2:
+ resolution: {integrity: sha512-bEqQxeC7rxtxPZ3M5V4Djcc4lQqKPgGe3mAWZvxcSmX5jhGxll19NliaRzQSQPrk4xJZSGniK3puLWpRuZN7VQ==}
+ engines: {node: '>=14.0.0'}
+
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
@@ -2341,6 +2936,9 @@ packages:
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
engines: {node: '>= 0.4.0'}
+ valibot@0.31.0-rc.0:
+ resolution: {integrity: sha512-c8HERUa1wthubHtWn0EXJIw4itUEMq2WMZEVaV8zv0a0654aGDX+Ln1Ba5smAjFdntIn/0tDCqdeYYRibfhwtQ==}
+
validate-npm-package-license@3.0.4:
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
@@ -2348,13 +2946,13 @@ packages:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
- vite-node@2.0.2:
- resolution: {integrity: sha512-w4vkSz1Wo+NIQg8pjlEn0jQbcM/0D+xVaYjhw3cvarTanLLBh54oNiRbsT8PNK5GfuST0IlVXjsNRoNlqvY/fw==}
+ vite-node@2.0.5:
+ resolution: {integrity: sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
- vite@5.3.3:
- resolution: {integrity: sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==}
+ vite@5.4.1:
+ resolution: {integrity: sha512-1oE6yuNXssjrZdblI9AfBbHCC41nnyoVoEZxQnID6yvQZAFBzxxkqoFLtHUMkYunL8hwOLEjgTuxpkRxvba3kA==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@@ -2362,6 +2960,7 @@ packages:
less: '*'
lightningcss: ^1.21.0
sass: '*'
+ sass-embedded: '*'
stylus: '*'
sugarss: '*'
terser: ^5.4.0
@@ -2374,6 +2973,8 @@ packages:
optional: true
sass:
optional: true
+ sass-embedded:
+ optional: true
stylus:
optional: true
sugarss:
@@ -2381,15 +2982,15 @@ packages:
terser:
optional: true
- vitest@2.0.2:
- resolution: {integrity: sha512-WlpZ9neRIjNBIOQwBYfBSr0+of5ZCbxT2TVGKW4Lv0c8+srCFIiRdsP7U009t8mMn821HQ4XKgkx5dVWpyoyLw==}
+ vitest@2.0.5:
+ resolution: {integrity: sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@types/node': ^18.0.0 || >=20.0.0
- '@vitest/browser': 2.0.2
- '@vitest/ui': 2.0.2
+ '@vitest/browser': 2.0.5
+ '@vitest/ui': 2.0.5
happy-dom: '*'
jsdom: '*'
peerDependenciesMeta:
@@ -2411,9 +3012,22 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+
webidl-conversions@4.0.2:
resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
+ webpack-sources@3.2.3:
+ resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
+ engines: {node: '>=10.13.0'}
+
+ webpack-virtual-modules@0.6.2:
+ resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
+
+ whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+
whatwg-url@7.1.0:
resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==}
@@ -2434,8 +3048,8 @@ packages:
wordwrap@1.0.0:
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
- workerd@1.20240701.0:
- resolution: {integrity: sha512-qSgNVqauqzNCij9MaJLF2c2ko3AnFioVSIxMSryGbRK+LvtGr9BKBt6JOxCb24DoJASoJDx3pe3DJHBVydUiBg==}
+ workerd@1.20240806.0:
+ resolution: {integrity: sha512-yyNtyzTMgVY0sgYijHBONqZFVXsOFGj2jDjS8MF/RbO2ZdGROvs4Hkc/9QnmqFWahE0STxXeJ1yW1yVotdF0UQ==}
engines: {node: '>=16'}
hasBin: true
@@ -2462,11 +3076,6 @@ packages:
utf-8-validate:
optional: true
- yaml@2.4.5:
- resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==}
- engines: {node: '>= 14'}
- hasBin: true
-
yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
@@ -2478,6 +3087,9 @@ packages:
youch@3.3.3:
resolution: {integrity: sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==}
+ yup@1.4.0:
+ resolution: {integrity: sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==}
+
zod@3.23.8:
resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
@@ -2507,102 +3119,123 @@ snapshots:
js-tokens: 4.0.0
picocolors: 1.0.1
- '@brillout/picocolors@1.0.13': {}
+ '@brillout/part-regex@0.1.4': {}
+
+ '@brillout/picocolors@1.0.14': {}
- '@brillout/release-me@0.3.9':
+ '@brillout/release-me@0.4.0':
dependencies:
- '@brillout/picocolors': 1.0.13
+ '@brillout/picocolors': 1.0.14
commander: 11.1.0
conventional-changelog: 5.1.0
execa: 5.1.1
- semver: 7.6.2
+ semver: 7.6.3
+
+ '@brillout/test-e2e@0.5.34':
+ dependencies:
+ '@brillout/part-regex': 0.1.4
+ '@brillout/picocolors': 1.0.14
+ chai: 4.5.0
+ esbuild: 0.23.1
+ fast-glob: 3.3.2
+ node-fetch: 2.7.0
+ pixelmatch: 5.3.0
+ playwright-chromium: 1.46.1
+ pngjs: 6.0.0
+ source-map-support: 0.5.21
+ strip-ansi: 6.0.1
+ transitivePeerDependencies:
+ - encoding
- '@cloudflare/workerd-darwin-64@1.20240701.0':
+ '@cloudflare/workerd-darwin-64@1.20240806.0':
optional: true
- '@cloudflare/workerd-darwin-arm64@1.20240701.0':
+ '@cloudflare/workerd-darwin-arm64@1.20240806.0':
optional: true
- '@cloudflare/workerd-linux-64@1.20240701.0':
+ '@cloudflare/workerd-linux-64@1.20240806.0':
optional: true
- '@cloudflare/workerd-linux-arm64@1.20240701.0':
+ '@cloudflare/workerd-linux-arm64@1.20240806.0':
optional: true
- '@cloudflare/workerd-windows-64@1.20240701.0':
+ '@cloudflare/workerd-windows-64@1.20240806.0':
optional: true
'@cspotcode/source-map-support@0.8.1':
dependencies:
'@jridgewell/trace-mapping': 0.3.9
- '@esbuild/aix-ppc64@0.21.5':
+ '@esbuild/aix-ppc64@0.23.1':
+ optional: true
+
+ '@esbuild/android-arm64@0.23.1':
optional: true
- '@esbuild/android-arm64@0.21.5':
+ '@esbuild/android-arm@0.23.1':
optional: true
- '@esbuild/android-arm@0.21.5':
+ '@esbuild/android-x64@0.23.1':
optional: true
- '@esbuild/android-x64@0.21.5':
+ '@esbuild/darwin-arm64@0.23.1':
optional: true
- '@esbuild/darwin-arm64@0.21.5':
+ '@esbuild/darwin-x64@0.23.1':
optional: true
- '@esbuild/darwin-x64@0.21.5':
+ '@esbuild/freebsd-arm64@0.23.1':
optional: true
- '@esbuild/freebsd-arm64@0.21.5':
+ '@esbuild/freebsd-x64@0.23.1':
optional: true
- '@esbuild/freebsd-x64@0.21.5':
+ '@esbuild/linux-arm64@0.23.1':
optional: true
- '@esbuild/linux-arm64@0.21.5':
+ '@esbuild/linux-arm@0.23.1':
optional: true
- '@esbuild/linux-arm@0.21.5':
+ '@esbuild/linux-ia32@0.23.1':
optional: true
- '@esbuild/linux-ia32@0.21.5':
+ '@esbuild/linux-loong64@0.23.1':
optional: true
- '@esbuild/linux-loong64@0.21.5':
+ '@esbuild/linux-mips64el@0.23.1':
optional: true
- '@esbuild/linux-mips64el@0.21.5':
+ '@esbuild/linux-ppc64@0.23.1':
optional: true
- '@esbuild/linux-ppc64@0.21.5':
+ '@esbuild/linux-riscv64@0.23.1':
optional: true
- '@esbuild/linux-riscv64@0.21.5':
+ '@esbuild/linux-s390x@0.23.1':
optional: true
- '@esbuild/linux-s390x@0.21.5':
+ '@esbuild/linux-x64@0.23.1':
optional: true
- '@esbuild/linux-x64@0.21.5':
+ '@esbuild/netbsd-x64@0.23.1':
optional: true
- '@esbuild/netbsd-x64@0.21.5':
+ '@esbuild/openbsd-arm64@0.23.1':
optional: true
- '@esbuild/openbsd-x64@0.21.5':
+ '@esbuild/openbsd-x64@0.23.1':
optional: true
- '@esbuild/sunos-x64@0.21.5':
+ '@esbuild/sunos-x64@0.23.1':
optional: true
- '@esbuild/win32-arm64@0.21.5':
+ '@esbuild/win32-arm64@0.23.1':
optional: true
- '@esbuild/win32-ia32@0.21.5':
+ '@esbuild/win32-ia32@0.23.1':
optional: true
- '@esbuild/win32-x64@0.21.5':
+ '@esbuild/win32-x64@0.23.1':
optional: true
'@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)':
@@ -2615,10 +3248,10 @@ snapshots:
'@eslint/eslintrc@2.1.4':
dependencies:
ajv: 6.12.6
- debug: 4.3.5
+ debug: 4.3.6
espree: 9.6.1
globals: 13.24.0
- ignore: 5.3.1
+ ignore: 5.3.2
import-fresh: 3.3.0
js-yaml: 4.1.0
minimatch: 3.1.2
@@ -2630,74 +3263,90 @@ snapshots:
'@fastify/busboy@2.1.1': {}
- '@hattip/adapter-bun@0.0.46':
+ '@hapi/hoek@9.3.0':
+ optional: true
+
+ '@hapi/topo@5.1.0':
+ dependencies:
+ '@hapi/hoek': 9.3.0
+ optional: true
+
+ '@hattip/adapter-bun@0.0.47':
+ dependencies:
+ '@hattip/core': 0.0.47
+ bun-types: 1.1.24
+
+ '@hattip/adapter-deno@0.0.47':
dependencies:
- '@hattip/core': 0.0.46
- bun-types: 1.1.20
+ '@hattip/core': 0.0.47
- '@hattip/adapter-deno@0.0.46':
+ '@hattip/adapter-node@0.0.47':
dependencies:
- '@hattip/core': 0.0.46
+ '@hattip/core': 0.0.47
+ '@hattip/polyfills': 0.0.47
+ '@hattip/walk': 0.0.47
- '@hattip/adapter-node@0.0.46':
+ '@hattip/compose@0.0.45':
dependencies:
- '@hattip/core': 0.0.46
- '@hattip/polyfills': 0.0.46
- '@hattip/walk': 0.0.46
+ '@hattip/core': 0.0.45
+ optional: true
- '@hattip/compose@0.0.46':
+ '@hattip/compose@0.0.47':
dependencies:
- '@hattip/core': 0.0.46
+ '@hattip/core': 0.0.47
+
+ '@hattip/core@0.0.45':
+ optional: true
- '@hattip/core@0.0.46': {}
+ '@hattip/core@0.0.47': {}
- '@hattip/cors@0.0.46':
+ '@hattip/cors@0.0.47':
dependencies:
- '@hattip/compose': 0.0.46
- '@hattip/core': 0.0.46
+ '@hattip/compose': 0.0.47
+ '@hattip/core': 0.0.47
'@types/cookie': 0.6.0
cookie: 0.6.0
- '@hattip/headers@0.0.46':
+ '@hattip/headers@0.0.47':
dependencies:
- '@hattip/core': 0.0.46
+ '@hattip/core': 0.0.47
- '@hattip/polyfills@0.0.46':
+ '@hattip/polyfills@0.0.47':
dependencies:
- '@hattip/core': 0.0.46
- '@whatwg-node/fetch': 0.9.18
+ '@hattip/core': 0.0.47
+ '@whatwg-node/fetch': 0.9.20
node-fetch-native: 1.6.4
- '@hattip/router@0.0.46':
+ '@hattip/router@0.0.47':
dependencies:
- '@hattip/compose': 0.0.46
- '@hattip/core': 0.0.46
+ '@hattip/compose': 0.0.47
+ '@hattip/core': 0.0.47
- '@hattip/vite@0.0.46(vite@5.3.3(@types/node@18.19.39))':
+ '@hattip/vite@0.0.47(vite@5.4.1(@types/node@18.19.44))':
dependencies:
- '@hattip/adapter-node': 0.0.46
- '@vavite/connect': 4.1.1(vite@5.3.3(@types/node@18.19.39))
- '@vavite/multibuild': 4.1.1(vite@5.3.3(@types/node@18.19.39))
- '@vavite/node-loader': 4.1.1(vite@5.3.3(@types/node@18.19.39))
+ '@hattip/adapter-node': 0.0.47
+ '@vavite/connect': 4.1.2(vite@5.4.1(@types/node@18.19.44))
+ '@vavite/multibuild': 4.1.2(vite@5.4.1(@types/node@18.19.44))
+ '@vavite/node-loader': 4.1.2(vite@5.4.1(@types/node@18.19.44))
cac: 6.7.14
import-meta-resolve: 4.1.0
picocolors: 1.0.1
resolve.exports: 2.0.2
- vite: 5.3.3(@types/node@18.19.39)
+ vite: 5.4.1(@types/node@18.19.44)
- '@hattip/walk@0.0.46':
+ '@hattip/walk@0.0.47':
dependencies:
- '@hattip/headers': 0.0.46
+ '@hattip/headers': 0.0.47
cac: 6.7.14
mime-types: 2.1.35
'@hono/node-server@1.12.0': {}
- '@hono/vite-dev-server@0.13.0(hono@4.4.12)':
+ '@hono/vite-dev-server@0.14.0(hono@4.5.6)':
dependencies:
'@hono/node-server': 1.12.0
- hono: 4.4.12
- miniflare: 3.20240701.0
+ hono: 4.5.6
+ miniflare: 3.20240806.1
minimatch: 9.0.5
transitivePeerDependencies:
- bufferutil
@@ -2707,7 +3356,7 @@ snapshots:
'@humanwhocodes/config-array@0.11.14':
dependencies:
'@humanwhocodes/object-schema': 2.0.3
- debug: 4.3.5
+ debug: 4.3.6
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
@@ -2730,24 +3379,24 @@ snapshots:
'@jridgewell/gen-mapping@0.3.5':
dependencies:
'@jridgewell/set-array': 1.2.1
- '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/sourcemap-codec': 1.5.0
'@jridgewell/trace-mapping': 0.3.25
'@jridgewell/resolve-uri@3.1.2': {}
'@jridgewell/set-array@1.2.1': {}
- '@jridgewell/sourcemap-codec@1.4.15': {}
+ '@jridgewell/sourcemap-codec@1.5.0': {}
'@jridgewell/trace-mapping@0.3.25':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/sourcemap-codec': 1.5.0
'@jridgewell/trace-mapping@0.3.9':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/sourcemap-codec': 1.5.0
'@kamilkisiela/fast-url-parser@1.1.4': {}
@@ -2763,65 +3412,187 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.17.1
+ '@oxc-transform/binding-darwin-arm64@0.24.3':
+ optional: true
+
+ '@oxc-transform/binding-darwin-x64@0.24.3':
+ optional: true
+
+ '@oxc-transform/binding-linux-arm64-gnu@0.24.3':
+ optional: true
+
+ '@oxc-transform/binding-linux-arm64-musl@0.24.3':
+ optional: true
+
+ '@oxc-transform/binding-linux-x64-gnu@0.24.3':
+ optional: true
+
+ '@oxc-transform/binding-linux-x64-musl@0.24.3':
+ optional: true
+
+ '@oxc-transform/binding-win32-arm64-msvc@0.24.3':
+ optional: true
+
+ '@oxc-transform/binding-win32-x64-msvc@0.24.3':
+ optional: true
+
'@pkgjs/parseargs@0.11.0':
optional: true
- '@rollup/rollup-android-arm-eabi@4.18.0':
+ '@rollup/plugin-node-resolve@15.2.3(rollup@4.21.0)':
+ dependencies:
+ '@rollup/pluginutils': 5.1.0(rollup@4.21.0)
+ '@types/resolve': 1.20.2
+ deepmerge: 4.3.1
+ is-builtin-module: 3.2.1
+ is-module: 1.0.0
+ resolve: 1.22.8
+ optionalDependencies:
+ rollup: 4.21.0
+
+ '@rollup/plugin-typescript@11.1.6(rollup@4.21.0)(tslib@2.6.3)(typescript@5.5.4)':
+ dependencies:
+ '@rollup/pluginutils': 5.1.0(rollup@4.21.0)
+ resolve: 1.22.8
+ typescript: 5.5.4
+ optionalDependencies:
+ rollup: 4.21.0
+ tslib: 2.6.3
+
+ '@rollup/pluginutils@5.1.0(rollup@4.21.0)':
+ dependencies:
+ '@types/estree': 1.0.5
+ estree-walker: 2.0.2
+ picomatch: 2.3.1
+ optionalDependencies:
+ rollup: 4.21.0
+
+ '@rollup/rollup-android-arm-eabi@4.21.0':
+ optional: true
+
+ '@rollup/rollup-android-arm64@4.21.0':
+ optional: true
+
+ '@rollup/rollup-darwin-arm64@4.21.0':
+ optional: true
+
+ '@rollup/rollup-darwin-x64@4.21.0':
+ optional: true
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.21.0':
+ optional: true
+
+ '@rollup/rollup-linux-arm-musleabihf@4.21.0':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-gnu@4.21.0':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-musl@4.21.0':
+ optional: true
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.21.0':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-gnu@4.21.0':
+ optional: true
+
+ '@rollup/rollup-linux-s390x-gnu@4.21.0':
+ optional: true
+
+ '@rollup/rollup-linux-x64-gnu@4.21.0':
+ optional: true
+
+ '@rollup/rollup-linux-x64-musl@4.21.0':
+ optional: true
+
+ '@rollup/rollup-win32-arm64-msvc@4.21.0':
+ optional: true
+
+ '@rollup/rollup-win32-ia32-msvc@4.21.0':
optional: true
- '@rollup/rollup-android-arm64@4.18.0':
+ '@rollup/rollup-win32-x64-msvc@4.21.0':
optional: true
- '@rollup/rollup-darwin-arm64@4.18.0':
+ '@sideway/address@4.1.5':
+ dependencies:
+ '@hapi/hoek': 9.3.0
optional: true
- '@rollup/rollup-darwin-x64@4.18.0':
+ '@sideway/formula@3.0.1':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.18.0':
+ '@sideway/pinpoint@2.0.0':
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.18.0':
+ '@sinclair/typebox@0.32.35':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.18.0':
+ '@swc/core-darwin-arm64@1.7.11':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.18.0':
+ '@swc/core-darwin-x64@1.7.11':
optional: true
- '@rollup/rollup-linux-powerpc64le-gnu@4.18.0':
+ '@swc/core-linux-arm-gnueabihf@1.7.11':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.18.0':
+ '@swc/core-linux-arm64-gnu@1.7.11':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.18.0':
+ '@swc/core-linux-arm64-musl@1.7.11':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.18.0':
+ '@swc/core-linux-x64-gnu@1.7.11':
optional: true
- '@rollup/rollup-linux-x64-musl@4.18.0':
+ '@swc/core-linux-x64-musl@1.7.11':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.18.0':
+ '@swc/core-win32-arm64-msvc@1.7.11':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.18.0':
+ '@swc/core-win32-ia32-msvc@1.7.11':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.18.0':
+ '@swc/core-win32-x64-msvc@1.7.11':
optional: true
+ '@swc/core@1.7.11':
+ dependencies:
+ '@swc/counter': 0.1.3
+ '@swc/types': 0.1.12
+ optionalDependencies:
+ '@swc/core-darwin-arm64': 1.7.11
+ '@swc/core-darwin-x64': 1.7.11
+ '@swc/core-linux-arm-gnueabihf': 1.7.11
+ '@swc/core-linux-arm64-gnu': 1.7.11
+ '@swc/core-linux-arm64-musl': 1.7.11
+ '@swc/core-linux-x64-gnu': 1.7.11
+ '@swc/core-linux-x64-musl': 1.7.11
+ '@swc/core-win32-arm64-msvc': 1.7.11
+ '@swc/core-win32-ia32-msvc': 1.7.11
+ '@swc/core-win32-x64-msvc': 1.7.11
+
+ '@swc/counter@0.1.3': {}
+
+ '@swc/types@0.1.12':
+ dependencies:
+ '@swc/counter': 0.1.3
+
'@types/body-parser@1.19.5':
dependencies:
'@types/connect': 3.4.38
- '@types/node': 20.14.10
+ '@types/node': 20.16.0
+
+ '@types/bun@1.1.6':
+ dependencies:
+ bun-types: 1.1.17
'@types/connect@3.4.38':
dependencies:
- '@types/node': 20.14.10
+ '@types/node': 20.16.0
'@types/cookie@0.6.0': {}
@@ -2829,7 +3600,7 @@ snapshots:
'@types/express-serve-static-core@4.19.5':
dependencies:
- '@types/node': 20.14.10
+ '@types/node': 20.16.0
'@types/qs': 6.9.15
'@types/range-parser': 1.2.7
'@types/send': 0.17.4
@@ -2848,19 +3619,19 @@ snapshots:
'@types/fs-extra@11.0.4':
dependencies:
'@types/jsonfile': 6.1.4
- '@types/node': 20.14.10
+ '@types/node': 20.16.0
optional: true
'@types/http-errors@2.0.4': {}
'@types/jsonfile@6.1.4':
dependencies:
- '@types/node': 20.14.10
+ '@types/node': 20.16.0
optional: true
'@types/mime@1.3.5': {}
- '@types/node@18.19.39':
+ '@types/node@18.19.44':
dependencies:
undici-types: 5.26.5
@@ -2868,9 +3639,9 @@ snapshots:
dependencies:
undici-types: 5.26.5
- '@types/node@20.14.10':
+ '@types/node@20.16.0':
dependencies:
- undici-types: 5.26.5
+ undici-types: 6.19.6
'@types/normalize-package-data@2.4.4': {}
@@ -2878,164 +3649,191 @@ snapshots:
'@types/range-parser@1.2.7': {}
+ '@types/resolve@1.20.2': {}
+
'@types/send@0.17.4':
dependencies:
'@types/mime': 1.3.5
- '@types/node': 20.14.10
+ '@types/node': 20.16.0
'@types/serve-static@1.15.7':
dependencies:
'@types/http-errors': 2.0.4
- '@types/node': 20.14.10
+ '@types/node': 20.16.0
'@types/send': 0.17.4
- '@types/ws@8.5.11':
+ '@types/ws@8.5.12':
dependencies:
- '@types/node': 20.14.10
+ '@types/node': 20.16.0
- '@typescript-eslint/eslint-plugin@7.15.0(@typescript-eslint/parser@7.15.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3)':
+ '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)':
dependencies:
'@eslint-community/regexpp': 4.11.0
- '@typescript-eslint/parser': 7.15.0(eslint@8.57.0)(typescript@5.5.3)
- '@typescript-eslint/scope-manager': 7.15.0
- '@typescript-eslint/type-utils': 7.15.0(eslint@8.57.0)(typescript@5.5.3)
- '@typescript-eslint/utils': 7.15.0(eslint@8.57.0)(typescript@5.5.3)
- '@typescript-eslint/visitor-keys': 7.15.0
+ '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.5.4)
+ '@typescript-eslint/scope-manager': 7.18.0
+ '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4)
+ '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4)
+ '@typescript-eslint/visitor-keys': 7.18.0
eslint: 8.57.0
graphemer: 1.4.0
- ignore: 5.3.1
+ ignore: 5.3.2
natural-compare: 1.4.0
- ts-api-utils: 1.3.0(typescript@5.5.3)
+ ts-api-utils: 1.3.0(typescript@5.5.4)
optionalDependencies:
- typescript: 5.5.3
+ typescript: 5.5.4
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@7.15.0(eslint@8.57.0)(typescript@5.5.3)':
+ '@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4)':
dependencies:
- '@typescript-eslint/scope-manager': 7.15.0
- '@typescript-eslint/types': 7.15.0
- '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3)
- '@typescript-eslint/visitor-keys': 7.15.0
- debug: 4.3.5
+ '@typescript-eslint/scope-manager': 7.18.0
+ '@typescript-eslint/types': 7.18.0
+ '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4)
+ '@typescript-eslint/visitor-keys': 7.18.0
+ debug: 4.3.6
eslint: 8.57.0
optionalDependencies:
- typescript: 5.5.3
+ typescript: 5.5.4
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@7.15.0':
+ '@typescript-eslint/scope-manager@7.18.0':
dependencies:
- '@typescript-eslint/types': 7.15.0
- '@typescript-eslint/visitor-keys': 7.15.0
+ '@typescript-eslint/types': 7.18.0
+ '@typescript-eslint/visitor-keys': 7.18.0
- '@typescript-eslint/type-utils@7.15.0(eslint@8.57.0)(typescript@5.5.3)':
+ '@typescript-eslint/type-utils@7.18.0(eslint@8.57.0)(typescript@5.5.4)':
dependencies:
- '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3)
- '@typescript-eslint/utils': 7.15.0(eslint@8.57.0)(typescript@5.5.3)
- debug: 4.3.5
+ '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4)
+ '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4)
+ debug: 4.3.6
eslint: 8.57.0
- ts-api-utils: 1.3.0(typescript@5.5.3)
+ ts-api-utils: 1.3.0(typescript@5.5.4)
optionalDependencies:
- typescript: 5.5.3
+ typescript: 5.5.4
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/types@7.15.0': {}
+ '@typescript-eslint/types@7.18.0': {}
- '@typescript-eslint/typescript-estree@7.15.0(typescript@5.5.3)':
+ '@typescript-eslint/typescript-estree@7.18.0(typescript@5.5.4)':
dependencies:
- '@typescript-eslint/types': 7.15.0
- '@typescript-eslint/visitor-keys': 7.15.0
- debug: 4.3.5
+ '@typescript-eslint/types': 7.18.0
+ '@typescript-eslint/visitor-keys': 7.18.0
+ debug: 4.3.6
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.5
- semver: 7.6.2
- ts-api-utils: 1.3.0(typescript@5.5.3)
+ semver: 7.6.3
+ ts-api-utils: 1.3.0(typescript@5.5.4)
optionalDependencies:
- typescript: 5.5.3
+ typescript: 5.5.4
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@7.15.0(eslint@8.57.0)(typescript@5.5.3)':
+ '@typescript-eslint/utils@7.18.0(eslint@8.57.0)(typescript@5.5.4)':
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
- '@typescript-eslint/scope-manager': 7.15.0
- '@typescript-eslint/types': 7.15.0
- '@typescript-eslint/typescript-estree': 7.15.0(typescript@5.5.3)
+ '@typescript-eslint/scope-manager': 7.18.0
+ '@typescript-eslint/types': 7.18.0
+ '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4)
eslint: 8.57.0
transitivePeerDependencies:
- supports-color
- typescript
- '@typescript-eslint/visitor-keys@7.15.0':
+ '@typescript-eslint/visitor-keys@7.18.0':
dependencies:
- '@typescript-eslint/types': 7.15.0
+ '@typescript-eslint/types': 7.18.0
eslint-visitor-keys: 3.4.3
'@ungap/structured-clone@1.2.0': {}
- '@vavite/connect@4.1.1(vite@5.3.3(@types/node@18.19.39))':
+ '@vavite/connect@4.1.2(vite@5.4.1(@types/node@18.19.44))':
dependencies:
- '@types/node': 20.14.10
- vite: 5.3.3(@types/node@18.19.39)
+ '@types/node': 18.19.44
+ vite: 5.4.1(@types/node@18.19.44)
- '@vavite/multibuild@4.1.1(vite@5.3.3(@types/node@18.19.39))':
+ '@vavite/multibuild@4.1.2(vite@5.4.1(@types/node@18.19.44))':
dependencies:
- '@types/node': 20.14.10
+ '@types/node': 18.19.44
cac: 6.7.14
picocolors: 1.0.1
- vite: 5.3.3(@types/node@18.19.39)
+ vite: 5.4.1(@types/node@18.19.44)
- '@vavite/node-loader@4.1.1(vite@5.3.3(@types/node@18.19.39))':
+ '@vavite/node-loader@4.1.2(vite@5.4.1(@types/node@18.19.44))':
dependencies:
- vite: 5.3.3(@types/node@18.19.39)
+ vite: 5.4.1(@types/node@18.19.44)
- '@vitest/expect@2.0.2':
+ '@vitest/expect@2.0.5':
dependencies:
- '@vitest/spy': 2.0.2
- '@vitest/utils': 2.0.2
+ '@vitest/spy': 2.0.5
+ '@vitest/utils': 2.0.5
chai: 5.1.1
tinyrainbow: 1.2.0
- '@vitest/pretty-format@2.0.2':
+ '@vitest/pretty-format@2.0.5':
dependencies:
tinyrainbow: 1.2.0
- '@vitest/runner@2.0.2':
+ '@vitest/runner@2.0.5':
dependencies:
- '@vitest/utils': 2.0.2
+ '@vitest/utils': 2.0.5
pathe: 1.1.2
- '@vitest/snapshot@2.0.2':
+ '@vitest/snapshot@2.0.5':
dependencies:
- '@vitest/pretty-format': 2.0.2
- magic-string: 0.30.10
+ '@vitest/pretty-format': 2.0.5
+ magic-string: 0.30.11
pathe: 1.1.2
- '@vitest/spy@2.0.2':
+ '@vitest/spy@2.0.5':
dependencies:
tinyspy: 3.0.0
- '@vitest/utils@2.0.2':
+ '@vitest/utils@2.0.5':
dependencies:
- '@vitest/pretty-format': 2.0.2
+ '@vitest/pretty-format': 2.0.5
estree-walker: 3.0.3
loupe: 3.1.1
tinyrainbow: 1.2.0
- '@whatwg-node/events@0.1.1': {}
+ '@webroute/common@1.0.0': {}
+
+ '@webroute/middleware@0.9.0':
+ dependencies:
+ '@webroute/common': 1.0.0
+ optionalDependencies:
+ '@hattip/compose': 0.0.45
+ hono: 4.5.6
+
+ '@webroute/route@0.6.0':
+ dependencies:
+ '@webroute/common': 1.0.0
+ '@webroute/middleware': 0.9.0
+ '@webroute/schema': 0.4.0
+ debug: 4.3.6
+ transitivePeerDependencies:
+ - supports-color
+
+ '@webroute/schema@0.4.0':
+ optionalDependencies:
+ '@sinclair/typebox': 0.32.35
+ joi: 17.13.3
+ runtypes: 6.7.0
+ superstruct: 1.0.4
+ valibot: 0.31.0-rc.0
+ yup: 1.4.0
+ zod: 3.23.8
- '@whatwg-node/fetch@0.9.18':
+ '@whatwg-node/fetch@0.9.20':
dependencies:
- '@whatwg-node/node-fetch': 0.5.11
+ '@whatwg-node/node-fetch': 0.5.22
urlpattern-polyfill: 10.0.0
- '@whatwg-node/node-fetch@0.5.11':
+ '@whatwg-node/node-fetch@0.5.22':
dependencies:
'@kamilkisiela/fast-url-parser': 1.1.4
- '@whatwg-node/events': 0.1.1
busboy: 1.6.0
fast-querystring: 1.1.2
tslib: 2.6.3
@@ -3102,6 +3900,8 @@ snapshots:
dependencies:
printable-characters: 1.0.42
+ assertion-error@1.1.0: {}
+
assertion-error@2.0.1: {}
balanced-match@1.0.2: {}
@@ -3138,14 +3938,23 @@ snapshots:
dependencies:
fill-range: 7.1.1
- bun-types@1.1.20:
+ buffer-from@1.1.2: {}
+
+ builtin-modules@3.3.0: {}
+
+ bun-types@1.1.17:
+ dependencies:
+ '@types/node': 20.12.14
+ '@types/ws': 8.5.12
+
+ bun-types@1.1.24:
dependencies:
'@types/node': 20.12.14
- '@types/ws': 8.5.11
+ '@types/ws': 8.5.12
- bundle-require@4.2.1(esbuild@0.21.5):
+ bundle-require@5.0.0(esbuild@0.23.1):
dependencies:
- esbuild: 0.21.5
+ esbuild: 0.23.1
load-tsconfig: 0.2.5
busboy@1.6.0:
@@ -3168,11 +3977,21 @@ snapshots:
capnp-ts@0.7.0:
dependencies:
- debug: 4.3.5
+ debug: 4.3.6
tslib: 2.6.3
transitivePeerDependencies:
- supports-color
+ chai@4.5.0:
+ dependencies:
+ assertion-error: 1.1.0
+ check-error: 1.0.3
+ deep-eql: 4.1.4
+ get-func-name: 2.0.2
+ loupe: 2.3.7
+ pathval: 1.1.1
+ type-detect: 4.1.0
+
chai@5.1.1:
dependencies:
assertion-error: 2.0.1
@@ -3192,6 +4011,10 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
+ check-error@1.0.3:
+ dependencies:
+ get-func-name: 2.0.2
+
check-error@2.1.1: {}
chokidar@3.6.0:
@@ -3284,7 +4107,7 @@ snapshots:
handlebars: 4.7.8
json-stringify-safe: 5.0.1
meow: 12.1.1
- semver: 7.6.2
+ semver: 7.6.3
split2: 4.2.0
conventional-changelog@5.1.0:
@@ -3310,7 +4133,7 @@ snapshots:
meow: 12.1.1
split2: 4.2.0
- cookie-es@1.1.0: {}
+ cookie-es@1.2.2: {}
cookie-signature@1.0.6: {}
@@ -3336,14 +4159,20 @@ snapshots:
dependencies:
ms: 2.0.0
- debug@4.3.5:
+ debug@4.3.6:
dependencies:
ms: 2.1.2
+ deep-eql@4.1.4:
+ dependencies:
+ type-detect: 4.1.0
+
deep-eql@5.0.2: {}
deep-is@0.1.4: {}
+ deepmerge@4.3.1: {}
+
define-data-property@1.1.4:
dependencies:
es-define-property: 1.0.0
@@ -3390,31 +4219,32 @@ snapshots:
es-errors@1.3.0: {}
- esbuild@0.21.5:
+ esbuild@0.23.1:
optionalDependencies:
- '@esbuild/aix-ppc64': 0.21.5
- '@esbuild/android-arm': 0.21.5
- '@esbuild/android-arm64': 0.21.5
- '@esbuild/android-x64': 0.21.5
- '@esbuild/darwin-arm64': 0.21.5
- '@esbuild/darwin-x64': 0.21.5
- '@esbuild/freebsd-arm64': 0.21.5
- '@esbuild/freebsd-x64': 0.21.5
- '@esbuild/linux-arm': 0.21.5
- '@esbuild/linux-arm64': 0.21.5
- '@esbuild/linux-ia32': 0.21.5
- '@esbuild/linux-loong64': 0.21.5
- '@esbuild/linux-mips64el': 0.21.5
- '@esbuild/linux-ppc64': 0.21.5
- '@esbuild/linux-riscv64': 0.21.5
- '@esbuild/linux-s390x': 0.21.5
- '@esbuild/linux-x64': 0.21.5
- '@esbuild/netbsd-x64': 0.21.5
- '@esbuild/openbsd-x64': 0.21.5
- '@esbuild/sunos-x64': 0.21.5
- '@esbuild/win32-arm64': 0.21.5
- '@esbuild/win32-ia32': 0.21.5
- '@esbuild/win32-x64': 0.21.5
+ '@esbuild/aix-ppc64': 0.23.1
+ '@esbuild/android-arm': 0.23.1
+ '@esbuild/android-arm64': 0.23.1
+ '@esbuild/android-x64': 0.23.1
+ '@esbuild/darwin-arm64': 0.23.1
+ '@esbuild/darwin-x64': 0.23.1
+ '@esbuild/freebsd-arm64': 0.23.1
+ '@esbuild/freebsd-x64': 0.23.1
+ '@esbuild/linux-arm': 0.23.1
+ '@esbuild/linux-arm64': 0.23.1
+ '@esbuild/linux-ia32': 0.23.1
+ '@esbuild/linux-loong64': 0.23.1
+ '@esbuild/linux-mips64el': 0.23.1
+ '@esbuild/linux-ppc64': 0.23.1
+ '@esbuild/linux-riscv64': 0.23.1
+ '@esbuild/linux-s390x': 0.23.1
+ '@esbuild/linux-x64': 0.23.1
+ '@esbuild/netbsd-x64': 0.23.1
+ '@esbuild/openbsd-arm64': 0.23.1
+ '@esbuild/openbsd-x64': 0.23.1
+ '@esbuild/sunos-x64': 0.23.1
+ '@esbuild/win32-arm64': 0.23.1
+ '@esbuild/win32-ia32': 0.23.1
+ '@esbuild/win32-x64': 0.23.1
escape-html@1.0.3: {}
@@ -3446,13 +4276,13 @@ snapshots:
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.3
- debug: 4.3.5
+ debug: 4.3.6
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
- esquery: 1.5.0
+ esquery: 1.6.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
file-entry-cache: 6.0.1
@@ -3460,7 +4290,7 @@ snapshots:
glob-parent: 6.0.2
globals: 13.24.0
graphemer: 1.4.0
- ignore: 5.3.1
+ ignore: 5.3.2
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
@@ -3482,7 +4312,7 @@ snapshots:
acorn-jsx: 5.3.2(acorn@8.12.1)
eslint-visitor-keys: 3.4.3
- esquery@1.5.0:
+ esquery@1.6.0:
dependencies:
estraverse: 5.3.0
@@ -3492,6 +4322,8 @@ snapshots:
estraverse@5.3.0: {}
+ estree-walker@2.0.2: {}
+
estree-walker@3.0.3:
dependencies:
'@types/estree': 1.0.5
@@ -3526,7 +4358,7 @@ snapshots:
exit-hook@2.2.1: {}
- express-rate-limit@7.3.1(express@4.19.2):
+ express-rate-limit@7.4.0(express@4.19.2):
dependencies:
express: 4.19.2
@@ -3623,6 +4455,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ find-up-simple@1.0.0: {}
+
find-up@5.0.0:
dependencies:
locate-path: 6.0.0
@@ -3641,7 +4475,7 @@ snapshots:
flatted@3.3.1: {}
- foreground-child@3.2.1:
+ foreground-child@3.3.0:
dependencies:
cross-spawn: 7.0.3
signal-exit: 4.1.0
@@ -3652,6 +4486,9 @@ snapshots:
fs.realpath@1.0.0: {}
+ fsevents@2.3.2:
+ optional: true
+
fsevents@2.3.3:
optional: true
@@ -3676,7 +4513,7 @@ snapshots:
get-stream@8.0.1: {}
- get-tsconfig@4.7.5:
+ get-tsconfig@4.7.6:
dependencies:
resolve-pkg-maps: 1.0.0
@@ -3689,7 +4526,7 @@ snapshots:
git-semver-tags@7.0.1:
dependencies:
meow: 12.1.1
- semver: 7.6.2
+ semver: 7.6.3
glob-parent@5.1.2:
dependencies:
@@ -3701,10 +4538,10 @@ snapshots:
glob-to-regexp@0.4.1: {}
- glob@10.4.3:
+ glob@10.4.5:
dependencies:
- foreground-child: 3.2.1
- jackspeak: 3.4.1
+ foreground-child: 3.3.0
+ jackspeak: 3.4.3
minimatch: 9.0.5
minipass: 7.1.2
package-json-from-dist: 1.0.0
@@ -3712,7 +4549,7 @@ snapshots:
glob@11.0.0:
dependencies:
- foreground-child: 3.2.1
+ foreground-child: 3.3.0
jackspeak: 4.0.1
minimatch: 10.0.1
minipass: 7.1.2
@@ -3737,7 +4574,7 @@ snapshots:
array-union: 2.1.0
dir-glob: 3.0.1
fast-glob: 3.3.2
- ignore: 5.3.1
+ ignore: 5.3.2
merge2: 1.4.1
slash: 3.0.0
@@ -3749,16 +4586,16 @@ snapshots:
h3@1.12.0:
dependencies:
- cookie-es: 1.1.0
+ cookie-es: 1.2.2
crossws: 0.2.4
defu: 6.1.4
destr: 2.0.3
iron-webcrypto: 1.2.1
ohash: 1.1.3
radix3: 1.1.2
- ufo: 1.5.3
+ ufo: 1.5.4
uncrypto: 0.1.3
- unenv: 1.9.0
+ unenv: 1.10.0
transitivePeerDependencies:
- uWebSockets.js
@@ -3769,7 +4606,7 @@ snapshots:
source-map: 0.6.1
wordwrap: 1.0.0
optionalDependencies:
- uglify-js: 3.18.0
+ uglify-js: 3.19.2
has-flag@3.0.0: {}
@@ -3791,13 +4628,11 @@ snapshots:
helmet@7.1.0: {}
- hono@4.4.12: {}
-
- hono@4.4.13: {}
+ hono@4.5.6: {}
hosted-git-info@7.0.2:
dependencies:
- lru-cache: 10.4.0
+ lru-cache: 10.4.3
http-errors@2.0.0:
dependencies:
@@ -3815,7 +4650,7 @@ snapshots:
dependencies:
safer-buffer: 2.1.2
- ignore@5.3.1: {}
+ ignore@5.3.2: {}
import-fresh@3.3.0:
dependencies:
@@ -3843,6 +4678,14 @@ snapshots:
dependencies:
binary-extensions: 2.3.0
+ is-builtin-module@3.2.1:
+ dependencies:
+ builtin-modules: 3.3.0
+
+ is-core-module@2.15.0:
+ dependencies:
+ hasown: 2.0.2
+
is-extglob@2.1.1: {}
is-fullwidth-code-point@3.0.0: {}
@@ -3851,6 +4694,8 @@ snapshots:
dependencies:
is-extglob: 2.1.1
+ is-module@1.0.0: {}
+
is-number@7.0.0: {}
is-obj@2.0.0: {}
@@ -3867,7 +4712,7 @@ snapshots:
isexe@2.0.0: {}
- jackspeak@3.4.1:
+ jackspeak@3.4.3:
dependencies:
'@isaacs/cliui': 8.0.2
optionalDependencies:
@@ -3879,6 +4724,15 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
+ joi@17.13.3:
+ dependencies:
+ '@hapi/hoek': 9.3.0
+ '@hapi/topo': 5.1.0
+ '@sideway/address': 4.1.5
+ '@sideway/formula': 3.0.1
+ '@sideway/pinpoint': 2.0.0
+ optional: true
+
joycon@3.1.1: {}
js-tokens@4.0.0: {}
@@ -3928,20 +4782,26 @@ snapshots:
lodash.sortby@4.7.0: {}
+ loupe@2.3.7:
+ dependencies:
+ get-func-name: 2.0.2
+
loupe@3.1.1:
dependencies:
get-func-name: 2.0.2
- lru-cache@10.4.0: {}
+ lru-cache@10.4.3: {}
lru-cache@11.0.0: {}
- magic-string@0.30.10:
+ magic-string@0.30.11:
dependencies:
- '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/sourcemap-codec': 1.5.0
media-typer@0.3.0: {}
+ memorystream@0.3.1: {}
+
meow@12.1.1: {}
merge-descriptors@1.0.1: {}
@@ -3973,7 +4833,7 @@ snapshots:
mimic-fn@4.0.0: {}
- miniflare@3.20240701.0:
+ miniflare@3.20240806.1:
dependencies:
'@cspotcode/source-map-support': 0.8.1
acorn: 8.12.1
@@ -3983,7 +4843,7 @@ snapshots:
glob-to-regexp: 0.4.1
stoppable: 1.1.0
undici: 5.28.4
- workerd: 1.20240701.0
+ workerd: 1.20240806.0
ws: 8.18.0
youch: 3.3.3
zod: 3.23.8
@@ -4034,14 +4894,30 @@ snapshots:
node-fetch-native@1.6.4: {}
+ node-fetch@2.7.0:
+ dependencies:
+ whatwg-url: 5.0.0
+
normalize-package-data@6.0.2:
dependencies:
hosted-git-info: 7.0.2
- semver: 7.6.2
+ semver: 7.6.3
validate-npm-package-license: 3.0.4
normalize-path@3.0.0: {}
+ npm-normalize-package-bin@3.0.1: {}
+
+ npm-run-all2@6.2.2:
+ dependencies:
+ ansi-styles: 6.2.1
+ cross-spawn: 7.0.3
+ memorystream: 0.3.1
+ minimatch: 9.0.5
+ pidtree: 0.6.0
+ read-package-json-fast: 3.0.2
+ shell-quote: 1.8.1
+
npm-run-path@4.0.1:
dependencies:
path-key: 3.1.1
@@ -4085,6 +4961,17 @@ snapshots:
type-check: 0.4.0
word-wrap: 1.2.5
+ oxc-transform@0.24.3:
+ optionalDependencies:
+ '@oxc-transform/binding-darwin-arm64': 0.24.3
+ '@oxc-transform/binding-darwin-x64': 0.24.3
+ '@oxc-transform/binding-linux-arm64-gnu': 0.24.3
+ '@oxc-transform/binding-linux-arm64-musl': 0.24.3
+ '@oxc-transform/binding-linux-x64-gnu': 0.24.3
+ '@oxc-transform/binding-linux-x64-musl': 0.24.3
+ '@oxc-transform/binding-win32-arm64-msvc': 0.24.3
+ '@oxc-transform/binding-win32-x64-msvc': 0.24.3
+
p-limit@3.1.0:
dependencies:
yocto-queue: 0.1.0
@@ -4103,6 +4990,10 @@ snapshots:
package-json-from-dist@1.0.0: {}
+ package-up@5.0.0:
+ dependencies:
+ find-up-simple: 1.0.0
+
parent-module@1.0.1:
dependencies:
callsites: 3.1.0
@@ -4127,9 +5018,11 @@ snapshots:
path-key@4.0.0: {}
+ path-parse@1.0.7: {}
+
path-scurry@1.11.1:
dependencies:
- lru-cache: 10.4.0
+ lru-cache: 10.4.3
minipass: 7.1.2
path-scurry@2.0.0:
@@ -4143,22 +5036,44 @@ snapshots:
pathe@1.1.2: {}
+ pathval@1.1.1: {}
+
pathval@2.0.0: {}
picocolors@1.0.1: {}
picomatch@2.3.1: {}
+ pidtree@0.6.0: {}
+
pirates@4.0.6: {}
- postcss-load-config@4.0.2(postcss@8.4.39):
+ pixelmatch@5.3.0:
+ dependencies:
+ pngjs: 6.0.0
+
+ playwright-chromium@1.46.1:
+ dependencies:
+ playwright-core: 1.46.1
+
+ playwright-core@1.46.1: {}
+
+ playwright@1.46.1:
+ dependencies:
+ playwright-core: 1.46.1
+ optionalDependencies:
+ fsevents: 2.3.2
+
+ pngjs@6.0.0: {}
+
+ postcss-load-config@6.0.1(postcss@8.4.41)(tsx@4.17.0):
dependencies:
lilconfig: 3.1.2
- yaml: 2.4.5
optionalDependencies:
- postcss: 8.4.39
+ postcss: 8.4.41
+ tsx: 4.17.0
- postcss@8.4.39:
+ postcss@8.4.41:
dependencies:
nanoid: 3.3.7
picocolors: 1.0.1
@@ -4166,10 +5081,13 @@ snapshots:
prelude-ls@1.2.1: {}
- prettier@3.3.2: {}
+ prettier@3.3.3: {}
printable-characters@1.0.42: {}
+ property-expr@2.0.6:
+ optional: true
+
proxy-addr@2.0.7:
dependencies:
forwarded: 0.2.0
@@ -4198,18 +5116,23 @@ snapshots:
iconv-lite: 0.4.24
unpipe: 1.0.0
+ read-package-json-fast@3.0.2:
+ dependencies:
+ json-parse-even-better-errors: 3.0.2
+ npm-normalize-package-bin: 3.0.1
+
read-pkg-up@10.1.0:
dependencies:
find-up: 6.3.0
read-pkg: 8.1.0
- type-fest: 4.21.0
+ type-fest: 4.25.0
read-pkg@8.1.0:
dependencies:
'@types/normalize-package-data': 2.4.4
normalize-package-data: 6.0.2
parse-json: 7.1.1
- type-fest: 4.21.0
+ type-fest: 4.25.0
readdirp@3.6.0:
dependencies:
@@ -4223,6 +5146,12 @@ snapshots:
resolve.exports@2.0.2: {}
+ resolve@1.22.8:
+ dependencies:
+ is-core-module: 2.15.0
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
reusify@1.0.4: {}
rfdc@1.4.1: {}
@@ -4231,41 +5160,45 @@ snapshots:
dependencies:
glob: 7.2.3
- rimraf@6.0.0:
+ rimraf@6.0.1:
dependencies:
glob: 11.0.0
+ package-json-from-dist: 1.0.0
- rollup@4.18.0:
+ rollup@4.21.0:
dependencies:
'@types/estree': 1.0.5
optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.18.0
- '@rollup/rollup-android-arm64': 4.18.0
- '@rollup/rollup-darwin-arm64': 4.18.0
- '@rollup/rollup-darwin-x64': 4.18.0
- '@rollup/rollup-linux-arm-gnueabihf': 4.18.0
- '@rollup/rollup-linux-arm-musleabihf': 4.18.0
- '@rollup/rollup-linux-arm64-gnu': 4.18.0
- '@rollup/rollup-linux-arm64-musl': 4.18.0
- '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0
- '@rollup/rollup-linux-riscv64-gnu': 4.18.0
- '@rollup/rollup-linux-s390x-gnu': 4.18.0
- '@rollup/rollup-linux-x64-gnu': 4.18.0
- '@rollup/rollup-linux-x64-musl': 4.18.0
- '@rollup/rollup-win32-arm64-msvc': 4.18.0
- '@rollup/rollup-win32-ia32-msvc': 4.18.0
- '@rollup/rollup-win32-x64-msvc': 4.18.0
+ '@rollup/rollup-android-arm-eabi': 4.21.0
+ '@rollup/rollup-android-arm64': 4.21.0
+ '@rollup/rollup-darwin-arm64': 4.21.0
+ '@rollup/rollup-darwin-x64': 4.21.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.21.0
+ '@rollup/rollup-linux-arm-musleabihf': 4.21.0
+ '@rollup/rollup-linux-arm64-gnu': 4.21.0
+ '@rollup/rollup-linux-arm64-musl': 4.21.0
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.21.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.21.0
+ '@rollup/rollup-linux-s390x-gnu': 4.21.0
+ '@rollup/rollup-linux-x64-gnu': 4.21.0
+ '@rollup/rollup-linux-x64-musl': 4.21.0
+ '@rollup/rollup-win32-arm64-msvc': 4.21.0
+ '@rollup/rollup-win32-ia32-msvc': 4.21.0
+ '@rollup/rollup-win32-x64-msvc': 4.21.0
fsevents: 2.3.3
run-parallel@1.2.0:
dependencies:
queue-microtask: 1.2.3
+ runtypes@6.7.0:
+ optional: true
+
safe-buffer@5.2.1: {}
safer-buffer@2.1.2: {}
- semver@7.6.2: {}
+ semver@7.6.3: {}
send@0.18.0:
dependencies:
@@ -4311,6 +5244,8 @@ snapshots:
shebang-regex@3.0.0: {}
+ shell-quote@1.8.1: {}
+
side-channel@1.0.6:
dependencies:
call-bind: 1.0.7
@@ -4328,6 +5263,11 @@ snapshots:
source-map-js@1.2.0: {}
+ source-map-support@0.5.21:
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
source-map@0.6.1: {}
source-map@0.8.0-beta.0:
@@ -4395,12 +5335,15 @@ snapshots:
dependencies:
'@jridgewell/gen-mapping': 0.3.5
commander: 4.1.1
- glob: 10.4.3
+ glob: 10.4.5
lines-and-columns: 1.2.4
mz: 2.7.0
pirates: 4.0.6
ts-interface-checker: 0.1.13
+ superstruct@1.0.4:
+ optional: true
+
supports-color@5.5.0:
dependencies:
has-flag: 3.0.0
@@ -4409,6 +5352,8 @@ snapshots:
dependencies:
has-flag: 4.0.0
+ supports-preserve-symlinks-flag@1.0.0: {}
+
text-extensions@2.4.0: {}
text-table@0.2.0: {}
@@ -4423,7 +5368,10 @@ snapshots:
through@2.3.8: {}
- tinybench@2.8.0: {}
+ tiny-case@1.0.3:
+ optional: true
+
+ tinybench@2.9.0: {}
tinypool@1.0.0: {}
@@ -4437,47 +5385,57 @@ snapshots:
toidentifier@1.0.1: {}
+ toposort@2.0.2:
+ optional: true
+
+ tr46@0.0.3: {}
+
tr46@1.0.1:
dependencies:
punycode: 2.3.1
tree-kill@1.2.2: {}
- ts-api-utils@1.3.0(typescript@5.5.3):
+ ts-api-utils@1.3.0(typescript@5.5.4):
dependencies:
- typescript: 5.5.3
+ typescript: 5.5.4
ts-interface-checker@0.1.13: {}
tslib@2.6.3: {}
- tsup@8.1.0(postcss@8.4.39)(typescript@5.5.3):
+ tsup@8.2.4(@swc/core@1.7.11)(postcss@8.4.41)(tsx@4.17.0)(typescript@5.5.4):
dependencies:
- bundle-require: 4.2.1(esbuild@0.21.5)
+ bundle-require: 5.0.0(esbuild@0.23.1)
cac: 6.7.14
chokidar: 3.6.0
- debug: 4.3.5
- esbuild: 0.21.5
+ consola: 3.2.3
+ debug: 4.3.6
+ esbuild: 0.23.1
execa: 5.1.1
globby: 11.1.0
joycon: 3.1.1
- postcss-load-config: 4.0.2(postcss@8.4.39)
+ picocolors: 1.0.1
+ postcss-load-config: 6.0.1(postcss@8.4.41)(tsx@4.17.0)
resolve-from: 5.0.0
- rollup: 4.18.0
+ rollup: 4.21.0
source-map: 0.8.0-beta.0
sucrase: 3.35.0
tree-kill: 1.2.2
optionalDependencies:
- postcss: 8.4.39
- typescript: 5.5.3
+ '@swc/core': 1.7.11
+ postcss: 8.4.41
+ typescript: 5.5.4
transitivePeerDependencies:
+ - jiti
- supports-color
- - ts-node
+ - tsx
+ - yaml
- tsx@4.16.2:
+ tsx@4.17.0:
dependencies:
- esbuild: 0.21.5
- get-tsconfig: 4.7.5
+ esbuild: 0.23.1
+ get-tsconfig: 4.7.6
optionalDependencies:
fsevents: 2.3.3
@@ -4485,22 +5443,27 @@ snapshots:
dependencies:
prelude-ls: 1.2.1
+ type-detect@4.1.0: {}
+
type-fest@0.20.2: {}
+ type-fest@2.19.0:
+ optional: true
+
type-fest@3.13.1: {}
- type-fest@4.21.0: {}
+ type-fest@4.25.0: {}
type-is@1.6.18:
dependencies:
media-typer: 0.3.0
mime-types: 2.1.35
- typescript@5.5.3: {}
+ typescript@5.5.4: {}
- ufo@1.5.3: {}
+ ufo@1.5.4: {}
- uglify-js@3.18.0:
+ uglify-js@3.19.2:
optional: true
uid-safe@2.1.5:
@@ -4511,11 +5474,13 @@ snapshots:
undici-types@5.26.5: {}
+ undici-types@6.19.6: {}
+
undici@5.28.4:
dependencies:
'@fastify/busboy': 2.1.1
- unenv@1.9.0:
+ unenv@1.10.0:
dependencies:
consola: 3.2.3
defu: 6.1.4
@@ -4525,6 +5490,13 @@ snapshots:
unpipe@1.0.0: {}
+ unplugin@1.12.2:
+ dependencies:
+ acorn: 8.12.1
+ chokidar: 3.6.0
+ webpack-sources: 3.2.3
+ webpack-virtual-modules: 0.6.2
+
uri-js@4.4.1:
dependencies:
punycode: 2.3.1
@@ -4533,6 +5505,9 @@ snapshots:
utils-merge@1.0.1: {}
+ valibot@0.31.0-rc.0:
+ optional: true
+
validate-npm-package-license@3.0.4:
dependencies:
spdx-correct: 3.2.0
@@ -4540,68 +5515,70 @@ snapshots:
vary@1.1.2: {}
- vite-node@2.0.2(@types/node@20.14.10):
+ vite-node@2.0.5(@types/node@20.16.0):
dependencies:
cac: 6.7.14
- debug: 4.3.5
+ debug: 4.3.6
pathe: 1.1.2
tinyrainbow: 1.2.0
- vite: 5.3.3(@types/node@20.14.10)
+ vite: 5.4.1(@types/node@20.16.0)
transitivePeerDependencies:
- '@types/node'
- less
- lightningcss
- sass
+ - sass-embedded
- stylus
- sugarss
- supports-color
- terser
- vite@5.3.3(@types/node@18.19.39):
+ vite@5.4.1(@types/node@18.19.44):
dependencies:
- esbuild: 0.21.5
- postcss: 8.4.39
- rollup: 4.18.0
+ esbuild: 0.23.1
+ postcss: 8.4.41
+ rollup: 4.21.0
optionalDependencies:
- '@types/node': 18.19.39
+ '@types/node': 18.19.44
fsevents: 2.3.3
- vite@5.3.3(@types/node@20.14.10):
+ vite@5.4.1(@types/node@20.16.0):
dependencies:
- esbuild: 0.21.5
- postcss: 8.4.39
- rollup: 4.18.0
+ esbuild: 0.23.1
+ postcss: 8.4.41
+ rollup: 4.21.0
optionalDependencies:
- '@types/node': 20.14.10
+ '@types/node': 20.16.0
fsevents: 2.3.3
- vitest@2.0.2(@types/node@20.14.10):
+ vitest@2.0.5(@types/node@20.16.0):
dependencies:
'@ampproject/remapping': 2.3.0
- '@vitest/expect': 2.0.2
- '@vitest/pretty-format': 2.0.2
- '@vitest/runner': 2.0.2
- '@vitest/snapshot': 2.0.2
- '@vitest/spy': 2.0.2
- '@vitest/utils': 2.0.2
+ '@vitest/expect': 2.0.5
+ '@vitest/pretty-format': 2.0.5
+ '@vitest/runner': 2.0.5
+ '@vitest/snapshot': 2.0.5
+ '@vitest/spy': 2.0.5
+ '@vitest/utils': 2.0.5
chai: 5.1.1
- debug: 4.3.5
+ debug: 4.3.6
execa: 8.0.1
- magic-string: 0.30.10
+ magic-string: 0.30.11
pathe: 1.1.2
std-env: 3.7.0
- tinybench: 2.8.0
+ tinybench: 2.9.0
tinypool: 1.0.0
tinyrainbow: 1.2.0
- vite: 5.3.3(@types/node@20.14.10)
- vite-node: 2.0.2(@types/node@20.14.10)
+ vite: 5.4.1(@types/node@20.16.0)
+ vite-node: 2.0.5(@types/node@20.16.0)
why-is-node-running: 2.3.0
optionalDependencies:
- '@types/node': 20.14.10
+ '@types/node': 20.16.0
transitivePeerDependencies:
- less
- lightningcss
- sass
+ - sass-embedded
- stylus
- sugarss
- supports-color
@@ -4611,12 +5588,23 @@ snapshots:
dependencies:
chalk: 4.1.2
commander: 9.5.0
- debug: 4.3.5
+ debug: 4.3.6
transitivePeerDependencies:
- supports-color
+ webidl-conversions@3.0.1: {}
+
webidl-conversions@4.0.2: {}
+ webpack-sources@3.2.3: {}
+
+ webpack-virtual-modules@0.6.2: {}
+
+ whatwg-url@5.0.0:
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+
whatwg-url@7.1.0:
dependencies:
lodash.sortby: 4.7.0
@@ -4636,13 +5624,13 @@ snapshots:
wordwrap@1.0.0: {}
- workerd@1.20240701.0:
+ workerd@1.20240806.0:
optionalDependencies:
- '@cloudflare/workerd-darwin-64': 1.20240701.0
- '@cloudflare/workerd-darwin-arm64': 1.20240701.0
- '@cloudflare/workerd-linux-64': 1.20240701.0
- '@cloudflare/workerd-linux-arm64': 1.20240701.0
- '@cloudflare/workerd-windows-64': 1.20240701.0
+ '@cloudflare/workerd-darwin-64': 1.20240806.0
+ '@cloudflare/workerd-darwin-arm64': 1.20240806.0
+ '@cloudflare/workerd-linux-64': 1.20240806.0
+ '@cloudflare/workerd-linux-arm64': 1.20240806.0
+ '@cloudflare/workerd-windows-64': 1.20240806.0
wrap-ansi@7.0.0:
dependencies:
@@ -4660,8 +5648,6 @@ snapshots:
ws@8.18.0: {}
- yaml@2.4.5: {}
-
yocto-queue@0.1.0: {}
yocto-queue@1.1.1: {}
@@ -4672,9 +5658,17 @@ snapshots:
mustache: 4.2.0
stacktracey: 2.1.8
+ yup@1.4.0:
+ dependencies:
+ property-expr: 2.0.6
+ tiny-case: 1.0.3
+ toposort: 2.0.2
+ type-fest: 2.19.0
+ optional: true
+
zod@3.23.8: {}
zx@8.1.4:
optionalDependencies:
'@types/fs-extra': 11.0.4
- '@types/node': 20.14.10
+ '@types/node': 20.16.0
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 8271c70..273af6f 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -1,3 +1,5 @@
packages:
- "packages/*"
+ - "examples/*"
+ - "tests-examples/*"
- "."
diff --git a/tests-examples/tests-tool/.test-dev.test.ts b/tests-examples/tests-tool/.test-dev.test.ts
new file mode 100644
index 0000000..3dfdb12
--- /dev/null
+++ b/tests-examples/tests-tool/.test-dev.test.ts
@@ -0,0 +1,21 @@
+export { testRun };
+
+import { expect, fetch, getServerUrl, run, test } from "@brillout/test-e2e";
+
+function testRun(cmd: `pnpm run dev`) {
+ run(cmd, {
+ doNotFailOnWarning: true,
+ serverIsReadyMessage: "ready",
+ });
+
+ test("/", async () => {
+ const response = await fetch(getServerUrl() + "/");
+
+ const content = await response.text();
+
+ expect(content).toContain('"something"');
+ expect(response.headers.has("x-custom-header")).toBe(true);
+ });
+}
+
+testRun("pnpm run dev");
diff --git a/tests-examples/tests-tool/package.json b/tests-examples/tests-tool/package.json
new file mode 100644
index 0000000..0a23bab
--- /dev/null
+++ b/tests-examples/tests-tool/package.json
@@ -0,0 +1,36 @@
+{
+ "name": "@universal-middleware-tests/tool",
+ "version": "0.0.0",
+ "private": true,
+ "type": "module",
+ "author": "Joël Charles ",
+ "repository": "https://github.com/magne4000/universal-handler",
+ "license": "MIT",
+ "scripts": {
+ "dev": "vite --port 3000",
+ "test:e2e": "test-e2e",
+ "test:types": "vitest --typecheck",
+ "test": "run-s \"test:types run\" test:e2e",
+ "test:typecheck": "tsc -p tsconfig.json --noEmit"
+ },
+ "devDependencies": {
+ "@brillout/test-e2e": "^0.5.34",
+ "@hono/vite-dev-server": "^0.14.0",
+ "@types/node": "^20.14.10",
+ "@universal-middleware-examples/tool": "workspace:*",
+ "@universal-middleware/core": "link:packages/core",
+ "@universal-middleware/express": "link:packages/adapter-express",
+ "@universal-middleware/hattip": "link:packages/adapter-hattip",
+ "@universal-middleware/hono": "link:packages/adapter-hono",
+ "@universal-middleware/webroute": "link:packages/adapter-webroute",
+ "hono": "^4.5.6",
+ "npm-run-all2": "^6.2.2",
+ "playwright": "^1.46.1",
+ "rimraf": "^6.0.0",
+ "tsx": "^4.17.0",
+ "typescript": "^5.5.4",
+ "vite": "^5.4.1",
+ "vitest": "^2.0.5"
+ },
+ "sideEffects": false
+}
diff --git a/tests-examples/tests-tool/src/hono-entry.ts b/tests-examples/tests-tool/src/hono-entry.ts
new file mode 100644
index 0000000..ecb841d
--- /dev/null
+++ b/tests-examples/tests-tool/src/hono-entry.ts
@@ -0,0 +1,12 @@
+import { Hono } from "hono";
+import contextMiddleware from "@universal-middleware-examples/tool/middlewares/context-middleware-hono";
+import headersMiddleware from "@universal-middleware-examples/tool/middlewares/headers-middleware-hono";
+import handler from "@universal-middleware-examples/tool/dummy-handler-hono";
+
+const app = new Hono();
+
+app.use(contextMiddleware("something"));
+app.use(headersMiddleware());
+app.get("/", handler());
+
+export default app;
diff --git a/tests-examples/tests-tool/test-type.test-d.ts b/tests-examples/tests-tool/test-type.test-d.ts
new file mode 100644
index 0000000..4833269
--- /dev/null
+++ b/tests-examples/tests-tool/test-type.test-d.ts
@@ -0,0 +1,81 @@
+import { expectTypeOf, test } from "vitest";
+import honoContextMiddleware from "@universal-middleware-examples/tool/middlewares/context-middleware-hono";
+import honoHeadersMiddleware from "@universal-middleware-examples/tool/middlewares/headers-middleware-hono";
+import honoHandler from "@universal-middleware-examples/tool/dummy-handler-hono";
+import expressContextMiddleware from "@universal-middleware-examples/tool/middlewares/context-middleware-express";
+import expressHeadersMiddleware from "@universal-middleware-examples/tool/middlewares/headers-middleware-express";
+import expressHandler from "@universal-middleware-examples/tool/dummy-handler-express";
+import hattipContextMiddleware from "@universal-middleware-examples/tool/middlewares/context-middleware-hattip";
+import hattipHeadersMiddleware from "@universal-middleware-examples/tool/middlewares/headers-middleware-hattip";
+import hattipHandler from "@universal-middleware-examples/tool/dummy-handler-hattip";
+import webrouteContextMiddleware from "@universal-middleware-examples/tool/middlewares/context-middleware-webroute";
+import webrouteHeadersMiddleware from "@universal-middleware-examples/tool/middlewares/headers-middleware-webroute";
+import webrouteHandler from "@universal-middleware-examples/tool/dummy-handler-webroute";
+import contextMiddleware from "@universal-middleware-examples/tool/middlewares/context-middleware";
+import headersMiddleware from "@universal-middleware-examples/tool/middlewares/headers-middleware";
+import handler from "@universal-middleware-examples/tool/dummy-handler";
+import type { HonoHandler, HonoMiddleware } from "@universal-middleware/hono";
+import type {
+ HattipHandler,
+ HattipMiddleware,
+} from "@universal-middleware/hattip";
+import type {
+ NodeHandler,
+ NodeMiddleware,
+} from "@universal-middleware/express";
+import type {
+ WebrouteHandler,
+ WebrouteMiddleware,
+} from "@universal-middleware/webroute";
+import type {
+ UniversalHandler,
+ UniversalMiddleware,
+} from "@universal-middleware/core";
+
+test("hono", () => {
+ expectTypeOf(honoContextMiddleware).returns.toEqualTypeOf();
+ expectTypeOf(honoHeadersMiddleware).returns.toEqualTypeOf();
+ expectTypeOf(honoHandler).returns.toEqualTypeOf();
+});
+
+test("express", () => {
+ expectTypeOf(
+ expressContextMiddleware,
+ ).returns.toEqualTypeOf();
+ expectTypeOf(
+ expressHeadersMiddleware,
+ ).returns.toEqualTypeOf();
+ expectTypeOf(expressHandler).returns.toEqualTypeOf();
+});
+
+test("hattip", () => {
+ expectTypeOf(
+ hattipContextMiddleware,
+ ).returns.toEqualTypeOf();
+ expectTypeOf(
+ hattipHeadersMiddleware,
+ ).returns.toEqualTypeOf();
+ expectTypeOf(hattipHandler).returns.toEqualTypeOf();
+});
+
+test("webroute", () => {
+ expectTypeOf(webrouteContextMiddleware).returns.toEqualTypeOf<
+ WebrouteMiddleware
+ >();
+ expectTypeOf(webrouteHeadersMiddleware).returns.toEqualTypeOf<
+ WebrouteMiddleware<{ something?: string }, { something?: string }>
+ >();
+ expectTypeOf(webrouteHandler).returns.toEqualTypeOf<
+ WebrouteHandler
+ >();
+});
+
+test("generic", () => {
+ expectTypeOf(contextMiddleware).returns.toEqualTypeOf<
+ (req: Request, ctx: Universal.Context) => { something: string }
+ >();
+ expectTypeOf(headersMiddleware).returns.toEqualTypeOf<
+ UniversalMiddleware<{ something?: string }>
+ >();
+ expectTypeOf(handler).returns.toEqualTypeOf();
+});
diff --git a/tests-examples/tests-tool/tsconfig.json b/tests-examples/tests-tool/tsconfig.json
new file mode 100644
index 0000000..4082f16
--- /dev/null
+++ b/tests-examples/tests-tool/tsconfig.json
@@ -0,0 +1,3 @@
+{
+ "extends": "../../tsconfig.json"
+}
diff --git a/tests-examples/tests-tool/vite.config.ts b/tests-examples/tests-tool/vite.config.ts
new file mode 100644
index 0000000..298c49e
--- /dev/null
+++ b/tests-examples/tests-tool/vite.config.ts
@@ -0,0 +1,22 @@
+import devServer from "@hono/vite-dev-server";
+import { defineConfig, type Plugin } from "vite";
+
+export default defineConfig({
+ plugins: [
+ devServer({
+ entry: "src/hono-entry.ts",
+
+ exclude: [
+ /^\/@.+$/,
+ /.*\.(ts|tsx|vue)($|\?)/,
+ /.*\.(s?css|less)($|\?)/,
+ /^\/favicon\.ico$/,
+ /.*\.(svg|png)($|\?)/,
+ /^\/(public|assets|static)\/.+/,
+ /^\/node_modules\/.*/,
+ ],
+
+ injectClientScript: false,
+ }) as Plugin,
+ ],
+});
diff --git a/tests-examples/tests-tool/vitest.config.ts b/tests-examples/tests-tool/vitest.config.ts
new file mode 100644
index 0000000..3a89b41
--- /dev/null
+++ b/tests-examples/tests-tool/vitest.config.ts
@@ -0,0 +1,7 @@
+import { defineConfig } from "vitest/config";
+
+export default defineConfig({
+ test: {
+ include: [],
+ },
+});