create-cloudflare 0.0.0-ea3e16a89 → 0.0.0-ea71df3d4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/dist/cli.js +39139 -37391
  2. package/dist/tsconfig.tsbuildinfo +1 -1
  3. package/package.json +13 -10
  4. package/templates/analog/c3.ts +0 -24
  5. package/templates/analog/templates/env.d.ts +1 -1
  6. package/templates/angular/c3.ts +5 -110
  7. package/templates/angular/pages/c3.ts +135 -0
  8. package/templates/angular/pages/templates/wrangler.jsonc +5 -0
  9. package/{templates-experimental/angular → templates/angular/workers}/c3.ts +26 -7
  10. package/templates/astro/c3.ts +5 -93
  11. package/templates/astro/pages/c3.ts +99 -0
  12. package/templates/astro/pages/templates/ts/worker-configuration.d.ts +4 -0
  13. package/{templates-experimental/astro → templates/astro/workers}/c3.ts +2 -2
  14. package/templates/astro/workers/templates/js/public/.assetsignore +2 -0
  15. package/{templates-experimental/astro/templates/js/wrangler.json → templates/astro/workers/templates/js/wrangler.jsonc} +2 -1
  16. package/templates/astro/workers/templates/ts/public/.assetsignore +2 -0
  17. package/{templates-experimental/astro/templates/ts/wrangler.json → templates/astro/workers/templates/ts/wrangler.jsonc} +3 -2
  18. package/templates/common/c3.ts +5 -1
  19. package/templates/common/ts/src/index.ts +1 -1
  20. package/templates/common/ts/tsconfig.json +0 -3
  21. package/templates/docusaurus/c3.ts +5 -24
  22. package/templates/docusaurus/pages/c3.ts +32 -0
  23. package/{templates-experimental/docusaurus → templates/docusaurus/workers}/c3.ts +4 -2
  24. package/templates/gatsby/c3.ts +5 -45
  25. package/templates/gatsby/pages/c3.ts +52 -0
  26. package/{templates-experimental/gatsby → templates/gatsby/workers}/c3.ts +3 -2
  27. package/templates/hello-world/c3.ts +20 -3
  28. package/templates/hello-world/js/package.json +2 -2
  29. package/templates/hello-world/js/vitest.config.js +1 -1
  30. package/templates/hello-world/js/{wrangler.json → wrangler.jsonc} +2 -2
  31. package/templates/hello-world/py/.python-version +1 -0
  32. package/templates/hello-world/py/README.md +23 -0
  33. package/templates/hello-world/py/pyproject.toml +9 -0
  34. package/templates/hello-world/py/src/entry.py +3 -2
  35. package/templates/hello-world/py/uv.lock +22 -0
  36. package/templates/hello-world/py/{wrangler.json → wrangler.jsonc} +2 -2
  37. package/templates/hello-world/ts/package.json +2 -2
  38. package/templates/hello-world/ts/src/index.ts +1 -1
  39. package/templates/hello-world/ts/test/env.d.ts +3 -0
  40. package/templates/hello-world/ts/test/index.spec.ts +0 -1
  41. package/templates/hello-world/ts/test/tsconfig.json +1 -1
  42. package/templates/hello-world/ts/tsconfig.json +0 -2
  43. package/templates/hello-world/ts/vitest.config.mts +1 -1
  44. package/templates/hello-world/ts/{wrangler.json → wrangler.jsonc} +2 -2
  45. package/{templates-experimental → templates}/hello-world-assets-only/c3.ts +4 -3
  46. package/templates/hello-world-durable-object/c3.ts +9 -3
  47. package/templates/hello-world-durable-object/js/src/index.js +13 -12
  48. package/templates/hello-world-durable-object/js/{wrangler.json → wrangler.jsonc} +1 -1
  49. package/templates/hello-world-durable-object/py/.python-version +1 -0
  50. package/templates/hello-world-durable-object/py/README.md +23 -0
  51. package/templates/hello-world-durable-object/py/__dot__gitignore +68 -0
  52. package/templates/hello-world-durable-object/py/package.json +13 -0
  53. package/templates/hello-world-durable-object/py/pyproject.toml +9 -0
  54. package/templates/hello-world-durable-object/py/src/entry.py +66 -0
  55. package/templates/hello-world-durable-object/py/uv.lock +22 -0
  56. package/templates/hello-world-durable-object/py/wrangler.jsonc +27 -0
  57. package/templates/hello-world-durable-object/ts/src/index.ts +13 -12
  58. package/templates/hello-world-durable-object/ts/tsconfig.json +0 -2
  59. package/templates/hello-world-durable-object/ts/{wrangler.json → wrangler.jsonc} +1 -1
  60. package/{templates-experimental → templates}/hello-world-durable-object-with-assets/c3.ts +6 -3
  61. package/{templates-experimental → templates}/hello-world-durable-object-with-assets/js/src/index.js +14 -13
  62. package/{templates-experimental/hello-world-durable-object-with-assets/js/wrangler.json → templates/hello-world-durable-object-with-assets/js/wrangler.jsonc} +2 -2
  63. package/templates/hello-world-durable-object-with-assets/py/.python-version +1 -0
  64. package/templates/hello-world-durable-object-with-assets/py/README.md +23 -0
  65. package/templates/hello-world-durable-object-with-assets/py/pyproject.toml +9 -0
  66. package/templates/hello-world-durable-object-with-assets/py/src/entry.py +66 -0
  67. package/templates/hello-world-durable-object-with-assets/py/uv.lock +22 -0
  68. package/templates/hello-world-durable-object-with-assets/py/wrangler.jsonc +31 -0
  69. package/templates/hello-world-durable-object-with-assets/ts/public/index.html +19 -0
  70. package/{templates-experimental → templates}/hello-world-durable-object-with-assets/ts/src/index.ts +13 -12
  71. package/{templates-experimental → templates}/hello-world-durable-object-with-assets/ts/tsconfig.json +0 -2
  72. package/{templates-experimental/hello-world-durable-object-with-assets/ts/wrangler.json → templates/hello-world-durable-object-with-assets/ts/wrangler.jsonc} +1 -1
  73. package/templates/hello-world-with-assets/c3.ts +25 -0
  74. package/{templates-experimental → templates}/hello-world-with-assets/js/package.json +2 -2
  75. package/{templates-experimental/hello-world-with-assets/ts → templates/hello-world-with-assets/js}/public/index.html +2 -2
  76. package/{templates-experimental → templates}/hello-world-with-assets/js/vitest.config.js +1 -1
  77. package/{templates-experimental/hello-world-with-assets/js/wrangler.json → templates/hello-world-with-assets/js/wrangler.jsonc} +2 -1
  78. package/templates/hello-world-with-assets/py/.python-version +1 -0
  79. package/templates/hello-world-with-assets/py/README.md +23 -0
  80. package/templates/hello-world-with-assets/py/__dot__gitignore +68 -0
  81. package/templates/hello-world-with-assets/py/package.json +13 -0
  82. package/{templates-experimental/hello-world-with-assets/js → templates/hello-world-with-assets/py}/public/index.html +2 -2
  83. package/templates/hello-world-with-assets/py/pyproject.toml +9 -0
  84. package/templates/hello-world-with-assets/py/src/entry.py +11 -0
  85. package/templates/hello-world-with-assets/py/uv.lock +22 -0
  86. package/{templates-experimental → templates}/hello-world-with-assets/ts/package.json +2 -2
  87. package/{templates-experimental/hello-world-with-assets/py → templates/hello-world-with-assets/ts}/public/index.html +2 -2
  88. package/{templates-experimental → templates}/hello-world-with-assets/ts/src/index.ts +1 -1
  89. package/templates/hello-world-with-assets/ts/test/env.d.ts +3 -0
  90. package/templates/hello-world-with-assets/ts/test/tsconfig.json +8 -0
  91. package/{templates-experimental → templates}/hello-world-with-assets/ts/tsconfig.json +0 -2
  92. package/{templates-experimental → templates}/hello-world-with-assets/ts/vitest.config.mts +1 -1
  93. package/{templates-experimental/hello-world-with-assets/ts/wrangler.json → templates/hello-world-with-assets/ts/wrangler.jsonc} +2 -1
  94. package/templates/hono/c3.ts +5 -65
  95. package/templates/hono/pages/c3.ts +47 -0
  96. package/templates/hono/pages/templates/src/index.tsx +12 -0
  97. package/templates/{openapi/ts/wrangler.json → hono/pages/templates/wrangler.jsonc} +1 -1
  98. package/{templates-experimental/hono → templates/hono/workers}/c3.ts +6 -5
  99. package/templates/next/c3.ts +7 -218
  100. package/templates/next/{README.md → pages/README.md} +1 -1
  101. package/templates/next/pages/c3.ts +221 -0
  102. package/templates/next/workers/c3.ts +71 -0
  103. package/templates/next/workers/templates/open-next.config.ts +9 -0
  104. package/{templates-experimental/next/templates/wrangler.json → templates/next/workers/templates/wrangler.jsonc} +3 -3
  105. package/templates/nuxt/c3.ts +5 -130
  106. package/templates/nuxt/pages/c3.ts +123 -0
  107. package/{templates-experimental/nuxt → templates/nuxt/pages}/templates/env.d.ts +1 -1
  108. package/templates/nuxt/pages/templates/wrangler.jsonc +5 -0
  109. package/{templates-experimental/nuxt → templates/nuxt/workers}/c3.ts +15 -28
  110. package/templates/nuxt/{templates → workers/templates}/env.d.ts +1 -1
  111. package/templates/openapi/c3.ts +5 -1
  112. package/templates/openapi/ts/__dot__gitignore +1 -0
  113. package/templates/openapi/ts/package.json +7 -6
  114. package/templates/openapi/ts/src/endpoints/taskCreate.ts +2 -2
  115. package/templates/openapi/ts/src/endpoints/taskDelete.ts +2 -2
  116. package/templates/openapi/ts/src/endpoints/taskFetch.ts +2 -2
  117. package/templates/openapi/ts/src/endpoints/taskList.ts +2 -2
  118. package/templates/openapi/ts/src/index.ts +4 -1
  119. package/templates/openapi/ts/src/types.ts +3 -0
  120. package/templates/openapi/ts/tsconfig.json +18 -21
  121. package/templates/pre-existing/c3.ts +7 -3
  122. package/templates/queues/c3.ts +5 -1
  123. package/templates/queues/ts/src/index.ts +1 -1
  124. package/templates/queues/ts/tsconfig.json +0 -2
  125. package/templates/qwik/c3.ts +5 -143
  126. package/templates/qwik/pages/c3.ts +151 -0
  127. package/templates/qwik/pages/templates/worker-configuration.d.ts +4 -0
  128. package/{templates-experimental/qwik → templates/qwik/workers}/c3.ts +8 -8
  129. package/templates/qwik/workers/templates/worker-configuration.d.ts +4 -0
  130. package/{templates-experimental/qwik/templates/wrangler.json → templates/qwik/workers/templates/wrangler.jsonc} +2 -1
  131. package/templates/react/c3.ts +5 -57
  132. package/templates/react/pages/c3.ts +65 -0
  133. package/templates/react/pages/templates/wrangler.jsonc +5 -0
  134. package/templates/react/workers/c3.ts +183 -0
  135. package/templates/react/workers/js/src/App.css +45 -0
  136. package/templates/react/workers/js/src/App.jsx +58 -0
  137. package/templates/react/workers/js/src/assets/Cloudflare_Logo.svg +53 -0
  138. package/templates/react/workers/js/worker/index.js +13 -0
  139. package/templates/react/workers/js/wrangler.jsonc +9 -0
  140. package/templates/react/workers/ts/src/App.css +45 -0
  141. package/templates/react/workers/ts/src/App.tsx +58 -0
  142. package/templates/react/workers/ts/src/assets/Cloudflare_Logo.svg +51 -0
  143. package/templates/react/workers/ts/tsconfig.worker.json +8 -0
  144. package/templates/react/workers/ts/worker/index.ts +12 -0
  145. package/templates/react/workers/ts/wrangler.jsonc +9 -0
  146. package/templates/react-router/c3.ts +41 -0
  147. package/templates/remix/c3.ts +6 -63
  148. package/templates/remix/pages/c3.ts +70 -0
  149. package/{templates-experimental/remix → templates/remix/workers}/c3.ts +3 -2
  150. package/{templates-experimental/hello-world-with-assets/ts → templates/remix/workers/templates}/worker-configuration.d.ts +1 -1
  151. package/{templates-experimental/remix → templates/remix/workers}/templates/wrangler.toml +1 -1
  152. package/templates/scheduled/c3.ts +5 -1
  153. package/templates/scheduled/js/src/index.js +1 -1
  154. package/templates/scheduled/ts/src/index.ts +9 -2
  155. package/templates/scheduled/ts/tsconfig.json +0 -2
  156. package/templates/solid/c3.ts +1 -0
  157. package/templates/svelte/c3.ts +5 -154
  158. package/templates/svelte/pages/c3.ts +160 -0
  159. package/{templates-experimental/svelte → templates/svelte/workers}/c3.ts +6 -6
  160. package/templates/svelte/workers/templates/static/.assetsignore +2 -0
  161. package/templates/vue/c3.ts +5 -25
  162. package/{templates-experimental/vue → templates/vue/pages}/c3.ts +8 -8
  163. package/templates/vue/pages/templates/wrangler.jsonc +5 -0
  164. package/templates/vue/workers/c3.ts +98 -0
  165. package/templates/vue/workers/js/server/index.js +13 -0
  166. package/templates/vue/workers/js/src/App.vue +107 -0
  167. package/templates/vue/workers/js/src/components/HelloWorld.vue +47 -0
  168. package/templates/vue/workers/js/vite.config.js +21 -0
  169. package/templates/vue/workers/js/wrangler.jsonc +11 -0
  170. package/templates/vue/workers/ts/server/index.ts +12 -0
  171. package/templates/vue/workers/ts/src/App.vue +107 -0
  172. package/templates/vue/workers/ts/src/components/HelloWorld.vue +44 -0
  173. package/templates/vue/workers/ts/tsconfig.worker.json +8 -0
  174. package/templates/vue/workers/ts/vite.config.ts +21 -0
  175. package/templates/vue/workers/ts/wrangler.jsonc +11 -0
  176. package/templates-experimental/solid/c3.ts +1 -1
  177. package/templates/analog/templates/worker-configuration.d.ts +0 -4
  178. package/templates/astro/templates/ts/worker-configuration.d.ts +0 -4
  179. package/templates/common/ts/worker-configuration.d.ts +0 -4
  180. package/templates/hello-world/ts/worker-configuration.d.ts +0 -4
  181. package/templates/hello-world-durable-object/ts/worker-configuration.d.ts +0 -5
  182. package/templates/hono/snippets/appDeclaration.ts +0 -1
  183. package/templates/hono/templates/worker-configuration.d.ts +0 -4
  184. package/templates/next/env.d.ts +0 -5
  185. package/templates/nuxt/templates/worker-configuration.d.ts +0 -4
  186. package/templates/openapi/ts/worker-configuration.d.ts +0 -4
  187. package/templates/pre-existing/js/wrangler.json +0 -5
  188. package/templates/queues/ts/worker-configuration.d.ts +0 -5
  189. package/templates/qwik/templates/worker-configuration.d.ts +0 -4
  190. package/templates/remix/templates/worker-configuration.d.ts +0 -4
  191. package/templates/scheduled/ts/worker-configuration.d.ts +0 -4
  192. package/templates/solid/templates/wrangler.json +0 -8
  193. package/templates-experimental/astro/templates/ts/public/.assetsignore +0 -4
  194. package/templates-experimental/astro/templates/ts/worker-configuration.d.ts +0 -4
  195. package/templates-experimental/hello-world-durable-object-with-assets/ts/worker-configuration.d.ts +0 -5
  196. package/templates-experimental/hello-world-with-assets/c3.ts +0 -22
  197. package/templates-experimental/hello-world-with-assets/py/src/entry.py +0 -9
  198. package/templates-experimental/hello-world-with-assets/ts/test/tsconfig.json +0 -8
  199. package/templates-experimental/hono/templates/worker-configuration.d.ts +0 -4
  200. package/templates-experimental/next/c3.ts +0 -84
  201. package/templates-experimental/next/templates/cloudflare-env.d.ts +0 -5
  202. package/templates-experimental/next/templates/open-next.config.ts +0 -28
  203. package/templates-experimental/nuxt/templates/worker-configuration.d.ts +0 -4
  204. package/templates-experimental/qwik/templates/public/.assetsignore +0 -4
  205. package/templates-experimental/qwik/templates/worker-configuration.d.ts +0 -4
  206. package/templates-experimental/svelte/templates/static/.assetsignore +0 -4
  207. package/templates-experimental/vue/templates/wrangler.json +0 -10
  208. /package/templates/analog/templates/{wrangler.json → wrangler.jsonc} +0 -0
  209. /package/templates/angular/{templates → pages/templates}/src/_routes.json +0 -0
  210. /package/{templates-experimental/angular → templates/angular/pages}/templates/src/server.ts +0 -0
  211. /package/templates/angular/{templates → pages/templates}/tools/copy-files.mjs +0 -0
  212. /package/templates/angular/{templates → workers/templates}/src/server.ts +0 -0
  213. /package/{templates-experimental/angular/templates/wrangler.json → templates/angular/workers/templates/wrangler.jsonc} +0 -0
  214. /package/templates/astro/{templates/js/wrangler.json → pages/templates/js/wrangler.jsonc} +0 -0
  215. /package/{templates-experimental/astro → templates/astro/pages}/templates/ts/src/env.d.ts +0 -0
  216. /package/templates/astro/{templates/ts/wrangler.json → pages/templates/ts/wrangler.jsonc} +0 -0
  217. /package/templates/astro/{templates → workers/templates}/ts/src/env.d.ts +0 -0
  218. /package/templates/common/js/{wrangler.json → wrangler.jsonc} +0 -0
  219. /package/templates/common/ts/{wrangler.json → wrangler.jsonc} +0 -0
  220. /package/{templates-experimental/docusaurus/templates/wrangler.json → templates/docusaurus/workers/templates/wrangler.jsonc} +0 -0
  221. /package/{templates-experimental/gatsby/templates/wrangler.json → templates/gatsby/workers/templates/wrangler.jsonc} +0 -0
  222. /package/{templates-experimental → templates}/hello-world-assets-only/templates/package.json +0 -0
  223. /package/{templates-experimental → templates}/hello-world-assets-only/templates/public/index.html +0 -0
  224. /package/{templates-experimental/hello-world-assets-only/templates/wrangler.json → templates/hello-world-assets-only/templates/wrangler.jsonc} +0 -0
  225. /package/{templates-experimental → templates}/hello-world-durable-object-with-assets/js/.editorconfig +0 -0
  226. /package/{templates-experimental → templates}/hello-world-durable-object-with-assets/js/.prettierrc +0 -0
  227. /package/{templates-experimental → templates}/hello-world-durable-object-with-assets/js/__dot__gitignore +0 -0
  228. /package/{templates-experimental → templates}/hello-world-durable-object-with-assets/js/package.json +0 -0
  229. /package/{templates-experimental → templates}/hello-world-durable-object-with-assets/js/public/index.html +0 -0
  230. /package/{templates-experimental/hello-world-with-assets → templates/hello-world-durable-object-with-assets}/py/__dot__gitignore +0 -0
  231. /package/{templates-experimental/hello-world-with-assets → templates/hello-world-durable-object-with-assets}/py/package.json +0 -0
  232. /package/{templates-experimental/hello-world-durable-object-with-assets/ts → templates/hello-world-durable-object-with-assets/py}/public/index.html +0 -0
  233. /package/{templates-experimental → templates}/hello-world-durable-object-with-assets/ts/.editorconfig +0 -0
  234. /package/{templates-experimental → templates}/hello-world-durable-object-with-assets/ts/.prettierrc +0 -0
  235. /package/{templates-experimental → templates}/hello-world-durable-object-with-assets/ts/__dot__gitignore +0 -0
  236. /package/{templates-experimental → templates}/hello-world-durable-object-with-assets/ts/package.json +0 -0
  237. /package/{templates-experimental → templates}/hello-world-with-assets/js/.editorconfig +0 -0
  238. /package/{templates-experimental → templates}/hello-world-with-assets/js/.prettierrc +0 -0
  239. /package/{templates-experimental → templates}/hello-world-with-assets/js/__dot__gitignore +0 -0
  240. /package/{templates-experimental → templates}/hello-world-with-assets/js/src/index.js +0 -0
  241. /package/{templates-experimental → templates}/hello-world-with-assets/js/test/index.spec.js +0 -0
  242. /package/{templates-experimental/hello-world-with-assets/py/wrangler.json → templates/hello-world-with-assets/py/wrangler.jsonc} +0 -0
  243. /package/{templates-experimental → templates}/hello-world-with-assets/ts/.editorconfig +0 -0
  244. /package/{templates-experimental → templates}/hello-world-with-assets/ts/.prettierrc +0 -0
  245. /package/{templates-experimental → templates}/hello-world-with-assets/ts/__dot__gitignore +0 -0
  246. /package/{templates-experimental → templates}/hello-world-with-assets/ts/test/index.spec.ts +0 -0
  247. /package/{templates-experimental/hono → templates/hono/workers}/templates/public/index.html +0 -0
  248. /package/{templates-experimental/hono → templates/hono/workers}/templates/src/index.ts +0 -0
  249. /package/{templates-experimental/hono/templates/wrangler.json → templates/hono/workers/templates/wrangler.jsonc} +0 -0
  250. /package/templates/next/{app → pages/app}/js/app/api/hello/route.js +0 -0
  251. /package/templates/next/{app → pages/app}/js/app/not-found.js +0 -0
  252. /package/templates/next/{app → pages/app}/ts/app/api/hello/route.ts +0 -0
  253. /package/templates/next/{app → pages/app}/ts/app/not-found.tsx +0 -0
  254. /package/templates/next/pages/{js → pages/js}/pages/api/hello.js +0 -0
  255. /package/templates/next/pages/{ts → pages/ts}/pages/api/hello.ts +0 -0
  256. /package/templates/next/{wrangler.json → pages/wrangler.jsonc} +0 -0
  257. /package/{templates-experimental/next → templates/next/workers}/templates/.dev.vars +0 -0
  258. /package/{templates-experimental/next → templates/next/workers}/templates/__dot__gitignore +0 -0
  259. /package/{templates-experimental/nuxt/templates/wrangler.json → templates/nuxt/workers/templates/wrangler.jsonc} +0 -0
  260. /package/templates/{hono/templates/wrangler.json → openapi/ts/wrangler.jsonc} +0 -0
  261. /package/templates/queues/js/{wrangler.json → wrangler.jsonc} +0 -0
  262. /package/templates/queues/ts/{wrangler.json → wrangler.jsonc} +0 -0
  263. /package/{templates-experimental/qwik → templates/qwik/pages}/snippets/getPlatformProxy.ts +0 -0
  264. /package/templates/{nuxt/templates/wrangler.json → qwik/pages/templates/wrangler.jsonc} +0 -0
  265. /package/templates/qwik/{snippets → workers/snippets}/getPlatformProxy.ts +0 -0
  266. /package/{templates-experimental/astro/templates/js → templates/qwik/workers/templates}/public/.assetsignore +0 -0
  267. /package/{templates-experimental/remix → templates/remix/pages}/templates/worker-configuration.d.ts +0 -0
  268. /package/templates/remix/{templates/wrangler.json → pages/templates/wrangler.jsonc} +0 -0
  269. /package/{templates-experimental/remix → templates/remix/workers}/templates/public/.assetsignore +0 -0
  270. /package/templates/scheduled/js/{wrangler.json → wrangler.jsonc} +0 -0
  271. /package/templates/scheduled/ts/{wrangler.json → wrangler.jsonc} +0 -0
  272. /package/templates/{qwik/templates/wrangler.json → solid/templates/wrangler.jsonc} +0 -0
  273. /package/templates/svelte/{templates/wrangler.json → pages/templates/wrangler.jsonc} +0 -0
  274. /package/{templates-experimental/svelte/templates/wrangler.json → templates/svelte/workers/templates/wrangler.jsonc} +0 -0
  275. /package/templates-experimental/solid/templates/{wrangler.json → wrangler.jsonc} +0 -0
