From 944edc070ae7b5b3e5404a9fe8905fdd1a40ebac Mon Sep 17 00:00:00 2001 From: James Ross Date: Sun, 8 Oct 2023 16:06:45 +0100 Subject: [PATCH 01/10] feat: support npm resolution for wasm (etc.) imports --- packages/wrangler/package.json | 1 + .../deployment-bundle/module-collection.ts | 39 ++++++++++++++++++- pnpm-lock.yaml | 24 ++++++------ 3 files changed, 52 insertions(+), 12 deletions(-) diff --git a/packages/wrangler/package.json b/packages/wrangler/package.json index d984440442cf..dc0611a2c1ee 100644 --- a/packages/wrangler/package.json +++ b/packages/wrangler/package.json @@ -110,6 +110,7 @@ "miniflare": "3.20231002.1", "nanoid": "^3.3.3", "path-to-regexp": "^6.2.0", + "resolve.exports": "^2.0.2", "selfsigned": "^2.0.1", "source-map": "0.6.1", "source-map-support": "0.5.21", diff --git a/packages/wrangler/src/deployment-bundle/module-collection.ts b/packages/wrangler/src/deployment-bundle/module-collection.ts index a950068ecf85..181e794cb3e3 100644 --- a/packages/wrangler/src/deployment-bundle/module-collection.ts +++ b/packages/wrangler/src/deployment-bundle/module-collection.ts @@ -3,6 +3,7 @@ import { readdirSync } from "node:fs"; import { readFile } from "node:fs/promises"; import path from "node:path"; import globToRegExp from "glob-to-regexp"; +import * as resolve from "resolve.exports"; import { logger } from "../logger"; import { findAdditionalModules, @@ -237,7 +238,7 @@ export function createModuleCollector(props: { // take the file and massage it to a // transportable/manageable format - const filePath = path.join(args.resolveDir, args.path); + let filePath = path.join(args.resolveDir, args.path); // If this was a found additional module, mark it as external. // Note, there's no need to watch the file here as we already @@ -251,6 +252,42 @@ export function createModuleCollector(props: { // it to `esbuild` to bundle it. if (isJavaScriptModuleRule(rule)) return; + // Check if this file is possibly from an npm package + // and if so, validate the import against the package.json exports + // and resolve the file path to the correct file. + if (args.path.includes("/") && !args.path.startsWith("./")) { + const dirName = path.dirname(args.path); + const packageJsonPath = path.join( + args.resolveDir, + "node_modules", + dirName, + "package.json" + ); + // Try and read the npm package's package.json + // and then resolve the import against the package's exports + // and then finally override filePath if we find a match. + try { + const packageJson = JSON.parse( + await readFile(packageJsonPath, "utf8") + ); + const testResolved = resolve.exports( + packageJson, + args.path.replace(`${dirName}/`, "") + ); + if (testResolved) { + filePath = path.join( + args.resolveDir, + "node_modules", + dirName, + testResolved[0] + ); + } + } catch (e) { + // We tried, now it'll just fall-through to the previous behaviour + // and ENOENT if the absolute file path doesn't exist. + } + } + const fileContent = await readFile(filePath); const fileHash = crypto .createHash("sha1") diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 656ee3530eeb..d1e70f1d61ea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1001,6 +1001,9 @@ importers: path-to-regexp: specifier: ^6.2.0 version: 6.2.0 + resolve.exports: + specifier: ^2.0.2 + version: 2.0.2 selfsigned: specifier: ^2.0.1 version: 2.1.1 @@ -1321,7 +1324,7 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.22.20(supports-color@9.2.2): + /@babel/core@7.22.20: resolution: {integrity: sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA==} engines: {node: '>=6.9.0'} dependencies: @@ -1330,10 +1333,10 @@ packages: '@babel/generator': 7.22.15 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-module-transforms': 7.22.20(@babel/core@7.22.20) - '@babel/helpers': 7.22.15(supports-color@9.2.2) + '@babel/helpers': 7.22.15 '@babel/parser': 7.22.16 '@babel/template': 7.22.15 - '@babel/traverse': 7.22.20(supports-color@9.2.2) + '@babel/traverse': 7.22.20 '@babel/types': 7.22.19 convert-source-map: 1.8.0 debug: 4.3.4(supports-color@9.2.2) @@ -1537,7 +1540,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.20(supports-color@9.2.2) + '@babel/core': 7.22.20 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -1657,12 +1660,12 @@ packages: - supports-color dev: true - /@babel/helpers@7.22.15(supports-color@9.2.2): + /@babel/helpers@7.22.15: resolution: {integrity: sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.22.20(supports-color@9.2.2) + '@babel/traverse': 7.22.20 '@babel/types': 7.22.19 transitivePeerDependencies: - supports-color @@ -2409,7 +2412,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20(supports-color@9.2.2) + '@babel/core': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -2419,7 +2422,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20(supports-color@9.2.2) + '@babel/core': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -2747,7 +2750,7 @@ packages: '@babel/types': 7.22.5 dev: true - /@babel/traverse@7.22.20(supports-color@9.2.2): + /@babel/traverse@7.22.20: resolution: {integrity: sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw==} engines: {node: '>=6.9.0'} dependencies: @@ -6541,7 +6544,7 @@ packages: peerDependencies: vite: ^4.2.0 dependencies: - '@babel/core': 7.22.20(supports-color@9.2.2) + '@babel/core': 7.22.20 '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.20) '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.20) react-refresh: 0.14.0 @@ -14940,7 +14943,6 @@ packages: /resolve.exports@2.0.2: resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} engines: {node: '>=10'} - dev: true /resolve@1.17.0: resolution: {integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==} From 1ad0070de0aa0cb32d7fa82fba7d2b4ff0774c04 Mon Sep 17 00:00:00 2001 From: James Ross Date: Sun, 8 Oct 2023 16:12:27 +0100 Subject: [PATCH 02/10] chore: add changeset --- .changeset/long-starfishes-mate.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .changeset/long-starfishes-mate.md diff --git a/.changeset/long-starfishes-mate.md b/.changeset/long-starfishes-mate.md new file mode 100644 index 000000000000..cf5b03957554 --- /dev/null +++ b/.changeset/long-starfishes-mate.md @@ -0,0 +1,19 @@ +--- +"wrangler": patch +--- + +feat: resolve npm exports for file imports + +Previously, when using wasm (or other static files) from an npm package, you would have to import the file like so: + +```js +import wasm from "../../node_modules/svg2png-wasm/svg2png_wasm_bg.wasm"; +``` + +This update now allows you to import the file like so, assuming it's exposed and available in the package's `exports` field: + +```js +import wasm from "svg2png-wasm/svg2png_wasm_bg.wasm"; +``` + +This will look at the package's `exports` field in `package.json` and resolve the file using [`resolve.exports`](https://www.npmjs.com/package/resolve.exports). From 4cba8fe57be029338f2d976ec76f717376f2ae52 Mon Sep 17 00:00:00 2001 From: James Ross Date: Sun, 8 Oct 2023 16:20:14 +0100 Subject: [PATCH 03/10] chore: only import `exports` from --- packages/wrangler/src/deployment-bundle/module-collection.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/wrangler/src/deployment-bundle/module-collection.ts b/packages/wrangler/src/deployment-bundle/module-collection.ts index 181e794cb3e3..76fa80bc162a 100644 --- a/packages/wrangler/src/deployment-bundle/module-collection.ts +++ b/packages/wrangler/src/deployment-bundle/module-collection.ts @@ -3,7 +3,7 @@ import { readdirSync } from "node:fs"; import { readFile } from "node:fs/promises"; import path from "node:path"; import globToRegExp from "glob-to-regexp"; -import * as resolve from "resolve.exports"; +import { exports as resolveExports } from "resolve.exports"; import { logger } from "../logger"; import { findAdditionalModules, @@ -270,7 +270,7 @@ export function createModuleCollector(props: { const packageJson = JSON.parse( await readFile(packageJsonPath, "utf8") ); - const testResolved = resolve.exports( + const testResolved = resolveExports( packageJson, args.path.replace(`${dirName}/`, "") ); From d0eb1f67f1b76e3d63441ac8b07368abf73039dd Mon Sep 17 00:00:00 2001 From: James Ross Date: Sun, 8 Oct 2023 17:33:33 +0100 Subject: [PATCH 04/10] fix: handle scoped npm packages --- .../src/__tests__/module-collection.test.ts | 17 ++++++++++ .../deployment-bundle/module-collection.ts | 31 ++++++++++++++++--- 2 files changed, 43 insertions(+), 5 deletions(-) create mode 100644 packages/wrangler/src/__tests__/module-collection.test.ts diff --git a/packages/wrangler/src/__tests__/module-collection.test.ts b/packages/wrangler/src/__tests__/module-collection.test.ts new file mode 100644 index 000000000000..5940c237f697 --- /dev/null +++ b/packages/wrangler/src/__tests__/module-collection.test.ts @@ -0,0 +1,17 @@ +import { extractPackageName } from "../deployment-bundle/module-collection"; + +describe("Module Collection", () => { + describe("extractPackageName", () => { + test.each` + importString | packageName + ${"wrangler"} | ${"wrangler"} + ${"wrangler/example"} | ${"wrangler"} + ${"wrangler/example.wasm"} | ${"wrangler"} + ${"@cloudflare/wrangler"} | ${"@cloudflare/wrangler"} + ${"@cloudflare/wrangler/example"} | ${"@cloudflare/wrangler"} + ${"@cloudflare/wrangler/example.wasm"} | ${"@cloudflare/wrangler"} + `("$importString --> $packageName", ({ importString, packageName }) => { + expect(extractPackageName(importString)).toBe(packageName); + }); + }); +}); diff --git a/packages/wrangler/src/deployment-bundle/module-collection.ts b/packages/wrangler/src/deployment-bundle/module-collection.ts index 76fa80bc162a..44554dd694b1 100644 --- a/packages/wrangler/src/deployment-bundle/module-collection.ts +++ b/packages/wrangler/src/deployment-bundle/module-collection.ts @@ -65,6 +65,21 @@ export const noopModuleCollector: ModuleCollector = { }, }; +// Extracts a package name from a string that may be a file path +// or a package name. Returns null if the string is not a valid +// Handles `wrangler`, `wrangler/example`, `wrangler/example.wasm`, +// `@cloudflare/wrangler`, `@cloudflare/wrangler/example`, etc. +export function extractPackageName(packagePath: string) { + const match = packagePath.match(/^(@[^/]+\/)?([^/]+)/); + + if (match) { + const scoped = match[1] || ""; + const packageName = match[2]; + return `${scoped}${packageName}`; + } + return null; +} + export function createModuleCollector(props: { entry: Entry; findAdditionalModules: boolean; @@ -255,12 +270,18 @@ export function createModuleCollector(props: { // Check if this file is possibly from an npm package // and if so, validate the import against the package.json exports // and resolve the file path to the correct file. - if (args.path.includes("/") && !args.path.startsWith("./")) { - const dirName = path.dirname(args.path); + if (args.path.includes("/") && !args.path.startsWith(".")) { + // get npm package name from string, taking into account scoped packages + const packageName = extractPackageName(args.path); + if (!packageName) { + throw new Error( + `Unable to extract npm package name from ${args.path}` + ); + } const packageJsonPath = path.join( args.resolveDir, "node_modules", - dirName, + packageName, "package.json" ); // Try and read the npm package's package.json @@ -272,13 +293,13 @@ export function createModuleCollector(props: { ); const testResolved = resolveExports( packageJson, - args.path.replace(`${dirName}/`, "") + args.path.replace(`${packageName}/`, "") ); if (testResolved) { filePath = path.join( args.resolveDir, "node_modules", - dirName, + packageName, testResolved[0] ); } From 80ffb910da95efa99aceabdb797b91c4d9943f30 Mon Sep 17 00:00:00 2001 From: James Ross Date: Sun, 8 Oct 2023 17:51:53 +0100 Subject: [PATCH 05/10] fix: improve npm package name detection --- packages/wrangler/src/__tests__/module-collection.test.ts | 3 +++ packages/wrangler/src/deployment-bundle/module-collection.ts | 2 ++ 2 files changed, 5 insertions(+) diff --git a/packages/wrangler/src/__tests__/module-collection.test.ts b/packages/wrangler/src/__tests__/module-collection.test.ts index 5940c237f697..b12b0ea4ad2a 100644 --- a/packages/wrangler/src/__tests__/module-collection.test.ts +++ b/packages/wrangler/src/__tests__/module-collection.test.ts @@ -10,6 +10,9 @@ describe("Module Collection", () => { ${"@cloudflare/wrangler"} | ${"@cloudflare/wrangler"} ${"@cloudflare/wrangler/example"} | ${"@cloudflare/wrangler"} ${"@cloudflare/wrangler/example.wasm"} | ${"@cloudflare/wrangler"} + ${"./some/file"} | ${null} + ${"../some/file"} | ${null} + ${"/some/file"} | ${null} `("$importString --> $packageName", ({ importString, packageName }) => { expect(extractPackageName(importString)).toBe(packageName); }); diff --git a/packages/wrangler/src/deployment-bundle/module-collection.ts b/packages/wrangler/src/deployment-bundle/module-collection.ts index 44554dd694b1..c39a2062b6c9 100644 --- a/packages/wrangler/src/deployment-bundle/module-collection.ts +++ b/packages/wrangler/src/deployment-bundle/module-collection.ts @@ -70,6 +70,8 @@ export const noopModuleCollector: ModuleCollector = { // Handles `wrangler`, `wrangler/example`, `wrangler/example.wasm`, // `@cloudflare/wrangler`, `@cloudflare/wrangler/example`, etc. export function extractPackageName(packagePath: string) { + if (packagePath.startsWith(".")) return null; + const match = packagePath.match(/^(@[^/]+\/)?([^/]+)/); if (match) { From 0d32fe21701cc95c05b242bd9cc6d55fac824126 Mon Sep 17 00:00:00 2001 From: James Ross Date: Sun, 8 Oct 2023 18:34:23 +0100 Subject: [PATCH 06/10] fix: set resolve.exports conditions to match other esbuild conditions --- packages/wrangler/src/deployment-bundle/module-collection.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/wrangler/src/deployment-bundle/module-collection.ts b/packages/wrangler/src/deployment-bundle/module-collection.ts index c39a2062b6c9..4e9f62a294dc 100644 --- a/packages/wrangler/src/deployment-bundle/module-collection.ts +++ b/packages/wrangler/src/deployment-bundle/module-collection.ts @@ -295,7 +295,10 @@ export function createModuleCollector(props: { ); const testResolved = resolveExports( packageJson, - args.path.replace(`${packageName}/`, "") + args.path.replace(`${packageName}/`, ""), + { + conditions: ["workerd", "worker", "browser"], + } ); if (testResolved) { filePath = path.join( From dbd8ed0239db56185a4eb5aec280c0aae1b403ec Mon Sep 17 00:00:00 2001 From: James Ross Date: Tue, 17 Oct 2023 23:41:16 +0100 Subject: [PATCH 07/10] fix: add tests --- .changeset/long-starfishes-mate.md | 2 +- fixtures/import-wasm-example/.gitignore | 1 + fixtures/import-wasm-example/README.md | 3 + fixtures/import-wasm-example/package.json | 23 +++ fixtures/import-wasm-example/src/index.js | 12 ++ .../import-wasm-example/tests/index.test.ts | 25 +++ .../import-wasm-example/tests/tsconfig.json | 7 + fixtures/import-wasm-example/tsconfig.json | 12 ++ fixtures/import-wasm-example/wrangler.toml | 4 + fixtures/import-wasm-static/README.md | 3 + fixtures/import-wasm-static/package.json | 9 + .../import-wasm-static/wasm/multiply.wasm | Bin 0 -> 46 bytes fixtures/import-wasm-static/wasm/multiply.wat | 7 + .../wrangler/src/deployment-bundle/bundle.ts | 5 +- .../deployment-bundle/module-collection.ts | 7 +- pnpm-lock.yaml | 161 +++++++++++++++--- 16 files changed, 251 insertions(+), 30 deletions(-) create mode 100644 fixtures/import-wasm-example/.gitignore create mode 100644 fixtures/import-wasm-example/README.md create mode 100644 fixtures/import-wasm-example/package.json create mode 100644 fixtures/import-wasm-example/src/index.js create mode 100644 fixtures/import-wasm-example/tests/index.test.ts create mode 100644 fixtures/import-wasm-example/tests/tsconfig.json create mode 100644 fixtures/import-wasm-example/tsconfig.json create mode 100644 fixtures/import-wasm-example/wrangler.toml create mode 100644 fixtures/import-wasm-static/README.md create mode 100644 fixtures/import-wasm-static/package.json create mode 100644 fixtures/import-wasm-static/wasm/multiply.wasm create mode 100644 fixtures/import-wasm-static/wasm/multiply.wat diff --git a/.changeset/long-starfishes-mate.md b/.changeset/long-starfishes-mate.md index cf5b03957554..712bf11bf8b8 100644 --- a/.changeset/long-starfishes-mate.md +++ b/.changeset/long-starfishes-mate.md @@ -1,5 +1,5 @@ --- -"wrangler": patch +"wrangler": minor --- feat: resolve npm exports for file imports diff --git a/fixtures/import-wasm-example/.gitignore b/fixtures/import-wasm-example/.gitignore new file mode 100644 index 000000000000..1521c8b7652b --- /dev/null +++ b/fixtures/import-wasm-example/.gitignore @@ -0,0 +1 @@ +dist diff --git a/fixtures/import-wasm-example/README.md b/fixtures/import-wasm-example/README.md new file mode 100644 index 000000000000..a8a57e937250 --- /dev/null +++ b/fixtures/import-wasm-example/README.md @@ -0,0 +1,3 @@ +# import-wasm-example + +`import-wasm-example` is a test fixture that imports a `wasm` file from `import-wasm-static`, testing npm module resolution with wrangler imports. diff --git a/fixtures/import-wasm-example/package.json b/fixtures/import-wasm-example/package.json new file mode 100644 index 000000000000..eba421f692e4 --- /dev/null +++ b/fixtures/import-wasm-example/package.json @@ -0,0 +1,23 @@ +{ + "name": "import-wasm-example", + "version": "1.0.1", + "private": true, + "description": "", + "author": "", + "main": "src/index.js", + "scripts": { + "check:type": "tsc", + "test": "npx vitest run", + "test:ci": "npx vitest run", + "test:watch": "npx vitest", + "type:tests": "tsc -p ./tests/tsconfig.json" + }, + "devDependencies": { + "undici": "^5.9.1", + "wrangler": "workspace:*", + "@cloudflare/workers-tsconfig": "workspace:^" + }, + "dependencies": { + "import-wasm-static": "workspace:^" + } +} \ No newline at end of file diff --git a/fixtures/import-wasm-example/src/index.js b/fixtures/import-wasm-example/src/index.js new file mode 100644 index 000000000000..300683601a95 --- /dev/null +++ b/fixtures/import-wasm-example/src/index.js @@ -0,0 +1,12 @@ +// this is from the `import-wasm-static` fixture defined above +// and setup inside package.json to mimic an npm package +import multiply from "import-wasm-static/multiply.wasm"; + +export default { + async fetch(request) { + // just instantiate and return something + // we're really just testing the import at the top of this file + const multiplyModule = await WebAssembly.instantiate(multiply); + return new Response(`${multiplyModule.exports.multiply(7, 3)}`); + }, +}; diff --git a/fixtures/import-wasm-example/tests/index.test.ts b/fixtures/import-wasm-example/tests/index.test.ts new file mode 100644 index 000000000000..d62c5f60d69e --- /dev/null +++ b/fixtures/import-wasm-example/tests/index.test.ts @@ -0,0 +1,25 @@ +import { resolve } from "path"; +import { fetch } from "undici"; +import { describe, it, beforeAll, afterAll } from "vitest"; +import { runWranglerDev } from "../../shared/src/run-wrangler-long-lived"; + +describe("wrangler correctly imports wasm files with npm resolution", () => { + let ip: string, port: number, stop: (() => Promise) | undefined; + + beforeAll(async () => { + ({ ip, port, stop } = await runWranglerDev(resolve(__dirname, ".."), [ + "--port=0", + ])); + }); + + afterAll(async () => { + await stop?.(); + }); + + // if the worker compiles, is running, and returns 21 (7 * 3) we can assume that the wasm module was imported correctly + it("responds", async ({ expect }) => { + const response = await fetch(`http://${ip}:${port}/`); + const text = await response.text(); + expect(text).toBe("21"); + }); +}); diff --git a/fixtures/import-wasm-example/tests/tsconfig.json b/fixtures/import-wasm-example/tests/tsconfig.json new file mode 100644 index 000000000000..d2ce7f144694 --- /dev/null +++ b/fixtures/import-wasm-example/tests/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "@cloudflare/workers-tsconfig/tsconfig.json", + "compilerOptions": { + "types": ["node"] + }, + "include": ["**/*.ts", "../../../node-types.d.ts"] +} diff --git a/fixtures/import-wasm-example/tsconfig.json b/fixtures/import-wasm-example/tsconfig.json new file mode 100644 index 000000000000..6eb14e3584b7 --- /dev/null +++ b/fixtures/import-wasm-example/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "target": "ES2020", + "esModuleInterop": true, + "module": "CommonJS", + "lib": ["ES2020"], + "types": ["node"], + "moduleResolution": "node", + "noEmit": true + }, + "include": ["tests", "../../node-types.d.ts"] +} diff --git a/fixtures/import-wasm-example/wrangler.toml b/fixtures/import-wasm-example/wrangler.toml new file mode 100644 index 000000000000..c0d8aaef0a82 --- /dev/null +++ b/fixtures/import-wasm-example/wrangler.toml @@ -0,0 +1,4 @@ +name = "import-wasm-example" +compatibility_date = "2023-10-02" + +main = "src/index.js" diff --git a/fixtures/import-wasm-static/README.md b/fixtures/import-wasm-static/README.md new file mode 100644 index 000000000000..2ac75f70c4a6 --- /dev/null +++ b/fixtures/import-wasm-static/README.md @@ -0,0 +1,3 @@ +# import-wasm-static + +`import-wasm-static` is a fixture that simply exports a `wasm` file via `package.json` exports to be used and imported in other fixtures, to test npm module resolution. diff --git a/fixtures/import-wasm-static/package.json b/fixtures/import-wasm-static/package.json new file mode 100644 index 000000000000..6a60461fa49e --- /dev/null +++ b/fixtures/import-wasm-static/package.json @@ -0,0 +1,9 @@ +{ + "name": "import-wasm-static", + "version": "0.0.1", + "private": true, + "sideEffects": false, + "exports": { + "./multiply.wasm": "./wasm/multiply.wasm" + } +} \ No newline at end of file diff --git a/fixtures/import-wasm-static/wasm/multiply.wasm b/fixtures/import-wasm-static/wasm/multiply.wasm new file mode 100644 index 0000000000000000000000000000000000000000..0fbf9272721fa9c854cd555878d6f6b10e474195 GIT binary patch literal 46 zcmZQbEY4+QU|?WmXG~zKuV<`hW@2Pu=V9c?EzK#(EXb*3VBq3pWM@!dP+-jA1^~GP B2cZA} literal 0 HcmV?d00001 diff --git a/fixtures/import-wasm-static/wasm/multiply.wat b/fixtures/import-wasm-static/wasm/multiply.wat new file mode 100644 index 000000000000..064fbe7eda08 --- /dev/null +++ b/fixtures/import-wasm-static/wasm/multiply.wat @@ -0,0 +1,7 @@ +(module + (func $multiply (param $p1 i32) (param $p2 i32) (result i32) + local.get $p1 + local.get $p2 + i32.mul) + (export "multiply" (func $multiply)) +) diff --git a/packages/wrangler/src/deployment-bundle/bundle.ts b/packages/wrangler/src/deployment-bundle/bundle.ts index 71713a1462ed..8e7b1c003706 100644 --- a/packages/wrangler/src/deployment-bundle/bundle.ts +++ b/packages/wrangler/src/deployment-bundle/bundle.ts @@ -31,6 +31,9 @@ export const COMMON_ESBUILD_OPTIONS = { loader: { ".js": "jsx", ".mjs": "jsx", ".cjs": "jsx" }, } as const; +// build conditions used by esbuild, and when resolving custom `import` calls +export const BUILD_CONDITIONS = ["workerd", "worker", "browser"]; + /** * Information about Wrangler's bundling process that needs passed through * for DevTools sourcemap transformation @@ -299,7 +302,7 @@ export async function bundleWorker( sourceRoot: destination, minify, metafile: true, - conditions: ["workerd", "worker", "browser"], + conditions: BUILD_CONDITIONS, ...(process.env.NODE_ENV && { define: { // use process.env["NODE_ENV" + ""] so that esbuild doesn't replace it diff --git a/packages/wrangler/src/deployment-bundle/module-collection.ts b/packages/wrangler/src/deployment-bundle/module-collection.ts index 4e9f62a294dc..3ce49ece5221 100644 --- a/packages/wrangler/src/deployment-bundle/module-collection.ts +++ b/packages/wrangler/src/deployment-bundle/module-collection.ts @@ -5,6 +5,7 @@ import path from "node:path"; import globToRegExp from "glob-to-regexp"; import { exports as resolveExports } from "resolve.exports"; import { logger } from "../logger"; +import { BUILD_CONDITIONS } from "./bundle"; import { findAdditionalModules, findAdditionalModuleWatchDirs, @@ -281,7 +282,7 @@ export function createModuleCollector(props: { ); } const packageJsonPath = path.join( - args.resolveDir, + process.cwd(), "node_modules", packageName, "package.json" @@ -297,12 +298,12 @@ export function createModuleCollector(props: { packageJson, args.path.replace(`${packageName}/`, ""), { - conditions: ["workerd", "worker", "browser"], + conditions: BUILD_CONDITIONS, } ); if (testResolved) { filePath = path.join( - args.resolveDir, + process.cwd(), "node_modules", packageName, testResolved[0] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d1e70f1d61ea..8957673b3ef1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -117,6 +117,24 @@ importers: specifier: workspace:* version: link:../../packages/wrangler + fixtures/import-wasm-example: + dependencies: + import-wasm-static: + specifier: workspace:^ + version: link:../import-wasm-static + devDependencies: + '@cloudflare/workers-tsconfig': + specifier: workspace:^ + version: link:../../packages/workers-tsconfig + undici: + specifier: ^5.9.1 + version: 5.23.0 + wrangler: + specifier: workspace:* + version: link:../../packages/wrangler + + fixtures/import-wasm-static: {} + fixtures/isomorphic-random-example: {} fixtures/legacy-site-app: {} @@ -719,7 +737,7 @@ importers: version: 0.31.4 wrangler: specifier: ^3.5.1 - version: link:../wrangler + version: 3.13.1 packages/prerelease-registry: dependencies: @@ -1284,7 +1302,7 @@ importers: version: 6.5.1 wrangler: specifier: ^3.0.0 - version: link:../wrangler + version: 3.13.1 packages: @@ -1324,7 +1342,7 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.22.20: + /@babel/core@7.22.20(supports-color@9.2.2): resolution: {integrity: sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA==} engines: {node: '>=6.9.0'} dependencies: @@ -1333,10 +1351,10 @@ packages: '@babel/generator': 7.22.15 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-module-transforms': 7.22.20(@babel/core@7.22.20) - '@babel/helpers': 7.22.15 + '@babel/helpers': 7.22.15(supports-color@9.2.2) '@babel/parser': 7.22.16 '@babel/template': 7.22.15 - '@babel/traverse': 7.22.20 + '@babel/traverse': 7.22.20(supports-color@9.2.2) '@babel/types': 7.22.19 convert-source-map: 1.8.0 debug: 4.3.4(supports-color@9.2.2) @@ -1540,7 +1558,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.22.20(supports-color@9.2.2) '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -1660,12 +1678,12 @@ packages: - supports-color dev: true - /@babel/helpers@7.22.15: + /@babel/helpers@7.22.15(supports-color@9.2.2): resolution: {integrity: sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.22.20 + '@babel/traverse': 7.22.20(supports-color@9.2.2) '@babel/types': 7.22.19 transitivePeerDependencies: - supports-color @@ -2412,7 +2430,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.22.20(supports-color@9.2.2) '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -2422,7 +2440,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.22.20(supports-color@9.2.2) '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -2750,7 +2768,7 @@ packages: '@babel/types': 7.22.5 dev: true - /@babel/traverse@7.22.20: + /@babel/traverse@7.22.20(supports-color@9.2.2): resolution: {integrity: sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw==} engines: {node: '>=6.9.0'} dependencies: @@ -3311,7 +3329,6 @@ packages: resolution: {integrity: sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==} dependencies: mime: 3.0.0 - dev: false /@cloudflare/style-const@5.7.3(react@18.2.0): resolution: {integrity: sha512-N9Y8bcFXoO7htm+sSVsBmQOVbjLeEY2hy1CBmvt0AoH1zWvs3izwJrnlL0ee4kJ6DkyjaY6SIAkUGUtTOApF3Q==} @@ -3415,6 +3432,15 @@ packages: requiresBuild: true optional: true + /@cloudflare/workerd-darwin-64@1.20231010.0: + resolution: {integrity: sha512-LM9ePAh88EGoQkYisAfdLMEDzcaMinRer0mY11GOiN4A9ZU+6APRVvhh5JBRzI0F6Dkb8nHtrzhisioWCRaY1w==} + engines: {node: '>=16'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@cloudflare/workerd-darwin-arm64@1.20231002.0: resolution: {integrity: sha512-dv8nztYFaTYYgBpyy80vc4hdMYv9mhyNbvBsZywm8S7ivcIpzogi0UKkGU4E/G0lYK6W3WtwTBqwRe+pXJ1+Ww==} engines: {node: '>=16'} @@ -3423,6 +3449,15 @@ packages: requiresBuild: true optional: true + /@cloudflare/workerd-darwin-arm64@1.20231010.0: + resolution: {integrity: sha512-Vr7Z1O+vJRCnVeWaF0YSv0EMHiMRY7yYCxr7O509FzvJAXsZuXZ7DYC5TAD7a8HSeeqsxFTAbF9jg0y9A2wKVw==} + engines: {node: '>=16'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@cloudflare/workerd-linux-64@1.20231002.0: resolution: {integrity: sha512-UG8SlLcGzaQDSSw6FR4+Zf408925wkLOCAi8w5qEoFYu3g4Ef7ZenstesCOsyWL7qBDKx0/iwk6+a76W5IHI0Q==} engines: {node: '>=16'} @@ -3431,6 +3466,15 @@ packages: requiresBuild: true optional: true + /@cloudflare/workerd-linux-64@1.20231010.0: + resolution: {integrity: sha512-l9oDVPVhPEOHr1JpcGnLSsIf1h8sZnvcIC2Tl1zt+3p/KGFyGqGyAZJMLUoMJ54Q07oRE1x3KAu+JcWWEvdxpg==} + engines: {node: '>=16'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@cloudflare/workerd-linux-arm64@1.20231002.0: resolution: {integrity: sha512-GPaa66ZSq1gK09r87c5CJbHIApcIU//LVHz3rnUxK0//00YCwUuGUUK1dn/ylg+fVqDQxIDmH+ABnobBanvcDA==} engines: {node: '>=16'} @@ -3439,6 +3483,15 @@ packages: requiresBuild: true optional: true + /@cloudflare/workerd-linux-arm64@1.20231010.0: + resolution: {integrity: sha512-NBmYsJu+ns2W8WHcDnglfqLV5O3FP7lXpoTSTvpM64mhexmemdMlOJX5gpRuarTula3fA+GzEehinUojwM9/1g==} + engines: {node: '>=16'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@cloudflare/workerd-windows-64@1.20231002.0: resolution: {integrity: sha512-ybIy+sCme0VO0RscndXvqWNBaRMUOc8vhi+1N2h/KDsKfNLsfEQph+XWecfKzJseUy1yE2rV1xei3BaNmaa6vg==} engines: {node: '>=16'} @@ -3447,6 +3500,15 @@ packages: requiresBuild: true optional: true + /@cloudflare/workerd-windows-64@1.20231010.0: + resolution: {integrity: sha512-jWiG71Rvuh4FYdEpOP1+BAygdguTlMYYy+v5d4ZOjxDkl+V8aR86EEtDQrv/QLUJFbpcoEX25SxXnN5UMKtjhQ==} + engines: {node: '>=16'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@cloudflare/workers-types@3.18.0: resolution: {integrity: sha512-ehKOJVLMeR+tZkYhWEaLYQxl0TaIZu/kE86HF3/RidR8Xv5LuQxpbh+XXAoKVqsaphWLhIgBhgnlN5HGdheXSQ==} @@ -3512,7 +3574,6 @@ packages: esbuild: '*' dependencies: esbuild: 0.17.19 - dev: false /@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.17.19): resolution: {integrity: sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==} @@ -3522,7 +3583,6 @@ packages: esbuild: 0.17.19 escape-string-regexp: 4.0.0 rollup-plugin-node-polyfills: 0.2.1 - dev: false /@esbuild/android-arm64@0.16.3: resolution: {integrity: sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg==} @@ -6544,7 +6604,7 @@ packages: peerDependencies: vite: ^4.2.0 dependencies: - '@babel/core': 7.22.20 + '@babel/core': 7.22.20(supports-color@9.2.2) '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.22.20) '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.22.20) react-refresh: 0.14.0 @@ -7263,7 +7323,6 @@ packages: /blake3-wasm@2.1.5: resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} - dev: false /blueimp-md5@2.19.0: resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} @@ -9508,7 +9567,6 @@ packages: /estree-walker@0.6.1: resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} - dev: false /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} @@ -12371,7 +12429,6 @@ packages: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} dependencies: sourcemap-codec: 1.4.8 - dev: false /magic-string@0.30.0: resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} @@ -12982,6 +13039,28 @@ packages: - supports-color - utf-8-validate + /miniflare@3.20231010.0: + resolution: {integrity: sha512-VETY+/OhJ1RN+yrFpPUqBZysb2R8wXvyx3vzaRZS2qO1aGNKeGASa/vxCvNcBF+gt8UdbWMOalSXX8zY0IgWZA==} + engines: {node: '>=16.13'} + dependencies: + acorn: 8.10.0 + acorn-walk: 8.2.0 + capnp-ts: 0.7.0(supports-color@9.2.2) + exit-hook: 2.2.1 + glob-to-regexp: 0.4.1 + source-map-support: 0.5.21 + stoppable: 1.1.0 + undici: 5.23.0 + workerd: 1.20231010.0 + ws: 8.13.0 + youch: 3.2.3 + zod: 3.22.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: @@ -13272,7 +13351,6 @@ packages: /node-forge@1.3.0: resolution: {integrity: sha512-08ARB91bUi6zNKzVmaj3QO7cr397uiDT2nJ63cHjyNtCTWIgvS47j3eT0WfzUwS9+6Z5YshRaoasFkXCKrIYbA==} engines: {node: '>= 6.13.0'} - dev: false /node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} @@ -15048,19 +15126,16 @@ packages: estree-walker: 0.6.1 magic-string: 0.25.9 rollup-pluginutils: 2.8.2 - dev: false /rollup-plugin-node-polyfills@0.2.1: resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} dependencies: rollup-plugin-inject: 3.0.2 - dev: false /rollup-pluginutils@2.8.2: resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} dependencies: estree-walker: 0.6.1 - dev: false /rollup@3.25.1: resolution: {integrity: sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ==} @@ -15189,7 +15264,6 @@ packages: engines: {node: '>=10'} dependencies: node-forge: 1.3.0 - dev: false /semiver@1.1.0: resolution: {integrity: sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==} @@ -15565,7 +15639,6 @@ packages: /sourcemap-codec@1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead - dev: false /space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -17324,6 +17397,45 @@ packages: '@cloudflare/workerd-linux-arm64': 1.20231002.0 '@cloudflare/workerd-windows-64': 1.20231002.0 + /workerd@1.20231010.0: + resolution: {integrity: sha512-ghxfBU8fBSBDa8fCBPfzWivYsWpewYftgy70N308C+acQ5AaKNM1QTdkQNm9YWeC5Jpl1YvBX04ojt7lCc3juw==} + engines: {node: '>=16'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@cloudflare/workerd-darwin-64': 1.20231010.0 + '@cloudflare/workerd-darwin-arm64': 1.20231010.0 + '@cloudflare/workerd-linux-64': 1.20231010.0 + '@cloudflare/workerd-linux-arm64': 1.20231010.0 + '@cloudflare/workerd-windows-64': 1.20231010.0 + dev: true + + /wrangler@3.13.1: + resolution: {integrity: sha512-CY73h4lfPx/3CmkC/tPj66DRRZ9Y42sMcHys6B6tjCILUo950IeOvnsj759el3/ewFLY4kG4jCrrrikan6TE+Q==} + engines: {node: '>=16.13.0'} + hasBin: true + dependencies: + '@cloudflare/kv-asset-handler': 0.2.0 + '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) + '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) + blake3-wasm: 2.1.5 + chokidar: 3.5.3 + esbuild: 0.17.19 + miniflare: 3.20231010.0 + nanoid: 3.3.6 + path-to-regexp: 6.2.0 + selfsigned: 2.1.1 + source-map: 0.6.1 + source-map-support: 0.5.21 + xxhash-wasm: 1.0.1 + optionalDependencies: + fsevents: 2.3.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} @@ -17465,7 +17577,6 @@ packages: /xxhash-wasm@1.0.1: resolution: {integrity: sha512-Lc9CTvDrH2vRoiaUzz25q7lRaviMhz90pkx6YxR9EPYtF99yOJnv2cB+CQ0hp/TLoqrUsk8z/W2EN31T568Azw==} - dev: false /y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} From 911326ad54eb58faeaf334e438d3a99ebba3d353 Mon Sep 17 00:00:00 2001 From: James Ross Date: Tue, 17 Oct 2023 23:42:32 +0100 Subject: [PATCH 08/10] chore: rebuild pnpm-lock --- pnpm-lock.yaml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bdca60974cc1..d319a49fa2a3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -117,6 +117,24 @@ importers: specifier: workspace:* version: link:../../packages/wrangler + fixtures/import-wasm-example: + dependencies: + import-wasm-static: + specifier: workspace:^ + version: link:../import-wasm-static + devDependencies: + '@cloudflare/workers-tsconfig': + specifier: workspace:^ + version: link:../../packages/workers-tsconfig + undici: + specifier: ^5.9.1 + version: 5.23.0 + wrangler: + specifier: workspace:* + version: link:../../packages/wrangler + + fixtures/import-wasm-static: {} + fixtures/isomorphic-random-example: {} fixtures/legacy-site-app: {} @@ -1001,6 +1019,9 @@ importers: path-to-regexp: specifier: ^6.2.0 version: 6.2.0 + resolve.exports: + specifier: ^2.0.2 + version: 2.0.2 selfsigned: specifier: ^2.0.1 version: 2.1.1 @@ -14940,7 +14961,6 @@ packages: /resolve.exports@2.0.2: resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} engines: {node: '>=10'} - dev: true /resolve@1.17.0: resolution: {integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==} From b1cd613c682c4d72cba6cf33b4479c062e27e924 Mon Sep 17 00:00:00 2001 From: James Ross Date: Wed, 18 Oct 2023 00:23:56 +0100 Subject: [PATCH 09/10] fix: prettier on package.json files --- fixtures/import-wasm-example/package.json | 2 +- fixtures/import-wasm-static/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fixtures/import-wasm-example/package.json b/fixtures/import-wasm-example/package.json index eba421f692e4..2e937b5c3cfc 100644 --- a/fixtures/import-wasm-example/package.json +++ b/fixtures/import-wasm-example/package.json @@ -20,4 +20,4 @@ "dependencies": { "import-wasm-static": "workspace:^" } -} \ No newline at end of file +} diff --git a/fixtures/import-wasm-static/package.json b/fixtures/import-wasm-static/package.json index 6a60461fa49e..18b0c67cf7a7 100644 --- a/fixtures/import-wasm-static/package.json +++ b/fixtures/import-wasm-static/package.json @@ -6,4 +6,4 @@ "exports": { "./multiply.wasm": "./wasm/multiply.wasm" } -} \ No newline at end of file +} From b80446dad3da4164636cf0ebdfb4032a3285c8b4 Mon Sep 17 00:00:00 2001 From: James Ross Date: Thu, 19 Oct 2023 16:10:03 +0100 Subject: [PATCH 10/10] chore: rebuild pnpm-lock --- pnpm-lock.yaml | 130 +++++++++++++++++++++++++------------------------ 1 file changed, 67 insertions(+), 63 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0ccaddb8f602..c03698d05356 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -124,7 +124,7 @@ importers: version: link:../../packages/workers-tsconfig '@cloudflare/workers-types': specifier: ^4.20221111.1 - version: registry.npmjs.org/@cloudflare/workers-types@4.20230914.0 + version: 4.20230914.0 concurrently: specifier: ^8.2.1 version: 8.2.1 @@ -135,6 +135,24 @@ importers: specifier: workspace:* version: link:../../packages/wrangler + fixtures/import-wasm-example: + dependencies: + import-wasm-static: + specifier: workspace:^ + version: link:../import-wasm-static + devDependencies: + '@cloudflare/workers-tsconfig': + specifier: workspace:^ + version: link:../../packages/workers-tsconfig + undici: + specifier: ^5.9.1 + version: 5.23.0 + wrangler: + specifier: workspace:* + version: link:../../packages/wrangler + + fixtures/import-wasm-static: {} + fixtures/isomorphic-random-example: {} fixtures/legacy-site-app: {} @@ -1019,6 +1037,9 @@ importers: path-to-regexp: specifier: ^6.2.0 version: 6.2.0 + resolve.exports: + specifier: ^2.0.2 + version: 2.0.2 selfsigned: specifier: ^2.0.1 version: 2.1.1 @@ -3422,6 +3443,46 @@ packages: marked: 0.3.19 dev: false + /@cloudflare/workerd-darwin-64@1.20231016.0: + resolution: {integrity: sha512-rPAnF8Q25+eHEsAopihWeftPW/P0QapY9d7qaUmtOXztWdd6YPQ7JuiWVj4Nvjphge1BleehxAbo4I3Z4L2H1g==} + engines: {node: '>=16'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + /@cloudflare/workerd-darwin-arm64@1.20231016.0: + resolution: {integrity: sha512-MvydDdiLXt+jy57vrVZ2lU6EQwCdpieyZoN8uBXSWzfG3zR/6dxU1+okvPQPlHN0jtlufqPeHrpJyAqqgLHUKA==} + engines: {node: '>=16'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + /@cloudflare/workerd-linux-64@1.20231016.0: + resolution: {integrity: sha512-y6Sj37yTzM8QbAghG9LRqoSBrsREnQz8NkcmpjSxeK6KMc2g0L5A/OemCdugNlIiv+zRv9BYX1aosaoxY5JbeQ==} + engines: {node: '>=16'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + /@cloudflare/workerd-linux-arm64@1.20231016.0: + resolution: {integrity: sha512-LqMIRUHD1YeRg2TPIfIQEhapSKMFSq561RypvJoXZvTwSbaROxGdW6Ku+PvButqTkEvuAtfzN/kGje7fvfQMHg==} + engines: {node: '>=16'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + /@cloudflare/workerd-windows-64@1.20231016.0: + resolution: {integrity: sha512-96ojBwIHyiUAbsWlzBqo9P/cvH8xUh8SuBboFXtwAeXcJ6/urwKN2AqPa/QzOGUTCdsurWYiieARHT5WWWPhKw==} + engines: {node: '>=16'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + /@cloudflare/workers-types@3.18.0: resolution: {integrity: sha512-ehKOJVLMeR+tZkYhWEaLYQxl0TaIZu/kE86HF3/RidR8Xv5LuQxpbh+XXAoKVqsaphWLhIgBhgnlN5HGdheXSQ==} @@ -14934,7 +14995,6 @@ packages: /resolve.exports@2.0.2: resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} engines: {node: '>=10'} - dev: true /resolve@1.17.0: resolution: {integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==} @@ -17320,11 +17380,11 @@ packages: hasBin: true requiresBuild: true optionalDependencies: - '@cloudflare/workerd-darwin-64': registry.npmjs.org/@cloudflare/workerd-darwin-64@1.20231016.0 - '@cloudflare/workerd-darwin-arm64': registry.npmjs.org/@cloudflare/workerd-darwin-arm64@1.20231016.0 - '@cloudflare/workerd-linux-64': registry.npmjs.org/@cloudflare/workerd-linux-64@1.20231016.0 - '@cloudflare/workerd-linux-arm64': registry.npmjs.org/@cloudflare/workerd-linux-arm64@1.20231016.0 - '@cloudflare/workerd-windows-64': registry.npmjs.org/@cloudflare/workerd-windows-64@1.20231016.0 + '@cloudflare/workerd-darwin-64': 1.20231016.0 + '@cloudflare/workerd-darwin-arm64': 1.20231016.0 + '@cloudflare/workerd-linux-64': 1.20231016.0 + '@cloudflare/workerd-linux-arm64': 1.20231016.0 + '@cloudflare/workerd-windows-64': 1.20231016.0 /wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} @@ -17612,59 +17672,3 @@ packages: name: yoga-layout version: 2.0.0-beta.1 dev: true - - registry.npmjs.org/@cloudflare/workerd-darwin-64@1.20231016.0: - resolution: {integrity: sha512-rPAnF8Q25+eHEsAopihWeftPW/P0QapY9d7qaUmtOXztWdd6YPQ7JuiWVj4Nvjphge1BleehxAbo4I3Z4L2H1g==, registry: https://registry-gateway.cloudflare-ui.workers.dev/, tarball: https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20231016.0.tgz} - name: '@cloudflare/workerd-darwin-64' - version: 1.20231016.0 - engines: {node: '>=16'} - cpu: [x64] - os: [darwin] - requiresBuild: true - optional: true - - registry.npmjs.org/@cloudflare/workerd-darwin-arm64@1.20231016.0: - resolution: {integrity: sha512-MvydDdiLXt+jy57vrVZ2lU6EQwCdpieyZoN8uBXSWzfG3zR/6dxU1+okvPQPlHN0jtlufqPeHrpJyAqqgLHUKA==, registry: https://registry-gateway.cloudflare-ui.workers.dev/, tarball: https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20231016.0.tgz} - name: '@cloudflare/workerd-darwin-arm64' - version: 1.20231016.0 - engines: {node: '>=16'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - optional: true - - registry.npmjs.org/@cloudflare/workerd-linux-64@1.20231016.0: - resolution: {integrity: sha512-y6Sj37yTzM8QbAghG9LRqoSBrsREnQz8NkcmpjSxeK6KMc2g0L5A/OemCdugNlIiv+zRv9BYX1aosaoxY5JbeQ==, registry: https://registry-gateway.cloudflare-ui.workers.dev/, tarball: https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20231016.0.tgz} - name: '@cloudflare/workerd-linux-64' - version: 1.20231016.0 - engines: {node: '>=16'} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true - - registry.npmjs.org/@cloudflare/workerd-linux-arm64@1.20231016.0: - resolution: {integrity: sha512-LqMIRUHD1YeRg2TPIfIQEhapSKMFSq561RypvJoXZvTwSbaROxGdW6Ku+PvButqTkEvuAtfzN/kGje7fvfQMHg==, registry: https://registry-gateway.cloudflare-ui.workers.dev/, tarball: https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20231016.0.tgz} - name: '@cloudflare/workerd-linux-arm64' - version: 1.20231016.0 - engines: {node: '>=16'} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true - - registry.npmjs.org/@cloudflare/workerd-windows-64@1.20231016.0: - resolution: {integrity: sha512-96ojBwIHyiUAbsWlzBqo9P/cvH8xUh8SuBboFXtwAeXcJ6/urwKN2AqPa/QzOGUTCdsurWYiieARHT5WWWPhKw==, registry: https://registry-gateway.cloudflare-ui.workers.dev/, tarball: https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20231016.0.tgz} - name: '@cloudflare/workerd-windows-64' - version: 1.20231016.0 - engines: {node: '>=16'} - cpu: [x64] - os: [win32] - requiresBuild: true - optional: true - - registry.npmjs.org/@cloudflare/workers-types@4.20230914.0: - resolution: {integrity: sha512-OVeN4lFVu1O0PJGZ2d0FwpK8lelFcr33qYOgCh77ErEYmEBO4adwnIxcIsdQbFbhF0ffN6joiVcljD4zakdaeQ==, registry: https://registry-gateway.cloudflare-ui.workers.dev/, tarball: https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20230914.0.tgz} - name: '@cloudflare/workers-types' - version: 4.20230914.0 - dev: true