From 9d0a383c0a933969a44f20f4f47a7991eadd68ce Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Sun, 27 Aug 2023 21:55:32 +0200 Subject: [PATCH 01/20] chore(release): v2.6.2 --- CHANGELOG.md | 29 +++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed0ea8c9f8..4ee9f7a9bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,35 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## v2.6.2 + +[compare changes](https://github.com/unjs/nitro/compare/v2.6.1...v2.6.2) + +### 🩹 Fixes + +- Use new h3 generics for `defineCachedEventHandler` ([#1640](https://github.com/unjs/nitro/pull/1640)) +- **aws-lambda, netlify:** Add `isBase64Encoded` response field ([#1645](https://github.com/unjs/nitro/pull/1645)) +- Exclude typed body from `cachedEventHandler` ([#1647](https://github.com/unjs/nitro/pull/1647)) +- **static:** Send immediate empty responses for 304 handling ([#1639](https://github.com/unjs/nitro/pull/1639)) + +### 🏡 Chore + +- **docs:** Update dependencies ([d4d622c2](https://github.com/unjs/nitro/commit/d4d622c2)) +- **docs:** Add hotfix for `micromark` import issue ([b1e676e6](https://github.com/unjs/nitro/commit/b1e676e6)) +- Update lockfile ([fffd8724](https://github.com/unjs/nitro/commit/fffd8724)) +- Update `listhen` ([62ac3065](https://github.com/unjs/nitro/commit/62ac3065)) + +### ✅ Tests + +- Add test for prerender ignored `data:` urls ([#1431](https://github.com/unjs/nitro/pull/1431)) + +### ❤️ Contributors + +- Pooya Parsa ([@pi0](http://github.com/pi0)) +- Markthree ([@markthree](http://github.com/markthree)) +- Daniel Roe +- Azcray + ## v2.6.1 [compare changes](https://github.com/unjs/nitro/compare/v2.6.0...v2.6.1) diff --git a/package.json b/package.json index 0b648f0997..9cb5de7e28 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nitropack", - "version": "2.6.1", + "version": "2.6.2", "description": "Build and Deploy Universal JavaScript Servers", "repository": "unjs/nitro", "license": "MIT", From 88e79fcdb2a024c96a3d1fd272d0acbff0405013 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 28 Aug 2023 11:08:41 +0200 Subject: [PATCH 02/20] chore(deps): update dependency listhen to ^1.4.3 (#1652) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 9cb5de7e28..bcca21cb72 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "jiti": "^1.19.3", "klona": "^2.0.6", "knitwork": "^1.0.0", - "listhen": "^1.4.2", + "listhen": "^1.4.3", "magic-string": "^0.30.3", "mime": "^3.0.0", "mlly": "^1.4.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 44210143f5..edae42648e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,8 +121,8 @@ importers: specifier: ^1.0.0 version: 1.0.0 listhen: - specifier: ^1.4.2 - version: 1.4.2 + specifier: ^1.4.3 + version: 1.4.3 magic-string: specifier: ^0.30.3 version: 0.30.3 @@ -5053,8 +5053,8 @@ packages: dev: true optional: true - /listhen@1.4.2: - resolution: {integrity: sha512-yWWwLYcuG1bEOboK+sGTMYp0yc5KIcVsGmADO8dkMdoRC4gQ7jGGZR6PUI/HvtnuF/QOt3VflWE75uGeU776BQ==} + /listhen@1.4.3: + resolution: {integrity: sha512-qVWeM07q7q5R3jwB+Zm603khFQ3yq5OLmAwLIlE3Ftv1K9yfwx4R6/tbCkkr0/SrIyKnHK9xY1C6j03uGOSnIQ==} hasBin: true dependencies: '@parcel/watcher': 2.3.0 @@ -6999,7 +6999,7 @@ packages: destr: 2.0.1 h3: 1.8.1 ioredis: 5.3.2 - listhen: 1.4.2 + listhen: 1.4.3 lru-cache: 10.0.1 mri: 1.2.0 node-fetch-native: 1.4.0 From 4ac686ad8b3c747841a5ca190f7592388493bc29 Mon Sep 17 00:00:00 2001 From: Yuichi Takebe <15245958+y-takebe@users.noreply.github.com> Date: Mon, 28 Aug 2023 22:53:54 +0900 Subject: [PATCH 03/20] fix(firebase): apply region for gen2 deployments (#1657) --- src/runtime/entries/firebase-gen-2.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/runtime/entries/firebase-gen-2.ts b/src/runtime/entries/firebase-gen-2.ts index 4aabb4063e..42686d7c1a 100644 --- a/src/runtime/entries/firebase-gen-2.ts +++ b/src/runtime/entries/firebase-gen-2.ts @@ -1,4 +1,5 @@ import "#internal/nitro/virtual/polyfill"; +import { setGlobalOptions } from "firebase-functions/v2/options"; import { onRequest } from "firebase-functions/v2/https"; import { toNodeListener } from "h3"; import { nitroApp } from "../app"; @@ -6,6 +7,12 @@ import { useAppConfig } from "#internal/nitro"; const firebaseConfig = useAppConfig().nitro.firebase; +if (firebaseConfig.httpsOptions?.region) { + setGlobalOptions({ + region: firebaseConfig.httpsOptions.region, + }); +} + export const __firebaseServerFunctionName__ = onRequest( { // Must be set to public to allow all public requests by default From 670fb90c938502581f48b88e2eaa0891c7e80dca Mon Sep 17 00:00:00 2001 From: Heb Date: Tue, 29 Aug 2023 17:13:55 +0700 Subject: [PATCH 04/20] fix(cloudflare-pages): autodetect static preset (#1659) --- src/presets/cloudflare-pages.ts | 21 ++++++++++----------- src/utils/index.ts | 1 + 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/presets/cloudflare-pages.ts b/src/presets/cloudflare-pages.ts index dae371026c..3ae3f00140 100644 --- a/src/presets/cloudflare-pages.ts +++ b/src/presets/cloudflare-pages.ts @@ -138,7 +138,7 @@ function comparePaths(a: string, b: string) { async function writeCFPagesHeaders(nitro: Nitro) { const headersPath = join(nitro.options.output.publicDir, "_headers"); - let contents = ""; + const contents = []; const rules = Object.entries(nitro.options.routeRules).sort( (a, b) => b[0].split(/\/(?!\*)/).length - a[0].split(/\/(?!\*)/).length @@ -154,7 +154,7 @@ async function writeCFPagesHeaders(nitro: Nitro) { ), ].join("\n"); - contents += headers + "\n"; + contents.push(headers); } if (existsSync(headersPath)) { @@ -168,10 +168,10 @@ async function writeCFPagesHeaders(nitro: Nitro) { nitro.logger.info( "Adding Nitro fallback to `_headers` to handle all unmatched routes." ); - contents = currentHeaders + "\n" + contents; + contents.unshift(currentHeaders); } - await fsp.writeFile(headersPath, contents); + await fsp.writeFile(headersPath, contents.join("\n")); } async function writeCFPagesRedirects(nitro: Nitro) { @@ -181,8 +181,7 @@ async function writeCFPagesRedirects(nitro: Nitro) { ) ? "/* /404.html 404" : ""; - let contents = staticFallback; - + const contents = [staticFallback]; const rules = Object.entries(nitro.options.routeRules).sort( (a, b) => a[0].split(/\/(?!\*)/).length - b[0].split(/\/(?!\*)/).length ); @@ -191,9 +190,9 @@ async function writeCFPagesRedirects(nitro: Nitro) { ([_, routeRules]) => routeRules.redirect )) { const code = routeRules.redirect.statusCode; - contents = - `${key.replace("/**", "/*")}\t${routeRules.redirect.to}\t${code}\n` + - contents; + contents.unshift( + `${key.replace("/**", "/*")}\t${routeRules.redirect.to}\t${code}` + ); } if (existsSync(redirectsPath)) { @@ -207,8 +206,8 @@ async function writeCFPagesRedirects(nitro: Nitro) { nitro.logger.info( "Adding Nitro fallback to `_redirects` to handle all unmatched routes." ); - contents = currentRedirects + "\n" + contents; + contents.unshift(currentRedirects); } - await fsp.writeFile(redirectsPath, contents); + await fsp.writeFile(redirectsPath, contents.join("\n")); } diff --git a/src/utils/index.ts b/src/utils/index.ts index 279bb4559d..c2d84981f5 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -116,6 +116,7 @@ const autodetectableStaticProviders: Partial< > = { netlify: "netlify-static", vercel: "vercel-static", + cloudflare_pages: "cloudflare-pages-static", }; export function detectTarget(options: { static?: boolean } = {}) { From 19916e0e49986c94418dd580850064d2c20fb44c Mon Sep 17 00:00:00 2001 From: Utsob Roy Date: Tue, 29 Aug 2023 16:15:46 +0600 Subject: [PATCH 05/20] doc: fix variable name for unix socket (#1661) --- docs/content/2.deploy/1.node.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/2.deploy/1.node.md b/docs/content/2.deploy/1.node.md index d08611e047..df3dedac34 100644 --- a/docs/content/2.deploy/1.node.md +++ b/docs/content/2.deploy/1.node.md @@ -38,7 +38,7 @@ You can customize server behavior using following environment variables: - `NITRO_PORT` or `PORT` (defaults to `3000`) - `NITRO_HOST` or `HOST` -- `NITRO_SOCKET` - if provided (a path to the desired socket file) the service will be served over the provided UNIX socket. +- `NITRO_UNIX_SOCKET` - if provided (a path to the desired socket file) the service will be served over the provided UNIX socket. - `NITRO_SSL_CERT` and `NITRO_SSL_KEY` - if both are present, this will launch the server in HTTPS mode. In the vast majority of cases, this should not be used other than for testing, and the Nitro server should be run behind a reverse proxy like nginx or Cloudflare which terminates SSL. - `NITRO_SHUTDOWN` - Enables the graceful shutdown feature when set to `'true'`. If it's set to `'false'`, the graceful shutdown is bypassed to speed up the development process. Defaults to `'false'`. - `NITRO_SHUTDOWN_SIGNALS` - Allows you to specify which signals should be handled. Each signal should be separated with a space. Defaults to `'SIGINT SIGTERM'`. From 2a33f1f1916c180eefd6872bc467cbcbaa27d64f Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 29 Aug 2023 15:46:31 +0100 Subject: [PATCH 06/20] fix: resolve output dirs relative to `rootDir` (#1666) --- src/options.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/options.ts b/src/options.ts index 4a6302b2d9..585d3ffba7 100644 --- a/src/options.ts +++ b/src/options.ts @@ -216,15 +216,18 @@ export async function loadOptions( } options.output.dir = resolvePath( options.output.dir || NitroDefaults.output.dir, - options + options, + options.rootDir ); options.output.publicDir = resolvePath( options.output.publicDir || NitroDefaults.output.publicDir, - options + options, + options.rootDir ); options.output.serverDir = resolvePath( options.output.serverDir || NitroDefaults.output.serverDir, - options + options, + options.rootDir ); options.nodeModulesDirs.push(resolve(options.workspaceDir, "node_modules")); From f126cbfe25faf6eac445d09e27a016016674a2f3 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 29 Aug 2023 16:50:00 +0100 Subject: [PATCH 07/20] chore: tiny internal typo (#1668) --- src/build.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/build.ts b/src/build.ts index f99176cc16..cc13394b8d 100644 --- a/src/build.ts +++ b/src/build.ts @@ -507,7 +507,7 @@ async function _watch(nitro: Nitro, rollupConfig: RollupConfig) { ]); const watchReloadEvents = new Set(["add", "addDir", "unlink", "unlinkDir"]); - const reloadWacher = watch(watchPatterns, { ignoreInitial: true }).on( + const reloadWatcher = watch(watchPatterns, { ignoreInitial: true }).on( "all", (event) => { if (watchReloadEvents.has(event)) { @@ -518,7 +518,7 @@ async function _watch(nitro: Nitro, rollupConfig: RollupConfig) { nitro.hooks.hook("close", () => { rollupWatcher.close(); - reloadWacher.close(); + reloadWatcher.close(); }); nitro.hooks.hook("rollup:reload", () => reload()); From 83e980bdd83c4fa1f836cfb886ef8ef299d854e8 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 30 Aug 2023 16:54:57 +0100 Subject: [PATCH 08/20] fix(prerender): allow disabling html sub-folders (#1676) --- src/options.ts | 1 + src/prerender.ts | 6 +++++- src/types/nitro.ts | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/options.ts b/src/options.ts index 585d3ffba7..bd76b5bcd2 100644 --- a/src/options.ts +++ b/src/options.ts @@ -79,6 +79,7 @@ const NitroDefaults: NitroConfig = { errorHandler: "#internal/nitro/error", routeRules: {}, prerender: { + autoSubfolderIndex: true, concurrency: 1, interval: 0, failOnError: false, diff --git a/src/prerender.ts b/src/prerender.ts index a800ccc636..9bb7ca293d 100644 --- a/src/prerender.ts +++ b/src/prerender.ts @@ -214,8 +214,12 @@ export async function prerender(nitro: Nitro) { const isImplicitHTML = !route.endsWith(".html") && contentType.includes("html"); const routeWithIndex = route.endsWith("/") ? route + "index" : route; + const htmlPath = + route.endsWith("/") || nitro.options.prerender.autoSubfolderIndex + ? joinURL(route, "index.html") + : route + ".html"; _route.fileName = withoutBase( - isImplicitHTML ? joinURL(route, "index.html") : routeWithIndex, + isImplicitHTML ? htmlPath : routeWithIndex, nitro.options.baseURL ); // Allow overriding content-type in `prerender:generate` hook diff --git a/src/types/nitro.ts b/src/types/nitro.ts index 6055490476..054388e97a 100644 --- a/src/types/nitro.ts +++ b/src/types/nitro.ts @@ -283,6 +283,10 @@ export interface NitroOptions extends PresetOptions { errorHandler: string; devErrorHandler: NitroErrorHandler; prerender: { + /** + * Prerender HTML routes within subfolders (`/test` would produce `/test/index.html`) + */ + autoSubfolderIndex: boolean; concurrency: number; interval: number; crawlLinks: boolean; From 06e960dae55a0eb58b07ea534433d14495689faf Mon Sep 17 00:00:00 2001 From: Luke Nelson Date: Fri, 1 Sep 2023 18:19:45 +0100 Subject: [PATCH 09/20] fix(firebase): use correct key when importing firebase `httpsOptions` (#1663) --- src/runtime/entries/firebase-gen-2.ts | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/runtime/entries/firebase-gen-2.ts b/src/runtime/entries/firebase-gen-2.ts index 42686d7c1a..0770600a4c 100644 --- a/src/runtime/entries/firebase-gen-2.ts +++ b/src/runtime/entries/firebase-gen-2.ts @@ -1,5 +1,4 @@ import "#internal/nitro/virtual/polyfill"; -import { setGlobalOptions } from "firebase-functions/v2/options"; import { onRequest } from "firebase-functions/v2/https"; import { toNodeListener } from "h3"; import { nitroApp } from "../app"; @@ -7,17 +6,11 @@ import { useAppConfig } from "#internal/nitro"; const firebaseConfig = useAppConfig().nitro.firebase; -if (firebaseConfig.httpsOptions?.region) { - setGlobalOptions({ - region: firebaseConfig.httpsOptions.region, - }); -} - export const __firebaseServerFunctionName__ = onRequest( { // Must be set to public to allow all public requests by default invoker: "public", - ...firebaseConfig.httpOptions, + ...firebaseConfig.httpsOptions, }, toNodeListener(nitroApp.h3App) ); From 3315c996aca9fc37af2b920df4441959abcc8fb2 Mon Sep 17 00:00:00 2001 From: markthree <1801982702@qq.com> Date: Sat, 2 Sep 2023 01:22:13 +0800 Subject: [PATCH 10/20] chore: fix code comments (#1673) --- src/cli/commands/dev.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cli/commands/dev.ts b/src/cli/commands/dev.ts index 7f107dbf9b..1d18029c17 100644 --- a/src/cli/commands/dev.ts +++ b/src/cli/commands/dev.ts @@ -52,8 +52,8 @@ export default defineCommand({ ); await (diff.every((e) => hmrKeyRe.test(e.key)) - ? nitro.updateConfig(newConfig.config) // Full reload - : reload()); // Hot reload + ? nitro.updateConfig(newConfig.config) // Hot reload + : reload()); // Full reload }, }, } From ab157241e012ecde23562f064608a8e120660a7e Mon Sep 17 00:00:00 2001 From: Heb Date: Sat, 2 Sep 2023 02:55:37 +0700 Subject: [PATCH 11/20] test: update test for bun headers (#1684) --- test/tests.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/test/tests.ts b/test/tests.ts index 0bc225afcb..2b0f5961df 100644 --- a/test/tests.ts +++ b/test/tests.ts @@ -542,6 +542,7 @@ export function testNitro( "nitro-dev", "vercel", nodeVersion < 18 && "deno-server", + nodeVersion < 18 && "bun", ].filter(Boolean); if (notSplitingPresets.includes(ctx.preset)) { expectedCookies = @@ -550,7 +551,7 @@ export function testNitro( : ["foo=bar, bar=baz", "test=value; Path=/", "test2=value; Path=/"]; } - // TODO: verce-ledge joins all cookies for some reason! + // TODO: vercel-edge joins all cookies for some reason! if (ctx.preset === "vercel-edge") { expectedCookies = "foo=bar, bar=baz, test=value; Path=/, test2=value; Path=/"; @@ -562,12 +563,6 @@ export function testNitro( "foo=bar, bar=baz,test=value; Path=/,test2=value; Path=/"; } - // TODO: Bun does not handles set-cookie at all - // https://github.com/unjs/nitro/issues/1461 - if (["bun"].includes(ctx.preset)) { - return; - } - expect(headers["set-cookie"]).toMatchObject(expectedCookies); }); }); From 0c359112ff47492e49d7012fc3fe9930be6bd2c9 Mon Sep 17 00:00:00 2001 From: Rajeev R Sharma Date: Tue, 5 Sep 2023 17:54:47 +0530 Subject: [PATCH 12/20] docs(render-com): add note about node version (#1693) --- docs/content/2.deploy/providers/render.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/2.deploy/providers/render.md b/docs/content/2.deploy/providers/render.md index 53a51cbb18..1f7cfcc13f 100644 --- a/docs/content/2.deploy/providers/render.md +++ b/docs/content/2.deploy/providers/render.md @@ -16,7 +16,7 @@ Nitro supports deploying on [Render](https://render.com/) with minimal configura 1. Update the start command to `node .output/server/index.mjs` -1. Click 'Advanced' and add an environment variable with `NITRO_PRESET` set to `render_com`. +1. Click 'Advanced' and add an environment variable with `NITRO_PRESET` set to `render_com`. You may also need to add a `NODE_VERSION` environment variable set to `18` for the build to succeed ([docs](https://render.com/docs/node-version)). 1. Click 'Create Web Service'. From eac144a131a366d2cf04fff8de5971ab431dfb43 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Sep 2023 16:19:38 +0200 Subject: [PATCH 13/20] chore(deps): update actions/checkout action to v4 (#1689) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/autofix.yml | 2 +- .github/workflows/ci.yml | 4 ++-- .github/workflows/codeql.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index 6f57a90a36..302558f8c0 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -12,7 +12,7 @@ jobs: autofix: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: corepack enable - uses: actions/setup-node@v3 with: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ff37a0a3e6..d6950136d2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - run: corepack enable @@ -31,7 +31,7 @@ jobs: os: [ubuntu-latest, windows-latest] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - run: corepack enable diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 1fd147037a..f14400d427 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize CodeQL uses: github/codeql-action/init@v2 From 0099df2beb6f34c3e4b4b26ac3d731c7f26b3240 Mon Sep 17 00:00:00 2001 From: Luke Nelson Date: Tue, 5 Sep 2023 15:20:09 +0100 Subject: [PATCH 14/20] docs: add instructions for using nuxt edge release channel (#1688) --- docs/content/1.guide/0.getting-started.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/docs/content/1.guide/0.getting-started.md b/docs/content/1.guide/0.getting-started.md index 252ef56b73..94bb52d7ea 100644 --- a/docs/content/1.guide/0.getting-started.md +++ b/docs/content/1.guide/0.getting-started.md @@ -92,7 +92,8 @@ Nitro offers an edge release channel that automatically releases for every commi You can opt-in to the edge release channel by updating your `package.json`: -```diff +::code-group +```diff [Nitro] { "devDependencies": { -- "nitropack": "^2.0.0" @@ -100,7 +101,20 @@ You can opt-in to the edge release channel by updating your `package.json`: } } ``` +```diff [Nuxt] +{ + "devDependencies": { +-- "nuxt": "^3.0.0" +++ "nuxt": "npm:nuxt3@latest" + } +} +``` +:: + +::alert +If you are using Nuxt, [use the Nuxt edge channel](https://nuxt.com/docs/guide/going-further/edge-channel#opting-into-the-edge-channel) as it already includes `nitropack-edge`. +:: -Remove an lockfile (`package-lock.json`, `yarn.lock`, or `pnpm-lock.yaml`) and reinstall the dependencies. +Remove any lockfile (`package-lock.json`, `yarn.lock`, or `pnpm-lock.yaml`) and reinstall the dependencies. From a2283729d465fb1e606d1ad131264a7df7640593 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Thu, 7 Sep 2023 12:16:06 +0200 Subject: [PATCH 15/20] fix: await on `send()` calls (#1701) --- src/dev/error.ts | 2 +- src/runtime/error.ts | 4 ++-- src/runtime/renderer.ts | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/dev/error.ts b/src/dev/error.ts index e1a26682ca..5ea19025fe 100644 --- a/src/dev/error.ts +++ b/src/dev/error.ts @@ -23,7 +23,7 @@ function errorHandler(error: any, event: H3Event) { ""; } - send( + return send( event, ` diff --git a/src/runtime/error.ts b/src/runtime/error.ts index ef88e18e82..6765d44d22 100644 --- a/src/runtime/error.ts +++ b/src/runtime/error.ts @@ -46,10 +46,10 @@ export default function (error, event) { if (isJsonRequest(event)) { setResponseHeader(event, "Content-Type", "application/json"); - send(event, JSON.stringify(errorObject)); + return send(event, JSON.stringify(errorObject)); } else { setResponseHeader(event, "Content-Type", "text/html"); - send(event, renderHTMLError(errorObject)); + return send(event, renderHTMLError(errorObject)); } }; diff --git a/src/runtime/renderer.ts b/src/runtime/renderer.ts index 71c9b6889d..0f47bce248 100644 --- a/src/runtime/renderer.ts +++ b/src/runtime/renderer.ts @@ -25,11 +25,10 @@ export function defineRenderHandler(handler: RenderHandler) { // TODO: Use serve-placeholder if (event.path.endsWith("/favicon.ico")) { setResponseHeader(event, "Content-Type", "image/x-icon"); - send( + return send( event, "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" ); - return; } const response = await handler(event); From 3134ba6df3694cea26fad4064bbdf95b4b1e1fdc Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Thu, 7 Sep 2023 18:03:40 +0200 Subject: [PATCH 16/20] chore: update dependencies --- package.json | 24 +- pnpm-lock.yaml | 779 ++++++++++++++++++++++++------------------------- 2 files changed, 400 insertions(+), 403 deletions(-) diff --git a/package.json b/package.json index bcca21cb72..bb9ff31f44 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "@rollup/pluginutils": "^5.0.4", "@types/http-proxy": "^1.17.11", "@vercel/nft": "^0.23.1", - "archiver": "^6.0.0", + "archiver": "^6.0.1", "c12": "^1.4.2", "chalk": "^5.3.0", "chokidar": "^3.5.3", @@ -92,24 +92,24 @@ "hookable": "^5.5.3", "httpxy": "^0.1.4", "is-primitive": "^3.0.1", - "jiti": "^1.19.3", + "jiti": "^1.20.0", "klona": "^2.0.6", "knitwork": "^1.0.0", - "listhen": "^1.4.3", + "listhen": "^1.4.8", "magic-string": "^0.30.3", "mime": "^3.0.0", - "mlly": "^1.4.1", + "mlly": "^1.4.2", "mri": "^1.2.0", "node-fetch-native": "^1.4.0", "ofetch": "^1.3.3", "ohash": "^1.1.3", - "openapi-typescript": "^6.5.3", + "openapi-typescript": "^6.5.4", "pathe": "^1.1.1", "perfect-debounce": "^1.0.0", "pkg-types": "^1.0.3", "pretty-bytes": "^6.1.1", "radix3": "^1.1.0", - "rollup": "^3.28.1", + "rollup": "^3.29.0", "rollup-plugin-visualizer": "^5.9.2", "scule": "^1.0.0", "semver": "^7.5.4", @@ -120,30 +120,30 @@ "uncrypto": "^0.1.3", "unctx": "^2.3.1", "unenv": "^1.7.4", - "unimport": "^3.2.0", + "unimport": "^3.3.0", "unstorage": "^1.9.0" }, "devDependencies": { "@azure/functions": "^3.5.1", - "@cloudflare/workers-types": "^4.20230821.0", + "@cloudflare/workers-types": "^4.20230904.0", "@types/aws-lambda": "^8.10.119", "@types/etag": "^1.8.1", "@types/fs-extra": "^11.0.1", "@types/node-fetch": "^2.6.4", - "@types/semver": "^7.5.0", + "@types/semver": "^7.5.1", "@types/serve-static": "^1.15.2", "@vitest/coverage-v8": "^0.34.3", "changelogen": "^0.5.5", - "edge-runtime": "^2.5.0", + "edge-runtime": "^2.5.1", "eslint": "^8.48.0", "eslint-config-unjs": "^0.2.1", "execa": "^8.0.1", "expect-type": "^0.16.0", "firebase-admin": "^11.10.1", "firebase-functions": "^4.4.1", - "get-port-please": "^3.0.2", + "get-port-please": "^3.1.1", "miniflare": "^2.14.1", - "prettier": "^3.0.2", + "prettier": "^3.0.3", "typescript": "^5.2.2", "unbuild": "^2.0.0", "undici": "^5.23.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index edae42648e..83c286a9da 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,31 +20,31 @@ importers: version: 2.0.2 '@rollup/plugin-alias': specifier: ^5.0.0 - version: 5.0.0(rollup@3.28.1) + version: 5.0.0(rollup@3.29.0) '@rollup/plugin-commonjs': specifier: ^25.0.4 - version: 25.0.4(rollup@3.28.1) + version: 25.0.4(rollup@3.29.0) '@rollup/plugin-inject': specifier: ^5.0.3 - version: 5.0.3(rollup@3.28.1) + version: 5.0.3(rollup@3.29.0) '@rollup/plugin-json': specifier: ^6.0.0 - version: 6.0.0(rollup@3.28.1) + version: 6.0.0(rollup@3.29.0) '@rollup/plugin-node-resolve': specifier: ^15.2.1 - version: 15.2.1(rollup@3.28.1) + version: 15.2.1(rollup@3.29.0) '@rollup/plugin-replace': specifier: ^5.0.2 - version: 5.0.2(rollup@3.28.1) + version: 5.0.2(rollup@3.29.0) '@rollup/plugin-terser': specifier: ^0.4.3 - version: 0.4.3(rollup@3.28.1) + version: 0.4.3(rollup@3.29.0) '@rollup/plugin-wasm': specifier: ^6.1.3 - version: 6.1.3(rollup@3.28.1) + version: 6.1.3(rollup@3.29.0) '@rollup/pluginutils': specifier: ^5.0.4 - version: 5.0.4(rollup@3.28.1) + version: 5.0.4(rollup@3.29.0) '@types/http-proxy': specifier: ^1.17.11 version: 1.17.11 @@ -52,8 +52,8 @@ importers: specifier: ^0.23.1 version: 0.23.1 archiver: - specifier: ^6.0.0 - version: 6.0.0 + specifier: ^6.0.1 + version: 6.0.1 c12: specifier: ^1.4.2 version: 1.4.2 @@ -112,8 +112,8 @@ importers: specifier: ^3.0.1 version: 3.0.1 jiti: - specifier: ^1.19.3 - version: 1.19.3 + specifier: ^1.20.0 + version: 1.20.0 klona: specifier: ^2.0.6 version: 2.0.6 @@ -121,8 +121,8 @@ importers: specifier: ^1.0.0 version: 1.0.0 listhen: - specifier: ^1.4.3 - version: 1.4.3 + specifier: ^1.4.8 + version: 1.4.8 magic-string: specifier: ^0.30.3 version: 0.30.3 @@ -130,8 +130,8 @@ importers: specifier: ^3.0.0 version: 3.0.0 mlly: - specifier: ^1.4.1 - version: 1.4.1 + specifier: ^1.4.2 + version: 1.4.2 mri: specifier: ^1.2.0 version: 1.2.0 @@ -145,8 +145,8 @@ importers: specifier: ^1.1.3 version: 1.1.3 openapi-typescript: - specifier: ^6.5.3 - version: 6.5.3 + specifier: ^6.5.4 + version: 6.5.4 pathe: specifier: ^1.1.1 version: 1.1.1 @@ -163,11 +163,11 @@ importers: specifier: ^1.1.0 version: 1.1.0 rollup: - specifier: ^3.28.1 - version: 3.28.1 + specifier: ^3.29.0 + version: 3.29.0 rollup-plugin-visualizer: specifier: ^5.9.2 - version: 5.9.2(rollup@3.28.1) + version: 5.9.2(rollup@3.29.0) scule: specifier: ^1.0.0 version: 1.0.0 @@ -196,8 +196,8 @@ importers: specifier: ^1.7.4 version: 1.7.4 unimport: - specifier: ^3.2.0 - version: 3.2.0(rollup@3.28.1) + specifier: ^3.3.0 + version: 3.3.0(rollup@3.29.0) unstorage: specifier: ^1.9.0 version: 1.9.0 @@ -206,8 +206,8 @@ importers: specifier: ^3.5.1 version: 3.5.1 '@cloudflare/workers-types': - specifier: ^4.20230821.0 - version: 4.20230821.0 + specifier: ^4.20230904.0 + version: 4.20230904.0 '@types/aws-lambda': specifier: ^8.10.119 version: 8.10.119 @@ -221,8 +221,8 @@ importers: specifier: ^2.6.4 version: 2.6.4 '@types/semver': - specifier: ^7.5.0 - version: 7.5.0 + specifier: ^7.5.1 + version: 7.5.1 '@types/serve-static': specifier: ^1.15.2 version: 1.15.2 @@ -233,8 +233,8 @@ importers: specifier: ^0.5.5 version: 0.5.5 edge-runtime: - specifier: ^2.5.0 - version: 2.5.0 + specifier: ^2.5.1 + version: 2.5.1 eslint: specifier: ^8.48.0 version: 8.48.0 @@ -254,14 +254,14 @@ importers: specifier: ^4.4.1 version: 4.4.1(firebase-admin@11.10.1) get-port-please: - specifier: ^3.0.2 - version: 3.0.2 + specifier: ^3.1.1 + version: 3.1.1 miniflare: specifier: ^2.14.1 version: 2.14.1 prettier: - specifier: ^3.0.2 - version: 3.0.2 + specifier: ^3.0.3 + version: 3.0.3 typescript: specifier: ^5.2.2 version: 5.2.2 @@ -355,11 +355,11 @@ packages: uuid: 8.3.2 dev: true - /@babel/code-frame@7.22.10: - resolution: {integrity: sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==} + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.22.10 + '@babel/highlight': 7.22.13 chalk: 2.4.2 dev: true @@ -368,20 +368,20 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.22.11: - resolution: {integrity: sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ==} + /@babel/core@7.22.15: + resolution: {integrity: sha512-PtZqMmgRrvj8ruoEOIwVA3yoF91O+Hgw9o7DAUTNBA6Mo2jpu31clx9a7Nz/9JznqetTR6zwfC4L3LAjKQXUwA==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.10 - '@babel/generator': 7.22.10 - '@babel/helper-compilation-targets': 7.22.10 - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.11) - '@babel/helpers': 7.22.11 - '@babel/parser': 7.22.11 - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.11 - '@babel/types': 7.22.11 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.22.15 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.22.15(@babel/core@7.22.15) + '@babel/helpers': 7.22.15 + '@babel/parser': 7.22.16 + '@babel/template': 7.22.15 + '@babel/traverse': 7.22.15 + '@babel/types': 7.22.15 convert-source-map: 1.9.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -391,22 +391,22 @@ packages: - supports-color dev: true - /@babel/generator@7.22.10: - resolution: {integrity: sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==} + /@babel/generator@7.22.15: + resolution: {integrity: sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.11 + '@babel/types': 7.22.15 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.19 jsesc: 2.5.2 dev: true - /@babel/helper-compilation-targets@7.22.10: - resolution: {integrity: sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==} + /@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} dependencies: '@babel/compat-data': 7.22.9 - '@babel/helper-validator-option': 7.22.5 + '@babel/helper-validator-option': 7.22.15 browserslist: 4.21.10 lru-cache: 5.1.1 semver: 6.3.1 @@ -421,50 +421,50 @@ packages: resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.5 - '@babel/types': 7.22.11 + '@babel/template': 7.22.15 + '@babel/types': 7.22.15 dev: true /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.11 + '@babel/types': 7.22.15 dev: true - /@babel/helper-module-imports@7.22.5: - resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.11 + '@babel/types': 7.22.15 dev: true - /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.11): - resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} + /@babel/helper-module-transforms@7.22.15(@babel/core@7.22.15): + resolution: {integrity: sha512-l1UiX4UyHSFsYt17iQ3Se5pQQZZHa22zyIXURmvkmLCD4t/aU+dvNWHatKac/D9Vm9UES7nvIqHs4jZqKviUmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.11 + '@babel/core': 7.22.15 '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-module-imports': 7.22.5 + '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.5 + '@babel/helper-validator-identifier': 7.22.15 dev: true /@babel/helper-simple-access@7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.11 + '@babel/types': 7.22.15 dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.11 + '@babel/types': 7.22.15 dev: true /@babel/helper-string-parser@7.22.5: @@ -472,83 +472,83 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-identifier@7.22.5: - resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} + /@babel/helper-validator-identifier@7.22.15: + resolution: {integrity: sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-option@7.22.5: - resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} engines: {node: '>=6.9.0'} dev: true - /@babel/helpers@7.22.11: - resolution: {integrity: sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg==} + /@babel/helpers@7.22.15: + resolution: {integrity: sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.11 - '@babel/types': 7.22.11 + '@babel/template': 7.22.15 + '@babel/traverse': 7.22.15 + '@babel/types': 7.22.15 transitivePeerDependencies: - supports-color dev: true - /@babel/highlight@7.22.10: - resolution: {integrity: sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==} + /@babel/highlight@7.22.13: + resolution: {integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==} engines: {node: '>=6.9.0'} requiresBuild: true dependencies: - '@babel/helper-validator-identifier': 7.22.5 + '@babel/helper-validator-identifier': 7.22.15 chalk: 2.4.2 js-tokens: 4.0.0 dev: true - /@babel/parser@7.22.11: - resolution: {integrity: sha512-R5zb8eJIBPJriQtbH/htEQy4k7E2dHWlD2Y2VT07JCzwYZHBxV5ZYtM0UhXSNMT74LyxuM+b1jdL7pSesXbC/g==} + /@babel/parser@7.22.16: + resolution: {integrity: sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.22.11 + '@babel/types': 7.22.15 dev: true - /@babel/standalone@7.22.12: - resolution: {integrity: sha512-Od5EnOR/gvwwvLCaJCypkVW6C9PitK2tu/aHb+ZpPnwkVidmlJ+7jUf8YLm9BrNILfT9P8etZq/t6r1IrFauQw==} + /@babel/standalone@7.22.16: + resolution: {integrity: sha512-3bBKOuoOYCwiSVH5TlsfF+3wmKQRk9hVJbQ+L7EfGuZiUBwJYRWxkJeNQJKEPkDuuaoihTP0hRzal0Pichzb7w==} engines: {node: '>=6.9.0'} dev: true - /@babel/template@7.22.5: - resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.10 - '@babel/parser': 7.22.11 - '@babel/types': 7.22.11 + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.22.16 + '@babel/types': 7.22.15 dev: true - /@babel/traverse@7.22.11: - resolution: {integrity: sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ==} + /@babel/traverse@7.22.15: + resolution: {integrity: sha512-DdHPwvJY0sEeN4xJU5uRLmZjgMMDIvMPniLuYzUVXj/GGzysPl0/fwt44JBkyUIzGJPV8QgHMcQdQ34XFuKTYQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.10 - '@babel/generator': 7.22.10 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.22.15 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.22.11 - '@babel/types': 7.22.11 + '@babel/parser': 7.22.16 + '@babel/types': 7.22.15 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.22.11: - resolution: {integrity: sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg==} + /@babel/types@7.22.15: + resolution: {integrity: sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.5 + '@babel/helper-validator-identifier': 7.22.15 to-fast-properties: 2.0.0 dev: true @@ -562,8 +562,8 @@ packages: mime: 3.0.0 dev: false - /@cloudflare/workers-types@4.20230821.0: - resolution: {integrity: sha512-lVQSyr5E4CEkQw7WIdsrMTj+kHjsm28mJ0B5AhNFByKR+16KTFsU/RW/nGLKHHW2jxT5lvYI+HjNQMzC9QR8Ng==} + /@cloudflare/workers-types@4.20230904.0: + resolution: {integrity: sha512-IX4oJCe14ctblSPZBlW64BVZ9nYLUo6sD2I5gu3hX0ywByYWm1OuoKm9Xb/Zpbj8Ph18Z7Ryii6u2/ocnncXdA==} dev: true /@edge-runtime/format@2.2.0: @@ -571,16 +571,16 @@ packages: engines: {node: '>=16'} dev: true - /@edge-runtime/primitives@3.1.0: - resolution: {integrity: sha512-yxr1QM/lC8nrU38zxePeDqVeIjwsJ83gKGTH8YJ4CoHTv3q+6xEeqRIT+/9IPX/FApWYtnxHauhNqr6CHRj5YA==} + /@edge-runtime/primitives@3.1.1: + resolution: {integrity: sha512-ROO22py+KdAfzqWZu6CtVMC4qV6mS0W1jPI51jGXE+uenyBUN7cQTWB9ReQc8Bm4cnjqmhajvpqEx3j7Y9iSOg==} engines: {node: '>=16'} dev: true - /@edge-runtime/vm@3.1.0: - resolution: {integrity: sha512-Y2JZgJP+4byI17SiDeEZhvBUvJ+om7E5ll/jrS7aGRpet5qKnJSsGep6xxhMjqT/j8ulFvTMN/kdlMMy5pEKBQ==} + /@edge-runtime/vm@3.1.1: + resolution: {integrity: sha512-6NJRRG04/91qnWLZj+wZm27q6fJkTbkZdIJdo/Ig++GTxkAv8Wh/45nIcz9Xg7AzIAMpAkflFdiCrCoZ3hp1Iw==} engines: {node: '>=16'} dependencies: - '@edge-runtime/primitives': 3.1.0 + '@edge-runtime/primitives': 3.1.1 dev: true /@esbuild/android-arm64@0.18.20: @@ -1131,7 +1131,7 @@ packages: requiresBuild: true dependencies: '@grpc/proto-loader': 0.7.9 - '@types/node': 20.5.6 + '@types/node': 20.5.9 dev: true optional: true @@ -1148,8 +1148,8 @@ packages: dev: true optional: true - /@humanwhocodes/config-array@0.11.10: - resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} + /@humanwhocodes/config-array@0.11.11: + resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -1241,7 +1241,7 @@ packages: npmlog: 5.0.1 rimraf: 3.0.2 semver: 7.5.4 - tar: 6.1.15 + tar: 6.2.0 transitivePeerDependencies: - encoding - supports-color @@ -1319,7 +1319,7 @@ packages: kleur: 4.1.5 selfsigned: 2.1.1 undici: 5.23.0 - ws: 8.13.0 + ws: 8.14.0 youch: 2.2.2 transitivePeerDependencies: - bufferutil @@ -1413,7 +1413,7 @@ packages: '@miniflare/core': 2.14.1 '@miniflare/shared': 2.14.1 undici: 5.23.0 - ws: 8.13.0 + ws: 8.14.0 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -1642,7 +1642,7 @@ packages: resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} dev: true - /@rollup/plugin-alias@5.0.0(rollup@3.28.1): + /@rollup/plugin-alias@5.0.0(rollup@3.29.0): resolution: {integrity: sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1651,10 +1651,10 @@ packages: rollup: optional: true dependencies: - rollup: 3.28.1 + rollup: 3.29.0 slash: 4.0.0 - /@rollup/plugin-commonjs@25.0.4(rollup@3.28.1): + /@rollup/plugin-commonjs@25.0.4(rollup@3.29.0): resolution: {integrity: sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1663,15 +1663,15 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.4(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.29.0) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 magic-string: 0.27.0 - rollup: 3.28.1 + rollup: 3.29.0 - /@rollup/plugin-inject@5.0.3(rollup@3.28.1): + /@rollup/plugin-inject@5.0.3(rollup@3.29.0): resolution: {integrity: sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1680,13 +1680,13 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.4(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.29.0) estree-walker: 2.0.2 magic-string: 0.27.0 - rollup: 3.28.1 + rollup: 3.29.0 dev: false - /@rollup/plugin-json@6.0.0(rollup@3.28.1): + /@rollup/plugin-json@6.0.0(rollup@3.29.0): resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1695,10 +1695,10 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.4(rollup@3.28.1) - rollup: 3.28.1 + '@rollup/pluginutils': 5.0.4(rollup@3.29.0) + rollup: 3.29.0 - /@rollup/plugin-node-resolve@15.2.1(rollup@3.28.1): + /@rollup/plugin-node-resolve@15.2.1(rollup@3.29.0): resolution: {integrity: sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1707,15 +1707,15 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.4(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.29.0) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.4 - rollup: 3.28.1 + rollup: 3.29.0 - /@rollup/plugin-replace@5.0.2(rollup@3.28.1): + /@rollup/plugin-replace@5.0.2(rollup@3.29.0): resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1724,11 +1724,11 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.4(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.29.0) magic-string: 0.27.0 - rollup: 3.28.1 + rollup: 3.29.0 - /@rollup/plugin-terser@0.4.3(rollup@3.28.1): + /@rollup/plugin-terser@0.4.3(rollup@3.29.0): resolution: {integrity: sha512-EF0oejTMtkyhrkwCdg0HJ0IpkcaVg1MMSf2olHb2Jp+1mnLM04OhjpJWGma4HobiDTF0WCyViWuvadyE9ch2XA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1737,13 +1737,13 @@ packages: rollup: optional: true dependencies: - rollup: 3.28.1 + rollup: 3.29.0 serialize-javascript: 6.0.1 smob: 1.4.0 - terser: 5.19.2 + terser: 5.19.4 dev: false - /@rollup/plugin-wasm@6.1.3(rollup@3.28.1): + /@rollup/plugin-wasm@6.1.3(rollup@3.29.0): resolution: {integrity: sha512-7ItTTeyauE6lwdDtQWceEHZ9+txbi4RRy0mYPFn9BW7rD7YdgBDu7HTHsLtHrRzJc313RM/1m6GKgV3np/aEaw==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1752,7 +1752,7 @@ packages: rollup: optional: true dependencies: - rollup: 3.28.1 + rollup: 3.29.0 dev: false /@rollup/pluginutils@4.2.1: @@ -1763,7 +1763,7 @@ packages: picomatch: 2.3.1 dev: false - /@rollup/pluginutils@5.0.4(rollup@3.28.1): + /@rollup/pluginutils@5.0.4(rollup@3.29.0): resolution: {integrity: sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1775,7 +1775,7 @@ packages: '@types/estree': 1.0.1 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 3.28.1 + rollup: 3.29.0 /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -1795,36 +1795,36 @@ packages: /@types/better-sqlite3@7.6.4: resolution: {integrity: sha512-dzrRZCYPXIXfSR1/surNbJ/grU3scTaygS0OMzjlGf71i9sc2fGyHPXXiXmEvNIoE0cGwsanEFMVJxPXmco9Eg==} dependencies: - '@types/node': 20.5.6 + '@types/node': 20.5.9 dev: true /@types/body-parser@1.19.2: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: - '@types/connect': 3.4.35 - '@types/node': 20.5.6 + '@types/connect': 3.4.36 + '@types/node': 20.5.9 dev: true /@types/chai-subset@1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: - '@types/chai': 4.3.5 + '@types/chai': 4.3.6 dev: true - /@types/chai@4.3.5: - resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} + /@types/chai@4.3.6: + resolution: {integrity: sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==} dev: true - /@types/connect@3.4.35: - resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} + /@types/connect@3.4.36: + resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==} dependencies: - '@types/node': 20.5.6 + '@types/node': 20.5.9 dev: true - /@types/cors@2.8.13: - resolution: {integrity: sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==} + /@types/cors@2.8.14: + resolution: {integrity: sha512-RXHUvNWYICtbP6s18PnOCaqToK8y14DnLd75c6HfyKf228dxy7pHNOQkxPtvXKp/hINFMDjbYzsj63nnpPMSRQ==} dependencies: - '@types/node': 20.5.6 + '@types/node': 20.5.9 dev: true /@types/estree@1.0.1: @@ -1833,14 +1833,14 @@ packages: /@types/etag@1.8.1: resolution: {integrity: sha512-bsKkeSqN7HYyYntFRAmzcwx/dKW4Wa+KVMTInANlI72PWLQmOpZu96j0OqHZGArW4VQwCmJPteQlXaUDeOB0WQ==} dependencies: - '@types/node': 20.5.6 + '@types/node': 20.5.9 dev: true /@types/express-serve-static-core@4.17.36: resolution: {integrity: sha512-zbivROJ0ZqLAtMzgzIUC4oNqDG9iF0lSsAqpOD9kbs5xcIM3dTiyuHvBc7R8MtWBp3AAWGaovJa+wzWPjLYW7Q==} dependencies: - '@types/node': 20.5.6 - '@types/qs': 6.9.7 + '@types/node': 20.5.9 + '@types/qs': 6.9.8 '@types/range-parser': 1.2.4 '@types/send': 0.17.1 dev: true @@ -1850,7 +1850,7 @@ packages: dependencies: '@types/body-parser': 1.19.2 '@types/express-serve-static-core': 4.17.36 - '@types/qs': 6.9.7 + '@types/qs': 6.9.8 '@types/serve-static': 1.15.2 dev: true @@ -1866,7 +1866,7 @@ packages: resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} dependencies: '@types/jsonfile': 6.1.1 - '@types/node': 20.5.6 + '@types/node': 20.5.9 dev: true /@types/glob@8.1.0: @@ -1874,7 +1874,7 @@ packages: requiresBuild: true dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.5.6 + '@types/node': 20.5.9 dev: true optional: true @@ -1885,7 +1885,7 @@ packages: /@types/http-proxy@1.17.11: resolution: {integrity: sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==} dependencies: - '@types/node': 20.5.6 + '@types/node': 20.5.9 dev: false /@types/istanbul-lib-coverage@2.0.4: @@ -1903,17 +1903,17 @@ packages: /@types/jsonfile@6.1.1: resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==} dependencies: - '@types/node': 20.5.6 + '@types/node': 20.5.9 dev: true /@types/jsonwebtoken@9.0.2: resolution: {integrity: sha512-drE6uz7QBKq1fYqqoFKTDRdFCPHd5TCub75BM+D+cMx7NU9hUz7SESLfC2fSCXVFMO5Yj8sOWHuGqPgjc+fz0Q==} dependencies: - '@types/node': 20.5.6 + '@types/node': 20.5.9 dev: true - /@types/linkify-it@3.0.2: - resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==} + /@types/linkify-it@3.0.3: + resolution: {integrity: sha512-pTjcqY9E4nOI55Wgpz7eiI8+LzdYnw3qxXCfHyBDdPbYvbyLgWLJGh8EdPvqawwMK1Uo1794AUkkR38Fr0g+2g==} requiresBuild: true dev: true optional: true @@ -1928,7 +1928,7 @@ packages: resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==} requiresBuild: true dependencies: - '@types/linkify-it': 3.0.2 + '@types/linkify-it': 3.0.3 '@types/mdurl': 1.0.2 dev: true optional: true @@ -1956,19 +1956,19 @@ packages: /@types/node-fetch@2.6.4: resolution: {integrity: sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==} dependencies: - '@types/node': 20.5.6 + '@types/node': 20.5.9 form-data: 3.0.1 dev: true - /@types/node@20.5.6: - resolution: {integrity: sha512-Gi5wRGPbbyOTX+4Y2iULQ27oUPrefaB0PxGQJnfyWN3kvEDGM3mIB5M/gQLmitZf7A9FmLeaqxD3L1CXpm3VKQ==} + /@types/node@20.5.9: + resolution: {integrity: sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ==} /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true - /@types/qs@6.9.7: - resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} + /@types/qs@6.9.8: + resolution: {integrity: sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==} dev: true /@types/range-parser@1.2.4: @@ -1983,19 +1983,19 @@ packages: requiresBuild: true dependencies: '@types/glob': 8.1.0 - '@types/node': 20.5.6 + '@types/node': 20.5.9 dev: true optional: true - /@types/semver@7.5.0: - resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} + /@types/semver@7.5.1: + resolution: {integrity: sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==} dev: true /@types/send@0.17.1: resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} dependencies: '@types/mime': 1.3.2 - '@types/node': 20.5.6 + '@types/node': 20.5.9 dev: true /@types/serve-static@1.15.2: @@ -2003,7 +2003,7 @@ packages: dependencies: '@types/http-errors': 2.0.1 '@types/mime': 3.0.1 - '@types/node': 20.5.6 + '@types/node': 20.5.9 dev: true /@types/stack-trace@0.0.29: @@ -2120,7 +2120,7 @@ packages: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) '@types/json-schema': 7.0.12 - '@types/semver': 7.5.0 + '@types/semver': 7.5.1 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) @@ -2319,49 +2319,29 @@ packages: resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} dev: false - /archiver-utils@2.1.0: - resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} - engines: {node: '>= 6'} - dependencies: - glob: 7.2.3 - graceful-fs: 4.2.11 - lazystream: 1.0.1 - lodash.defaults: 4.2.0 - lodash.difference: 4.5.0 - lodash.flatten: 4.4.0 - lodash.isplainobject: 4.0.6 - lodash.union: 4.6.0 - normalize-path: 3.0.0 - readable-stream: 2.3.8 - dev: false - - /archiver-utils@3.0.3: - resolution: {integrity: sha512-fXzpEZTKgBJMWy0eUT0/332CAQnJ27OJd7sGcvNZzxS2Yzg7iITivMhXOm+zUTO4vT8ZqlPCqiaLPmB8qWhWRA==} - engines: {node: '>= 10'} + /archiver-utils@4.0.1: + resolution: {integrity: sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==} + engines: {node: '>= 12.0.0'} dependencies: - glob: 7.2.3 + glob: 8.1.0 graceful-fs: 4.2.11 lazystream: 1.0.1 - lodash.defaults: 4.2.0 - lodash.difference: 4.5.0 - lodash.flatten: 4.4.0 - lodash.isplainobject: 4.0.6 - lodash.union: 4.6.0 + lodash: 4.17.21 normalize-path: 3.0.0 readable-stream: 3.6.2 dev: false - /archiver@6.0.0: - resolution: {integrity: sha512-EPGa+bYaxaMiCT8DCbEDqFz8IjeBSExrJzyUOJx2FBkFJ/OZzJuso3lMSk901M50gMqXxTQcumlGajOFlXhVhw==} + /archiver@6.0.1: + resolution: {integrity: sha512-CXGy4poOLBKptiZH//VlWdFuUC1RESbdZjGjILwBuZ73P7WkAUN0htfSfBq/7k6FRFlpu7bg4JOkj1vU9G6jcQ==} engines: {node: '>= 12.0.0'} dependencies: - archiver-utils: 3.0.3 + archiver-utils: 4.0.1 async: 3.2.4 buffer-crc32: 0.2.13 readable-stream: 3.6.2 readdir-glob: 1.1.3 - tar-stream: 2.2.0 - zip-stream: 4.1.0 + tar-stream: 3.1.6 + zip-stream: 5.0.1 dev: false /are-we-there-yet@2.0.0: @@ -2386,8 +2366,8 @@ packages: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} dev: true - /array-includes@3.1.6: - resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -2402,8 +2382,8 @@ packages: engines: {node: '>=8'} dev: true - /array.prototype.findlastindex@1.2.2: - resolution: {integrity: sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==} + /array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -2413,8 +2393,8 @@ packages: get-intrinsic: 1.2.1 dev: true - /array.prototype.flat@1.3.1: - resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -2423,8 +2403,8 @@ packages: es-shim-unscopables: 1.0.0 dev: true - /array.prototype.flatmap@1.3.1: - resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -2433,13 +2413,14 @@ packages: es-shim-unscopables: 1.0.0 dev: true - /arraybuffer.prototype.slice@1.0.1: - resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 call-bind: 1.0.2 define-properties: 1.2.0 + es-abstract: 1.22.1 get-intrinsic: 1.2.1 is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 @@ -2486,19 +2467,26 @@ packages: engines: {node: '>= 0.4'} dev: true + /b4a@1.6.4: + resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} + dev: false + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + requiresBuild: true + dev: true + optional: true /big-integer@1.6.51: resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} engines: {node: '>=0.6'} dev: true - /bignumber.js@9.1.1: - resolution: {integrity: sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==} + /bignumber.js@9.1.2: + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} requiresBuild: true dev: true optional: true @@ -2513,14 +2501,6 @@ packages: file-uri-to-path: 1.0.0 dev: false - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: false - /bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} requiresBuild: true @@ -2576,8 +2556,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001524 - electron-to-chromium: 1.4.503 + caniuse-lite: 1.0.30001528 + electron-to-chromium: 1.4.510 node-releases: 2.0.13 update-browserslist-db: 1.0.11(browserslist@4.21.10) dev: true @@ -2593,13 +2573,6 @@ packages: /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: false - /builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} @@ -2635,8 +2608,8 @@ packages: defu: 6.1.2 dotenv: 16.3.1 giget: 1.1.2 - jiti: 1.19.3 - mlly: 1.4.1 + jiti: 1.20.0 + mlly: 1.4.2 ohash: 1.1.3 pathe: 1.1.1 perfect-debounce: 1.0.0 @@ -2662,8 +2635,8 @@ packages: engines: {node: '>=6'} dev: true - /caniuse-lite@1.0.30001524: - resolution: {integrity: sha512-Jj917pJtYg9HSJBF95HVX3Cdr89JUyLT4IZ8SvM5aDRni95swKgYi3TgYLH5hnGfPE/U1dg6IfZ50UsIlLkwSA==} + /caniuse-lite@1.0.30001528: + resolution: {integrity: sha512-0Db4yyjR9QMNlsxh+kKWzQtkyflkG/snYheSzkjmvdEtEXB1+jt7A2HmSEiO6XIJPIbo92lHNGNySvE5pZcs5Q==} dev: true /catharsis@0.9.0: @@ -2728,7 +2701,7 @@ packages: scule: 1.0.0 semver: 7.5.4 std-env: 3.4.3 - yaml: 2.3.1 + yaml: 2.3.2 transitivePeerDependencies: - supports-color dev: true @@ -2837,12 +2810,12 @@ packages: /commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - /compress-commons@4.1.1: - resolution: {integrity: sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==} - engines: {node: '>= 10'} + /compress-commons@5.0.1: + resolution: {integrity: sha512-MPh//1cERdLtqwO3pOFLeXtpuai0Y2WCd5AhtKxznqM7WtaMYaOEMSgn45d9D10sIHSfIKE603HlOp8OPGrvag==} + engines: {node: '>= 12.0.0'} dependencies: - buffer-crc32: 0.2.13 - crc32-stream: 4.0.2 + crc-32: 1.2.2 + crc32-stream: 5.0.0 normalize-path: 3.0.0 readable-stream: 3.6.2 dev: false @@ -2928,9 +2901,9 @@ packages: hasBin: true dev: false - /crc32-stream@4.0.2: - resolution: {integrity: sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==} - engines: {node: '>= 10'} + /crc32-stream@5.0.0: + resolution: {integrity: sha512-B0EPa1UK+qnpBZpG+7FgPCu0J2ETLpXq09o9BkLkEAhdB6Z61Qo4pJ3JYu0c+Qi+/SAL7QThqnzS06pmSSyZaw==} + engines: {node: '>= 12.0.0'} dependencies: crc-32: 1.2.2 readable-stream: 3.6.2 @@ -3132,13 +3105,13 @@ packages: safe-buffer: 5.2.1 dev: true - /edge-runtime@2.5.0: - resolution: {integrity: sha512-QgDNX6R+RPwhY3+vqHpvYE4XUoB/cFG60nGBKu9pmPOJxQleeTCj2F5CHimIpNqex9h1Cy2Y3tuQ+Vq2GzmZIA==} + /edge-runtime@2.5.1: + resolution: {integrity: sha512-E0kY1Dqvwvk9yh7dvR56KnCjXf/dlbrrGjO5Sjnz9Ja3WqYT3csv2B8O4erxJiOWfWy9NTukBk4Kb3yrR66gBw==} engines: {node: '>=16'} hasBin: true dependencies: '@edge-runtime/format': 2.2.0 - '@edge-runtime/vm': 3.1.0 + '@edge-runtime/vm': 3.1.1 async-listen: 3.0.1 mri: 1.2.0 picocolors: 1.0.0 @@ -3151,8 +3124,8 @@ packages: /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - /electron-to-chromium@1.4.503: - resolution: {integrity: sha512-LF2IQit4B0VrUHFeQkWhZm97KuJSGF2WJqq1InpY+ECpFRkXd8yTIaTtJxsO0OKDmiBYwWqcrNaXOurn2T2wiA==} + /electron-to-chromium@1.4.510: + resolution: {integrity: sha512-xPfLIPFcN/WLXBpQ/K4UgE98oUBO5Tia6BD4rkSR0wE7ep/PwBVlgvPJQrIBpmJGVAmUzwPKuDbVt9XV6+uC2g==} dev: true /emoji-regex@8.0.0: @@ -3164,8 +3137,11 @@ packages: /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + requiresBuild: true dependencies: once: 1.4.0 + dev: true + optional: true /enhanced-resolve@5.15.0: resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} @@ -3198,12 +3174,12 @@ packages: engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.1 + arraybuffer.prototype.slice: 1.0.2 available-typed-arrays: 1.0.5 call-bind: 1.0.2 es-set-tostringtag: 2.0.1 es-to-primitive: 1.2.1 - function.prototype.name: 1.1.5 + function.prototype.name: 1.1.6 get-intrinsic: 1.2.1 get-symbol-description: 1.0.0 globalthis: 1.0.3 @@ -3225,11 +3201,11 @@ packages: object-keys: 1.1.1 object.assign: 4.1.4 regexp.prototype.flags: 1.5.0 - safe-array-concat: 1.0.0 + safe-array-concat: 1.0.1 safe-regex-test: 1.0.0 string.prototype.trim: 1.2.7 string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 + string.prototype.trimstart: 1.0.7 typed-array-buffer: 1.0.0 typed-array-byte-length: 1.0.0 typed-array-byte-offset: 1.0.0 @@ -3509,10 +3485,10 @@ packages: optional: true dependencies: '@typescript-eslint/parser': 5.62.0(eslint@8.48.0)(typescript@5.2.2) - array-includes: 3.1.6 - array.prototype.findlastindex: 1.2.2 - array.prototype.flat: 1.3.1 - array.prototype.flatmap: 1.3.1 + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 eslint: 8.48.0 @@ -3522,9 +3498,9 @@ packages: is-core-module: 2.13.0 is-glob: 4.0.3 minimatch: 3.1.2 - object.fromentries: 2.0.6 - object.groupby: 1.0.0 - object.values: 1.1.6 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 semver: 6.3.1 tsconfig-paths: 3.14.2 transitivePeerDependencies: @@ -3580,7 +3556,7 @@ packages: peerDependencies: eslint: '>=8.38.0' dependencies: - '@babel/helper-validator-identifier': 7.22.5 + '@babel/helper-validator-identifier': 7.22.15 '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) ci-info: 3.8.0 clean-regexp: 1.0.0 @@ -3641,7 +3617,7 @@ packages: '@eslint-community/regexpp': 4.8.0 '@eslint/eslintrc': 2.1.2 '@eslint/js': 8.48.0 - '@humanwhocodes/config-array': 0.11.10 + '@humanwhocodes/config-array': 0.11.11 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 @@ -3857,6 +3833,10 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true + /fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + dev: false + /fast-glob@3.3.1: resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} @@ -3957,8 +3937,8 @@ packages: '@fastify/busboy': 1.2.1 '@firebase/database-compat': 0.3.4 '@firebase/database-types': 0.10.4 - '@types/node': 20.5.6 - jsonwebtoken: 9.0.1 + '@types/node': 20.5.9 + jsonwebtoken: 9.0.2 jwks-rsa: 3.0.1 node-forge: 1.3.1 uuid: 9.0.0 @@ -3977,7 +3957,7 @@ packages: peerDependencies: firebase-admin: ^10.0.0 || ^11.0.0 dependencies: - '@types/cors': 2.8.13 + '@types/cors': 2.8.14 '@types/express': 4.17.3 cors: 2.8.5 express: 4.18.2 @@ -4030,10 +4010,6 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} - /fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: false - /fs-extra@11.1.1: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} @@ -4061,8 +4037,8 @@ packages: /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - /function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -4146,8 +4122,8 @@ packages: has-symbols: 1.0.3 dev: true - /get-port-please@3.0.2: - resolution: {integrity: sha512-c14cAITf0E+uqdxGALvyYHwOL7UsnWcv3oDtgDAZksiVSGN87xlWVUWGZcmWQU3cICdaOxT+6LdQzUfK2ei1SA==} + /get-port-please@3.1.1: + resolution: {integrity: sha512-3UBAyM3u4ZBVYDsxOQfJDxEa6XTbpBDrOjp4mf7ExFRt5BKs/QywQQiJsh2B+hxcZLSapWqCRvElUe8DnKcFHA==} /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} @@ -4182,7 +4158,7 @@ packages: mri: 1.2.0 node-fetch-native: 1.4.0 pathe: 1.1.1 - tar: 6.1.15 + tar: 6.2.0 transitivePeerDependencies: - supports-color @@ -4357,7 +4333,7 @@ packages: cookie-es: 1.0.0 defu: 6.1.2 destr: 2.0.1 - iron-webcrypto: 0.8.0 + iron-webcrypto: 0.8.2 radix3: 1.1.0 ufo: 1.3.0 uncrypto: 0.1.3 @@ -4509,10 +4485,6 @@ packages: safer-buffer: 2.1.2 dev: true - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: false - /ignore@5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} @@ -4575,8 +4547,8 @@ packages: engines: {node: '>= 0.10'} dev: true - /iron-webcrypto@0.8.0: - resolution: {integrity: sha512-gScdcWHjTGclCU15CIv2r069NoQrys1UeUFFfaO1hL++ytLHkVw7N5nXJmFf3J2LEDMz1PkrvC0m62JEeu1axQ==} + /iron-webcrypto@0.8.2: + resolution: {integrity: sha512-jGiwmpgTuF19Vt4hn3+AzaVFGpVZt7A1ysd5ivFel2r4aNVFwqaYa6aU6qsF1PM7b+WFivZHz3nipwUOXaOnHg==} dev: false /is-array-buffer@3.0.2: @@ -4811,12 +4783,12 @@ packages: istanbul-lib-report: 3.0.1 dev: true - /jiti@1.19.3: - resolution: {integrity: sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w==} + /jiti@1.20.0: + resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} hasBin: true - /jose@4.14.4: - resolution: {integrity: sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==} + /jose@4.14.6: + resolution: {integrity: sha512-EqJPEUlZD0/CSUMubKtMaYUOtWe91tZXTWMJZoKSbLk+KtdhNdcvppH8lA9XwVu2V4Ailvsj0GBZJ2ZwDjfesQ==} dev: true /js-tokens@4.0.0: @@ -4844,7 +4816,7 @@ packages: hasBin: true requiresBuild: true dependencies: - '@babel/parser': 7.22.11 + '@babel/parser': 7.22.16 '@jsdoc/salty': 0.2.5 '@types/markdown-it': 12.2.3 bluebird: 3.7.2 @@ -4883,7 +4855,7 @@ packages: resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} requiresBuild: true dependencies: - bignumber.js: 9.1.1 + bignumber.js: 9.1.2 dev: true optional: true @@ -4926,12 +4898,18 @@ packages: optionalDependencies: graceful-fs: 4.2.11 - /jsonwebtoken@9.0.1: - resolution: {integrity: sha512-K8wx7eJ5TPvEjuiVSkv167EVboBDv9PZdDoF7BgeQnBLVvZWW9clr2PsQHVJDTKaEIH5JBIwHujGcHp7GgI2eg==} + /jsonwebtoken@9.0.2: + resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} engines: {node: '>=12', npm: '>=6'} dependencies: jws: 3.2.2 - lodash: 4.17.21 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 ms: 2.1.3 semver: 7.5.4 dev: true @@ -4961,7 +4939,7 @@ packages: '@types/express': 4.17.17 '@types/jsonwebtoken': 9.0.2 debug: 4.3.4 - jose: 4.14.4 + jose: 4.14.6 limiter: 1.1.5 lru-memoizer: 2.2.0 transitivePeerDependencies: @@ -5053,8 +5031,8 @@ packages: dev: true optional: true - /listhen@1.4.3: - resolution: {integrity: sha512-qVWeM07q7q5R3jwB+Zm603khFQ3yq5OLmAwLIlE3Ftv1K9yfwx4R6/tbCkkr0/SrIyKnHK9xY1C6j03uGOSnIQ==} + /listhen@1.4.8: + resolution: {integrity: sha512-mhIM2Wd68Yl7ywOWQB0iFZpF+kqhAXTbVgz2YiVn+8p+YoG2sSkAYorxtrnI4c9MHXvjSi3zjOCwwE53ex84PA==} hasBin: true dependencies: '@parcel/watcher': 2.3.0 @@ -5063,11 +5041,11 @@ packages: clipboardy: 3.0.0 consola: 3.2.3 defu: 6.1.2 - get-port-please: 3.0.2 + get-port-please: 3.1.1 h3: 1.8.1 http-shutdown: 1.2.2 - jiti: 1.19.3 - mlly: 1.4.1 + jiti: 1.20.0 + mlly: 1.4.2 node-forge: 1.3.1 pathe: 1.1.1 ufo: 1.3.0 @@ -5107,33 +5085,44 @@ packages: resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} dev: false - /lodash.difference@4.5.0: - resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} - dev: false - - /lodash.flatten@4.4.0: - resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} - dev: false + /lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + dev: true /lodash.isarguments@3.1.0: resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} dev: false + /lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + dev: true + + /lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + dev: true + + /lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + dev: true + /lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - dev: false + dev: true + + /lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + dev: true /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true - /lodash.union@4.6.0: - resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} - dev: false + /lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + dev: true /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true /long@4.0.0: resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} @@ -5405,15 +5394,15 @@ packages: esbuild: 0.18.20 fs-extra: 11.1.1 globby: 13.2.2 - jiti: 1.19.3 - mlly: 1.4.1 + jiti: 1.20.0 + mlly: 1.4.2 mri: 1.2.0 pathe: 1.1.1 typescript: 5.2.2 dev: true - /mlly@1.4.1: - resolution: {integrity: sha512-SCDs78Q2o09jiZiE2WziwVBEqXQ02XkGdUy45cbJf+BpYRIjArXRJ1Wbowxkb+NaM9DWvS3UC9GiO/6eqvQ/pg==} + /mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} dependencies: acorn: 8.10.0 pathe: 1.1.1 @@ -5575,8 +5564,8 @@ packages: object-keys: 1.1.1 dev: true - /object.fromentries@2.0.6: - resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -5584,8 +5573,8 @@ packages: es-abstract: 1.22.1 dev: true - /object.groupby@1.0.0: - resolution: {integrity: sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==} + /object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -5593,8 +5582,8 @@ packages: get-intrinsic: 1.2.1 dev: true - /object.values@1.1.6: - resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -5655,8 +5644,8 @@ packages: is-wsl: 2.2.0 dev: true - /openapi-typescript@6.5.3: - resolution: {integrity: sha512-iVOgf1wf/6R73Cg9wcxMAD/P3+/TJ8HQruLyv3WRDu29Pwnmp7ZUJ897Kb401jW7Ao/L4JjisropHQJW62BXtA==} + /openapi-typescript@6.5.4: + resolution: {integrity: sha512-ndNgrYIGSWSMrcXC8bFdx/voXRINB3dcHIm2+Sg9Tn7LJPXc7ufuaSr9E2eVucSwNxPu8oBbJxmMnxEZgT1lzA==} hasBin: true dependencies: ansi-colors: 4.1.3 @@ -5744,7 +5733,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.10 + '@babel/code-frame': 7.22.13 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -5814,7 +5803,7 @@ packages: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: jsonc-parser: 3.2.0 - mlly: 1.4.1 + mlly: 1.4.2 pathe: 1.1.1 /pluralize@8.0.0: @@ -5822,8 +5811,8 @@ packages: engines: {node: '>=4'} dev: true - /postcss@8.4.28: - resolution: {integrity: sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==} + /postcss@8.4.29: + resolution: {integrity: sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -5843,8 +5832,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier@3.0.2: - resolution: {integrity: sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==} + /prettier@3.0.3: + resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} engines: {node: '>=14'} hasBin: true dev: true @@ -5924,7 +5913,7 @@ packages: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.5.6 + '@types/node': 20.5.9 long: 5.2.3 dev: true optional: true @@ -5944,7 +5933,7 @@ packages: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.5.6 + '@types/node': 20.5.9 long: 5.2.3 dev: true @@ -5975,6 +5964,10 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + /queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + dev: false + /radix3@1.1.0: resolution: {integrity: sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A==} dev: false @@ -6162,21 +6155,21 @@ packages: dependencies: glob: 7.2.3 - /rollup-plugin-dts@6.0.0(rollup@3.28.1)(typescript@5.2.2): - resolution: {integrity: sha512-A996xSZDAqnx/KfFttzC8mDEuyMjsRpiLCrlGc8effhK8KhE3AG0g1woQiITgFc5HSE8HWU7ccR9CiQ3vXgUlQ==} - engines: {node: '>=v18.17.1'} + /rollup-plugin-dts@6.0.1(rollup@3.29.0)(typescript@5.2.2): + resolution: {integrity: sha512-XJbCldVrp4TLc2Hg4DfrRiJgzJ73uhZB0sPSDizgdlrhSJ1bsIkkRMkwRKNQYgkbfMz4CHLdbnFKVivHE0vsPA==} + engines: {node: '>=16'} peerDependencies: - rollup: ^3.25.0 + rollup: ^3.25 typescript: ^4.5 || ^5.0 dependencies: magic-string: 0.30.3 - rollup: 3.28.1 + rollup: 3.29.0 typescript: 5.2.2 optionalDependencies: - '@babel/code-frame': 7.22.10 + '@babel/code-frame': 7.22.13 dev: true - /rollup-plugin-visualizer@5.9.2(rollup@3.28.1): + /rollup-plugin-visualizer@5.9.2(rollup@3.29.0): resolution: {integrity: sha512-waHktD5mlWrYFrhOLbti4YgQCn1uR24nYsNuXxg7LkPH8KdTXVWR9DNY1WU0QqokyMixVXJS4J04HNrVTMP01A==} engines: {node: '>=14'} hasBin: true @@ -6188,13 +6181,13 @@ packages: dependencies: open: 8.4.2 picomatch: 2.3.1 - rollup: 3.28.1 + rollup: 3.29.0 source-map: 0.7.4 yargs: 17.7.2 dev: false - /rollup@3.28.1: - resolution: {integrity: sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==} + /rollup@3.29.0: + resolution: {integrity: sha512-nszM8DINnx1vSS+TpbWKMkxem0CDWk3cSit/WWCBVs9/JZ1I/XLwOsiUglYuYReaeWWSsW9kge5zE5NZtf/a4w==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -6212,8 +6205,8 @@ packages: dependencies: queue-microtask: 1.2.3 - /safe-array-concat@1.0.0: - resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} engines: {node: '>=0.4'} dependencies: call-bind: 1.0.2 @@ -6459,6 +6452,13 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} + /streamx@2.15.1: + resolution: {integrity: sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==} + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + dev: false + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -6484,8 +6484,8 @@ packages: es-abstract: 1.22.1 dev: true - /string.prototype.trimstart@1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -6581,19 +6581,16 @@ packages: engines: {node: '>=6'} dev: true - /tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} + /tar-stream@3.1.6: + resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==} dependencies: - bl: 4.1.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 + b4a: 1.6.4 + fast-fifo: 1.3.2 + streamx: 2.15.1 dev: false - /tar@6.1.15: - resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} + /tar@6.2.0: + resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} engines: {node: '>=10'} dependencies: chownr: 2.0.0 @@ -6619,8 +6616,8 @@ packages: dev: true optional: true - /terser@5.19.2: - resolution: {integrity: sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==} + /terser@5.19.4: + resolution: {integrity: sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==} engines: {node: '>=10'} hasBin: true dependencies: @@ -6855,12 +6852,12 @@ packages: typescript: optional: true dependencies: - '@rollup/plugin-alias': 5.0.0(rollup@3.28.1) - '@rollup/plugin-commonjs': 25.0.4(rollup@3.28.1) - '@rollup/plugin-json': 6.0.0(rollup@3.28.1) - '@rollup/plugin-node-resolve': 15.2.1(rollup@3.28.1) - '@rollup/plugin-replace': 5.0.2(rollup@3.28.1) - '@rollup/pluginutils': 5.0.4(rollup@3.28.1) + '@rollup/plugin-alias': 5.0.0(rollup@3.29.0) + '@rollup/plugin-commonjs': 25.0.4(rollup@3.29.0) + '@rollup/plugin-json': 6.0.0(rollup@3.29.0) + '@rollup/plugin-node-resolve': 15.2.1(rollup@3.29.0) + '@rollup/plugin-replace': 5.0.2(rollup@3.29.0) + '@rollup/pluginutils': 5.0.4(rollup@3.29.0) chalk: 5.3.0 citty: 0.1.3 consola: 3.2.3 @@ -6868,15 +6865,15 @@ packages: esbuild: 0.19.2 globby: 13.2.2 hookable: 5.5.3 - jiti: 1.19.3 + jiti: 1.20.0 magic-string: 0.30.3 mkdist: 1.3.0(typescript@5.2.2) - mlly: 1.4.1 + mlly: 1.4.2 pathe: 1.1.1 pkg-types: 1.0.3 pretty-bytes: 6.1.1 - rollup: 3.28.1 - rollup-plugin-dts: 6.0.0(rollup@3.28.1)(typescript@5.2.2) + rollup: 3.29.0 + rollup-plugin-dts: 6.0.1(rollup@3.29.0)(typescript@5.2.2) scule: 1.0.0 typescript: 5.2.2 untyped: 1.4.0 @@ -6920,15 +6917,15 @@ packages: pathe: 1.1.1 dev: false - /unimport@3.2.0(rollup@3.28.1): - resolution: {integrity: sha512-9buxPxkNwxwxAlH/RfOFHxtQTUrlmBGi9Ai9HezY2yYbkoOhgJTYPI6+WqxI1EZphoM9cw1SHoCFRkXSb8/fjQ==} + /unimport@3.3.0(rollup@3.29.0): + resolution: {integrity: sha512-3jhq3ZG5hFZzrWGDCpx83kjPzefP/EeuKkIO1T0MA4Zwj+dO/Og1mFvZ4aZ5WSDm0FVbbdVIRH1zKBG7c4wOpg==} dependencies: - '@rollup/pluginutils': 5.0.4(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.29.0) escape-string-regexp: 5.0.0 fast-glob: 3.3.1 local-pkg: 0.4.3 magic-string: 0.30.3 - mlly: 1.4.1 + mlly: 1.4.2 pathe: 1.1.1 pkg-types: 1.0.3 scule: 1.0.0 @@ -6999,7 +6996,7 @@ packages: destr: 2.0.1 h3: 1.8.1 ioredis: 5.3.2 - listhen: 1.4.3 + listhen: 1.4.8 lru-cache: 10.0.1 mri: 1.2.0 node-fetch-native: 1.4.0 @@ -7027,11 +7024,11 @@ packages: resolution: {integrity: sha512-Egkr/s4zcMTEuulcIb7dgURS6QpN7DyqQYdf+jBtiaJvQ+eRsrtWUoX84SbvQWuLkXsOjM+8sJC9u6KoMK/U7Q==} hasBin: true dependencies: - '@babel/core': 7.22.11 - '@babel/standalone': 7.22.12 - '@babel/types': 7.22.11 + '@babel/core': 7.22.15 + '@babel/standalone': 7.22.16 + '@babel/types': 7.22.15 defu: 6.1.2 - jiti: 1.19.3 + jiti: 1.20.0 mri: 1.2.0 scule: 1.0.0 transitivePeerDependencies: @@ -7113,17 +7110,17 @@ packages: engines: {node: '>= 0.8'} dev: true - /vite-node@0.34.3(@types/node@20.5.6): + /vite-node@0.34.3(@types/node@20.5.9): resolution: {integrity: sha512-+0TzJf1g0tYXj6tR2vEyiA42OPq68QkRZCu/ERSo2PtsDJfBpDyEfuKbRvLmZqi/CgC7SCBtyC+WjTGNMRIaig==} engines: {node: '>=v14.18.0'} hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4 - mlly: 1.4.1 + mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.9(@types/node@20.5.6) + vite: 4.4.9(@types/node@20.5.9) transitivePeerDependencies: - '@types/node' - less @@ -7135,7 +7132,7 @@ packages: - terser dev: true - /vite@4.4.9(@types/node@20.5.6): + /vite@4.4.9(@types/node@20.5.9): resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -7163,10 +7160,10 @@ packages: terser: optional: true dependencies: - '@types/node': 20.5.6 + '@types/node': 20.5.9 esbuild: 0.18.20 - postcss: 8.4.28 - rollup: 3.28.1 + postcss: 8.4.29 + rollup: 3.29.0 optionalDependencies: fsevents: 2.3.3 dev: true @@ -7202,9 +7199,9 @@ packages: webdriverio: optional: true dependencies: - '@types/chai': 4.3.5 + '@types/chai': 4.3.6 '@types/chai-subset': 1.3.3 - '@types/node': 20.5.6 + '@types/node': 20.5.9 '@vitest/expect': 0.34.3 '@vitest/runner': 0.34.3 '@vitest/snapshot': 0.34.3 @@ -7223,8 +7220,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.7.0 - vite: 4.4.9(@types/node@20.5.6) - vite-node: 0.34.3(@types/node@20.5.6) + vite: 4.4.9(@types/node@20.5.9) + vite-node: 0.34.3(@types/node@20.5.9) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -7329,8 +7326,8 @@ packages: /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - /ws@8.13.0: - resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + /ws@8.14.0: + resolution: {integrity: sha512-WR0RJE9Ehsio6U4TuM+LmunEsjQ5ncHlw4sn9ihD6RoJKZrVyH9FWV3dmnwu8B2aNib1OvG2X6adUCyFpQyWcg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -7363,8 +7360,8 @@ packages: /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - /yaml@2.3.1: - resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} + /yaml@2.3.2: + resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} engines: {node: '>= 14'} dev: true @@ -7404,11 +7401,11 @@ packages: stack-trace: 0.0.10 dev: true - /zip-stream@4.1.0: - resolution: {integrity: sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==} - engines: {node: '>= 10'} + /zip-stream@5.0.1: + resolution: {integrity: sha512-UfZ0oa0C8LI58wJ+moL46BDIMgCQbnsb+2PoiJYtonhBsMh2bq1eRBVkvjfVsqbEHd9/EgKPUuL9saSSsec8OA==} + engines: {node: '>= 12.0.0'} dependencies: - archiver-utils: 2.1.0 - compress-commons: 4.1.1 + archiver-utils: 4.0.1 + compress-commons: 5.0.1 readable-stream: 3.6.2 dev: false From 62584ab4f8bfde70961fc9de2f908415596927b0 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Thu, 7 Sep 2023 18:18:20 +0200 Subject: [PATCH 17/20] fix: bun dev compatibility (#1702) --- src/cli/index.ts | 6 +++--- src/presets/netlify.ts | 4 ++-- src/rollup/config.ts | 6 +++--- src/runtime/entries/nitro-dev.ts | 8 ++++++-- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/cli/index.ts b/src/cli/index.ts index 6c95b9d8f9..bc54fdf59d 100644 --- a/src/cli/index.ts +++ b/src/cli/index.ts @@ -1,12 +1,12 @@ #!/usr/bin/env node import { defineCommand, runMain } from "citty"; -import { version } from "../../package.json"; +import nitroPkg from "../../package.json"; const main = defineCommand({ meta: { - name: "nitro", + name: nitroPkg.name, description: "Nitro CLI", - version, + version: nitroPkg.version, }, subCommands: { dev: () => import("./commands/dev").then((r) => r.default), diff --git a/src/presets/netlify.ts b/src/presets/netlify.ts index fb9fcc55dc..59a17461e0 100644 --- a/src/presets/netlify.ts +++ b/src/presets/netlify.ts @@ -2,7 +2,7 @@ import { existsSync, promises as fsp } from "node:fs"; import { join, dirname } from "pathe"; import { defineNitroPreset } from "../preset"; import type { Nitro } from "../types"; -import { name, version } from "../../package.json"; +import nitroPkg from "../../package.json"; // Netlify functions export const netlify = defineNitroPreset({ @@ -80,7 +80,7 @@ export const netlifyEdge = defineNitroPreset({ path: "/*", name: "nitro server handler", function: "server", - generator: `${name}@${version}`, + generator: `${nitroPkg.name}@${nitroPkg.version}`, }, ], }; diff --git a/src/rollup/config.ts b/src/rollup/config.ts index 636b0dcebb..952c25f930 100644 --- a/src/rollup/config.ts +++ b/src/rollup/config.ts @@ -19,7 +19,7 @@ import { hash } from "ohash"; import type { Nitro, NitroStaticBuildFlags } from "../types"; import { resolveAliases } from "../utils"; import { runtimeDir } from "../dirs"; -import { version } from "../../package.json"; +import nitroPkg from "../../package.json"; import { nitroRuntimeDependencies } from "../deps"; import { replace } from "./plugins/replace"; import { virtual } from "./plugins/virtual"; @@ -177,8 +177,8 @@ export const getRollupConfig = (nitro: Nitro): RollupConfig => { client: false, nitro: true, // @ts-expect-error - "versions.nitro": version, - "versions?.nitro": version, + "versions.nitro": nitroPkg.version, + "versions?.nitro": nitroPkg.version, // Internal _asyncContext: nitro.options.experimental.asyncContext, }; diff --git a/src/runtime/entries/nitro-dev.ts b/src/runtime/entries/nitro-dev.ts index 22e67907b3..fc79b54fd7 100644 --- a/src/runtime/entries/nitro-dev.ts +++ b/src/runtime/entries/nitro-dev.ts @@ -12,8 +12,12 @@ import { trapUnhandledNodeErrors } from "../utils"; const server = new Server(toNodeListener(nitroApp.h3App)); function getAddress() { - if (provider === "stackblitz" || process.env.NITRO_NO_UNIX_SOCKET) { - return "0"; + if ( + provider === "stackblitz" || + process.env.NITRO_NO_UNIX_SOCKET || + process.versions.bun + ) { + return 0; } const socketName = `worker-${process.pid}-${threadId}.sock`; if (isWindows) { From 70ebac1bda4f276d2b7c1f182a353a39475fd91b Mon Sep 17 00:00:00 2001 From: Colin McDonnell Date: Thu, 7 Sep 2023 09:22:45 -0700 Subject: [PATCH 18/20] docs: add instructions for bun (#1672) --- docs/content/1.guide/0.getting-started.md | 12 +++++++++--- docs/content/2.deploy/providers/firebase.md | 3 +++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/docs/content/1.guide/0.getting-started.md b/docs/content/1.guide/0.getting-started.md index 94bb52d7ea..2e9cc5381f 100644 --- a/docs/content/1.guide/0.getting-started.md +++ b/docs/content/1.guide/0.getting-started.md @@ -34,6 +34,10 @@ npx giget@latest nitro nitro-app pnpm dlx giget@latest nitro nitro-app ``` +```bash [bun] +bunx giget@latest nitro nitro-app +``` + :: ```sh @@ -56,6 +60,10 @@ yarn install pnpm install ``` +```bash [bun] +bun install +``` + :: @@ -115,6 +123,4 @@ You can opt-in to the edge release channel by updating your `package.json`: If you are using Nuxt, [use the Nuxt edge channel](https://nuxt.com/docs/guide/going-further/edge-channel#opting-into-the-edge-channel) as it already includes `nitropack-edge`. :: -Remove any lockfile (`package-lock.json`, `yarn.lock`, or `pnpm-lock.yaml`) and reinstall the dependencies. - - +Remove the lockfile (`package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`, or `bun.lockb`) and reinstall the dependencies. diff --git a/docs/content/2.deploy/providers/firebase.md b/docs/content/2.deploy/providers/firebase.md index eca9471b3a..13f9914dac 100644 --- a/docs/content/2.deploy/providers/firebase.md +++ b/docs/content/2.deploy/providers/firebase.md @@ -93,6 +93,9 @@ yarn add --dev firebase-admin firebase-functions firebase-functions-test ```bash [pnpm] pnpm install -D firebase-admin firebase-functions firebase-functions-test ``` +```bash [bun] +bun add -D firebase-admin firebase-functions firebase-functions-test +``` :: #### 3. Log Into the Firebase CLI From 86d05f2d9b68b1c46d27e56041ff3738e96a65ab Mon Sep 17 00:00:00 2001 From: Heb Date: Thu, 7 Sep 2023 23:25:56 +0700 Subject: [PATCH 19/20] fix(aws-lambda,netlify-lambda): binary body v2 and cookies v1 (#1683) --- src/runtime/entries/aws-lambda.ts | 31 +++++++++------------- src/runtime/entries/netlify-lambda.ts | 12 ++++----- src/runtime/entries/stormkit.ts | 4 +-- test/presets/aws-lambda.test.ts | 37 ++++++++++++--------------- test/tests.ts | 6 ----- 5 files changed, 36 insertions(+), 54 deletions(-) diff --git a/src/runtime/entries/aws-lambda.ts b/src/runtime/entries/aws-lambda.ts index fadf172687..f906d6d85e 100644 --- a/src/runtime/entries/aws-lambda.ts +++ b/src/runtime/entries/aws-lambda.ts @@ -55,26 +55,19 @@ export async function handler( body: event.body, // TODO: handle event.isBase64Encoded }); - // Lambda v2 https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.v2 - if ("cookies" in event || "rawPath" in event) { - const cookies = normalizeCookieHeader(r.headers["set-cookie"]); - - return { - cookies, - statusCode: r.status, - headers: normalizeLambdaOutgoingHeaders(r.headers, true), - body: await normalizeLambdaOutgoingBody(r.body, r.headers).then( - (r) => r.body - ), - }; - } - - const outBody = await normalizeLambdaOutgoingBody(r.body, r.headers); - + // ApiGateway v2 https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.v2 + const isApiGwV2 = "cookies" in event || "rawPath" in event; + const awsBody = await normalizeLambdaOutgoingBody(r.body, r.headers); + const cookies = normalizeCookieHeader(r.headers["set-cookie"]); return { + ...(cookies.length > 0 && { + ...(isApiGwV2 + ? { cookies } + : { multiValueHeaders: { "set-cookie": cookies } }), + }), statusCode: r.status, - headers: normalizeLambdaOutgoingHeaders(r.headers), - body: outBody.body, - isBase64Encoded: outBody.type === "binary", + headers: normalizeLambdaOutgoingHeaders(r.headers, true), + body: awsBody.body, + isBase64Encoded: awsBody.type === "binary", }; } diff --git a/src/runtime/entries/netlify-lambda.ts b/src/runtime/entries/netlify-lambda.ts index 07e0ae9f82..1c84382502 100644 --- a/src/runtime/entries/netlify-lambda.ts +++ b/src/runtime/entries/netlify-lambda.ts @@ -36,15 +36,15 @@ export async function lambda( }); const cookies = normalizeCookieHeader(String(r.headers["set-cookie"])); - const outBody = await normalizeLambdaOutgoingBody(r.body, r.headers); + const awsBody = await normalizeLambdaOutgoingBody(r.body, r.headers); return { statusCode: r.status, headers: normalizeLambdaOutgoingHeaders(r.headers, true), - body: outBody.body, - isBase64Encoded: outBody.type === "binary", - multiValueHeaders: { - ...(cookies.length > 0 ? { "set-cookie": cookies } : {}), - }, + body: awsBody.body, + isBase64Encoded: awsBody.type === "binary", + ...(cookies.length > 0 && { + multiValueHeaders: { "set-cookie": cookies }, + }), }; } diff --git a/src/runtime/entries/stormkit.ts b/src/runtime/entries/stormkit.ts index 3b17a0eeff..dc0472cefc 100644 --- a/src/runtime/entries/stormkit.ts +++ b/src/runtime/entries/stormkit.ts @@ -34,7 +34,7 @@ export const handler: Handler = body: event.body, }); - const normalizedBody = await normalizeLambdaOutgoingBody( + const awsBody = await normalizeLambdaOutgoingBody( response.body, response.headers ); @@ -42,7 +42,7 @@ export const handler: Handler = return { statusCode: response.status, headers: normalizeOutgoingHeaders(response.headers), - [normalizedBody.type === "text" ? "body" : "buffer"]: normalizedBody.body, + [awsBody.type === "text" ? "body" : "buffer"]: awsBody.body, }; }; diff --git a/test/presets/aws-lambda.test.ts b/test/presets/aws-lambda.test.ts index 0a14798e5f..5a249ff67c 100644 --- a/test/presets/aws-lambda.test.ts +++ b/test/presets/aws-lambda.test.ts @@ -24,12 +24,7 @@ describe("nitro:preset:aws-lambda", async () => { body: body || "", }; const res = await handler(event); - return { - data: destr(res.body), - status: res.statusCode, - headers: res.headers, - cookies: res.cookies, - }; + return makeResponse(res); }; }); // Lambda v2 paylod @@ -62,21 +57,21 @@ describe("nitro:preset:aws-lambda", async () => { body: body || "", }; const res = await handler(event); - const resHeaders = { ...res.headers }; - if (res.cookies) { - if (!resHeaders["set-cookie"]) { - resHeaders["set-cookie"] = []; - } - if (!Array.isArray(resHeaders["set-cookie"])) { - resHeaders["set-cookie"] = [resHeaders["set-cookie"]]; - } - resHeaders["set-cookie"].push(...res.cookies); - } - return { - data: destr(res.body), - status: res.statusCode, - headers: resHeaders, - }; + return makeResponse(res); }; }); }); + +const makeResponse = (response: any) => { + const headers = response.headers; + + // APIgw v2 uses cookies, v1 uses multiValueHeaders + headers["set-cookie"] = + response?.cookies ?? response?.multiValueHeaders?.["set-cookie"]; + + return { + data: destr(response.body), + status: response.statusCode, + headers, + }; +}; diff --git a/test/tests.ts b/test/tests.ts index 2b0f5961df..acc3bd0c41 100644 --- a/test/tests.ts +++ b/test/tests.ts @@ -557,12 +557,6 @@ export function testNitro( "foo=bar, bar=baz, test=value; Path=/, test2=value; Path=/"; } - // Aws lambda v1 - if (ctx.preset === "aws-lambda" && ctx.lambdaV1) { - expectedCookies = - "foo=bar, bar=baz,test=value; Path=/,test2=value; Path=/"; - } - expect(headers["set-cookie"]).toMatchObject(expectedCookies); }); }); From 5639f5b328190f184ffc2fcde46770fe97c273f8 Mon Sep 17 00:00:00 2001 From: Gavin Hardaker Date: Thu, 7 Sep 2023 18:40:21 +0200 Subject: [PATCH 20/20] fix(iis): merge `web.config` (#1658) Co-authored-by: Pooya Parsa --- docs/content/2.deploy/providers/iis.md | 37 +++++++- package.json | 13 ++- pnpm-lock.yaml | 25 +++++ src/presets/iis-node.ts | 65 ------------- src/presets/iis.ts | 125 ++++++++++++++++++++++++- src/presets/index.ts | 3 +- src/types/nitro.ts | 6 ++ 7 files changed, 198 insertions(+), 76 deletions(-) delete mode 100644 src/presets/iis-node.ts diff --git a/docs/content/2.deploy/providers/iis.md b/docs/content/2.deploy/providers/iis.md index d0290d0c48..bd3bfad205 100644 --- a/docs/content/2.deploy/providers/iis.md +++ b/docs/content/2.deploy/providers/iis.md @@ -12,8 +12,7 @@ This is an experimental preset. 1. Install [IISnode](https://github.com/azure/iisnode/releases), and the [IIS URL Rewrite Module](https://www.iis.net/downloads/microsoft/url-rewrite). 2. In IIS, add `.mjs` as a new mime type and set its content type to `application/javascript`. -3. Deploy the contents of your `.output` folder to your website in IIS. - +3. Deploy the contents of your `.output` folder to your website in IIS. ## Using IIS directly @@ -23,4 +22,36 @@ If you do not wish to use IISnode, you can use IIS directly. 1. Make sure that [Node.js](https://nodejs.org/en/) is installed on your Windows Server. 2. Make sure [`HttpPlatformHandler` Module](https://www.iis.net/downloads/microsoft/httpplatformhandler) is installed. -3. Copy your `.output` directory into the Windows Server, and create a website on IIS pointing to that exact directory. +3. Copy your `.output` directory into the Windows Server, and create a website on IIS pointing to that exact directory. + +## IIS Config options + +::code-group + +```ts [nitro.config.ts] +export default defineNitroConfig({ + // IIS options default + iis: { + // merges in a pre-exisiting web.config file to the nitro default file + mergeConfig: true, + // overrides the default nitro web.config file all together + overrideConfig: false, + }, +}); +``` + +```ts [nuxt.config.ts] +export default defineNuxtConfig({ + nitro: { + // IIS options default + iis: { + // merges in a pre-exisiting web.config file to the nitro default file + mergeConfig: true, + // overrides the default nitro web.config file all together + overrideConfig: false, + }, + }, +}); +``` + +:: diff --git a/package.json b/package.json index bb9ff31f44..b478cef46e 100644 --- a/package.json +++ b/package.json @@ -147,7 +147,16 @@ "typescript": "^5.2.2", "unbuild": "^2.0.0", "undici": "^5.23.0", - "vitest": "^0.34.3" + "vitest": "^0.34.3", + "xml2js": "^0.6.2" + }, + "peerDependencies": { + "xml2js": "^0.6.2" + }, + "peerDependenciesMeta": { + "xml2js": { + "optional": true + } }, "packageManager": "pnpm@8.7.0", "engines": { @@ -163,4 +172,4 @@ ] } } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 83c286a9da..0ab05453d2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -274,6 +274,9 @@ importers: vitest: specifier: ^0.34.3 version: 0.34.3 + xml2js: + specifier: ^0.6.2 + version: 0.6.2 examples/api-routes: devDependencies: @@ -1545,6 +1548,7 @@ packages: dependencies: is-glob: 4.0.3 micromatch: 4.0.5 + napi-wasm: 1.1.0 dev: false bundledDependencies: - napi-wasm @@ -5438,6 +5442,10 @@ packages: hasBin: true dev: true + /napi-wasm@1.1.0: + resolution: {integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg==} + dev: false + /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true @@ -6240,6 +6248,10 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true + /sax@1.2.4: + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + dev: true + /scule@1.0.0: resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==} @@ -7339,6 +7351,19 @@ packages: optional: true dev: true + /xml2js@0.6.2: + resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} + engines: {node: '>=4.0.0'} + dependencies: + sax: 1.2.4 + xmlbuilder: 11.0.1 + dev: true + + /xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + dev: true + /xmlcreate@2.0.4: resolution: {integrity: sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==} requiresBuild: true diff --git a/src/presets/iis-node.ts b/src/presets/iis-node.ts deleted file mode 100644 index 300f3b6fed..0000000000 --- a/src/presets/iis-node.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { resolve } from "pathe"; -import { writeFile } from "../utils"; -import { defineNitroPreset } from "../preset"; -import type { Nitro } from "../types"; - -export const iisNode = defineNitroPreset({ - extends: "node-server", - hooks: { - async compiled(nitro: Nitro) { - await writeFile( - resolve(nitro.options.output.dir, "web.config"), - iisnodeXmlTemplate() - ); - - await writeFile( - resolve(nitro.options.output.dir, "index.js"), - "import('./server/index.mjs');" - ); - }, - }, -}); - -function iisnodeXmlTemplate() { - return ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -`; -} diff --git a/src/presets/iis.ts b/src/presets/iis.ts index bc335a15f5..8c24d19ef9 100644 --- a/src/presets/iis.ts +++ b/src/presets/iis.ts @@ -1,5 +1,6 @@ +import { readFile } from "node:fs/promises"; import { resolve } from "pathe"; -import { writeFile } from "../utils"; +import { resolveFile, writeFile } from "../utils"; import { defineNitroPreset } from "../preset"; import type { Nitro } from "../types"; @@ -9,14 +10,91 @@ export const iis = defineNitroPreset({ async compiled(nitro: Nitro) { await writeFile( resolve(nitro.options.output.dir, "web.config"), - iisXmlTemplate() + await iisXmlTemplate(nitro) ); }, }, }); -function iisXmlTemplate() { - return ` +export const iisNode = defineNitroPreset({ + extends: "node-server", + hooks: { + async compiled(nitro: Nitro) { + await writeFile( + resolve(nitro.options.output.dir, "web.config"), + await iisnodeXmlTemplate(nitro) + ); + + await writeFile( + resolve(nitro.options.output.dir, "index.js"), + "import('./server/index.mjs');" + ); + }, + }, +}); + +async function iisnodeXmlTemplate(nitro: Nitro) { + const path = resolveFile("web.config", nitro.options.rootDir, ["config"]); + const originalString = ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +`; + if (path !== undefined) { + const fileString = await readFile(path, "utf8"); + const originalWebConfig: Record = + await parseXmlDoc(originalString); + const fileWebConfig: Record = + await parseXmlDoc(fileString); + + if (nitro.options.iis.mergeConfig && !nitro.options.iis.overrideConfig) { + return buildNewXmlDoc({ ...originalWebConfig, ...fileWebConfig }); + } else if (nitro.options.iis.overrideConfig) { + return buildNewXmlDoc({ ...fileWebConfig }); + } + } + return originalString; +} + +async function iisXmlTemplate(nitro: Nitro) { + const path = resolveFile("web.config", nitro.options.rootDir, ["config"]); + const originalString = ` @@ -31,4 +109,43 @@ function iisXmlTemplate() { `; + if (path !== undefined) { + const fileString = await readFile(path, "utf8"); + const originalWebConfig: Record = + await parseXmlDoc(originalString); + const fileWebConfig: Record = + await parseXmlDoc(fileString); + + if (nitro.options.iis.mergeConfig && !nitro.options.iis.overrideConfig) { + return buildNewXmlDoc({ ...originalWebConfig, ...fileWebConfig }); + } else if (nitro.options.iis.overrideConfig) { + return buildNewXmlDoc({ ...fileWebConfig }); + } + } + return originalString; +} + +// XML Helpers +export async function parseXmlDoc( + xml: string +): Promise> { + const { Parser } = await import("xml2js"); + + if (xml === undefined || !xml) { + return {}; + } + const parser = new Parser(); + let parsedRecord: Record; + parser.parseString(xml, function (_, r) { + parsedRecord = r; + }); + return parsedRecord; +} + +export async function buildNewXmlDoc( + xmlObj: Record +): Promise { + const { Builder } = await import("xml2js"); + const builder = new Builder(); + return builder.buildObject({ ...xmlObj }); } diff --git a/src/presets/index.ts b/src/presets/index.ts index 28aa5ffbb6..a4be1c3c93 100644 --- a/src/presets/index.ts +++ b/src/presets/index.ts @@ -26,7 +26,6 @@ export * from "./cleavr"; export * from "./layer0"; export * from "./flightcontrol"; export * from "./lagon"; -export * from "./iis-node"; -export * from "./iis"; +export { iis, iisNode } from "./iis"; export { _static as static } from "./static"; export * from "./github-pages"; diff --git a/src/types/nitro.ts b/src/types/nitro.ts index 054388e97a..bc2726c0ac 100644 --- a/src/types/nitro.ts +++ b/src/types/nitro.ts @@ -330,6 +330,12 @@ export interface NitroOptions extends PresetOptions { preview: string; deploy: string; }; + + // IIS + iis?: { + mergeConfig?: boolean; + overrideConfig?: boolean; + }; } declare global {