wrangler 0.0.0-e7a0cd5b → 0.0.0-e87ad068
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.
- package/README.md +3 -3
- package/bin/wrangler.js +30 -10
- package/miniflare-dist/index.mjs +254 -128
- package/package.json +27 -19
- package/src/__tests__/api-dev.test.ts +65 -36
- package/src/__tests__/api-devregistry.test.ts +121 -0
- package/src/__tests__/api.test.ts +27 -5
- package/src/__tests__/configuration.test.ts +797 -98
- package/src/__tests__/constellation.test.ts +371 -0
- package/src/__tests__/d1/d1.test.ts +82 -0
- package/src/__tests__/d1/execute.test.ts +66 -0
- package/src/__tests__/d1/migrate.test.ts +257 -0
- package/src/__tests__/d1/splitter.test.ts +255 -0
- package/src/__tests__/delete.test.ts +91 -49
- package/src/__tests__/deployments.test.ts +330 -56
- package/src/__tests__/dev.test.tsx +198 -90
- package/src/__tests__/generate.test.ts +12 -10
- package/src/__tests__/guess-worker-format.test.ts +35 -0
- package/src/__tests__/helpers/end-event-loop.ts +6 -0
- package/src/__tests__/helpers/mock-auth-domain.ts +20 -0
- package/src/__tests__/helpers/mock-console.ts +6 -0
- package/src/__tests__/helpers/mock-dialogs.ts +71 -85
- package/src/__tests__/helpers/mock-get-pages-upload-token.ts +25 -0
- package/src/__tests__/helpers/mock-get-zone-from-host.ts +8 -5
- package/src/__tests__/helpers/mock-known-routes.ts +7 -2
- package/src/__tests__/helpers/mock-kv.ts +29 -16
- package/src/__tests__/helpers/mock-oauth-flow.ts +103 -92
- package/src/__tests__/helpers/mock-process.ts +8 -13
- package/src/__tests__/helpers/mock-set-timeout.ts +16 -0
- package/src/__tests__/helpers/msw/blob-worker.cjs +19 -0
- package/src/__tests__/helpers/msw/handlers/deployments.ts +128 -27
- package/src/__tests__/helpers/msw/handlers/namespaces.ts +18 -41
- package/src/__tests__/helpers/msw/handlers/oauth.ts +13 -18
- package/src/__tests__/helpers/msw/handlers/r2.ts +14 -34
- package/src/__tests__/helpers/msw/handlers/script.ts +9 -28
- package/src/__tests__/helpers/msw/handlers/user.ts +13 -24
- package/src/__tests__/helpers/msw/handlers/zones.ts +6 -8
- package/src/__tests__/helpers/msw/index.ts +32 -1
- package/src/__tests__/helpers/msw/read-file-sync.js +61 -0
- package/src/__tests__/helpers/string-dynamic-values-matcher.ts +28 -0
- package/src/__tests__/helpers/worker-scripts/parent-worker.js +4 -1
- package/src/__tests__/index.test.ts +92 -72
- package/src/__tests__/init.test.ts +1033 -631
- package/src/__tests__/jest.setup.ts +19 -42
- package/src/__tests__/kv.test.ts +355 -231
- package/src/__tests__/logger.test.ts +68 -2
- package/src/__tests__/logout.test.ts +47 -0
- package/src/__tests__/metrics.test.ts +94 -51
- package/src/__tests__/middleware.scheduled.test.ts +42 -32
- package/src/__tests__/middleware.test.ts +212 -122
- package/src/__tests__/mtls-certificates.test.ts +589 -0
- package/src/__tests__/pages/deployment-list.test.ts +80 -0
- package/src/__tests__/pages/functions-build.test.ts +529 -0
- package/src/__tests__/pages/pages.test.ts +81 -0
- package/src/__tests__/pages/project-create.test.ts +63 -0
- package/src/__tests__/pages/project-list.test.ts +110 -0
- package/src/__tests__/pages/project-upload.test.ts +500 -0
- package/src/__tests__/pages/publish.test.ts +2864 -0
- package/src/__tests__/pages-deployment-tail.test.ts +957 -0
- package/src/__tests__/parse.test.ts +106 -0
- package/src/__tests__/publish.test.ts +2227 -1005
- package/src/__tests__/pubsub.test.ts +226 -100
- package/src/__tests__/queues.test.ts +238 -77
- package/src/__tests__/r2.test.ts +55 -57
- package/src/__tests__/secret.test.ts +179 -130
- package/src/__tests__/tail.test.ts +313 -113
- package/src/__tests__/test-old-node-version.js +3 -3
- package/src/__tests__/traverse-module-graph.test.ts +220 -0
- package/src/__tests__/tsconfig-sanity.ts +12 -0
- package/src/__tests__/tsconfig.json +8 -0
- package/src/__tests__/tsconfig.tsbuildinfo +1 -0
- package/src/__tests__/type-generation.test.ts +43 -26
- package/src/__tests__/unstableDev.test.ts +61 -0
- package/src/__tests__/user.test.ts +35 -72
- package/src/__tests__/whoami.test.tsx +8 -114
- package/src/__tests__/worker-namespace.test.ts +83 -69
- package/src/api/dev.ts +180 -60
- package/src/api/index.ts +10 -1
- package/src/api/mtls-certificate.ts +148 -0
- package/src/api/pages/create-worker-bundle-contents.ts +80 -0
- package/src/api/pages/index.ts +5 -0
- package/src/api/pages/publish.tsx +371 -0
- package/src/bundle.ts +315 -148
- package/src/cfetch/index.ts +0 -2
- package/src/cfetch/internal.ts +33 -33
- package/src/cli.ts +4 -4
- package/src/config/config.ts +14 -7
- package/src/config/environment.ts +120 -24
- package/src/config/index.ts +117 -35
- package/src/config/validation-helpers.ts +1 -1
- package/src/config/validation.ts +430 -19
- package/src/constellation/createProject.tsx +51 -0
- package/src/constellation/deleteProject.ts +51 -0
- package/src/constellation/deleteProjectModel.ts +76 -0
- package/src/constellation/index.ts +75 -0
- package/src/constellation/listCatalog.tsx +35 -0
- package/src/constellation/listModel.tsx +49 -0
- package/src/constellation/listProject.tsx +28 -0
- package/src/constellation/listRuntime.tsx +28 -0
- package/src/constellation/options.ts +17 -0
- package/src/constellation/types.ts +17 -0
- package/src/constellation/uploadModel.tsx +84 -0
- package/src/constellation/utils.ts +90 -0
- package/src/create-worker-preview.ts +19 -8
- package/src/create-worker-upload-form.ts +81 -18
- package/src/d1/backups.tsx +47 -46
- package/src/d1/constants.ts +5 -0
- package/src/d1/create.tsx +85 -37
- package/src/d1/{delete.tsx → delete.ts} +12 -15
- package/src/d1/execute.tsx +228 -156
- package/src/d1/index.ts +31 -7
- package/src/d1/list.tsx +27 -13
- package/src/d1/migrations/apply.tsx +235 -0
- package/src/d1/migrations/create.tsx +79 -0
- package/src/d1/migrations/helpers.ts +171 -0
- package/src/d1/migrations/index.ts +3 -0
- package/src/d1/migrations/list.tsx +95 -0
- package/src/d1/migrations/options.ts +23 -0
- package/src/d1/options.ts +12 -2
- package/src/d1/splitter.ts +161 -0
- package/src/d1/types.ts +32 -0
- package/src/d1/utils.ts +12 -2
- package/src/delete.ts +8 -16
- package/src/deployments.ts +340 -46
- package/src/deprecated/index.ts +8 -302
- package/src/dev/dev.tsx +66 -46
- package/src/dev/local.tsx +339 -104
- package/src/dev/remote.tsx +36 -3
- package/src/dev/start-server.ts +146 -101
- package/src/dev/use-esbuild.ts +82 -56
- package/src/dev/validate-dev-props.ts +9 -0
- package/src/{dev-registry.tsx → dev-registry.ts} +13 -1
- package/src/dev.tsx +202 -125
- package/src/dialogs.ts +136 -0
- package/src/dispatch-namespace.ts +21 -17
- package/src/docs/helpers.ts +50 -0
- package/src/docs/index.ts +54 -0
- package/src/entry.ts +26 -11
- package/src/environment-variables/factory.ts +89 -0
- package/src/environment-variables/misc-variables.ts +30 -0
- package/src/generate/index.ts +303 -0
- package/src/git-client.ts +15 -4
- package/src/{index.tsx → index.ts} +148 -63
- package/src/init.ts +301 -197
- package/src/inspect.ts +122 -6
- package/src/jest.d.ts +4 -0
- package/src/kv/helpers.ts +7 -4
- package/src/kv/index.ts +15 -17
- package/src/logger.ts +36 -5
- package/src/metrics/metrics-config.ts +3 -3
- package/src/metrics/send-event.ts +6 -1
- package/src/miniflare-cli/assets.ts +64 -28
- package/src/miniflare-cli/index.ts +6 -9
- package/src/miniflare-cli/tsconfig.json +9 -0
- package/src/miniflare-cli/tsconfig.tsbuildinfo +1 -0
- package/src/miniflare-cli/types.ts +11 -0
- package/src/module-collection.ts +92 -26
- package/src/mtls-certificate/cli.ts +155 -0
- package/src/pages/build.ts +423 -0
- package/src/pages/buildFunctions.ts +140 -0
- package/src/pages/deployment-tails.ts +281 -0
- package/src/pages/deployments.tsx +11 -33
- package/src/pages/{dev.tsx → dev.ts} +192 -126
- package/src/pages/errors.ts +1 -0
- package/src/pages/functions/buildPlugin.ts +73 -69
- package/src/pages/functions/buildWorker.ts +342 -117
- package/src/pages/functions/tsconfig.json +8 -0
- package/src/pages/functions/tsconfig.tsbuildinfo +1 -0
- package/src/pages/{functions.tsx → functions.ts} +8 -4
- package/src/pages/{index.tsx → index.ts} +11 -3
- package/src/pages/projects.tsx +12 -22
- package/src/pages/prompt-select-project.tsx +31 -0
- package/src/pages/publish.tsx +45 -214
- package/src/pages/types.ts +6 -9
- package/src/pages/upload.tsx +58 -14
- package/src/pages/utils.ts +14 -3
- package/src/parse.ts +23 -1
- package/src/paths.ts +1 -1
- package/src/proxy.ts +5 -0
- package/src/publish/index.ts +20 -16
- package/src/publish/publish.ts +81 -48
- package/src/pubsub/{pubsub-commands.tsx → pubsub-commands.ts} +19 -20
- package/src/queues/cli/commands/consumer/add.ts +24 -24
- package/src/queues/cli/commands/consumer/index.ts +3 -6
- package/src/queues/cli/commands/consumer/remove.ts +11 -18
- package/src/queues/cli/commands/create.ts +8 -8
- package/src/queues/cli/commands/delete.ts +8 -8
- package/src/queues/cli/commands/index.ts +6 -4
- package/src/queues/cli/commands/list.ts +8 -8
- package/src/queues/client.ts +1 -0
- package/src/queues/utils.ts +18 -0
- package/src/r2/constants.ts +4 -0
- package/src/r2/helpers.ts +1 -0
- package/src/r2/index.ts +40 -28
- package/src/secret/index.ts +18 -17
- package/src/{sites.tsx → sites.ts} +165 -53
- package/src/tail/createTail.ts +103 -3
- package/src/tail/filters.ts +1 -1
- package/src/tail/index.ts +8 -11
- package/src/tail/printing.ts +27 -0
- package/src/traverse-module-graph.ts +54 -0
- package/src/tsconfig-sanity.ts +16 -0
- package/src/type-generation.ts +85 -57
- package/src/user/access.ts +0 -1
- package/src/user/auth-variables.ts +113 -0
- package/src/user/choose-account.tsx +1 -31
- package/src/user/index.ts +0 -1
- package/src/user/{user.tsx → user.ts} +124 -82
- package/src/utils/render.ts +93 -0
- package/src/{whoami.tsx → whoami.ts} +37 -71
- package/src/worker.ts +61 -3
- package/src/yargs-types.ts +22 -5
- package/templates/__tests__/tsconfig-sanity.ts +12 -0
- package/templates/__tests__/tsconfig.json +8 -0
- package/templates/__tests__/tsconfig.tsbuildinfo +1 -0
- package/templates/checked-fetch.js +9 -3
- package/templates/d1-beta-facade.js +95 -25
- package/templates/facade.d.ts +14 -0
- package/templates/first-party-worker-module-facade.ts +4 -3
- package/templates/format-dev-errors.ts +8 -6
- package/templates/gitignore +1 -0
- package/templates/init-tests/test-jest-new-worker.js +3 -5
- package/templates/init-tests/test-vitest-new-worker.js +3 -5
- package/templates/init-tests/test-vitest-new-worker.ts +25 -0
- package/templates/middleware/loader-modules.ts +2 -2
- package/templates/middleware/loader-sw.ts +51 -31
- package/templates/middleware/middleware-miniflare3-json-error.ts +32 -0
- package/templates/new-worker.ts +3 -0
- package/templates/pages-dev-pipeline.ts +4 -1
- package/templates/pages-dev-util.ts +4 -1
- package/templates/pages-shim.ts +4 -1
- package/templates/pages-template-plugin.ts +19 -10
- package/templates/serve-static-assets.ts +17 -14
- package/templates/service-bindings-module-facade.js +1 -0
- package/templates/tsconfig-sanity.ts +11 -0
- package/templates/tsconfig.init.json +105 -0
- package/templates/tsconfig.json +5 -103
- package/templates/tsconfig.tsbuildinfo +1 -0
- package/wrangler-dist/cli.d.ts +902 -77
- package/wrangler-dist/cli.js +131685 -140615
- package/wrangler-dist/wasm-sync.wasm +0 -0
- package/src/__tests__/api-devregistry.test.js +0 -57
- package/src/__tests__/d1.test.ts +0 -72
- package/src/__tests__/dialogs.test.tsx +0 -40
- package/src/__tests__/helpers/mock-cfetch.ts +0 -333
- package/src/__tests__/pages.test.ts +0 -2223
- package/src/d1/types.tsx +0 -14
- package/src/dialogs.tsx +0 -163
- package/src/environment-variables.ts +0 -50
- package/src/pages/build.tsx +0 -238
- package/src/user/env-vars.ts +0 -46
- package/templates/experimental-local-cache-stubs.js +0 -27
- /package/src/{bundle-reporter.tsx → bundle-reporter.ts} +0 -0
- /package/src/dev/{get-local-persistence-path.tsx → get-local-persistence-path.ts} +0 -0
- /package/src/pages/{hash.tsx → hash.ts} +0 -0
package/src/cfetch/internal.ts
CHANGED
|
@@ -1,22 +1,14 @@
|
|
|
1
1
|
import assert from "node:assert";
|
|
2
2
|
import { fetch, File, Headers } from "undici";
|
|
3
|
+
import { Response } from "undici";
|
|
3
4
|
import { version as wranglerVersion } from "../../package.json";
|
|
4
|
-
import {
|
|
5
|
+
import { getCloudflareApiBaseUrl } from "../environment-variables/misc-variables";
|
|
5
6
|
import { logger } from "../logger";
|
|
6
7
|
import { ParseError, parseJSON } from "../parse";
|
|
7
8
|
import { loginOrRefreshIfRequired, requireApiToken } from "../user";
|
|
8
9
|
import type { ApiCredentials } from "../user";
|
|
9
10
|
import type { URLSearchParams } from "node:url";
|
|
10
|
-
import type { RequestInit, HeadersInit
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Get the URL to use to access the Cloudflare API.
|
|
14
|
-
*/
|
|
15
|
-
export const getCloudflareAPIBaseURL = getEnvironmentVariableFactory({
|
|
16
|
-
variableName: "CLOUDFLARE_API_BASE_URL",
|
|
17
|
-
deprecatedName: "CF_API_BASE_URL",
|
|
18
|
-
defaultValue: "https://api.cloudflare.com/client/v4",
|
|
19
|
-
});
|
|
11
|
+
import type { RequestInit, HeadersInit } from "undici";
|
|
20
12
|
|
|
21
13
|
/*
|
|
22
14
|
* performApiFetch does everything required to make a CF API request,
|
|
@@ -42,12 +34,17 @@ export async function performApiFetch(
|
|
|
42
34
|
|
|
43
35
|
const queryString = queryParams ? `?${queryParams.toString()}` : "";
|
|
44
36
|
logger.debug(
|
|
45
|
-
`-- START CF API REQUEST: ${method} ${
|
|
37
|
+
`-- START CF API REQUEST: ${method} ${getCloudflareApiBaseUrl()}${resource}${queryString}`
|
|
38
|
+
);
|
|
39
|
+
const logHeaders = cloneHeaders(headers);
|
|
40
|
+
delete logHeaders["Authorization"];
|
|
41
|
+
logger.debug("HEADERS:", JSON.stringify(logHeaders, null, 2));
|
|
42
|
+
logger.debug(
|
|
43
|
+
"INIT:",
|
|
44
|
+
JSON.stringify({ ...init, headers: logHeaders }, null, 2)
|
|
46
45
|
);
|
|
47
|
-
logger.debug("HEADERS:", JSON.stringify(headers, null, 2));
|
|
48
|
-
logger.debug("INIT:", JSON.stringify(init, null, 2));
|
|
49
46
|
logger.debug("-- END CF API REQUEST");
|
|
50
|
-
return await fetch(`${
|
|
47
|
+
return await fetch(`${getCloudflareApiBaseUrl()}${resource}${queryString}`, {
|
|
51
48
|
method,
|
|
52
49
|
...init,
|
|
53
50
|
headers,
|
|
@@ -83,7 +80,9 @@ export async function fetchInternal<ResponseType>(
|
|
|
83
80
|
response.statusText,
|
|
84
81
|
response.status
|
|
85
82
|
);
|
|
86
|
-
|
|
83
|
+
const logHeaders = cloneHeaders(response.headers);
|
|
84
|
+
delete logHeaders["Authorization"];
|
|
85
|
+
logger.debug("HEADERS:", JSON.stringify(logHeaders, null, 2));
|
|
87
86
|
logger.debug("RESPONSE:", jsonText);
|
|
88
87
|
logger.debug("-- END CF API RESPONSE");
|
|
89
88
|
|
|
@@ -166,7 +165,7 @@ export async function fetchKVGetValue(
|
|
|
166
165
|
const auth = requireApiToken();
|
|
167
166
|
const headers: Record<string, string> = {};
|
|
168
167
|
addAuthorizationHeaderIfUnspecified(headers, auth);
|
|
169
|
-
const resource = `${
|
|
168
|
+
const resource = `${getCloudflareApiBaseUrl()}/accounts/${accountId}/storage/kv/namespaces/${namespaceId}/values/${key}`;
|
|
170
169
|
const response = await fetch(resource, {
|
|
171
170
|
method: "GET",
|
|
172
171
|
headers,
|
|
@@ -199,7 +198,7 @@ export async function fetchR2Objects(
|
|
|
199
198
|
addAuthorizationHeaderIfUnspecified(headers, auth);
|
|
200
199
|
addUserAgent(headers);
|
|
201
200
|
|
|
202
|
-
const response = await fetch(`${
|
|
201
|
+
const response = await fetch(`${getCloudflareApiBaseUrl()}${resource}`, {
|
|
203
202
|
...bodyInit,
|
|
204
203
|
headers,
|
|
205
204
|
});
|
|
@@ -219,19 +218,20 @@ export async function fetchR2Objects(
|
|
|
219
218
|
export async function fetchDashboardScript(
|
|
220
219
|
resource: string,
|
|
221
220
|
bodyInit: RequestInit = {}
|
|
222
|
-
): Promise<
|
|
221
|
+
): Promise<File[]> {
|
|
223
222
|
await requireLoggedIn();
|
|
224
223
|
const auth = requireApiToken();
|
|
225
224
|
const headers = cloneHeaders(bodyInit.headers);
|
|
226
225
|
addAuthorizationHeaderIfUnspecified(headers, auth);
|
|
227
226
|
addUserAgent(headers);
|
|
228
227
|
|
|
229
|
-
|
|
228
|
+
let response = await fetch(`${getCloudflareApiBaseUrl()}${resource}`, {
|
|
230
229
|
...bodyInit,
|
|
231
230
|
headers,
|
|
232
231
|
});
|
|
233
232
|
|
|
234
233
|
if (!response.ok || !response.body) {
|
|
234
|
+
console.error(response.ok, response.body);
|
|
235
235
|
throw new Error(
|
|
236
236
|
`Failed to fetch ${resource} - ${response.status}: ${response.statusText});`
|
|
237
237
|
);
|
|
@@ -242,22 +242,22 @@ export async function fetchDashboardScript(
|
|
|
242
242
|
?.startsWith("multipart");
|
|
243
243
|
|
|
244
244
|
if (usesModules) {
|
|
245
|
-
//
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
if (entries.length > 1)
|
|
249
|
-
throw new RangeError("Expected only one entry in multipart response");
|
|
250
|
-
const [_, file] = entries[0];
|
|
251
|
-
|
|
252
|
-
if (file instanceof File) {
|
|
253
|
-
return await file.text();
|
|
245
|
+
// For testing purposes only, sorry not sorry -- msw doesn't implement Response#formData
|
|
246
|
+
if (!response.formData) {
|
|
247
|
+
response = new Response(await response.text(), response);
|
|
254
248
|
}
|
|
255
249
|
|
|
256
|
-
|
|
250
|
+
const form = await response.formData();
|
|
251
|
+
const files = Array.from(form.entries()).map(([filename, contents]) =>
|
|
252
|
+
contents instanceof File ? contents : new File([contents], filename)
|
|
253
|
+
);
|
|
257
254
|
|
|
258
|
-
|
|
259
|
-
// This should be using a builtin formData() parser pattern.
|
|
255
|
+
return files;
|
|
260
256
|
} else {
|
|
261
|
-
|
|
257
|
+
const contents = await response.text();
|
|
258
|
+
const filename = response.headers.get("cf-entrypoint") ?? "index.js";
|
|
259
|
+
const file = new File([contents], filename, { type: "text" });
|
|
260
|
+
|
|
261
|
+
return [file];
|
|
262
262
|
}
|
|
263
263
|
}
|
package/src/cli.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import process from "process";
|
|
2
2
|
import { hideBin } from "yargs/helpers";
|
|
3
|
-
import { unstable_dev } from "./api";
|
|
3
|
+
import { unstable_dev, unstable_pages } from "./api";
|
|
4
4
|
import { FatalError } from "./errors";
|
|
5
5
|
import { main } from ".";
|
|
6
6
|
|
|
7
|
-
import type { UnstableDevWorker } from "./api";
|
|
7
|
+
import type { UnstableDevWorker, UnstableDevOptions } from "./api";
|
|
8
8
|
/**
|
|
9
9
|
* The main entrypoint for the CLI.
|
|
10
10
|
* main only gets called when the script is run directly, not when it's imported as a module.
|
|
@@ -24,5 +24,5 @@ if (typeof jest === "undefined" && require.main === module) {
|
|
|
24
24
|
* It makes it possible to import wrangler from 'wrangler',
|
|
25
25
|
* and call wrangler.unstable_dev().
|
|
26
26
|
*/
|
|
27
|
-
export { unstable_dev };
|
|
28
|
-
export type { UnstableDevWorker };
|
|
27
|
+
export { unstable_dev, unstable_pages };
|
|
28
|
+
export type { UnstableDevWorker, UnstableDevOptions };
|
package/src/config/config.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Environment, RawEnvironment } from "./environment";
|
|
2
|
+
import type { CamelCaseKey } from "yargs";
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* This is the static type definition for the configuration object.
|
|
@@ -17,7 +18,7 @@ import type { Environment, RawEnvironment } from "./environment";
|
|
|
17
18
|
*
|
|
18
19
|
* Legend for the annotations:
|
|
19
20
|
*
|
|
20
|
-
* - `@breaking`: the deprecation/optionality is a breaking change from
|
|
21
|
+
* - `@breaking`: the deprecation/optionality is a breaking change from Wrangler v1.
|
|
21
22
|
* - `@todo`: there's more work to be done (with details attached).
|
|
22
23
|
*/
|
|
23
24
|
export type Config = ConfigFields<DevConfig> & Environment;
|
|
@@ -31,7 +32,7 @@ export interface ConfigFields<Dev extends RawDevConfig> {
|
|
|
31
32
|
configPath: string | undefined;
|
|
32
33
|
|
|
33
34
|
/**
|
|
34
|
-
* A boolean to enable "legacy" style wrangler environments (from
|
|
35
|
+
* A boolean to enable "legacy" style wrangler environments (from Wrangler v1).
|
|
35
36
|
* These have been superseded by Services, but there may be projects that won't
|
|
36
37
|
* (or can't) use them. If you're using a legacy environment, you can set this
|
|
37
38
|
* to `true` to enable it.
|
|
@@ -95,7 +96,7 @@ export interface ConfigFields<Dev extends RawDevConfig> {
|
|
|
95
96
|
/**
|
|
96
97
|
* The location of your Worker script.
|
|
97
98
|
*
|
|
98
|
-
* @deprecated DO NOT use this (it's a holdover from
|
|
99
|
+
* @deprecated DO NOT use this (it's a holdover from Wrangler v1.x). Either use the top level `main` field, or pass the path to your entry file as a command line argument.
|
|
99
100
|
* @breaking
|
|
100
101
|
*/
|
|
101
102
|
"entry-point"?: string;
|
|
@@ -215,10 +216,10 @@ export interface DevConfig {
|
|
|
215
216
|
* Protocol that wrangler dev forwards requests on
|
|
216
217
|
*
|
|
217
218
|
* Setting this to `http` is not currently implemented.
|
|
218
|
-
* See https://github.com/cloudflare/
|
|
219
|
+
* See https://github.com/cloudflare/workers-sdk/issues/583
|
|
219
220
|
*
|
|
220
221
|
* @default `https`
|
|
221
|
-
* @todo this needs to be implemented https://github.com/cloudflare/
|
|
222
|
+
* @todo this needs to be implemented https://github.com/cloudflare/workers-sdk/issues/583
|
|
222
223
|
*/
|
|
223
224
|
upstream_protocol: "https" | "http";
|
|
224
225
|
|
|
@@ -232,7 +233,7 @@ export type RawDevConfig = Partial<DevConfig>;
|
|
|
232
233
|
|
|
233
234
|
export interface DeprecatedConfigFields {
|
|
234
235
|
/**
|
|
235
|
-
* The project "type". A holdover from
|
|
236
|
+
* The project "type". A holdover from Wrangler v1.x.
|
|
236
237
|
* Valid values were "webpack", "javascript", and "rust".
|
|
237
238
|
*
|
|
238
239
|
* @deprecated DO NOT USE THIS. Most common features now work out of the box with wrangler, including modules, jsx, typescript, etc. If you need anything more, use a custom build.
|
|
@@ -242,7 +243,7 @@ export interface DeprecatedConfigFields {
|
|
|
242
243
|
|
|
243
244
|
/**
|
|
244
245
|
* Path to the webpack config to use when building your worker.
|
|
245
|
-
* A holdover from
|
|
246
|
+
* A holdover from Wrangler v1.x, used with `type: "webpack"`.
|
|
246
247
|
*
|
|
247
248
|
* @deprecated DO NOT USE THIS. Most common features now work out of the box with wrangler, including modules, jsx, typescript, etc. If you need anything more, use a custom build.
|
|
248
249
|
* @breaking
|
|
@@ -273,3 +274,9 @@ interface EnvironmentMap {
|
|
|
273
274
|
[envName: string]: RawEnvironment;
|
|
274
275
|
};
|
|
275
276
|
}
|
|
277
|
+
|
|
278
|
+
// API dev only passes in camel-cased versions of keys, so ensure
|
|
279
|
+
// only camel-cased keys are used
|
|
280
|
+
export type OnlyCamelCase<T = Record<string, never>> = {
|
|
281
|
+
[key in keyof T as CamelCaseKey<key>]: T[key];
|
|
282
|
+
};
|
|
@@ -74,11 +74,17 @@ interface EnvironmentInheritable {
|
|
|
74
74
|
*/
|
|
75
75
|
main: string | undefined;
|
|
76
76
|
|
|
77
|
+
/**
|
|
78
|
+
* The directory in which module rules should be evaluated in a `--no-bundle` worker
|
|
79
|
+
* This defaults to dirname(main) when left undefined
|
|
80
|
+
*/
|
|
81
|
+
base_dir: string | undefined;
|
|
82
|
+
|
|
77
83
|
/**
|
|
78
84
|
* Whether we use <name>.<subdomain>.workers.dev to
|
|
79
85
|
* test and deploy your worker.
|
|
80
86
|
*
|
|
81
|
-
* @default `true` (This is a breaking change from
|
|
87
|
+
* @default `true` (This is a breaking change from Wrangler v1)
|
|
82
88
|
* @breaking
|
|
83
89
|
* @inheritable
|
|
84
90
|
*/
|
|
@@ -259,8 +265,26 @@ interface EnvironmentInheritable {
|
|
|
259
265
|
* @inheritable
|
|
260
266
|
*/
|
|
261
267
|
logpush: boolean | undefined;
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* Specify how the worker should be located to minimize round-trip time.
|
|
271
|
+
*
|
|
272
|
+
* More details: https://developers.cloudflare.com/workers/platform/smart-placement/
|
|
273
|
+
*/
|
|
274
|
+
placement: { mode: "off" | "smart" } | undefined;
|
|
262
275
|
}
|
|
263
276
|
|
|
277
|
+
export type DurableObjectBindings = {
|
|
278
|
+
/** The name of the binding used to refer to the Durable Object */
|
|
279
|
+
name: string;
|
|
280
|
+
/** The exported class name of the Durable Object */
|
|
281
|
+
class_name: string;
|
|
282
|
+
/** The script where the Durable Object is defined (if it's external to this worker) */
|
|
283
|
+
script_name?: string;
|
|
284
|
+
/** The service environment of the script_name to bind to */
|
|
285
|
+
environment?: string;
|
|
286
|
+
}[];
|
|
287
|
+
|
|
264
288
|
/**
|
|
265
289
|
* The `EnvironmentNonInheritable` interface declares all the configuration fields for an environment
|
|
266
290
|
* that cannot be inherited from the top-level environment, and must be defined specifically.
|
|
@@ -290,14 +314,6 @@ interface EnvironmentNonInheritable {
|
|
|
290
314
|
*/
|
|
291
315
|
vars: { [key: string]: unknown };
|
|
292
316
|
|
|
293
|
-
/**
|
|
294
|
-
* Specifies namespace binding that is bound to this Worker environment.
|
|
295
|
-
* It allows for access at runtime to the Workers metadata.
|
|
296
|
-
* @default `undefined`
|
|
297
|
-
* @nonInheritable
|
|
298
|
-
**/
|
|
299
|
-
metadata_binding: string | undefined;
|
|
300
|
-
|
|
301
317
|
/**
|
|
302
318
|
* A list of durable objects that your worker should be bound to.
|
|
303
319
|
*
|
|
@@ -311,16 +327,7 @@ interface EnvironmentNonInheritable {
|
|
|
311
327
|
* @nonInheritable
|
|
312
328
|
*/
|
|
313
329
|
durable_objects: {
|
|
314
|
-
bindings:
|
|
315
|
-
/** The name of the binding used to refer to the Durable Object */
|
|
316
|
-
name: string;
|
|
317
|
-
/** The exported class name of the Durable Object */
|
|
318
|
-
class_name: string;
|
|
319
|
-
/** The script where the Durable Object is defined (if it's external to this worker) */
|
|
320
|
-
script_name?: string;
|
|
321
|
-
/** The service environment of the script_name to bind to */
|
|
322
|
-
environment?: string;
|
|
323
|
-
}[];
|
|
330
|
+
bindings: DurableObjectBindings;
|
|
324
331
|
};
|
|
325
332
|
|
|
326
333
|
/**
|
|
@@ -345,6 +352,24 @@ interface EnvironmentNonInheritable {
|
|
|
345
352
|
preview_id?: string;
|
|
346
353
|
}[];
|
|
347
354
|
|
|
355
|
+
/**
|
|
356
|
+
* These specify bindings to send email from inside your Worker.
|
|
357
|
+
*
|
|
358
|
+
* NOTE: This field is not automatically inherited from the top level environment,
|
|
359
|
+
* and so must be specified in every named environment.
|
|
360
|
+
*
|
|
361
|
+
* @default `[]`
|
|
362
|
+
* @nonInheritable
|
|
363
|
+
*/
|
|
364
|
+
send_email: {
|
|
365
|
+
/** The binding name used to refer to the this binding */
|
|
366
|
+
name: string;
|
|
367
|
+
/** If this binding should be restricted to a specific verified address */
|
|
368
|
+
destination_address?: string;
|
|
369
|
+
/** If this binding should be restricted to a set of verified addresses */
|
|
370
|
+
allowed_destination_addresses?: string[];
|
|
371
|
+
}[];
|
|
372
|
+
|
|
348
373
|
/**
|
|
349
374
|
* Specifies Queues that are bound to this Worker environment.
|
|
350
375
|
*
|
|
@@ -380,6 +405,9 @@ interface EnvironmentNonInheritable {
|
|
|
380
405
|
|
|
381
406
|
/** The queue to send messages that failed to be consumed. */
|
|
382
407
|
dead_letter_queue?: string;
|
|
408
|
+
|
|
409
|
+
/** The maximum number of concurrent consumer Worker invocations. Leaving this unset will allow your consumer to scale to the maximum concurrency needed to keep up with the message backlog. */
|
|
410
|
+
max_concurrency?: number | null;
|
|
383
411
|
}[];
|
|
384
412
|
};
|
|
385
413
|
|
|
@@ -419,6 +447,28 @@ interface EnvironmentNonInheritable {
|
|
|
419
447
|
database_id: string;
|
|
420
448
|
/** The UUID of this D1 database for Wrangler Dev (if specified). */
|
|
421
449
|
preview_database_id?: string;
|
|
450
|
+
/** The name of the migrations table for this D1 database (defaults to 'd1_migrations'). */
|
|
451
|
+
migrations_table?: string;
|
|
452
|
+
/** The path to the directory of migrations for this D1 database (defaults to './migrations'). */
|
|
453
|
+
migrations_dir?: string;
|
|
454
|
+
/** Internal use only. */
|
|
455
|
+
database_internal_env?: string;
|
|
456
|
+
}[];
|
|
457
|
+
|
|
458
|
+
/**
|
|
459
|
+
* Specifies Constellation projects that are bound to this Worker environment.
|
|
460
|
+
*
|
|
461
|
+
* NOTE: This field is not automatically inherited from the top level environment,
|
|
462
|
+
* and so must be specified in every named environment.
|
|
463
|
+
*
|
|
464
|
+
* @default `[]`
|
|
465
|
+
* @nonInheritable
|
|
466
|
+
*/
|
|
467
|
+
constellation: {
|
|
468
|
+
/** The binding name used to refer to the project in the worker. */
|
|
469
|
+
binding: string;
|
|
470
|
+
/** The id of the project. */
|
|
471
|
+
project_id: string;
|
|
422
472
|
}[];
|
|
423
473
|
|
|
424
474
|
/**
|
|
@@ -441,13 +491,37 @@ interface EnvironmentNonInheritable {
|
|
|
441
491
|
}[]
|
|
442
492
|
| undefined;
|
|
443
493
|
|
|
494
|
+
/**
|
|
495
|
+
* Specifies analytics engine datasets that are bound to this Worker environment.
|
|
496
|
+
*
|
|
497
|
+
* NOTE: This field is not automatically inherited from the top level environment,
|
|
498
|
+
* and so must be specified in every named environment.
|
|
499
|
+
*
|
|
500
|
+
* @default `[]`
|
|
501
|
+
* @nonInheritable
|
|
502
|
+
*/
|
|
503
|
+
analytics_engine_datasets: {
|
|
504
|
+
/** The binding name used to refer to the dataset in the worker. */
|
|
505
|
+
binding: string;
|
|
506
|
+
/** The name of this dataset to write to. */
|
|
507
|
+
dataset?: string;
|
|
508
|
+
}[];
|
|
509
|
+
|
|
510
|
+
/**
|
|
511
|
+
* A browser that will be usable from the worker.
|
|
512
|
+
*/
|
|
513
|
+
browser:
|
|
514
|
+
| {
|
|
515
|
+
binding: string;
|
|
516
|
+
}
|
|
517
|
+
| undefined;
|
|
518
|
+
|
|
444
519
|
/**
|
|
445
520
|
* "Unsafe" tables for features that aren't directly supported by wrangler.
|
|
446
521
|
*
|
|
447
522
|
* NOTE: This field is not automatically inherited from the top level environment,
|
|
448
523
|
* and so must be specified in every named environment.
|
|
449
524
|
*
|
|
450
|
-
* @default `{ bindings: [] }`
|
|
451
525
|
* @nonInheritable
|
|
452
526
|
*/
|
|
453
527
|
unsafe: {
|
|
@@ -455,15 +529,30 @@ interface EnvironmentNonInheritable {
|
|
|
455
529
|
* A set of bindings that should be put into a Worker's upload metadata without changes. These
|
|
456
530
|
* can be used to implement bindings for features that haven't released and aren't supported
|
|
457
531
|
* directly by wrangler or miniflare.
|
|
458
|
-
*
|
|
459
|
-
* @default []
|
|
460
532
|
*/
|
|
461
|
-
bindings
|
|
533
|
+
bindings?: {
|
|
462
534
|
name: string;
|
|
463
535
|
type: string;
|
|
464
536
|
[key: string]: unknown;
|
|
465
537
|
}[];
|
|
538
|
+
|
|
539
|
+
/**
|
|
540
|
+
* Arbitrary key/value pairs that will be included in the uploaded metadata. Values specified
|
|
541
|
+
* here will always be applied to metadata last, so can add new or override existing fields.
|
|
542
|
+
*/
|
|
543
|
+
metadata?: {
|
|
544
|
+
[key: string]: string;
|
|
545
|
+
};
|
|
466
546
|
};
|
|
547
|
+
|
|
548
|
+
mtls_certificates: {
|
|
549
|
+
/** The binding name used to refer to the certificate in the worker */
|
|
550
|
+
binding: string;
|
|
551
|
+
/** The uuid of the uploaded mTLS certificate */
|
|
552
|
+
certificate_id: string;
|
|
553
|
+
}[];
|
|
554
|
+
|
|
555
|
+
tail_consumers?: TailConsumer[];
|
|
467
556
|
}
|
|
468
557
|
|
|
469
558
|
/**
|
|
@@ -481,7 +570,7 @@ interface EnvironmentDeprecated {
|
|
|
481
570
|
/**
|
|
482
571
|
* Legacy way of defining KVNamespaces that is no longer supported.
|
|
483
572
|
*
|
|
484
|
-
* @deprecated DO NOT USE. This was a legacy bug from
|
|
573
|
+
* @deprecated DO NOT USE. This was a legacy bug from Wrangler v1, that we do not want to support.
|
|
485
574
|
*/
|
|
486
575
|
"kv-namespaces"?: string;
|
|
487
576
|
|
|
@@ -561,3 +650,10 @@ export type ConfigModuleRuleType =
|
|
|
561
650
|
| "CompiledWasm"
|
|
562
651
|
| "Text"
|
|
563
652
|
| "Data";
|
|
653
|
+
|
|
654
|
+
export type TailConsumer = {
|
|
655
|
+
/** The name of the service tail events will be forwarded to. */
|
|
656
|
+
service: string;
|
|
657
|
+
/** (Optional) The environt of the service. */
|
|
658
|
+
environment?: string;
|
|
659
|
+
};
|