From ecca1754c6a9de0b9c1bd981cc0fadb57a392fe7 Mon Sep 17 00:00:00 2001 From: MrBBot <bcoll@cloudflare.com> Date: Fri, 15 Mar 2024 18:21:48 +0000 Subject: [PATCH] chore: bump `esbuild` to `0.18.20` (#5213) --- .changeset/empty-kids-agree.md | 15 + .prettierignore | 4 + .../additional-modules/test/index.test.ts | 6 +- .../src/explicit-resource-management.js | 24 ++ fixtures/worker-app/src/index.js | 7 + fixtures/worker-app/tests/index.test.ts | 16 + package.json | 2 +- packages/cli/package.json | 2 +- packages/miniflare/package.json | 2 +- packages/miniflare/scripts/build.mjs | 32 +- packages/vitest-pool-workers/package.json | 2 +- packages/wrangler/package.json | 2 +- .../wrangler/src/__tests__/deploy.test.ts | 7 +- .../wrangler/src/__tests__/middleware.test.ts | 10 +- .../src/__tests__/pages/deploy.test.ts | 79 ++--- .../__tests__/pages/functions-build.test.ts | 15 + .../src/deployment-bundle/bundle-reporter.ts | 8 +- .../wrangler/src/deployment-bundle/bundle.ts | 6 + packages/wrangler/templates/symbol-dispose.js | 6 + pnpm-lock.yaml | 326 +++--------------- 20 files changed, 227 insertions(+), 344 deletions(-) create mode 100644 .changeset/empty-kids-agree.md create mode 100644 fixtures/worker-app/src/explicit-resource-management.js create mode 100644 packages/wrangler/templates/symbol-dispose.js diff --git a/.changeset/empty-kids-agree.md b/.changeset/empty-kids-agree.md new file mode 100644 index 0000000000000..88fec8dd41644 --- /dev/null +++ b/.changeset/empty-kids-agree.md @@ -0,0 +1,15 @@ +--- +"wrangler": major +--- + +feature: bump `esbuild` to [`0.18.20`](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md#01820) + +Previously, Wrangler used `esbuild@0.17.19` when bundling your Worker. Notable changes include: + +- [Breaking changes](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md#0180) to `tsconfig.json` support +- Support for [auto-accessors](https://github.com/tc39/proposal-grouped-and-auto-accessors?tab=readme-ov-file#auto-accessors) +- Support for [explicit resource management](https://github.com/tc39/proposal-explicit-resource-management) with `using` declarations + +Note `esbuild` only transforms `using` syntax by default, relying on runtime support for `Symbol.dispose` and `Symbol.asyncDispose`. The Workers runtime doesn't provide these symbols yet, so Wrangler automatically injects polyfills for them. This allows you to use `using` without any additional changes. + +Unfortunately, we currently aren't able to bump to [`0.19.0`](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md#0190) and above. This version changes how dynamic `import()`s are handled in a way that's incompatible with Wrangler's own module collection behaviour. We're currently investigating potential workarounds. diff --git a/.prettierignore b/.prettierignore index 869dc7c3ac899..5f1757f36563a 100644 --- a/.prettierignore +++ b/.prettierignore @@ -53,3 +53,7 @@ packages/create-cloudflare/templates/**/*.* # support this syntax so exclude those files. fixtures/vitest-pool-workers-examples/basics-unit-integration-self/src/index.ts fixtures/vitest-pool-workers-examples/queues/src/index.ts + +# Prettier 2 doesn't support `using` syntax. We'd like to test this syntax works +# so ignore files containing it until we upgrade to Prettier 3. +fixtures/worker-app/src/explicit-resource-management.js diff --git a/fixtures/additional-modules/test/index.test.ts b/fixtures/additional-modules/test/index.test.ts index d2e06519e0094..2fe144df524ae 100644 --- a/fixtures/additional-modules/test/index.test.ts +++ b/fixtures/additional-modules/test/index.test.ts @@ -166,7 +166,11 @@ describe("find_additional_modules deploy", () => { const bundledEntryPath = path.join(outDir, "index.js"); const bundledEntry = await fs.readFile(bundledEntryPath, "utf8"); expect(bundledEntry).toMatchInlineSnapshot(` - "// src/index.ts + "// ../../packages/wrangler/templates/symbol-dispose.js + Symbol.dispose ??= Symbol("Symbol.dispose"); + Symbol.asyncDispose ??= Symbol("Symbol.asyncDispose"); + + // src/index.ts import common from "./common.cjs"; // src/dep.ts diff --git a/fixtures/worker-app/src/explicit-resource-management.js b/fixtures/worker-app/src/explicit-resource-management.js new file mode 100644 index 0000000000000..cffcd2f8f1817 --- /dev/null +++ b/fixtures/worker-app/src/explicit-resource-management.js @@ -0,0 +1,24 @@ +/** @param {string[]} logs */ +function connect(logs) { + logs.push("Connected"); + return { + send(message) { + logs.push(`Sent ${message}`); + }, + [Symbol.dispose]() { + logs.push("Disconnected synchronously"); + }, + async [Symbol.asyncDispose]() { + logs.push("Disconnected asynchronously"); + }, + }; +} + +/** @param {string[]} logs */ +export async function testExplicitResourceManagement(logs) { + using syncConnect = connect(logs); + await using asyncConnect = connect(logs); + + syncConnect.send("hello"); + asyncConnect.send("goodbye"); +} diff --git a/fixtures/worker-app/src/index.js b/fixtures/worker-app/src/index.js index e02a2b6d2b244..bab2638e72e2e 100644 --- a/fixtures/worker-app/src/index.js +++ b/fixtures/worker-app/src/index.js @@ -1,6 +1,7 @@ import cookie from "cookie"; import { randomBytes } from "isomorphic-random-example"; import { now } from "./dep"; +import { testExplicitResourceManagement } from "./explicit-resource-management"; import { logErrors } from "./log"; console.log("startup log"); @@ -40,6 +41,12 @@ export default { ], }); + if (pathname === "/explicit-resource-management") { + const logs = []; + await testExplicitResourceManagement(logs); + return Response.json(logs); + } + if (request.headers.get("X-Test-URL") !== null) { return new Response(request.url); } diff --git a/fixtures/worker-app/tests/index.test.ts b/fixtures/worker-app/tests/index.test.ts index 1356f90e89a87..d99710d949fc9 100644 --- a/fixtures/worker-app/tests/index.test.ts +++ b/fixtures/worker-app/tests/index.test.ts @@ -157,4 +157,20 @@ describe("'wrangler dev' correctly renders pages", () => { tag: expect.any(String), }); }); + + it("uses explicit resource management", async ({ expect }) => { + const response = await fetch( + `http://${ip}:${port}/explicit-resource-management` + ); + expect(await response.json()).toMatchInlineSnapshot(` + [ + "Connected", + "Connected", + "Sent hello", + "Sent goodbye", + "Disconnected asynchronously", + "Disconnected synchronously", + ] + `); + }); }); diff --git a/package.json b/package.json index 955d514bf7343..b7e4b0bcfa8bf 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@turbo/gen": "^1.10.13", "@vue/compiler-sfc": "^3.3.4", "dotenv-cli": "^7.3.0", - "esbuild": "0.17.19", + "esbuild": "0.18.20", "turbo": "^1.10.14" }, "engines": { diff --git a/packages/cli/package.json b/packages/cli/package.json index b2913e588de6d..61ca53f993dac 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -29,7 +29,7 @@ "@typescript-eslint/eslint-plugin": "^5.55.0", "@typescript-eslint/parser": "^5.55.0", "chalk": "^2.4.2", - "esbuild": "^0.17.12", + "esbuild": "0.18.20", "log-update": "^5.0.1", "pnpm": "^8.6.11", "undici": "5.28.3" diff --git a/packages/miniflare/package.json b/packages/miniflare/package.json index adcaaa59aff40..0b455c54c005f 100644 --- a/packages/miniflare/package.json +++ b/packages/miniflare/package.json @@ -75,7 +75,7 @@ "concurrently": "^8.2.2", "devalue": "^4.3.0", "devtools-protocol": "^0.0.1182435", - "esbuild": "^0.16.17", + "esbuild": "0.18.20", "eslint": "^8.6.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-es": "^4.1.0", diff --git a/packages/miniflare/scripts/build.mjs b/packages/miniflare/scripts/build.mjs index e6979290efc04..383f9fc093f00 100644 --- a/packages/miniflare/scripts/build.mjs +++ b/packages/miniflare/scripts/build.mjs @@ -70,9 +70,9 @@ const rewriteNodeToInternalPlugin = { }; /** - * @type {Map<string, esbuild.BuildResult>} + * @type {Map<string, esbuild.BuildContext>} */ -const workersBuilders = new Map(); +const workerContexts = new Map(); /** * @type {esbuild.Plugin} */ @@ -93,9 +93,9 @@ const embedWorkersPlugin = { return { path: result.path, namespace }; }); build.onLoad({ filter: /.*/, namespace }, async (args) => { - let builder = workersBuilders.get(args.path); - if (builder === undefined) { - builder = await esbuild.build({ + let context = workerContexts.get(args.path); + if (context === undefined) { + context = await esbuild.context({ platform: "node", // Marks `node:*` imports as external format: "esm", target: "esnext", @@ -104,7 +104,6 @@ const embedWorkersPlugin = { sourcesContent: false, external: ["miniflare:shared", "miniflare:zod"], metafile: true, - incremental: watch, // Allow `rebuild()` calls if watching entryPoints: [args.path], minifySyntax: true, outdir: build.initialOptions.outdir, @@ -115,22 +114,21 @@ const embedWorkersPlugin = { ? [rewriteNodeToInternalPlugin] : [], }); - } else { - builder = await builder.rebuild(); + workerContexts.set(args.path, context); } - workersBuilders.set(args.path, builder); + const result = await context.rebuild(); await fs.mkdir("worker-metafiles", { recursive: true }); await fs.writeFile( path.join( "worker-metafiles", path.basename(args.path) + ".metafile.json" ), - JSON.stringify(builder.metafile) + JSON.stringify(result.metafile) ); let outPath = args.path.substring(workersRoot.length + 1); outPath = outPath.substring(0, outPath.lastIndexOf(".")) + ".js"; outPath = JSON.stringify(outPath); - const watchFiles = Object.keys(builder.metafile.inputs); + const watchFiles = Object.keys(result.metafile.inputs); const contents = ` import fs from "fs"; import path from "path"; @@ -164,7 +162,7 @@ async function buildPackage() { } const outPath = path.join(pkgRoot, "dist"); - await esbuild.build({ + const context = await esbuild.context({ platform: "node", format: "cjs", target: "esnext", @@ -187,11 +185,19 @@ async function buildPackage() { ], plugins: [embedWorkersPlugin], logLevel: watch ? "info" : "warning", - watch, outdir: outPath, outbase: pkgRoot, entryPoints: [indexPath, ...testPaths], }); + if (watch) { + await context.watch(); + } else { + await context.rebuild(); + await context.dispose(); + for (const workerContext of workerContexts.values()) { + await workerContext.dispose(); + } + } } await buildPackage(); diff --git a/packages/vitest-pool-workers/package.json b/packages/vitest-pool-workers/package.json index 8080ce34cda00..307fdff73e161 100644 --- a/packages/vitest-pool-workers/package.json +++ b/packages/vitest-pool-workers/package.json @@ -64,7 +64,7 @@ "birpc": "0.2.14", "cjs-module-lexer": "^1.2.3", "devalue": "^4.3.0", - "esbuild": "0.17.19", + "esbuild": "0.18.20", "miniflare": "workspace:*", "wrangler": "workspace:*", "zod": "^3.20.6" diff --git a/packages/wrangler/package.json b/packages/wrangler/package.json index 6b4c86258ac3b..76222cd153f8d 100644 --- a/packages/wrangler/package.json +++ b/packages/wrangler/package.json @@ -106,7 +106,7 @@ "@esbuild-plugins/node-modules-polyfill": "^0.2.2", "blake3-wasm": "^2.1.5", "chokidar": "^3.5.3", - "esbuild": "0.17.19", + "esbuild": "0.18.20", "miniflare": "workspace:*", "nanoid": "^3.3.3", "path-to-regexp": "^6.2.0", diff --git a/packages/wrangler/src/__tests__/deploy.test.ts b/packages/wrangler/src/__tests__/deploy.test.ts index 8226a5d0418bd..6ffe46043ad82 100644 --- a/packages/wrangler/src/__tests__/deploy.test.ts +++ b/packages/wrangler/src/__tests__/deploy.test.ts @@ -1964,8 +1964,13 @@ addEventListener('fetch', event => {});` } }` ); + // If this test fails in the future, it's likely the line number of the + // `ReferenceError` in `index.js` below is incorrect. To get the new + // number, run `wrangler deploy index.ts --dry-run --outdir=dist` with + // `index.ts` containing the contents above. Then look in `dist/index.js` + // for a line containing `x;`. This is the line number you want. mockDeployWithValidationError( - "Uncaught ReferenceError: x is not defined\n at index.js:2:1\n" + "Uncaught ReferenceError: x is not defined\n at index.js:6:1\n" ); mockSubDomainRequest(); diff --git a/packages/wrangler/src/__tests__/middleware.test.ts b/packages/wrangler/src/__tests__/middleware.test.ts index ced288231c810..9da7518302be9 100644 --- a/packages/wrangler/src/__tests__/middleware.test.ts +++ b/packages/wrangler/src/__tests__/middleware.test.ts @@ -784,7 +784,11 @@ describe("middleware", () => { .replace(/\/\/ .*/g, "") .trim() ).toMatchInlineSnapshot(` - "var src_default = { + "Symbol.dispose ??= Symbol(\\"Symbol.dispose\\"); + Symbol.asyncDispose ??= Symbol(\\"Symbol.asyncDispose\\"); + + + var src_default = { async fetch(request, env) { return Response.json(env); } @@ -827,7 +831,7 @@ describe("middleware", () => { } - var __Facade_ScheduledController__ = class { + var __Facade_ScheduledController__ = class ___Facade_ScheduledController__ { constructor(scheduledTime, cron, noRetry) { this.scheduledTime = scheduledTime; this.cron = cron; @@ -835,7 +839,7 @@ describe("middleware", () => { } #noRetry; noRetry() { - if (!(this instanceof __Facade_ScheduledController__)) { + if (!(this instanceof ___Facade_ScheduledController__)) { throw new TypeError(\\"Illegal invocation\\"); } this.#noRetry(); diff --git a/packages/wrangler/src/__tests__/pages/deploy.test.ts b/packages/wrangler/src/__tests__/pages/deploy.test.ts index 796d6040c48a8..8c839f3032d8b 100644 --- a/packages/wrangler/src/__tests__/pages/deploy.test.ts +++ b/packages/wrangler/src/__tests__/pages/deploy.test.ts @@ -20,6 +20,24 @@ import { normalizeProgressSteps } from "./project-upload.test"; import type { Project, UploadPayloadFile } from "../../pages/types"; import type { RestRequest } from "msw"; +function normaliseWorkerBundle(bundle: string): string { + // some fields in workerBundle, such as the undici form boundary + // or the file hashes, are randomly generated. Let's replace these + // dynamic values with static ones so we can properly test the + // contents of `workerBundle` + // see https://jestjs.io/docs/snapshot-testing#property-matchers + bundle = bundle.replace( + /------formdata-undici-0.[0-9]*/g, + "------formdata-undici-0.test" + ); + bundle = bundle.replace( + /bundledWorker-0.[0-9]*.mjs/g, + "bundledWorker-0.test.mjs" + ); + bundle = bundle.replace(/\/\/.+symbol-dispose\.js/, "// symbol-dispose.js"); + return bundle; +} + describe("pages deploy", () => { const std = mockConsoleMethods(); const workerHasD1Shim = (contents: string) => contents.includes("D1_ERROR"); @@ -2056,24 +2074,10 @@ and that at least one include rule is provided. } `); - // some fields in workerBundle, such as the undici form boundary - // or the file hashes, are randomly generated. Let's replace these - // dynamic values with static ones so we can properly test the - // contents of `workerBundle` - // see https://jestjs.io/docs/snapshot-testing#property-matchers - let workerBundleWithConstantData = workerBundle.replace( - /------formdata-undici-0.[0-9]*/g, - "------formdata-undici-0.test" - ); - workerBundleWithConstantData = workerBundleWithConstantData.replace( - /bundledWorker-0.[0-9]*.mjs/g, - "bundledWorker-0.test.mjs" - ); - // we care about a couple of things here, like the presence of `metadata`, // `bundledWorker`, the wasm import, etc., and since `workerBundle` is // small enough, let's go ahead and snapshot test the whole thing - expect(workerBundleWithConstantData).toMatchInlineSnapshot(` + expect(normaliseWorkerBundle(workerBundle)).toMatchInlineSnapshot(` "------formdata-undici-0.test Content-Disposition: form-data; name=\\"metadata\\" @@ -2082,6 +2086,10 @@ and that at least one include rule is provided. Content-Disposition: form-data; name=\\"bundledWorker-0.test.mjs\\"; filename=\\"bundledWorker-0.test.mjs\\" Content-Type: application/javascript+module + // symbol-dispose.js + Symbol.dispose ??= Symbol(\\"Symbol.dispose\\"); + Symbol.asyncDispose ??= Symbol(\\"Symbol.asyncDispose\\"); + // _worker.js var worker_default = { async fetch(request, env) { @@ -2380,24 +2388,11 @@ and that at least one include rule is provided. } `); - // some fields in workerBundle, such as the undici form boundary - // or the file hashes, are randomly generated. Let's replace these - // dynamic values with static ones so we can properly test the - // contents of `workerBundle` - // see https://jestjs.io/docs/snapshot-testing#property-matchers - let workerBundleWithConstantData = customWorkerBundle.replace( - /------formdata-undici-0.[0-9]*/g, - "------formdata-undici-0.test" - ); - workerBundleWithConstantData = workerBundleWithConstantData.replace( - /bundledWorker-0.[0-9]*.mjs/g, - "bundledWorker-0.test.mjs" - ); - // we care about a couple of things here, like the presence of `metadata`, // `bundledWorker`, the wasm import, etc., and since `workerBundle` is // small enough, let's go ahead and snapshot test the whole thing - expect(workerBundleWithConstantData).toMatchInlineSnapshot(` + expect(normaliseWorkerBundle(customWorkerBundle)) + .toMatchInlineSnapshot(` "------formdata-undici-0.test Content-Disposition: form-data; name=\\"metadata\\" @@ -2406,6 +2401,10 @@ and that at least one include rule is provided. Content-Disposition: form-data; name=\\"bundledWorker-0.test.mjs\\"; filename=\\"bundledWorker-0.test.mjs\\" Content-Type: application/javascript+module + // symbol-dispose.js + Symbol.dispose ??= Symbol(\\"Symbol.dispose\\"); + Symbol.asyncDispose ??= Symbol(\\"Symbol.asyncDispose\\"); + // _worker.js var worker_default = { async fetch(request, env) { @@ -2803,19 +2802,9 @@ async function onRequest() { "/README.md": "13a03eaf24ae98378acd36ea00f77f2f", } `); - // some fields in workerBundle, such as the undici form boundary - // or the file hashes, are randomly generated. Let's replace these - // dynamic values with static ones so we can properly test the - // contents of `workerBundle` - // see https://jestjs.io/docs/snapshot-testing#property-matchers - let workerBundleWithConstantData = workerBundle.replace( - /------formdata-undici-0.[0-9]*/g, - "------formdata-undici-0.test" - ); - workerBundleWithConstantData = workerBundleWithConstantData.replace( - /bundledWorker-0.[0-9]*.mjs/g, - "bundledWorker-0.test.mjs" - ); + + let workerBundleWithConstantData = + normaliseWorkerBundle(workerBundle); workerBundleWithConstantData = workerBundleWithConstantData.replace( /[0-9a-z]*-hello.wasm/g, "test-hello.wasm" @@ -2837,6 +2826,10 @@ async function onRequest() { Content-Disposition: form-data; name=\\"bundledWorker-0.test.mjs\\"; filename=\\"bundledWorker-0.test.mjs\\" Content-Type: application/javascript+module + // symbol-dispose.js + Symbol.dispose ??= Symbol(\\"Symbol.dispose\\"); + Symbol.asyncDispose ??= Symbol(\\"Symbol.asyncDispose\\"); + // _worker.js import wasm from \\"./test-hello.wasm\\"; import html from \\"./test-hello.html\\"; diff --git a/packages/wrangler/src/__tests__/pages/functions-build.test.ts b/packages/wrangler/src/__tests__/pages/functions-build.test.ts index 2cdcf2992fea6..484e57153f077 100644 --- a/packages/wrangler/src/__tests__/pages/functions-build.test.ts +++ b/packages/wrangler/src/__tests__/pages/functions-build.test.ts @@ -214,6 +214,7 @@ export default { [ [/------formdata-undici-0.[0-9]*/g, "------formdata-undici-0.test"], [/functionsWorker-0.[0-9]*.js/g, "functionsWorker-0.test.js"], + [/\/\/.+symbol-dispose\.js/, "// symbol-dispose.js"], ] ); @@ -226,6 +227,10 @@ export default { Content-Disposition: form-data; name=\\"functionsWorker-0.test.js\\"; filename=\\"functionsWorker-0.test.js\\" Content-Type: application/javascript+module + // symbol-dispose.js + Symbol.dispose ??= Symbol(\\"Symbol.dispose\\"); + Symbol.asyncDispose ??= Symbol(\\"Symbol.asyncDispose\\"); + // ../utils/meaning-of-life.js var MEANING_OF_LIFE = 21; @@ -360,6 +365,7 @@ export default { [ [/------formdata-undici-0.[0-9]*/g, "------formdata-undici-0.test"], [/functionsWorker-0.[0-9]*.js/g, "functionsWorker-0.test.js"], + [/\/\/.+symbol-dispose\.js/, "// symbol-dispose.js"], ] ); @@ -372,6 +378,10 @@ export default { Content-Disposition: form-data; name=\\"functionsWorker-0.test.js\\"; filename=\\"functionsWorker-0.test.js\\" Content-Type: application/javascript+module + // symbol-dispose.js + Symbol.dispose ??= Symbol(\\"Symbol.dispose\\"); + Symbol.asyncDispose ??= Symbol(\\"Symbol.asyncDispose\\"); + // _worker.js var worker_default = { async fetch(request, env) { @@ -490,6 +500,7 @@ export const cat = "dog";` [/------formdata-undici-0.[0-9]*/g, "------formdata-undici-0.test"], [/bundledWorker-0.[0-9]*.mjs/g, "bundledWorker-0.test.mjs"], [/bundledWorker-0.[0-9]*.map/g, "bundledWorker-0.test.map"], + [/\/\/.+symbol-dispose\.js/, "// symbol-dispose.js"], ] ); @@ -502,6 +513,10 @@ export const cat = "dog";` Content-Disposition: form-data; name=\\"bundledWorker-0.test.mjs\\"; filename=\\"bundledWorker-0.test.mjs\\" Content-Type: application/javascript+module + // symbol-dispose.js + Symbol.dispose ??= Symbol(\\"Symbol.dispose\\"); + Symbol.asyncDispose ??= Symbol(\\"Symbol.asyncDispose\\"); + // _worker.js/index.js import { cat } from \\"./cat.js\\"; import { dog } from \\"./dog.mjs\\"; diff --git a/packages/wrangler/src/deployment-bundle/bundle-reporter.ts b/packages/wrangler/src/deployment-bundle/bundle-reporter.ts index 6b700a744e35e..1a21d8b7640c4 100644 --- a/packages/wrangler/src/deployment-bundle/bundle-reporter.ts +++ b/packages/wrangler/src/deployment-bundle/bundle-reporter.ts @@ -1,7 +1,9 @@ import { Blob } from "node:buffer"; +import path from "node:path"; import { gzipSync } from "node:zlib"; import chalk from "chalk"; import { logger } from "../logger"; +import { getBasePath } from "../paths"; import type { CfModule } from "./worker"; import type { Metafile } from "esbuild"; @@ -53,7 +55,11 @@ export function printOffendingDependencies( ) { const warning: string[] = []; - const dependenciesSorted = Object.entries(dependencies); + const basePath = getBasePath(); + const dependenciesSorted = Object.entries(dependencies).filter( + // Ignore internal dependencies (note `dep` may be relative) + ([dep]) => !path.resolve(dep).includes(basePath) + ); dependenciesSorted.sort( ([_adep, aData], [_bdep, bData]) => bData.bytesInOutput - aData.bytesInOutput diff --git a/packages/wrangler/src/deployment-bundle/bundle.ts b/packages/wrangler/src/deployment-bundle/bundle.ts index 5e7950f2a0aa6..6eabefb15e155 100644 --- a/packages/wrangler/src/deployment-bundle/bundle.ts +++ b/packages/wrangler/src/deployment-bundle/bundle.ts @@ -269,6 +269,12 @@ export async function bundleWorker( // imported in this injected module. Importing that module registers watchers. inject.push(path.resolve(getBasePath(), "templates/modules-watch-stub.js")); + // Whilst `esbuild` includes support for transforming `using` and + // `await using` syntax, it doesn't polyfill missing built-in `Symbol`s. + // These aren't defined by the version of V8 `workerd` uses at the moment, + // so polyfill them if they're not set. + inject.push(path.resolve(getBasePath(), "templates/symbol-dispose.js")); + const buildOptions: esbuild.BuildOptions & { metafile: true } = { // Don't use entryFile here as the file may have been changed when applying the middleware entryPoints: [entry.file], diff --git a/packages/wrangler/templates/symbol-dispose.js b/packages/wrangler/templates/symbol-dispose.js new file mode 100644 index 0000000000000..4177581f07f14 --- /dev/null +++ b/packages/wrangler/templates/symbol-dispose.js @@ -0,0 +1,6 @@ +// Whilst `esbuild` includes support for transforming `using` and `await using` +// syntax, it doesn't polyfill missing built-in `Symbol`s. These aren't defined +// by the version of V8 `workerd` uses at the moment, so polyfill them if +// they're not set. +Symbol.dispose ??= Symbol("Symbol.dispose"); +Symbol.asyncDispose ??= Symbol("Symbol.asyncDispose"); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5cb0813afe18c..3fd98182b3ab6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,7 +42,7 @@ importers: version: 7.0.3 esbuild-register: specifier: ^3.5.0 - version: 3.5.0(esbuild@0.17.19) + version: 3.5.0(esbuild@0.18.20) ioredis: specifier: ^4.28.2 version: 4.28.4 @@ -90,8 +90,8 @@ importers: specifier: ^7.3.0 version: 7.3.0 esbuild: - specifier: 0.17.19 - version: 0.17.19 + specifier: 0.18.20 + version: 0.18.20 turbo: specifier: ^1.10.14 version: 1.10.14 @@ -672,7 +672,7 @@ importers: version: 20.8.3 jose: specifier: ^5.2.2 - version: 5.2.2 + version: 5.2.3 miniflare: specifier: workspace:* version: link:../../packages/miniflare @@ -744,8 +744,8 @@ importers: specifier: ^2.4.2 version: 2.4.2 esbuild: - specifier: ^0.17.12 - version: 0.17.19 + specifier: 0.18.20 + version: 0.18.20 log-update: specifier: ^5.0.1 version: 5.0.1 @@ -1103,8 +1103,8 @@ importers: specifier: ^0.0.1182435 version: 0.0.1182435 esbuild: - specifier: ^0.16.17 - version: 0.16.17 + specifier: 0.18.20 + version: 0.18.20 eslint: specifier: ^8.6.0 version: 8.49.0 @@ -1305,8 +1305,8 @@ importers: specifier: ^4.3.0 version: 4.3.2 esbuild: - specifier: 0.17.19 - version: 0.17.19 + specifier: 0.18.20 + version: 0.18.20 miniflare: specifier: workspace:* version: link:../miniflare @@ -1520,10 +1520,10 @@ importers: version: link:../kv-asset-handler '@esbuild-plugins/node-globals-polyfill': specifier: ^0.2.3 - version: 0.2.3(esbuild@0.17.19) + version: 0.2.3(esbuild@0.18.20) '@esbuild-plugins/node-modules-polyfill': specifier: ^0.2.2 - version: 0.2.2(esbuild@0.17.19) + version: 0.2.2(esbuild@0.18.20) blake3-wasm: specifier: ^2.1.5 version: 2.1.5 @@ -1531,8 +1531,8 @@ importers: specifier: ^3.5.3 version: 3.5.3 esbuild: - specifier: 0.17.19 - version: 0.17.19 + specifier: 0.18.20 + version: 0.18.20 miniflare: specifier: workspace:* version: link:../miniflare @@ -1696,7 +1696,7 @@ importers: version: 1.3.1 esbuild-jest: specifier: 0.5.0 - version: 0.5.0(esbuild@0.17.19)(supports-color@9.2.2) + version: 0.5.0(esbuild@0.18.20)(supports-color@9.2.2) execa: specifier: ^6.1.0 version: 6.1.0 @@ -4266,20 +4266,20 @@ packages: get-tsconfig: 4.7.0 dev: true - /@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19): + /@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.18.20): resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} peerDependencies: esbuild: '*' dependencies: - esbuild: 0.17.19 + esbuild: 0.18.20 dev: false - /@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.17.19): + /@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.18.20): resolution: {integrity: sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==} peerDependencies: esbuild: '*' dependencies: - esbuild: 0.17.19 + esbuild: 0.18.20 escape-string-regexp: 4.0.0 rollup-plugin-node-polyfills: 0.2.1 dev: false @@ -4292,15 +4292,6 @@ packages: requiresBuild: true optional: true - /@esbuild/android-arm64@0.16.17: - resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm64@0.16.3: resolution: {integrity: sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg==} engines: {node: '>=12'} @@ -4316,6 +4307,7 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: true optional: true /@esbuild/android-arm64@0.17.6: @@ -4333,7 +4325,6 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/android-arm64@0.19.12: @@ -4344,15 +4335,6 @@ packages: requiresBuild: true optional: true - /@esbuild/android-arm@0.16.17: - resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm@0.16.3: resolution: {integrity: sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA==} engines: {node: '>=12'} @@ -4368,6 +4350,7 @@ packages: cpu: [arm] os: [android] requiresBuild: true + dev: true optional: true /@esbuild/android-arm@0.17.6: @@ -4385,7 +4368,6 @@ packages: cpu: [arm] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/android-arm@0.19.12: @@ -4396,15 +4378,6 @@ packages: requiresBuild: true optional: true - /@esbuild/android-x64@0.16.17: - resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-x64@0.16.3: resolution: {integrity: sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ==} engines: {node: '>=12'} @@ -4420,6 +4393,7 @@ packages: cpu: [x64] os: [android] requiresBuild: true + dev: true optional: true /@esbuild/android-x64@0.17.6: @@ -4437,7 +4411,6 @@ packages: cpu: [x64] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/android-x64@0.19.12: @@ -4448,15 +4421,6 @@ packages: requiresBuild: true optional: true - /@esbuild/darwin-arm64@0.16.17: - resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-arm64@0.16.3: resolution: {integrity: sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw==} engines: {node: '>=12'} @@ -4472,6 +4436,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true optional: true /@esbuild/darwin-arm64@0.17.6: @@ -4489,7 +4454,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: true optional: true /@esbuild/darwin-arm64@0.19.12: @@ -4500,15 +4464,6 @@ packages: requiresBuild: true optional: true - /@esbuild/darwin-x64@0.16.17: - resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-x64@0.16.3: resolution: {integrity: sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ==} engines: {node: '>=12'} @@ -4524,6 +4479,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true optional: true /@esbuild/darwin-x64@0.17.6: @@ -4541,7 +4497,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: true optional: true /@esbuild/darwin-x64@0.19.12: @@ -4552,15 +4507,6 @@ packages: requiresBuild: true optional: true - /@esbuild/freebsd-arm64@0.16.17: - resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-arm64@0.16.3: resolution: {integrity: sha512-nJansp3sSXakNkOD5i5mIz2Is/HjzIhFs49b1tjrPrpCmwgBmH9SSzhC/Z1UqlkivqMYkhfPwMw1dGFUuwmXhw==} engines: {node: '>=12'} @@ -4576,6 +4522,7 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + dev: true optional: true /@esbuild/freebsd-arm64@0.17.6: @@ -4593,7 +4540,6 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true - dev: true optional: true /@esbuild/freebsd-arm64@0.19.12: @@ -4604,15 +4550,6 @@ packages: requiresBuild: true optional: true - /@esbuild/freebsd-x64@0.16.17: - resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-x64@0.16.3: resolution: {integrity: sha512-TfoDzLw+QHfc4a8aKtGSQ96Wa+6eimljjkq9HKR0rHlU83vw8aldMOUSJTUDxbcUdcgnJzPaX8/vGWm7vyV7ug==} engines: {node: '>=12'} @@ -4628,6 +4565,7 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: true optional: true /@esbuild/freebsd-x64@0.17.6: @@ -4645,7 +4583,6 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true - dev: true optional: true /@esbuild/freebsd-x64@0.19.12: @@ -4656,15 +4593,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-arm64@0.16.17: - resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm64@0.16.3: resolution: {integrity: sha512-7I3RlsnxEFCHVZNBLb2w7unamgZ5sVwO0/ikE2GaYvYuUQs9Qte/w7TqWcXHtCwxvZx/2+F97ndiUQAWs47ZfQ==} engines: {node: '>=12'} @@ -4680,6 +4608,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-arm64@0.17.6: @@ -4697,7 +4626,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-arm64@0.19.12: @@ -4708,15 +4636,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-arm@0.16.17: - resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm@0.16.3: resolution: {integrity: sha512-VwswmSYwVAAq6LysV59Fyqk3UIjbhuc6wb3vEcJ7HEJUtFuLK9uXWuFoH1lulEbE4+5GjtHi3MHX+w1gNHdOWQ==} engines: {node: '>=12'} @@ -4732,6 +4651,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-arm@0.17.6: @@ -4749,7 +4669,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-arm@0.19.12: @@ -4760,15 +4679,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-ia32@0.16.17: - resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ia32@0.16.3: resolution: {integrity: sha512-X8FDDxM9cqda2rJE+iblQhIMYY49LfvW4kaEjoFbTTQ4Go8G96Smj2w3BRTwA8IHGoi9dPOPGAX63dhuv19UqA==} engines: {node: '>=12'} @@ -4784,6 +4694,7 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-ia32@0.17.6: @@ -4801,7 +4712,6 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-ia32@0.19.12: @@ -4812,15 +4722,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-loong64@0.16.17: - resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64@0.16.3: resolution: {integrity: sha512-hIbeejCOyO0X9ujfIIOKjBjNAs9XD/YdJ9JXAy1lHA+8UXuOqbFe4ErMCqMr8dhlMGBuvcQYGF7+kO7waj2KHw==} engines: {node: '>=12'} @@ -4836,6 +4737,7 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-loong64@0.17.6: @@ -4853,7 +4755,6 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-loong64@0.19.12: @@ -4864,15 +4765,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-mips64el@0.16.17: - resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-mips64el@0.16.3: resolution: {integrity: sha512-znFRzICT/V8VZQMt6rjb21MtAVJv/3dmKRMlohlShrbVXdBuOdDrGb+C2cZGQAR8RFyRe7HS6klmHq103WpmVw==} engines: {node: '>=12'} @@ -4888,6 +4780,7 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-mips64el@0.17.6: @@ -4905,7 +4798,6 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-mips64el@0.19.12: @@ -4916,15 +4808,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-ppc64@0.16.17: - resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ppc64@0.16.3: resolution: {integrity: sha512-EV7LuEybxhXrVTDpbqWF2yehYRNz5e5p+u3oQUS2+ZFpknyi1NXxr8URk4ykR8Efm7iu04//4sBg249yNOwy5Q==} engines: {node: '>=12'} @@ -4940,6 +4823,7 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-ppc64@0.17.6: @@ -4957,7 +4841,6 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-ppc64@0.19.12: @@ -4968,15 +4851,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-riscv64@0.16.17: - resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-riscv64@0.16.3: resolution: {integrity: sha512-uDxqFOcLzFIJ+r/pkTTSE9lsCEaV/Y6rMlQjUI9BkzASEChYL/aSQjZjchtEmdnVxDKETnUAmsaZ4pqK1eE5BQ==} engines: {node: '>=12'} @@ -4992,6 +4866,7 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-riscv64@0.17.6: @@ -5009,7 +4884,6 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-riscv64@0.19.12: @@ -5020,15 +4894,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-s390x@0.16.17: - resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-s390x@0.16.3: resolution: {integrity: sha512-NbeREhzSxYwFhnCAQOQZmajsPYtX71Ufej3IQ8W2Gxskfz9DK58ENEju4SbpIj48VenktRASC52N5Fhyf/aliQ==} engines: {node: '>=12'} @@ -5044,6 +4909,7 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-s390x@0.17.6: @@ -5061,7 +4927,6 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-s390x@0.19.12: @@ -5072,15 +4937,6 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-x64@0.16.17: - resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-x64@0.16.3: resolution: {integrity: sha512-SDiG0nCixYO9JgpehoKgScwic7vXXndfasjnD5DLbp1xltANzqZ425l7LSdHynt19UWOcDjG9wJJzSElsPvk0w==} engines: {node: '>=12'} @@ -5096,6 +4952,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /@esbuild/linux-x64@0.17.6: @@ -5113,7 +4970,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-x64@0.19.12: @@ -5124,15 +4980,6 @@ packages: requiresBuild: true optional: true - /@esbuild/netbsd-x64@0.16.17: - resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/netbsd-x64@0.16.3: resolution: {integrity: sha512-AzbsJqiHEq1I/tUvOfAzCY15h4/7Ivp3ff/o1GpP16n48JMNAtbW0qui2WCgoIZArEHD0SUQ95gvR0oSO7ZbdA==} engines: {node: '>=12'} @@ -5148,6 +4995,7 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + dev: true optional: true /@esbuild/netbsd-x64@0.17.6: @@ -5165,7 +5013,6 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true - dev: true optional: true /@esbuild/netbsd-x64@0.19.12: @@ -5176,15 +5023,6 @@ packages: requiresBuild: true optional: true - /@esbuild/openbsd-x64@0.16.17: - resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/openbsd-x64@0.16.3: resolution: {integrity: sha512-gSABi8qHl8k3Cbi/4toAzHiykuBuWLZs43JomTcXkjMZVkp0gj3gg9mO+9HJW/8GB5H89RX/V0QP4JGL7YEEVg==} engines: {node: '>=12'} @@ -5200,6 +5038,7 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + dev: true optional: true /@esbuild/openbsd-x64@0.17.6: @@ -5217,7 +5056,6 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true - dev: true optional: true /@esbuild/openbsd-x64@0.19.12: @@ -5228,15 +5066,6 @@ packages: requiresBuild: true optional: true - /@esbuild/sunos-x64@0.16.17: - resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - /@esbuild/sunos-x64@0.16.3: resolution: {integrity: sha512-SF9Kch5Ete4reovvRO6yNjMxrvlfT0F0Flm+NPoUw5Z4Q3r1d23LFTgaLwm3Cp0iGbrU/MoUI+ZqwCv5XJijCw==} engines: {node: '>=12'} @@ -5252,6 +5081,7 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + dev: true optional: true /@esbuild/sunos-x64@0.17.6: @@ -5269,7 +5099,6 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true - dev: true optional: true /@esbuild/sunos-x64@0.19.12: @@ -5280,15 +5109,6 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-arm64@0.16.17: - resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-arm64@0.16.3: resolution: {integrity: sha512-u5aBonZIyGopAZyOnoPAA6fGsDeHByZ9CnEzyML9NqntK6D/xl5jteZUKm/p6nD09+v3pTM6TuUIqSPcChk5gg==} engines: {node: '>=12'} @@ -5304,6 +5124,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true optional: true /@esbuild/win32-arm64@0.17.6: @@ -5321,7 +5142,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: true optional: true /@esbuild/win32-arm64@0.19.12: @@ -5332,15 +5152,6 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-ia32@0.16.17: - resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-ia32@0.16.3: resolution: {integrity: sha512-GlgVq1WpvOEhNioh74TKelwla9KDuAaLZrdxuuUgsP2vayxeLgVc+rbpIv0IYF4+tlIzq2vRhofV+KGLD+37EQ==} engines: {node: '>=12'} @@ -5356,6 +5167,7 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true optional: true /@esbuild/win32-ia32@0.17.6: @@ -5373,7 +5185,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: true optional: true /@esbuild/win32-ia32@0.19.12: @@ -5384,15 +5195,6 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-x64@0.16.17: - resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-x64@0.16.3: resolution: {integrity: sha512-5/JuTd8OWW8UzEtyf19fbrtMJENza+C9JoPIkvItgTBQ1FO2ZLvjbPO6Xs54vk0s5JB5QsfieUEshRQfu7ZHow==} engines: {node: '>=12'} @@ -5408,6 +5210,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true optional: true /@esbuild/win32-x64@0.17.6: @@ -5425,7 +5228,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: true optional: true /@esbuild/win32-x64@0.19.12: @@ -11223,7 +11025,7 @@ packages: resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==} dev: true - /esbuild-jest@0.5.0(esbuild@0.17.19)(supports-color@9.2.2): + /esbuild-jest@0.5.0(esbuild@0.18.20)(supports-color@9.2.2): resolution: {integrity: sha512-AMZZCdEpXfNVOIDvURlqYyHwC8qC1/BFjgsrOiSL1eyiIArVtHL8YAC83Shhn16cYYoAWEW17yZn0W/RJKJKHQ==} peerDependencies: esbuild: '>=0.8.50' @@ -11231,7 +11033,7 @@ packages: '@babel/core': 7.22.5(supports-color@9.2.2) '@babel/plugin-transform-modules-commonjs': 7.22.5(@babel/core@7.22.5) babel-jest: 26.6.3(@babel/core@7.22.5)(supports-color@9.2.2) - esbuild: 0.17.19 + esbuild: 0.18.20 transitivePeerDependencies: - supports-color dev: true @@ -11257,47 +11059,17 @@ packages: - supports-color dev: true - /esbuild-register@3.5.0(esbuild@0.17.19): + /esbuild-register@3.5.0(esbuild@0.18.20): resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} peerDependencies: esbuild: '>=0.12 <1' dependencies: debug: 4.3.4(supports-color@9.2.2) - esbuild: 0.17.19 + esbuild: 0.18.20 transitivePeerDependencies: - supports-color dev: false - /esbuild@0.16.17: - resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.16.17 - '@esbuild/android-arm64': 0.16.17 - '@esbuild/android-x64': 0.16.17 - '@esbuild/darwin-arm64': 0.16.17 - '@esbuild/darwin-x64': 0.16.17 - '@esbuild/freebsd-arm64': 0.16.17 - '@esbuild/freebsd-x64': 0.16.17 - '@esbuild/linux-arm': 0.16.17 - '@esbuild/linux-arm64': 0.16.17 - '@esbuild/linux-ia32': 0.16.17 - '@esbuild/linux-loong64': 0.16.17 - '@esbuild/linux-mips64el': 0.16.17 - '@esbuild/linux-ppc64': 0.16.17 - '@esbuild/linux-riscv64': 0.16.17 - '@esbuild/linux-s390x': 0.16.17 - '@esbuild/linux-x64': 0.16.17 - '@esbuild/netbsd-x64': 0.16.17 - '@esbuild/openbsd-x64': 0.16.17 - '@esbuild/sunos-x64': 0.16.17 - '@esbuild/win32-arm64': 0.16.17 - '@esbuild/win32-ia32': 0.16.17 - '@esbuild/win32-x64': 0.16.17 - dev: true - /esbuild@0.16.3: resolution: {integrity: sha512-71f7EjPWTiSguen8X/kxEpkAS7BFHwtQKisCDDV3Y4GLGWBaoSCyD5uXkaUew6JDzA9FEN1W23mdnSwW9kqCeg==} engines: {node: '>=12'} @@ -11356,6 +11128,7 @@ packages: '@esbuild/win32-arm64': 0.17.19 '@esbuild/win32-ia32': 0.17.19 '@esbuild/win32-x64': 0.17.19 + dev: true /esbuild@0.17.6: resolution: {integrity: sha512-TKFRp9TxrJDdRWfSsSERKEovm6v30iHnrjlcGhLBOtReE28Yp1VSBRfO3GTaOFMoxsNerx4TjrhzSuma9ha83Q==} @@ -11415,7 +11188,6 @@ packages: '@esbuild/win32-arm64': 0.18.20 '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 - dev: true /esbuild@0.19.12: resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} @@ -14944,8 +14716,8 @@ packages: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} dev: true - /jose@5.2.2: - resolution: {integrity: sha512-/WByRr4jDcsKlvMd1dRJnPfS1GVO3WuKyaurJ/vvXcOaUQO8rnNObCQMlv/5uCceVQIq5Q4WLF44ohsdiTohdg==} + /jose@5.2.3: + resolution: {integrity: sha512-KUXdbctm1uHVL8BYhnyHkgp3zDX5KW8ZhAKVFEfUbU2P8Alpzjb+48hHvjOdQIyPshoblhzsuqOwEEAbtHVirA==} dev: true /js-levenshtein@1.1.6: @@ -20452,7 +20224,7 @@ packages: dependencies: '@types/node': 20.1.7 esbuild: 0.17.19 - postcss: 8.4.24 + postcss: 8.4.38 rollup: 3.25.1 optionalDependencies: fsevents: 2.3.3