Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: cloudflare/workers-sdk
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: wrangler@4.6.0
Choose a base ref
...
head repository: cloudflare/workers-sdk
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: wrangler@4.7.0
Choose a head ref

Commits on Mar 31, 2025

  1. [vite-plugin] add validation for configPaths (#8572)

    * [vite-plugin] add validation for `configPath`s
    
    * Apply suggestions from code review
    
    Co-authored-by: James Opstad <13586373+jamesopstad@users.noreply.github.com>
    
    * remove extra describe block
    
    * rename `configPath` to `entryWorkerConfigPath`
    
    * add `allowedWranglerConfigExtensions` const
    
    * add missing arguments
    
    * update tests
    
    ---------
    
    Co-authored-by: James Opstad <13586373+jamesopstad@users.noreply.github.com>
    dario-piotrowicz and jamesopstad authored Mar 31, 2025
    Copy the full SHA
    e6fea13 View commit details
  2. Copy the full SHA
    23885f6 View commit details
  3. [C3] Bump create-solid from 0.6.1 to 0.6.2 in /packages/create-cloudf…

    …lare/src/frameworks (#8734)
    
    * [C3] Bump create-solid in /packages/create-cloudflare/src/frameworks
    
    Bumps [create-solid](https://github.com/solidjs-community/solid-cli) from 0.6.1 to 0.6.2.
    - [Commits](https://github.com/solidjs-community/solid-cli/commits)
    
    ---
    updated-dependencies:
    - dependency-name: create-solid
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    
    * chore: update dependencies of "create-cloudflare" package
    
    The following dependency versions have been updated:
    
    | Dependency   | From  | To    |
    | ------------ | ----- | ----- |
    | create-solid | 0.6.1 | 0.6.2 |
    
    ---------
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Wrangler automated PR updater <wrangler@cloudflare.com>
    dependabot[bot] and Wrangler automated PR updater authored Mar 31, 2025
    Copy the full SHA
    e4e7296 View commit details
  4. [C3] Bump @angular/create from 19.1.6 to 19.2.5 in /packages/create-c…

    …loudflare/src/frameworks (#8731)
    
    * [C3] Bump @angular/create in /packages/create-cloudflare/src/frameworks
    
    Bumps [@angular/create](https://github.com/angular/angular-cli) from 19.1.6 to 19.2.5.
    - [Release notes](https://github.com/angular/angular-cli/releases)
    - [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
    - [Commits](angular/angular-cli@19.1.6...19.2.5)
    
    ---
    updated-dependencies:
    - dependency-name: "@angular/create"
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    
    * chore: update dependencies of "create-cloudflare" package
    
    The following dependency versions have been updated:
    
    | Dependency      | From   | To     |
    | --------------- | ------ | ------ |
    | @angular/create | 19.1.6 | 19.2.5 |
    
    ---------
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Wrangler automated PR updater <wrangler@cloudflare.com>
    dependabot[bot] and Wrangler automated PR updater authored Mar 31, 2025
    Copy the full SHA
    5eb6e1b View commit details
  5. [C3] Bump create-react-router from 7.4.0 to 7.4.1 in /packages/create…

    …-cloudflare/src/frameworks (#8732)
    
    * [C3] Bump create-react-router
    
    Bumps [create-react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/create-react-router) from 7.4.0 to 7.4.1.
    - [Release notes](https://github.com/remix-run/react-router/releases)
    - [Changelog](https://github.com/remix-run/react-router/blob/main/packages/create-react-router/CHANGELOG.md)
    - [Commits](https://github.com/remix-run/react-router/commits/create-react-router@7.4.1/packages/create-react-router)
    
    ---
    updated-dependencies:
    - dependency-name: create-react-router
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    
    * chore: update dependencies of "create-cloudflare" package
    
    The following dependency versions have been updated:
    
    | Dependency          | From  | To    |
    | ------------------- | ----- | ----- |
    | create-react-router | 7.4.0 | 7.4.1 |
    
    ---------
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Wrangler automated PR updater <wrangler@cloudflare.com>
    dependabot[bot] and Wrangler automated PR updater authored Mar 31, 2025
    Copy the full SHA
    5fc7fe6 View commit details
  6. Copy the full SHA
    8df60b5 View commit details
  7. Copy the full SHA
    6e8e747 View commit details
  8. stop getPlatformProxy crashing with internal DOs (#8697)

    * pass name to getplatformproxy
    
    * fixup
    
    * remove out of date warning
    
    * stop gpp crashing with internal DOs
    
    * changeset
    
    * fix e2e
    
    * pr feedback
    
    * elaborate on error message
    
    * move to a docs link
    
    * fix failing test
    
    * copy improvement
    
    * update docs link
    
    * update link
    
    ---------
    
    Co-authored-by: Carmen Popoviciu <cpopoviciu@cloudflare.com>
    emily-shen and CarmenPopoviciu authored Mar 31, 2025
    Copy the full SHA
    ec1f813 View commit details
  9. Ensure that Node.js polyfills are pre-optimized before the first requ…

    …est (#8688)
    
    * Ensure that Node.js polyfills are pre-optimized before the first request
    
    Previously, these polyfills were only optimized on demand when Vite became aware of them.
    This was either because Vite was able to find an import to a polyfill when statically analysing the import tree of the entry-point,
    or when a polyfilled module was dynamically imported as part of a executing code to handle a request.
    
    In the second case, the optimizing of the dynamically imported dependency causes a reload of the Vite server, which can break applications that are holding state in modules during the request.
    This is the case of most React type frameworks, in particular React Router.
    
    Now, we pre-optimize all the possible Node.js polyfills when the server starts before the first request is handled.
    
    * fixup! Ensure that Node.js polyfills are pre-optimized before the first request
    
    * add test
    
    * simplify the  nodejs warnings plugin
    
    * fixup! Ensure that Node.js polyfills are pre-optimized before the first request
    
    * fixup! simplify the  nodejs warnings plugin
    
    * add debugging to e2e tests
    
    * fixup! Ensure that Node.js polyfills are pre-optimized before the first request
    
    * Initialize nodeJsCompatWarnings in configResolved hook
    
    * Fix wrangler-configs-validation e2e tests
    
    ---------
    
    Co-authored-by: James Opstad <13586373+jamesopstad@users.noreply.github.com>
    petebacondarwin and jamesopstad authored Mar 31, 2025
    Copy the full SHA
    28522ae View commit details

Commits on Apr 1, 2025

  1. [vite-plugin] improve inspector port handling (#8680)

    * [vite-plugin] fix: make sure that the plugin keeps looking for available inspector ports by default
    
    * [vite-plugin] fix: make sure that users can use inspector port `0` to use a random port
    
    * Update packages/vite-plugin-cloudflare/README.md
    
    Co-authored-by: James Opstad <13586373+jamesopstad@users.noreply.github.com>
    
    * move `resolvedInspectorPort` inside `cloudflare` function
    
    * resolve inspector port in configure server
    
    * remove global `resolvedInspectorPort` variable
    
    * Revert "remove global `resolvedInspectorPort` variable"
    
    This reverts commit 8382228.
    
    * remove global `resolvedInspectorPort` variable (and resolve inspector port id in debug middleware)
    
    * improve code and warn when 9229 is not available
    
    * remove unused imports
    
    * remove useless line of code
    
    * Update packages/vite-plugin-cloudflare/src/index.ts
    
    Co-authored-by: James Opstad <13586373+jamesopstad@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: James Opstad <13586373+jamesopstad@users.noreply.github.com>
    dario-piotrowicz and jamesopstad authored Apr 1, 2025
    Copy the full SHA
    8dcc50f View commit details
  2. Add sslmode field to hyperdrive command (#8727)

    * SQC-480 update -uuid to -id per api changes
    
    * SQC-480 implement sslmode field for hyperdrive
    
    ---------
    
    Co-authored-by: Adrian Gracia <agracia@cloudflare.com>
    Ltadrian and Adrian Gracia authored Apr 1, 2025
    Copy the full SHA
    3993374 View commit details
  3. Copy the full SHA
    654e1b9 View commit details
  4. [vite-plugin]: fix applications not being able to import assets from …

    …dependencies (#8672)
    
    * [vite-plugin]: fix applications not being able to import assets from dependencies
    
    * remove runtime checking in favour of config validation
    
    * update lock file
    
    * add missing optional chaining
    
    * add e2e to make sure validation takes place
    
    * add TODO
    
    * Apply suggestions from code review
    
    Co-authored-by: James Opstad <13586373+jamesopstad@users.noreply.github.com>
    
    * update inline snapshots
    
    * problematic -> disallowed
    
    * fix typo in filename
    
    * update changeset
    
    ---------
    
    Co-authored-by: James Opstad <13586373+jamesopstad@users.noreply.github.com>
    dario-piotrowicz and jamesopstad authored Apr 1, 2025
    Copy the full SHA
    d533f5e View commit details
  5. fix: remove stray main field in Hono Pages template (#8738)

    * remove stray main field
    
    * test with preview script instead of dev
    emily-shen authored Apr 1, 2025
    Copy the full SHA
    da1ec13 View commit details
  6. graduate next + assets template (#8741)

    * graduate next
    
    * changeset
    
    * fixups
    
    * fix test
    emily-shen authored Apr 1, 2025
    Copy the full SHA
    56637e3 View commit details
  7. Copy the full SHA
    624882e View commit details
  8. Copy the full SHA
    448e3ad View commit details

Commits on Apr 2, 2025

  1. improve turbo settings and vite e2e test config (#8754)

    * improve turbo settings and vite e2e test config
    
    * skip the vite warnings playground when in build mode
    
    * Run Wrangler test:e2e in non-interactive mode
    
    * fixup! improve turbo settings and vite e2e test config
    petebacondarwin authored Apr 2, 2025
    Copy the full SHA
    0dae4ac View commit details
  2. fix next.js on workers C3 e2e test

    Next was asking interactively whether to use turbopack, which causes the test to hang
    petebacondarwin committed Apr 2, 2025
    Copy the full SHA
    6e7f5f6 View commit details
  3. skip next.js C3 e2e tests on pnpm

    The CI jobs are consistently timing out
    petebacondarwin committed Apr 2, 2025
    Copy the full SHA
    1ce9403 View commit details
  4. Version Packages (#8730)

    * Version Packages
    
    * fix typing problem in c3 tests
    
    ---------
    
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: Peter Bacon Darwin <pbacondarwin@cloudflare.com>
    3 people authored Apr 2, 2025
    Copy the full SHA
    8b510e8 View commit details
Showing with 1,931 additions and 663 deletions.
  1. +1 −1 .github/pull_request_template.md
  2. +2 −2 .github/workflows/e2e.yml
  3. +1 −0 .github/workflows/open-v3-maintenance-prs.yml
  4. +55 −1 fixtures/get-platform-proxy/tests/get-platform-proxy.env.test.ts
  5. +24 −0 fixtures/get-platform-proxy/wrangler_external_do.jsonc
  6. +23 −0 fixtures/get-platform-proxy/wrangler_internal_do.jsonc
  7. +34 −0 packages/create-cloudflare/CHANGELOG.md
  8. +1 −1 packages/create-cloudflare/e2e-tests/cli.test.ts
  9. +0 −31 packages/create-cloudflare/e2e-tests/frameworks/framework-test-config-experimental.ts
  10. +39 −2 packages/create-cloudflare/e2e-tests/frameworks/framework-test-config.ts
  11. +1 −1 packages/create-cloudflare/package.json
  12. +3 −3 packages/create-cloudflare/src/frameworks/package.json
  13. +0 −2 packages/create-cloudflare/src/templates.ts
  14. +2 −1 packages/create-cloudflare/templates/hono/pages/c3.ts
  15. +1 −2 packages/create-cloudflare/templates/hono/pages/templates/wrangler.jsonc
  16. +7 −221 packages/create-cloudflare/templates/next/c3.ts
  17. 0 packages/create-cloudflare/templates/next/{ → pages}/README.md
  18. 0 packages/create-cloudflare/templates/next/{ → pages}/app/js/app/api/hello/route.js
  19. 0 packages/create-cloudflare/templates/next/{ → pages}/app/js/app/not-found.js
  20. 0 packages/create-cloudflare/templates/next/{ → pages}/app/ts/app/api/hello/route.ts
  21. 0 packages/create-cloudflare/templates/next/{ → pages}/app/ts/app/not-found.tsx
  22. +224 −0 packages/create-cloudflare/templates/next/pages/c3.ts
  23. 0 packages/create-cloudflare/templates/next/{ → pages}/env.d.ts
  24. 0 packages/create-cloudflare/templates/next/pages/{ → pages}/js/pages/api/hello.js
  25. 0 packages/create-cloudflare/templates/next/pages/{ → pages}/ts/pages/api/hello.ts
  26. 0 packages/create-cloudflare/templates/next/{ → pages}/wrangler.jsonc
  27. +2 −3 packages/create-cloudflare/{templates-experimental/next → templates/next/workers}/c3.ts
  28. 0 ...ages/create-cloudflare/{templates-experimental/next → templates/next/workers}/templates/.dev.vars
  29. 0 ...ges/create-cloudflare/{templates-experimental/next → templates/next/workers}/templates/.gitignore
  30. 0 ...e-cloudflare/{templates-experimental/next → templates/next/workers}/templates/cloudflare-env.d.ts
  31. 0 ...e-cloudflare/{templates-experimental/next → templates/next/workers}/templates/open-next.config.ts
  32. 0 ...create-cloudflare/{templates-experimental/next → templates/next/workers}/templates/wrangler.jsonc
  33. +41 −0 packages/vite-plugin-cloudflare/CHANGELOG.md
  34. +1 −1 packages/vite-plugin-cloudflare/README.md
  35. +15 −4 packages/vite-plugin-cloudflare/e2e/README.md
  36. +4 −6 packages/vite-plugin-cloudflare/e2e/basic.test.ts
  37. +22 −0 packages/vite-plugin-cloudflare/e2e/dynamic.test.ts
  38. +1 −1 packages/vite-plugin-cloudflare/e2e/fixtures/basic/package.json
  39. +1 −1 packages/vite-plugin-cloudflare/e2e/fixtures/basic/vite.config.ts
  40. +1 −1 packages/vite-plugin-cloudflare/e2e/fixtures/basic/wrangler.toml
  41. +25 −0 packages/vite-plugin-cloudflare/e2e/fixtures/dynamic/package.json
  42. +8 −0 packages/vite-plugin-cloudflare/e2e/fixtures/dynamic/src/dynamic.ts
  43. +8 −0 packages/vite-plugin-cloudflare/e2e/fixtures/dynamic/src/index.ts
  44. +7 −0 packages/vite-plugin-cloudflare/e2e/fixtures/dynamic/tsconfig.json
  45. +24 −0 packages/vite-plugin-cloudflare/e2e/fixtures/dynamic/tsconfig.node.json
  46. +8 −0 packages/vite-plugin-cloudflare/e2e/fixtures/dynamic/tsconfig.worker.json
  47. +6 −0 packages/vite-plugin-cloudflare/e2e/fixtures/dynamic/vite.config.ts
  48. +4 −0 packages/vite-plugin-cloudflare/e2e/fixtures/dynamic/wrangler.toml
  49. +5 −0 packages/vite-plugin-cloudflare/e2e/fixtures/invalid-worker-env-configs/index.js
  50. +12 −0 packages/vite-plugin-cloudflare/e2e/fixtures/invalid-worker-env-configs/package.json
  51. +19 −0 packages/vite-plugin-cloudflare/e2e/fixtures/invalid-worker-env-configs/vite.config.ts
  52. +3 −0 packages/vite-plugin-cloudflare/e2e/fixtures/invalid-worker-env-configs/wrangler.toml
  53. +5 −0 packages/vite-plugin-cloudflare/e2e/fixtures/no-wrangler-config-for-auxiliary-worker/index.ts
  54. +13 −0 packages/vite-plugin-cloudflare/e2e/fixtures/no-wrangler-config-for-auxiliary-worker/package.json
  55. +10 −0 packages/vite-plugin-cloudflare/e2e/fixtures/no-wrangler-config-for-auxiliary-worker/vite.config.ts
  56. +3 −0 packages/vite-plugin-cloudflare/e2e/fixtures/no-wrangler-config-for-auxiliary-worker/wrangler.toml
  57. +13 −0 packages/vite-plugin-cloudflare/e2e/fixtures/no-wrangler-config/package.json
  58. +6 −0 packages/vite-plugin-cloudflare/e2e/fixtures/no-wrangler-config/vite.config.ts
  59. +6 −5 packages/vite-plugin-cloudflare/e2e/global-setup.ts
  60. +54 −3 packages/vite-plugin-cloudflare/e2e/helpers.ts
  61. +18 −0 packages/vite-plugin-cloudflare/e2e/invalid-worker-env-configs.test.ts
  62. +4 −2 packages/vite-plugin-cloudflare/e2e/tsconfig.json
  63. +1 −1 packages/vite-plugin-cloudflare/e2e/vitest.config.ts
  64. +32 −0 packages/vite-plugin-cloudflare/e2e/wrangler-configs-validation.test.ts
  65. +2 −1 packages/vite-plugin-cloudflare/package.json
  66. +8 −0 ...-cloudflare/playground/deps-assets-importing/__tests__/assets-importing-from-dependencies.spec.ts
  67. +19 −0 packages/vite-plugin-cloudflare/playground/deps-assets-importing/package.json
  68. +11 −0 packages/vite-plugin-cloudflare/playground/deps-assets-importing/src/index.ts
  69. +7 −0 packages/vite-plugin-cloudflare/playground/deps-assets-importing/tsconfig.json
  70. +4 −0 packages/vite-plugin-cloudflare/playground/deps-assets-importing/tsconfig.node.json
  71. +4 −0 packages/vite-plugin-cloudflare/playground/deps-assets-importing/tsconfig.worker.json
  72. +9 −0 packages/vite-plugin-cloudflare/playground/deps-assets-importing/turbo.json
  73. +6 −0 packages/vite-plugin-cloudflare/playground/deps-assets-importing/vite.config.ts
  74. +3 −0 packages/vite-plugin-cloudflare/playground/deps-assets-importing/wrangler.toml
  75. +0 −50 ...re/playground/module-resolution/__tests__/no-prebundling/module-resolution-no-prebundling.spec.ts
  76. +0 −3 packages/vite-plugin-cloudflare/playground/module-resolution/package.json
  77. +0 −30 packages/vite-plugin-cloudflare/playground/module-resolution/vite.config.no-prebundling.ts
  78. +12 −12 packages/vite-plugin-cloudflare/playground/node-compat/__tests__/worker-warnings/warnings.spec.ts
  79. +5 −1 packages/vite-plugin-cloudflare/playground/prisma/__tests__/prisma.spec.ts
  80. +9 −2 packages/vite-plugin-cloudflare/playground/prisma/__tests__/serve.ts
  81. +1 −1 packages/vite-plugin-cloudflare/playground/vitest-setup.ts
  82. 0 packages/vite-plugin-cloudflare/src/__tests__/fixtures/empty-dir.toml/.gitkeep
  83. 0 packages/vite-plugin-cloudflare/src/__tests__/fixtures/empty-dir/.gitkeep
  84. +3 −0 packages/vite-plugin-cloudflare/src/__tests__/fixtures/wrangler.toml
  85. +105 −0 packages/vite-plugin-cloudflare/src/__tests__/get-validated-wrangler-config-path.spec.ts
  86. +213 −0 packages/vite-plugin-cloudflare/src/__tests__/validate_worker_environments_resolved_configs.spec.ts
  87. +1 −1 packages/vite-plugin-cloudflare/src/cloudflare-environment.ts
  88. +138 −84 packages/vite-plugin-cloudflare/src/index.ts
  89. +7 −8 packages/vite-plugin-cloudflare/src/miniflare-options.ts
  90. +12 −7 packages/vite-plugin-cloudflare/src/node-js-compat.ts
  91. +23 −21 packages/vite-plugin-cloudflare/src/plugin-config.ts
  92. +1 −20 packages/vite-plugin-cloudflare/src/runner-worker/module-runner.ts
  93. +5 −0 packages/vite-plugin-cloudflare/src/utils.ts
  94. +89 −0 packages/vite-plugin-cloudflare/src/worker-environments-validation.ts
  95. +71 −2 packages/vite-plugin-cloudflare/src/workers-configs.ts
  96. +6 −0 packages/vite-plugin-cloudflare/turbo.json
  97. +7 −0 packages/vitest-pool-workers/CHANGELOG.md
  98. +1 −1 packages/vitest-pool-workers/package.json
  99. +16 −0 packages/wrangler/CHANGELOG.md
  100. +0 −5 packages/wrangler/e2e/__snapshots__/pages-dev.test.ts.snap
  101. +2 −2 packages/wrangler/package.json
  102. +0 −9 packages/wrangler/src/__tests__/dev.test.ts
  103. +118 −22 packages/wrangler/src/__tests__/hyperdrive.test.ts
  104. +48 −7 packages/wrangler/src/__tests__/r2.test.ts
  105. +19 −1 packages/wrangler/src/api/integrations/platform/index.ts
  106. +1 −1 packages/wrangler/src/deployment-bundle/bindings.ts
  107. +6 −14 packages/wrangler/src/deployment-bundle/entry.ts
  108. +5 −2 packages/wrangler/src/hyperdrive/client.ts
  109. +24 −4 packages/wrangler/src/hyperdrive/index.ts
  110. +23 −8 packages/wrangler/src/r2/catalog.ts
  111. +12 −6 packages/wrangler/src/r2/helpers.ts
  112. +36 −30 packages/wrangler/turbo.json
  113. +24 −0 pnpm-lock.yaml
  114. +12 −1 tools/deployments/open-v3-pr.ts
  115. +3 −11 turbo.json
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@ The following selections do not need to be completed if this PR only contains ch
- [ ] TODO (before merge)
- [ ] Tests included
- [ ] Tests not necessary because:
- Wrangler E2E Tests CI Job required? (Use "e2e" label or ask maintainer to run separately)
- Wrangler / Vite E2E Tests CI Job required? (Use "e2e" label or ask maintainer to run separately)
- [ ] I don't know
- [ ] Required
- [ ] Not required because:
4 changes: 2 additions & 2 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
@@ -43,11 +43,11 @@ jobs:
- name: Run Vite E2E tests
run: pnpm test:e2e -F @cloudflare/vite-plugin --log-order=stream
env:
NODE_DEBUG: "vite-plugin:test"
# The AI tests need to connect to Cloudflare
CLOUDFLARE_API_TOKEN: ${{ secrets.TEST_CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.TEST_CLOUDFLARE_ACCOUNT_ID }}
NODE_OPTIONS: "--max_old_space_size=8192"
WRANGLER_LOG_PATH: ${{ runner.temp }}/wrangler-debug-logs/
TEST_REPORT_PATH: ${{ runner.temp }}/test-report/index.html
CI_OS: ${{ matrix.os }}

- name: Run Wrangler E2E tests
1 change: 1 addition & 0 deletions .github/workflows/open-v3-maintenance-prs.yml
Original file line number Diff line number Diff line change
@@ -29,6 +29,7 @@ jobs:
env:
FILES: ${{ steps.files.outputs.all }}
PR_NUMBER: ${{ github.event.number }}
PR_TITLE: ${{ toJson(github.event.pull_request.title) }}
GH_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }}
LABELS: ${{ toJson(github.event.pull_request.labels.*.name) }}
# - name: "Comment on PR with error details"
56 changes: 55 additions & 1 deletion fixtures/get-platform-proxy/tests/get-platform-proxy.env.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
import path from "path";
import { D1Database, R2Bucket } from "@cloudflare/workers-types";
import { beforeEach, describe, expect, it, vi } from "vitest";
import {
afterEach,
beforeEach,
describe,
expect,
it,
MockInstance,
vi,
} from "vitest";
import { getPlatformProxy } from "./shared";
import type { Hyperdrive, KVNamespace } from "@cloudflare/workers-types";
import type { Unstable_DevWorker } from "wrangler";
@@ -197,6 +205,52 @@ describe("getPlatformProxy - env", () => {
}
});

describe("DO warnings", () => {
let warn = {} as MockInstance<typeof console.warn>;
beforeEach(() => {
warn = vi.spyOn(console, "warn").mockImplementation(() => {});
});
afterEach(() => {
warn.mockRestore();
});

it("warns about internal DOs and doesn't crash", async () => {
await getPlatformProxy<Env>({
configPath: path.join(__dirname, "..", "wrangler_internal_do.jsonc"),
});
expect(warn).toMatchInlineSnapshot(`
[MockFunction warn] {
"calls": [
[
"▲ [WARNING]  You have defined bindings to the following internal Durable Objects:
- {"class_name":"MyDurableObject","name":"MY_DURABLE_OBJECT"}
These will not work in local development, but they should work in production.
If you want to develop these locally, you can define your DO in a separate Worker, with a separate configuration file.
For detailed instructions, refer to the Durable Objects section here: https://developers.cloudflare.com/workers/wrangler/api#supported-bindings
",
],
],
"results": [
{
"type": "return",
"value": undefined,
},
],
}
`);
});

it("doesn't warn about external DOs and doesn't crash", async () => {
await getPlatformProxy<Env>({
configPath: path.join(__dirname, "..", "wrangler_external_do.jsonc"),
});
expect(warn).not.toHaveBeenCalled();
});
});

describe("with a target environment", () => {
it("should provide bindings targeting a specified environment and also inherit top-level ones", async () => {
const { env, dispose } = await getPlatformProxy<Env>({
24 changes: 24 additions & 0 deletions fixtures/get-platform-proxy/wrangler_external_do.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"name": "external-do",
"main": "src/index.ts",
// external durable object = binding has script_name. This indicates that
// the DO is exported in a separate Worker called `do-worker`. For the
// purposes of testing, we don't need to set that up because
// getPlatformProxy would not be involved in running that Worker.

"durable_objects": {
"bindings": [
{
"class_name": "MyDurableObject",
"name": "MY_DURABLE_OBJECT",
"script_name": "do-worker",
},
],
},
"migrations": [
{
"new_sqlite_classes": ["MyDurableObject"],
"tag": "v1",
},
],
}
23 changes: 23 additions & 0 deletions fixtures/get-platform-proxy/wrangler_internal_do.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"name": "internal-do",
"main": "src/index.ts",
// Internal durable object = the binding does not specify a script name.
// This implies the DO is exported alongside this worker in `index.ts`,
// which it isn't actually. However we don't care about this here because
// getPlatformProxy will discard all user code anyway. We are simply making
// sure the warning shows up.
"durable_objects": {
"bindings": [
{
"class_name": "MyDurableObject",
"name": "MY_DURABLE_OBJECT",
},
],
},
"migrations": [
{
"new_sqlite_classes": ["MyDurableObject"],
"tag": "v1",
},
],
}
34 changes: 34 additions & 0 deletions packages/create-cloudflare/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,39 @@
# create-cloudflare

## 2.43.2

### Patch Changes

- [#8731](https://github.com/cloudflare/workers-sdk/pull/8731) [`5eb6e1b`](https://github.com/cloudflare/workers-sdk/commit/5eb6e1bd9908835d11a800bfe59f631b6cc866ae) Thanks [@dependabot](https://github.com/apps/dependabot)! - chore: update dependencies of "create-cloudflare" package

The following dependency versions have been updated:

| Dependency | From | To |
| --------------- | ------ | ------ |
| @angular/create | 19.1.6 | 19.2.5 |

- [#8732](https://github.com/cloudflare/workers-sdk/pull/8732) [`5fc7fe6`](https://github.com/cloudflare/workers-sdk/commit/5fc7fe6c7092fa089111d4a5e5b4a6c667b49463) Thanks [@dependabot](https://github.com/apps/dependabot)! - chore: update dependencies of "create-cloudflare" package

The following dependency versions have been updated:

| Dependency | From | To |
| ------------------- | ----- | ----- |
| create-react-router | 7.4.0 | 7.4.1 |

- [#8734](https://github.com/cloudflare/workers-sdk/pull/8734) [`e4e7296`](https://github.com/cloudflare/workers-sdk/commit/e4e7296fd2bcb00b511f9d48fb199c71540916ef) Thanks [@dependabot](https://github.com/apps/dependabot)! - chore: update dependencies of "create-cloudflare" package

The following dependency versions have been updated:

| Dependency | From | To |
| ------------ | ----- | ----- |
| create-solid | 0.6.1 | 0.6.2 |

- [#8741](https://github.com/cloudflare/workers-sdk/pull/8741) [`56637e3`](https://github.com/cloudflare/workers-sdk/commit/56637e3b2ca2c4aa86e07863a5b903503ee1c25a) Thanks [@emily-shen](https://github.com/emily-shen)! - Graduate Next.js + Workers Assets template from experimental

You no longer need the `--experimental` flag to access this template.

- [#8738](https://github.com/cloudflare/workers-sdk/pull/8738) [`da1ec13`](https://github.com/cloudflare/workers-sdk/commit/da1ec13e730065169dfbcf24103728e5c04dd9a1) Thanks [@emily-shen](https://github.com/emily-shen)! - fix: remove `main` field in wrangler.jsonc of Hono Pages template

## 2.43.1

### Patch Changes
2 changes: 1 addition & 1 deletion packages/create-cloudflare/e2e-tests/cli.test.ts
Original file line number Diff line number Diff line change
@@ -476,7 +476,7 @@ describe.skipIf(frameworkToTest || isQuarantineMode())("help text", () => {
npm create cloudflare -- --framework next -- --ts
pnpm create cloudflare --framework next -- --ts
Allowed Values:
next, solid
solid
--platform=<value>
Whether the application should be deployed to Pages or Workers. This is only applicable for Frameworks templates that support both Pages and Workers.
Allowed Values:
Original file line number Diff line number Diff line change
@@ -2,37 +2,6 @@ import { keys, LONG_TIMEOUT } from "../helpers";

export default function getFrameworkTestConfigExperimental() {
return {
next: {
testCommitMessage: true,
flags: [
"--ts",
"--tailwind",
"--eslint",
"--app",
"--import-alias",
"@/*",
"--src-dir",
],
verifyBuildCfTypes: {
outputFile: "cloudflare-env.d.ts",
envInterfaceName: "CloudflareEnv",
},
verifyPreview: {
route: "/test",
expectedText: "Create Next App",
},
verifyDeploy: {
route: "/",
expectedText: "Create Next App",
},
// see https://github.com/cloudflare/next-on-pages/blob/main/packages/next-on-pages/docs/supported.md#operating-systems
unsupportedOSs: ["win32"],
unsupportedPms: [
// bun and yarn are failing in CI
"bun",
"yarn",
],
},
solid: {
promptHandlers: [
{
Original file line number Diff line number Diff line change
@@ -237,7 +237,6 @@ export default function getFrameworkTestConfig(pm: string) {
verifyPreview: {
route: "/",
expectedText: "Hello!",
previewArgs: ["--host=127.0.0.1"],
},
promptHandlers: [
{
@@ -360,7 +359,10 @@ export default function getFrameworkTestConfig(pm: string) {
},
flags: ["--typescript", "--no-install", "--no-git-init"],
},
next: {
"next:pages": {
argv: ["--platform", "pages"],
timeout: LONG_TIMEOUT,
unsupportedPms: ["pnpm"],
promptHandlers: [
{
matcher: /Do you want to use the next-on-pages eslint-plugin\?/,
@@ -394,6 +396,41 @@ export default function getFrameworkTestConfig(pm: string) {
"@/*",
],
},
"next:workers": {
argv: ["--platform", "workers"],
timeout: LONG_TIMEOUT,
testCommitMessage: true,
flags: [
"--ts",
"--tailwind",
"--eslint",
"--app",
"--turbopack",
"--import-alias",
"@/*",
"--src-dir",
],
verifyBuildCfTypes: {
outputFile: "cloudflare-env.d.ts",
envInterfaceName: "CloudflareEnv",
},
verifyPreview: {
route: "/test",
expectedText: "Create Next App",
},
verifyDeploy: {
route: "/",
expectedText: "Create Next App",
},
// see https://github.com/cloudflare/next-on-pages/blob/main/packages/next-on-pages/docs/supported.md#operating-systems
unsupportedOSs: ["win32"],
unsupportedPms: [
"pnpm",
// bun and yarn are failing in CI
"bun",
"yarn",
],
},
"nuxt:pages": {
argv: ["--platform", "pages"],
testCommitMessage: true,
2 changes: 1 addition & 1 deletion packages/create-cloudflare/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "create-cloudflare",
"version": "2.43.1",
"version": "2.43.2",
"description": "A CLI for creating and deploying new applications to Cloudflare.",
"keywords": [
"cloudflare",
6 changes: 3 additions & 3 deletions packages/create-cloudflare/src/frameworks/package.json
Original file line number Diff line number Diff line change
@@ -7,15 +7,15 @@
"dependencies": {
"create-astro": "4.11.1",
"create-analog": "1.8.1",
"@angular/create": "19.1.6",
"@angular/create": "19.2.5",
"create-docusaurus": "3.7.0",
"create-hono": "0.15.3",
"create-next-app": "15.2.1",
"create-qwik": "1.12.0",
"create-vite": "6.1.1",
"create-remix": "2.15.3",
"create-react-router": "7.4.0",
"create-solid": "0.6.1",
"create-react-router": "7.4.1",
"create-solid": "0.6.2",
"create-vue": "3.15.1",
"gatsby": "5.14.1",
"sv": "0.6.23",
2 changes: 0 additions & 2 deletions packages/create-cloudflare/src/templates.ts
Original file line number Diff line number Diff line change
@@ -18,7 +18,6 @@ import {
writeFile,
writeJSON,
} from "helpers/files";
import nextTemplateExperimental from "templates-experimental/next/c3";
import solidTemplateExperimental from "templates-experimental/solid/c3";
import analogTemplate from "templates/analog/c3";
import angularTemplate from "templates/angular/c3";
@@ -175,7 +174,6 @@ export type TemplateMap = Record<
export function getFrameworkMap({ experimental = false }): TemplateMap {
if (experimental) {
return {
next: nextTemplateExperimental,
solid: solidTemplateExperimental,
};
} else {
3 changes: 2 additions & 1 deletion packages/create-cloudflare/templates/hono/pages/c3.ts
Original file line number Diff line number Diff line change
@@ -33,10 +33,11 @@ const config: TemplateConfig = {
transformPackageJson: async () => ({
scripts: {
"cf-typegen": "wrangler types --env-interface CloudflareBindings",
preview: "vite build && wrangler pages dev",
},
}),
devScript: "dev",
deployScript: "deploy",
previewScript: "dev",
previewScript: "preview",
};
export default config;
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
{
"name": "<TBD>",
"main": "src/index.ts",
"compatibility_date": "<TBD>",
"pages_build_output_dir": "./dist",
"observability": {
"enabled": true
}
}
}
Loading