@@ -9,8 +9,8 @@
9
9
  "test": "vitest"
10
10
  },
11
11
  "devDependencies": {
12
- "@cloudflare/vitest-pool-workers": "^0.6.4",
12
+ "@cloudflare/vitest-pool-workers": "^0.8.19",
13
13
  "wrangler": "^3.101.0",
14
- "vitest": "2.1.8"
14
+ "vitest": "~3.0.7"
15
15
  }
16
16
  }
@@ -7,8 +7,8 @@
7
7
  </head>
8
8
  <body>
9
9
  <h1 id="heading"></h1>
10
- <button id="button">Fetch a random UUID</button>
11
- <div id="random"></div>
10
+ <button id="button" type="button">Fetch a random UUID</button>
11
+ <output id="random" for="button"></output>
12
12
  <script>
13
13
  fetch('/message')
14
14
  .then((resp) => resp.text())
@@ -4,7 +4,7 @@ export default defineWorkersConfig({
4
4
  test: {
5
5
  poolOptions: {
6
6
  workers: {
7
- wrangler: { configPath: './wrangler.json' },
7
+ wrangler: { configPath: './wrangler.jsonc' },
8
8
  },
9
9
  },
10
10
  },
@@ -3,7 +3,8 @@
3
3
  "main": "src/index.js",
4
4
  "compatibility_date": "<TBD>",
5
5
  "compatibility_flags": [
6
- "nodejs_compat"
6
+ "nodejs_compat",
7
+ "global_fetch_strictly_public"
7
8
  ],
8
9
  "assets": {
9
10
  "binding": "ASSETS",
@@ -0,0 +1,23 @@
1
+ ## Usage
2
+
3
+ You can run the Worker defined by your new project by executing `wrangler dev` in this
4
+ directory. This will start up an HTTP server and will allow you to iterate on your
5
+ Worker without having to restart `wrangler`.
6
+
7
+ ### Types and autocomplete
8
+
9
+ This project also includes a pyproject.toml and uv.lock file with some requirements which
10
+ set up autocomplete and type hints for this Python Workers project.
11
+
12
+ To get these installed you'll need `uv`, which you can install by following
13
+ https://docs.astral.sh/uv/getting-started/installation/.
14
+
15
+ Once `uv` is installed, you can run the following:
16
+
17
+ ```
18
+ uv venv
19
+ uv sync
20
+ ```
21
+
22
+ Then point your editor's Python plugin at the `.venv` directory. You should then have working
23
+ autocomplete and type information in your editor.
@@ -0,0 +1,68 @@
1
+ # Logs
2
+
3
+ logs
4
+ _.log
5
+ npm-debug.log_
6
+ yarn-debug.log*
7
+ yarn-error.log*
8
+ lerna-debug.log*
9
+ .pnpm-debug.log*
10
+
11
+ # Diagnostic reports (https://nodejs.org/api/report.html)
12
+
13
+ report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
14
+
15
+ # Runtime data
16
+
17
+ pids
18
+ _.pid
19
+ _.seed
20
+ \*.pid.lock
21
+
22
+ # Dependency directories
23
+
24
+ node_modules/
25
+ jspm_packages/
26
+
27
+ # TypeScript cache
28
+
29
+ \*.tsbuildinfo
30
+
31
+ # Optional npm cache directory
32
+
33
+ .npm
34
+
35
+ # Optional eslint cache
36
+
37
+ .eslintcache
38
+
39
+ # Optional stylelint cache
40
+
41
+ .stylelintcache
42
+
43
+ # Optional REPL history
44
+
45
+ .node_repl_history
46
+
47
+ # Output of 'npm pack'
48
+
49
+ \*.tgz
50
+
51
+ # dotenv environment variable files
52
+
53
+ .env
54
+ .env.development.local
55
+ .env.test.local
56
+ .env.production.local
57
+ .env.local
58
+
59
+ # public
60
+
61
+ # Stores VSCode versions used for testing VSCode extensions
62
+
63
+ .vscode-test
64
+
65
+ # wrangler project
66
+
67
+ .dev.vars
68
+ .wrangler/
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "<TBD>",
3
+ "version": "0.0.0",
4
+ "private": true,
5
+ "scripts": {
6
+ "deploy": "wrangler deploy",
7
+ "dev": "wrangler dev",
8
+ "start": "wrangler dev"
9
+ },
10
+ "devDependencies": {
11
+ "wrangler": "^3.101.0"
12
+ }
13
+ }
@@ -7,8 +7,8 @@
7
7
  </head>
8
8
  <body>
9
9
  <h1 id="heading"></h1>
10
- <button id="button">Fetch a random UUID</button>
11
- <div id="random"></div>
10
+ <button id="button" type="button">Fetch a random UUID</button>
11
+ <output id="random" for="button"></output>
12
12
  <script>
13
13
  fetch('/message')
14
14
  .then((resp) => resp.text())
@@ -0,0 +1,9 @@
1
+ [project]
2
+ name = "<TBD>"
3
+ version = "0.1.0"
4
+ description = "Add your description here"
5
+ readme = "README.md"
6
+ requires-python = ">=3.12"
7
+ dependencies = [
8
+ "webtypy>=0.1.7",
9
+ ]
@@ -0,0 +1,11 @@
1
+ from workers import Response
2
+ from uuid import uuid4
3
+ from urllib.parse import urlparse
4
+
5
+ async def on_fetch(request, env):
6
+ url = urlparse(request.url)
7
+ if url.path == '/message':
8
+ return Response('Hello, World!')
9
+ if url.path == '/random':
10
+ return Response(uuid4())
11
+ return Response('Not Found', status=404)
@@ -0,0 +1,22 @@
1
+ version = 1
2
+ requires-python = ">=3.12"
3
+
4
+ [[package]]
5
+ name = "<TBD>"
6
+ version = "0.1.0"
7
+ source = { virtual = "." }
8
+ dependencies = [
9
+ { name = "webtypy" },
10
+ ]
11
+
12
+ [package.metadata]
13
+ requires-dist = [{ name = "webtypy", specifier = ">=0.1.7" }]
14
+
15
+ [[package]]
16
+ name = "webtypy"
17
+ version = "0.1.7"
18
+ source = { registry = "https://pypi.org/simple" }
19
+ sdist = { url = "https://files.pythonhosted.org/packages/5e/89/c7a0311fdc73809fc2415be97767f085ff3e00c86546430034dc8465fee7/webtypy-0.1.7.tar.gz", hash = "sha256:1b7212719a949c802f3d60fac5f0d952eb503a92121409cf1ad9847d7c76a336", size = 104505 }
20
+ wheels = [
21
+ { url = "https://files.pythonhosted.org/packages/61/91/c731bdaa605279e00b28bfd2bf0ae67f48061d16890fb1c026924bfbd242/webtypy-0.1.7-py3-none-any.whl", hash = "sha256:f35e6d73a4e08783e23adfac271a11cda3a2bd1105499db70e4819244efed0ae", size = 103519 },
22
+ ]
@@ -10,9 +10,9 @@
10
10
  "cf-typegen": "wrangler types"
11
11
  },
12
12
  "devDependencies": {
13
- "@cloudflare/vitest-pool-workers": "^0.6.4",
13
+ "@cloudflare/vitest-pool-workers": "^0.8.19",
14
14
  "typescript": "^5.5.2",
15
- "vitest": "2.1.8",
15
+ "vitest": "~3.0.7",
16
16
  "wrangler": "^3.101.0"
17
17
  }
18
18
  }
