wrangler 2.0.15 → 2.0.18
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 +92 -92
- package/miniflare-dist/index.mjs +10 -2
- package/package.json +159 -155
- 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 -3537
- package/src/__tests__/dev.test.tsx +1128 -1024
- 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 +91 -91
- package/src/__tests__/helpers/mock-console.ts +42 -42
- package/src/__tests__/helpers/mock-dialogs.ts +94 -94
- package/src/__tests__/helpers/mock-http-server.ts +30 -30
- package/src/__tests__/helpers/mock-istty.ts +65 -23
- package/src/__tests__/helpers/mock-kv.ts +26 -26
- package/src/__tests__/helpers/mock-oauth-flow.ts +214 -214
- package/src/__tests__/helpers/mock-process.ts +27 -27
- package/src/__tests__/helpers/mock-stdin.ts +81 -81
- 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 -235
- package/src/__tests__/init.test.ts +1558 -1558
- package/src/__tests__/jest.setup.ts +69 -56
- package/src/__tests__/kv.test.ts +1126 -1095
- package/src/__tests__/logger.test.ts +96 -96
- package/src/__tests__/package-manager.test.ts +303 -303
- package/src/__tests__/pages.test.ts +1123 -1104
- package/src/__tests__/parse.test.ts +252 -252
- package/src/__tests__/publish.test.ts +6383 -5976
- 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 +465 -459
- package/src/__tests__/tail.test.ts +538 -530
- package/src/__tests__/user.test.ts +123 -112
- package/src/__tests__/whoami.test.tsx +208 -117
- 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 +15 -15
- package/src/bundle.ts +157 -149
- package/src/cfetch/index.ts +80 -80
- package/src/cfetch/internal.ts +89 -82
- package/src/cli.ts +21 -7
- package/src/config/config.ts +204 -204
- 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 -366
- package/src/config/validation.ts +1566 -1401
- package/src/config-cache.ts +79 -40
- 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 +329 -311
- package/src/dev/local.tsx +310 -277
- package/src/dev/remote.tsx +347 -247
- package/src/dev/use-esbuild.ts +126 -88
- package/src/dev.tsx +538 -0
- package/src/dialogs.tsx +97 -97
- package/src/durable.ts +87 -87
- package/src/entry.ts +234 -234
- 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 +18 -18
- package/src/global-wrangler-config-path.ts +26 -0
- package/src/https-options.ts +84 -80
- package/src/index.tsx +1797 -2809
- 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 +298 -276
- package/src/logger.ts +42 -42
- 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 -4
- package/src/package-manager.ts +173 -128
- package/src/pages/build.tsx +166 -166
- package/src/pages/deployments.tsx +67 -67
- package/src/pages/dev.tsx +878 -862
- package/src/pages/functions/buildPlugin.ts +87 -87
- package/src/pages/functions/buildWorker.ts +124 -124
- package/src/pages/functions/filepath-routing.test.ts +110 -110
- package/src/pages/functions/filepath-routing.ts +162 -162
- package/src/pages/functions/identifiers.ts +60 -60
- package/src/pages/functions/routes.ts +105 -105
- package/src/pages/index.tsx +66 -66
- package/src/pages/projects.tsx +113 -113
- package/src/pages/publish.tsx +303 -293
- package/src/pages/types.ts +31 -31
- package/src/pages/upload.tsx +358 -325
- package/src/pages/utils.ts +3 -3
- package/src/parse.ts +202 -138
- package/src/paths.ts +6 -6
- package/src/preview.ts +31 -0
- package/src/proxy.ts +400 -400
- package/src/publish.ts +672 -631
- 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 +256 -256
- 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 +38 -38
- package/src/user/env-vars.ts +36 -7
- package/src/user/generate-auth-url.ts +23 -23
- package/src/user/generate-random-state.ts +6 -6
- package/src/user/user.tsx +671 -634
- package/src/whoami.tsx +61 -42
- package/src/worker-namespace.ts +190 -0
- package/src/worker.ts +110 -100
- package/src/zones.ts +39 -36
- package/templates/checked-fetch.js +17 -0
- package/templates/new-worker-scheduled.js +3 -3
- package/templates/new-worker-scheduled.ts +15 -15
- package/templates/new-worker.js +3 -3
- package/templates/new-worker.ts +15 -15
- package/templates/no-op-worker.js +8 -8
- package/templates/pages-template-plugin.ts +123 -123
- package/templates/pages-template-worker.ts +124 -124
- package/templates/static-asset-facade.js +38 -32
- package/templates/tsconfig.json +95 -95
- package/wrangler-dist/cli.d.ts +298 -0
- package/wrangler-dist/cli.js +42177 -40578
- package/src/__tests__/helpers/faye-websocket.d.ts +0 -6
package/README.md
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
<h1 align="center"> ⛅️ wrangler </h1>
|
|
2
|
+
<section align="center" id="shieldio-badges">
|
|
3
|
+
<a href="https://www.npmjs.com/package/wrangler"><img alt="npm" src="https://img.shields.io/npm/dw/wrangler?style=flat-square"></a>
|
|
4
|
+
<img alt="GitHub contributors" src="https://img.shields.io/github/contributors/cloudflare/wrangler2?style=flat-square">
|
|
5
|
+
<img alt="GitHub commit activity (branch)" src="https://img.shields.io/github/commit-activity/w/cloudflare/wrangler2/main?style=flat-square">
|
|
6
|
+
<a href="https://discord.gg/CloudflareDev"><img alt="Discord" src="https://img.shields.io/discord/595317990191398933?color=%23F48120&style=flat-square"></a>
|
|
7
|
+
</section>
|
|
2
8
|
|
|
3
9
|
> This package is for wrangler v2.x, released first in May 2022. If you're looking for v1.x of the `@cloudflare/wrangler` package, visit https://www.npmjs.com/package/@cloudflare/wrangler / https://github.com/cloudflare/wrangler.
|
|
4
10
|
|
package/bin/wrangler.js
CHANGED
|
@@ -6,6 +6,10 @@ const os = require("os");
|
|
|
6
6
|
const semiver = require("semiver");
|
|
7
7
|
|
|
8
8
|
const MIN_NODE_VERSION = "16.7.0";
|
|
9
|
+
const debug =
|
|
10
|
+
process.env["WRANGLER_LOG"] === "debug"
|
|
11
|
+
? (...args) => console.log(...args)
|
|
12
|
+
: () => {};
|
|
9
13
|
|
|
10
14
|
let wranglerProcess;
|
|
11
15
|
|
|
@@ -13,64 +17,61 @@ let wranglerProcess;
|
|
|
13
17
|
* Executes ../wrangler-dist/cli.js
|
|
14
18
|
*/
|
|
15
19
|
function runWrangler() {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
if (semiver(process.versions.node, MIN_NODE_VERSION) < 0) {
|
|
21
|
+
// Note Volta and nvm are also recommended in the official docs:
|
|
22
|
+
// https://developers.cloudflare.com/workers/get-started/guide#2-install-the-workers-cli
|
|
23
|
+
console.error(
|
|
24
|
+
`Wrangler requires at least Node.js v${MIN_NODE_VERSION}. You are using v${process.versions.node}.
|
|
21
25
|
You should use the latest Node.js version if possible, as Cloudflare Workers use a very up-to-date version of V8.
|
|
22
26
|
Consider using a Node.js version manager such as https://volta.sh/ or https://github.com/nvm-sh/nvm.`
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
);
|
|
28
|
+
process.exitCode = 1;
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
27
31
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
32
|
+
let pathToCACerts = process.env.NODE_EXTRA_CA_CERTS;
|
|
33
|
+
if (pathToCACerts) {
|
|
34
|
+
// TODO:
|
|
35
|
+
// - should we log a warning here?
|
|
36
|
+
// - maybe we can generate a certificate that concatenates with ours?
|
|
37
|
+
//
|
|
38
|
+
// I do think it'll be rare that someone wants to add a cert AND
|
|
39
|
+
// use cloudflare WARP, but let's wait till the situation actually
|
|
40
|
+
// arises before we do anything about it
|
|
41
|
+
} else {
|
|
42
|
+
const osTempDir = os.tmpdir();
|
|
43
|
+
const certDir = path.join(osTempDir, "wrangler-cert");
|
|
44
|
+
const certPath = path.join(certDir, "Cloudflare_CA.pem");
|
|
45
|
+
// copy cert to the system temp dir if needed
|
|
46
|
+
if (!fs.existsSync(certPath)) {
|
|
47
|
+
fs.mkdirSync(certDir, { recursive: true });
|
|
48
|
+
fs.writeFileSync(
|
|
49
|
+
certPath,
|
|
50
|
+
fs.readFileSync(path.join(__dirname, "../Cloudflare_CA.pem"), "utf-8")
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
pathToCACerts = certPath;
|
|
54
|
+
}
|
|
51
55
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
).on("exit", (code) =>
|
|
72
|
-
process.exit(code === undefined || code === null ? 0 : code)
|
|
73
|
-
);
|
|
56
|
+
return spawn(
|
|
57
|
+
process.execPath,
|
|
58
|
+
[
|
|
59
|
+
"--no-warnings",
|
|
60
|
+
"--experimental-vm-modules",
|
|
61
|
+
...process.execArgv,
|
|
62
|
+
path.join(__dirname, "../wrangler-dist/cli.js"),
|
|
63
|
+
...process.argv.slice(2),
|
|
64
|
+
],
|
|
65
|
+
{
|
|
66
|
+
stdio: "inherit",
|
|
67
|
+
env: {
|
|
68
|
+
...process.env,
|
|
69
|
+
NODE_EXTRA_CA_CERTS: pathToCACerts,
|
|
70
|
+
},
|
|
71
|
+
}
|
|
72
|
+
).on("exit", (code) =>
|
|
73
|
+
process.exit(code === undefined || code === null ? 0 : code)
|
|
74
|
+
);
|
|
74
75
|
}
|
|
75
76
|
|
|
76
77
|
/**
|
|
@@ -78,29 +79,28 @@ Consider using a Node.js version manager such as https://volta.sh/ or https://gi
|
|
|
78
79
|
* @throws {MODULE_NOT_FOUND} if there isn't a locally installed version of wrangler.
|
|
79
80
|
*/
|
|
80
81
|
function runDelegatedWrangler() {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
82
|
+
const packageJsonPath = require.resolve("wrangler/package.json", {
|
|
83
|
+
paths: [process.cwd()],
|
|
84
|
+
});
|
|
85
|
+
const {
|
|
86
|
+
bin: { wrangler: binaryPath },
|
|
87
|
+
version,
|
|
88
|
+
} = JSON.parse(fs.readFileSync(packageJsonPath));
|
|
89
|
+
const resolvedBinaryPath = path.resolve(packageJsonPath, "..", binaryPath);
|
|
89
90
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
);
|
|
91
|
+
debug(`Delegating to locally-installed version of wrangler @ v${version}`);
|
|
92
|
+
|
|
93
|
+
// this call to `spawn` is simpler because the delegated version will do all
|
|
94
|
+
// of the other work.
|
|
95
|
+
return spawn(
|
|
96
|
+
process.execPath,
|
|
97
|
+
[resolvedBinaryPath, ...process.argv.slice(2)],
|
|
98
|
+
{
|
|
99
|
+
stdio: "inherit",
|
|
100
|
+
}
|
|
101
|
+
).on("exit", (code) =>
|
|
102
|
+
process.exit(code === undefined || code === null ? 0 : code)
|
|
103
|
+
);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
/**
|
|
@@ -108,30 +108,30 @@ function runDelegatedWrangler() {
|
|
|
108
108
|
* to a locally-installed version.
|
|
109
109
|
*/
|
|
110
110
|
function shouldDelegate() {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
111
|
+
try {
|
|
112
|
+
// `require.resolve` will throw if it can't find
|
|
113
|
+
// a locally-installed version of `wrangler`
|
|
114
|
+
const delegatedPackageJson = require.resolve("wrangler/package.json", {
|
|
115
|
+
paths: [process.cwd()],
|
|
116
|
+
});
|
|
117
|
+
const thisPackageJson = path.resolve(__dirname, "..", "package.json");
|
|
118
|
+
// if it's the same path, then we're already a local install -- no need to delegate
|
|
119
|
+
return thisPackageJson !== delegatedPackageJson;
|
|
120
|
+
} catch (e) {
|
|
121
|
+
// there's no local version to delegate to -- `require.resolve` threw
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
async function main() {
|
|
127
|
-
|
|
127
|
+
wranglerProcess = shouldDelegate() ? runDelegatedWrangler() : runWrangler();
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
process.on("SIGINT", () => {
|
|
131
|
-
|
|
131
|
+
wranglerProcess?.kill();
|
|
132
132
|
});
|
|
133
133
|
process.on("SIGTERM", () => {
|
|
134
|
-
|
|
134
|
+
wranglerProcess?.kill();
|
|
135
135
|
});
|
|
136
136
|
|
|
137
137
|
void main();
|
package/miniflare-dist/index.mjs
CHANGED
|
@@ -4846,6 +4846,13 @@ var getRequestContextCheckOptions = async () => {
|
|
|
4846
4846
|
};
|
|
4847
4847
|
|
|
4848
4848
|
// src/miniflare-cli/index.ts
|
|
4849
|
+
var NoOpLog = class extends Log {
|
|
4850
|
+
log() {
|
|
4851
|
+
}
|
|
4852
|
+
error(message) {
|
|
4853
|
+
throw message;
|
|
4854
|
+
}
|
|
4855
|
+
};
|
|
4849
4856
|
async function main() {
|
|
4850
4857
|
const args = await yargs_default(hideBin(process.argv)).help(false).version(false).option("log", {
|
|
4851
4858
|
choices: enumKeys(LogLevel)
|
|
@@ -4854,9 +4861,9 @@ async function main() {
|
|
|
4854
4861
|
const requestContextCheckOptions = await getRequestContextCheckOptions();
|
|
4855
4862
|
const config = {
|
|
4856
4863
|
...JSON.parse(args._[0] ?? "{}"),
|
|
4857
|
-
...requestContextCheckOptions
|
|
4858
|
-
log: new Log(logLevel)
|
|
4864
|
+
...requestContextCheckOptions
|
|
4859
4865
|
};
|
|
4866
|
+
config.log = config.disableLogs ? new NoOpLog() : new Log(logLevel);
|
|
4860
4867
|
if (logLevel > LogLevel.INFO) {
|
|
4861
4868
|
console.log("OPTIONS:\n", JSON.stringify(config, null, 2));
|
|
4862
4869
|
}
|
|
@@ -4864,6 +4871,7 @@ async function main() {
|
|
|
4864
4871
|
try {
|
|
4865
4872
|
await mf.startServer();
|
|
4866
4873
|
await mf.startScheduler();
|
|
4874
|
+
process.send && process.send("ready");
|
|
4867
4875
|
} catch (e) {
|
|
4868
4876
|
mf.log.error(e);
|
|
4869
4877
|
process.exitCode = 1;
|
package/package.json
CHANGED
|
@@ -1,157 +1,161 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
2
|
+
"name": "wrangler",
|
|
3
|
+
"version": "2.0.18",
|
|
4
|
+
"description": "Command-line interface for all things Cloudflare Workers",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"wrangler",
|
|
7
|
+
"cloudflare",
|
|
8
|
+
"workers",
|
|
9
|
+
"cloudflare workers",
|
|
10
|
+
"edge",
|
|
11
|
+
"compute",
|
|
12
|
+
"serverless",
|
|
13
|
+
"serverless application",
|
|
14
|
+
"serverless module",
|
|
15
|
+
"wasm",
|
|
16
|
+
"web",
|
|
17
|
+
"assembly",
|
|
18
|
+
"webassembly",
|
|
19
|
+
"rust",
|
|
20
|
+
"emscripten",
|
|
21
|
+
"typescript",
|
|
22
|
+
"graphql",
|
|
23
|
+
"router",
|
|
24
|
+
"http",
|
|
25
|
+
"cli"
|
|
26
|
+
],
|
|
27
|
+
"homepage": "https://github.com/cloudflare/wrangler2#readme",
|
|
28
|
+
"bugs": {
|
|
29
|
+
"url": "https://github.com/cloudflare/wrangler2/issues"
|
|
30
|
+
},
|
|
31
|
+
"license": "MIT OR Apache-2.0",
|
|
32
|
+
"author": "wrangler@cloudflare.com",
|
|
33
|
+
"main": "wrangler-dist/cli.js",
|
|
34
|
+
"types": "wrangler-dist/cli.d.ts",
|
|
35
|
+
"bin": {
|
|
36
|
+
"wrangler": "./bin/wrangler.js",
|
|
37
|
+
"wrangler2": "./bin/wrangler.js"
|
|
38
|
+
},
|
|
39
|
+
"files": [
|
|
40
|
+
"src",
|
|
41
|
+
"bin",
|
|
42
|
+
"miniflare-config-stubs",
|
|
43
|
+
"miniflare-dist",
|
|
44
|
+
"wrangler-dist",
|
|
45
|
+
"templates",
|
|
46
|
+
"vendor",
|
|
47
|
+
"import_meta_url.js",
|
|
48
|
+
"kv-asset-handler.js",
|
|
49
|
+
"Cloudflare_CA.pem"
|
|
50
|
+
],
|
|
51
|
+
"scripts": {
|
|
52
|
+
"build": "npm run clean && npm run bundle && npm run emit-types",
|
|
53
|
+
"bundle": "node -r esbuild-register scripts/bundle.ts",
|
|
54
|
+
"check:type": "tsc",
|
|
55
|
+
"clean": "rm -rf wrangler-dist miniflare-dist emitted-types",
|
|
56
|
+
"dev": "npm run clean && concurrently -c black,blue 'npm run bundle -- --watch' 'npm run check:type -- --watch --preserveWatchOutput'",
|
|
57
|
+
"emit-types": "tsc -p tsconfig.emit.json && node -r esbuild-register scripts/emit-types.ts",
|
|
58
|
+
"prepublishOnly": "SOURCEMAPS=false npm run build",
|
|
59
|
+
"start": "npm run bundle && NODE_OPTIONS=--enable-source-maps ./bin/wrangler.js",
|
|
60
|
+
"test": "jest --silent=false --verbose=true",
|
|
61
|
+
"test-watch": "npm run test -- --runInBand --testTimeout=50000 --watch"
|
|
62
|
+
},
|
|
63
|
+
"jest": {
|
|
64
|
+
"moduleNameMapper": {
|
|
65
|
+
"clipboardy": "<rootDir>/src/__tests__/helpers/clipboardy-mock.js",
|
|
66
|
+
"miniflare/cli": "<rootDir>/../../node_modules/miniflare/dist/src/cli.js"
|
|
67
|
+
},
|
|
68
|
+
"restoreMocks": true,
|
|
69
|
+
"setupFilesAfterEnv": [
|
|
70
|
+
"<rootDir>/src/__tests__/jest.setup.ts"
|
|
71
|
+
],
|
|
72
|
+
"testRegex": ".*.(test|spec)\\.[jt]sx?$",
|
|
73
|
+
"testTimeout": 30000,
|
|
74
|
+
"transform": {
|
|
75
|
+
"^.+\\.c?(t|j)sx?$": [
|
|
76
|
+
"esbuild-jest",
|
|
77
|
+
{
|
|
78
|
+
"sourcemap": true
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
"transformIgnorePatterns": [
|
|
83
|
+
"node_modules/(?!find-up|locate-path|p-locate|p-limit|p-timeout|p-queue|yocto-queue|path-exists|execa|strip-final-newline|npm-run-path|path-key|onetime|mimic-fn|human-signals|is-stream|get-port|supports-color|pretty-bytes)"
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
"dependencies": {
|
|
87
|
+
"@cloudflare/kv-asset-handler": "^0.2.0",
|
|
88
|
+
"@esbuild-plugins/node-globals-polyfill": "^0.1.1",
|
|
89
|
+
"@esbuild-plugins/node-modules-polyfill": "^0.1.4",
|
|
90
|
+
"blake3-wasm": "^2.1.5",
|
|
91
|
+
"esbuild": "0.14.47",
|
|
92
|
+
"miniflare": "^2.6.0",
|
|
93
|
+
"nanoid": "^3.3.3",
|
|
94
|
+
"path-to-regexp": "^6.2.0",
|
|
95
|
+
"selfsigned": "^2.0.1",
|
|
96
|
+
"semiver": "^1.1.0",
|
|
97
|
+
"xxhash-wasm": "^1.0.1"
|
|
98
|
+
},
|
|
99
|
+
"devDependencies": {
|
|
100
|
+
"@iarna/toml": "^3.0.0",
|
|
101
|
+
"@microsoft/api-extractor": "^7.28.3",
|
|
102
|
+
"@types/command-exists": "^1.2.0",
|
|
103
|
+
"@types/glob-to-regexp": "0.4.1",
|
|
104
|
+
"@types/mime": "^2.0.3",
|
|
105
|
+
"@types/prompts": "^2.0.14",
|
|
106
|
+
"@types/react": "^17.0.37",
|
|
107
|
+
"@types/serve-static": "^1.13.10",
|
|
108
|
+
"@types/signal-exit": "^3.0.1",
|
|
109
|
+
"@types/supports-color": "^8.1.1",
|
|
110
|
+
"@types/ws": "^8.5.3",
|
|
111
|
+
"@types/yargs": "^17.0.10",
|
|
112
|
+
"@webcontainer/env": "^1.0.1",
|
|
113
|
+
"chokidar": "^3.5.3",
|
|
114
|
+
"clipboardy": "^3.0.0",
|
|
115
|
+
"cmd-shim": "^4.1.0",
|
|
116
|
+
"command-exists": "^1.2.9",
|
|
117
|
+
"concurrently": "^7.2.2",
|
|
118
|
+
"devtools-protocol": "^0.0.955664",
|
|
119
|
+
"dotenv": "^16.0.0",
|
|
120
|
+
"execa": "^6.1.0",
|
|
121
|
+
"faye-websocket": "^0.11.4",
|
|
122
|
+
"finalhandler": "^1.2.0",
|
|
123
|
+
"find-up": "^6.3.0",
|
|
124
|
+
"get-port": "^6.1.2",
|
|
125
|
+
"glob-to-regexp": "0.4.1",
|
|
126
|
+
"http-terminator": "^3.2.0",
|
|
127
|
+
"ignore": "^5.2.0",
|
|
128
|
+
"ink": "^3.2.0",
|
|
129
|
+
"ink-select-input": "^4.2.1",
|
|
130
|
+
"ink-spinner": "^4.0.3",
|
|
131
|
+
"ink-table": "^3.0.0",
|
|
132
|
+
"ink-testing-library": "^2.1.0",
|
|
133
|
+
"ink-text-input": "^4.0.3",
|
|
134
|
+
"jest-fetch-mock": "^3.0.3",
|
|
135
|
+
"jest-websocket-mock": "^2.3.0",
|
|
136
|
+
"mime": "^3.0.0",
|
|
137
|
+
"open": "^8.4.0",
|
|
138
|
+
"p-queue": "^7.2.0",
|
|
139
|
+
"pretty-bytes": "^6.0.0",
|
|
140
|
+
"prompts": "^2.4.2",
|
|
141
|
+
"react": "^17.0.2",
|
|
142
|
+
"react-error-boundary": "^3.1.4",
|
|
143
|
+
"serve-static": "^1.15.0",
|
|
144
|
+
"signal-exit": "^3.0.7",
|
|
145
|
+
"supports-color": "^9.2.2",
|
|
146
|
+
"timeago.js": "^4.0.2",
|
|
147
|
+
"tmp-promise": "^3.0.3",
|
|
148
|
+
"ts-dedent": "^2.2.0",
|
|
149
|
+
"undici": "^5.5.1",
|
|
150
|
+
"update-check": "^1.5.4",
|
|
151
|
+
"ws": "^8.5.0",
|
|
152
|
+
"xdg-app-paths": "^7.3.0",
|
|
153
|
+
"yargs": "^17.4.1"
|
|
154
|
+
},
|
|
155
|
+
"optionalDependencies": {
|
|
156
|
+
"fsevents": "~2.3.2"
|
|
157
|
+
},
|
|
158
|
+
"engines": {
|
|
159
|
+
"node": ">=16.7.0"
|
|
160
|
+
}
|
|
157
161
|
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { getConfigCache, saveToConfigCache } from "../config-cache";
|
|
2
|
+
import { mockConsoleMethods } from "./helpers/mock-console";
|
|
3
|
+
import { runInTempDir } from "./helpers/run-in-tmp";
|
|
4
|
+
|
|
5
|
+
interface PagesConfigCache {
|
|
6
|
+
account_id: string;
|
|
7
|
+
pages_project_name: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
describe("config cache", () => {
|
|
11
|
+
runInTempDir();
|
|
12
|
+
mockConsoleMethods();
|
|
13
|
+
// In this set of tests, we don't create a node_modules folder
|
|
14
|
+
const pagesConfigCacheFilename = "pages-config-cache.json";
|
|
15
|
+
|
|
16
|
+
it("should return an empty config if no file exists", () => {
|
|
17
|
+
expect(
|
|
18
|
+
getConfigCache<PagesConfigCache>(pagesConfigCacheFilename)
|
|
19
|
+
).toMatchInlineSnapshot(`Object {}`);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
it("should ignore attempts to cache values ", () => {
|
|
23
|
+
saveToConfigCache<PagesConfigCache>(pagesConfigCacheFilename, {
|
|
24
|
+
account_id: "some-account-id",
|
|
25
|
+
pages_project_name: "foo",
|
|
26
|
+
});
|
|
27
|
+
expect(getConfigCache<PagesConfigCache>(pagesConfigCacheFilename)).toEqual(
|
|
28
|
+
{}
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
saveToConfigCache<PagesConfigCache>(pagesConfigCacheFilename, {
|
|
32
|
+
pages_project_name: "bar",
|
|
33
|
+
});
|
|
34
|
+
expect(getConfigCache<PagesConfigCache>(pagesConfigCacheFilename)).toEqual(
|
|
35
|
+
{}
|
|
36
|
+
);
|
|
37
|
+
});
|
|
38
|
+
});
|