wrangler 0.0.0-e87ad068 → 0.0.0-e8df68ee
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 +5 -7
- package/bin/wrangler.js +9 -75
- package/package.json +13 -17
- package/templates/__tests__/tsconfig.json +1 -1
- package/templates/checked-fetch.js +1 -1
- package/templates/facade.d.ts +4 -1
- package/templates/middleware/common.ts +9 -4
- package/templates/middleware/loader-modules.ts +52 -9
- package/templates/middleware/loader-sw.ts +2 -7
- package/templates/middleware/middleware-d1-beta.d.ts +3 -0
- package/templates/{d1-beta-facade.js → middleware/middleware-d1-beta.ts} +85 -85
- package/templates/middleware/middleware-multiworker-dev.d.ts +4 -0
- package/templates/middleware/middleware-multiworker-dev.ts +59 -0
- package/templates/middleware/middleware-serve-static-assets.d.ts +6 -0
- package/templates/middleware/middleware-serve-static-assets.ts +56 -0
- package/templates/new-worker-scheduled.ts +1 -1
- package/templates/new-worker.ts +1 -1
- package/templates/pages-shim.ts +0 -3
- package/templates/pages-template-plugin.ts +12 -2
- package/templates/pages-template-worker.ts +11 -2
- package/templates/tsconfig.json +1 -1
- package/wrangler-dist/cli.d.ts +83 -74
- package/wrangler-dist/cli.js +15669 -20172
- 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/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
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/// <reference path="middleware-d1-beta.d.ts"/>
|
|
2
|
+
|
|
3
|
+
import { D1_IMPORTS } from "config:middleware/d1-beta";
|
|
4
4
|
|
|
5
5
|
// src/index.ts
|
|
6
|
-
|
|
7
|
-
constructor(binding) {
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
prepare(query) {
|
|
6
|
+
class D1Database {
|
|
7
|
+
constructor(readonly binding: Fetcher) {}
|
|
8
|
+
prepare(query: string) {
|
|
11
9
|
return new D1PreparedStatement(this, query);
|
|
12
10
|
}
|
|
13
11
|
async dump() {
|
|
@@ -19,19 +17,19 @@ var D1Database = class {
|
|
|
19
17
|
});
|
|
20
18
|
if (response.status !== 200) {
|
|
21
19
|
try {
|
|
22
|
-
const err = await response.json();
|
|
23
|
-
throw new Error(
|
|
20
|
+
const err = (await response.json()) as { error: string };
|
|
21
|
+
throw new Error(`D1_DUMP_ERROR: ${err.error}`, {
|
|
24
22
|
cause: new Error(err.error),
|
|
25
23
|
});
|
|
26
24
|
} catch (e) {
|
|
27
|
-
throw new Error(
|
|
25
|
+
throw new Error(`D1_DUMP_ERROR: Status + ${response.status}`, {
|
|
28
26
|
cause: new Error("Status " + response.status),
|
|
29
27
|
});
|
|
30
28
|
}
|
|
31
29
|
}
|
|
32
30
|
return await response.arrayBuffer();
|
|
33
31
|
}
|
|
34
|
-
async batch(statements) {
|
|
32
|
+
async batch(statements: D1PreparedStatement[]) {
|
|
35
33
|
const exec = await this._send(
|
|
36
34
|
"/query",
|
|
37
35
|
statements.map((s) => s.statement),
|
|
@@ -39,7 +37,7 @@ var D1Database = class {
|
|
|
39
37
|
);
|
|
40
38
|
return exec;
|
|
41
39
|
}
|
|
42
|
-
async exec(query) {
|
|
40
|
+
async exec(query: string) {
|
|
43
41
|
const lines = query.trim().split("\n");
|
|
44
42
|
const _exec = await this._send("/query", lines, [], false);
|
|
45
43
|
const exec = Array.isArray(_exec) ? _exec : [_exec];
|
|
@@ -49,26 +47,36 @@ var D1Database = class {
|
|
|
49
47
|
})
|
|
50
48
|
.indexOf(1);
|
|
51
49
|
if (error !== -1) {
|
|
52
|
-
throw new Error(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
50
|
+
throw new Error(
|
|
51
|
+
`D1_EXEC_ERROR: Error in line ${error + 1}: ${lines[error]}: ${
|
|
52
|
+
exec[error].error
|
|
53
|
+
}`,
|
|
54
|
+
{
|
|
55
|
+
cause: new Error(
|
|
56
|
+
"Error in line " +
|
|
57
|
+
(error + 1) +
|
|
58
|
+
": " +
|
|
59
|
+
lines[error] +
|
|
60
|
+
": " +
|
|
61
|
+
exec[error].error
|
|
62
|
+
),
|
|
63
|
+
}
|
|
64
|
+
);
|
|
62
65
|
} else {
|
|
63
66
|
return {
|
|
64
67
|
count: exec.length,
|
|
65
68
|
duration: exec.reduce((p, c) => {
|
|
66
|
-
return p + c.meta.duration;
|
|
69
|
+
return p + (c.meta.duration as number);
|
|
67
70
|
}, 0),
|
|
68
71
|
};
|
|
69
72
|
}
|
|
70
73
|
}
|
|
71
|
-
async _send(
|
|
74
|
+
async _send(
|
|
75
|
+
endpoint: string,
|
|
76
|
+
query: string | string[],
|
|
77
|
+
params: unknown[],
|
|
78
|
+
dothrow = true
|
|
79
|
+
) {
|
|
72
80
|
const body = JSON.stringify(
|
|
73
81
|
typeof query == "object"
|
|
74
82
|
? query.map((s, index) => {
|
|
@@ -87,75 +95,79 @@ var D1Database = class {
|
|
|
87
95
|
body,
|
|
88
96
|
});
|
|
89
97
|
try {
|
|
90
|
-
const answer = await response.json();
|
|
98
|
+
const answer = (await response.json()) as { error?: string };
|
|
91
99
|
if (answer.error && dothrow) {
|
|
92
100
|
const err = answer;
|
|
93
|
-
throw new Error(
|
|
101
|
+
throw new Error(`D1_ERROR: ${err.error}`, {
|
|
102
|
+
cause: new Error(err.error),
|
|
103
|
+
});
|
|
94
104
|
} else {
|
|
95
105
|
return Array.isArray(answer)
|
|
96
106
|
? answer.map((r) => mapD1Result(r))
|
|
97
107
|
: mapD1Result(answer);
|
|
98
108
|
}
|
|
99
109
|
} catch (e) {
|
|
100
|
-
|
|
101
|
-
|
|
110
|
+
const error = e as Error;
|
|
111
|
+
throw new Error(`D1_ERROR: ${error.cause || "Something went wrong"}`, {
|
|
112
|
+
cause: new Error(`${error.cause}` || "Something went wrong"),
|
|
102
113
|
});
|
|
103
114
|
}
|
|
104
115
|
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
class D1PreparedStatement {
|
|
119
|
+
constructor(
|
|
120
|
+
readonly database: D1Database,
|
|
121
|
+
readonly statement: string,
|
|
122
|
+
readonly params: unknown[] = []
|
|
123
|
+
) {}
|
|
124
|
+
bind(...values: unknown[]) {
|
|
113
125
|
for (var r in values) {
|
|
114
|
-
|
|
126
|
+
const value = values[r];
|
|
127
|
+
switch (typeof value) {
|
|
115
128
|
case "number":
|
|
116
129
|
case "string":
|
|
117
130
|
break;
|
|
118
131
|
case "object":
|
|
119
|
-
if (
|
|
132
|
+
if (value == null) break;
|
|
120
133
|
if (
|
|
121
|
-
Array.isArray(
|
|
122
|
-
|
|
134
|
+
Array.isArray(value) &&
|
|
135
|
+
value
|
|
123
136
|
.map((b) => {
|
|
124
137
|
return typeof b == "number" && b >= 0 && b < 256 ? 1 : 0;
|
|
125
138
|
})
|
|
126
139
|
.indexOf(0) == -1
|
|
127
140
|
)
|
|
128
141
|
break;
|
|
129
|
-
if (
|
|
130
|
-
values[r] = Array.from(new Uint8Array(
|
|
142
|
+
if (value instanceof ArrayBuffer) {
|
|
143
|
+
values[r] = Array.from(new Uint8Array(value));
|
|
131
144
|
break;
|
|
132
145
|
}
|
|
133
|
-
if (ArrayBuffer.isView(
|
|
134
|
-
values[r] = Array.from(
|
|
146
|
+
if (ArrayBuffer.isView(value)) {
|
|
147
|
+
values[r] = Array.from(new Uint8Array(value.buffer));
|
|
135
148
|
break;
|
|
136
149
|
}
|
|
137
150
|
default:
|
|
138
|
-
throw new Error(
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
});
|
|
151
|
+
throw new Error(
|
|
152
|
+
`D1_TYPE_ERROR: Type '${typeof value}' not supported for value '${value}'`,
|
|
153
|
+
{
|
|
154
|
+
cause: new Error(
|
|
155
|
+
`Type '${typeof value}' not supported for value '${value}'`
|
|
156
|
+
),
|
|
157
|
+
}
|
|
158
|
+
);
|
|
147
159
|
}
|
|
148
160
|
}
|
|
149
161
|
return new D1PreparedStatement(this.database, this.statement, values);
|
|
150
162
|
}
|
|
151
|
-
async first(colName) {
|
|
163
|
+
async first(colName: string) {
|
|
152
164
|
const info = firstIfArray(
|
|
153
165
|
await this.database._send("/query", this.statement, this.params)
|
|
154
166
|
);
|
|
155
167
|
const results = info.results;
|
|
156
168
|
if (colName !== void 0) {
|
|
157
169
|
if (results.length > 0 && results[0][colName] === void 0) {
|
|
158
|
-
throw new Error(
|
|
170
|
+
throw new Error(`D1_COLUMN_NOTFOUND: Column not found (${colName})`, {
|
|
159
171
|
cause: new Error("Column not found"),
|
|
160
172
|
});
|
|
161
173
|
}
|
|
@@ -187,12 +199,12 @@ var D1PreparedStatement = class {
|
|
|
187
199
|
}
|
|
188
200
|
return raw;
|
|
189
201
|
}
|
|
190
|
-
}
|
|
191
|
-
function firstIfArray(results) {
|
|
202
|
+
}
|
|
203
|
+
function firstIfArray(results: unknown) {
|
|
192
204
|
return Array.isArray(results) ? results[0] : results;
|
|
193
205
|
}
|
|
194
|
-
function mapD1Result(result) {
|
|
195
|
-
let map = {
|
|
206
|
+
function mapD1Result(result: Partial<D1Result>): D1Result {
|
|
207
|
+
let map: D1Result = {
|
|
196
208
|
results: result.results || [],
|
|
197
209
|
success: result.success === void 0 ? true : result.success,
|
|
198
210
|
meta: result.meta || {},
|
|
@@ -201,12 +213,17 @@ function mapD1Result(result) {
|
|
|
201
213
|
return map;
|
|
202
214
|
}
|
|
203
215
|
|
|
216
|
+
type D1Result = {
|
|
217
|
+
results: unknown[];
|
|
218
|
+
success: boolean;
|
|
219
|
+
meta: Record<string, unknown>;
|
|
220
|
+
error?: string;
|
|
221
|
+
};
|
|
222
|
+
|
|
204
223
|
// src/shim.ts
|
|
205
|
-
var D1_IMPORTS = __D1_IMPORTS__;
|
|
206
|
-
var LOCAL_MODE = __LOCAL_MODE__;
|
|
207
224
|
var D1_BETA_PREFIX = `__D1_BETA__`;
|
|
208
225
|
var envMap = /* @__PURE__ */ new Map();
|
|
209
|
-
function getMaskedEnv(env) {
|
|
226
|
+
function getMaskedEnv(env: Record<string, Fetcher | D1Database>) {
|
|
210
227
|
if (envMap.has(env)) return envMap.get(env);
|
|
211
228
|
const newEnv = new Map(Object.entries(env));
|
|
212
229
|
D1_IMPORTS.filter((bindingName) =>
|
|
@@ -214,31 +231,14 @@ function getMaskedEnv(env) {
|
|
|
214
231
|
).forEach((bindingName) => {
|
|
215
232
|
newEnv.delete(bindingName);
|
|
216
233
|
const newName = bindingName.slice(D1_BETA_PREFIX.length);
|
|
217
|
-
const newBinding =
|
|
218
|
-
? new D1Database(env[bindingName])
|
|
219
|
-
: env[bindingName];
|
|
234
|
+
const newBinding = new D1Database(env[bindingName] as Fetcher);
|
|
220
235
|
newEnv.set(newName, newBinding);
|
|
221
236
|
});
|
|
222
237
|
const newEnvObj = Object.fromEntries(newEnv.entries());
|
|
223
238
|
envMap.set(env, newEnvObj);
|
|
224
239
|
return newEnvObj;
|
|
225
240
|
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
},
|
|
231
|
-
async queue(batch, env, ctx) {
|
|
232
|
-
return worker.queue(batch, getMaskedEnv(env), ctx);
|
|
233
|
-
},
|
|
234
|
-
async scheduled(controller, env, ctx) {
|
|
235
|
-
return worker.scheduled(controller, getMaskedEnv(env), ctx);
|
|
236
|
-
},
|
|
237
|
-
async trace(traces, env, ctx) {
|
|
238
|
-
return worker.trace(traces, getMaskedEnv(env), ctx);
|
|
239
|
-
},
|
|
240
|
-
async email(message, env, ctx) {
|
|
241
|
-
return worker.email(message, getMaskedEnv(env), ctx);
|
|
242
|
-
},
|
|
243
|
-
};
|
|
244
|
-
export { shim_default as default };
|
|
241
|
+
|
|
242
|
+
export function wrap(env: Record<string, D1Database | Fetcher>) {
|
|
243
|
+
return getMaskedEnv(env);
|
|
244
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
/// <reference path="middleware-multiworker-dev.d.ts"/>
|
|
3
|
+
|
|
4
|
+
import { workers } from "config:middleware/multiworker-dev";
|
|
5
|
+
import type { WorkerRegistry } from "../../src/dev-registry";
|
|
6
|
+
|
|
7
|
+
export function wrap(env: Record<string, unknown>) {
|
|
8
|
+
const facadeEnv = { ...env };
|
|
9
|
+
// For every Worker definition that's available,
|
|
10
|
+
// create a fetcher for it on the facade env.
|
|
11
|
+
// for const [name, binding] of env
|
|
12
|
+
// if Workers[name]
|
|
13
|
+
// const details = Workers[name];
|
|
14
|
+
|
|
15
|
+
for (const [name, details] of Object.entries(workers as WorkerRegistry)) {
|
|
16
|
+
if (details) {
|
|
17
|
+
facadeEnv[name] = {
|
|
18
|
+
async fetch(...reqArgs: Parameters<Fetcher["fetch"]>) {
|
|
19
|
+
const reqFromArgs = new Request(...reqArgs);
|
|
20
|
+
if (details.headers) {
|
|
21
|
+
for (const [key, value] of Object.entries(details.headers)) {
|
|
22
|
+
// In remote mode, you need to add a couple of headers
|
|
23
|
+
// to make sure it's talking to the 'dev' preview session
|
|
24
|
+
// (much like wrangler dev already does via proxy.ts)
|
|
25
|
+
reqFromArgs.headers.set(key, value);
|
|
26
|
+
}
|
|
27
|
+
return (env[name] as Fetcher).fetch(reqFromArgs);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const url = new URL(reqFromArgs.url);
|
|
31
|
+
if (details.protocol !== undefined) {
|
|
32
|
+
url.protocol = details.protocol;
|
|
33
|
+
}
|
|
34
|
+
if (details.host !== undefined) {
|
|
35
|
+
url.host = details.host;
|
|
36
|
+
}
|
|
37
|
+
if (details.port !== undefined) {
|
|
38
|
+
url.port = details.port.toString();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const request = new Request(url.toString(), reqFromArgs);
|
|
42
|
+
return fetch(request);
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
} else {
|
|
46
|
+
// This means there's no dev binding available.
|
|
47
|
+
// Let's use whatever's available, or put a shim with a message.
|
|
48
|
+
facadeEnv[name] = facadeEnv[name] || {
|
|
49
|
+
async fetch() {
|
|
50
|
+
return new Response(
|
|
51
|
+
`You should start up wrangler dev --local on the ${name} worker`,
|
|
52
|
+
{ status: 404 }
|
|
53
|
+
);
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return facadeEnv;
|
|
59
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/// <reference path="middleware-serve-static-assets.d.ts"/>
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
getAssetFromKV,
|
|
5
|
+
NotFoundError,
|
|
6
|
+
MethodNotAllowedError,
|
|
7
|
+
serveSinglePageApp,
|
|
8
|
+
} from "@cloudflare/kv-asset-handler";
|
|
9
|
+
import type { Options } from "@cloudflare/kv-asset-handler";
|
|
10
|
+
import { spaMode, cacheControl } from "config:middleware/serve-static-assets";
|
|
11
|
+
import type * as kvAssetHandler from "@cloudflare/kv-asset-handler";
|
|
12
|
+
import manifest from "__STATIC_CONTENT_MANIFEST";
|
|
13
|
+
const ASSET_MANIFEST = JSON.parse(manifest);
|
|
14
|
+
|
|
15
|
+
import type { Middleware } from "./common";
|
|
16
|
+
|
|
17
|
+
const staticAssets: Middleware = async (request, env, _ctx, middlewareCtx) => {
|
|
18
|
+
let options: Partial<Options> = {
|
|
19
|
+
ASSET_MANIFEST,
|
|
20
|
+
ASSET_NAMESPACE: env.__STATIC_CONTENT,
|
|
21
|
+
cacheControl: cacheControl,
|
|
22
|
+
mapRequestToAsset: spaMode ? serveSinglePageApp : undefined,
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
try {
|
|
26
|
+
const page = await (getAssetFromKV as typeof kvAssetHandler.getAssetFromKV)(
|
|
27
|
+
{
|
|
28
|
+
request,
|
|
29
|
+
waitUntil(promise) {
|
|
30
|
+
return _ctx.waitUntil(promise);
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
options
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
// allow headers to be altered
|
|
37
|
+
const response = new Response(page.body, page);
|
|
38
|
+
|
|
39
|
+
response.headers.set("X-XSS-Protection", "1; mode=block");
|
|
40
|
+
response.headers.set("X-Content-Type-Options", "nosniff");
|
|
41
|
+
response.headers.set("X-Frame-Options", "DENY");
|
|
42
|
+
response.headers.set("Referrer-Policy", "unsafe-url");
|
|
43
|
+
response.headers.set("Feature-Policy", "none");
|
|
44
|
+
|
|
45
|
+
return response;
|
|
46
|
+
} catch (e) {
|
|
47
|
+
if (e instanceof NotFoundError || e instanceof MethodNotAllowedError) {
|
|
48
|
+
// if a known error is thrown then serve from actual worker
|
|
49
|
+
return await middlewareCtx.next(request, env);
|
|
50
|
+
}
|
|
51
|
+
// otherwise it's a real error, so throw it
|
|
52
|
+
throw e;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export default staticAssets;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* - Run `curl "http://localhost:8787/cdn-cgi/mf/scheduled"` to trigger the scheduled event
|
|
6
6
|
* - Go back to the console to see what your worker has logged
|
|
7
7
|
* - Update the Cron trigger in wrangler.toml (see https://developers.cloudflare.com/workers/wrangler/configuration/#triggers)
|
|
8
|
-
* - Run `wrangler
|
|
8
|
+
* - Run `wrangler deploy --name my-worker` to deploy your worker
|
|
9
9
|
*
|
|
10
10
|
* Learn more at https://developers.cloudflare.com/workers/runtime-apis/scheduled-event/
|
|
11
11
|
*/
|
package/templates/new-worker.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* - Run `wrangler dev src/index.ts` in your terminal to start a development server
|
|
5
5
|
* - Open a browser tab at http://localhost:8787/ to see your worker in action
|
|
6
|
-
* - Run `wrangler
|
|
6
|
+
* - Run `wrangler deploy src/index.ts --name my-worker` to deploy your worker
|
|
7
7
|
*
|
|
8
8
|
* Learn more at https://developers.cloudflare.com/workers/
|
|
9
9
|
*/
|
package/templates/pages-shim.ts
CHANGED
|
@@ -3,9 +3,6 @@
|
|
|
3
3
|
|
|
4
4
|
export default <ExportedHandler<{ ASSETS: Fetcher }>>{
|
|
5
5
|
async fetch(request, env, context) {
|
|
6
|
-
// @ts-expect-error due to a bug in `@cloudflare/workers-types`, the `cf`
|
|
7
|
-
// types from the `request` parameter and `RequestInit` are incompatible.
|
|
8
|
-
// We'll get this fixed very soon.
|
|
9
6
|
const response = await env.ASSETS.fetch(request.url, request);
|
|
10
7
|
return new Response(response.body, response);
|
|
11
8
|
},
|
|
@@ -122,7 +122,8 @@ function* executeRequest(request: Request, relativePathname: string) {
|
|
|
122
122
|
export default function (pluginArgs: unknown) {
|
|
123
123
|
const onRequest: PagesPluginFunction = async (workerContext) => {
|
|
124
124
|
let { request } = workerContext;
|
|
125
|
-
const { env, next
|
|
125
|
+
const { env, next } = workerContext;
|
|
126
|
+
let { data } = workerContext;
|
|
126
127
|
|
|
127
128
|
const url = new URL(request.url);
|
|
128
129
|
// TODO: Replace this with something actually legible.
|
|
@@ -149,7 +150,16 @@ export default function (pluginArgs: unknown) {
|
|
|
149
150
|
functionPath: workerContext.functionPath + path,
|
|
150
151
|
next: pluginNext,
|
|
151
152
|
params,
|
|
152
|
-
data
|
|
153
|
+
get data() {
|
|
154
|
+
return data;
|
|
155
|
+
},
|
|
156
|
+
set data(value) {
|
|
157
|
+
if (typeof value !== "object" || value === null) {
|
|
158
|
+
throw new Error("context.data must be an object");
|
|
159
|
+
}
|
|
160
|
+
// user has overriden context.data, so we need to merge it with the existing data
|
|
161
|
+
data = value;
|
|
162
|
+
},
|
|
153
163
|
pluginArgs,
|
|
154
164
|
env,
|
|
155
165
|
waitUntil: workerContext.waitUntil.bind(workerContext),
|
|
@@ -120,7 +120,7 @@ export default {
|
|
|
120
120
|
) {
|
|
121
121
|
let request = originalRequest;
|
|
122
122
|
const handlerIterator = executeRequest(request);
|
|
123
|
-
|
|
123
|
+
let data = {}; // arbitrary data the user can set between functions
|
|
124
124
|
let isFailOpen = false;
|
|
125
125
|
|
|
126
126
|
const next = async (input?: RequestInfo, init?: RequestInit) => {
|
|
@@ -141,7 +141,16 @@ export default {
|
|
|
141
141
|
functionPath: path,
|
|
142
142
|
next,
|
|
143
143
|
params,
|
|
144
|
-
data
|
|
144
|
+
get data() {
|
|
145
|
+
return data;
|
|
146
|
+
},
|
|
147
|
+
set data(value) {
|
|
148
|
+
if (typeof value !== "object" || value === null) {
|
|
149
|
+
throw new Error("context.data must be an object");
|
|
150
|
+
}
|
|
151
|
+
// user has overriden context.data, so we need to merge it with the existing data
|
|
152
|
+
data = value;
|
|
153
|
+
},
|
|
145
154
|
env,
|
|
146
155
|
waitUntil: workerContext.waitUntil.bind(workerContext),
|
|
147
156
|
passThroughOnException: () => {
|
package/templates/tsconfig.json
CHANGED