@@ -7,8 +7,8 @@
7
7
  </head>
8
8
  <body>
9
9
  <h1 id="heading"></h1>
10
- <button id="button">Fetch a random UUID</button>
11
- <div id="random"></div>
10
+ <button id="button" type="button">Fetch a random UUID</button>
11
+ <output id="random" for="button"></output>
12
12
  <script>
13
13
  fetch('/message')
14
14
  .then((resp) => resp.text())
@@ -5,7 +5,7 @@
5
5
  * - Open a browser tab at http://localhost:8787/ to see your worker in action
6
6
  * - Run `npm run deploy` to publish your worker
7
7
  *
8
- * Bind resources to your worker in `wrangler.json`. After adding bindings, a type definition for the
8
+ * Bind resources to your worker in `wrangler.jsonc`. After adding bindings, a type definition for the
9
9
  * `Env` object can be regenerated with `npm run cf-typegen`.
10
10
  *
11
11
  * Learn more at https://developers.cloudflare.com/workers/
@@ -0,0 +1,3 @@
1
+ declare module 'cloudflare:test' {
2
+ interface ProvidedEnv extends Env {}
3
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": "../tsconfig.json",
3
+ "compilerOptions": {
4
+ "types": ["@cloudflare/vitest-pool-workers"]
5
+ },
6
+ "include": ["./**/*.ts", "../worker-configuration.d.ts"],
7
+ "exclude": []
8
+ }
@@ -13,8 +13,6 @@
13
13
  "module": "es2022",
