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
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { rest } from "msw";
|
|
2
2
|
import { mockAccountId, mockApiToken } from "./helpers/mock-account-id";
|
|
3
3
|
import { mockConsoleMethods } from "./helpers/mock-console";
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
createFetchResult,
|
|
6
|
+
msw,
|
|
7
|
+
mswSuccessNamespacesHandlers,
|
|
8
|
+
} from "./helpers/msw";
|
|
5
9
|
import { runInTempDir } from "./helpers/run-in-tmp";
|
|
6
10
|
import { runWrangler } from "./helpers/run-wrangler";
|
|
7
11
|
|
|
@@ -13,7 +17,7 @@ describe("dispatch-namespace", () => {
|
|
|
13
17
|
mockAccountId();
|
|
14
18
|
mockApiToken();
|
|
15
19
|
|
|
16
|
-
it("should
|
|
20
|
+
it("should display a list of available subcommands, for dispatch-namespace with no subcommand", async () => {
|
|
17
21
|
await runWrangler("dispatch-namespace");
|
|
18
22
|
|
|
19
23
|
// wait a tick for the help menu to be printed
|
|
@@ -23,6 +27,7 @@ describe("dispatch-namespace", () => {
|
|
|
23
27
|
Object {
|
|
24
28
|
"debug": "",
|
|
25
29
|
"err": "",
|
|
30
|
+
"info": "",
|
|
26
31
|
"out": "wrangler dispatch-namespace
|
|
27
32
|
|
|
28
33
|
📦 Interact with a dispatch namespace
|
|
@@ -35,10 +40,11 @@ describe("dispatch-namespace", () => {
|
|
|
35
40
|
wrangler dispatch-namespace rename <old-name> <new-name> Rename a dispatch namespace
|
|
36
41
|
|
|
37
42
|
Flags:
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
43
|
+
-j, --experimental-json-config Experimental: Support wrangler.json [boolean]
|
|
44
|
+
-c, --config Path to .toml configuration file [string]
|
|
45
|
+
-e, --env Environment to use for operations and .env files [string]
|
|
46
|
+
-h, --help Show help [boolean]
|
|
47
|
+
-v, --version Show version number [boolean]",
|
|
42
48
|
"warn": "",
|
|
43
49
|
}
|
|
44
50
|
`);
|
|
@@ -49,22 +55,23 @@ describe("dispatch-namespace", () => {
|
|
|
49
55
|
let counter = 0;
|
|
50
56
|
msw.use(
|
|
51
57
|
rest.post(
|
|
52
|
-
"
|
|
53
|
-
(req, res,
|
|
58
|
+
"*/accounts/:accountId/workers/dispatch/namespaces/:namespaceNameParam",
|
|
59
|
+
(req, res, ctx) => {
|
|
54
60
|
counter++;
|
|
55
61
|
const { namespaceNameParam } = req.params;
|
|
56
62
|
expect(counter).toBe(1);
|
|
57
63
|
expect(namespaceNameParam).toBe(namespaceName);
|
|
58
64
|
return res.once(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
ctx.json(
|
|
66
|
+
createFetchResult({
|
|
67
|
+
namespace_id: "some-namespace-id",
|
|
68
|
+
namespace_name: "namespace-name",
|
|
69
|
+
created_on: "2022-06-29T14:30:08.16152Z",
|
|
70
|
+
created_by: "1fc1df98cc4420fe00367c3ab68c1639",
|
|
71
|
+
modified_on: "2022-06-29T14:30:08.16152Z",
|
|
72
|
+
modified_by: "1fc1df98cc4420fe00367c3ab68c1639",
|
|
73
|
+
})
|
|
74
|
+
)
|
|
68
75
|
);
|
|
69
76
|
}
|
|
70
77
|
)
|
|
@@ -87,10 +94,11 @@ describe("dispatch-namespace", () => {
|
|
|
87
94
|
name Name of the dispatch namespace [string] [required]
|
|
88
95
|
|
|
89
96
|
Flags:
|
|
90
|
-
-
|
|
91
|
-
-
|
|
92
|
-
-
|
|
93
|
-
-
|
|
97
|
+
-j, --experimental-json-config Experimental: Support wrangler.json [boolean]
|
|
98
|
+
-c, --config Path to .toml configuration file [string]
|
|
99
|
+
-e, --env Environment to use for operations and .env files [string]
|
|
100
|
+
-h, --help Show help [boolean]
|
|
101
|
+
-v, --version Show version number [boolean]"
|
|
94
102
|
`);
|
|
95
103
|
});
|
|
96
104
|
|
|
@@ -108,13 +116,13 @@ describe("dispatch-namespace", () => {
|
|
|
108
116
|
let counter = 0;
|
|
109
117
|
msw.use(
|
|
110
118
|
rest.delete(
|
|
111
|
-
"
|
|
112
|
-
(req, res,
|
|
119
|
+
"*/accounts/:accountId/workers/dispatch/namespaces/:namespaceNameParam",
|
|
120
|
+
(req, res, ctx) => {
|
|
113
121
|
counter++;
|
|
114
122
|
const { namespaceNameParam } = req.params;
|
|
115
123
|
expect(counter).toBe(1);
|
|
116
124
|
expect(namespaceNameParam).toBe(namespaceName);
|
|
117
|
-
return res.once(
|
|
125
|
+
return res.once(ctx.json(null));
|
|
118
126
|
}
|
|
119
127
|
)
|
|
120
128
|
);
|
|
@@ -136,10 +144,11 @@ describe("dispatch-namespace", () => {
|
|
|
136
144
|
name Name of the dispatch namespace [string] [required]
|
|
137
145
|
|
|
138
146
|
Flags:
|
|
139
|
-
-
|
|
140
|
-
-
|
|
141
|
-
-
|
|
142
|
-
-
|
|
147
|
+
-j, --experimental-json-config Experimental: Support wrangler.json [boolean]
|
|
148
|
+
-c, --config Path to .toml configuration file [string]
|
|
149
|
+
-e, --env Environment to use for operations and .env files [string]
|
|
150
|
+
-h, --help Show help [boolean]
|
|
151
|
+
-v, --version Show version number [boolean]"
|
|
143
152
|
`);
|
|
144
153
|
});
|
|
145
154
|
|
|
@@ -157,22 +166,23 @@ describe("dispatch-namespace", () => {
|
|
|
157
166
|
let counter = 0;
|
|
158
167
|
msw.use(
|
|
159
168
|
rest.get(
|
|
160
|
-
"
|
|
161
|
-
(req, res,
|
|
169
|
+
"*/accounts/:accountId/workers/dispatch/namespaces/:namespaceNameParam",
|
|
170
|
+
(req, res, ctx) => {
|
|
162
171
|
counter++;
|
|
163
172
|
const { namespaceNameParam } = req.params;
|
|
164
173
|
expect(counter).toBe(1);
|
|
165
174
|
expect(namespaceNameParam).toBe(namespaceName);
|
|
166
175
|
return res.once(
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
+
ctx.json(
|
|
177
|
+
createFetchResult({
|
|
178
|
+
namespace_id: "some-namespace-id",
|
|
179
|
+
namespace_name: "namespace-name",
|
|
180
|
+
created_on: "2022-06-29T14:30:08.16152Z",
|
|
181
|
+
created_by: "1fc1df98cc4420fe00367c3ab68c1639",
|
|
182
|
+
modified_on: "2022-06-29T14:30:08.16152Z",
|
|
183
|
+
modified_by: "1fc1df98cc4420fe00367c3ab68c1639",
|
|
184
|
+
})
|
|
185
|
+
)
|
|
176
186
|
);
|
|
177
187
|
}
|
|
178
188
|
)
|
|
@@ -195,10 +205,11 @@ describe("dispatch-namespace", () => {
|
|
|
195
205
|
name Name of the dispatch namespace [string] [required]
|
|
196
206
|
|
|
197
207
|
Flags:
|
|
198
|
-
-
|
|
199
|
-
-
|
|
200
|
-
-
|
|
201
|
-
-
|
|
208
|
+
-j, --experimental-json-config Experimental: Support wrangler.json [boolean]
|
|
209
|
+
-c, --config Path to .toml configuration file [string]
|
|
210
|
+
-e, --env Environment to use for operations and .env files [string]
|
|
211
|
+
-h, --help Show help [boolean]
|
|
212
|
+
-v, --version Show version number [boolean]"
|
|
202
213
|
`);
|
|
203
214
|
});
|
|
204
215
|
|
|
@@ -223,22 +234,23 @@ describe("dispatch-namespace", () => {
|
|
|
223
234
|
let counter = 0;
|
|
224
235
|
msw.use(
|
|
225
236
|
rest.get(
|
|
226
|
-
"
|
|
227
|
-
(req, res,
|
|
237
|
+
"*/accounts/:accountId/workers/dispatch/namespaces/:namespaceNameParam",
|
|
238
|
+
(req, res, ctx) => {
|
|
228
239
|
counter++;
|
|
229
240
|
const { namespaceNameParam } = req.params;
|
|
230
241
|
expect(counter).toBe(1);
|
|
231
242
|
expect(namespaceNameParam).toBe(namespaceName);
|
|
232
243
|
return res.once(
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
244
|
+
ctx.json(
|
|
245
|
+
createFetchResult({
|
|
246
|
+
namespace_id: "some-namespace-id",
|
|
247
|
+
namespace_name: "namespace-name",
|
|
248
|
+
created_on: "2022-06-29T14:30:08.16152Z",
|
|
249
|
+
created_by: "1fc1df98cc4420fe00367c3ab68c1639",
|
|
250
|
+
modified_on: "2022-06-29T14:30:08.16152Z",
|
|
251
|
+
modified_by: "1fc1df98cc4420fe00367c3ab68c1639",
|
|
252
|
+
})
|
|
253
|
+
)
|
|
242
254
|
);
|
|
243
255
|
}
|
|
244
256
|
)
|
|
@@ -266,22 +278,23 @@ describe("dispatch-namespace", () => {
|
|
|
266
278
|
let counter = 0;
|
|
267
279
|
msw.use(
|
|
268
280
|
rest.put(
|
|
269
|
-
"
|
|
270
|
-
(req, res,
|
|
281
|
+
"*/accounts/:accountId/workers/dispatch/namespaces/:namespaceNameParam",
|
|
282
|
+
(req, res, ctx) => {
|
|
271
283
|
counter++;
|
|
272
284
|
const { namespaceNameParam } = req.params;
|
|
273
285
|
expect(counter).toBe(1);
|
|
274
286
|
expect(namespaceNameParam).toBe(namespaceName);
|
|
275
287
|
return res.once(
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
288
|
+
ctx.json(
|
|
289
|
+
createFetchResult({
|
|
290
|
+
namespace_id: "some-namespace-id",
|
|
291
|
+
namespace_name: "namespace-name",
|
|
292
|
+
created_on: "2022-06-29T14:30:08.16152Z",
|
|
293
|
+
created_by: "1fc1df98cc4420fe00367c3ab68c1639",
|
|
294
|
+
modified_on: "2022-06-29T14:30:08.16152Z",
|
|
295
|
+
modified_by: "1fc1df98cc4420fe00367c3ab68c1639",
|
|
296
|
+
})
|
|
297
|
+
)
|
|
285
298
|
);
|
|
286
299
|
}
|
|
287
300
|
)
|
|
@@ -305,10 +318,11 @@ describe("dispatch-namespace", () => {
|
|
|
305
318
|
new-name New name of the dispatch namespace [string] [required]
|
|
306
319
|
|
|
307
320
|
Flags:
|
|
308
|
-
-
|
|
309
|
-
-
|
|
310
|
-
-
|
|
311
|
-
-
|
|
321
|
+
-j, --experimental-json-config Experimental: Support wrangler.json [boolean]
|
|
322
|
+
-c, --config Path to .toml configuration file [string]
|
|
323
|
+
-e, --env Environment to use for operations and .env files [string]
|
|
324
|
+
-h, --help Show help [boolean]
|
|
325
|
+
-v, --version Show version number [boolean]"
|
|
312
326
|
`);
|
|
313
327
|
});
|
|
314
328
|
|
package/src/api/dev.ts
CHANGED
|
@@ -3,28 +3,28 @@ import { startApiDev, startDev } from "../dev";
|
|
|
3
3
|
import { logger } from "../logger";
|
|
4
4
|
|
|
5
5
|
import type { Environment } from "../config";
|
|
6
|
-
import type {
|
|
6
|
+
import type { Rule } from "../config/environment";
|
|
7
|
+
import type { EnablePagesAssetsServiceBindingOptions } from "../miniflare-cli/types";
|
|
8
|
+
import type { CfModule } from "../worker";
|
|
7
9
|
import type { RequestInit, Response, RequestInfo } from "undici";
|
|
8
10
|
|
|
9
|
-
interface
|
|
10
|
-
config?: string;
|
|
11
|
-
env?: string;
|
|
12
|
-
ip?: string;
|
|
13
|
-
port?: number;
|
|
14
|
-
bundle?: boolean;
|
|
15
|
-
inspectorPort?: number;
|
|
16
|
-
localProtocol?: "http" | "https";
|
|
17
|
-
assets?: string;
|
|
18
|
-
site?: string;
|
|
19
|
-
siteInclude?: string[];
|
|
20
|
-
siteExclude?: string[];
|
|
21
|
-
nodeCompat?: boolean;
|
|
22
|
-
compatibilityDate?: string;
|
|
23
|
-
compatibilityFlags?: string[];
|
|
24
|
-
persist?: boolean;
|
|
25
|
-
persistTo?: string;
|
|
26
|
-
liveReload?: boolean;
|
|
27
|
-
watch?: boolean;
|
|
11
|
+
export interface UnstableDevOptions {
|
|
12
|
+
config?: string; // Path to .toml configuration file, relative to cwd
|
|
13
|
+
env?: string; // Environment to use for operations and .env files
|
|
14
|
+
ip?: string; // IP address to listen on
|
|
15
|
+
port?: number; // Port to listen on
|
|
16
|
+
bundle?: boolean; // Set to false to skip internal build steps and directly publish script
|
|
17
|
+
inspectorPort?: number; // Port for devtools to connect to
|
|
18
|
+
localProtocol?: "http" | "https"; // Protocol to listen to requests on, defaults to http.
|
|
19
|
+
assets?: string; // Static assets to be served
|
|
20
|
+
site?: string; // Root folder of static assets for Workers Sites
|
|
21
|
+
siteInclude?: string[]; // Array of .gitignore-style patterns that match file or directory names from the sites directory. Only matched items will be uploaded.
|
|
22
|
+
siteExclude?: string[]; // Array of .gitignore-style patterns that match file or directory names from the sites directory. Matched items will not be uploaded.
|
|
23
|
+
nodeCompat?: boolean; // Enable Node.js compatibility
|
|
24
|
+
compatibilityDate?: string; // Date to use for compatibility checks
|
|
25
|
+
compatibilityFlags?: string[]; // Flags to use for compatibility checks
|
|
26
|
+
persist?: boolean; // Enable persistence for local mode, using default path: .wrangler/state
|
|
27
|
+
persistTo?: string; // Specify directory to use for local persistence (implies --persist)
|
|
28
28
|
vars?: {
|
|
29
29
|
[key: string]: unknown;
|
|
30
30
|
};
|
|
@@ -44,23 +44,28 @@ interface DevOptions {
|
|
|
44
44
|
bucket_name: string;
|
|
45
45
|
preview_bucket_name?: string;
|
|
46
46
|
}[];
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
logLevel?: "none" | "info" | "error" | "log" | "warn" | "debug";
|
|
50
|
-
logPrefix?: string;
|
|
47
|
+
moduleRoot?: string;
|
|
48
|
+
rules?: Rule[];
|
|
49
|
+
logLevel?: "none" | "info" | "error" | "log" | "warn" | "debug"; // Specify logging level [choices: "debug", "info", "log", "warn", "error", "none"] [default: "log"]
|
|
51
50
|
inspect?: boolean;
|
|
52
51
|
local?: boolean;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
52
|
+
accountId?: string;
|
|
53
|
+
experimental?: {
|
|
54
|
+
processEntrypoint?: boolean;
|
|
55
|
+
additionalModules?: CfModule[];
|
|
56
|
+
d1Databases?: Environment["d1_databases"];
|
|
57
|
+
disableExperimentalWarning?: boolean; // Disables wrangler's warning when unstable APIs are used.
|
|
58
|
+
disableDevRegistry?: boolean; // Disables wrangler's support multi-worker setups. May reduce flakiness when used in tests in CI.
|
|
59
|
+
enablePagesAssetsServiceBinding?: EnablePagesAssetsServiceBindingOptions;
|
|
60
|
+
experimentalLocal?: boolean; // Use Miniflare 3 instead of Miniflare 2
|
|
61
|
+
experimentalLocalRemoteKv?: boolean;
|
|
62
|
+
forceLocal?: boolean;
|
|
63
|
+
liveReload?: boolean; // Auto reload HTML pages when change is detected in local mode
|
|
64
|
+
showInteractiveDevSession?: boolean;
|
|
65
|
+
testMode?: boolean; // This option shouldn't be used - We plan on removing it eventually
|
|
66
|
+
testScheduled?: boolean; // Test scheduled events by visiting /__scheduled in browser
|
|
67
|
+
watch?: boolean; // unstable_dev doesn't support watch-mode yet in testMode
|
|
68
|
+
};
|
|
64
69
|
}
|
|
65
70
|
|
|
66
71
|
export interface UnstableDevWorker {
|
|
@@ -75,11 +80,46 @@ export interface UnstableDevWorker {
|
|
|
75
80
|
*/
|
|
76
81
|
export async function unstable_dev(
|
|
77
82
|
script: string,
|
|
78
|
-
options?:
|
|
79
|
-
apiOptions?:
|
|
83
|
+
options?: UnstableDevOptions,
|
|
84
|
+
apiOptions?: unknown
|
|
80
85
|
): Promise<UnstableDevWorker> {
|
|
81
|
-
|
|
82
|
-
|
|
86
|
+
// Note that not every experimental option is passed directly through to the underlying dev API - experimental options can be used here in unstable_dev. Otherwise we could just pass experimental down to dev blindly.
|
|
87
|
+
|
|
88
|
+
const experimentalOptions = {
|
|
89
|
+
// Defaults for "experimental" options
|
|
90
|
+
disableDevRegistry: false,
|
|
91
|
+
disableExperimentalWarning: false,
|
|
92
|
+
showInteractiveDevSession: false,
|
|
93
|
+
testMode: true,
|
|
94
|
+
// Override all options, including overwriting with "undefined"
|
|
95
|
+
...options?.experimental,
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
const {
|
|
99
|
+
// there are two types of "experimental" options:
|
|
100
|
+
// 1. options to unstable_dev that we're still testing or are unsure of
|
|
101
|
+
processEntrypoint = false,
|
|
102
|
+
additionalModules,
|
|
103
|
+
disableDevRegistry,
|
|
104
|
+
disableExperimentalWarning,
|
|
105
|
+
forceLocal,
|
|
106
|
+
liveReload,
|
|
107
|
+
showInteractiveDevSession,
|
|
108
|
+
testMode,
|
|
109
|
+
testScheduled,
|
|
110
|
+
// 2. options for alpha/beta products/libs
|
|
111
|
+
d1Databases,
|
|
112
|
+
experimentalLocal,
|
|
113
|
+
experimentalLocalRemoteKv,
|
|
114
|
+
enablePagesAssetsServiceBinding,
|
|
115
|
+
} = experimentalOptions;
|
|
116
|
+
|
|
117
|
+
if (apiOptions) {
|
|
118
|
+
logger.error(
|
|
119
|
+
"unstable_dev's third argument (apiOptions) has been deprecated in favor of an `experimental` property within the second argument (options).\nPlease update your code from:\n`await unstable_dev('...', {...}, {...});`\nto:\n`await unstable_dev('...', {..., experimental: {...}});`"
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
|
|
83
123
|
if (!disableExperimentalWarning) {
|
|
84
124
|
logger.warn(
|
|
85
125
|
`unstable_dev() is experimental\nunstable_dev()'s behaviour will likely change in future releases`
|
|
@@ -99,17 +139,61 @@ export async function unstable_dev(
|
|
|
99
139
|
script: script,
|
|
100
140
|
inspect: false,
|
|
101
141
|
logLevel: "none",
|
|
102
|
-
showInteractiveDevSession: false,
|
|
103
142
|
_: [],
|
|
104
143
|
$0: "",
|
|
105
144
|
port: options?.port ?? 0,
|
|
106
145
|
local: true,
|
|
107
|
-
|
|
146
|
+
d1Databases,
|
|
147
|
+
disableDevRegistry,
|
|
148
|
+
testScheduled: testScheduled ?? false,
|
|
149
|
+
experimentalLocal: experimentalLocal ?? false,
|
|
150
|
+
experimentalLocalRemoteKv: experimentalLocalRemoteKv ?? false,
|
|
151
|
+
enablePagesAssetsServiceBinding,
|
|
152
|
+
liveReload,
|
|
153
|
+
showInteractiveDevSession,
|
|
108
154
|
onReady: (address, port) => {
|
|
109
155
|
readyPort = port;
|
|
110
156
|
readyAddress = address;
|
|
111
157
|
ready(devServer);
|
|
112
158
|
},
|
|
159
|
+
config: options?.config,
|
|
160
|
+
env: options?.env,
|
|
161
|
+
processEntrypoint,
|
|
162
|
+
additionalModules,
|
|
163
|
+
bundle: options?.bundle,
|
|
164
|
+
compatibilityDate: options?.compatibilityDate,
|
|
165
|
+
compatibilityFlags: options?.compatibilityFlags,
|
|
166
|
+
ip: options?.ip,
|
|
167
|
+
inspectorPort: options?.inspectorPort,
|
|
168
|
+
v: undefined,
|
|
169
|
+
localProtocol: options?.localProtocol,
|
|
170
|
+
assets: options?.assets,
|
|
171
|
+
site: options?.site, // Root folder of static assets for Workers Sites
|
|
172
|
+
siteInclude: options?.siteInclude, // Array of .gitignore-style patterns that match file or directory names from the sites directory. Only matched items will be uploaded.
|
|
173
|
+
siteExclude: options?.siteExclude, // Array of .gitignore-style patterns that match file or directory names from the sites directory. Matched items will not be uploaded.
|
|
174
|
+
nodeCompat: options?.nodeCompat, // Enable Node.js compatibility
|
|
175
|
+
persist: options?.persist, // Enable persistence for local mode, using default path: .wrangler/state
|
|
176
|
+
persistTo: options?.persistTo, // Specify directory to use for local persistence (implies --persist)
|
|
177
|
+
experimentalJsonConfig: undefined,
|
|
178
|
+
name: undefined,
|
|
179
|
+
noBundle: false,
|
|
180
|
+
format: undefined,
|
|
181
|
+
latest: false,
|
|
182
|
+
routes: undefined,
|
|
183
|
+
host: undefined,
|
|
184
|
+
localUpstream: undefined,
|
|
185
|
+
experimentalPublic: undefined,
|
|
186
|
+
upstreamProtocol: undefined,
|
|
187
|
+
var: undefined,
|
|
188
|
+
define: undefined,
|
|
189
|
+
jsxFactory: undefined,
|
|
190
|
+
jsxFragment: undefined,
|
|
191
|
+
tsconfig: undefined,
|
|
192
|
+
minify: undefined,
|
|
193
|
+
experimentalEnableLocalPersistence: undefined,
|
|
194
|
+
legacyEnv: undefined,
|
|
195
|
+
public: undefined,
|
|
196
|
+
...options,
|
|
113
197
|
});
|
|
114
198
|
}).then((devServer) => {
|
|
115
199
|
// now that the inner promise has resolved, we can resolve the outer promise
|
|
@@ -145,16 +229,63 @@ export async function unstable_dev(
|
|
|
145
229
|
const devServer = startDev({
|
|
146
230
|
script: script,
|
|
147
231
|
inspect: false,
|
|
148
|
-
showInteractiveDevSession: false,
|
|
149
232
|
_: [],
|
|
150
233
|
$0: "",
|
|
234
|
+
logLevel: options?.logLevel ?? "log",
|
|
235
|
+
port: options?.port ?? 0,
|
|
151
236
|
local: true,
|
|
152
|
-
|
|
237
|
+
showInteractiveDevSession,
|
|
238
|
+
d1Databases,
|
|
239
|
+
disableDevRegistry,
|
|
240
|
+
testScheduled: testScheduled ?? false,
|
|
241
|
+
experimentalLocal: experimentalLocal ?? false,
|
|
242
|
+
experimentalLocalRemoteKv: experimentalLocalRemoteKv ?? false,
|
|
243
|
+
enablePagesAssetsServiceBinding,
|
|
244
|
+
forceLocal,
|
|
245
|
+
liveReload,
|
|
153
246
|
onReady: (address, port) => {
|
|
154
247
|
readyPort = port;
|
|
155
248
|
readyAddress = address;
|
|
156
249
|
ready(devServer);
|
|
157
250
|
},
|
|
251
|
+
config: options?.config,
|
|
252
|
+
env: options?.env,
|
|
253
|
+
processEntrypoint,
|
|
254
|
+
additionalModules,
|
|
255
|
+
bundle: options?.bundle,
|
|
256
|
+
compatibilityDate: options?.compatibilityDate,
|
|
257
|
+
compatibilityFlags: options?.compatibilityFlags,
|
|
258
|
+
ip: options?.ip,
|
|
259
|
+
inspectorPort: options?.inspectorPort,
|
|
260
|
+
v: undefined,
|
|
261
|
+
localProtocol: options?.localProtocol,
|
|
262
|
+
assets: options?.assets,
|
|
263
|
+
site: options?.site, // Root folder of static assets for Workers Sites
|
|
264
|
+
siteInclude: options?.siteInclude, // Array of .gitignore-style patterns that match file or directory names from the sites directory. Only matched items will be uploaded.
|
|
265
|
+
siteExclude: options?.siteExclude, // Array of .gitignore-style patterns that match file or directory names from the sites directory. Matched items will not be uploaded.
|
|
266
|
+
nodeCompat: options?.nodeCompat, // Enable Node.js compatibility
|
|
267
|
+
persist: options?.persist, // Enable persistence for local mode, using default path: .wrangler/state
|
|
268
|
+
persistTo: options?.persistTo, // Specify directory to use for local persistence (implies --persist)
|
|
269
|
+
experimentalJsonConfig: undefined,
|
|
270
|
+
name: undefined,
|
|
271
|
+
noBundle: false,
|
|
272
|
+
format: undefined,
|
|
273
|
+
latest: false,
|
|
274
|
+
routes: undefined,
|
|
275
|
+
host: undefined,
|
|
276
|
+
localUpstream: undefined,
|
|
277
|
+
experimentalPublic: undefined,
|
|
278
|
+
upstreamProtocol: undefined,
|
|
279
|
+
var: undefined,
|
|
280
|
+
define: undefined,
|
|
281
|
+
jsxFactory: undefined,
|
|
282
|
+
jsxFragment: undefined,
|
|
283
|
+
tsconfig: undefined,
|
|
284
|
+
minify: undefined,
|
|
285
|
+
experimentalEnableLocalPersistence: undefined,
|
|
286
|
+
legacyEnv: undefined,
|
|
287
|
+
public: undefined,
|
|
288
|
+
...options,
|
|
158
289
|
});
|
|
159
290
|
}).then((devServer) => {
|
|
160
291
|
resolve({
|
|
@@ -182,27 +313,16 @@ export async function unstable_dev(
|
|
|
182
313
|
export function parseRequestInput(
|
|
183
314
|
readyAddress: string,
|
|
184
315
|
readyPort: number,
|
|
185
|
-
input
|
|
316
|
+
input: RequestInfo = "/",
|
|
186
317
|
init?: RequestInit,
|
|
187
318
|
protocol: "http" | "https" = "http"
|
|
188
319
|
): [RequestInfo, RequestInit | undefined] {
|
|
189
320
|
if (input instanceof Request) {
|
|
190
321
|
return [input, undefined];
|
|
191
|
-
} else if (input instanceof URL) {
|
|
192
|
-
input = `${protocol}://${readyAddress}:${readyPort}${input.pathname}`;
|
|
193
|
-
} else if (typeof input === "string") {
|
|
194
|
-
try {
|
|
195
|
-
// Want to strip the URL to only get the pathname, but the user could pass in only the pathname
|
|
196
|
-
// Will error if we try and pass "/something" into new URL("/something")
|
|
197
|
-
input = `${protocol}://${readyAddress}:${readyPort}${
|
|
198
|
-
new URL(input).pathname
|
|
199
|
-
}`;
|
|
200
|
-
} catch {
|
|
201
|
-
input = `${protocol}://${readyAddress}:${readyPort}${input}`;
|
|
202
|
-
}
|
|
203
|
-
} else {
|
|
204
|
-
input = `${protocol}://${readyAddress}:${readyPort}`;
|
|
205
322
|
}
|
|
206
|
-
|
|
207
|
-
|
|
323
|
+
const url = new URL(`${input}`, `${protocol}://${readyAddress}:${readyPort}`);
|
|
324
|
+
url.protocol = protocol;
|
|
325
|
+
url.hostname = readyAddress;
|
|
326
|
+
url.port = readyPort.toString();
|
|
327
|
+
return [url, init];
|
|
208
328
|
}
|
package/src/api/index.ts
CHANGED
|
@@ -1,2 +1,11 @@
|
|
|
1
1
|
export { unstable_dev } from "./dev";
|
|
2
|
-
export type { UnstableDevWorker } from "./dev";
|
|
2
|
+
export type { UnstableDevWorker, UnstableDevOptions } from "./dev";
|
|
3
|
+
export { unstable_pages } from "./pages";
|
|
4
|
+
export {
|
|
5
|
+
uploadMTlsCertificate,
|
|
6
|
+
uploadMTlsCertificateFromFs,
|
|
7
|
+
listMTlsCertificates,
|
|
8
|
+
getMTlsCertificate,
|
|
9
|
+
getMTlsCertificateByName,
|
|
10
|
+
deleteMTlsCertificate,
|
|
11
|
+
} from "./mtls-certificate";
|