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
@@ -1,13 +1,11 @@
1
- // src/shim.ts
2
- import worker, * as OTHER_EXPORTS from "__ENTRY_POINT__";
3
- export * from "__ENTRY_POINT__";
1
+ /// <reference path="middleware-d1-beta.d.ts"/>
2
+
3
+ import { D1_IMPORTS } from "config:middleware/d1-beta";
4
4
 
5
5
  // src/index.ts
6
- var D1Database = class {
7
- constructor(binding) {
8
- this.binding = binding;
9
- }
10
- prepare(query) {
6
+ class D1Database {
7
+ constructor(readonly binding: Fetcher) {}
8
+ prepare(query: string) {
11
9
  return new D1PreparedStatement(this, query);
12
10
  }
13
11
  async dump() {
@@ -19,19 +17,19 @@ var D1Database = class {
19
17
  });
20
18
  if (response.status !== 200) {
21
19
  try {
22
- const err = await response.json();
23
- throw new Error("D1_DUMP_ERROR", {
20
+ const err = (await response.json()) as { error: string };
21
+ throw new Error(`D1_DUMP_ERROR: ${err.error}`, {
24
22
  cause: new Error(err.error),
25
23
  });
26
24
  } catch (e) {
27
- throw new Error("D1_DUMP_ERROR", {
25
+ throw new Error(`D1_DUMP_ERROR: Status + ${response.status}`, {
28
26
  cause: new Error("Status " + response.status),
29
27
  });
30
28
  }
31
29
  }
32
30
  return await response.arrayBuffer();
33
31
  }
34
- async batch(statements) {
32
+ async batch(statements: D1PreparedStatement[]) {
35
33
  const exec = await this._send(
36
34
  "/query",
37
35
  statements.map((s) => s.statement),
@@ -39,7 +37,7 @@ var D1Database = class {
39
37
  );
40
38
  return exec;
41
39
  }
42
- async exec(query) {
40
+ async exec(query: string) {
43
41
  const lines = query.trim().split("\n");
44
42
  const _exec = await this._send("/query", lines, [], false);
45
43
  const exec = Array.isArray(_exec) ? _exec : [_exec];
@@ -49,26 +47,36 @@ var D1Database = class {
49
47
  })
50
48
  .indexOf(1);
51
49
  if (error !== -1) {
52
- throw new Error("D1_EXEC_ERROR", {
53
- cause: new Error(
54
- "Error in line " +
55
- (error + 1) +
56
- ": " +
57
- lines[error] +
58
- ": " +
59
- exec[error].error
60
- ),
61
- });
50
+ throw new Error(
51
+ `D1_EXEC_ERROR: Error in line ${error + 1}: ${lines[error]}: ${
52
+ exec[error].error
53
+ }`,
54
+ {
55
+ cause: new Error(
56
+ "Error in line " +
57
+ (error + 1) +
58
+ ": " +
59
+ lines[error] +
60
+ ": " +
61
+ exec[error].error
62
+ ),
63
+ }
64
+ );
62
65
  } else {
63
66
  return {
64
67
  count: exec.length,
65
68
  duration: exec.reduce((p, c) => {
66
- return p + c.meta.duration;
69
+ return p + (c.meta.duration as number);
67
70
  }, 0),
68
71
  };
69
72
  }
70
73
  }
71
- async _send(endpoint, query, params, dothrow = true) {
74
+ async _send(
75
+ endpoint: string,
76
+ query: string | string[],
77
+ params: unknown[],
78
+ dothrow = true
79
+ ) {
72
80
  const body = JSON.stringify(
73
81
  typeof query == "object"
74
82
  ? query.map((s, index) => {
@@ -87,75 +95,79 @@ var D1Database = class {
87
95
  body,
88
96
  });
89
97
  try {
90
- const answer = await response.json();
98
+ const answer = (await response.json()) as { error?: string };
91
99
  if (answer.error && dothrow) {
92
100
  const err = answer;
93
- throw new Error("D1_ERROR", { cause: new Error(err.error) });
101
+ throw new Error(`D1_ERROR: ${err.error}`, {
102
+ cause: new Error(err.error),
103
+ });
94
104
  } else {
95
105
  return Array.isArray(answer)
96
106
  ? answer.map((r) => mapD1Result(r))
97
107
  : mapD1Result(answer);
98
108
  }
99
109
  } catch (e) {
100
- throw new Error("D1_ERROR", {
101
- cause: new Error(e.cause || "Something went wrong"),
110
+ const error = e as Error;
111
+ throw new Error(`D1_ERROR: ${error.cause || "Something went wrong"}`, {
112
+ cause: new Error(`${error.cause}` || "Something went wrong"),
102
113
  });
103
114
  }
104
115
  }
105
- };
106
- var D1PreparedStatement = class {
107
- constructor(database, statement, values) {
108
- this.database = database;
109
- this.statement = statement;
110
- this.params = values || [];
111
- }
112
- bind(...values) {
116
+ }
117
+
118
+ class D1PreparedStatement {
119
+ constructor(
120
+ readonly database: D1Database,
121
+ readonly statement: string,
122
+ readonly params: unknown[] = []
123
+ ) {}
124
+ bind(...values: unknown[]) {
113
125
  for (var r in values) {
114
- switch (typeof values[r]) {
126
+ const value = values[r];
127
+ switch (typeof value) {
115
128
  case "number":
116
129
  case "string":
117
130
  break;
118
131
  case "object":
119
- if (values[r] == null) break;
132
+ if (value == null) break;
120
133
  if (
121
- Array.isArray(values[r]) &&
122
- values[r]
134
+ Array.isArray(value) &&
135
+ value
123
136
  .map((b) => {
124
137
  return typeof b == "number" && b >= 0 && b < 256 ? 1 : 0;
125
138
  })
126
139
  .indexOf(0) == -1
127
140
  )
128
141
  break;
129
- if (values[r] instanceof ArrayBuffer) {
130
- values[r] = Array.from(new Uint8Array(values[r]));
142
+ if (value instanceof ArrayBuffer) {
143
+ values[r] = Array.from(new Uint8Array(value));
131
144
  break;
132
145
  }
133
- if (ArrayBuffer.isView(values[r])) {
134
- values[r] = Array.from(values[r]);
146
+ if (ArrayBuffer.isView(value)) {
147
+ values[r] = Array.from(new Uint8Array(value.buffer));
135
148
  break;
136
149
  }
137
150
  default:
138
- throw new Error("D1_TYPE_ERROR", {
139
- cause: new Error(
140
- "Type '" +
141
- typeof values[r] +
142
- "' not supported for value '" +
143
- values[r] +
144
- "'"
145
- ),
146
- });
151
+ throw new Error(
152
+ `D1_TYPE_ERROR: Type '${typeof value}' not supported for value '${value}'`,
153
+ {
154
+ cause: new Error(
155
+ `Type '${typeof value}' not supported for value '${value}'`
156
+ ),
157
+ }
158
+ );
147
159
  }
148
160
  }
149
161
  return new D1PreparedStatement(this.database, this.statement, values);
150
162
  }
151
- async first(colName) {
163
+ async first(colName: string) {
152
164
  const info = firstIfArray(
153
165
  await this.database._send("/query", this.statement, this.params)
154
166
  );
155
167
  const results = info.results;
156
168
  if (colName !== void 0) {
157
169
  if (results.length > 0 && results[0][colName] === void 0) {
158
- throw new Error("D1_COLUMN_NOTFOUND", {
170
+ throw new Error(`D1_COLUMN_NOTFOUND: Column not found (${colName})`, {
159
171
  cause: new Error("Column not found"),
160
172
  });
161
173
  }
@@ -187,12 +199,12 @@ var D1PreparedStatement = class {
187
199
  }
188
200
  return raw;
189
201
  }
190
- };
191
- function firstIfArray(results) {
202
+ }
203
+ function firstIfArray(results: unknown) {
192
204
  return Array.isArray(results) ? results[0] : results;
193
205
  }
194
- function mapD1Result(result) {
195
- let map = {
206
+ function mapD1Result(result: Partial<D1Result>): D1Result {
207
+ let map: D1Result = {
196
208
  results: result.results || [],
197
209
  success: result.success === void 0 ? true : result.success,
198
210
  meta: result.meta || {},
@@ -201,12 +213,17 @@ function mapD1Result(result) {
201
213
  return map;
202
214
  }
203
215
 
216
+ type D1Result = {
217
+ results: unknown[];
218
+ success: boolean;
219
+ meta: Record<string, unknown>;
220
+ error?: string;
221
+ };
222
+
204
223
  // src/shim.ts
205
- var D1_IMPORTS = __D1_IMPORTS__;
206
- var LOCAL_MODE = __LOCAL_MODE__;
207
224
  var D1_BETA_PREFIX = `__D1_BETA__`;
208
225
  var envMap = /* @__PURE__ */ new Map();
209
- function getMaskedEnv(env) {
226
+ function getMaskedEnv(env: Record<string, Fetcher | D1Database>) {
210
227
  if (envMap.has(env)) return envMap.get(env);
211
228
  const newEnv = new Map(Object.entries(env));
212
229
  D1_IMPORTS.filter((bindingName) =>
@@ -214,31 +231,14 @@ function getMaskedEnv(env) {
214
231
  ).forEach((bindingName) => {
215
232
  newEnv.delete(bindingName);
216
233
  const newName = bindingName.slice(D1_BETA_PREFIX.length);
217
- const newBinding = !LOCAL_MODE
218
- ? new D1Database(env[bindingName])
219
- : env[bindingName];
234
+ const newBinding = new D1Database(env[bindingName] as Fetcher);
220
235
  newEnv.set(newName, newBinding);
221
236
  });
222
237
  const newEnvObj = Object.fromEntries(newEnv.entries());
223
238
  envMap.set(env, newEnvObj);
224
239
  return newEnvObj;
225
240
  }
226
- var shim_default = {
227
- ...worker,
228
- async fetch(request, env, ctx) {
229
- return worker.fetch(request, getMaskedEnv(env), ctx);
230
- },
231
- async queue(batch, env, ctx) {
232
- return worker.queue(batch, getMaskedEnv(env), ctx);
233
- },
234
- async scheduled(controller, env, ctx) {
235
- return worker.scheduled(controller, getMaskedEnv(env), ctx);
236
- },
237
- async trace(traces, env, ctx) {
238
- return worker.trace(traces, getMaskedEnv(env), ctx);
239
- },
240
- async email(message, env, ctx) {
241
- return worker.email(message, getMaskedEnv(env), ctx);
242
- },
243
- };
244
- export { shim_default as default };
241
+
242
+ export function wrap(env: Record<string, D1Database | Fetcher>) {
243
+ return getMaskedEnv(env);
244
+ }
@@ -0,0 +1,4 @@
1
+ declare module "config:middleware/multiworker-dev" {
2
+ import type { WorkerRegistry } from "../../src/dev-registry";
3
+ export const workers: WorkerRegistry;
4
+ }
@@ -0,0 +1,59 @@
1
+ // @ts-nocheck
2
+ /// <reference path="middleware-multiworker-dev.d.ts"/>
3
+
4
+ import { workers } from "config:middleware/multiworker-dev";
5
+ import type { WorkerRegistry } from "../../src/dev-registry";
6
+
7
+ export function wrap(env: Record<string, unknown>) {
8
+ const facadeEnv = { ...env };
9
+ // For every Worker definition that's available,
10
+ // create a fetcher for it on the facade env.
11
+ // for const [name, binding] of env
12
+ // if Workers[name]
13
+ // const details = Workers[name];
14
+
15
+ for (const [name, details] of Object.entries(workers as WorkerRegistry)) {
16
+ if (details) {
17
+ facadeEnv[name] = {
18
+ async fetch(...reqArgs: Parameters<Fetcher["fetch"]>) {
19
+ const reqFromArgs = new Request(...reqArgs);
20
+ if (details.headers) {
21
+ for (const [key, value] of Object.entries(details.headers)) {
22
+ // In remote mode, you need to add a couple of headers
23
+ // to make sure it's talking to the 'dev' preview session
24
+ // (much like wrangler dev already does via proxy.ts)
25
+ reqFromArgs.headers.set(key, value);
26
+ }
27
+ return (env[name] as Fetcher).fetch(reqFromArgs);
28
+ }
29
+
30
+ const url = new URL(reqFromArgs.url);
31
+ if (details.protocol !== undefined) {
32
+ url.protocol = details.protocol;
33
+ }
34
+ if (details.host !== undefined) {
35
+ url.host = details.host;
36
+ }
37
+ if (details.port !== undefined) {
38
+ url.port = details.port.toString();
39
+ }
40
+
41
+ const request = new Request(url.toString(), reqFromArgs);
42
+ return fetch(request);
43
+ },
44
+ };
45
+ } else {
46
+ // This means there's no dev binding available.
47
+ // Let's use whatever's available, or put a shim with a message.
48
+ facadeEnv[name] = facadeEnv[name] || {
49
+ async fetch() {
50
+ return new Response(
51
+ `You should start up wrangler dev --local on the ${name} worker`,
52
+ { status: 404 }
53
+ );
54
+ },
55
+ };
56
+ }
57
+ }
58
+ return facadeEnv;
59
+ }
@@ -0,0 +1,6 @@
1
+ declare module "config:middleware/serve-static-assets" {
2
+ import type { CacheControl } from "@cloudflare/kv-asset-handler";
3
+
4
+ export const spaMode: boolean;
5
+ export const cacheControl: Partial<CacheControl>;
6
+ }
@@ -0,0 +1,56 @@
1
+ /// <reference path="middleware-serve-static-assets.d.ts"/>
2
+
3
+ import {
4
+ getAssetFromKV,
5
+ NotFoundError,
6
+ MethodNotAllowedError,
7
+ serveSinglePageApp,
8
+ } from "@cloudflare/kv-asset-handler";
9
+ import type { Options } from "@cloudflare/kv-asset-handler";
10
+ import { spaMode, cacheControl } from "config:middleware/serve-static-assets";
11
+ import type * as kvAssetHandler from "@cloudflare/kv-asset-handler";
12
+ import manifest from "__STATIC_CONTENT_MANIFEST";
13
+ const ASSET_MANIFEST = JSON.parse(manifest);
14
+
15
+ import type { Middleware } from "./common";
16
+
17
+ const staticAssets: Middleware = async (request, env, _ctx, middlewareCtx) => {
18
+ let options: Partial<Options> = {
19
+ ASSET_MANIFEST,
20
+ ASSET_NAMESPACE: env.__STATIC_CONTENT,
21
+ cacheControl: cacheControl,
22
+ mapRequestToAsset: spaMode ? serveSinglePageApp : undefined,
23
+ };
24
+
25
+ try {
26
+ const page = await (getAssetFromKV as typeof kvAssetHandler.getAssetFromKV)(
27
+ {
28
+ request,
29
+ waitUntil(promise) {
30
+ return _ctx.waitUntil(promise);
31
+ },
32
+ },
33
+ options
34
+ );
35
+
36
+ // allow headers to be altered
37
+ const response = new Response(page.body, page);
38
+
39
+ response.headers.set("X-XSS-Protection", "1; mode=block");
40
+ response.headers.set("X-Content-Type-Options", "nosniff");
41
+ response.headers.set("X-Frame-Options", "DENY");
42
+ response.headers.set("Referrer-Policy", "unsafe-url");
43
+ response.headers.set("Feature-Policy", "none");
44
+
45
+ return response;
46
+ } catch (e) {
47
+ if (e instanceof NotFoundError || e instanceof MethodNotAllowedError) {
48
+ // if a known error is thrown then serve from actual worker
49
+ return await middlewareCtx.next(request, env);
50
+ }
51
+ // otherwise it's a real error, so throw it
52
+ throw e;
53
+ }
54
+ };
55
+
56
+ export default staticAssets;
@@ -5,7 +5,7 @@
5
5
  * - Run `curl "http://localhost:8787/cdn-cgi/mf/scheduled"` to trigger the scheduled event
6
6
  * - Go back to the console to see what your worker has logged
7
7
  * - Update the Cron trigger in wrangler.toml (see https://developers.cloudflare.com/workers/wrangler/configuration/#triggers)
8
- * - Run `wrangler publish --name my-worker` to publish your worker
8
+ * - Run `wrangler deploy --name my-worker` to deploy your worker
9
9
  *
10
10
  * Learn more at https://developers.cloudflare.com/workers/runtime-apis/scheduled-event/
11
11
  */
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * - Run `wrangler dev src/index.ts` in your terminal to start a development server
5
5
  * - Open a browser tab at http://localhost:8787/ to see your worker in action
6
- * - Run `wrangler publish src/index.ts --name my-worker` to publish your worker
6
+ * - Run `wrangler deploy src/index.ts --name my-worker` to deploy your worker
7
7
  *
8
8
  * Learn more at https://developers.cloudflare.com/workers/
9
9
  */
@@ -3,9 +3,6 @@
3
3
 
4
4
  export default <ExportedHandler<{ ASSETS: Fetcher }>>{
5
5
  async fetch(request, env, context) {
6
- // @ts-expect-error due to a bug in `@cloudflare/workers-types`, the `cf`
7
- // types from the `request` parameter and `RequestInit` are incompatible.
8
- // We'll get this fixed very soon.
9
6
  const response = await env.ASSETS.fetch(request.url, request);
10
7
  return new Response(response.body, response);
11
8
  },
@@ -122,7 +122,8 @@ function* executeRequest(request: Request, relativePathname: string) {
122
122
  export default function (pluginArgs: unknown) {
123
123
  const onRequest: PagesPluginFunction = async (workerContext) => {
124
124
  let { request } = workerContext;
125
- const { env, next, data } = workerContext;
125
+ const { env, next } = workerContext;
126
+ let { data } = workerContext;
126
127
 
127
128
  const url = new URL(request.url);
128
129
  // TODO: Replace this with something actually legible.
@@ -149,7 +150,16 @@ export default function (pluginArgs: unknown) {
149
150
  functionPath: workerContext.functionPath + path,
150
151
  next: pluginNext,
151
152
  params,
152
- data,
153
+ get data() {
154
+ return data;
155
+ },
156
+ set data(value) {
157
+ if (typeof value !== "object" || value === null) {
158
+ throw new Error("context.data must be an object");
159
+ }
160
+ // user has overriden context.data, so we need to merge it with the existing data
161
+ data = value;
162
+ },
153
163
  pluginArgs,
154
164
  env,
155
165
  waitUntil: workerContext.waitUntil.bind(workerContext),
@@ -120,7 +120,7 @@ export default {
120
120
  ) {
121
121
  let request = originalRequest;
122
122
  const handlerIterator = executeRequest(request);
123
- const data = {}; // arbitrary data the user can set between functions
123
+ let data = {}; // arbitrary data the user can set between functions
124
124
  let isFailOpen = false;
125
125
 
126
126
  const next = async (input?: RequestInfo, init?: RequestInit) => {
@@ -141,7 +141,16 @@ export default {
141
141
  functionPath: path,
142
142
  next,
143
143
  params,
144
- data,
144
+ get data() {
145
+ return data;
146
+ },
147
+ set data(value) {
148
+ if (typeof value !== "object" || value === null) {
149
+ throw new Error("context.data must be an object");
150
+ }
151
+ // user has overriden context.data, so we need to merge it with the existing data
152
+ data = value;
153
+ },
145
154
  env,
146
155
  waitUntil: workerContext.waitUntil.bind(workerContext),
147
156
  passThroughOnException: () => {
@@ -1,5 +1,5 @@
1
1
  {
2
- "extends": "../tsconfig.json",
2
+ "extends": "@cloudflare/workers-tsconfig/tsconfig.json",
3
3
  "compilerOptions": {
4
4
  "types": ["@cloudflare/workers-types"]
5
5
  },