wrangler 0.0.0-e6c9c5c0 → 0.0.0-e6e1daba

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 (126) hide show
  1. package/README.md +3 -3
  2. package/miniflare-dist/index.mjs +22 -18
  3. package/package.json +12 -12
  4. package/src/__tests__/configuration.test.ts +70 -0
  5. package/src/__tests__/d1/d1.test.ts +13 -58
  6. package/src/__tests__/d1/execute.test.ts +64 -0
  7. package/src/__tests__/d1/migrate.test.ts +155 -0
  8. package/src/__tests__/deployments.test.ts +40 -16
  9. package/src/__tests__/dev.test.tsx +8 -7
  10. package/src/__tests__/generate.test.ts +1 -1
  11. package/src/__tests__/guess-worker-format.test.ts +35 -0
  12. package/src/__tests__/helpers/end-event-loop.ts +6 -0
  13. package/src/__tests__/helpers/mock-get-pages-upload-token.ts +25 -0
  14. package/src/__tests__/helpers/mock-set-timeout.ts +16 -0
  15. package/src/__tests__/helpers/msw/handlers/deployments.ts +40 -16
  16. package/src/__tests__/helpers/string-dynamic-values-matcher.ts +28 -0
  17. package/src/__tests__/index.test.ts +38 -32
  18. package/src/__tests__/init.test.ts +1 -1
  19. package/src/__tests__/kv.test.ts +63 -52
  20. package/src/__tests__/middleware.test.ts +65 -0
  21. package/src/__tests__/mtls-certificates.test.ts +585 -0
  22. package/src/__tests__/pages/deployment-list.test.ts +78 -0
  23. package/src/__tests__/pages/functions-build.test.ts +402 -0
  24. package/src/__tests__/pages/pages.test.ts +81 -0
  25. package/src/__tests__/pages/project-create.test.ts +63 -0
  26. package/src/__tests__/pages/project-list.test.ts +108 -0
  27. package/src/__tests__/pages/project-upload.test.ts +481 -0
  28. package/src/__tests__/pages/publish.test.ts +2745 -0
  29. package/src/__tests__/parse.test.ts +106 -0
  30. package/src/__tests__/publish.test.ts +80 -30
  31. package/src/__tests__/pubsub.test.ts +15 -12
  32. package/src/__tests__/queues.test.ts +37 -30
  33. package/src/__tests__/r2.test.ts +25 -20
  34. package/src/__tests__/secret.test.ts +4 -4
  35. package/src/__tests__/tsconfig.tsbuildinfo +1 -1
  36. package/src/__tests__/user.test.ts +1 -1
  37. package/src/__tests__/whoami.test.tsx +1 -1
  38. package/src/__tests__/worker-namespace.test.ts +26 -21
  39. package/src/api/dev.ts +80 -11
  40. package/src/api/index.ts +8 -0
  41. package/src/api/mtls-certificate.ts +148 -0
  42. package/src/api/pages/create-worker-bundle-contents.ts +75 -0
  43. package/src/api/pages/publish.tsx +59 -12
  44. package/src/bundle.ts +9 -7
  45. package/src/config/config.ts +14 -7
  46. package/src/config/environment.ts +9 -2
  47. package/src/config/index.ts +37 -20
  48. package/src/config/validation.ts +50 -3
  49. package/src/create-worker-preview.ts +19 -8
  50. package/src/create-worker-upload-form.ts +9 -0
  51. package/src/d1/backups.tsx +20 -24
  52. package/src/d1/create.tsx +6 -5
  53. package/src/d1/delete.ts +7 -10
  54. package/src/d1/execute.tsx +174 -143
  55. package/src/d1/index.ts +5 -6
  56. package/src/d1/list.tsx +21 -9
  57. package/src/d1/migrations/apply.tsx +42 -33
  58. package/src/d1/migrations/create.tsx +16 -17
  59. package/src/d1/migrations/helpers.ts +63 -38
  60. package/src/d1/migrations/list.tsx +37 -24
  61. package/src/d1/migrations/options.ts +7 -2
  62. package/src/d1/options.ts +3 -3
  63. package/src/d1/types.ts +1 -0
  64. package/src/d1/utils.ts +2 -1
  65. package/src/delete.ts +5 -8
  66. package/src/deployments.ts +62 -39
  67. package/src/deprecated/index.ts +7 -8
  68. package/src/dev/dev.tsx +1 -15
  69. package/src/dev/local.tsx +5 -6
  70. package/src/dev/remote.tsx +2 -2
  71. package/src/dev.tsx +51 -86
  72. package/src/dispatch-namespace.ts +20 -16
  73. package/src/docs/index.ts +7 -8
  74. package/src/entry.ts +1 -2
  75. package/src/generate/index.ts +6 -8
  76. package/src/index.ts +37 -26
  77. package/src/init.ts +5 -7
  78. package/src/inspect.ts +16 -1
  79. package/src/kv/index.ts +15 -17
  80. package/src/miniflare-cli/assets.ts +9 -8
  81. package/src/miniflare-cli/tsconfig.tsbuildinfo +1 -1
  82. package/src/mtls-certificate/cli.ts +155 -0
  83. package/src/pages/build.ts +109 -27
  84. package/src/pages/buildFunctions.ts +32 -31
  85. package/src/pages/deployment-tails.ts +7 -10
  86. package/src/pages/deployments.tsx +6 -4
  87. package/src/pages/dev.ts +19 -19
  88. package/src/pages/functions/tsconfig.tsbuildinfo +1 -1
  89. package/src/pages/functions.ts +8 -4
  90. package/src/pages/index.ts +3 -3
  91. package/src/pages/projects.tsx +7 -12
  92. package/src/pages/publish.tsx +18 -5
  93. package/src/pages/types.ts +5 -0
  94. package/src/pages/upload.tsx +6 -4
  95. package/src/pages/utils.ts +1 -1
  96. package/src/parse.ts +23 -1
  97. package/src/publish/index.ts +19 -15
  98. package/src/publish/publish.ts +5 -4
  99. package/src/pubsub/pubsub-commands.ts +18 -19
  100. package/src/queues/cli/commands/consumer/add.ts +18 -24
  101. package/src/queues/cli/commands/consumer/index.ts +3 -6
  102. package/src/queues/cli/commands/consumer/remove.ts +11 -18
  103. package/src/queues/cli/commands/create.ts +8 -8
  104. package/src/queues/cli/commands/delete.ts +8 -8
  105. package/src/queues/cli/commands/index.ts +3 -4
  106. package/src/queues/cli/commands/list.ts +8 -8
  107. package/src/r2/helpers.ts +1 -0
  108. package/src/r2/index.ts +28 -28
  109. package/src/secret/index.ts +10 -14
  110. package/src/sites.ts +1 -1
  111. package/src/tail/filters.ts +1 -1
  112. package/src/tail/index.ts +6 -8
  113. package/src/user/user.ts +4 -3
  114. package/src/worker.ts +6 -0
  115. package/src/yargs-types.ts +18 -5
  116. package/templates/checked-fetch.js +9 -1
  117. package/templates/format-dev-errors.ts +1 -0
  118. package/templates/new-worker.ts +3 -0
  119. package/templates/pages-template-plugin.ts +7 -3
  120. package/templates/serve-static-assets.ts +1 -0
  121. package/templates/service-bindings-module-facade.js +1 -0
  122. package/templates/tsconfig.init.json +1 -1
  123. package/templates/tsconfig.tsbuildinfo +1 -1
  124. package/wrangler-dist/cli.d.ts +596 -3
  125. package/wrangler-dist/cli.js +14276 -6748
  126. package/src/__tests__/pages.test.ts +0 -2898