14
14
  /* Specify how TypeScript looks up a file from a given module specifier. */
15
15
  "moduleResolution": "Bundler",
16
- /* Specify type package names to be included without being referenced in a source file. */
17
- "types": ["@cloudflare/workers-types"],
18
16
  /* Enable importing .json files */
19
17
  "resolveJsonModule": true,
20
18
 
@@ -4,7 +4,7 @@ export default defineWorkersConfig({
4
4
  test: {
5
5
  poolOptions: {
6
6
  workers: {
7
- wrangler: { configPath: './wrangler.json' },
7
+ wrangler: { configPath: './wrangler.jsonc' },
8
8
  },
9
9
  },
10
10
  },
@@ -3,7 +3,8 @@
3
3
  "main": "src/index.ts",
4
4
  "compatibility_date": "<TBD>",
5
5
  "compatibility_flags": [
6
- "nodejs_compat"
6
+ "nodejs_compat",
7
+ "global_fetch_strictly_public"
7
8
  ],
8
9
  "assets": {
9
10
  "binding": "ASSETS",
@@ -1,69 +1,9 @@
1
- import { logRaw } from "@cloudflare/cli";
2
- import { brandColor, dim } from "@cloudflare/cli/colors";
3
- import { spinner } from "@cloudflare/cli/interactive";
4
- import { runFrameworkGenerator } from "frameworks/index";
5
- import { loadTemplateSnippets, transformFile } from "helpers/codemod";
6
- import { detectPackageManager } from "helpers/packageManagers";
7
- import type { TemplateConfig } from "../../src/templates";
8
- import type * as recast from "recast";
9
- import type { C3Context } from "types";
1
+ import pages from "./pages/c3";
2
+ import workers from "./workers/c3";
3
+ import type { MultiPlatformTemplateConfig } from "../../src/templates";
10
4
 
11
- const generate = async (ctx: C3Context) => {
12
- const { name: pm } = detectPackageManager();
13
-
14
- await runFrameworkGenerator(ctx, [
15
- ctx.project.name,
16
- "--template",
17
- "cloudflare-workers",
18
- "--install",
19
- "--pm",
20
- pm,
21
- ]);
22
-
23
- logRaw(""); // newline
24
- };
25
-
26
- const configure = async (ctx: C3Context) => {
27
- const indexFile = "src/index.ts";
28
-
29
- const s = spinner();
30
- s.start(`Updating \`${indexFile}\``);
31
-
32
- const snippets = loadTemplateSnippets(ctx);
33
-
34
- transformFile(indexFile, {
35
- visitVariableDeclarator(n) {
36
- if (n.node.id.type === "Identifier" && n.node.id.name === "app") {
37
- n.node.init = snippets
38
- .appDeclarationTs[0] as recast.types.namedTypes.NewExpression;
39
-
40
- return false;
41
- }
42
- },
43
- });
44
-
45
- s.stop(`${brandColor("updated")} \`${dim(indexFile)}\``);
46
- };
47
-
48
- const config: TemplateConfig = {
49
- configVersion: 1,
50
- id: "hono",
51
- frameworkCli: "create-hono",
5
+ const config: MultiPlatformTemplateConfig = {
52
6
  displayName: "Hono",
53
- copyFiles: {
54
- path: "./templates",
55
- },
56
- platform: "workers",
57
- generate,
58
- configure,
59
- transformPackageJson: async () => ({
60
- scripts: {
61
- dev: "wrangler dev",
62
- deploy: "wrangler deploy --minify",
63
- "cf-typegen": "wrangler types --env-interface CloudflareBindings",
64
- },
65
- }),
66
- devScript: "dev",
67
- deployScript: "deploy",
7
+ platformVariants: { pages, workers },
68
8
  };
69
9
  export default config;
@@ -0,0 +1,47 @@
1
+ import { logRaw } from "@cloudflare/cli";
2
+ import { runFrameworkGenerator } from "frameworks/index";
3
+ import { detectPackageManager } from "helpers/packageManagers";
4
+ import type { TemplateConfig } from "../../../src/templates";
5
+ import type { C3Context } from "types";
6
+
7
+ const generate = async (ctx: C3Context) => {
8
+ const { name: pm } = detectPackageManager();
9
+
10
+ await runFrameworkGenerator(ctx, [
11
+ ctx.project.name,
12
+ "--template",
13
+ "cloudflare-pages",
14
+ "--install",
15
+ "--pm",
16
+ pm,
17
+ ]);
18
+
19
+ logRaw(""); // newline
20
+ };
21
+
22
+ const envInterfaceName = "CloudflareBindings";
23
+
24
+ const config: TemplateConfig = {
25
+ configVersion: 1,
26
+ id: "hono",
27
+ frameworkCli: "create-hono",
28
+ displayName: "Hono",
29
+ copyFiles: {
30
+ path: "./templates",
31
+ },
32
+ path: "templates/hono/pages",
33
+ platform: "pages",
34
+ hidden: true,
35
+ generate,
36
+ transformPackageJson: async () => ({
37
+ scripts: {
38
+ "cf-typegen": `wrangler types --env-interface ${envInterfaceName}`,
39
+ preview: "vite build && wrangler pages dev",
40
+ },
41
+ }),
42
+ devScript: "dev",
43
+ deployScript: "deploy",
44
+ previewScript: "preview",
45
+ envInterfaceName,
46
+ };
47
+ export default config;
@@ -0,0 +1,12 @@
1
+ import { Hono } from 'hono'
2
+ import { renderer } from './renderer'
3
+
4
+ const app = new Hono<{ Bindings: CloudflareBindings }>();
5
+
6
+ app.use(renderer)
7
+
8
+ app.get('/', (c) => {
9
+ return c.render(<h1>Hello!</h1>)
10
+ })
11
+
12
+ export default app
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "<TBD>",
3
- "main": "src/index.ts",
4
3
  "compatibility_date": "<TBD>",
4
+ "pages_build_output_dir": "./dist",
5
5
  "observability": {
6
6
  "enabled": true
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { logRaw } from "@cloudflare/cli";
2
2
  import { runFrameworkGenerator } from "frameworks/index";
3
3
  import { detectPackageManager } from "helpers/packageManagers";
4
- import type { TemplateConfig } from "../../src/templates";
4
+ import type { TemplateConfig } from "../../../src/templates";
5
5
  import type { C3Context } from "types";
6
6
 
7
7
  const generate = async (ctx: C3Context) => {
@@ -19,6 +19,7 @@ const generate = async (ctx: C3Context) => {
19
19
  logRaw(""); // newline
20
20
  };
21
21
 
22
+ const envInterfaceName = "CloudflareBindings";
22
23
  const config: TemplateConfig = {
23
24
  configVersion: 1,
24
25
  id: "hono",
@@ -28,16 +29,16 @@ const config: TemplateConfig = {
28
29
  path: "./templates",
29
30
  },
30
31
  platform: "workers",
31
- path: "templates-experimental/hono",
32
+ path: "templates/hono/workers",
32
33
  generate,
33
34
  transformPackageJson: async () => ({
34
35
  scripts: {
35
- dev: "wrangler dev",
36
- deploy: "wrangler deploy --minify",
37
- "cf-typegen": "wrangler types --env-interface CloudflareBindings",
36
+ "cf-typegen": `wrangler types --env-interface ${envInterfaceName}`,
38
37
  },
39
38
  }),
40
39
  devScript: "dev",
41
40
  deployScript: "deploy",
41
+ previewScript: "dev",
42
+ envInterfaceName,
42
43
  };
43
44
  export default config;