wrangler 0.0.0-e1c2f5b9 → 0.0.0-e1d50407
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 +12 -14
- package/bin/wrangler.js +14 -75
- package/package.json +213 -194
- package/templates/__tests__/tsconfig.json +1 -1
- package/templates/checked-fetch.js +19 -6
- package/templates/facade.d.ts +4 -1
- package/templates/gitignore +1 -0
- package/templates/init-tests/test-vitest-new-worker.ts +1 -1
- package/templates/middleware/common.ts +9 -4
- package/templates/middleware/loader-modules.ts +64 -9
- package/templates/middleware/loader-sw.ts +2 -7
- package/templates/middleware/middleware-d1-beta.d.ts +3 -0
- package/templates/middleware/middleware-miniflare3-json-error.ts +18 -5
- package/templates/middleware/middleware-multiworker-dev.d.ts +4 -0
- package/templates/middleware/middleware-multiworker-dev.ts +68 -0
- package/templates/middleware/middleware-serve-static-assets.d.ts +6 -0
- package/templates/middleware/middleware-serve-static-assets.ts +56 -0
- package/templates/modules-watch-stub.js +4 -0
- package/templates/new-worker-scheduled.ts +1 -1
- package/templates/new-worker.ts +4 -1
- package/templates/pages-dev-util.ts +4 -1
- package/templates/pages-shim.ts +0 -3
- package/templates/pages-template-plugin.ts +30 -11
- package/templates/pages-template-worker.ts +11 -2
- package/templates/startDevWorker/InspectorProxyWorker.ts +652 -0
- package/templates/startDevWorker/ProxyWorker.ts +252 -0
- package/templates/tsconfig.init.json +1 -2
- package/templates/tsconfig.json +1 -1
- package/wrangler-dist/InspectorProxyWorker.js +460 -0
- package/wrangler-dist/InspectorProxyWorker.js.map +6 -0
- package/wrangler-dist/ProxyWorker.js +186 -0
- package/wrangler-dist/ProxyWorker.js.map +6 -0
- package/wrangler-dist/cli.d.ts +23110 -509
- package/wrangler-dist/cli.js +133619 -137696
- package/wrangler-dist/wasm-sync.wasm +0 -0
- package/import_meta_url.js +0 -3
- package/miniflare-config-stubs/.env.empty +0 -0
- package/miniflare-config-stubs/package.empty.json +0 -1
- package/miniflare-config-stubs/wrangler.empty.toml +0 -0
- package/miniflare-dist/index.mjs +0 -6364
- package/src/__tests__/access.test.ts +0 -25
- package/src/__tests__/api-dev.test.ts +0 -238
- package/src/__tests__/api-devregistry.test.js +0 -64
- package/src/__tests__/api.test.ts +0 -80
- package/src/__tests__/config-cache-without-cache-dir.test.ts +0 -38
- package/src/__tests__/config-cache.test.ts +0 -42
- package/src/__tests__/configuration.test.ts +0 -4163
- package/src/__tests__/d1.test.ts +0 -123
- package/src/__tests__/delete.test.ts +0 -263
- package/src/__tests__/deployments.test.ts +0 -105
- package/src/__tests__/dev.test.tsx +0 -1586
- package/src/__tests__/dialogs.test.tsx +0 -40
- package/src/__tests__/generate.test.ts +0 -235
- package/src/__tests__/get-host-from-url.test.ts +0 -16
- package/src/__tests__/guess-worker-format.test.ts +0 -85
- package/src/__tests__/helpers/clipboardy-mock.js +0 -4
- package/src/__tests__/helpers/cmd-shim.d.ts +0 -11
- package/src/__tests__/helpers/mock-account-id.ts +0 -48
- package/src/__tests__/helpers/mock-auth-domain.ts +0 -20
- package/src/__tests__/helpers/mock-bin.ts +0 -36
- package/src/__tests__/helpers/mock-cfetch.ts +0 -277
- package/src/__tests__/helpers/mock-console.ts +0 -106
- package/src/__tests__/helpers/mock-dialogs.ts +0 -153
- package/src/__tests__/helpers/mock-get-zone-from-host.ts +0 -8
- package/src/__tests__/helpers/mock-http-server.ts +0 -46
- package/src/__tests__/helpers/mock-istty.ts +0 -74
- package/src/__tests__/helpers/mock-known-routes.ts +0 -7
- package/src/__tests__/helpers/mock-kv.ts +0 -33
- package/src/__tests__/helpers/mock-oauth-flow.ts +0 -271
- package/src/__tests__/helpers/mock-process.ts +0 -34
- package/src/__tests__/helpers/mock-stdin.ts +0 -108
- package/src/__tests__/helpers/mock-web-socket.ts +0 -29
- package/src/__tests__/helpers/msw/handlers/access.ts +0 -13
- package/src/__tests__/helpers/msw/handlers/deployments.ts +0 -59
- package/src/__tests__/helpers/msw/handlers/namespaces.ts +0 -104
- package/src/__tests__/helpers/msw/handlers/oauth.ts +0 -31
- package/src/__tests__/helpers/msw/handlers/r2.ts +0 -80
- package/src/__tests__/helpers/msw/handlers/script.ts +0 -75
- package/src/__tests__/helpers/msw/handlers/user.ts +0 -63
- package/src/__tests__/helpers/msw/handlers/zones.ts +0 -22
- package/src/__tests__/helpers/msw/index.ts +0 -21
- package/src/__tests__/helpers/run-in-tmp.ts +0 -38
- package/src/__tests__/helpers/run-wrangler.ts +0 -16
- package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +0 -1
- package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +0 -5
- package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +0 -1
- package/src/__tests__/helpers/worker-scripts/parent-worker.js +0 -8
- package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +0 -5
- package/src/__tests__/helpers/write-worker-source.ts +0 -31
- package/src/__tests__/helpers/write-wrangler-toml.ts +0 -17
- package/src/__tests__/https-options.test.ts +0 -163
- package/src/__tests__/index.test.ts +0 -268
- package/src/__tests__/init.test.ts +0 -3094
- package/src/__tests__/jest.setup.ts +0 -203
- package/src/__tests__/kv.test.ts +0 -1786
- package/src/__tests__/logger.test.ts +0 -141
- package/src/__tests__/logout.test.ts +0 -47
- package/src/__tests__/metrics.test.ts +0 -495
- package/src/__tests__/middleware.scheduled.test.ts +0 -145
- package/src/__tests__/middleware.test.ts +0 -750
- package/src/__tests__/package-manager.test.ts +0 -353
- package/src/__tests__/pages-deployment-tail.test.ts +0 -884
- package/src/__tests__/pages.test.ts +0 -2443
- package/src/__tests__/parse.test.ts +0 -330
- package/src/__tests__/paths.test.ts +0 -39
- package/src/__tests__/publish.test.ts +0 -7757
- package/src/__tests__/pubsub.test.ts +0 -490
- package/src/__tests__/queues.test.ts +0 -522
- package/src/__tests__/r2.test.ts +0 -393
- package/src/__tests__/route.test.ts +0 -45
- package/src/__tests__/secret.test.ts +0 -694
- package/src/__tests__/tail.test.ts +0 -899
- package/src/__tests__/test-old-node-version.js +0 -31
- package/src/__tests__/tsconfig-sanity.ts +0 -12
- package/src/__tests__/tsconfig.json +0 -8
- package/src/__tests__/tsconfig.tsbuildinfo +0 -1
- package/src/__tests__/type-generation.test.ts +0 -233
- package/src/__tests__/user.test.ts +0 -129
- package/src/__tests__/utils-collectKeyValues.test.ts +0 -47
- package/src/__tests__/validate-dev-props.test.ts +0 -56
- package/src/__tests__/version.test.ts +0 -35
- package/src/__tests__/whoami.test.tsx +0 -278
- package/src/__tests__/worker-namespace.test.ts +0 -326
- package/src/abort.d.ts +0 -3
- package/src/api/dev.ts +0 -218
- package/src/api/index.ts +0 -2
- package/src/bundle-reporter.tsx +0 -68
- package/src/bundle.ts +0 -823
- package/src/cfetch/index.ts +0 -158
- package/src/cfetch/internal.ts +0 -261
- package/src/cli.ts +0 -28
- package/src/config/README.md +0 -107
- package/src/config/config.ts +0 -275
- package/src/config/diagnostics.ts +0 -80
- package/src/config/environment.ts +0 -577
- package/src/config/index.ts +0 -358
- package/src/config/validation-helpers.ts +0 -597
- package/src/config/validation.ts +0 -2151
- package/src/config-cache.ts +0 -85
- package/src/create-worker-preview.ts +0 -282
- package/src/create-worker-upload-form.ts +0 -325
- package/src/d1/backups.tsx +0 -223
- package/src/d1/constants.ts +0 -2
- package/src/d1/create.tsx +0 -63
- package/src/d1/delete.tsx +0 -56
- package/src/d1/execute.tsx +0 -352
- package/src/d1/formatTimeAgo.ts +0 -14
- package/src/d1/index.ts +0 -101
- package/src/d1/list.tsx +0 -48
- package/src/d1/migrations/apply.tsx +0 -196
- package/src/d1/migrations/create.tsx +0 -77
- package/src/d1/migrations/helpers.ts +0 -147
- package/src/d1/migrations/index.tsx +0 -3
- package/src/d1/migrations/list.tsx +0 -79
- package/src/d1/migrations/options.ts +0 -18
- package/src/d1/options.ts +0 -22
- package/src/d1/types.tsx +0 -24
- package/src/d1/utils.ts +0 -48
- package/src/delete.ts +0 -108
- package/src/deployments.ts +0 -83
- package/src/deprecated/index.ts +0 -145
- package/src/dev/dev-vars.ts +0 -39
- package/src/dev/dev.tsx +0 -614
- package/src/dev/get-local-persistence-path.tsx +0 -31
- package/src/dev/local.tsx +0 -932
- package/src/dev/remote.tsx +0 -603
- package/src/dev/start-server.ts +0 -543
- package/src/dev/use-esbuild.ts +0 -204
- package/src/dev/validate-dev-props.ts +0 -31
- package/src/dev-registry.tsx +0 -201
- package/src/dev.tsx +0 -949
- package/src/dialogs.tsx +0 -168
- package/src/dispatch-namespace.ts +0 -207
- package/src/docs/index.ts +0 -97
- package/src/durable.ts +0 -102
- package/src/entry.ts +0 -329
- package/src/environment-variables/factory.ts +0 -88
- package/src/environment-variables/misc-variables.ts +0 -30
- package/src/errors.ts +0 -11
- package/src/generate/index.ts +0 -300
- package/src/git-client.ts +0 -135
- package/src/global-wrangler-config-path.ts +0 -26
- package/src/https-options.ts +0 -127
- package/src/index.tsx +0 -694
- package/src/init.ts +0 -1025
- package/src/inspect.ts +0 -767
- package/src/intl-polyfill.d.ts +0 -139
- package/src/is-ci.ts +0 -14
- package/src/is-interactive.ts +0 -16
- package/src/jest.d.ts +0 -4
- package/src/kv/helpers.ts +0 -430
- package/src/kv/index.ts +0 -596
- package/src/logger.ts +0 -92
- package/src/metrics/index.ts +0 -5
- package/src/metrics/metrics-config.ts +0 -239
- package/src/metrics/metrics-dispatcher.ts +0 -96
- package/src/metrics/metrics-usage-headers.ts +0 -24
- package/src/metrics/send-event.ts +0 -97
- package/src/miniflare-cli/README.md +0 -30
- package/src/miniflare-cli/assets.ts +0 -250
- package/src/miniflare-cli/index.ts +0 -210
- package/src/miniflare-cli/request-context.ts +0 -40
- package/src/miniflare-cli/tsconfig.json +0 -9
- package/src/miniflare-cli/tsconfig.tsbuildinfo +0 -1
- package/src/miniflare-cli/types.ts +0 -11
- package/src/module-collection.ts +0 -267
- package/src/open-in-browser.ts +0 -17
- package/src/package-manager.ts +0 -219
- package/src/pages/build.tsx +0 -270
- package/src/pages/constants.ts +0 -18
- package/src/pages/deployment-tails.tsx +0 -284
- package/src/pages/deployments.tsx +0 -84
- package/src/pages/dev.tsx +0 -710
- package/src/pages/errors.ts +0 -66
- package/src/pages/functions/buildPlugin.ts +0 -107
- package/src/pages/functions/buildWorker.ts +0 -166
- package/src/pages/functions/filepath-routing.test.ts +0 -234
- package/src/pages/functions/filepath-routing.ts +0 -189
- package/src/pages/functions/identifiers.ts +0 -78
- package/src/pages/functions/routes-consolidation.test.ts +0 -250
- package/src/pages/functions/routes-consolidation.ts +0 -73
- package/src/pages/functions/routes-transformation.test.ts +0 -282
- package/src/pages/functions/routes-transformation.ts +0 -115
- package/src/pages/functions/routes-validation.test.ts +0 -403
- package/src/pages/functions/routes-validation.ts +0 -202
- package/src/pages/functions/routes.ts +0 -151
- package/src/pages/functions/tsconfig.json +0 -8
- package/src/pages/functions/tsconfig.tsbuildinfo +0 -1
- package/src/pages/functions.tsx +0 -82
- package/src/pages/hash.tsx +0 -13
- package/src/pages/index.tsx +0 -102
- package/src/pages/projects.tsx +0 -169
- package/src/pages/prompt-select-project.tsx +0 -31
- package/src/pages/publish.tsx +0 -461
- package/src/pages/types.ts +0 -41
- package/src/pages/upload.tsx +0 -447
- package/src/pages/utils.ts +0 -23
- package/src/parse.ts +0 -286
- package/src/paths.ts +0 -71
- package/src/proxy.ts +0 -694
- package/src/publish/index.ts +0 -270
- package/src/publish/publish.ts +0 -1036
- package/src/pubsub/index.ts +0 -286
- package/src/pubsub/pubsub-commands.tsx +0 -624
- package/src/queues/cli/commands/consumer/add.ts +0 -71
- package/src/queues/cli/commands/consumer/index.ts +0 -22
- package/src/queues/cli/commands/consumer/remove.ts +0 -38
- package/src/queues/cli/commands/create.ts +0 -25
- package/src/queues/cli/commands/delete.ts +0 -26
- package/src/queues/cli/commands/index.ts +0 -36
- package/src/queues/cli/commands/list.ts +0 -25
- package/src/queues/client.ts +0 -135
- package/src/queues/utils.ts +0 -18
- package/src/r2/constants.ts +0 -4
- package/src/r2/helpers.ts +0 -131
- package/src/r2/index.ts +0 -289
- package/src/routes.ts +0 -140
- package/src/secret/index.ts +0 -379
- package/src/selfsigned.d.ts +0 -29
- package/src/sites.tsx +0 -372
- package/src/tail/createTail.ts +0 -379
- package/src/tail/filters.ts +0 -277
- package/src/tail/index.ts +0 -214
- package/src/tail/printing.ts +0 -107
- package/src/tsconfig-sanity.ts +0 -16
- package/src/type-generation.ts +0 -181
- package/src/update-check.ts +0 -19
- package/src/user/access.ts +0 -68
- package/src/user/auth-variables.ts +0 -113
- package/src/user/choose-account.tsx +0 -69
- package/src/user/generate-auth-url.ts +0 -33
- package/src/user/generate-random-state.ts +0 -16
- package/src/user/index.ts +0 -2
- package/src/user/user.tsx +0 -1238
- package/src/utils/collectKeyValues.ts +0 -14
- package/src/whoami.tsx +0 -169
- package/src/worker.ts +0 -251
- package/src/yargs-types.ts +0 -24
- package/src/zones.ts +0 -191
- package/templates/__tests__/tsconfig.tsbuildinfo +0 -1
- package/templates/d1-beta-facade.js +0 -205
- package/templates/first-party-worker-module-facade.ts +0 -19
- package/templates/format-dev-errors.ts +0 -33
- package/templates/serve-static-assets.ts +0 -65
- package/templates/service-bindings-module-facade.js +0 -54
- package/templates/service-bindings-sw-facade.js +0 -42
- package/templates/tsconfig.tsbuildinfo +0 -1
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { rest } from "msw";
|
|
2
|
-
|
|
3
|
-
export const mswSuccessR2handlers = [
|
|
4
|
-
// List endpoint r2Buckets
|
|
5
|
-
rest.get("*/accounts/:accountId/r2/buckets", (_, response, context) =>
|
|
6
|
-
response.once(
|
|
7
|
-
context.status(200),
|
|
8
|
-
context.json({
|
|
9
|
-
success: true,
|
|
10
|
-
errors: [],
|
|
11
|
-
messages: [],
|
|
12
|
-
result: {
|
|
13
|
-
buckets: [
|
|
14
|
-
{ name: "bucket-1", creation_date: "01-01-2001" },
|
|
15
|
-
{ name: "bucket-2", creation_date: "01-01-2001" },
|
|
16
|
-
],
|
|
17
|
-
},
|
|
18
|
-
})
|
|
19
|
-
)
|
|
20
|
-
),
|
|
21
|
-
rest.post("*/accounts/:accountId/r2/buckets", (_, response, context) =>
|
|
22
|
-
response.once(
|
|
23
|
-
context.status(200),
|
|
24
|
-
context.json({ success: true, errors: [], messages: [], result: {} })
|
|
25
|
-
)
|
|
26
|
-
),
|
|
27
|
-
rest.put(
|
|
28
|
-
"*/accounts/:accountId/r2/buckets/:bucketName",
|
|
29
|
-
(_, response, context) =>
|
|
30
|
-
response.once(
|
|
31
|
-
context.status(200),
|
|
32
|
-
context.json({ success: true, errors: [], messages: [], result: {} })
|
|
33
|
-
)
|
|
34
|
-
),
|
|
35
|
-
rest.delete(
|
|
36
|
-
"*/accounts/:accountId/r2/buckets/:bucketName",
|
|
37
|
-
(_, response, context) =>
|
|
38
|
-
response.once(
|
|
39
|
-
context.status(200),
|
|
40
|
-
context.json({ success: true, errors: [], messages: [], result: null })
|
|
41
|
-
)
|
|
42
|
-
),
|
|
43
|
-
rest.get(
|
|
44
|
-
"*/accounts/:accountId/r2/buckets/:bucketName/objects/:objectName",
|
|
45
|
-
(_, response, context) => {
|
|
46
|
-
const imageBuffer = Buffer.from("wormhole-img.png");
|
|
47
|
-
return response.once(
|
|
48
|
-
context.set("Content-Length", imageBuffer.byteLength.toString()),
|
|
49
|
-
context.set("Content-Type", "image/png"),
|
|
50
|
-
context.status(200),
|
|
51
|
-
context.body(imageBuffer)
|
|
52
|
-
);
|
|
53
|
-
}
|
|
54
|
-
),
|
|
55
|
-
rest.put(
|
|
56
|
-
"*/accounts/:accountId/r2/buckets/:bucketName/objects/:objectName",
|
|
57
|
-
(_, response, context) =>
|
|
58
|
-
response.once(
|
|
59
|
-
context.status(200),
|
|
60
|
-
context.json({
|
|
61
|
-
success: true,
|
|
62
|
-
errors: [],
|
|
63
|
-
messages: [],
|
|
64
|
-
result: {
|
|
65
|
-
accountId: "some-account-id",
|
|
66
|
-
bucketName: "bucketName-object-test",
|
|
67
|
-
objectName: "wormhole-img.png",
|
|
68
|
-
},
|
|
69
|
-
})
|
|
70
|
-
)
|
|
71
|
-
),
|
|
72
|
-
rest.delete(
|
|
73
|
-
"*/accounts/:accountId/r2/buckets/:bucketName/objects/:objectName",
|
|
74
|
-
(_, response, context) =>
|
|
75
|
-
response.once(
|
|
76
|
-
context.status(200),
|
|
77
|
-
context.json({ success: true, errors: [], messages: [], result: null })
|
|
78
|
-
)
|
|
79
|
-
),
|
|
80
|
-
];
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { rest } from "msw";
|
|
2
|
-
import type { WorkerMetadata } from "../../../../create-worker-upload-form";
|
|
3
|
-
|
|
4
|
-
const bindings: Record<string, WorkerMetadata["bindings"]> = {
|
|
5
|
-
"durable-object": [
|
|
6
|
-
{
|
|
7
|
-
type: "durable_object_namespace",
|
|
8
|
-
name: "TestDO",
|
|
9
|
-
class_name: "TestDO",
|
|
10
|
-
},
|
|
11
|
-
],
|
|
12
|
-
};
|
|
13
|
-
const scripts: Record<string, string> = {
|
|
14
|
-
websocket: `new WebSocket("ws://dummy")`,
|
|
15
|
-
response: `return new Response("ok")`,
|
|
16
|
-
};
|
|
17
|
-
function getBindings(scriptName: string) {
|
|
18
|
-
return scriptName.split("--").flatMap((part) => bindings[part] ?? []);
|
|
19
|
-
}
|
|
20
|
-
function getScript(scriptName: string) {
|
|
21
|
-
return `export default {fetch(request){
|
|
22
|
-
${scriptName
|
|
23
|
-
.split("--")
|
|
24
|
-
.map((part) => scripts[part] ?? "")
|
|
25
|
-
.join(";\n")}
|
|
26
|
-
}}`;
|
|
27
|
-
}
|
|
28
|
-
export default [
|
|
29
|
-
rest.get(
|
|
30
|
-
"*/accounts/:accountId/workers/services/:scriptName/environments/:env/content",
|
|
31
|
-
({ params: { scriptName } }, res, context) => {
|
|
32
|
-
return res(
|
|
33
|
-
context.status(200),
|
|
34
|
-
context.text(getScript(scriptName as string))
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
),
|
|
38
|
-
rest.get(
|
|
39
|
-
"*/accounts/:accountId/workers/scripts/:scriptName",
|
|
40
|
-
({ params: { scriptName } }, res, context) => {
|
|
41
|
-
return res(
|
|
42
|
-
context.status(200),
|
|
43
|
-
context.text(getScript(scriptName as string))
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
),
|
|
47
|
-
rest.get(
|
|
48
|
-
"*/accounts/:accountId/workers/services/:scriptName/environments/:env/bindings",
|
|
49
|
-
({ params: { scriptName } }, res, context) => {
|
|
50
|
-
return res(
|
|
51
|
-
context.status(200),
|
|
52
|
-
context.json({
|
|
53
|
-
success: true,
|
|
54
|
-
errors: [],
|
|
55
|
-
messages: [],
|
|
56
|
-
result: getBindings(scriptName as string),
|
|
57
|
-
})
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
),
|
|
61
|
-
rest.get(
|
|
62
|
-
"*/accounts/:accountId/workers/scripts/:scriptName/bindings",
|
|
63
|
-
({ params: { scriptName } }, res, context) => {
|
|
64
|
-
return res(
|
|
65
|
-
context.status(200),
|
|
66
|
-
context.json({
|
|
67
|
-
success: true,
|
|
68
|
-
errors: [],
|
|
69
|
-
messages: [],
|
|
70
|
-
result: getBindings(scriptName as string),
|
|
71
|
-
})
|
|
72
|
-
);
|
|
73
|
-
}
|
|
74
|
-
),
|
|
75
|
-
];
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { rest } from "msw";
|
|
2
|
-
|
|
3
|
-
export const mswSuccessUserHandlers = [
|
|
4
|
-
rest.get("*/user", (_, response, cxt) => {
|
|
5
|
-
return response.once(
|
|
6
|
-
cxt.status(200),
|
|
7
|
-
cxt.json({
|
|
8
|
-
success: true,
|
|
9
|
-
errors: [],
|
|
10
|
-
messages: [],
|
|
11
|
-
result: {
|
|
12
|
-
id: "7c5dae5552338874e5053f2534d2767a",
|
|
13
|
-
email: "user@example.com",
|
|
14
|
-
first_name: "John",
|
|
15
|
-
last_name: "Appleseed",
|
|
16
|
-
username: "cfuser12345",
|
|
17
|
-
telephone: "+1 123-123-1234",
|
|
18
|
-
country: "US",
|
|
19
|
-
zipcode: "12345",
|
|
20
|
-
created_on: "2014-01-01T05:20:00Z",
|
|
21
|
-
modified_on: "2014-01-01T05:20:00Z",
|
|
22
|
-
two_factor_authentication_enabled: false,
|
|
23
|
-
suspended: false,
|
|
24
|
-
},
|
|
25
|
-
})
|
|
26
|
-
);
|
|
27
|
-
}),
|
|
28
|
-
rest.get("*/accounts", (_, response, cxt) => {
|
|
29
|
-
return response.once(
|
|
30
|
-
cxt.status(200),
|
|
31
|
-
cxt.json({
|
|
32
|
-
success: true,
|
|
33
|
-
errors: [],
|
|
34
|
-
messages: [],
|
|
35
|
-
result: [
|
|
36
|
-
{ name: "Account One", id: "account-1" },
|
|
37
|
-
{ name: "Account Two", id: "account-2" },
|
|
38
|
-
{ name: "Account Three", id: "account-3" },
|
|
39
|
-
],
|
|
40
|
-
})
|
|
41
|
-
);
|
|
42
|
-
}),
|
|
43
|
-
rest.get("*/memberships", (_, response, context) => {
|
|
44
|
-
return response.once(
|
|
45
|
-
context.status(200),
|
|
46
|
-
context.json({
|
|
47
|
-
success: true,
|
|
48
|
-
errors: [],
|
|
49
|
-
messages: [],
|
|
50
|
-
result: [
|
|
51
|
-
{
|
|
52
|
-
id: "membership-id-1",
|
|
53
|
-
account: { id: "account-id-1", name: "My Personal Account" },
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
id: "membership-id-2",
|
|
57
|
-
account: { id: "account-id-2", name: "Enterprise Account" },
|
|
58
|
-
},
|
|
59
|
-
],
|
|
60
|
-
})
|
|
61
|
-
);
|
|
62
|
-
}),
|
|
63
|
-
];
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { rest } from "msw";
|
|
2
|
-
|
|
3
|
-
export default [
|
|
4
|
-
rest.get("*/zones", ({ url: { searchParams } }, res, context) => {
|
|
5
|
-
return res(
|
|
6
|
-
context.status(200),
|
|
7
|
-
context.json({
|
|
8
|
-
success: true,
|
|
9
|
-
errors: [],
|
|
10
|
-
messages: [],
|
|
11
|
-
result:
|
|
12
|
-
searchParams.get("name") === "exists.com"
|
|
13
|
-
? [
|
|
14
|
-
{
|
|
15
|
-
id: "exists-com",
|
|
16
|
-
},
|
|
17
|
-
]
|
|
18
|
-
: [],
|
|
19
|
-
})
|
|
20
|
-
);
|
|
21
|
-
}),
|
|
22
|
-
];
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { setupServer } from "msw/node";
|
|
2
|
-
import { default as mswAccessHandlers } from "./handlers/access";
|
|
3
|
-
import { mswSuccessDeployments } from "./handlers/deployments";
|
|
4
|
-
import { mswSuccessNamespacesHandlers } from "./handlers/namespaces";
|
|
5
|
-
import { mswSuccessOauthHandlers } from "./handlers/oauth";
|
|
6
|
-
import { mswSuccessR2handlers } from "./handlers/r2";
|
|
7
|
-
import { default as mswSucessScriptHandlers } from "./handlers/script";
|
|
8
|
-
import { mswSuccessUserHandlers } from "./handlers/user";
|
|
9
|
-
import { default as mswZoneHandlers } from "./handlers/zones";
|
|
10
|
-
export const msw = setupServer();
|
|
11
|
-
|
|
12
|
-
export {
|
|
13
|
-
mswSuccessUserHandlers,
|
|
14
|
-
mswSuccessR2handlers,
|
|
15
|
-
mswSuccessOauthHandlers,
|
|
16
|
-
mswSuccessNamespacesHandlers,
|
|
17
|
-
mswSucessScriptHandlers,
|
|
18
|
-
mswZoneHandlers,
|
|
19
|
-
mswSuccessDeployments,
|
|
20
|
-
mswAccessHandlers,
|
|
21
|
-
};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import * as fs from "node:fs";
|
|
2
|
-
import os from "node:os";
|
|
3
|
-
import * as path from "node:path";
|
|
4
|
-
import { reinitialiseAuthTokens } from "../../user";
|
|
5
|
-
|
|
6
|
-
const originalCwd = process.cwd();
|
|
7
|
-
|
|
8
|
-
export function runInTempDir({ homedir } = { homedir: "./home" }) {
|
|
9
|
-
let tmpDir: string;
|
|
10
|
-
|
|
11
|
-
beforeEach(() => {
|
|
12
|
-
// Use realpath because the temporary path can point to a symlink rather than the actual path.
|
|
13
|
-
tmpDir = fs.realpathSync(
|
|
14
|
-
fs.mkdtempSync(path.join(os.tmpdir(), "wrangler-tests"))
|
|
15
|
-
);
|
|
16
|
-
|
|
17
|
-
process.chdir(tmpDir);
|
|
18
|
-
// The path that is returned from `homedir()` should be absolute.
|
|
19
|
-
const absHomedir = path.resolve(tmpDir, homedir);
|
|
20
|
-
// Override where the home directory is so that we can write our own user config,
|
|
21
|
-
// without destroying the real thing.
|
|
22
|
-
fs.mkdirSync(absHomedir, { recursive: true });
|
|
23
|
-
// Note it is very important that we use the "default" value from "node:os" (e.g. `import os from "node:os";`)
|
|
24
|
-
// rather than an alias to the module (e.g. `import * as os from "node:os";`).
|
|
25
|
-
// This is because the module gets transpiled so that the "method" `homedir()` gets converted to a
|
|
26
|
-
// getter that is not configurable (and so cannot be spied upon).
|
|
27
|
-
jest.spyOn(os, "homedir")?.mockReturnValue(absHomedir);
|
|
28
|
-
// Now that we have changed the home directory location, we must reinitialize the user auth state
|
|
29
|
-
reinitialiseAuthTokens();
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
afterEach(() => {
|
|
33
|
-
if (fs.existsSync(tmpDir)) {
|
|
34
|
-
process.chdir(originalCwd);
|
|
35
|
-
fs.rmSync(tmpDir, { recursive: true });
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { main } from "../../index";
|
|
2
|
-
import { normalizeSlashes, stripTimings } from "./mock-console";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* A helper to 'run' wrangler commands for tests.
|
|
6
|
-
*/
|
|
7
|
-
export async function runWrangler(cmd?: string) {
|
|
8
|
-
try {
|
|
9
|
-
await main(cmd?.split(" ") ?? []);
|
|
10
|
-
} catch (err) {
|
|
11
|
-
if (err instanceof Error) {
|
|
12
|
-
err.message = normalizeSlashes(stripTimings(err.message));
|
|
13
|
-
}
|
|
14
|
-
throw err;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
name = 'child'
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
name = 'hello-world'
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
2
|
-
|
|
3
|
-
/** Write a mock Worker script to disk. */
|
|
4
|
-
export function writeWorkerSource({
|
|
5
|
-
basePath = ".",
|
|
6
|
-
format = "js",
|
|
7
|
-
type = "esm",
|
|
8
|
-
}: {
|
|
9
|
-
basePath?: string;
|
|
10
|
-
format?: "js" | "ts" | "jsx" | "tsx" | "mjs";
|
|
11
|
-
type?: "esm" | "sw";
|
|
12
|
-
} = {}) {
|
|
13
|
-
if (basePath !== ".") {
|
|
14
|
-
fs.mkdirSync(basePath, { recursive: true });
|
|
15
|
-
}
|
|
16
|
-
fs.writeFileSync(
|
|
17
|
-
`${basePath}/index.${format}`,
|
|
18
|
-
type === "esm"
|
|
19
|
-
? `import { foo } from "./another";
|
|
20
|
-
export default {
|
|
21
|
-
async fetch(request) {
|
|
22
|
-
return new Response('Hello' + foo);
|
|
23
|
-
},
|
|
24
|
-
};`
|
|
25
|
-
: `import { foo } from "./another";
|
|
26
|
-
addEventListener('fetch', event => {
|
|
27
|
-
event.respondWith(new Response('Hello' + foo));
|
|
28
|
-
})`
|
|
29
|
-
);
|
|
30
|
-
fs.writeFileSync(`${basePath}/another.${format}`, `export const foo = 100;`);
|
|
31
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import * as fs from "fs";
|
|
2
|
-
import TOML from "@iarna/toml";
|
|
3
|
-
import type { RawConfig } from "../../config";
|
|
4
|
-
|
|
5
|
-
/** Write a mock wrangler.toml file to disk. */
|
|
6
|
-
export default function writeWranglerToml(config: RawConfig = {}) {
|
|
7
|
-
fs.writeFileSync(
|
|
8
|
-
"./wrangler.toml",
|
|
9
|
-
TOML.stringify({
|
|
10
|
-
compatibility_date: "2022-01-12",
|
|
11
|
-
name: "test-name",
|
|
12
|
-
...(config as TOML.JsonMap),
|
|
13
|
-
}),
|
|
14
|
-
|
|
15
|
-
"utf-8"
|
|
16
|
-
);
|
|
17
|
-
}
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
2
|
-
import os from "node:os";
|
|
3
|
-
import path from "node:path";
|
|
4
|
-
import { getGlobalWranglerConfigPath } from "../global-wrangler-config-path";
|
|
5
|
-
import { getHttpsOptions } from "../https-options";
|
|
6
|
-
import { mockConsoleMethods } from "./helpers/mock-console";
|
|
7
|
-
import { runInTempDir } from "./helpers/run-in-tmp";
|
|
8
|
-
|
|
9
|
-
describe("getHttpsOptions()", () => {
|
|
10
|
-
runInTempDir();
|
|
11
|
-
const std = mockConsoleMethods();
|
|
12
|
-
|
|
13
|
-
it("should use cached values if they have not expired", async () => {
|
|
14
|
-
fs.mkdirSync(path.resolve(getGlobalWranglerConfigPath(), "local-cert"), {
|
|
15
|
-
recursive: true,
|
|
16
|
-
});
|
|
17
|
-
fs.writeFileSync(
|
|
18
|
-
path.resolve(getGlobalWranglerConfigPath(), "local-cert/key.pem"),
|
|
19
|
-
"PRIVATE KEY"
|
|
20
|
-
);
|
|
21
|
-
fs.writeFileSync(
|
|
22
|
-
path.resolve(getGlobalWranglerConfigPath(), "local-cert/cert.pem"),
|
|
23
|
-
"PUBLIC KEY"
|
|
24
|
-
);
|
|
25
|
-
const result = await getHttpsOptions();
|
|
26
|
-
expect(result.key).toEqual("PRIVATE KEY");
|
|
27
|
-
expect(result.cert).toEqual("PUBLIC KEY");
|
|
28
|
-
expect(std.out).toMatchInlineSnapshot(`""`);
|
|
29
|
-
expect(std.warn).toMatchInlineSnapshot(`""`);
|
|
30
|
-
expect(std.err).toMatchInlineSnapshot(`""`);
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
it("should generate and cache new keys if none are cached", async () => {
|
|
34
|
-
const result = await getHttpsOptions();
|
|
35
|
-
const key = fs.readFileSync(
|
|
36
|
-
path.resolve(getGlobalWranglerConfigPath(), "local-cert/key.pem"),
|
|
37
|
-
"utf8"
|
|
38
|
-
);
|
|
39
|
-
const cert = fs.readFileSync(
|
|
40
|
-
path.resolve(getGlobalWranglerConfigPath(), "local-cert/cert.pem"),
|
|
41
|
-
"utf8"
|
|
42
|
-
);
|
|
43
|
-
expect(result.key).toEqual(key);
|
|
44
|
-
expect(result.cert).toEqual(cert);
|
|
45
|
-
expect(std.out).toMatchInlineSnapshot(
|
|
46
|
-
`"Generating new self-signed certificate..."`
|
|
47
|
-
);
|
|
48
|
-
expect(std.warn).toMatchInlineSnapshot(`""`);
|
|
49
|
-
expect(std.err).toMatchInlineSnapshot(`""`);
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
it("should generate and cache new keys if cached files have expired", async () => {
|
|
53
|
-
fs.mkdirSync(path.resolve(getGlobalWranglerConfigPath(), "local-cert"), {
|
|
54
|
-
recursive: true,
|
|
55
|
-
});
|
|
56
|
-
const ORIGINAL_KEY = "EXPIRED PRIVATE KEY";
|
|
57
|
-
const ORIGINAL_CERT = "EXPIRED PUBLIC KEY";
|
|
58
|
-
fs.writeFileSync(
|
|
59
|
-
path.resolve(getGlobalWranglerConfigPath(), "local-cert/key.pem"),
|
|
60
|
-
ORIGINAL_KEY
|
|
61
|
-
);
|
|
62
|
-
fs.writeFileSync(
|
|
63
|
-
path.resolve(getGlobalWranglerConfigPath(), "local-cert/cert.pem"),
|
|
64
|
-
ORIGINAL_CERT
|
|
65
|
-
);
|
|
66
|
-
mockStatSync(/\.pem$/, { mtimeMs: new Date(2000).valueOf() });
|
|
67
|
-
|
|
68
|
-
const result = await getHttpsOptions();
|
|
69
|
-
const key = fs.readFileSync(
|
|
70
|
-
path.resolve(getGlobalWranglerConfigPath(), "local-cert/key.pem"),
|
|
71
|
-
"utf8"
|
|
72
|
-
);
|
|
73
|
-
const cert = fs.readFileSync(
|
|
74
|
-
path.resolve(getGlobalWranglerConfigPath(), "local-cert/cert.pem"),
|
|
75
|
-
"utf8"
|
|
76
|
-
);
|
|
77
|
-
expect(key).not.toEqual(ORIGINAL_KEY);
|
|
78
|
-
expect(cert).not.toEqual(ORIGINAL_CERT);
|
|
79
|
-
expect(result.key).toEqual(key);
|
|
80
|
-
expect(result.cert).toEqual(cert);
|
|
81
|
-
expect(std.out).toMatchInlineSnapshot(
|
|
82
|
-
`"Generating new self-signed certificate..."`
|
|
83
|
-
);
|
|
84
|
-
expect(std.warn).toMatchInlineSnapshot(`""`);
|
|
85
|
-
expect(std.err).toMatchInlineSnapshot(`""`);
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
it("should warn if not able to write to the cache (legacy config path)", async () => {
|
|
89
|
-
fs.mkdirSync(path.join(os.homedir(), ".wrangler"));
|
|
90
|
-
mockWriteFileSyncThrow(/\.pem$/);
|
|
91
|
-
await getHttpsOptions();
|
|
92
|
-
expect(
|
|
93
|
-
fs.existsSync(
|
|
94
|
-
path.resolve(getGlobalWranglerConfigPath(), "local-cert/key.pem")
|
|
95
|
-
)
|
|
96
|
-
).toBe(false);
|
|
97
|
-
expect(
|
|
98
|
-
fs.existsSync(
|
|
99
|
-
path.resolve(getGlobalWranglerConfigPath(), "local-cert/cert.pem")
|
|
100
|
-
)
|
|
101
|
-
).toBe(false);
|
|
102
|
-
expect(std.out).toMatchInlineSnapshot(
|
|
103
|
-
`"Generating new self-signed certificate..."`
|
|
104
|
-
);
|
|
105
|
-
expect(std.warn).toMatchInlineSnapshot(`
|
|
106
|
-
"[33m▲ [43;33m[[43;30mWARNING[43;33m][0m [1mUnable to cache generated self-signed certificate in home/.wrangler/local-cert.[0m
|
|
107
|
-
|
|
108
|
-
ERROR: Cannot write file
|
|
109
|
-
|
|
110
|
-
"
|
|
111
|
-
`);
|
|
112
|
-
expect(std.err).toMatchInlineSnapshot(`""`);
|
|
113
|
-
fs.rmSync(path.join(os.homedir(), ".wrangler"), { recursive: true });
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
it("should warn if not able to write to the cache", async () => {
|
|
117
|
-
mockWriteFileSyncThrow(/\.pem$/);
|
|
118
|
-
await getHttpsOptions();
|
|
119
|
-
expect(
|
|
120
|
-
fs.existsSync(
|
|
121
|
-
path.resolve(getGlobalWranglerConfigPath(), "local-cert/key.pem")
|
|
122
|
-
)
|
|
123
|
-
).toBe(false);
|
|
124
|
-
expect(
|
|
125
|
-
fs.existsSync(
|
|
126
|
-
path.resolve(getGlobalWranglerConfigPath(), "local-cert/cert.pem")
|
|
127
|
-
)
|
|
128
|
-
).toBe(false);
|
|
129
|
-
expect(std.out).toMatchInlineSnapshot(
|
|
130
|
-
`"Generating new self-signed certificate..."`
|
|
131
|
-
);
|
|
132
|
-
expect(std.warn).toMatchInlineSnapshot(`
|
|
133
|
-
"[33m▲ [43;33m[[43;30mWARNING[43;33m][0m [1mUnable to cache generated self-signed certificate in test-xdg-config/local-cert.[0m
|
|
134
|
-
|
|
135
|
-
ERROR: Cannot write file
|
|
136
|
-
|
|
137
|
-
"
|
|
138
|
-
`);
|
|
139
|
-
expect(std.err).toMatchInlineSnapshot(`""`);
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
function mockStatSync(matcher: RegExp, stats: Partial<fs.Stats>) {
|
|
144
|
-
const originalStatSync = jest.requireActual("node:fs").statSync;
|
|
145
|
-
jest.spyOn(fs, "statSync").mockImplementation((statPath, options) => {
|
|
146
|
-
return matcher.test(statPath.toString())
|
|
147
|
-
? (stats as fs.Stats)
|
|
148
|
-
: originalStatSync(statPath, options);
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
function mockWriteFileSyncThrow(matcher: RegExp) {
|
|
153
|
-
const originalWriteFileSync = jest.requireActual("node:fs").writeFileSync;
|
|
154
|
-
jest
|
|
155
|
-
.spyOn(fs, "writeFileSync")
|
|
156
|
-
.mockImplementation((filePath, data, options) => {
|
|
157
|
-
if (matcher.test(filePath.toString())) {
|
|
158
|
-
throw new Error("ERROR: Cannot write file");
|
|
159
|
-
} else {
|
|
160
|
-
return originalWriteFileSync(filePath, data, options);
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
}
|