wrangler 0.0.0-e87ad068 → 0.0.0-e8997b87

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 (326) hide show
  1. package/README.md +11 -13
  2. package/bin/wrangler.js +13 -102
  3. package/config-schema.json +3052 -0
  4. package/package.json +197 -199
  5. package/templates/__tests__/tsconfig.json +1 -1
  6. package/templates/checked-fetch.js +11 -4
  7. package/templates/facade.d.ts +7 -2
  8. package/templates/gitignore +2 -4
  9. package/templates/init-tests/test-vitest-new-worker.js +1 -1
  10. package/templates/init-tests/test-vitest-new-worker.ts +1 -1
  11. package/templates/middleware/common.ts +9 -4
  12. package/templates/middleware/loader-modules.ts +94 -44
  13. package/templates/middleware/loader-sw.ts +6 -10
  14. package/templates/middleware/middleware-ensure-req-body-drained.ts +18 -0
  15. package/templates/middleware/middleware-serve-static-assets.d.ts +6 -0
  16. package/templates/middleware/middleware-serve-static-assets.ts +56 -0
  17. package/templates/modules-watch-stub.js +4 -0
  18. package/templates/new-worker-scheduled.ts +1 -1
  19. package/templates/new-worker.ts +1 -1
  20. package/templates/pages-dev-pipeline.ts +2 -1
  21. package/templates/pages-shim.ts +0 -3
  22. package/templates/pages-template-plugin.ts +14 -4
  23. package/templates/pages-template-worker.ts +12 -3
  24. package/templates/startDevWorker/InspectorProxyWorker.ts +664 -0
  25. package/templates/startDevWorker/ProxyWorker.ts +334 -0
  26. package/templates/tsconfig.init.json +1 -1
  27. package/templates/tsconfig.json +1 -1
  28. package/wrangler-dist/InspectorProxyWorker.js +464 -0
  29. package/wrangler-dist/InspectorProxyWorker.js.map +6 -0
  30. package/wrangler-dist/ProxyWorker.js +240 -0
  31. package/wrangler-dist/ProxyWorker.js.map +6 -0
  32. package/wrangler-dist/cli.d.ts +24940 -306
  33. package/wrangler-dist/cli.js +173787 -118025
  34. package/wrangler-dist/wasm-sync.wasm +0 -0
  35. package/Cloudflare_CA.pem +0 -18
  36. package/import_meta_url.js +0 -3
  37. package/miniflare-config-stubs/.env.empty +0 -0
  38. package/miniflare-config-stubs/package.empty.json +0 -1
  39. package/miniflare-config-stubs/wrangler.empty.toml +0 -0
  40. package/miniflare-dist/index.mjs +0 -6442
  41. package/src/__tests__/access.test.ts +0 -25
  42. package/src/__tests__/api-dev.test.ts +0 -238
  43. package/src/__tests__/api-devregistry.test.ts +0 -121
  44. package/src/__tests__/api.test.ts +0 -102
  45. package/src/__tests__/config-cache-without-cache-dir.test.ts +0 -38
  46. package/src/__tests__/config-cache.test.ts +0 -42
  47. package/src/__tests__/configuration.test.ts +0 -4727
  48. package/src/__tests__/constellation.test.ts +0 -371
  49. package/src/__tests__/d1/d1.test.ts +0 -82
  50. package/src/__tests__/d1/execute.test.ts +0 -66
  51. package/src/__tests__/d1/migrate.test.ts +0 -257
  52. package/src/__tests__/d1/splitter.test.ts +0 -255
  53. package/src/__tests__/delete.test.ts +0 -272
  54. package/src/__tests__/deployments.test.ts +0 -369
  55. package/src/__tests__/dev.test.tsx +0 -1617
  56. package/src/__tests__/generate.test.ts +0 -237
  57. package/src/__tests__/get-host-from-url.test.ts +0 -16
  58. package/src/__tests__/guess-worker-format.test.ts +0 -120
  59. package/src/__tests__/helpers/clipboardy-mock.js +0 -4
  60. package/src/__tests__/helpers/cmd-shim.d.ts +0 -11
  61. package/src/__tests__/helpers/end-event-loop.ts +0 -6
  62. package/src/__tests__/helpers/mock-account-id.ts +0 -48
  63. package/src/__tests__/helpers/mock-auth-domain.ts +0 -20
  64. package/src/__tests__/helpers/mock-bin.ts +0 -36
  65. package/src/__tests__/helpers/mock-console.ts +0 -112
  66. package/src/__tests__/helpers/mock-dialogs.ts +0 -139
  67. package/src/__tests__/helpers/mock-get-pages-upload-token.ts +0 -25
  68. package/src/__tests__/helpers/mock-get-zone-from-host.ts +0 -11
  69. package/src/__tests__/helpers/mock-http-server.ts +0 -46
  70. package/src/__tests__/helpers/mock-istty.ts +0 -74
  71. package/src/__tests__/helpers/mock-known-routes.ts +0 -12
  72. package/src/__tests__/helpers/mock-kv.ts +0 -46
  73. package/src/__tests__/helpers/mock-oauth-flow.ts +0 -263
  74. package/src/__tests__/helpers/mock-process.ts +0 -34
  75. package/src/__tests__/helpers/mock-set-timeout.ts +0 -16
  76. package/src/__tests__/helpers/mock-stdin.ts +0 -108
  77. package/src/__tests__/helpers/mock-web-socket.ts +0 -29
  78. package/src/__tests__/helpers/msw/blob-worker.cjs +0 -19
  79. package/src/__tests__/helpers/msw/handlers/access.ts +0 -13
  80. package/src/__tests__/helpers/msw/handlers/deployments.ts +0 -160
  81. package/src/__tests__/helpers/msw/handlers/namespaces.ts +0 -81
  82. package/src/__tests__/helpers/msw/handlers/oauth.ts +0 -31
  83. package/src/__tests__/helpers/msw/handlers/r2.ts +0 -60
  84. package/src/__tests__/helpers/msw/handlers/script.ts +0 -56
  85. package/src/__tests__/helpers/msw/handlers/user.ts +0 -52
  86. package/src/__tests__/helpers/msw/handlers/zones.ts +0 -20
  87. package/src/__tests__/helpers/msw/index.ts +0 -52
  88. package/src/__tests__/helpers/msw/read-file-sync.js +0 -61
  89. package/src/__tests__/helpers/run-in-tmp.ts +0 -38
  90. package/src/__tests__/helpers/run-wrangler.ts +0 -16
  91. package/src/__tests__/helpers/string-dynamic-values-matcher.ts +0 -28
  92. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +0 -1
  93. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +0 -5
  94. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +0 -1
  95. package/src/__tests__/helpers/worker-scripts/parent-worker.js +0 -11
  96. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +0 -5
  97. package/src/__tests__/helpers/write-worker-source.ts +0 -31
  98. package/src/__tests__/helpers/write-wrangler-toml.ts +0 -17
  99. package/src/__tests__/https-options.test.ts +0 -163
  100. package/src/__tests__/index.test.ts +0 -282
  101. package/src/__tests__/init.test.ts +0 -3302
  102. package/src/__tests__/jest.setup.ts +0 -179
  103. package/src/__tests__/kv.test.ts +0 -1799
  104. package/src/__tests__/logger.test.ts +0 -207
  105. package/src/__tests__/logout.test.ts +0 -47
  106. package/src/__tests__/metrics.test.ts +0 -493
  107. package/src/__tests__/middleware.scheduled.test.ts +0 -145
  108. package/src/__tests__/middleware.test.ts +0 -816
  109. package/src/__tests__/mtls-certificates.test.ts +0 -589
  110. package/src/__tests__/package-manager.test.ts +0 -353
  111. package/src/__tests__/pages/deployment-list.test.ts +0 -80
  112. package/src/__tests__/pages/functions-build.test.ts +0 -529
  113. package/src/__tests__/pages/pages.test.ts +0 -81
  114. package/src/__tests__/pages/project-create.test.ts +0 -63
  115. package/src/__tests__/pages/project-list.test.ts +0 -110
  116. package/src/__tests__/pages/project-upload.test.ts +0 -500
  117. package/src/__tests__/pages/publish.test.ts +0 -2864
  118. package/src/__tests__/pages-deployment-tail.test.ts +0 -957
  119. package/src/__tests__/parse.test.ts +0 -436
  120. package/src/__tests__/paths.test.ts +0 -39
  121. package/src/__tests__/publish.test.ts +0 -8882
  122. package/src/__tests__/pubsub.test.ts +0 -496
  123. package/src/__tests__/queues.test.ts +0 -532
  124. package/src/__tests__/r2.test.ts +0 -374
  125. package/src/__tests__/route.test.ts +0 -45
  126. package/src/__tests__/secret.test.ts +0 -693
  127. package/src/__tests__/tail.test.ts +0 -1000
  128. package/src/__tests__/test-old-node-version.js +0 -31
  129. package/src/__tests__/traverse-module-graph.test.ts +0 -220
  130. package/src/__tests__/tsconfig-sanity.ts +0 -12
  131. package/src/__tests__/tsconfig.json +0 -8
  132. package/src/__tests__/tsconfig.tsbuildinfo +0 -1
  133. package/src/__tests__/type-generation.test.ts +0 -234
  134. package/src/__tests__/unstableDev.test.ts +0 -61
  135. package/src/__tests__/user.test.ts +0 -118
  136. package/src/__tests__/utils-collectKeyValues.test.ts +0 -47
  137. package/src/__tests__/validate-dev-props.test.ts +0 -56
  138. package/src/__tests__/version.test.ts +0 -35
  139. package/src/__tests__/whoami.test.tsx +0 -172
  140. package/src/__tests__/worker-namespace.test.ts +0 -340
  141. package/src/abort.d.ts +0 -3
  142. package/src/api/dev.ts +0 -328
  143. package/src/api/index.ts +0 -11
  144. package/src/api/mtls-certificate.ts +0 -148
  145. package/src/api/pages/create-worker-bundle-contents.ts +0 -80
  146. package/src/api/pages/index.ts +0 -5
  147. package/src/api/pages/publish.tsx +0 -371
  148. package/src/bundle-reporter.ts +0 -68
  149. package/src/bundle.ts +0 -952
  150. package/src/cfetch/index.ts +0 -158
  151. package/src/cfetch/internal.ts +0 -263
  152. package/src/cli.ts +0 -28
  153. package/src/config/README.md +0 -107
  154. package/src/config/config.ts +0 -282
  155. package/src/config/diagnostics.ts +0 -80
  156. package/src/config/environment.ts +0 -659
  157. package/src/config/index.ts +0 -424
  158. package/src/config/validation-helpers.ts +0 -597
  159. package/src/config/validation.ts +0 -2524
  160. package/src/config-cache.ts +0 -85
  161. package/src/constellation/createProject.tsx +0 -51
  162. package/src/constellation/deleteProject.ts +0 -51
  163. package/src/constellation/deleteProjectModel.ts +0 -76
  164. package/src/constellation/index.ts +0 -75
  165. package/src/constellation/listCatalog.tsx +0 -35
  166. package/src/constellation/listModel.tsx +0 -49
  167. package/src/constellation/listProject.tsx +0 -28
  168. package/src/constellation/listRuntime.tsx +0 -28
  169. package/src/constellation/options.ts +0 -17
  170. package/src/constellation/types.ts +0 -17
  171. package/src/constellation/uploadModel.tsx +0 -84
  172. package/src/constellation/utils.ts +0 -90
  173. package/src/create-worker-preview.ts +0 -293
  174. package/src/create-worker-upload-form.ts +0 -384
  175. package/src/d1/backups.tsx +0 -219
  176. package/src/d1/constants.ts +0 -5
  177. package/src/d1/create.tsx +0 -102
  178. package/src/d1/delete.ts +0 -53
  179. package/src/d1/execute.tsx +0 -371
  180. package/src/d1/formatTimeAgo.ts +0 -14
  181. package/src/d1/index.ts +0 -100
  182. package/src/d1/list.tsx +0 -62
  183. package/src/d1/migrations/apply.tsx +0 -235
  184. package/src/d1/migrations/create.tsx +0 -79
  185. package/src/d1/migrations/helpers.ts +0 -171
  186. package/src/d1/migrations/index.ts +0 -3
  187. package/src/d1/migrations/list.tsx +0 -95
  188. package/src/d1/migrations/options.ts +0 -23
  189. package/src/d1/options.ts +0 -22
  190. package/src/d1/splitter.ts +0 -161
  191. package/src/d1/types.ts +0 -32
  192. package/src/d1/utils.ts +0 -49
  193. package/src/delete.ts +0 -100
  194. package/src/deployments.ts +0 -368
  195. package/src/deprecated/index.ts +0 -144
  196. package/src/dev/dev-vars.ts +0 -39
  197. package/src/dev/dev.tsx +0 -607
  198. package/src/dev/get-local-persistence-path.ts +0 -31
  199. package/src/dev/local.tsx +0 -952
  200. package/src/dev/remote.tsx +0 -636
  201. package/src/dev/start-server.ts +0 -558
  202. package/src/dev/use-esbuild.ts +0 -230
  203. package/src/dev/validate-dev-props.ts +0 -40
  204. package/src/dev-registry.ts +0 -213
  205. package/src/dev.tsx +0 -946
  206. package/src/dialogs.ts +0 -136
  207. package/src/dispatch-namespace.ts +0 -211
  208. package/src/docs/helpers.ts +0 -50
  209. package/src/docs/index.ts +0 -54
  210. package/src/durable.ts +0 -102
  211. package/src/entry.ts +0 -344
  212. package/src/environment-variables/factory.ts +0 -89
  213. package/src/environment-variables/misc-variables.ts +0 -30
  214. package/src/errors.ts +0 -11
  215. package/src/generate/index.ts +0 -303
  216. package/src/git-client.ts +0 -135
  217. package/src/global-wrangler-config-path.ts +0 -26
  218. package/src/https-options.ts +0 -127
  219. package/src/index.ts +0 -769
  220. package/src/init.ts +0 -1074
  221. package/src/inspect.ts +0 -883
  222. package/src/intl-polyfill.d.ts +0 -139
  223. package/src/is-ci.ts +0 -14
  224. package/src/is-interactive.ts +0 -16
  225. package/src/jest.d.ts +0 -4
  226. package/src/kv/helpers.ts +0 -433
  227. package/src/kv/index.ts +0 -594
  228. package/src/logger.ts +0 -123
  229. package/src/metrics/index.ts +0 -5
  230. package/src/metrics/metrics-config.ts +0 -239
  231. package/src/metrics/metrics-dispatcher.ts +0 -96
  232. package/src/metrics/metrics-usage-headers.ts +0 -24
  233. package/src/metrics/send-event.ts +0 -99
  234. package/src/miniflare-cli/README.md +0 -30
  235. package/src/miniflare-cli/assets.ts +0 -251
  236. package/src/miniflare-cli/index.ts +0 -210
  237. package/src/miniflare-cli/request-context.ts +0 -40
  238. package/src/miniflare-cli/tsconfig.json +0 -9
  239. package/src/miniflare-cli/tsconfig.tsbuildinfo +0 -1
  240. package/src/miniflare-cli/types.ts +0 -11
  241. package/src/module-collection.ts +0 -333
  242. package/src/mtls-certificate/cli.ts +0 -155
  243. package/src/open-in-browser.ts +0 -17
  244. package/src/package-manager.ts +0 -219
  245. package/src/pages/build.ts +0 -423
  246. package/src/pages/buildFunctions.ts +0 -140
  247. package/src/pages/constants.ts +0 -18
  248. package/src/pages/deployment-tails.ts +0 -281
  249. package/src/pages/deployments.tsx +0 -84
  250. package/src/pages/dev.ts +0 -759
  251. package/src/pages/errors.ts +0 -67
  252. package/src/pages/functions/buildPlugin.ts +0 -114
  253. package/src/pages/functions/buildWorker.ts +0 -381
  254. package/src/pages/functions/filepath-routing.test.ts +0 -234
  255. package/src/pages/functions/filepath-routing.ts +0 -189
  256. package/src/pages/functions/identifiers.ts +0 -78
  257. package/src/pages/functions/routes-consolidation.test.ts +0 -250
  258. package/src/pages/functions/routes-consolidation.ts +0 -73
  259. package/src/pages/functions/routes-transformation.test.ts +0 -282
  260. package/src/pages/functions/routes-transformation.ts +0 -115
  261. package/src/pages/functions/routes-validation.test.ts +0 -403
  262. package/src/pages/functions/routes-validation.ts +0 -202
  263. package/src/pages/functions/routes.ts +0 -151
  264. package/src/pages/functions/tsconfig.json +0 -8
  265. package/src/pages/functions/tsconfig.tsbuildinfo +0 -1
  266. package/src/pages/functions.ts +0 -86
  267. package/src/pages/hash.ts +0 -13
  268. package/src/pages/index.ts +0 -102
  269. package/src/pages/projects.tsx +0 -159
  270. package/src/pages/prompt-select-project.tsx +0 -31
  271. package/src/pages/publish.tsx +0 -267
  272. package/src/pages/types.ts +0 -46
  273. package/src/pages/upload.tsx +0 -469
  274. package/src/pages/utils.ts +0 -23
  275. package/src/parse.ts +0 -308
  276. package/src/paths.ts +0 -71
  277. package/src/proxy.ts +0 -694
  278. package/src/publish/index.ts +0 -274
  279. package/src/publish/publish.ts +0 -1068
  280. package/src/pubsub/index.ts +0 -286
  281. package/src/pubsub/pubsub-commands.ts +0 -623
  282. package/src/queues/cli/commands/consumer/add.ts +0 -71
  283. package/src/queues/cli/commands/consumer/index.ts +0 -19
  284. package/src/queues/cli/commands/consumer/remove.ts +0 -31
  285. package/src/queues/cli/commands/create.ts +0 -25
  286. package/src/queues/cli/commands/delete.ts +0 -26
  287. package/src/queues/cli/commands/index.ts +0 -35
  288. package/src/queues/cli/commands/list.ts +0 -25
  289. package/src/queues/client.ts +0 -136
  290. package/src/queues/utils.ts +0 -18
  291. package/src/r2/constants.ts +0 -4
  292. package/src/r2/helpers.ts +0 -132
  293. package/src/r2/index.ts +0 -289
  294. package/src/routes.ts +0 -140
  295. package/src/secret/index.ts +0 -380
  296. package/src/selfsigned.d.ts +0 -29
  297. package/src/sites.ts +0 -484
  298. package/src/tail/createTail.ts +0 -415
  299. package/src/tail/filters.ts +0 -277
  300. package/src/tail/index.ts +0 -211
  301. package/src/tail/printing.ts +0 -134
  302. package/src/traverse-module-graph.ts +0 -54
  303. package/src/tsconfig-sanity.ts +0 -16
  304. package/src/type-generation.ts +0 -187
  305. package/src/update-check.ts +0 -19
  306. package/src/user/access.ts +0 -68
  307. package/src/user/auth-variables.ts +0 -113
  308. package/src/user/choose-account.tsx +0 -39
  309. package/src/user/generate-auth-url.ts +0 -33
  310. package/src/user/generate-random-state.ts +0 -16
  311. package/src/user/index.ts +0 -2
  312. package/src/user/user.ts +0 -1234
  313. package/src/utils/collectKeyValues.ts +0 -14
  314. package/src/utils/render.ts +0 -93
  315. package/src/whoami.ts +0 -135
  316. package/src/worker.ts +0 -300
  317. package/src/yargs-types.ts +0 -37
  318. package/src/zones.ts +0 -191
  319. package/templates/__tests__/tsconfig.tsbuildinfo +0 -1
  320. package/templates/d1-beta-facade.js +0 -244
  321. package/templates/first-party-worker-module-facade.ts +0 -19
  322. package/templates/format-dev-errors.ts +0 -34
  323. package/templates/serve-static-assets.ts +0 -66
  324. package/templates/service-bindings-module-facade.js +0 -55
  325. package/templates/service-bindings-sw-facade.js +0 -42
  326. package/templates/tsconfig.tsbuildinfo +0 -1
