wrangler 0.0.0-e978986 → 0.0.0-e9e9872
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 +7 -1
- package/bin/wrangler.js +114 -57
- package/kv-asset-handler.js +1 -0
- package/miniflare-dist/index.mjs +10 -2
- package/package.json +159 -152
- package/src/__tests__/config-cache-without-cache-dir.test.ts +38 -0
- package/src/__tests__/config-cache.test.ts +30 -24
- package/src/__tests__/configuration.test.ts +3935 -3363
- package/src/__tests__/dev.test.tsx +1128 -949
- package/src/__tests__/guess-worker-format.test.ts +68 -68
- package/src/__tests__/helpers/cmd-shim.d.ts +6 -6
- package/src/__tests__/helpers/mock-account-id.ts +24 -24
- package/src/__tests__/helpers/mock-bin.ts +20 -20
- package/src/__tests__/helpers/mock-cfetch.ts +92 -92
- package/src/__tests__/helpers/mock-console.ts +49 -39
- package/src/__tests__/helpers/mock-dialogs.ts +94 -71
- package/src/__tests__/helpers/mock-http-server.ts +30 -30
- package/src/__tests__/helpers/mock-istty.ts +65 -18
- package/src/__tests__/helpers/mock-kv.ts +26 -26
- package/src/__tests__/helpers/mock-oauth-flow.ts +223 -228
- package/src/__tests__/helpers/mock-process.ts +39 -0
- package/src/__tests__/helpers/mock-stdin.ts +82 -77
- package/src/__tests__/helpers/mock-web-socket.ts +21 -21
- package/src/__tests__/helpers/run-in-tmp.ts +27 -28
- package/src/__tests__/helpers/run-wrangler.ts +8 -8
- package/src/__tests__/helpers/write-worker-source.ts +16 -16
- package/src/__tests__/helpers/write-wrangler-toml.ts +9 -9
- package/src/__tests__/https-options.test.ts +142 -109
- package/src/__tests__/index.test.ts +239 -233
- package/src/__tests__/init.test.ts +1605 -1180
- package/src/__tests__/jest.setup.ts +76 -33
- package/src/__tests__/kv.test.ts +1160 -991
- package/src/__tests__/logger.test.ts +100 -74
- package/src/__tests__/package-manager.test.ts +303 -303
- package/src/__tests__/pages.test.ts +1160 -563
- package/src/__tests__/parse.test.ts +252 -252
- package/src/__tests__/publish.test.ts +6426 -5299
- package/src/__tests__/pubsub.test.ts +367 -0
- package/src/__tests__/r2.test.ts +133 -133
- package/src/__tests__/route.test.ts +18 -18
- package/src/__tests__/secret.test.ts +470 -459
- package/src/__tests__/tail.test.ts +538 -530
- package/src/__tests__/user.test.ts +124 -112
- package/src/__tests__/whoami.test.tsx +208 -83
- package/src/__tests__/worker-namespace.test.ts +327 -0
- package/src/abort.d.ts +1 -1
- package/src/api/dev.ts +52 -0
- package/src/api/index.ts +1 -0
- package/src/bundle-reporter.tsx +29 -0
- package/src/bundle.ts +158 -146
- package/src/cfetch/index.ts +80 -80
- package/src/cfetch/internal.ts +92 -88
- package/src/cli.ts +21 -7
- package/src/config/config.ts +204 -195
- package/src/config/diagnostics.ts +61 -61
- package/src/config/environment.ts +390 -357
- package/src/config/index.ts +206 -193
- package/src/config/validation-helpers.ts +366 -357
- package/src/config/validation.ts +1573 -1367
- package/src/config-cache.ts +79 -41
- package/src/create-worker-preview.ts +206 -136
- package/src/create-worker-upload-form.ts +247 -238
- package/src/dev/dev-vars.ts +13 -13
- package/src/dev/dev.tsx +334 -336
- package/src/dev/local.tsx +310 -274
- package/src/dev/remote.tsx +366 -211
- package/src/dev/use-esbuild.ts +126 -94
- package/src/dev.tsx +538 -0
- package/src/dialogs.tsx +97 -97
- package/src/durable.ts +87 -87
- package/src/entry.ts +234 -228
- package/src/environment-variables.ts +23 -23
- package/src/errors.ts +6 -6
- package/src/faye-websocket.d.ts +6 -0
- package/src/generate.ts +33 -0
- package/src/git-client.ts +42 -0
- package/src/global-wrangler-config-path.ts +26 -0
- package/src/https-options.ts +84 -80
- package/src/index.tsx +1800 -2752
- package/src/init.ts +549 -0
- package/src/inspect.ts +593 -593
- package/src/intl-polyfill.d.ts +123 -123
- package/src/is-interactive.ts +12 -0
- package/src/kv.ts +299 -277
- package/src/logger.ts +46 -39
- package/src/miniflare-cli/enum-keys.ts +8 -8
- package/src/miniflare-cli/index.ts +43 -31
- package/src/miniflare-cli/request-context.ts +18 -18
- package/src/module-collection.ts +212 -212
- package/src/open-in-browser.ts +4 -6
- package/src/package-manager.ts +173 -128
- package/src/pages/build.tsx +202 -0
- package/src/pages/constants.ts +7 -0
- package/src/pages/deployments.tsx +101 -0
- package/src/pages/dev.tsx +964 -0
- package/src/pages/functions/buildPlugin.ts +105 -0
- package/src/pages/functions/buildWorker.ts +151 -0
- package/{pages → src/pages}/functions/filepath-routing.test.ts +113 -113
- package/src/pages/functions/filepath-routing.ts +189 -0
- package/src/pages/functions/identifiers.ts +78 -0
- package/src/pages/functions/routes.ts +151 -0
- package/src/pages/index.tsx +84 -0
- package/src/pages/projects.tsx +157 -0
- package/src/pages/publish.tsx +335 -0
- package/src/pages/types.ts +40 -0
- package/src/pages/upload.tsx +396 -0
- package/src/pages/utils.ts +12 -0
- package/src/parse.ts +209 -125
- package/src/paths.ts +6 -6
- package/src/preview.ts +31 -0
- package/src/proxy.ts +400 -389
- package/src/publish.ts +702 -505
- package/src/pubsub/index.ts +286 -0
- package/src/pubsub/pubsub-commands.tsx +577 -0
- package/src/r2.ts +19 -19
- package/src/selfsigned.d.ts +23 -23
- package/src/sites.tsx +278 -201
- package/src/tail/filters.ts +108 -108
- package/src/tail/index.ts +217 -217
- package/src/tail/printing.ts +45 -45
- package/src/update-check.ts +11 -11
- package/src/user/choose-account.tsx +60 -0
- package/src/user/env-vars.ts +46 -0
- package/src/user/generate-auth-url.ts +33 -0
- package/src/user/generate-random-state.ts +16 -0
- package/src/user/index.ts +3 -0
- package/src/user/user.tsx +1170 -0
- package/src/whoami.tsx +61 -41
- package/src/worker-namespace.ts +190 -0
- package/src/worker.ts +110 -99
- package/src/zones.ts +76 -0
- package/templates/checked-fetch.js +17 -0
- package/templates/new-worker-scheduled.js +4 -4
- package/templates/new-worker-scheduled.ts +16 -16
- package/templates/new-worker.js +3 -3
- package/templates/new-worker.ts +15 -15
- package/templates/no-op-worker.js +10 -0
- package/templates/pages-template-plugin.ts +155 -0
- package/templates/pages-template-worker.ts +161 -0
- package/templates/static-asset-facade.js +38 -36
- package/templates/tsconfig.json +95 -95
- package/wrangler-dist/cli.d.ts +298 -0
- package/wrangler-dist/cli.js +33496 -31370
- package/pages/functions/buildPlugin.ts +0 -105
- package/pages/functions/buildWorker.ts +0 -151
- package/pages/functions/filepath-routing.ts +0 -189
- package/pages/functions/identifiers.ts +0 -78
- package/pages/functions/routes.ts +0 -156
- package/pages/functions/template-plugin.ts +0 -147
- package/pages/functions/template-worker.ts +0 -143
- package/src/__tests__/helpers/faye-websocket.d.ts +0 -6
- package/src/pages.tsx +0 -2027
- package/src/user.tsx +0 -1203
- package/vendor/@cloudflare/kv-asset-handler/CHANGELOG.md +0 -332
- package/vendor/@cloudflare/kv-asset-handler/LICENSE_APACHE +0 -176
- package/vendor/@cloudflare/kv-asset-handler/LICENSE_MIT +0 -25
- package/vendor/@cloudflare/kv-asset-handler/README.md +0 -245
- package/vendor/@cloudflare/kv-asset-handler/dist/index.d.ts +0 -32
- package/vendor/@cloudflare/kv-asset-handler/dist/index.js +0 -354
- package/vendor/@cloudflare/kv-asset-handler/dist/mocks.d.ts +0 -13
- package/vendor/@cloudflare/kv-asset-handler/dist/mocks.js +0 -148
- package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.d.ts +0 -1
- package/vendor/@cloudflare/kv-asset-handler/dist/test/getAssetFromKV.js +0 -436
- package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.d.ts +0 -1
- package/vendor/@cloudflare/kv-asset-handler/dist/test/mapRequestToAsset.js +0 -40
- package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.d.ts +0 -1
- package/vendor/@cloudflare/kv-asset-handler/dist/test/serveSinglePageApp.js +0 -42
- package/vendor/@cloudflare/kv-asset-handler/dist/types.d.ts +0 -26
- package/vendor/@cloudflare/kv-asset-handler/dist/types.js +0 -31
- package/vendor/@cloudflare/kv-asset-handler/package.json +0 -52
- package/vendor/@cloudflare/kv-asset-handler/src/index.ts +0 -296
- package/vendor/@cloudflare/kv-asset-handler/src/mocks.ts +0 -136
- package/vendor/@cloudflare/kv-asset-handler/src/test/getAssetFromKV.ts +0 -464
- package/vendor/@cloudflare/kv-asset-handler/src/test/mapRequestToAsset.ts +0 -33
- package/vendor/@cloudflare/kv-asset-handler/src/test/serveSinglePageApp.ts +0 -42
- package/vendor/@cloudflare/kv-asset-handler/src/types.ts +0 -39
- package/vendor/wrangler-mime/CHANGELOG.md +0 -289
- package/vendor/wrangler-mime/LICENSE +0 -21
- package/vendor/wrangler-mime/Mime.js +0 -97
- package/vendor/wrangler-mime/README.md +0 -187
- package/vendor/wrangler-mime/cli.js +0 -46
- package/vendor/wrangler-mime/index.js +0 -4
- package/vendor/wrangler-mime/lite.js +0 -4
- package/vendor/wrangler-mime/package.json +0 -52
- package/vendor/wrangler-mime/types/other.js +0 -1
- package/vendor/wrangler-mime/types/standard.js +0 -1
package/src/logger.ts
CHANGED
|
@@ -1,59 +1,66 @@
|
|
|
1
1
|
import { format } from "node:util";
|
|
2
2
|
import { formatMessagesSync } from "esbuild";
|
|
3
|
+
import { getEnvironmentVariableFactory } from "./environment-variables";
|
|
3
4
|
|
|
4
5
|
const LOGGER_LEVELS = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
error: 0,
|
|
7
|
+
warn: 1,
|
|
8
|
+
log: 2,
|
|
9
|
+
debug: 3,
|
|
9
10
|
} as const;
|
|
10
11
|
|
|
11
12
|
type LoggerLevel = keyof typeof LOGGER_LEVELS;
|
|
12
13
|
|
|
13
14
|
/** A map from LOGGER_LEVEL to the error `kind` needed by `formatMessagesSync()`. */
|
|
14
15
|
const LOGGER_LEVEL_FORMAT_TYPE_MAP = {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
error: "error",
|
|
17
|
+
warn: "warning",
|
|
18
|
+
log: undefined,
|
|
19
|
+
debug: undefined,
|
|
19
20
|
} as const;
|
|
20
21
|
|
|
22
|
+
const getLogLevelFromEnv = getEnvironmentVariableFactory({
|
|
23
|
+
variableName: "WRANGLER_LOG",
|
|
24
|
+
defaultValue: "log",
|
|
25
|
+
});
|
|
26
|
+
|
|
21
27
|
class Logger {
|
|
22
|
-
|
|
28
|
+
constructor() {}
|
|
23
29
|
|
|
24
|
-
|
|
30
|
+
loggerLevel: LoggerLevel = (getLogLevelFromEnv() as LoggerLevel) ?? "log";
|
|
31
|
+
columns = process.stdout.columns;
|
|
25
32
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
33
|
+
debug = (...args: unknown[]) => this.doLog("debug", args);
|
|
34
|
+
log = (...args: unknown[]) => this.doLog("log", args);
|
|
35
|
+
warn = (...args: unknown[]) => this.doLog("warn", args);
|
|
36
|
+
error = (...args: unknown[]) => this.doLog("error", args);
|
|
30
37
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
38
|
+
private doLog(messageLevel: LoggerLevel, args: unknown[]) {
|
|
39
|
+
if (LOGGER_LEVELS[this.loggerLevel] >= LOGGER_LEVELS[messageLevel]) {
|
|
40
|
+
console[messageLevel](this.formatMessage(messageLevel, format(...args)));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
36
43
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
44
|
+
private formatMessage(level: LoggerLevel, message: string): string {
|
|
45
|
+
const kind = LOGGER_LEVEL_FORMAT_TYPE_MAP[level];
|
|
46
|
+
if (kind) {
|
|
47
|
+
// Format the message using the esbuild formatter.
|
|
48
|
+
// The first line of the message is the main `text`,
|
|
49
|
+
// subsequent lines are put into the `notes`.
|
|
50
|
+
const [firstLine, ...otherLines] = message.split("\n");
|
|
51
|
+
const notes =
|
|
52
|
+
otherLines.length > 0
|
|
53
|
+
? otherLines.map((text) => ({ text }))
|
|
54
|
+
: undefined;
|
|
55
|
+
return formatMessagesSync([{ text: firstLine, notes }], {
|
|
56
|
+
color: true,
|
|
57
|
+
kind,
|
|
58
|
+
terminalWidth: this.columns,
|
|
59
|
+
})[0];
|
|
60
|
+
} else {
|
|
61
|
+
return message;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
57
64
|
}
|
|
58
65
|
|
|
59
66
|
/**
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
export type EnumKeys<Enum> = Exclude<keyof Enum, number>;
|
|
2
2
|
|
|
3
3
|
export const enumObject = <Enum extends Record<string, number | string>>(
|
|
4
|
-
|
|
4
|
+
e: Enum
|
|
5
5
|
) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
const copy = { ...e } as { [K in EnumKeys<Enum>]: Enum[K] };
|
|
7
|
+
Object.values(e).forEach(
|
|
8
|
+
(value) => typeof value === "number" && delete copy[value]
|
|
9
|
+
);
|
|
10
|
+
return copy;
|
|
11
11
|
};
|
|
12
12
|
|
|
13
13
|
export const enumKeys = <Enum extends Record<string, number | string>>(
|
|
14
|
-
|
|
14
|
+
e: Enum
|
|
15
15
|
) => {
|
|
16
|
-
|
|
16
|
+
return Object.keys(enumObject(e)) as EnumKeys<Enum>[];
|
|
17
17
|
};
|
|
@@ -4,38 +4,50 @@ import { hideBin } from "yargs/helpers";
|
|
|
4
4
|
import { enumKeys } from "./enum-keys";
|
|
5
5
|
import { getRequestContextCheckOptions } from "./request-context";
|
|
6
6
|
|
|
7
|
+
// miniflare defines this but importing it throws:
|
|
8
|
+
// Dynamic require of "path" is not supported
|
|
9
|
+
class NoOpLog extends Log {
|
|
10
|
+
log(): void {}
|
|
11
|
+
|
|
12
|
+
error(message: Error): void {
|
|
13
|
+
throw message;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
7
17
|
async function main() {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
18
|
+
const args = await yargs(hideBin(process.argv))
|
|
19
|
+
.help(false)
|
|
20
|
+
.version(false)
|
|
21
|
+
.option("log", {
|
|
22
|
+
choices: enumKeys(LogLevel),
|
|
23
|
+
}).argv;
|
|
24
|
+
|
|
25
|
+
const logLevel = LogLevel[args.log ?? "INFO"];
|
|
26
|
+
const requestContextCheckOptions = await getRequestContextCheckOptions();
|
|
27
|
+
const config = {
|
|
28
|
+
...JSON.parse((args._[0] as string) ?? "{}"),
|
|
29
|
+
...requestContextCheckOptions,
|
|
30
|
+
};
|
|
31
|
+
//miniflare's logLevel 0 still logs routes, so lets override the logger
|
|
32
|
+
config.log = config.disableLogs ? new NoOpLog() : new Log(logLevel);
|
|
33
|
+
|
|
34
|
+
if (logLevel > LogLevel.INFO) {
|
|
35
|
+
console.log("OPTIONS:\n", JSON.stringify(config, null, 2));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const mf = new Miniflare(config);
|
|
39
|
+
|
|
40
|
+
try {
|
|
41
|
+
// Start Miniflare development server
|
|
42
|
+
await mf.startServer();
|
|
43
|
+
await mf.startScheduler();
|
|
44
|
+
process.send && process.send("ready");
|
|
45
|
+
} catch (e) {
|
|
46
|
+
mf.log.error(e as Error);
|
|
47
|
+
process.exitCode = 1;
|
|
48
|
+
// Unmount any mounted workers
|
|
49
|
+
await mf.dispose();
|
|
50
|
+
}
|
|
39
51
|
}
|
|
40
52
|
|
|
41
53
|
await main();
|
|
@@ -16,25 +16,25 @@ import type { MiniflareOptions } from "miniflare";
|
|
|
16
16
|
* that indicate to miniflare whether to run the checks or not.
|
|
17
17
|
*/
|
|
18
18
|
export const getRequestContextCheckOptions = async (): Promise<
|
|
19
|
-
|
|
19
|
+
Pick<MiniflareOptions, "globalAsyncIO" | "globalTimers" | "globalRandom">
|
|
20
20
|
> => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
// check that there's an implementation of AsyncLocalStorage
|
|
22
|
+
let hasAsyncLocalStorage = true;
|
|
23
|
+
try {
|
|
24
|
+
// ripped from the example here https://nodejs.org/api/async_context.html#class-asynclocalstorage
|
|
25
|
+
const { AsyncLocalStorage } = await import("node:async_hooks");
|
|
26
|
+
const storage = new AsyncLocalStorage<string>();
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
hasAsyncLocalStorage = storage.run("some-value", () => {
|
|
29
|
+
return storage.getStore() === "some-value";
|
|
30
|
+
});
|
|
31
|
+
} catch (e) {
|
|
32
|
+
hasAsyncLocalStorage = false;
|
|
33
|
+
}
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
return {
|
|
36
|
+
globalAsyncIO: hasAsyncLocalStorage,
|
|
37
|
+
globalRandom: hasAsyncLocalStorage,
|
|
38
|
+
globalTimers: hasAsyncLocalStorage,
|
|
39
|
+
};
|
|
40
40
|
};
|