wrangler 0.0.0-e87ad068 → 0.0.0-e8997b87
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 +11 -13
- package/bin/wrangler.js +13 -102
- package/config-schema.json +3052 -0
- package/package.json +197 -199
- package/templates/__tests__/tsconfig.json +1 -1
- package/templates/checked-fetch.js +11 -4
- package/templates/facade.d.ts +7 -2
- package/templates/gitignore +2 -4
- package/templates/init-tests/test-vitest-new-worker.js +1 -1
- package/templates/init-tests/test-vitest-new-worker.ts +1 -1
- package/templates/middleware/common.ts +9 -4
- package/templates/middleware/loader-modules.ts +94 -44
- package/templates/middleware/loader-sw.ts +6 -10
- package/templates/middleware/middleware-ensure-req-body-drained.ts +18 -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 +1 -1
- package/templates/pages-dev-pipeline.ts +2 -1
- package/templates/pages-shim.ts +0 -3
- package/templates/pages-template-plugin.ts +14 -4
- package/templates/pages-template-worker.ts +12 -3
- package/templates/startDevWorker/InspectorProxyWorker.ts +664 -0
- package/templates/startDevWorker/ProxyWorker.ts +334 -0
- package/templates/tsconfig.init.json +1 -1
- package/templates/tsconfig.json +1 -1
- package/wrangler-dist/InspectorProxyWorker.js +464 -0
- package/wrangler-dist/InspectorProxyWorker.js.map +6 -0
- package/wrangler-dist/ProxyWorker.js +240 -0
- package/wrangler-dist/ProxyWorker.js.map +6 -0
- package/wrangler-dist/cli.d.ts +24940 -306
- package/wrangler-dist/cli.js +173787 -118025
- package/wrangler-dist/wasm-sync.wasm +0 -0
- package/Cloudflare_CA.pem +0 -18
- 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 -6442
- package/src/__tests__/access.test.ts +0 -25
- package/src/__tests__/api-dev.test.ts +0 -238
- package/src/__tests__/api-devregistry.test.ts +0 -121
- package/src/__tests__/api.test.ts +0 -102
- 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 -4727
- package/src/__tests__/constellation.test.ts +0 -371
- package/src/__tests__/d1/d1.test.ts +0 -82
- package/src/__tests__/d1/execute.test.ts +0 -66
- package/src/__tests__/d1/migrate.test.ts +0 -257
- package/src/__tests__/d1/splitter.test.ts +0 -255
- package/src/__tests__/delete.test.ts +0 -272
- package/src/__tests__/deployments.test.ts +0 -369
- package/src/__tests__/dev.test.tsx +0 -1617
- package/src/__tests__/generate.test.ts +0 -237
- package/src/__tests__/get-host-from-url.test.ts +0 -16
- package/src/__tests__/guess-worker-format.test.ts +0 -120
- package/src/__tests__/helpers/clipboardy-mock.js +0 -4
- package/src/__tests__/helpers/cmd-shim.d.ts +0 -11
- package/src/__tests__/helpers/end-event-loop.ts +0 -6
- 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-console.ts +0 -112
- package/src/__tests__/helpers/mock-dialogs.ts +0 -139
- package/src/__tests__/helpers/mock-get-pages-upload-token.ts +0 -25
- package/src/__tests__/helpers/mock-get-zone-from-host.ts +0 -11
- 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 -12
- package/src/__tests__/helpers/mock-kv.ts +0 -46
- package/src/__tests__/helpers/mock-oauth-flow.ts +0 -263
- package/src/__tests__/helpers/mock-process.ts +0 -34
- package/src/__tests__/helpers/mock-set-timeout.ts +0 -16
- package/src/__tests__/helpers/mock-stdin.ts +0 -108
- package/src/__tests__/helpers/mock-web-socket.ts +0 -29
- package/src/__tests__/helpers/msw/blob-worker.cjs +0 -19
- package/src/__tests__/helpers/msw/handlers/access.ts +0 -13
- package/src/__tests__/helpers/msw/handlers/deployments.ts +0 -160
- package/src/__tests__/helpers/msw/handlers/namespaces.ts +0 -81
- package/src/__tests__/helpers/msw/handlers/oauth.ts +0 -31
- package/src/__tests__/helpers/msw/handlers/r2.ts +0 -60
- package/src/__tests__/helpers/msw/handlers/script.ts +0 -56
- package/src/__tests__/helpers/msw/handlers/user.ts +0 -52
- package/src/__tests__/helpers/msw/handlers/zones.ts +0 -20
- package/src/__tests__/helpers/msw/index.ts +0 -52
- package/src/__tests__/helpers/msw/read-file-sync.js +0 -61
- package/src/__tests__/helpers/run-in-tmp.ts +0 -38
- package/src/__tests__/helpers/run-wrangler.ts +0 -16
- package/src/__tests__/helpers/string-dynamic-values-matcher.ts +0 -28
- 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 -11
- 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 -282
- package/src/__tests__/init.test.ts +0 -3302
- package/src/__tests__/jest.setup.ts +0 -179
- package/src/__tests__/kv.test.ts +0 -1799
- package/src/__tests__/logger.test.ts +0 -207
- package/src/__tests__/logout.test.ts +0 -47
- package/src/__tests__/metrics.test.ts +0 -493
- package/src/__tests__/middleware.scheduled.test.ts +0 -145
- package/src/__tests__/middleware.test.ts +0 -816
- package/src/__tests__/mtls-certificates.test.ts +0 -589
- package/src/__tests__/package-manager.test.ts +0 -353
- package/src/__tests__/pages/deployment-list.test.ts +0 -80
- package/src/__tests__/pages/functions-build.test.ts +0 -529
- package/src/__tests__/pages/pages.test.ts +0 -81
- package/src/__tests__/pages/project-create.test.ts +0 -63
- package/src/__tests__/pages/project-list.test.ts +0 -110
- package/src/__tests__/pages/project-upload.test.ts +0 -500
- package/src/__tests__/pages/publish.test.ts +0 -2864
- package/src/__tests__/pages-deployment-tail.test.ts +0 -957
- package/src/__tests__/parse.test.ts +0 -436
- package/src/__tests__/paths.test.ts +0 -39
- package/src/__tests__/publish.test.ts +0 -8882
- package/src/__tests__/pubsub.test.ts +0 -496
- package/src/__tests__/queues.test.ts +0 -532
- package/src/__tests__/r2.test.ts +0 -374
- package/src/__tests__/route.test.ts +0 -45
- package/src/__tests__/secret.test.ts +0 -693
- package/src/__tests__/tail.test.ts +0 -1000
- package/src/__tests__/test-old-node-version.js +0 -31
- package/src/__tests__/traverse-module-graph.test.ts +0 -220
- 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 -234
- package/src/__tests__/unstableDev.test.ts +0 -61
- package/src/__tests__/user.test.ts +0 -118
- 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 -172
- package/src/__tests__/worker-namespace.test.ts +0 -340
- package/src/abort.d.ts +0 -3
- package/src/api/dev.ts +0 -328
- package/src/api/index.ts +0 -11
- package/src/api/mtls-certificate.ts +0 -148
- package/src/api/pages/create-worker-bundle-contents.ts +0 -80
- package/src/api/pages/index.ts +0 -5
- package/src/api/pages/publish.tsx +0 -371
- package/src/bundle-reporter.ts +0 -68
- package/src/bundle.ts +0 -952
- package/src/cfetch/index.ts +0 -158
- package/src/cfetch/internal.ts +0 -263
- package/src/cli.ts +0 -28
- package/src/config/README.md +0 -107
- package/src/config/config.ts +0 -282
- package/src/config/diagnostics.ts +0 -80
- package/src/config/environment.ts +0 -659
- package/src/config/index.ts +0 -424
- package/src/config/validation-helpers.ts +0 -597
- package/src/config/validation.ts +0 -2524
- package/src/config-cache.ts +0 -85
- package/src/constellation/createProject.tsx +0 -51
- package/src/constellation/deleteProject.ts +0 -51
- package/src/constellation/deleteProjectModel.ts +0 -76
- package/src/constellation/index.ts +0 -75
- package/src/constellation/listCatalog.tsx +0 -35
- package/src/constellation/listModel.tsx +0 -49
- package/src/constellation/listProject.tsx +0 -28
- package/src/constellation/listRuntime.tsx +0 -28
- package/src/constellation/options.ts +0 -17
- package/src/constellation/types.ts +0 -17
- package/src/constellation/uploadModel.tsx +0 -84
- package/src/constellation/utils.ts +0 -90
- package/src/create-worker-preview.ts +0 -293
- package/src/create-worker-upload-form.ts +0 -384
- package/src/d1/backups.tsx +0 -219
- package/src/d1/constants.ts +0 -5
- package/src/d1/create.tsx +0 -102
- package/src/d1/delete.ts +0 -53
- package/src/d1/execute.tsx +0 -371
- package/src/d1/formatTimeAgo.ts +0 -14
- package/src/d1/index.ts +0 -100
- package/src/d1/list.tsx +0 -62
- package/src/d1/migrations/apply.tsx +0 -235
- package/src/d1/migrations/create.tsx +0 -79
- package/src/d1/migrations/helpers.ts +0 -171
- package/src/d1/migrations/index.ts +0 -3
- package/src/d1/migrations/list.tsx +0 -95
- package/src/d1/migrations/options.ts +0 -23
- package/src/d1/options.ts +0 -22
- package/src/d1/splitter.ts +0 -161
- package/src/d1/types.ts +0 -32
- package/src/d1/utils.ts +0 -49
- package/src/delete.ts +0 -100
- package/src/deployments.ts +0 -368
- package/src/deprecated/index.ts +0 -144
- package/src/dev/dev-vars.ts +0 -39
- package/src/dev/dev.tsx +0 -607
- package/src/dev/get-local-persistence-path.ts +0 -31
- package/src/dev/local.tsx +0 -952
- package/src/dev/remote.tsx +0 -636
- package/src/dev/start-server.ts +0 -558
- package/src/dev/use-esbuild.ts +0 -230
- package/src/dev/validate-dev-props.ts +0 -40
- package/src/dev-registry.ts +0 -213
- package/src/dev.tsx +0 -946
- package/src/dialogs.ts +0 -136
- package/src/dispatch-namespace.ts +0 -211
- package/src/docs/helpers.ts +0 -50
- package/src/docs/index.ts +0 -54
- package/src/durable.ts +0 -102
- package/src/entry.ts +0 -344
- package/src/environment-variables/factory.ts +0 -89
- package/src/environment-variables/misc-variables.ts +0 -30
- package/src/errors.ts +0 -11
- package/src/generate/index.ts +0 -303
- 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.ts +0 -769
- package/src/init.ts +0 -1074
- package/src/inspect.ts +0 -883
- 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 -433
- package/src/kv/index.ts +0 -594
- package/src/logger.ts +0 -123
- 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 -99
- package/src/miniflare-cli/README.md +0 -30
- package/src/miniflare-cli/assets.ts +0 -251
- 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 -333
- package/src/mtls-certificate/cli.ts +0 -155
- package/src/open-in-browser.ts +0 -17
- package/src/package-manager.ts +0 -219
- package/src/pages/build.ts +0 -423
- package/src/pages/buildFunctions.ts +0 -140
- package/src/pages/constants.ts +0 -18
- package/src/pages/deployment-tails.ts +0 -281
- package/src/pages/deployments.tsx +0 -84
- package/src/pages/dev.ts +0 -759
- package/src/pages/errors.ts +0 -67
- package/src/pages/functions/buildPlugin.ts +0 -114
- package/src/pages/functions/buildWorker.ts +0 -381
- 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.ts +0 -86
- package/src/pages/hash.ts +0 -13
- package/src/pages/index.ts +0 -102
- package/src/pages/projects.tsx +0 -159
- package/src/pages/prompt-select-project.tsx +0 -31
- package/src/pages/publish.tsx +0 -267
- package/src/pages/types.ts +0 -46
- package/src/pages/upload.tsx +0 -469
- package/src/pages/utils.ts +0 -23
- package/src/parse.ts +0 -308
- package/src/paths.ts +0 -71
- package/src/proxy.ts +0 -694
- package/src/publish/index.ts +0 -274
- package/src/publish/publish.ts +0 -1068
- package/src/pubsub/index.ts +0 -286
- package/src/pubsub/pubsub-commands.ts +0 -623
- package/src/queues/cli/commands/consumer/add.ts +0 -71
- package/src/queues/cli/commands/consumer/index.ts +0 -19
- package/src/queues/cli/commands/consumer/remove.ts +0 -31
- 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 -35
- package/src/queues/cli/commands/list.ts +0 -25
- package/src/queues/client.ts +0 -136
- package/src/queues/utils.ts +0 -18
- package/src/r2/constants.ts +0 -4
- package/src/r2/helpers.ts +0 -132
- package/src/r2/index.ts +0 -289
- package/src/routes.ts +0 -140
- package/src/secret/index.ts +0 -380
- package/src/selfsigned.d.ts +0 -29
- package/src/sites.ts +0 -484
- package/src/tail/createTail.ts +0 -415
- package/src/tail/filters.ts +0 -277
- package/src/tail/index.ts +0 -211
- package/src/tail/printing.ts +0 -134
- package/src/traverse-module-graph.ts +0 -54
- package/src/tsconfig-sanity.ts +0 -16
- package/src/type-generation.ts +0 -187
- 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 -39
- 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.ts +0 -1234
- package/src/utils/collectKeyValues.ts +0 -14
- package/src/utils/render.ts +0 -93
- package/src/whoami.ts +0 -135
- package/src/worker.ts +0 -300
- package/src/yargs-types.ts +0 -37
- package/src/zones.ts +0 -191
- package/templates/__tests__/tsconfig.tsbuildinfo +0 -1
- package/templates/d1-beta-facade.js +0 -244
- package/templates/first-party-worker-module-facade.ts +0 -19
- package/templates/format-dev-errors.ts +0 -34
- package/templates/serve-static-assets.ts +0 -66
- package/templates/service-bindings-module-facade.js +0 -55
- package/templates/service-bindings-sw-facade.js +0 -42
- package/templates/tsconfig.tsbuildinfo +0 -1
package/src/d1/splitter.ts
DELETED
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module
|
|
3
|
-
* This code is inspired by that of https://www.atdatabases.org/docs/split-sql-query, which is published under MIT license,
|
|
4
|
-
* and is Copyright (c) 2019 Forbes Lindesay.
|
|
5
|
-
*
|
|
6
|
-
* See https://github.com/ForbesLindesay/atdatabases/blob/103c1e7/packages/split-sql-query/src/index.ts
|
|
7
|
-
* for the original code.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Is the given `sql` string likely to contain multiple statements.
|
|
12
|
-
*
|
|
13
|
-
* If `mayContainMultipleStatements()` returns `false` you can be confident that the sql
|
|
14
|
-
* does not contain multiple statements. Otherwise you have to check further.
|
|
15
|
-
*/
|
|
16
|
-
export function mayContainMultipleStatements(sql: string): boolean {
|
|
17
|
-
const trimmed = sql.trimEnd();
|
|
18
|
-
const semiColonIndex = trimmed.indexOf(";");
|
|
19
|
-
return semiColonIndex !== -1 && semiColonIndex !== trimmed.length - 1;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Split an SQLQuery into an array of statements
|
|
24
|
-
*/
|
|
25
|
-
export default function splitSqlQuery(sql: string): string[] {
|
|
26
|
-
if (!mayContainMultipleStatements(sql)) return [sql];
|
|
27
|
-
const split = splitSqlIntoStatements(sql);
|
|
28
|
-
if (split.length === 0) {
|
|
29
|
-
return [sql];
|
|
30
|
-
} else {
|
|
31
|
-
return split;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function splitSqlIntoStatements(sql: string): string[] {
|
|
36
|
-
const statements: string[] = [];
|
|
37
|
-
let str = "";
|
|
38
|
-
const compoundStatementStack: ((s: string) => boolean)[] = [];
|
|
39
|
-
|
|
40
|
-
const iterator = sql[Symbol.iterator]();
|
|
41
|
-
let next = iterator.next();
|
|
42
|
-
while (!next.done) {
|
|
43
|
-
const char = next.value;
|
|
44
|
-
|
|
45
|
-
if (compoundStatementStack[0]?.(str + char)) {
|
|
46
|
-
compoundStatementStack.shift();
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
switch (char) {
|
|
50
|
-
case `'`:
|
|
51
|
-
case `"`:
|
|
52
|
-
case "`":
|
|
53
|
-
str += char + consumeUntilMarker(iterator, char);
|
|
54
|
-
break;
|
|
55
|
-
case `$`: {
|
|
56
|
-
const dollarQuote =
|
|
57
|
-
"$" + consumeWhile(iterator, isDollarQuoteIdentifier);
|
|
58
|
-
str += dollarQuote;
|
|
59
|
-
if (dollarQuote.endsWith("$")) {
|
|
60
|
-
str += consumeUntilMarker(iterator, dollarQuote);
|
|
61
|
-
}
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
64
|
-
case `-`:
|
|
65
|
-
str += char;
|
|
66
|
-
next = iterator.next();
|
|
67
|
-
if (!next.done && next.value === "-") {
|
|
68
|
-
str += next.value + consumeUntilMarker(iterator, "\n");
|
|
69
|
-
break;
|
|
70
|
-
} else {
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
case `/`:
|
|
74
|
-
str += char;
|
|
75
|
-
next = iterator.next();
|
|
76
|
-
if (!next.done && next.value === "*") {
|
|
77
|
-
str += next.value + consumeUntilMarker(iterator, "*/");
|
|
78
|
-
break;
|
|
79
|
-
} else {
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
case `;`:
|
|
83
|
-
if (compoundStatementStack.length === 0) {
|
|
84
|
-
statements.push(str);
|
|
85
|
-
str = "";
|
|
86
|
-
} else {
|
|
87
|
-
str += char;
|
|
88
|
-
}
|
|
89
|
-
break;
|
|
90
|
-
default:
|
|
91
|
-
str += char;
|
|
92
|
-
break;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (isCompoundStatementStart(str)) {
|
|
96
|
-
compoundStatementStack.unshift(isCompoundStatementEnd);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
next = iterator.next();
|
|
100
|
-
}
|
|
101
|
-
statements.push(str);
|
|
102
|
-
|
|
103
|
-
return statements
|
|
104
|
-
.map((statement) => statement.trim())
|
|
105
|
-
.filter((statement) => statement.length > 0);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Pulls characters from the string iterator while the predicate remains true.
|
|
110
|
-
*/
|
|
111
|
-
function consumeWhile(
|
|
112
|
-
iterator: Iterator<string>,
|
|
113
|
-
predicate: (str: string) => boolean
|
|
114
|
-
) {
|
|
115
|
-
let next = iterator.next();
|
|
116
|
-
let str = "";
|
|
117
|
-
while (!next.done) {
|
|
118
|
-
str += next.value;
|
|
119
|
-
if (!predicate(str)) {
|
|
120
|
-
break;
|
|
121
|
-
}
|
|
122
|
-
next = iterator.next();
|
|
123
|
-
}
|
|
124
|
-
return str;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Pulls characters from the string iterator until the `endMarker` is found.
|
|
129
|
-
*/
|
|
130
|
-
function consumeUntilMarker(iterator: Iterator<string>, endMarker: string) {
|
|
131
|
-
return consumeWhile(iterator, (str) => !str.endsWith(endMarker));
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Returns true if the `str` ends with a dollar-quoted string marker.
|
|
136
|
-
* See https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING.
|
|
137
|
-
*/
|
|
138
|
-
function isDollarQuoteIdentifier(str: string) {
|
|
139
|
-
const lastChar = str.slice(-1);
|
|
140
|
-
return (
|
|
141
|
-
// The $ marks the end of the identifier
|
|
142
|
-
lastChar !== "$" &&
|
|
143
|
-
// we allow numbers, underscore and letters with diacritical marks
|
|
144
|
-
(/[0-9_]/i.test(lastChar) ||
|
|
145
|
-
lastChar.toLowerCase() !== lastChar.toUpperCase())
|
|
146
|
-
);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Returns true if the `str` ends with a compound statement `BEGIN` marker.
|
|
151
|
-
*/
|
|
152
|
-
function isCompoundStatementStart(str: string) {
|
|
153
|
-
return /\sBEGIN\s$/.test(str);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Returns true if the `str` ends with a compound statement `END` marker.
|
|
158
|
-
*/
|
|
159
|
-
function isCompoundStatementEnd(str: string) {
|
|
160
|
-
return /\sEND[;\s]$/.test(str);
|
|
161
|
-
}
|
package/src/d1/types.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export type Database = {
|
|
2
|
-
uuid: string;
|
|
3
|
-
previewDatabaseUuid?: string;
|
|
4
|
-
name: string;
|
|
5
|
-
binding: string;
|
|
6
|
-
internal_env?: string;
|
|
7
|
-
migrationsTableName: string;
|
|
8
|
-
migrationsFolderPath: string;
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export type DatabaseCreationResult = {
|
|
12
|
-
uuid: string;
|
|
13
|
-
name: string;
|
|
14
|
-
primary_location_hint?: string;
|
|
15
|
-
created_in_region?: string;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export type Backup = {
|
|
19
|
-
id: string;
|
|
20
|
-
database_id: string;
|
|
21
|
-
created_at: string;
|
|
22
|
-
state: "progress" | "done";
|
|
23
|
-
num_tables: number;
|
|
24
|
-
file_size: number;
|
|
25
|
-
size?: string;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
export type Migration = {
|
|
29
|
-
id: string;
|
|
30
|
-
name: string;
|
|
31
|
-
applied_at: string;
|
|
32
|
-
};
|
package/src/d1/utils.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_MIGRATION_PATH, DEFAULT_MIGRATION_TABLE } from "./constants";
|
|
2
|
-
import { listDatabases } from "./list";
|
|
3
|
-
import type { Config } from "../config";
|
|
4
|
-
import type { Database } from "./types";
|
|
5
|
-
|
|
6
|
-
export function getDatabaseInfoFromConfig(
|
|
7
|
-
config: Config,
|
|
8
|
-
name: string
|
|
9
|
-
): Database | null {
|
|
10
|
-
for (const d1Database of config.d1_databases) {
|
|
11
|
-
if (
|
|
12
|
-
d1Database.database_id &&
|
|
13
|
-
(name === d1Database.database_name || name === d1Database.binding)
|
|
14
|
-
) {
|
|
15
|
-
return {
|
|
16
|
-
uuid: d1Database.database_id,
|
|
17
|
-
previewDatabaseUuid: d1Database.preview_database_id,
|
|
18
|
-
binding: d1Database.binding,
|
|
19
|
-
name: d1Database.database_name,
|
|
20
|
-
migrationsTableName:
|
|
21
|
-
d1Database.migrations_table || DEFAULT_MIGRATION_TABLE,
|
|
22
|
-
migrationsFolderPath:
|
|
23
|
-
d1Database.migrations_dir || DEFAULT_MIGRATION_PATH,
|
|
24
|
-
internal_env: d1Database.database_internal_env,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export const getDatabaseByNameOrBinding = async (
|
|
32
|
-
config: Config,
|
|
33
|
-
accountId: string,
|
|
34
|
-
name: string
|
|
35
|
-
): Promise<Database> => {
|
|
36
|
-
const dbFromConfig = getDatabaseInfoFromConfig(config, name);
|
|
37
|
-
if (dbFromConfig) return dbFromConfig;
|
|
38
|
-
|
|
39
|
-
const allDBs = await listDatabases(accountId);
|
|
40
|
-
const matchingDB = allDBs.find((db) => db.name === name);
|
|
41
|
-
if (!matchingDB) {
|
|
42
|
-
throw new Error(`Couldn't find DB with name '${name}'`);
|
|
43
|
-
}
|
|
44
|
-
return matchingDB;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
export const d1BetaWarning = process.env.NO_D1_WARNING
|
|
48
|
-
? ""
|
|
49
|
-
: "--------------------\n🚧 D1 is currently in open alpha and is not recommended for production data and traffic\n🚧 Please report any bugs to https://github.com/cloudflare/workers-sdk/issues/new/choose\n🚧 To request features, visit https://community.cloudflare.com/c/developers/d1\n🚧 To give feedback, visit https://discord.gg/cloudflaredev\n--------------------\n";
|
package/src/delete.ts
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import assert from "assert";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { fetchResult } from "./cfetch";
|
|
4
|
-
import { findWranglerToml, readConfig } from "./config";
|
|
5
|
-
import { confirm } from "./dialogs";
|
|
6
|
-
import { deleteKVNamespace, listKVNamespaces } from "./kv/helpers";
|
|
7
|
-
import { logger } from "./logger";
|
|
8
|
-
import * as metrics from "./metrics";
|
|
9
|
-
import { requireAuth } from "./user";
|
|
10
|
-
import { getScriptName, printWranglerBanner } from "./index";
|
|
11
|
-
import type {
|
|
12
|
-
CommonYargsArgv,
|
|
13
|
-
StrictYargsOptionsToInterface,
|
|
14
|
-
} from "./yargs-types";
|
|
15
|
-
|
|
16
|
-
export function deleteOptions(yargs: CommonYargsArgv) {
|
|
17
|
-
return yargs
|
|
18
|
-
.positional("script", {
|
|
19
|
-
describe: "The path to an entry point for your worker",
|
|
20
|
-
type: "string",
|
|
21
|
-
requiresArg: true,
|
|
22
|
-
})
|
|
23
|
-
.option("name", {
|
|
24
|
-
describe: "Name of the worker",
|
|
25
|
-
type: "string",
|
|
26
|
-
requiresArg: true,
|
|
27
|
-
})
|
|
28
|
-
.option("dry-run", {
|
|
29
|
-
describe: "Don't actually delete",
|
|
30
|
-
type: "boolean",
|
|
31
|
-
})
|
|
32
|
-
.option("legacy-env", {
|
|
33
|
-
type: "boolean",
|
|
34
|
-
describe: "Use legacy environments",
|
|
35
|
-
hidden: true,
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
type DeleteArgs = StrictYargsOptionsToInterface<typeof deleteOptions>;
|
|
40
|
-
|
|
41
|
-
export async function deleteHandler(args: DeleteArgs) {
|
|
42
|
-
await printWranglerBanner();
|
|
43
|
-
|
|
44
|
-
const configPath =
|
|
45
|
-
args.config || (args.script && findWranglerToml(path.dirname(args.script)));
|
|
46
|
-
const config = readConfig(configPath, args);
|
|
47
|
-
await metrics.sendMetricsEvent(
|
|
48
|
-
"delete worker script",
|
|
49
|
-
{},
|
|
50
|
-
{ sendMetrics: config.send_metrics }
|
|
51
|
-
);
|
|
52
|
-
|
|
53
|
-
const accountId = args.dryRun ? undefined : await requireAuth(config);
|
|
54
|
-
|
|
55
|
-
const scriptName = getScriptName(args, config);
|
|
56
|
-
|
|
57
|
-
assert(
|
|
58
|
-
scriptName,
|
|
59
|
-
"A worker name must be defined, either via --name, or in wrangler.toml"
|
|
60
|
-
);
|
|
61
|
-
|
|
62
|
-
if (args.dryRun) {
|
|
63
|
-
logger.log(`--dry-run: exiting now.`);
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
assert(accountId, "Missing accountId");
|
|
68
|
-
|
|
69
|
-
const confirmed = await confirm(
|
|
70
|
-
`Are you sure you want to delete ${scriptName}? This action cannot be undone.`
|
|
71
|
-
);
|
|
72
|
-
|
|
73
|
-
if (confirmed) {
|
|
74
|
-
await fetchResult(
|
|
75
|
-
`/accounts/${accountId}/workers/services/${scriptName}`,
|
|
76
|
-
{ method: "DELETE" },
|
|
77
|
-
new URLSearchParams({ force: "true" })
|
|
78
|
-
);
|
|
79
|
-
|
|
80
|
-
await deleteSiteNamespaceIfExisting(scriptName, accountId);
|
|
81
|
-
|
|
82
|
-
logger.log("Successfully deleted", scriptName);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
async function deleteSiteNamespaceIfExisting(
|
|
87
|
-
scriptName: string,
|
|
88
|
-
accountId: string
|
|
89
|
-
): Promise<void> {
|
|
90
|
-
const title = `__${scriptName}-workers_sites_assets`;
|
|
91
|
-
const previewTitle = `__${scriptName}-workers_sites_assets_preview`;
|
|
92
|
-
const allNamespaces = await listKVNamespaces(accountId);
|
|
93
|
-
const namespacesToDelete = allNamespaces.filter(
|
|
94
|
-
(ns) => ns.title === title || ns.title === previewTitle
|
|
95
|
-
);
|
|
96
|
-
for (const ns of namespacesToDelete) {
|
|
97
|
-
await deleteKVNamespace(accountId, ns.id);
|
|
98
|
-
logger.log(`🌀 Deleted asset namespace for Workers Site "${ns.title}"`);
|
|
99
|
-
}
|
|
100
|
-
}
|
package/src/deployments.ts
DELETED
|
@@ -1,368 +0,0 @@
|
|
|
1
|
-
import { URLSearchParams } from "url";
|
|
2
|
-
import TOML from "@iarna/toml";
|
|
3
|
-
import chalk from "chalk";
|
|
4
|
-
import { FormData } from "undici";
|
|
5
|
-
import { fetchResult } from "./cfetch";
|
|
6
|
-
import { readConfig } from "./config";
|
|
7
|
-
import { confirm, prompt } from "./dialogs";
|
|
8
|
-
import { mapBindings } from "./init";
|
|
9
|
-
import { logger } from "./logger";
|
|
10
|
-
import * as metrics from "./metrics";
|
|
11
|
-
import { requireAuth } from "./user";
|
|
12
|
-
import { getScriptName, printWranglerBanner } from ".";
|
|
13
|
-
|
|
14
|
-
import type { Config } from "./config";
|
|
15
|
-
import type { WorkerMetadataBinding } from "./create-worker-upload-form";
|
|
16
|
-
import type { ServiceMetadataRes } from "./init";
|
|
17
|
-
import type { CommonYargsOptions } from "./yargs-types";
|
|
18
|
-
import type { ArgumentsCamelCase } from "yargs";
|
|
19
|
-
|
|
20
|
-
type DeploymentDetails = {
|
|
21
|
-
id: string;
|
|
22
|
-
number: string;
|
|
23
|
-
annotations: {
|
|
24
|
-
"workers/triggered_by": string;
|
|
25
|
-
"workers/rollback_from": string;
|
|
26
|
-
"workers/message": string;
|
|
27
|
-
};
|
|
28
|
-
metadata: {
|
|
29
|
-
author_id: string;
|
|
30
|
-
author_email: string;
|
|
31
|
-
source: "api" | "dash" | "wrangler" | "terraform" | "other";
|
|
32
|
-
created_on: string;
|
|
33
|
-
modified_on: string;
|
|
34
|
-
};
|
|
35
|
-
resources: {
|
|
36
|
-
script: {
|
|
37
|
-
handlers: string[];
|
|
38
|
-
};
|
|
39
|
-
bindings: WorkerMetadataBinding[];
|
|
40
|
-
script_runtime: {
|
|
41
|
-
compatibility_date: string | undefined;
|
|
42
|
-
compatibility_flags: string[] | undefined;
|
|
43
|
-
usage_model: string | undefined;
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
export type DeploymentListResult = {
|
|
49
|
-
latest: DeploymentDetails;
|
|
50
|
-
items: DeploymentDetails[];
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
export async function deployments(
|
|
54
|
-
accountId: string,
|
|
55
|
-
scriptName: string | undefined,
|
|
56
|
-
{ send_metrics: sendMetrics }: { send_metrics?: Config["send_metrics"] } = {}
|
|
57
|
-
) {
|
|
58
|
-
if (!scriptName) {
|
|
59
|
-
throw new Error(
|
|
60
|
-
"Required Worker name missing. Please specify the Worker name in wrangler.toml, or pass it as an argument with `--name`"
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
await metrics.sendMetricsEvent(
|
|
65
|
-
"view deployments",
|
|
66
|
-
{ view: scriptName ? "single" : "all" },
|
|
67
|
-
{
|
|
68
|
-
sendMetrics,
|
|
69
|
-
}
|
|
70
|
-
);
|
|
71
|
-
|
|
72
|
-
const scriptTag = (
|
|
73
|
-
await fetchResult<ServiceMetadataRes>(
|
|
74
|
-
`/accounts/${accountId}/workers/services/${scriptName}`
|
|
75
|
-
)
|
|
76
|
-
).default_environment.script.tag;
|
|
77
|
-
|
|
78
|
-
const params = new URLSearchParams({ order: "asc" });
|
|
79
|
-
const { items: deploys } = await fetchResult<DeploymentListResult>(
|
|
80
|
-
`/accounts/${accountId}/workers/deployments/by-script/${scriptTag}`,
|
|
81
|
-
undefined,
|
|
82
|
-
params
|
|
83
|
-
);
|
|
84
|
-
|
|
85
|
-
const versionMessages = deploys.map((versions) => {
|
|
86
|
-
const triggerStr = versions.annotations?.["workers/triggered_by"]
|
|
87
|
-
? `${formatTrigger(
|
|
88
|
-
versions.annotations["workers/triggered_by"]
|
|
89
|
-
)} from ${formatSource(versions.metadata.source)}`
|
|
90
|
-
: `${formatSource(versions.metadata.source)}`;
|
|
91
|
-
|
|
92
|
-
let version = `
|
|
93
|
-
Deployment ID: ${versions.id}
|
|
94
|
-
Created on: ${versions.metadata.created_on}
|
|
95
|
-
Author: ${versions.metadata.author_email}
|
|
96
|
-
Source: ${triggerStr}`;
|
|
97
|
-
|
|
98
|
-
if (versions.annotations?.["workers/rollback_from"]) {
|
|
99
|
-
version += `\nRollback from: ${versions.annotations["workers/rollback_from"]}`;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
if (versions.annotations?.["workers/message"]) {
|
|
103
|
-
version += `\nMessage: ${versions.annotations["workers/message"]}`;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
return version + `\n`;
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
versionMessages[versionMessages.length - 1] += "🟩 Active";
|
|
110
|
-
logger.log(...versionMessages);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
function formatSource(source: string): string {
|
|
114
|
-
switch (source) {
|
|
115
|
-
case "api":
|
|
116
|
-
return "API 📡";
|
|
117
|
-
case "dash":
|
|
118
|
-
return "Dashboard 🖥️";
|
|
119
|
-
case "wrangler":
|
|
120
|
-
return "Wrangler 🤠";
|
|
121
|
-
case "terraform":
|
|
122
|
-
return "Terraform 🏗️";
|
|
123
|
-
default:
|
|
124
|
-
return "Other";
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
function formatTrigger(trigger: string): string {
|
|
128
|
-
switch (trigger) {
|
|
129
|
-
case "upload":
|
|
130
|
-
return "Upload";
|
|
131
|
-
case "secret":
|
|
132
|
-
return "Secret Change";
|
|
133
|
-
case "rollback":
|
|
134
|
-
return "Rollback";
|
|
135
|
-
case "promotion":
|
|
136
|
-
return "Promotion";
|
|
137
|
-
default:
|
|
138
|
-
return "Unknown";
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
export async function rollbackDeployment(
|
|
143
|
-
accountId: string,
|
|
144
|
-
scriptName: string | undefined,
|
|
145
|
-
{ send_metrics: sendMetrics }: { send_metrics?: Config["send_metrics"] } = {},
|
|
146
|
-
deploymentId: string | undefined,
|
|
147
|
-
message: string | undefined
|
|
148
|
-
) {
|
|
149
|
-
if (deploymentId === undefined) {
|
|
150
|
-
const scriptTag = (
|
|
151
|
-
await fetchResult<ServiceMetadataRes>(
|
|
152
|
-
`/accounts/${accountId}/workers/services/${scriptName}`
|
|
153
|
-
)
|
|
154
|
-
).default_environment.script.tag;
|
|
155
|
-
|
|
156
|
-
const params = new URLSearchParams({ order: "asc" });
|
|
157
|
-
const { items: deploys } = await fetchResult<DeploymentListResult>(
|
|
158
|
-
`/accounts/${accountId}/workers/deployments/by-script/${scriptTag}`,
|
|
159
|
-
undefined,
|
|
160
|
-
params
|
|
161
|
-
);
|
|
162
|
-
|
|
163
|
-
if (deploys.length < 2) {
|
|
164
|
-
throw new Error(
|
|
165
|
-
"Cannot rollback to previous deployment since there are less than 2 deployemnts"
|
|
166
|
-
);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
deploymentId = deploys.at(-2)?.id;
|
|
170
|
-
if (deploymentId === undefined) {
|
|
171
|
-
throw new Error("Cannot find previous deployment");
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
const firstHash = deploymentId.substring(0, deploymentId.indexOf("-"));
|
|
176
|
-
|
|
177
|
-
let rollbackMessage = "";
|
|
178
|
-
if (message !== undefined) {
|
|
179
|
-
rollbackMessage = message;
|
|
180
|
-
} else {
|
|
181
|
-
if (
|
|
182
|
-
!(await confirm(
|
|
183
|
-
`This deployment ${chalk.underline(
|
|
184
|
-
firstHash
|
|
185
|
-
)} will immediately replace the current deployment and become the active deployment across all your deployed routes and domains. However, your local development environment will not be affected by this rollback. ${chalk.blue.bold(
|
|
186
|
-
"Note:"
|
|
187
|
-
)} Rolling back to a previous deployment will not rollback any of the bound resources (Durable Object, R2, KV, etc.).`
|
|
188
|
-
))
|
|
189
|
-
) {
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
rollbackMessage = await prompt(
|
|
194
|
-
"Please provide a message for this rollback (120 characters max)",
|
|
195
|
-
{ defaultValue: "" }
|
|
196
|
-
);
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
let deployment_id = await rollbackRequest(
|
|
200
|
-
accountId,
|
|
201
|
-
scriptName,
|
|
202
|
-
deploymentId,
|
|
203
|
-
rollbackMessage
|
|
204
|
-
);
|
|
205
|
-
|
|
206
|
-
await metrics.sendMetricsEvent(
|
|
207
|
-
"rollback deployments",
|
|
208
|
-
{ view: scriptName ? "single" : "all" },
|
|
209
|
-
{
|
|
210
|
-
sendMetrics,
|
|
211
|
-
}
|
|
212
|
-
);
|
|
213
|
-
|
|
214
|
-
deploymentId = addHyphens(deploymentId) ?? deploymentId;
|
|
215
|
-
deployment_id = addHyphens(deployment_id) ?? deployment_id;
|
|
216
|
-
|
|
217
|
-
logger.log(`\nSuccessfully rolled back to Deployment ID: ${deploymentId}`);
|
|
218
|
-
logger.log("Current Deployment ID:", deployment_id);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
async function rollbackRequest(
|
|
222
|
-
accountId: string,
|
|
223
|
-
scriptName: string | undefined,
|
|
224
|
-
deploymentId: string,
|
|
225
|
-
rollbackReason: string
|
|
226
|
-
): Promise<string | null> {
|
|
227
|
-
const body = new FormData();
|
|
228
|
-
body.set("message", rollbackReason);
|
|
229
|
-
|
|
230
|
-
const { deployment_id } = await fetchResult<{
|
|
231
|
-
deployment_id: string | null;
|
|
232
|
-
}>(
|
|
233
|
-
`/accounts/${accountId}/workers/scripts/${scriptName}?rollback_to=${deploymentId}`,
|
|
234
|
-
{
|
|
235
|
-
method: "PUT",
|
|
236
|
-
body,
|
|
237
|
-
}
|
|
238
|
-
);
|
|
239
|
-
|
|
240
|
-
return deployment_id;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
export async function viewDeployment(
|
|
244
|
-
accountId: string,
|
|
245
|
-
scriptName: string | undefined,
|
|
246
|
-
{ send_metrics: sendMetrics }: { send_metrics?: Config["send_metrics"] } = {},
|
|
247
|
-
deploymentId: string | undefined
|
|
248
|
-
) {
|
|
249
|
-
await metrics.sendMetricsEvent(
|
|
250
|
-
"view deployments",
|
|
251
|
-
{ view: scriptName ? "single" : "all" },
|
|
252
|
-
{
|
|
253
|
-
sendMetrics,
|
|
254
|
-
}
|
|
255
|
-
);
|
|
256
|
-
|
|
257
|
-
const scriptTag = (
|
|
258
|
-
await fetchResult<ServiceMetadataRes>(
|
|
259
|
-
`/accounts/${accountId}/workers/services/${scriptName}`
|
|
260
|
-
)
|
|
261
|
-
).default_environment.script.tag;
|
|
262
|
-
|
|
263
|
-
if (deploymentId === undefined) {
|
|
264
|
-
const params = new URLSearchParams({ order: "asc" });
|
|
265
|
-
const { latest } = await fetchResult<DeploymentListResult>(
|
|
266
|
-
`/accounts/${accountId}/workers/deployments/by-script/${scriptTag}`,
|
|
267
|
-
undefined,
|
|
268
|
-
params
|
|
269
|
-
);
|
|
270
|
-
|
|
271
|
-
deploymentId = latest.id;
|
|
272
|
-
if (deploymentId === undefined) {
|
|
273
|
-
throw new Error("Cannot find previous deployment");
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
const deploymentDetails = await fetchResult<DeploymentListResult["latest"]>(
|
|
278
|
-
`/accounts/${accountId}/workers/deployments/by-script/${scriptTag}/detail/${deploymentId}`
|
|
279
|
-
);
|
|
280
|
-
|
|
281
|
-
const triggerStr = deploymentDetails.annotations?.["workers/triggered_by"]
|
|
282
|
-
? `${formatTrigger(
|
|
283
|
-
deploymentDetails.annotations["workers/triggered_by"]
|
|
284
|
-
)} from ${formatSource(deploymentDetails.metadata.source)}`
|
|
285
|
-
: `${formatSource(deploymentDetails.metadata.source)}`;
|
|
286
|
-
|
|
287
|
-
const rollbackStr = deploymentDetails.annotations?.["workers/rollback_from"]
|
|
288
|
-
? `\nRollback from: ${deploymentDetails.annotations["workers/rollback_from"]}`
|
|
289
|
-
: ``;
|
|
290
|
-
|
|
291
|
-
const reasonStr = deploymentDetails.annotations?.["workers/message"]
|
|
292
|
-
? `\nMessage: ${deploymentDetails.annotations["workers/message"]}`
|
|
293
|
-
: ``;
|
|
294
|
-
|
|
295
|
-
const compatDateStr = deploymentDetails.resources.script_runtime
|
|
296
|
-
?.compatibility_date
|
|
297
|
-
? `\nCompatibility Date: ${deploymentDetails.resources.script_runtime?.compatibility_date}`
|
|
298
|
-
: ``;
|
|
299
|
-
const compatFlagsStr = deploymentDetails.resources.script_runtime
|
|
300
|
-
?.compatibility_flags
|
|
301
|
-
? `\nCompatibility Flags: ${deploymentDetails.resources.script_runtime?.compatibility_flags}`
|
|
302
|
-
: ``;
|
|
303
|
-
|
|
304
|
-
const bindings = deploymentDetails.resources.bindings;
|
|
305
|
-
|
|
306
|
-
const version = `
|
|
307
|
-
Deployment ID: ${deploymentDetails.id}
|
|
308
|
-
Created on: ${deploymentDetails.metadata.created_on}
|
|
309
|
-
Author: ${deploymentDetails.metadata.author_email}
|
|
310
|
-
Source: ${triggerStr}${rollbackStr}${reasonStr}
|
|
311
|
-
------------------------------------------------------------
|
|
312
|
-
Author ID: ${deploymentDetails.metadata.author_id}
|
|
313
|
-
Usage Model: ${deploymentDetails.resources.script_runtime.usage_model}
|
|
314
|
-
Handlers: ${
|
|
315
|
-
deploymentDetails.resources.script.handlers
|
|
316
|
-
}${compatDateStr}${compatFlagsStr}
|
|
317
|
-
--------------------------bindings--------------------------
|
|
318
|
-
${
|
|
319
|
-
bindings.length > 0
|
|
320
|
-
? TOML.stringify(mapBindings(bindings) as TOML.JsonMap)
|
|
321
|
-
: `None`
|
|
322
|
-
}
|
|
323
|
-
`;
|
|
324
|
-
|
|
325
|
-
logger.log(version);
|
|
326
|
-
|
|
327
|
-
// early return to skip the deployments listings
|
|
328
|
-
return;
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
export async function commonDeploymentCMDSetup(
|
|
332
|
-
yargs: ArgumentsCamelCase<CommonYargsOptions>,
|
|
333
|
-
deploymentsWarning: string
|
|
334
|
-
) {
|
|
335
|
-
await printWranglerBanner();
|
|
336
|
-
const config = readConfig(yargs.config, yargs);
|
|
337
|
-
const accountId = await requireAuth(config);
|
|
338
|
-
const scriptName = getScriptName(
|
|
339
|
-
{ name: yargs.name as string, env: undefined },
|
|
340
|
-
config
|
|
341
|
-
);
|
|
342
|
-
|
|
343
|
-
logger.log(`${deploymentsWarning}\n`);
|
|
344
|
-
|
|
345
|
-
return { accountId, scriptName, config };
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
export function addHyphens(uuid: string | null): string | null {
|
|
349
|
-
if (uuid == null) {
|
|
350
|
-
return uuid;
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
if (uuid.length != 32) {
|
|
354
|
-
return null;
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
const uuid_parts: string[] = [];
|
|
358
|
-
uuid_parts.push(uuid.slice(0, 8));
|
|
359
|
-
uuid_parts.push(uuid.slice(8, 12));
|
|
360
|
-
uuid_parts.push(uuid.slice(12, 16));
|
|
361
|
-
uuid_parts.push(uuid.slice(16, 20));
|
|
362
|
-
uuid_parts.push(uuid.slice(20));
|
|
363
|
-
|
|
364
|
-
let hyphenated = "";
|
|
365
|
-
uuid_parts.forEach((part) => (hyphenated += part + "-"));
|
|
366
|
-
|
|
367
|
-
return hyphenated.slice(0, 36);
|
|
368
|
-
}
|