diff --git a/.changeset/fix-pages-deploy-command-injection.md b/.changeset/fix-pages-deploy-command-injection.md deleted file mode 100644 index 66045b199f20..000000000000 --- a/.changeset/fix-pages-deploy-command-injection.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"wrangler": patch ---- - -Use argument array when executing git commands with `wrangler pages deploy` - -Pass user provided values from `--commit-hash` safely to underlying git command. diff --git a/.changeset/native-dgram-module.md b/.changeset/native-dgram-module.md new file mode 100644 index 000000000000..cabe228ce651 --- /dev/null +++ b/.changeset/native-dgram-module.md @@ -0,0 +1,5 @@ +--- +"@cloudflare/unenv-preset": minor +--- + +Add support for native `node:dgram` module when the `enable_nodejs_dgram_module` compatibility flag is enabled. This feature is currently experimental and requires both the `enable_nodejs_dgram_module` and `experimental` compatibility flags to be set. diff --git a/packages/unenv-preset/package.json b/packages/unenv-preset/package.json index ca618e6d57c4..3026e120273e 100644 --- a/packages/unenv-preset/package.json +++ b/packages/unenv-preset/package.json @@ -49,7 +49,7 @@ }, "peerDependencies": { "unenv": "2.0.0-rc.24", - "workerd": "^1.20251202.0" + "workerd": "^1.20251221.0" }, "peerDependenciesMeta": { "workerd": { diff --git a/packages/unenv-preset/src/preset.ts b/packages/unenv-preset/src/preset.ts index 25c1300c8db1..44570156ba5f 100644 --- a/packages/unenv-preset/src/preset.ts +++ b/packages/unenv-preset/src/preset.ts @@ -81,6 +81,7 @@ export function getCloudflarePreset({ const vmOverrides = getVmOverrides(compat); const inspectorOverrides = getInspectorOverrides(compat); const sqliteOverrides = getSqliteOverrides(compat); + const dgramOverrides = getDgramOverrides(compat); // "dynamic" as they depend on the compatibility date and flags const dynamicNativeModules = [ @@ -98,6 +99,7 @@ export function getCloudflarePreset({ ...vmOverrides.nativeModules, ...inspectorOverrides.nativeModules, ...sqliteOverrides.nativeModules, + ...dgramOverrides.nativeModules, ]; // "dynamic" as they depend on the compatibility date and flags @@ -116,6 +118,7 @@ export function getCloudflarePreset({ ...vmOverrides.hybridModules, ...inspectorOverrides.hybridModules, ...sqliteOverrides.hybridModules, + ...dgramOverrides.hybridModules, ]; return { @@ -674,3 +677,39 @@ function getSqliteOverrides({ hybridModules: [], }; } + +/** + * Returns the overrides for `node:dgram` (unenv or workerd) + * + * The native dgram implementation: + * - is experimental and has no default enable date + * - can be enabled with the "enable_nodejs_dgram_module" flag + * - can be disabled with the "disable_nodejs_dgram_module" flag + */ +function getDgramOverrides({ + compatibilityFlags, +}: { + compatibilityDate: string; + compatibilityFlags: string[]; +}): { nativeModules: string[]; hybridModules: string[] } { + const disabledByFlag = compatibilityFlags.includes( + "disable_nodejs_dgram_module" + ); + + const enabledByFlag = + compatibilityFlags.includes("enable_nodejs_dgram_module") && + compatibilityFlags.includes("experimental"); + + const enabled = enabledByFlag && !disabledByFlag; + + // When enabled, use the native `dgram` module from workerd + return enabled + ? { + nativeModules: ["dgram"], + hybridModules: [], + } + : { + nativeModules: [], + hybridModules: [], + }; +} diff --git a/packages/vite-plugin-cloudflare/CHANGELOG.md b/packages/vite-plugin-cloudflare/CHANGELOG.md index ac30b5c1a807..475df456094a 100644 --- a/packages/vite-plugin-cloudflare/CHANGELOG.md +++ b/packages/vite-plugin-cloudflare/CHANGELOG.md @@ -1,5 +1,12 @@ # @cloudflare/vite-plugin +## 1.20.3 + +### Patch Changes + +- Updated dependencies [[`99b1f32`](https://github.com/cloudflare/workers-sdk/commit/99b1f328a9afe181b49f1114ed47f15f6d25f0be)]: + - wrangler@4.59.1 + ## 1.20.2 ### Patch Changes diff --git a/packages/vite-plugin-cloudflare/package.json b/packages/vite-plugin-cloudflare/package.json index e963d0dfadba..90493f5547fe 100644 --- a/packages/vite-plugin-cloudflare/package.json +++ b/packages/vite-plugin-cloudflare/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/vite-plugin", - "version": "1.20.2", + "version": "1.20.3", "description": "Cloudflare plugin for Vite", "keywords": [ "cloudflare", diff --git a/packages/vitest-pool-workers/CHANGELOG.md b/packages/vitest-pool-workers/CHANGELOG.md index 027054e53cfc..8587ddadab31 100644 --- a/packages/vitest-pool-workers/CHANGELOG.md +++ b/packages/vitest-pool-workers/CHANGELOG.md @@ -1,5 +1,12 @@ # @cloudflare/vitest-pool-workers +## 0.12.3 + +### Patch Changes + +- Updated dependencies [[`99b1f32`](https://github.com/cloudflare/workers-sdk/commit/99b1f328a9afe181b49f1114ed47f15f6d25f0be)]: + - wrangler@4.59.1 + ## 0.12.2 ### Patch Changes diff --git a/packages/vitest-pool-workers/package.json b/packages/vitest-pool-workers/package.json index a956d4bed4cd..cb9edc358e35 100644 --- a/packages/vitest-pool-workers/package.json +++ b/packages/vitest-pool-workers/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/vitest-pool-workers", - "version": "0.12.2", + "version": "0.12.3", "description": "Workers Vitest integration for writing Vitest unit and integration tests that run inside the Workers runtime", "keywords": [ "cloudflare", diff --git a/packages/wrangler/CHANGELOG.md b/packages/wrangler/CHANGELOG.md index b32af608989a..4f0ab79a8cae 100644 --- a/packages/wrangler/CHANGELOG.md +++ b/packages/wrangler/CHANGELOG.md @@ -1,5 +1,13 @@ # wrangler +## 4.59.1 + +### Patch Changes + +- [#11889](https://github.com/cloudflare/workers-sdk/pull/11889) [`99b1f32`](https://github.com/cloudflare/workers-sdk/commit/99b1f328a9afe181b49f1114ed47f15f6d25f0be) Thanks [@emily-shen](https://github.com/emily-shen)! - Use argument array when executing git commands with `wrangler pages deploy` + + Pass user provided values from `--commit-hash` safely to underlying git command. + ## 4.59.0 ### Minor Changes diff --git a/packages/wrangler/e2e/remote-binding/miniflare-remote-resources.test.ts b/packages/wrangler/e2e/remote-binding/miniflare-remote-resources.test.ts index 5a5210fe77c7..8a30b0ddafc9 100644 --- a/packages/wrangler/e2e/remote-binding/miniflare-remote-resources.test.ts +++ b/packages/wrangler/e2e/remote-binding/miniflare-remote-resources.test.ts @@ -347,26 +347,26 @@ const testCases: TestCase[] = [ }), expectFetchToMatch: [expect.stringContaining(`image/avif`)], }, - { - name: "Media", - scriptPath: "media.js", - setup: () => ({ - remoteProxySessionConfig: { - bindings: { - MEDIA: { - type: "media", - }, - }, - }, - miniflareConfig: (connection) => ({ - media: { - binding: "MEDIA", - remoteProxyConnectionString: connection, - }, - }), - }), - expectFetchToMatch: [expect.stringContaining(`image/jpeg`)], - }, + // { + // name: "Media", + // scriptPath: "media.js", + // setup: () => ({ + // remoteProxySessionConfig: { + // bindings: { + // MEDIA: { + // type: "media", + // }, + // }, + // }, + // miniflareConfig: (connection) => ({ + // media: { + // binding: "MEDIA", + // remoteProxyConnectionString: connection, + // }, + // }), + // }), + // expectFetchToMatch: [expect.stringContaining(`image/jpeg`)], + // }, { name: "Dispatch Namespace", scriptPath: "dispatch-namespace.js", diff --git a/packages/wrangler/e2e/unenv-preset/preset.test.ts b/packages/wrangler/e2e/unenv-preset/preset.test.ts index 27136399ad19..78ccc05babaa 100644 --- a/packages/wrangler/e2e/unenv-preset/preset.test.ts +++ b/packages/wrangler/e2e/unenv-preset/preset.test.ts @@ -451,6 +451,27 @@ const localTestConfigs: TestConfig[] = [ }, }, ], + // node:dgram (experimental, no default enable date) + [ + // TODO: add test for disabled by date (no date defined yet) + // TODO: add test for enabled by date (no date defined yet) + { + name: "dgram enabled by flag", + compatibilityDate: "2024-09-23", + compatibilityFlags: ["enable_nodejs_dgram_module", "experimental"], + expectRuntimeFlags: { + enable_nodejs_dgram_module: true, + }, + }, + { + name: "dgram disabled by flag", + compatibilityDate: "2024-09-23", + compatibilityFlags: ["disable_nodejs_dgram_module", "experimental"], + expectRuntimeFlags: { + enable_nodejs_dgram_module: false, + }, + }, + ], ].flat() as TestConfig[]; describe.each(localTestConfigs)( diff --git a/packages/wrangler/e2e/unenv-preset/worker/index.ts b/packages/wrangler/e2e/unenv-preset/worker/index.ts index 61f45bdf8f17..b96bb324e60e 100644 --- a/packages/wrangler/e2e/unenv-preset/worker/index.ts +++ b/packages/wrangler/e2e/unenv-preset/worker/index.ts @@ -832,6 +832,20 @@ export const WorkerdTests: Record void> = { ); } }, + + async testDgram() { + const dgram = await import("node:dgram"); + + assertTypeOfProperties(dgram, { + createSocket: "function", + Socket: "function", + }); + + assertTypeOfProperties(dgram.default, { + createSocket: "function", + Socket: "function", + }); + }, }; /** diff --git a/packages/wrangler/package.json b/packages/wrangler/package.json index 2fcf1b861e30..1a855ccbf8e2 100644 --- a/packages/wrangler/package.json +++ b/packages/wrangler/package.json @@ -1,6 +1,6 @@ { "name": "wrangler", - "version": "4.59.0", + "version": "4.59.1", "description": "Command-line interface for all things Cloudflare Workers", "keywords": [ "wrangler", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 00d9e833cd8b..d1f22e0a9f77 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2284,8 +2284,8 @@ importers: specifier: 2.0.0-rc.24 version: 2.0.0-rc.24 workerd: - specifier: ^1.20251202.0 - version: 1.20251202.0 + specifier: ^1.20251221.0 + version: 1.20260111.0 devDependencies: '@types/node-unenv': specifier: npm:@types/node@^22.14.0 @@ -4873,12 +4873,6 @@ packages: '@vitest/snapshot': 2.0.x - 3.2.x vitest: 2.0.x - 3.2.x - '@cloudflare/workerd-darwin-64@1.20251202.0': - resolution: {integrity: sha512-/uvEAWEukTWb1geHhbjGUeZqcSSSyYzp0mvoPUBl+l0ont4NVGao3fgwM0q8wtKvgoKCHSG6zcG23wj9Opj3Nw==} - engines: {node: '>=16'} - cpu: [x64] - os: [darwin] - '@cloudflare/workerd-darwin-64@1.20251210.0': resolution: {integrity: sha512-Nn9X1moUDERA9xtFdCQ2XpQXgAS9pOjiCxvOT8sVx9UJLAiBLkfSCGbpsYdarODGybXCpjRlc77Yppuolvt7oQ==} engines: {node: '>=16'} @@ -4891,12 +4885,6 @@ packages: cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20251202.0': - resolution: {integrity: sha512-f52xRvcI9cWRd6400EZStRtXiRC5XKEud7K5aFIbbUv0VeINltujFQQ9nHWtsF6g1quIXWkjhh5u01gPAYNNXA==} - engines: {node: '>=16'} - cpu: [arm64] - os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20251210.0': resolution: {integrity: sha512-Mg8iYIZQFnbevq/ls9eW/eneWTk/EE13Pej1MwfkY5et0jVpdHnvOLywy/o+QtMJFef1AjsqXGULwAneYyBfHw==} engines: {node: '>=16'} @@ -4909,12 +4897,6 @@ packages: cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20251202.0': - resolution: {integrity: sha512-HYXinF5RBH7oXbsFUMmwKCj+WltpYbf5mRKUBG5v3EuPhUjSIFB84U+58pDyfBJjcynHdy3EtvTWcvh/+lcgow==} - engines: {node: '>=16'} - cpu: [x64] - os: [linux] - '@cloudflare/workerd-linux-64@1.20251210.0': resolution: {integrity: sha512-kjC2fCZhZ2Gkm1biwk2qByAYpGguK5Gf5ic8owzSCUw0FOUfQxTZUT9Lp3gApxsfTLbbnLBrX/xzWjywH9QR4g==} engines: {node: '>=16'} @@ -4927,12 +4909,6 @@ packages: cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20251202.0': - resolution: {integrity: sha512-++L02Jdoxz7hEA9qDaQjbVU1RzQS+S+eqIi22DkPe2Tgiq2M3UfNpeu+75k5L9DGRIkZPYvwMBMbcmKvQqdIIg==} - engines: {node: '>=16'} - cpu: [arm64] - os: [linux] - '@cloudflare/workerd-linux-arm64@1.20251210.0': resolution: {integrity: sha512-2IB37nXi7PZVQLa1OCuO7/6pNxqisRSO8DmCQ5x/3sezI5op1vwOxAcb1osAnuVsVN9bbvpw70HJvhKruFJTuA==} engines: {node: '>=16'} @@ -4945,12 +4921,6 @@ packages: cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20251202.0': - resolution: {integrity: sha512-gzeU6eDydTi7ib+Q9DD/c0hpXtqPucnHk2tfGU03mljPObYxzMkkPGgB5qxpksFvub3y4K0ChjqYxGJB4F+j3g==} - engines: {node: '>=16'} - cpu: [x64] - os: [win32] - '@cloudflare/workerd-windows-64@1.20251210.0': resolution: {integrity: sha512-Uaz6/9XE+D6E7pCY4OvkCuJHu7HcSDzeGcCGY1HLhojXhHd7yL52c3yfiyJdS8hPatiAa0nn5qSI/42+aTdDSw==} engines: {node: '>=16'} @@ -13965,11 +13935,6 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - workerd@1.20251202.0: - resolution: {integrity: sha512-p08YfrUMHkjCECNdT36r+6DpJIZX4kixbZ4n6GMUcLR5Gh18fakSCsiQrh72iOm4M9QHv/rM7P8YvCrUPWT5sg==} - engines: {node: '>=16'} - hasBin: true - workerd@1.20251210.0: resolution: {integrity: sha512-9MUUneP1BnRE9XAYi94FXxHmiLGbO75EHQZsgWqSiOXjoXSqJCw8aQbIEPxCy19TclEl/kHUFYce8ST2W+Qpjw==} engines: {node: '>=16'} @@ -15436,45 +15401,30 @@ snapshots: - bufferutil - utf-8-validate - '@cloudflare/workerd-darwin-64@1.20251202.0': - optional: true - '@cloudflare/workerd-darwin-64@1.20251210.0': optional: true '@cloudflare/workerd-darwin-64@1.20260111.0': optional: true - '@cloudflare/workerd-darwin-arm64@1.20251202.0': - optional: true - '@cloudflare/workerd-darwin-arm64@1.20251210.0': optional: true '@cloudflare/workerd-darwin-arm64@1.20260111.0': optional: true - '@cloudflare/workerd-linux-64@1.20251202.0': - optional: true - '@cloudflare/workerd-linux-64@1.20251210.0': optional: true '@cloudflare/workerd-linux-64@1.20260111.0': optional: true - '@cloudflare/workerd-linux-arm64@1.20251202.0': - optional: true - '@cloudflare/workerd-linux-arm64@1.20251210.0': optional: true '@cloudflare/workerd-linux-arm64@1.20260111.0': optional: true - '@cloudflare/workerd-windows-64@1.20251202.0': - optional: true - '@cloudflare/workerd-windows-64@1.20251210.0': optional: true @@ -25407,14 +25357,6 @@ snapshots: wordwrap@1.0.0: {} - workerd@1.20251202.0: - optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20251202.0 - '@cloudflare/workerd-darwin-arm64': 1.20251202.0 - '@cloudflare/workerd-linux-64': 1.20251202.0 - '@cloudflare/workerd-linux-arm64': 1.20251202.0 - '@cloudflare/workerd-windows-64': 1.20251202.0 - workerd@1.20251210.0: optionalDependencies: '@cloudflare/workerd-darwin-64': 1.20251210.0