@@ -1,13 +1,12 @@
1
- import { type BuilderCallback } from "yargs";
2
- import { type CommonYargsOptions } from "../../../yargs-types";
3
1
  import { HandleUnauthorizedError } from "../../utils";
4
2
  import { consumers } from "./consumer";
5
3
 
6
4
  import { options as createOptions, handler as createHandler } from "./create";
7
5
  import { options as deleteOptions, handler as deleteHandler } from "./delete";
8
6
  import { options as listOptions, handler as listHandler } from "./list";
7
+ import type { CommonYargsArgv } from "../../../yargs-types";
9
8
 
10
- export const queues: BuilderCallback<CommonYargsOptions, unknown> = (yargs) => {
9
+ export function queues(yargs: CommonYargsArgv) {
11
10
  yargs.command("list", "List Queues", listOptions, listHandler);
12
11
 
13
12
  yargs.command(
@@ -33,4 +32,4 @@ export const queues: BuilderCallback<CommonYargsOptions, unknown> = (yargs) => {
33
32
  );
34
33
 
35
34
  yargs.fail(HandleUnauthorizedError);
36
- };
35
+ }
@@ -1,14 +1,12 @@
1
- import { type Argv } from "yargs";
2
1
  import { readConfig } from "../../../config";
3
2
  import { logger } from "../../../logger";
4
3
  import { listQueues } from "../../client";
4
+ import type {
5
+ CommonYargsArgv,
6
+ StrictYargsOptionsToInterface,
7
+ } from "../../../yargs-types";
5
8
 
6
- interface Args {
7
- config?: string;
8
- page?: number;
9
- }
10
-
11
- export function options(yargs: Argv): Argv<Args> {
9
+ export function options(yargs: CommonYargsArgv) {
12
10
  return yargs.options({
13
11
  page: {
14
12
  type: "number",
@@ -17,7 +15,9 @@ export function options(yargs: Argv): Argv<Args> {
17
15
  });
18
16
  }
19
17
 
20
- export async function handler(args: Args) {
18
+ export async function handler(
19
+ args: StrictYargsOptionsToInterface<typeof options>
20
+ ) {
21
21
  const config = readConfig(args.config, args);
22
22
 
23
23
  const queues = await listQueues(config, args.page);
package/src/r2/helpers.ts CHANGED
@@ -113,6 +113,7 @@ export async function putR2Object(
113
113
  body: object,
114
114
  headers,
115
115
  method: "PUT",
116
+ duplex: "half",
116
117
  }
117
118
  );
118
119
  }
package/src/r2/index.ts CHANGED
@@ -19,22 +19,23 @@ import {
19
19
  putR2Object,
20
20
  } from "./helpers";
21
21
 
22
- import type { ConfigPath } from "../index";
22
+ import type { CommonYargsArgv } from "../yargs-types";
23
23
  import type { Readable } from "node:stream";
24
- import type { BuilderCallback } from "yargs";
25
24
 
26
- export const r2: BuilderCallback<unknown, unknown> = (r2Yargs) => {
25
+ export function r2(r2Yargs: CommonYargsArgv) {
27
26
  return r2Yargs
28
27
  .command("object", "Manage R2 objects", (r2ObjectYargs) => {
29
28
  return r2ObjectYargs
30
29
  .command(
31
30
  "get <objectPath>",
32
31
  "Fetch an object from an R2 bucket",
33
- (Objectyargs) => {
34
- return Objectyargs.positional("objectPath", {
35
- describe: "The source object path in the form of {bucket}/{key}",
36
- type: "string",
37
- })
32
+ (objectArgs) => {
33
+ return objectArgs
34
+ .positional("objectPath", {
35
+ describe:
36
+ "The source object path in the form of {bucket}/{key}",
37
+ type: "string",
38
+ })
38
39
  .option("file", {
39
40
  describe: "The destination file to create",
40
41
  alias: "f",
@@ -51,10 +52,7 @@ export const r2: BuilderCallback<unknown, unknown> = (r2Yargs) => {
51
52
  });
52
53
  },
53
54
  async (objectGetYargs) => {
54
- const config = readConfig(
55
- objectGetYargs.config as ConfigPath,
56
- objectGetYargs
57
- );
55
+ const config = readConfig(objectGetYargs.config, objectGetYargs);
58
56
  const accountId = await requireAuth(config);
59
57
  const { objectPath, pipe } = objectGetYargs;
60
58
  const { bucket, key } = bucketAndKeyFromObjectPath(objectPath);
@@ -144,10 +142,7 @@ export const r2: BuilderCallback<unknown, unknown> = (r2Yargs) => {
144
142
  async (objectPutYargs) => {
145
143
  await printWranglerBanner();
146
144
 
147
- const config = readConfig(
148
- objectPutYargs.config as ConfigPath,
149
- objectPutYargs
150
- );
145
+ const config = readConfig(objectPutYargs.config, objectPutYargs);
151
146
  const accountId = await requireAuth(config);
152
147
  const { objectPath, file, pipe, ...options } = objectPutYargs;
153
148
  const { bucket, key } = bucketAndKeyFromObjectPath(objectPath);
@@ -210,7 +205,7 @@ export const r2: BuilderCallback<unknown, unknown> = (r2Yargs) => {
210
205
  const { objectPath } = args;
211
206
  await printWranglerBanner();
212
207
 
213
- const config = readConfig(args.config as ConfigPath, args);
208
+ const config = readConfig(args.config, args);
214
209
  const accountId = await requireAuth(config);
215
210
  const { bucket, key } = bucketAndKeyFromObjectPath(objectPath);
216
211
  logger.log(`Deleting object "${key}" from bucket "${bucket}".`);
@@ -235,7 +230,7 @@ export const r2: BuilderCallback<unknown, unknown> = (r2Yargs) => {
235
230
  async (args) => {
236
231
  await printWranglerBanner();
237
232
 
238
- const config = readConfig(args.config as ConfigPath, args);
233
+ const config = readConfig(args.config, args);
239
234
 
240
235
  const accountId = await requireAuth(config);
241
236
 
@@ -248,16 +243,21 @@ export const r2: BuilderCallback<unknown, unknown> = (r2Yargs) => {
248
243
  }
249
244
  );
250
245
 
251
- r2BucketYargs.command("list", "List R2 buckets", {}, async (args) => {
252
- const config = readConfig(args.config as ConfigPath, args);
246
+ r2BucketYargs.command(
247
+ "list",
248
+ "List R2 buckets",
249
+ (listArgs) => listArgs,
250
+ async (args) => {
251
+ const config = readConfig(args.config, args);
253
252
 
254
- const accountId = await requireAuth(config);
253
+ const accountId = await requireAuth(config);
255
254
 
256
- logger.log(JSON.stringify(await listR2Buckets(accountId), null, 2));
257
- await metrics.sendMetricsEvent("list r2 buckets", {
258
- sendMetrics: config.send_metrics,
259
- });
260
- });
255
+ logger.log(JSON.stringify(await listR2Buckets(accountId), null, 2));
256
+ await metrics.sendMetricsEvent("list r2 buckets", {
257
+ sendMetrics: config.send_metrics,
258
+ });
259
+ }
260
+ );
261
261
 
262
262
  r2BucketYargs.command(
263
263
  "delete <name>",
@@ -272,7 +272,7 @@ export const r2: BuilderCallback<unknown, unknown> = (r2Yargs) => {
272
272
  async (args) => {
273
273
  await printWranglerBanner();
274
274
 
275
- const config = readConfig(args.config as ConfigPath, args);
275
+ const config = readConfig(args.config, args);
276
276
 
277
277
  const accountId = await requireAuth(config);
278
278
 
@@ -286,4 +286,4 @@ export const r2: BuilderCallback<unknown, unknown> = (r2Yargs) => {
286
286
  );
287
287
  return r2BucketYargs;
288
288
  });
289
- };
289
+ }
@@ -13,14 +13,12 @@ import * as metrics from "../metrics";
13
13
  import { parseJSON, readFileSync } from "../parse";
14
14
  import { requireAuth } from "../user";
15
15
 
16
- import type { ConfigPath } from "../index";
17
16
  import type {
18
- CommonYargsOptions,
19
- YargsOptionsToInterface,
17
+ CommonYargsArgv,
18
+ StrictYargsOptionsToInterface,
20
19
  } from "../yargs-types";
21
- import type { Argv } from "yargs";
22
20
 
23
- export const secret = (secretYargs: Argv<CommonYargsOptions>) => {
21
+ export const secret = (secretYargs: CommonYargsArgv) => {
24
22
  return secretYargs
25
23
  .option("legacy-env", {
26
24
  type: "boolean",
@@ -44,7 +42,7 @@ export const secret = (secretYargs: Argv<CommonYargsOptions>) => {
44
42
  },
45
43
  async (args) => {
46
44
  await printWranglerBanner();
47
- const config = readConfig(args.config as ConfigPath, args);
45
+ const config = readConfig(args.config, args);
48
46
 
49
47
  const scriptName = getLegacyScriptName(args, config);
50
48
  if (!scriptName) {
@@ -113,6 +111,7 @@ export const secret = (secretYargs: Argv<CommonYargsOptions>) => {
113
111
  text_blobs: {},
114
112
  data_blobs: {},
115
113
  dispatch_namespaces: [],
114
+ mtls_certificates: [],
116
115
  logfwdr: { schema: undefined, bindings: [] },
117
116
  unsafe: [],
118
117
  },
@@ -172,7 +171,7 @@ export const secret = (secretYargs: Argv<CommonYargsOptions>) => {
172
171
  });
173
172
  },
174
173
  async (args) => {
175
- const config = readConfig(args.config as ConfigPath, args);
174
+ const config = readConfig(args.config, args);
176
175
 
177
176
  const scriptName = getLegacyScriptName(args, config);
178
177
  if (!scriptName) {
@@ -222,7 +221,7 @@ export const secret = (secretYargs: Argv<CommonYargsOptions>) => {
222
221
  });
223
222
  },
224
223
  async (args) => {
225
- const config = readConfig(args.config as ConfigPath, args);
224
+ const config = readConfig(args.config, args);
226
225
 
227
226
  const scriptName = getLegacyScriptName(args, config);
228
227
  if (!scriptName) {
@@ -246,7 +245,7 @@ export const secret = (secretYargs: Argv<CommonYargsOptions>) => {
246
245
  );
247
246
  };
248
247
 
249
- export const secretBulkOptions = (yargs: Argv<CommonYargsOptions>) => {
248
+ export const secretBulkOptions = (yargs: CommonYargsArgv) => {
250
249
  return yargs
251
250
  .positional("json", {
252
251
  describe: `The JSON file of key-value pairs to upload, in form {"key": value, ...}`,
@@ -301,14 +300,11 @@ function readFromStdin(): Promise<string> {
301
300
  });
302
301
  }
303
302
 
304
- type SecretBulkArgs = YargsOptionsToInterface<typeof secretBulkOptions>;
303
+ type SecretBulkArgs = StrictYargsOptionsToInterface<typeof secretBulkOptions>;
305
304
 
306
305
  export const secretBulkHandler = async (secretBulkArgs: SecretBulkArgs) => {
307
306
  await printWranglerBanner();
308
- const config = readConfig(
309
- secretBulkArgs.config as ConfigPath,
310
- secretBulkArgs
311
- );
307
+ const config = readConfig(secretBulkArgs.config, secretBulkArgs);
312
308
 
313
309
  const scriptName = getLegacyScriptName(secretBulkArgs, config);
314
310
  if (!scriptName) {
package/src/sites.ts CHANGED
@@ -56,7 +56,7 @@ function hashFileContent(hasher: XXHashAPI, content: string): string {
56
56
  * Create a hashed asset key for the given asset.
57
57
  *
58
58
  * The key will change if the file path or content of the asset changes.
59
- * The algorithm used here matches that of Wrangler 1.
59
+ * The algorithm used here matches that of Wrangler v1.
60
60
  */
61
61
  function hashAsset(
62
62
  hasher: XXHashAPI,
@@ -7,7 +7,7 @@
7
7
 
8
8
  /**
9
9
  * These are the filters we accept in the CLI. They
10
- * were copied directly from wrangler 1 in order to
10
+ * were copied directly from Wrangler v1 in order to
11
11
  * maintain compatability, so they aren't actually the exact
12
12
  * filters we need to send up to the tail worker. They generally map 1:1,
13
13
  * but often require some transformation or
package/src/tail/index.ts CHANGED
@@ -20,16 +20,14 @@ import {
20
20
  translateCLICommandToFilterMessage,
21
21
  } from "./createTail";
22
22
  import type { WorkerMetadata } from "../create-worker-upload-form";
23
- import type { ConfigPath } from "../index";
24
23
  import type {
25
- CommonYargsOptions,
26
- YargsOptionsToInterface,
24
+ CommonYargsArgv,
25
+ StrictYargsOptionsToInterface,
27
26
  } from "../yargs-types";
28
27
  import type { TailCLIFilters } from "./createTail";
29
28
  import type { RawData } from "ws";
30
- import type { Argv } from "yargs";
31
29
 
32
- export function tailOptions(yargs: Argv<CommonYargsOptions>) {
30
+ export function tailOptions(yargs: CommonYargsArgv) {
33
31
  return yargs
34
32
  .positional("worker", {
35
33
  describe: "Name or route of the worker to tail",
@@ -86,13 +84,13 @@ export function tailOptions(yargs: Argv<CommonYargsOptions>) {
86
84
  });
87
85
  }
88
86
 
89
- type TailArgs = YargsOptionsToInterface<typeof tailOptions>;
87
+ type TailArgs = StrictYargsOptionsToInterface<typeof tailOptions>;
90
88
 
91
89
  export async function tailHandler(args: TailArgs) {
92
90
  if (args.format === "pretty") {
93
91
  await printWranglerBanner();
94
92
  }
95
- const config = readConfig(args.config as ConfigPath, args);
93
+ const config = readConfig(args.config, args);
96
94
  await metrics.sendMetricsEvent("begin log stream", {
97
95
  sendMetrics: config.send_metrics,
98
96
  });
@@ -121,7 +119,7 @@ export async function tailHandler(args: TailArgs) {
121
119
  status: args.status as ("ok" | "error" | "canceled")[] | undefined,
122
120
  header: args.header,
123
121
  method: args.method,
124
- samplingRate: args["sampling-rate"],
122
+ samplingRate: args.samplingRate,
125
123
  search: args.search,
126
124
  clientIp: args.ip,
127
125
  };
package/src/user/user.ts CHANGED
@@ -297,7 +297,7 @@ interface AuthTokens {
297
297
  accessToken?: AccessToken;
298
298
  refreshToken?: RefreshToken;
299
299
  scopes?: Scope[];
300
- /** @deprecated - this field was only provided by the deprecated `wrangler1 config` command. */
300
+ /** @deprecated - this field was only provided by the deprecated v1 `wrangler config` command. */
301
301
  apiToken?: string;
302
302
  }
303
303
 
@@ -315,7 +315,7 @@ export interface UserAuthConfig {
315
315
  refresh_token?: string;
316
316
  expiration_time?: string;
317
317
  scopes?: string[];
318
- /** @deprecated - this field was only provided by the deprecated `wrangler1 config` command. */
318
+ /** @deprecated - this field was only provided by the deprecated v1 `wrangler config` command. */
319
319
  api_token?: string;
320
320
  }
321
321
 
@@ -346,6 +346,7 @@ const Scopes = {
346
346
  "pages:write":
347
347
  "See and change Cloudflare Pages projects, settings and deployments.",
348
348
  "zone:read": "Grants read level access to account zone.",
349
+ "ssl_certs:write": "See and manage mTLS certificates for your account",
349
350
  } as const;
350
351
 
351
352
  /**
@@ -402,7 +403,7 @@ function getAuthTokens(config?: UserAuthConfig): AuthTokens | undefined {
402
403
  };
403
404
  } else if (api_token) {
404
405
  logger.warn(
405
- "It looks like you have used Wrangler 1's `config` command to login with an API token.\n" +
406
+ "It looks like you have used Wrangler v1's `config` command to login with an API token.\n" +
406
407
  "This is no longer supported in the current version of Wrangler.\n" +
407
408
  "If you wish to authenticate via an API token then please set the `CLOUDFLARE_API_TOKEN` environment variable."
408
409
  );
package/src/worker.ts CHANGED
@@ -154,6 +154,11 @@ interface CfDispatchNamespace {
154
154
  namespace: string;
155
155
  }
156
156
 
157
+ interface CfMTlsCertificate {
158
+ binding: string;
159
+ certificate_id: string;
160
+ }
161
+
157
162
  interface CfLogfwdr {
158
163
  schema: string | undefined;
159
164
  bindings: CfLogfwdrBinding[];
@@ -214,6 +219,7 @@ export interface CfWorkerInit {
214
219
  services: CfService[] | undefined;
215
220
  analytics_engine_datasets: CfAnalyticsEngineDataset[] | undefined;
216
221
  dispatch_namespaces: CfDispatchNamespace[] | undefined;
222
+ mtls_certificates: CfMTlsCertificate[] | undefined;
217
223
  logfwdr: CfLogfwdr | undefined;
218
224
  unsafe: CfUnsafeBinding[] | undefined;
219
225
  };
@@ -1,3 +1,4 @@
1
+ import type { OnlyCamelCase } from "./config/config";
1
2
  import type { ArgumentsCamelCase, Argv } from "yargs";
2
3
 
3
4
  /**
@@ -7,18 +8,30 @@ export interface CommonYargsOptions {
7
8
  v: boolean | undefined;
8
9
  config: string | undefined;
9
10
  env: string | undefined;
11
+ "experimental-json-config": boolean | undefined;
10
12
  }
11
13
 
14
+ export type CommonYargsArgv = Argv<CommonYargsOptions>;
15
+
12
16
  export type YargvToInterface<T> = T extends Argv<infer P>
13
17
  ? ArgumentsCamelCase<P>
14
18
  : never;
15
19
 
20
+ // See http://stackoverflow.com/questions/51465182/how-to-remove-index-signature-using-mapped-types
21
+ type RemoveIndex<T> = {
22
+ [K in keyof T as string extends K
23
+ ? never
24
+ : number extends K
25
+ ? never
26
+ : K]: T[K];
27
+ };
28
+
16
29
  /**
17
30
  * Given some Yargs Options function factory, extract the interface
18
- * that corresponds to the yargs arguments
31
+ * that corresponds to the yargs arguments, remove index types, and only allow camelCase
19
32
  */
20
- export type YargsOptionsToInterface<
21
- T extends (yargs: Argv<CommonYargsOptions>) => Argv
22
- > = T extends (yargs: Argv<CommonYargsOptions>) => Argv<infer P>
23
- ? ArgumentsCamelCase<P>
33
+ export type StrictYargsOptionsToInterface<
34
+ T extends (yargs: CommonYargsArgv) => Argv
35
+ > = T extends (yargs: CommonYargsArgv) => Argv<infer P>
36
+ ? OnlyCamelCase<RemoveIndex<ArgumentsCamelCase<P>>>
24
37
  : never;
@@ -1,7 +1,15 @@
1
1
  const urls = new Set();
2
2
 
3
3
  export function checkedFetch(request, init) {
4
- const url = new URL(new Request(request, init).url);
4
+ const url =
5
+ request instanceof URL
6
+ ? request
7
+ : new URL(
8
+ (typeof request === "string"
9
+ ? new Request(request, init)
10
+ : request
11
+ ).url
12
+ );
5
13
  if (url.port && url.port !== "443" && url.protocol === "https:") {
6
14
  if (!urls.has(url.toString())) {
7
15
  urls.add(url.toString());
@@ -3,6 +3,7 @@ import worker from "__ENTRY_POINT__";
3
3
  export * from "__ENTRY_POINT__";
4
4
 
5
5
  export default <ExportedHandler>{
6
+ ...worker,
6
7
  async fetch(req, env, ctx) {
7
8
  if (worker.fetch === undefined) {
8
9
  throw new TypeError("Entry point missing `fetch` handler");
@@ -17,6 +17,9 @@ export interface Env {
17
17
  //
18
18
  // Example binding to R2. Learn more at https://developers.cloudflare.com/workers/runtime-apis/r2/
19
19
  // MY_BUCKET: R2Bucket;
20
+ //
21
+ // Example binding to a Service. Learn more at https://developers.cloudflare.com/workers/runtime-apis/service-bindings/
22
+ // MY_SERVICE: Fetcher;
20
23
  }
21
24
 
22
25
  export default {
@@ -133,7 +133,11 @@ export default function (pluginArgs: unknown) {
133
133
  const handlerIterator = executeRequest(request, relativePathname);
134
134
  const pluginNext = async (input?: RequestInfo, init?: RequestInit) => {
135
135
  if (input !== undefined) {
136
- request = new Request(input, init);
136
+ let url = input;
137
+ if (typeof input === "string") {
138
+ url = new URL(input, request.url).toString();
139
+ }
140
+ request = new Request(url, init);
137
141
  }
138
142
 
139
143
  const result = handlerIterator.next();
@@ -141,7 +145,7 @@ export default function (pluginArgs: unknown) {
141
145
  if (result.done === false) {
142
146
  const { handler, params, path } = result.value;
143
147
  const context = {
144
- request,
148
+ request: new Request(request.clone()),
145
149
  functionPath: workerContext.functionPath + path,
146
150
  next: pluginNext,
147
151
  params,
@@ -157,7 +161,7 @@ export default function (pluginArgs: unknown) {
157
161
 
158
162
  return cloneResponse(response);
159
163
  } else {
160
- return next();
164
+ return next(request);
161
165
  }
162
166
  };
163
167
 
@@ -20,6 +20,7 @@ declare global {
20
20
  }
21
21
 
22
22
  export default <ExportedHandler<{ __STATIC_CONTENT: KVNamespace }>>{
23
+ ...worker,
23
24
  async fetch(request, env, ctx) {
24
25
  let options: Partial<Options> = {
25
26
  ASSET_MANIFEST,
@@ -4,6 +4,7 @@ const Workers = __WORKERS__;
4
4
  export * from "__ENTRY_POINT__";
5
5
 
6
6
  export default {
7
+ ...worker,
7
8
  async fetch(req, env, ctx) {
8
9
  const facadeEnv = { ...env };
9
10
  // For every Worker definition that's available,
@@ -35,7 +35,7 @@
35
35
  // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */
36
36
  "types": [
37
37
  "@cloudflare/workers-types",
38
- "jest"
38
+ "vitest"
39
39
  ] /* Specify type package names to be included without being referenced in a source file. */,
40
40
  // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
41
41
  "resolveJsonModule": true /* Enable importing .json files */,
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/@cloudflare/kv-asset-handler/dist/types.d.ts","../../../node_modules/@cloudflare/kv-asset-handler/dist/index.d.ts","./facade.d.ts","./first-party-worker-module-facade.ts","./format-dev-errors.ts","./new-worker-scheduled.ts","./new-worker.ts","./pages-dev-util.ts","./pages-dev-pipeline.ts","./pages-shim.ts","../../../node_modules/path-to-regexp/dist/index.d.ts","./pages-template-plugin.ts","./pages-template-worker.ts","./serve-static-assets.ts","./tsconfig-sanity.ts","./middleware/common.ts","./middleware/loader-modules.ts","./middleware/loader-sw.ts","./middleware/middleware-miniflare3-json-error.ts","./middleware/middleware-pretty-error.ts","./middleware/middleware-scheduled.ts","../node_modules/@cloudflare/workers-types/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"f439ece97b03903d27a93c02f445d9abcff70232b88e70a2621fedcc9db1ffc8",{"version":"e8b2423b91be2951e7db3f6db2ec2cd3625235a950200a74a673b790ed8b4372","affectsGlobalScope":true},"8714b72b95c1f7f9245d32b8b291b21ef26e45d3df59e818f9197f6540e518b7","ad83ce0d12ff9d14ba6a9f43457ffc3d90e87f3e5f20e3fdebbb8409d931d478","ac0696673cb55b950db6fb25fe3ccd6b59c5eb570dc92bfcc4713013b6ed5d63","276b86bbfe5c329ac50a49825faa76788fddc67ff806fdd2880cb53187dfa691","cbfef832a9d473a7cce99f80fe8bda43d59ce81d1c6b5e929f43253f3878ce30","0704bdc9e66ede7a2183c419efdbb5f22c195952231e6c0b9cba526df2e8e2a4","dc4c974e076a16fdd706c84f0e7d30ae61bc0476d02860d88880bb5bd413cb7e","4cd5c66df96cc93d2ff073b6b507741b7de9002225152306bbe4ed79df3451c4","6e7936b20cd2022c2a71f9d780e7f87216c19fde5c18448aaff60059a46ae2e7","3267d7a7c896c2be4958055926940c89f3b4e6786a51335d77da1aa57ee6a33b","ecfcda58573d4cdbd5ecb0eb39a4c9439d40c5e0ca3200e5eafb1624a6117b8e",{"version":"bb652ceca49b7d127579d4c72f5e5adadf64109e91d97470b5ec82d363406e4e","affectsGlobalScope":true},"675d74367d696b7a52f2a515036acf36b2ef341c385d3944dc531d753b257e65","f165c6b3228ab46d02bb1f18a6352c1573382d992cc22342c46cb032c090c4af","7e14036c1239ea1554d89f96c1e0d234ae76cd70d295c83760bda4f0dc768e22",{"version":"8ec567ca02a6acc5fb4e6f6b2a302884009fc78a3246277b488a95c87d1fcaad","affectsGlobalScope":true},"b8773398f456dc4a0c00b988648b2354ae2453ebb5274742b7a7b364f8a0acc8","6c15d320a0c150eac09db4c9e75725fd24a33c78695c758d4eb09f64452b21b8","1e7ccb28ed0d8738d210b1216e3504049d0021df9deec7d5ee247f72db4d6fd9",{"version":"8dfb280945d90d2bf2397e23aa63d7daa3d7e032de526b259ea2baf08223bd69","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"alwaysStrict":false,"esModuleInterop":true,"jsx":2,"module":1,"skipLibCheck":true,"strict":true,"target":99},"fileIdsList":[[54],[55],[56],[56,69],[69],[56,61],[64],[55,56]],"referencedMap":[[55,1],[56,2],[57,3],[58,3],[70,4],[71,5],[72,5],[73,5],[74,5],[62,6],[65,7],[66,7],[67,8]],"exportedModulesMap":[[55,1],[56,2],[57,3],[58,3],[70,4],[71,5],[72,5],[73,5],[74,5],[62,6],[65,7],[66,7],[67,8]],"semanticDiagnosticsPerFile":[55,54,64,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,32,33,34,35,7,36,41,42,37,38,39,40,8,46,43,44,45,47,9,48,49,50,51,52,1,10,53,75,56,57,58,69,70,71,72,73,74,59,60,62,61,63,65,66,67,68],"affectedFilesPendingEmit":[[55,1],[54,1],[64,1],[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[75,1],[56,1],[57,1],[58,1],[69,1],[70,1],[71,1],[72,1],[73,1],[74,1],[59,1],[60,1],[62,1],[61,1],[63,1],[65,1],[66,1],[67,1],[68,1]]},"version":"4.8.4"}
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/@cloudflare/kv-asset-handler/dist/types.d.ts","../../../node_modules/@cloudflare/kv-asset-handler/dist/index.d.ts","./facade.d.ts","./first-party-worker-module-facade.ts","./format-dev-errors.ts","./new-worker-scheduled.ts","./new-worker.ts","./pages-dev-util.ts","./pages-dev-pipeline.ts","./pages-shim.ts","../../../node_modules/path-to-regexp/dist/index.d.ts","./pages-template-plugin.ts","./pages-template-worker.ts","./serve-static-assets.ts","./tsconfig-sanity.ts","./middleware/common.ts","./middleware/loader-modules.ts","./middleware/loader-sw.ts","./middleware/middleware-miniflare3-json-error.ts","./middleware/middleware-pretty-error.ts","./middleware/middleware-scheduled.ts","../../../node_modules/@cloudflare/workers-types/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"f439ece97b03903d27a93c02f445d9abcff70232b88e70a2621fedcc9db1ffc8",{"version":"e8b2423b91be2951e7db3f6db2ec2cd3625235a950200a74a673b790ed8b4372","affectsGlobalScope":true},"8714b72b95c1f7f9245d32b8b291b21ef26e45d3df59e818f9197f6540e518b7","ad83ce0d12ff9d14ba6a9f43457ffc3d90e87f3e5f20e3fdebbb8409d931d478","7b076151b24d43affd231bf860da048a10851270a0936270449bf49e7c3397a0","276b86bbfe5c329ac50a49825faa76788fddc67ff806fdd2880cb53187dfa691","81bee226dc196cea16218f78c949c2aa235cb6dd7a53d4ec6393f085ba9c0933","0704bdc9e66ede7a2183c419efdbb5f22c195952231e6c0b9cba526df2e8e2a4","dc4c974e076a16fdd706c84f0e7d30ae61bc0476d02860d88880bb5bd413cb7e","4cd5c66df96cc93d2ff073b6b507741b7de9002225152306bbe4ed79df3451c4","6e7936b20cd2022c2a71f9d780e7f87216c19fde5c18448aaff60059a46ae2e7","0a4ec01b678e0e5c554cfc7c71ad56fb66bee008c954c3e4dfc1f439318a0a19","ecfcda58573d4cdbd5ecb0eb39a4c9439d40c5e0ca3200e5eafb1624a6117b8e",{"version":"ca4f07f4f5937883d5d7998fb9d04da788cec45add92dcbffc615084b9c951b1","affectsGlobalScope":true},"675d74367d696b7a52f2a515036acf36b2ef341c385d3944dc531d753b257e65","f165c6b3228ab46d02bb1f18a6352c1573382d992cc22342c46cb032c090c4af","7e14036c1239ea1554d89f96c1e0d234ae76cd70d295c83760bda4f0dc768e22",{"version":"8ec567ca02a6acc5fb4e6f6b2a302884009fc78a3246277b488a95c87d1fcaad","affectsGlobalScope":true},"b8773398f456dc4a0c00b988648b2354ae2453ebb5274742b7a7b364f8a0acc8","6c15d320a0c150eac09db4c9e75725fd24a33c78695c758d4eb09f64452b21b8","1e7ccb28ed0d8738d210b1216e3504049d0021df9deec7d5ee247f72db4d6fd9",{"version":"8dfb280945d90d2bf2397e23aa63d7daa3d7e032de526b259ea2baf08223bd69","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"alwaysStrict":false,"esModuleInterop":true,"jsx":2,"module":1,"skipLibCheck":true,"strict":true,"target":99},"fileIdsList":[[54],[55],[56],[56,69],[69],[56,61],[64],[55,56]],"referencedMap":[[55,1],[56,2],[57,3],[58,3],[70,4],[71,5],[72,5],[73,5],[74,5],[62,6],[65,7],[66,7],[67,8]],"exportedModulesMap":[[55,1],[56,2],[57,3],[58,3],[70,4],[71,5],[72,5],[73,5],[74,5],[62,6],[65,7],[66,7],[67,8]],"semanticDiagnosticsPerFile":[55,54,75,64,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,32,33,34,35,7,36,41,42,37,38,39,40,8,46,43,44,45,47,9,48,49,50,51,52,1,10,53,56,57,58,69,70,71,72,73,74,59,60,62,61,63,65,66,67,68],"affectedFilesPendingEmit":[[55,1],[54,1],[75,1],[64,1],[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[56,1],[57,1],[58,1],[69,1],[70,1],[71,1],[72,1],[73,1],[74,1],[59,1],[60,1],[62,1],[61,1],[63,1],[65,1],[66,1],[67,1],[68,1]]},"version":"4.8.4"}