package/src/api/dev.ts DELETED
@@ -1,328 +0,0 @@
1
- import { fetch, Request } from "undici";
2
- import { startApiDev, startDev } from "../dev";
3
- import { logger } from "../logger";
4
-
5
- import type { Environment } from "../config";
6
- import type { Rule } from "../config/environment";
7
- import type { EnablePagesAssetsServiceBindingOptions } from "../miniflare-cli/types";
8
- import type { CfModule } from "../worker";
9
- import type { RequestInit, Response, RequestInfo } from "undici";
10
-
11
- export interface UnstableDevOptions {
12
- config?: string; // Path to .toml configuration file, relative to cwd
13
- env?: string; // Environment to use for operations and .env files
14
- ip?: string; // IP address to listen on
15
- port?: number; // Port to listen on
16
- bundle?: boolean; // Set to false to skip internal build steps and directly publish script
17
- inspectorPort?: number; // Port for devtools to connect to
18
- localProtocol?: "http" | "https"; // Protocol to listen to requests on, defaults to http.
19
- assets?: string; // Static assets to be served
20
- site?: string; // Root folder of static assets for Workers Sites
21
- siteInclude?: string[]; // Array of .gitignore-style patterns that match file or directory names from the sites directory. Only matched items will be uploaded.
22
- siteExclude?: string[]; // Array of .gitignore-style patterns that match file or directory names from the sites directory. Matched items will not be uploaded.
23
- nodeCompat?: boolean; // Enable Node.js compatibility
24
- compatibilityDate?: string; // Date to use for compatibility checks
25
- compatibilityFlags?: string[]; // Flags to use for compatibility checks
26
- persist?: boolean; // Enable persistence for local mode, using default path: .wrangler/state
27
- persistTo?: string; // Specify directory to use for local persistence (implies --persist)
28
- vars?: {
29
- [key: string]: unknown;
30
- };
31
- kv?: {
32
- binding: string;
33
- id: string;
34
- preview_id?: string;
35
- }[];
36
- durableObjects?: {
37
- name: string;
38
- class_name: string;
39
- script_name?: string | undefined;
40
- environment?: string | undefined;
41
- }[];
42
- r2?: {
43
- binding: string;
44
- bucket_name: string;
45
- preview_bucket_name?: string;
46
- }[];
47
- moduleRoot?: string;
48
- rules?: Rule[];
49
- logLevel?: "none" | "info" | "error" | "log" | "warn" | "debug"; // Specify logging level [choices: "debug", "info", "log", "warn", "error", "none"] [default: "log"]
50
- inspect?: boolean;
51
- local?: boolean;
52
- accountId?: string;
53
- experimental?: {
54
- processEntrypoint?: boolean;
55
- additionalModules?: CfModule[];
56
- d1Databases?: Environment["d1_databases"];
57
- disableExperimentalWarning?: boolean; // Disables wrangler's warning when unstable APIs are used.
58
- disableDevRegistry?: boolean; // Disables wrangler's support multi-worker setups. May reduce flakiness when used in tests in CI.
59
- enablePagesAssetsServiceBinding?: EnablePagesAssetsServiceBindingOptions;
60
- experimentalLocal?: boolean; // Use Miniflare 3 instead of Miniflare 2
61
- experimentalLocalRemoteKv?: boolean;
62
- forceLocal?: boolean;
63
- liveReload?: boolean; // Auto reload HTML pages when change is detected in local mode
64
- showInteractiveDevSession?: boolean;
65
- testMode?: boolean; // This option shouldn't be used - We plan on removing it eventually
66
- testScheduled?: boolean; // Test scheduled events by visiting /__scheduled in browser
67
- watch?: boolean; // unstable_dev doesn't support watch-mode yet in testMode
68
- };
69
- }
70
-
71
- export interface UnstableDevWorker {
72
- port: number;
73
- address: string;
74
- stop: () => Promise<void>;
75
- fetch: (input?: RequestInfo, init?: RequestInit) => Promise<Response>;
76
- waitUntilExit: () => Promise<void>;
77
- }
78
- /**
79
- * unstable_dev starts a wrangler dev server, and returns a promise that resolves with utility functions to interact with it.
80
- */
81
- export async function unstable_dev(
82
- script: string,
83
- options?: UnstableDevOptions,
84
- apiOptions?: unknown
85
- ): Promise<UnstableDevWorker> {
86
- // Note that not every experimental option is passed directly through to the underlying dev API - experimental options can be used here in unstable_dev. Otherwise we could just pass experimental down to dev blindly.
87
-
88
- const experimentalOptions = {
89
- // Defaults for "experimental" options
90
- disableDevRegistry: false,
91
- disableExperimentalWarning: false,
92
- showInteractiveDevSession: false,
93
- testMode: true,
94
- // Override all options, including overwriting with "undefined"
95
- ...options?.experimental,
96
- };
97
-
98
- const {
99
- // there are two types of "experimental" options:
100
- // 1. options to unstable_dev that we're still testing or are unsure of
101
- processEntrypoint = false,
102
- additionalModules,
103
- disableDevRegistry,
104
- disableExperimentalWarning,
105
- forceLocal,
106
- liveReload,
107
- showInteractiveDevSession,
108
- testMode,
109
- testScheduled,
110
- // 2. options for alpha/beta products/libs
111
- d1Databases,
112
- experimentalLocal,
113
- experimentalLocalRemoteKv,
114
- enablePagesAssetsServiceBinding,
115
- } = experimentalOptions;
116
-
117
- if (apiOptions) {
118
- logger.error(
119
- "unstable_dev's third argument (apiOptions) has been deprecated in favor of an `experimental` property within the second argument (options).\nPlease update your code from:\n`await unstable_dev('...', {...}, {...});`\nto:\n`await unstable_dev('...', {..., experimental: {...}});`"
120
- );
121
- }
122
-
123
- if (!disableExperimentalWarning) {
124
- logger.warn(
125
- `unstable_dev() is experimental\nunstable_dev()'s behaviour will likely change in future releases`
126
- );
127
- }
128
- let readyPort: number;
129
- let readyAddress: string;
130
- //due to Pages adoption of unstable_dev, we can't *just* disable rebuilds and watching. instead, we'll have two versions of startDev, which will converge.
131
- if (testMode) {
132
- //in testMode, we can run multiple wranglers in parallel, but rebuilds might not work out of the box
133
- return new Promise<UnstableDevWorker>((resolve) => {
134
- //lmao
135
- return new Promise<Awaited<ReturnType<typeof startApiDev>>>((ready) => {
136
- // once the devServer is ready for requests, we resolve the inner promise
137
- // (where we've named the resolve function "ready")
138
- const devServer = startApiDev({
139
- script: script,
140
- inspect: false,
141
- logLevel: "none",
142
- _: [],
143
- $0: "",
144
- port: options?.port ?? 0,
145
- local: true,
146
- d1Databases,
147
- disableDevRegistry,
148
- testScheduled: testScheduled ?? false,
149
- experimentalLocal: experimentalLocal ?? false,
150
- experimentalLocalRemoteKv: experimentalLocalRemoteKv ?? false,
151
- enablePagesAssetsServiceBinding,
152
- liveReload,
153
- showInteractiveDevSession,
154
- onReady: (address, port) => {
155
- readyPort = port;
156
- readyAddress = address;
157
- ready(devServer);
158
- },
159
- config: options?.config,
160
- env: options?.env,
161
- processEntrypoint,
162
- additionalModules,
163
- bundle: options?.bundle,
164
- compatibilityDate: options?.compatibilityDate,
165
- compatibilityFlags: options?.compatibilityFlags,
166
- ip: options?.ip,
167
- inspectorPort: options?.inspectorPort,
168
- v: undefined,
169
- localProtocol: options?.localProtocol,
170
- assets: options?.assets,
171
- site: options?.site, // Root folder of static assets for Workers Sites
172
- siteInclude: options?.siteInclude, // Array of .gitignore-style patterns that match file or directory names from the sites directory. Only matched items will be uploaded.
173
- siteExclude: options?.siteExclude, // Array of .gitignore-style patterns that match file or directory names from the sites directory. Matched items will not be uploaded.
174
- nodeCompat: options?.nodeCompat, // Enable Node.js compatibility
175
- persist: options?.persist, // Enable persistence for local mode, using default path: .wrangler/state
176
- persistTo: options?.persistTo, // Specify directory to use for local persistence (implies --persist)
177
- experimentalJsonConfig: undefined,
178
- name: undefined,
179
- noBundle: false,
180
- format: undefined,
181
- latest: false,
182
- routes: undefined,
183
- host: undefined,
184
- localUpstream: undefined,
185
- experimentalPublic: undefined,
186
- upstreamProtocol: undefined,
187
- var: undefined,
188
- define: undefined,
189
- jsxFactory: undefined,
190
- jsxFragment: undefined,
191
- tsconfig: undefined,
192
- minify: undefined,
193
- experimentalEnableLocalPersistence: undefined,
194
- legacyEnv: undefined,
195
- public: undefined,
196
- ...options,
197
- });
198
- }).then((devServer) => {
199
- // now that the inner promise has resolved, we can resolve the outer promise
200
- // with an object that lets you fetch and stop the dev server
201
- resolve({
202
- port: readyPort,
203
- address: readyAddress,
204
- stop: devServer.stop,
205
- fetch: async (input?: RequestInfo, init?: RequestInit) => {
206
- return await fetch(
207
- ...parseRequestInput(
208
- readyAddress,
209
- readyPort,
210
- input,
211
- init,
212
- options?.localProtocol
213
- )
214
- );
215
- },
216
- //no-op, does nothing in tests
217
- waitUntilExit: async () => {
218
- return;
219
- },
220
- });
221
- });
222
- });
223
- } else {
224
- //outside of test mode, rebuilds work fine, but only one instance of wrangler will work at a time
225
-
226
- return new Promise<UnstableDevWorker>((resolve) => {
227
- //lmao
228
- return new Promise<Awaited<ReturnType<typeof startDev>>>((ready) => {
229
- const devServer = startDev({
230
- script: script,
231
- inspect: false,
232
- _: [],
233
- $0: "",
234
- logLevel: options?.logLevel ?? "log",
235
- port: options?.port ?? 0,
236
- local: true,
237
- showInteractiveDevSession,
238
- d1Databases,
239
- disableDevRegistry,
240
- testScheduled: testScheduled ?? false,
241
- experimentalLocal: experimentalLocal ?? false,
242
- experimentalLocalRemoteKv: experimentalLocalRemoteKv ?? false,
243
- enablePagesAssetsServiceBinding,
244
- forceLocal,
245
- liveReload,
246
- onReady: (address, port) => {
247
- readyPort = port;
248
- readyAddress = address;
249
- ready(devServer);
250
- },
251
- config: options?.config,
252
- env: options?.env,
253
- processEntrypoint,
254
- additionalModules,
255
- bundle: options?.bundle,
256
- compatibilityDate: options?.compatibilityDate,
257
- compatibilityFlags: options?.compatibilityFlags,
258
- ip: options?.ip,
259
- inspectorPort: options?.inspectorPort,
260
- v: undefined,
261
- localProtocol: options?.localProtocol,
262
- assets: options?.assets,
263
- site: options?.site, // Root folder of static assets for Workers Sites
264
- siteInclude: options?.siteInclude, // Array of .gitignore-style patterns that match file or directory names from the sites directory. Only matched items will be uploaded.
265
- siteExclude: options?.siteExclude, // Array of .gitignore-style patterns that match file or directory names from the sites directory. Matched items will not be uploaded.
266
- nodeCompat: options?.nodeCompat, // Enable Node.js compatibility
267
- persist: options?.persist, // Enable persistence for local mode, using default path: .wrangler/state
268
- persistTo: options?.persistTo, // Specify directory to use for local persistence (implies --persist)
269
- experimentalJsonConfig: undefined,
270
- name: undefined,
271
- noBundle: false,
272
- format: undefined,
273
- latest: false,
274
- routes: undefined,
275
- host: undefined,
276
- localUpstream: undefined,
277
- experimentalPublic: undefined,
278
- upstreamProtocol: undefined,
279
- var: undefined,
280
- define: undefined,
281
- jsxFactory: undefined,
282
- jsxFragment: undefined,
283
- tsconfig: undefined,
284
- minify: undefined,
285
- experimentalEnableLocalPersistence: undefined,
286
- legacyEnv: undefined,
287
- public: undefined,
288
- ...options,
289
- });
290
- }).then((devServer) => {
291
- resolve({
292
- port: readyPort,
293
- address: readyAddress,
294
- stop: devServer.stop,
295
- fetch: async (input?: RequestInfo, init?: RequestInit) => {
296
- return await fetch(
297
- ...parseRequestInput(
298
- readyAddress,
299
- readyPort,
300
- input,
301
- init,
302
- options?.localProtocol
303
- )
304
- );
305
- },
306
- waitUntilExit: devServer.devReactElement.waitUntilExit,
307
- });
308
- });
309
- });
310
- }
311
- }
312
-
313
- export function parseRequestInput(
314
- readyAddress: string,
315
- readyPort: number,
316
- input: RequestInfo = "/",
317
- init?: RequestInit,
318
- protocol: "http" | "https" = "http"
319
- ): [RequestInfo, RequestInit | undefined] {
320
- if (input instanceof Request) {
321
- return [input, undefined];
322
- }
323
- const url = new URL(`${input}`, `${protocol}://${readyAddress}:${readyPort}`);
324
- url.protocol = protocol;
325
- url.hostname = readyAddress;
326
- url.port = readyPort.toString();
327
- return [url, init];
328
- }
package/src/api/index.ts DELETED
@@ -1,11 +0,0 @@
1
- export { unstable_dev } from "./dev";
2
- export type { UnstableDevWorker, UnstableDevOptions } from "./dev";
3
- export { unstable_pages } from "./pages";
4
- export {
5
- uploadMTlsCertificate,
6
- uploadMTlsCertificateFromFs,
7
- listMTlsCertificates,
8
- getMTlsCertificate,
9
- getMTlsCertificateByName,
10
- deleteMTlsCertificate,
11
- } from "./mtls-certificate";
@@ -1,148 +0,0 @@
1
- import { fetchResult } from "../cfetch";
2
- import { readFileSync } from "../parse";
3
-
4
- /**
5
- * the representation of an mTLS certificate in the account certificate store
6
- */
7
- export interface MTlsCertificateResponse {
8
- id: string;
9
- name?: string;
10
- ca: boolean;
11
- certificates: string;
12
- expires_on: string;
13
- issuer: string;
14
- serial_number: string;
15
- signature: string;
16
- uploaded_on: string;
17
- }
18
-
19
- /**
20
- * details for uploading an mTLS certificate from disk
21
- */
22
- export interface MTlsCertificateUploadDetails {
23
- certificateChainFilename: string;
24
- privateKeyFilename: string;
25
- name?: string;
26
- }
27
-
28
- /**
29
- * details for uploading an mTLS certificate via the ssl api
30
- */
31
- export interface MTlsCertificateBody {
32
- certificateChain: string;
33
- privateKey: string;
34
- name?: string;
35
- }
36
-
37
- /**
38
- * supported filters for listing mTLS certificates via the ssl api
39
- */
40
- export interface MTlsCertificateListFilter {
41
- name?: string;
42
- }
43
-
44
- /**
45
- * indicates that looking up a certificate by name failed due to zero matching results
46
- */
47
- export class ErrorMTlsCertificateNameNotFound extends Error {}
48
-
49
- /**
50
- * indicates that looking up a certificate by name failed due to more than one matching results
51
- */
52
- export class ErrorMTlsCertificateManyNamesMatch extends Error {}
53
-
54
- /**
55
- * reads an mTLS certificate and private key pair from disk and uploads it to the account mTLS certificate store
56
- */
57
- export async function uploadMTlsCertificateFromFs(
58
- accountId: string,
59
- details: MTlsCertificateUploadDetails
60
- ): Promise<MTlsCertificateResponse> {
61
- return await uploadMTlsCertificate(accountId, {
62
- certificateChain: readFileSync(details.certificateChainFilename),
63
- privateKey: readFileSync(details.privateKeyFilename),
64
- name: details.name,
65
- });
66
- }
67
-
68
- /**
69
- * uploads an mTLS certificate and private key pair to the account mTLS certificate store
70
- */
71
- export async function uploadMTlsCertificate(
72
- accountId: string,
73
- body: MTlsCertificateBody
74
- ): Promise<MTlsCertificateResponse> {
75
- return await fetchResult(`/accounts/${accountId}/mtls_certificates`, {
76
- method: "POST",
77
- body: JSON.stringify({
78
- name: body.name,
79
- certificates: body.certificateChain,
80
- private_key: body.privateKey,
81
- ca: false,
82
- }),
83
- });
84
- }
85
-
86
- /**
87
- * fetches an mTLS certificate from the account mTLS certificate store by ID
88
- */
89
- export async function getMTlsCertificate(
90
- accountId: string,
91
- id: string
92
- ): Promise<MTlsCertificateResponse> {
93
- return await fetchResult(
94
- `/accounts/${accountId}/mtls_certificates/${id}`,
95
- {}
96
- );
97
- }
98
-
99
- /**
100
- * lists mTLS certificates for an account. filtering by name is supported
101
- */
102
- export async function listMTlsCertificates(
103
- accountId: string,
104
- filter: MTlsCertificateListFilter
105
- ): Promise<MTlsCertificateResponse[]> {
106
- const params = new URLSearchParams();
107
- params.append("ca", "false");
108
- if (filter.name) {
109
- params.append("name", filter.name);
110
- }
111
- return await fetchResult(
112
- `/accounts/${accountId}/mtls_certificates`,
113
- {},
114
- params
115
- );
116
- }
117
-
118
- /**
119
- * fetches an mTLS certificate from the account mTLS certificate store by name. will throw an error if no certificates are found, or multiple are found with that name
120
- */
121
- export async function getMTlsCertificateByName(
122
- accountId: string,
123
- name: string
124
- ): Promise<MTlsCertificateResponse> {
125
- const certificates = await listMTlsCertificates(accountId, { name });
126
- if (certificates.length === 0) {
127
- throw new ErrorMTlsCertificateNameNotFound(
128
- `certificate not found with name "${name}"`
129
- );
130
- }
131
- if (certificates.length > 1) {
132
- throw new ErrorMTlsCertificateManyNamesMatch(
133
- `multiple certificates found with name "${name}"`
134
- );
135
- }
136
- const certificate = certificates[0];
137
- return certificate;
138
- }
139
-
140
- export async function deleteMTlsCertificate(
141
- accountId: string,
142
- certificateId: string
143
- ) {
144
- return await fetchResult(
145
- `/accounts/${accountId}/mtls_certificates/${certificateId}`,
146
- { method: "DELETE" }
147
- );
148
- }
@@ -1,80 +0,0 @@
1
- import { readFileSync } from "node:fs";
2
- import path from "node:path";
3
- import { Response } from "undici";
4
- import { createWorkerUploadForm } from "../../create-worker-upload-form";
5
- import type { BundleResult } from "../../bundle";
6
- import type { CfWorkerInit } from "../../worker";
7
- import type { Blob } from "node:buffer";
8
- import type { FormData } from "undici";
9
-
10
- /**
11
- * Takes a Worker bundle - `BundleResult` - and generates the _worker.bundle
12
- * contents
13
- */
14
- export async function createUploadWorkerBundleContents(
15
- workerBundle: BundleResult
16
- ): Promise<Blob> {
17
- const workerBundleFormData = createWorkerBundleFormData(workerBundle);
18
- const metadata = JSON.parse(workerBundleFormData.get("metadata") as string);
19
-
20
- /**
21
- * Pages doesn't need the metadata bindings returned by
22
- * `createWorkerBundleFormData`. Let's strip them out and return only
23
- * the contents we need
24
- */
25
- workerBundleFormData.set(
26
- "metadata",
27
- JSON.stringify({ main_module: metadata.main_module })
28
- );
29
-
30
- return await new Response(workerBundleFormData).blob();
31
- }
32
-
33
- /**
34
- * Creates a `FormData` upload from a `BundleResult`
35
- */
36
- function createWorkerBundleFormData(workerBundle: BundleResult): FormData {
37
- const mainModule = {
38
- name: path.basename(workerBundle.resolvedEntryPointPath),
39
- content: readFileSync(workerBundle.resolvedEntryPointPath, {
40
- encoding: "utf-8",
41
- }),
42
- type: workerBundle.bundleType || "esm",
43
- };
44
-
45
- const worker: CfWorkerInit = {
46
- name: mainModule.name,
47
- main: mainModule,
48
- modules: workerBundle.modules,
49
- bindings: {
50
- vars: undefined,
51
- kv_namespaces: undefined,
52
- send_email: undefined,
53
- wasm_modules: undefined,
54
- text_blobs: undefined,
55
- browser: undefined,
56
- data_blobs: undefined,
57
- durable_objects: undefined,
58
- queues: undefined,
59
- r2_buckets: undefined,
60
- d1_databases: undefined,
61
- constellation: undefined,
62
- services: undefined,
63
- analytics_engine_datasets: undefined,
64
- dispatch_namespaces: undefined,
65
- mtls_certificates: undefined,
66
- logfwdr: undefined,
67
- unsafe: undefined,
68
- },
69
- migrations: undefined,
70
- compatibility_date: undefined,
71
- compatibility_flags: undefined,
72
- usage_model: undefined,
73
- keepVars: undefined,
74
- logpush: undefined,
75
- placement: undefined,
76
- tail_consumers: undefined,
77
- };
78
-
79
- return createWorkerUploadForm(worker);
80
- }
@@ -1,5 +0,0 @@
1
- import { publish } from "./publish";
2
-
3
- export const unstable_pages = {
4
- publish,
5
- };