wrangler 0.0.0-e87ad068 → 0.0.0-e8df68ee

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 (313) hide show
  1. package/README.md +5 -7
  2. package/bin/wrangler.js +9 -75
  3. package/package.json +13 -17
  4. package/templates/__tests__/tsconfig.json +1 -1
  5. package/templates/checked-fetch.js +1 -1
  6. package/templates/facade.d.ts +4 -1
  7. package/templates/middleware/common.ts +9 -4
  8. package/templates/middleware/loader-modules.ts +52 -9
  9. package/templates/middleware/loader-sw.ts +2 -7
  10. package/templates/middleware/middleware-d1-beta.d.ts +3 -0
  11. package/templates/{d1-beta-facade.js → middleware/middleware-d1-beta.ts} +85 -85
  12. package/templates/middleware/middleware-multiworker-dev.d.ts +4 -0
  13. package/templates/middleware/middleware-multiworker-dev.ts +59 -0
  14. package/templates/middleware/middleware-serve-static-assets.d.ts +6 -0
  15. package/templates/middleware/middleware-serve-static-assets.ts +56 -0
  16. package/templates/new-worker-scheduled.ts +1 -1
  17. package/templates/new-worker.ts +1 -1
  18. package/templates/pages-shim.ts +0 -3
  19. package/templates/pages-template-plugin.ts +12 -2
  20. package/templates/pages-template-worker.ts +11 -2
  21. package/templates/tsconfig.json +1 -1
  22. package/wrangler-dist/cli.d.ts +83 -74
  23. package/wrangler-dist/cli.js +15669 -20172
  24. package/import_meta_url.js +0 -3
  25. package/miniflare-config-stubs/.env.empty +0 -0
  26. package/miniflare-config-stubs/package.empty.json +0 -1
  27. package/miniflare-config-stubs/wrangler.empty.toml +0 -0
  28. package/miniflare-dist/index.mjs +0 -6442
  29. package/src/__tests__/access.test.ts +0 -25
  30. package/src/__tests__/api-dev.test.ts +0 -238
  31. package/src/__tests__/api-devregistry.test.ts +0 -121
  32. package/src/__tests__/api.test.ts +0 -102
  33. package/src/__tests__/config-cache-without-cache-dir.test.ts +0 -38
  34. package/src/__tests__/config-cache.test.ts +0 -42
  35. package/src/__tests__/configuration.test.ts +0 -4727
  36. package/src/__tests__/constellation.test.ts +0 -371
  37. package/src/__tests__/d1/d1.test.ts +0 -82
  38. package/src/__tests__/d1/execute.test.ts +0 -66
  39. package/src/__tests__/d1/migrate.test.ts +0 -257
  40. package/src/__tests__/d1/splitter.test.ts +0 -255
  41. package/src/__tests__/delete.test.ts +0 -272
  42. package/src/__tests__/deployments.test.ts +0 -369
  43. package/src/__tests__/dev.test.tsx +0 -1617
  44. package/src/__tests__/generate.test.ts +0 -237
  45. package/src/__tests__/get-host-from-url.test.ts +0 -16
  46. package/src/__tests__/guess-worker-format.test.ts +0 -120
  47. package/src/__tests__/helpers/clipboardy-mock.js +0 -4
  48. package/src/__tests__/helpers/cmd-shim.d.ts +0 -11
  49. package/src/__tests__/helpers/end-event-loop.ts +0 -6
  50. package/src/__tests__/helpers/mock-account-id.ts +0 -48
  51. package/src/__tests__/helpers/mock-auth-domain.ts +0 -20
  52. package/src/__tests__/helpers/mock-bin.ts +0 -36
  53. package/src/__tests__/helpers/mock-console.ts +0 -112
  54. package/src/__tests__/helpers/mock-dialogs.ts +0 -139
  55. package/src/__tests__/helpers/mock-get-pages-upload-token.ts +0 -25
  56. package/src/__tests__/helpers/mock-get-zone-from-host.ts +0 -11
  57. package/src/__tests__/helpers/mock-http-server.ts +0 -46
  58. package/src/__tests__/helpers/mock-istty.ts +0 -74
  59. package/src/__tests__/helpers/mock-known-routes.ts +0 -12
  60. package/src/__tests__/helpers/mock-kv.ts +0 -46
  61. package/src/__tests__/helpers/mock-oauth-flow.ts +0 -263
  62. package/src/__tests__/helpers/mock-process.ts +0 -34
  63. package/src/__tests__/helpers/mock-set-timeout.ts +0 -16
  64. package/src/__tests__/helpers/mock-stdin.ts +0 -108
  65. package/src/__tests__/helpers/mock-web-socket.ts +0 -29
  66. package/src/__tests__/helpers/msw/blob-worker.cjs +0 -19
  67. package/src/__tests__/helpers/msw/handlers/access.ts +0 -13
  68. package/src/__tests__/helpers/msw/handlers/deployments.ts +0 -160
  69. package/src/__tests__/helpers/msw/handlers/namespaces.ts +0 -81
  70. package/src/__tests__/helpers/msw/handlers/oauth.ts +0 -31
  71. package/src/__tests__/helpers/msw/handlers/r2.ts +0 -60
  72. package/src/__tests__/helpers/msw/handlers/script.ts +0 -56
  73. package/src/__tests__/helpers/msw/handlers/user.ts +0 -52
  74. package/src/__tests__/helpers/msw/handlers/zones.ts +0 -20
  75. package/src/__tests__/helpers/msw/index.ts +0 -52
  76. package/src/__tests__/helpers/msw/read-file-sync.js +0 -61
  77. package/src/__tests__/helpers/run-in-tmp.ts +0 -38
  78. package/src/__tests__/helpers/run-wrangler.ts +0 -16
  79. package/src/__tests__/helpers/string-dynamic-values-matcher.ts +0 -28
  80. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +0 -1
  81. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +0 -5
  82. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +0 -1
  83. package/src/__tests__/helpers/worker-scripts/parent-worker.js +0 -11
  84. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +0 -5
  85. package/src/__tests__/helpers/write-worker-source.ts +0 -31
  86. package/src/__tests__/helpers/write-wrangler-toml.ts +0 -17
  87. package/src/__tests__/https-options.test.ts +0 -163
  88. package/src/__tests__/index.test.ts +0 -282
  89. package/src/__tests__/init.test.ts +0 -3302
  90. package/src/__tests__/jest.setup.ts +0 -179
  91. package/src/__tests__/kv.test.ts +0 -1799
  92. package/src/__tests__/logger.test.ts +0 -207
  93. package/src/__tests__/logout.test.ts +0 -47
  94. package/src/__tests__/metrics.test.ts +0 -493
  95. package/src/__tests__/middleware.scheduled.test.ts +0 -145
  96. package/src/__tests__/middleware.test.ts +0 -816
  97. package/src/__tests__/mtls-certificates.test.ts +0 -589
  98. package/src/__tests__/package-manager.test.ts +0 -353
  99. package/src/__tests__/pages/deployment-list.test.ts +0 -80
  100. package/src/__tests__/pages/functions-build.test.ts +0 -529
  101. package/src/__tests__/pages/pages.test.ts +0 -81
  102. package/src/__tests__/pages/project-create.test.ts +0 -63
  103. package/src/__tests__/pages/project-list.test.ts +0 -110
  104. package/src/__tests__/pages/project-upload.test.ts +0 -500
  105. package/src/__tests__/pages/publish.test.ts +0 -2864
  106. package/src/__tests__/pages-deployment-tail.test.ts +0 -957
  107. package/src/__tests__/parse.test.ts +0 -436
  108. package/src/__tests__/paths.test.ts +0 -39
  109. package/src/__tests__/publish.test.ts +0 -8882
  110. package/src/__tests__/pubsub.test.ts +0 -496
  111. package/src/__tests__/queues.test.ts +0 -532
  112. package/src/__tests__/r2.test.ts +0 -374
  113. package/src/__tests__/route.test.ts +0 -45
  114. package/src/__tests__/secret.test.ts +0 -693
  115. package/src/__tests__/tail.test.ts +0 -1000
  116. package/src/__tests__/test-old-node-version.js +0 -31
  117. package/src/__tests__/traverse-module-graph.test.ts +0 -220
  118. package/src/__tests__/tsconfig-sanity.ts +0 -12
  119. package/src/__tests__/tsconfig.json +0 -8
  120. package/src/__tests__/tsconfig.tsbuildinfo +0 -1
  121. package/src/__tests__/type-generation.test.ts +0 -234
  122. package/src/__tests__/unstableDev.test.ts +0 -61
  123. package/src/__tests__/user.test.ts +0 -118
  124. package/src/__tests__/utils-collectKeyValues.test.ts +0 -47
  125. package/src/__tests__/validate-dev-props.test.ts +0 -56
  126. package/src/__tests__/version.test.ts +0 -35
  127. package/src/__tests__/whoami.test.tsx +0 -172
  128. package/src/__tests__/worker-namespace.test.ts +0 -340
  129. package/src/abort.d.ts +0 -3
  130. package/src/api/dev.ts +0 -328
  131. package/src/api/index.ts +0 -11
  132. package/src/api/mtls-certificate.ts +0 -148
  133. package/src/api/pages/create-worker-bundle-contents.ts +0 -80
  134. package/src/api/pages/index.ts +0 -5
  135. package/src/api/pages/publish.tsx +0 -371
  136. package/src/bundle-reporter.ts +0 -68
  137. package/src/bundle.ts +0 -952
  138. package/src/cfetch/index.ts +0 -158
  139. package/src/cfetch/internal.ts +0 -263
  140. package/src/cli.ts +0 -28
  141. package/src/config/README.md +0 -107
  142. package/src/config/config.ts +0 -282
  143. package/src/config/diagnostics.ts +0 -80
  144. package/src/config/environment.ts +0 -659
  145. package/src/config/index.ts +0 -424
  146. package/src/config/validation-helpers.ts +0 -597
  147. package/src/config/validation.ts +0 -2524
  148. package/src/config-cache.ts +0 -85
  149. package/src/constellation/createProject.tsx +0 -51
  150. package/src/constellation/deleteProject.ts +0 -51
  151. package/src/constellation/deleteProjectModel.ts +0 -76
  152. package/src/constellation/index.ts +0 -75
  153. package/src/constellation/listCatalog.tsx +0 -35
  154. package/src/constellation/listModel.tsx +0 -49
  155. package/src/constellation/listProject.tsx +0 -28
  156. package/src/constellation/listRuntime.tsx +0 -28
  157. package/src/constellation/options.ts +0 -17
  158. package/src/constellation/types.ts +0 -17
  159. package/src/constellation/uploadModel.tsx +0 -84
  160. package/src/constellation/utils.ts +0 -90
  161. package/src/create-worker-preview.ts +0 -293
  162. package/src/create-worker-upload-form.ts +0 -384
  163. package/src/d1/backups.tsx +0 -219
  164. package/src/d1/constants.ts +0 -5
  165. package/src/d1/create.tsx +0 -102
  166. package/src/d1/delete.ts +0 -53
  167. package/src/d1/execute.tsx +0 -371
  168. package/src/d1/formatTimeAgo.ts +0 -14
  169. package/src/d1/index.ts +0 -100
  170. package/src/d1/list.tsx +0 -62
  171. package/src/d1/migrations/apply.tsx +0 -235
  172. package/src/d1/migrations/create.tsx +0 -79
  173. package/src/d1/migrations/helpers.ts +0 -171
  174. package/src/d1/migrations/index.ts +0 -3
  175. package/src/d1/migrations/list.tsx +0 -95
  176. package/src/d1/migrations/options.ts +0 -23
  177. package/src/d1/options.ts +0 -22
  178. package/src/d1/splitter.ts +0 -161
  179. package/src/d1/types.ts +0 -32
  180. package/src/d1/utils.ts +0 -49
  181. package/src/delete.ts +0 -100
  182. package/src/deployments.ts +0 -368
  183. package/src/deprecated/index.ts +0 -144
  184. package/src/dev/dev-vars.ts +0 -39
  185. package/src/dev/dev.tsx +0 -607
  186. package/src/dev/get-local-persistence-path.ts +0 -31
  187. package/src/dev/local.tsx +0 -952
  188. package/src/dev/remote.tsx +0 -636
  189. package/src/dev/start-server.ts +0 -558
  190. package/src/dev/use-esbuild.ts +0 -230
  191. package/src/dev/validate-dev-props.ts +0 -40
  192. package/src/dev-registry.ts +0 -213
  193. package/src/dev.tsx +0 -946
  194. package/src/dialogs.ts +0 -136
  195. package/src/dispatch-namespace.ts +0 -211
  196. package/src/docs/helpers.ts +0 -50
  197. package/src/docs/index.ts +0 -54
  198. package/src/durable.ts +0 -102
  199. package/src/entry.ts +0 -344
  200. package/src/environment-variables/factory.ts +0 -89
  201. package/src/environment-variables/misc-variables.ts +0 -30
  202. package/src/errors.ts +0 -11
  203. package/src/generate/index.ts +0 -303
  204. package/src/git-client.ts +0 -135
  205. package/src/global-wrangler-config-path.ts +0 -26
  206. package/src/https-options.ts +0 -127
  207. package/src/index.ts +0 -769
  208. package/src/init.ts +0 -1074
  209. package/src/inspect.ts +0 -883
  210. package/src/intl-polyfill.d.ts +0 -139
  211. package/src/is-ci.ts +0 -14
  212. package/src/is-interactive.ts +0 -16
  213. package/src/jest.d.ts +0 -4
  214. package/src/kv/helpers.ts +0 -433
  215. package/src/kv/index.ts +0 -594
  216. package/src/logger.ts +0 -123
  217. package/src/metrics/index.ts +0 -5
  218. package/src/metrics/metrics-config.ts +0 -239
  219. package/src/metrics/metrics-dispatcher.ts +0 -96
  220. package/src/metrics/metrics-usage-headers.ts +0 -24
  221. package/src/metrics/send-event.ts +0 -99
  222. package/src/miniflare-cli/README.md +0 -30
  223. package/src/miniflare-cli/assets.ts +0 -251
  224. package/src/miniflare-cli/index.ts +0 -210
  225. package/src/miniflare-cli/request-context.ts +0 -40
  226. package/src/miniflare-cli/tsconfig.json +0 -9
  227. package/src/miniflare-cli/tsconfig.tsbuildinfo +0 -1
  228. package/src/miniflare-cli/types.ts +0 -11
  229. package/src/module-collection.ts +0 -333
  230. package/src/mtls-certificate/cli.ts +0 -155
  231. package/src/open-in-browser.ts +0 -17
  232. package/src/package-manager.ts +0 -219
  233. package/src/pages/build.ts +0 -423
  234. package/src/pages/buildFunctions.ts +0 -140
  235. package/src/pages/constants.ts +0 -18
  236. package/src/pages/deployment-tails.ts +0 -281
  237. package/src/pages/deployments.tsx +0 -84
  238. package/src/pages/dev.ts +0 -759
  239. package/src/pages/errors.ts +0 -67
  240. package/src/pages/functions/buildPlugin.ts +0 -114
  241. package/src/pages/functions/buildWorker.ts +0 -381
  242. package/src/pages/functions/filepath-routing.test.ts +0 -234
  243. package/src/pages/functions/filepath-routing.ts +0 -189
  244. package/src/pages/functions/identifiers.ts +0 -78
  245. package/src/pages/functions/routes-consolidation.test.ts +0 -250
  246. package/src/pages/functions/routes-consolidation.ts +0 -73
  247. package/src/pages/functions/routes-transformation.test.ts +0 -282
  248. package/src/pages/functions/routes-transformation.ts +0 -115
  249. package/src/pages/functions/routes-validation.test.ts +0 -403
  250. package/src/pages/functions/routes-validation.ts +0 -202
  251. package/src/pages/functions/routes.ts +0 -151
  252. package/src/pages/functions/tsconfig.json +0 -8
  253. package/src/pages/functions/tsconfig.tsbuildinfo +0 -1
  254. package/src/pages/functions.ts +0 -86
  255. package/src/pages/hash.ts +0 -13
  256. package/src/pages/index.ts +0 -102
  257. package/src/pages/projects.tsx +0 -159
  258. package/src/pages/prompt-select-project.tsx +0 -31
  259. package/src/pages/publish.tsx +0 -267
  260. package/src/pages/types.ts +0 -46
  261. package/src/pages/upload.tsx +0 -469
  262. package/src/pages/utils.ts +0 -23
  263. package/src/parse.ts +0 -308
  264. package/src/paths.ts +0 -71
  265. package/src/proxy.ts +0 -694
  266. package/src/publish/index.ts +0 -274
  267. package/src/publish/publish.ts +0 -1068
  268. package/src/pubsub/index.ts +0 -286
  269. package/src/pubsub/pubsub-commands.ts +0 -623
  270. package/src/queues/cli/commands/consumer/add.ts +0 -71
  271. package/src/queues/cli/commands/consumer/index.ts +0 -19
  272. package/src/queues/cli/commands/consumer/remove.ts +0 -31
  273. package/src/queues/cli/commands/create.ts +0 -25
  274. package/src/queues/cli/commands/delete.ts +0 -26
  275. package/src/queues/cli/commands/index.ts +0 -35
  276. package/src/queues/cli/commands/list.ts +0 -25
  277. package/src/queues/client.ts +0 -136
  278. package/src/queues/utils.ts +0 -18
  279. package/src/r2/constants.ts +0 -4
  280. package/src/r2/helpers.ts +0 -132
  281. package/src/r2/index.ts +0 -289
  282. package/src/routes.ts +0 -140
  283. package/src/secret/index.ts +0 -380
  284. package/src/selfsigned.d.ts +0 -29
  285. package/src/sites.ts +0 -484
  286. package/src/tail/createTail.ts +0 -415
  287. package/src/tail/filters.ts +0 -277
  288. package/src/tail/index.ts +0 -211
  289. package/src/tail/printing.ts +0 -134
  290. package/src/traverse-module-graph.ts +0 -54
  291. package/src/tsconfig-sanity.ts +0 -16
  292. package/src/type-generation.ts +0 -187
  293. package/src/update-check.ts +0 -19
  294. package/src/user/access.ts +0 -68
  295. package/src/user/auth-variables.ts +0 -113
  296. package/src/user/choose-account.tsx +0 -39
  297. package/src/user/generate-auth-url.ts +0 -33
  298. package/src/user/generate-random-state.ts +0 -16
  299. package/src/user/index.ts +0 -2
  300. package/src/user/user.ts +0 -1234
  301. package/src/utils/collectKeyValues.ts +0 -14
  302. package/src/utils/render.ts +0 -93
  303. package/src/whoami.ts +0 -135
  304. package/src/worker.ts +0 -300
  305. package/src/yargs-types.ts +0 -37
  306. package/src/zones.ts +0 -191
  307. package/templates/__tests__/tsconfig.tsbuildinfo +0 -1
  308. package/templates/first-party-worker-module-facade.ts +0 -19
  309. package/templates/format-dev-errors.ts +0 -34
  310. package/templates/serve-static-assets.ts +0 -66
  311. package/templates/service-bindings-module-facade.js +0 -55
  312. package/templates/service-bindings-sw-facade.js +0 -42
  313. 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
- };