alchemy 0.70.2 → 0.71.1
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 +1 -1
- package/bin/alchemy.js +131 -58
- package/bin/commands/init.ts +0 -10
- package/bin/services/execute-alchemy.ts +12 -3
- package/bin/trpc.ts +12 -12
- package/lib/alchemy.d.ts.map +1 -1
- package/lib/alchemy.js +21 -6
- package/lib/alchemy.js.map +1 -1
- package/lib/apply.d.ts.map +1 -1
- package/lib/apply.js +3 -1
- package/lib/apply.js.map +1 -1
- package/lib/cloudflare/bindings.d.ts +12 -2
- package/lib/cloudflare/bindings.d.ts.map +1 -1
- package/lib/cloudflare/bindings.js.map +1 -1
- package/lib/cloudflare/bound.d.ts +3 -2
- package/lib/cloudflare/bound.d.ts.map +1 -1
- package/lib/cloudflare/bucket.d.ts +6 -0
- package/lib/cloudflare/bucket.d.ts.map +1 -1
- package/lib/cloudflare/bucket.js +5 -3
- package/lib/cloudflare/bucket.js.map +1 -1
- package/lib/cloudflare/bun-spa/bun-spa.d.ts +6 -1
- package/lib/cloudflare/bun-spa/bun-spa.d.ts.map +1 -1
- package/lib/cloudflare/bun-spa/bun-spa.js +29 -9
- package/lib/cloudflare/bun-spa/bun-spa.js.map +1 -1
- package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
- package/lib/cloudflare/compatibility-date.gen.js +1 -1
- package/lib/cloudflare/d1-database.d.ts +1 -1
- package/lib/cloudflare/d1-database.d.ts.map +1 -1
- package/lib/cloudflare/d1-database.js +1 -1
- package/lib/cloudflare/d1-database.js.map +1 -1
- package/lib/cloudflare/health-check.d.ts +261 -0
- package/lib/cloudflare/health-check.d.ts.map +1 -0
- package/lib/cloudflare/health-check.js +277 -0
- package/lib/cloudflare/health-check.js.map +1 -0
- package/lib/cloudflare/index.d.ts +3 -0
- package/lib/cloudflare/index.d.ts.map +1 -1
- package/lib/cloudflare/index.js +3 -0
- package/lib/cloudflare/index.js.map +1 -1
- package/lib/cloudflare/logpush-job.d.ts +349 -0
- package/lib/cloudflare/logpush-job.d.ts.map +1 -0
- package/lib/cloudflare/logpush-job.js +277 -0
- package/lib/cloudflare/logpush-job.js.map +1 -0
- package/lib/cloudflare/miniflare/build-worker-options.d.ts +1 -0
- package/lib/cloudflare/miniflare/build-worker-options.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/build-worker-options.js +16 -6
- package/lib/cloudflare/miniflare/build-worker-options.js.map +1 -1
- package/lib/cloudflare/miniflare/remote-binding-proxy.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/remote-binding-proxy.js +2 -0
- package/lib/cloudflare/miniflare/remote-binding-proxy.js.map +1 -1
- package/lib/cloudflare/queue-consumer.js +2 -2
- package/lib/cloudflare/queue-consumer.js.map +1 -1
- package/lib/cloudflare/worker-loader.d.ts +9 -0
- package/lib/cloudflare/worker-loader.d.ts.map +1 -0
- package/lib/cloudflare/worker-loader.js +6 -0
- package/lib/cloudflare/worker-loader.js.map +1 -0
- package/lib/cloudflare/worker-metadata.d.ts.map +1 -1
- package/lib/cloudflare/worker-metadata.js +6 -0
- package/lib/cloudflare/worker-metadata.js.map +1 -1
- package/lib/cloudflare/worker-subdomain.js +1 -1
- package/lib/cloudflare/worker.d.ts.map +1 -1
- package/lib/cloudflare/worker.js +7 -0
- package/lib/cloudflare/worker.js.map +1 -1
- package/lib/cloudflare/wrangler.json.d.ts +11 -8
- package/lib/cloudflare/wrangler.json.d.ts.map +1 -1
- package/lib/cloudflare/wrangler.json.js +18 -11
- package/lib/cloudflare/wrangler.json.js.map +1 -1
- package/lib/cloudflare/zone.js +1 -1
- package/lib/destroy.d.ts.map +1 -1
- package/lib/destroy.js +27 -0
- package/lib/destroy.js.map +1 -1
- package/lib/docker/image.js +1 -1
- package/lib/docker/image.js.map +1 -1
- package/lib/github/comment.d.ts.map +1 -1
- package/lib/github/comment.js +14 -7
- package/lib/github/comment.js.map +1 -1
- package/lib/resource.js +1 -1
- package/lib/resource.js.map +1 -1
- package/lib/scope.d.ts +6 -1
- package/lib/scope.d.ts.map +1 -1
- package/lib/scope.js +22 -22
- package/lib/scope.js.map +1 -1
- package/lib/state/instrumented-state-store.js +1 -1
- package/lib/state/instrumented-state-store.js.map +1 -1
- package/lib/util/cli-args.d.ts +3 -0
- package/lib/util/cli-args.d.ts.map +1 -0
- package/lib/util/cli-args.js +6 -0
- package/lib/util/cli-args.js.map +1 -0
- package/lib/util/retry.d.ts +1 -1
- package/lib/util/retry.d.ts.map +1 -1
- package/lib/util/retry.js +2 -2
- package/lib/util/retry.js.map +1 -1
- package/lib/util/telemetry.d.ts +1 -0
- package/lib/util/telemetry.d.ts.map +1 -1
- package/lib/util/telemetry.js +47 -2
- package/lib/util/telemetry.js.map +1 -1
- package/lib/util/validate-resource-id.d.ts +2 -0
- package/lib/util/validate-resource-id.d.ts.map +1 -0
- package/lib/util/validate-resource-id.js +11 -0
- package/lib/util/validate-resource-id.js.map +1 -0
- package/package.json +11 -9
- package/src/alchemy.ts +25 -11
- package/src/apply.ts +3 -1
- package/src/cloudflare/bindings.ts +13 -0
- package/src/cloudflare/bound.ts +36 -32
- package/src/cloudflare/bucket.ts +13 -4
- package/src/cloudflare/bun-spa/bun-spa.ts +42 -10
- package/src/cloudflare/compatibility-date.gen.ts +1 -1
- package/src/cloudflare/d1-database.ts +2 -2
- package/src/cloudflare/health-check.ts +617 -0
- package/src/cloudflare/index.ts +3 -0
- package/src/cloudflare/logpush-job.ts +768 -0
- package/src/cloudflare/miniflare/build-worker-options.ts +18 -6
- package/src/cloudflare/miniflare/remote-binding-proxy.ts +2 -0
- package/src/cloudflare/queue-consumer.ts +2 -2
- package/src/cloudflare/worker-loader.ts +12 -0
- package/src/cloudflare/worker-metadata.ts +5 -0
- package/src/cloudflare/worker-subdomain.ts +1 -1
- package/src/cloudflare/worker.ts +8 -0
- package/src/cloudflare/wrangler.json.ts +36 -23
- package/src/cloudflare/zone.ts +1 -1
- package/src/destroy.ts +32 -0
- package/src/docker/image.ts +1 -1
- package/src/github/comment.ts +17 -8
- package/src/resource.ts +1 -1
- package/src/scope.ts +32 -25
- package/src/state/instrumented-state-store.ts +1 -1
- package/src/util/cli-args.ts +11 -0
- package/src/util/retry.ts +2 -1
- package/src/util/telemetry.ts +68 -2
- package/src/util/validate-resource-id.ts +10 -0
- package/workers/tunnel-proxy.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/util/telemetry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/util/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-resource-id.d.ts","sourceRoot":"","sources":["../../src/util/validate-resource-id.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,SAAa,GAAG,IAAI,CAS3E"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function validateResourceID(id, qualifier = "Resource") {
|
|
2
|
+
//todo(sam): during effect rewrite, this should be much more limiting
|
|
3
|
+
//todo: its hard to undo the flexibility we've offered to users now
|
|
4
|
+
if (!id) {
|
|
5
|
+
throw new Error(`${qualifier} ID cannot be an empty string: "${id}"`);
|
|
6
|
+
}
|
|
7
|
+
if (id.includes(":")) {
|
|
8
|
+
throw new Error(`${qualifier} ID cannot include colons: "${id}"`);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=validate-resource-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-resource-id.js","sourceRoot":"","sources":["../../src/util/validate-resource-id.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,EAAU,EAAE,SAAS,GAAG,UAAU;IACnE,qEAAqE;IACrE,wEAAwE;IACxE,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,mCAAmC,EAAE,GAAG,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,+BAA+B,EAAE,GAAG,CAAC,CAAC;IACpE,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "alchemy",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.71.1",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "Sam Goodwin <sam@alchemy.run>",
|
|
6
6
|
"homepage": "https://alchemy.run",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/
|
|
9
|
+
"url": "git+https://github.com/alchemy-run/alchemy.git",
|
|
10
10
|
"directory": "alchemy"
|
|
11
11
|
},
|
|
12
12
|
"type": "module",
|
|
@@ -144,6 +144,10 @@
|
|
|
144
144
|
"bun": "./src/stripe/index.ts",
|
|
145
145
|
"import": "./lib/stripe/index.js"
|
|
146
146
|
},
|
|
147
|
+
"./test/vite": {
|
|
148
|
+
"bun": "./src/test/vite.ts",
|
|
149
|
+
"import": "./lib/test/vite.js"
|
|
150
|
+
},
|
|
147
151
|
"./upstash": {
|
|
148
152
|
"bun": "./src/upstash/index.ts",
|
|
149
153
|
"import": "./lib/upstash/index.js"
|
|
@@ -161,6 +165,7 @@
|
|
|
161
165
|
"@aws-sdk/credential-providers": "^3.0.0",
|
|
162
166
|
"@cloudflare/unenv-preset": "^2.6.3",
|
|
163
167
|
"@iarna/toml": "^2.2.5",
|
|
168
|
+
"@octokit/rest": "^21.1.1",
|
|
164
169
|
"@smithy/node-config-provider": "^4.0.0",
|
|
165
170
|
"@smithy/types": "^4.6.0",
|
|
166
171
|
"aws4fetch": "^1.0.20",
|
|
@@ -199,12 +204,12 @@
|
|
|
199
204
|
"@cloudflare/vite-plugin": "^1.10.1",
|
|
200
205
|
"@cloudflare/workers-types": "^4.20250805.0",
|
|
201
206
|
"@libsql/client": "^0.15.12",
|
|
202
|
-
"@octokit/rest": "^21.1.1",
|
|
203
207
|
"@opennextjs/cloudflare": "^1.6.5",
|
|
204
208
|
"astro": "^5.13.2",
|
|
205
209
|
"drizzle-orm": "^0.44.2",
|
|
206
210
|
"rwsdk": "^0.1.36",
|
|
207
|
-
"stripe": "^18.5.0"
|
|
211
|
+
"stripe": "^18.5.0",
|
|
212
|
+
"wrangler": "^4.42.2"
|
|
208
213
|
},
|
|
209
214
|
"peerDependenciesMeta": {
|
|
210
215
|
"@astrojs/cloudflare": {
|
|
@@ -246,9 +251,6 @@
|
|
|
246
251
|
"@opennextjs/cloudflare": {
|
|
247
252
|
"optional": true
|
|
248
253
|
},
|
|
249
|
-
"@octokit/rest": {
|
|
250
|
-
"optional": true
|
|
251
|
-
},
|
|
252
254
|
"@libsql/client": {
|
|
253
255
|
"optional": true
|
|
254
256
|
},
|
|
@@ -279,7 +281,7 @@
|
|
|
279
281
|
"@clack/prompts": "^0.11.0",
|
|
280
282
|
"@cloudflare/containers": "^0.0.13",
|
|
281
283
|
"@cloudflare/puppeteer": "^1.0.2",
|
|
282
|
-
"@cloudflare/vite-plugin": "^1.
|
|
284
|
+
"@cloudflare/vite-plugin": "^1.13.12",
|
|
283
285
|
"@cloudflare/workers-types": "^4.20250805.0",
|
|
284
286
|
"@coinbase/cdp-sdk": "^1.38.2",
|
|
285
287
|
"@libsql/client": "^0.15.12",
|
|
@@ -317,7 +319,7 @@
|
|
|
317
319
|
"tsdown": "^0.14.2",
|
|
318
320
|
"typescript": "^5.8.3",
|
|
319
321
|
"undici": "^7.14.0",
|
|
320
|
-
"wrangler": "^4.
|
|
322
|
+
"wrangler": "^4.42.2",
|
|
321
323
|
"zod": "^4.0.10"
|
|
322
324
|
}
|
|
323
325
|
}
|
package/src/alchemy.ts
CHANGED
|
@@ -15,8 +15,10 @@ import {
|
|
|
15
15
|
import { DEFAULT_STAGE, Scope, type ProviderCredentials } from "./scope.ts";
|
|
16
16
|
import { secret } from "./secret.ts";
|
|
17
17
|
import type { StateStoreType } from "./state.ts";
|
|
18
|
+
import { cliArgs, parseOption } from "./util/cli-args.ts";
|
|
18
19
|
import type { LoggerApi } from "./util/cli.ts";
|
|
19
20
|
import { ALCHEMY_ROOT } from "./util/root-dir.ts";
|
|
21
|
+
import { createAndSendEvent } from "./util/telemetry.ts";
|
|
20
22
|
|
|
21
23
|
/**
|
|
22
24
|
* Type alias for semantic highlighting of `alchemy` as a type keyword
|
|
@@ -101,18 +103,17 @@ async function _alchemy(
|
|
|
101
103
|
appName: string,
|
|
102
104
|
options?: Omit<AlchemyOptions, "appName">,
|
|
103
105
|
): Promise<Scope> {
|
|
104
|
-
const
|
|
106
|
+
const startedAt = performance.now();
|
|
107
|
+
let firstAnalyticsPromise: Promise<void> | undefined;
|
|
108
|
+
if (!options?.noTrack) {
|
|
109
|
+
firstAnalyticsPromise = createAndSendEvent({
|
|
110
|
+
event: "alchemy.start",
|
|
111
|
+
duration: performance.now() - startedAt,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
105
114
|
// user may select a specific app to auto-enable read mode for any other app
|
|
106
115
|
const app = parseOption("--app");
|
|
107
|
-
|
|
108
|
-
option: string,
|
|
109
|
-
defaultValue?: D,
|
|
110
|
-
): D {
|
|
111
|
-
const i = cliArgs.indexOf(option);
|
|
112
|
-
return (
|
|
113
|
-
i !== -1 && i + 1 < cliArgs.length ? cliArgs[i + 1] : defaultValue
|
|
114
|
-
) as D;
|
|
115
|
-
}
|
|
116
|
+
|
|
116
117
|
const cliOptions = {
|
|
117
118
|
phase:
|
|
118
119
|
app && app !== appName
|
|
@@ -170,6 +171,7 @@ If this is a mistake, you can disable this check by setting the ALCHEMY_CI_STATE
|
|
|
170
171
|
password: mergedOptions?.password ?? process.env.ALCHEMY_PASSWORD,
|
|
171
172
|
noTrack: mergedOptions?.noTrack ?? false,
|
|
172
173
|
isSelected: app === undefined ? undefined : app === appName,
|
|
174
|
+
startedAt,
|
|
173
175
|
});
|
|
174
176
|
onExit((code) => {
|
|
175
177
|
root.cleanup().then(() => {
|
|
@@ -188,9 +190,21 @@ If this is a mistake, you can disable this check by setting the ALCHEMY_CI_STATE
|
|
|
188
190
|
Scope.storage.enterWith(root);
|
|
189
191
|
Scope.storage.enterWith(stage);
|
|
190
192
|
if (mergedOptions?.phase === "destroy") {
|
|
191
|
-
await destroy(stage);
|
|
193
|
+
const err = await destroy(stage).catch((e) => e);
|
|
194
|
+
if (!options?.noTrack) {
|
|
195
|
+
await createAndSendEvent(
|
|
196
|
+
{
|
|
197
|
+
event: err instanceof Error ? "alchemy.error" : "alchemy.success",
|
|
198
|
+
duration: performance.now() - root.startedAt,
|
|
199
|
+
},
|
|
200
|
+
err instanceof Error ? err : undefined,
|
|
201
|
+
);
|
|
202
|
+
}
|
|
192
203
|
return process.exit(0);
|
|
193
204
|
}
|
|
205
|
+
if (firstAnalyticsPromise) {
|
|
206
|
+
await firstAnalyticsPromise;
|
|
207
|
+
}
|
|
194
208
|
return root;
|
|
195
209
|
}
|
|
196
210
|
|
package/src/apply.ts
CHANGED
|
@@ -20,6 +20,7 @@ import type { State } from "./state.ts";
|
|
|
20
20
|
import { formatFQN } from "./util/cli.ts";
|
|
21
21
|
import { logger } from "./util/logger.ts";
|
|
22
22
|
import { createAndSendEvent } from "./util/telemetry.ts";
|
|
23
|
+
import { validateResourceID } from "./util/validate-resource-id.ts";
|
|
23
24
|
|
|
24
25
|
export interface ApplyOptions {
|
|
25
26
|
quiet?: boolean;
|
|
@@ -56,6 +57,7 @@ async function _apply<Out extends ResourceAttributes>(
|
|
|
56
57
|
): Promise<Awaited<Out> & Resource> {
|
|
57
58
|
const scope = resource[ResourceScope];
|
|
58
59
|
const start = performance.now();
|
|
60
|
+
validateResourceID(resource[ResourceID], "Resource");
|
|
59
61
|
try {
|
|
60
62
|
const quiet = props?.quiet ?? scope.quiet;
|
|
61
63
|
await scope.init();
|
|
@@ -83,7 +85,7 @@ async function _apply<Out extends ResourceAttributes>(
|
|
|
83
85
|
// we are running in a monorepo and are not the selected app, so we need to wait for the process to be consistent
|
|
84
86
|
state = await waitForConsistentState();
|
|
85
87
|
}
|
|
86
|
-
createAndSendEvent({
|
|
88
|
+
await createAndSendEvent({
|
|
87
89
|
event: "resource.read",
|
|
88
90
|
phase: scope.phase,
|
|
89
91
|
duration: performance.now() - start,
|
|
@@ -29,6 +29,7 @@ import type { VersionMetadata } from "./version-metadata.ts";
|
|
|
29
29
|
import type { WorkerRef } from "./worker-ref.ts";
|
|
30
30
|
import type { WorkerStub } from "./worker-stub.ts";
|
|
31
31
|
import type { Worker } from "./worker.ts";
|
|
32
|
+
import type { WorkerLoader } from "./worker-loader.ts";
|
|
32
33
|
import type { Workflow } from "./workflow.ts";
|
|
33
34
|
|
|
34
35
|
export type Bindings = {
|
|
@@ -74,6 +75,7 @@ export type Binding =
|
|
|
74
75
|
| WorkerStub
|
|
75
76
|
| WorkerRef
|
|
76
77
|
| WorkerEntrypoint
|
|
78
|
+
| WorkerLoader
|
|
77
79
|
| Workflow
|
|
78
80
|
| BrowserRendering
|
|
79
81
|
| VersionMetadata
|
|
@@ -138,6 +140,7 @@ export type WorkerBindingSpec =
|
|
|
138
140
|
| WorkerBindingVectorize
|
|
139
141
|
| WorkerBindingVersionMetadata
|
|
140
142
|
| WorkerBindingWasmModule
|
|
143
|
+
| WorkerBindingWorkerLoader
|
|
141
144
|
| WorkerBindingWorkflow;
|
|
142
145
|
|
|
143
146
|
/**
|
|
@@ -515,3 +518,13 @@ export interface WorkerBindingPipeline {
|
|
|
515
518
|
/** Pipeline name */
|
|
516
519
|
pipeline: string;
|
|
517
520
|
}
|
|
521
|
+
|
|
522
|
+
/**
|
|
523
|
+
* Worker Loader binding type
|
|
524
|
+
*/
|
|
525
|
+
export interface WorkerBindingWorkerLoader {
|
|
526
|
+
/** The name of the binding */
|
|
527
|
+
name: string;
|
|
528
|
+
/** Type identifier for Worker Loader binding */
|
|
529
|
+
type: "worker_loader";
|
|
530
|
+
}
|
package/src/cloudflare/bound.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type {
|
|
|
4
4
|
D1Database,
|
|
5
5
|
DispatchNamespace,
|
|
6
6
|
DurableObjectNamespace,
|
|
7
|
+
WorkerLoader,
|
|
7
8
|
Fetcher,
|
|
8
9
|
Hyperdrive,
|
|
9
10
|
ImagesBinding,
|
|
@@ -43,6 +44,7 @@ import type { VersionMetadata as _VersionMetadata } from "./version-metadata.ts"
|
|
|
43
44
|
import type { WorkerRef } from "./worker-ref.ts";
|
|
44
45
|
import type { WorkerStub } from "./worker-stub.ts";
|
|
45
46
|
import type { Worker as _Worker } from "./worker.ts";
|
|
47
|
+
import type { WorkerLoader as _WorkerLoader } from "./worker-loader.ts";
|
|
46
48
|
import type { Workflow as _Workflow } from "./workflow.ts";
|
|
47
49
|
|
|
48
50
|
type BoundWorker<
|
|
@@ -86,35 +88,37 @@ export type Bound<T extends Binding> = T extends _DurableObjectNamespace<
|
|
|
86
88
|
? D1Database
|
|
87
89
|
: T extends DispatchNamespace
|
|
88
90
|
? DispatchNamespace
|
|
89
|
-
: T extends
|
|
90
|
-
?
|
|
91
|
-
: T extends
|
|
92
|
-
?
|
|
93
|
-
: T extends
|
|
94
|
-
?
|
|
95
|
-
: T extends
|
|
96
|
-
?
|
|
97
|
-
: T extends
|
|
98
|
-
?
|
|
99
|
-
: T extends
|
|
100
|
-
?
|
|
101
|
-
: T extends
|
|
102
|
-
?
|
|
103
|
-
: T extends
|
|
104
|
-
?
|
|
105
|
-
: T extends
|
|
106
|
-
?
|
|
107
|
-
: T extends
|
|
108
|
-
?
|
|
109
|
-
: T extends
|
|
110
|
-
?
|
|
111
|
-
: T extends
|
|
112
|
-
?
|
|
113
|
-
: T extends
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
91
|
+
: T extends _WorkerLoader
|
|
92
|
+
? WorkerLoader
|
|
93
|
+
: T extends _VectorizeIndex
|
|
94
|
+
? VectorizeIndex
|
|
95
|
+
: T extends _Queue<infer Body>
|
|
96
|
+
? Queue<Body>
|
|
97
|
+
: T extends _AnalyticsEngineDataset
|
|
98
|
+
? AnalyticsEngineDataset
|
|
99
|
+
: T extends _Pipeline<infer R>
|
|
100
|
+
? Pipeline<R>
|
|
101
|
+
: T extends _RateLimit
|
|
102
|
+
? RateLimit
|
|
103
|
+
: T extends string
|
|
104
|
+
? T
|
|
105
|
+
: T extends BrowserRendering
|
|
106
|
+
? Fetcher
|
|
107
|
+
: T extends _Ai<infer M>
|
|
108
|
+
? Ai<M>
|
|
109
|
+
: T extends _Images
|
|
110
|
+
? ImagesBinding
|
|
111
|
+
: T extends _VersionMetadata
|
|
112
|
+
? WorkerVersionMetadata
|
|
113
|
+
: T extends Self
|
|
114
|
+
? Service
|
|
115
|
+
: T extends Json<infer T>
|
|
116
|
+
? T
|
|
117
|
+
: T extends _Container<
|
|
118
|
+
infer Obj
|
|
119
|
+
>
|
|
120
|
+
? DurableObjectNamespace<
|
|
121
|
+
Obj &
|
|
122
|
+
Rpc.DurableObjectBranded
|
|
123
|
+
>
|
|
124
|
+
: Service;
|
package/src/cloudflare/bucket.ts
CHANGED
|
@@ -347,6 +347,13 @@ type _R2Bucket = Omit<BucketProps, "delete" | "dev"> & {
|
|
|
347
347
|
* Whether the bucket is running remotely
|
|
348
348
|
*/
|
|
349
349
|
remote: boolean;
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* Whether the bucket has been deployed
|
|
353
|
+
*
|
|
354
|
+
* @internal
|
|
355
|
+
*/
|
|
356
|
+
isDeployed?: boolean;
|
|
350
357
|
};
|
|
351
358
|
|
|
352
359
|
/**
|
|
@@ -587,15 +594,17 @@ const _R2Bucket = Resource(
|
|
|
587
594
|
}
|
|
588
595
|
|
|
589
596
|
const allowPublicAccess = props.allowPublicAccess === true;
|
|
597
|
+
const isLocal = this.scope.local && !props.dev?.remote;
|
|
590
598
|
const dev = {
|
|
591
599
|
id: this.output?.dev?.id ?? bucketName,
|
|
592
600
|
remote: props.dev?.remote ?? false,
|
|
593
|
-
|
|
601
|
+
isDeployed: this.output?.dev?.isDeployed || !isLocal,
|
|
602
|
+
} satisfies _R2Bucket["dev"];
|
|
594
603
|
const adopt = props.adopt ?? this.scope.adopt;
|
|
595
604
|
|
|
596
|
-
if (
|
|
605
|
+
if (isLocal) {
|
|
597
606
|
return {
|
|
598
|
-
name:
|
|
607
|
+
name: bucketName,
|
|
599
608
|
location: this.output?.location ?? "",
|
|
600
609
|
creationDate: this.output?.creationDate ?? new Date(),
|
|
601
610
|
jurisdiction: this.output?.jurisdiction ?? "default",
|
|
@@ -626,7 +635,7 @@ const _R2Bucket = Resource(
|
|
|
626
635
|
return this.destroy();
|
|
627
636
|
}
|
|
628
637
|
|
|
629
|
-
if (this.phase === "create" || !this.output?.
|
|
638
|
+
if (this.phase === "create" || !this.output?.dev?.isDeployed) {
|
|
630
639
|
const bucket = await createBucket(api, bucketName, props).catch(
|
|
631
640
|
async (err) => {
|
|
632
641
|
if (
|
|
@@ -15,7 +15,12 @@ import {
|
|
|
15
15
|
} from "../website.ts";
|
|
16
16
|
|
|
17
17
|
export interface BunSPAProps<B extends Bindings> extends WebsiteProps<B> {
|
|
18
|
-
|
|
18
|
+
/**
|
|
19
|
+
* The path to the frontend entrypoints that bun should bundle for deployment & serve in dev mode.
|
|
20
|
+
* These are usually html files. Glob patterns are supported.
|
|
21
|
+
* Typically set to index.html
|
|
22
|
+
*/
|
|
23
|
+
frontend: string | string[];
|
|
19
24
|
outDir?: string;
|
|
20
25
|
}
|
|
21
26
|
|
|
@@ -25,15 +30,39 @@ export async function BunSPA<B extends Bindings>(
|
|
|
25
30
|
id: string,
|
|
26
31
|
props: BunSPAProps<B>,
|
|
27
32
|
): Promise<BunSPA<B> & { apiUrl: string }> {
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
const frontendPaths = Array.isArray(props.frontend)
|
|
34
|
+
? props.frontend.map((p) => path.resolve(p))
|
|
35
|
+
: [path.resolve(props.frontend)];
|
|
36
|
+
|
|
37
|
+
// Helper to check if a path contains glob patterns
|
|
38
|
+
const isGlobPattern = (p: string) =>
|
|
39
|
+
p.includes("*") || p.includes("?") || p.includes("[") || p.includes("]");
|
|
40
|
+
|
|
41
|
+
// Only validate non-glob paths
|
|
42
|
+
const nonGlobPaths = frontendPaths.filter((p) => !isGlobPattern(p));
|
|
32
43
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
44
|
+
if (nonGlobPaths.length > 0) {
|
|
45
|
+
const existsPromises = nonGlobPaths.map((p) => exists(p));
|
|
46
|
+
const existsResults = await Promise.all(existsPromises);
|
|
47
|
+
const missingPaths = nonGlobPaths.filter((_p, i) => !existsResults[i]);
|
|
48
|
+
if (missingPaths.length > 0) {
|
|
49
|
+
if (missingPaths.length === 1) {
|
|
50
|
+
throw new Error(`Frontend path ${missingPaths[0]} does not exist`);
|
|
51
|
+
}
|
|
52
|
+
throw new Error(`Frontend paths ${missingPaths.join(", ")} do not exist`);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const statsPromises = nonGlobPaths.map((p) => fs.stat(p));
|
|
56
|
+
const statsResults = await Promise.all(statsPromises);
|
|
57
|
+
const notFiles = nonGlobPaths.filter((_, i) => !statsResults[i].isFile());
|
|
58
|
+
if (notFiles.length > 0) {
|
|
59
|
+
if (notFiles.length === 1) {
|
|
60
|
+
throw new Error(`Frontend path ${notFiles[0]} is not a file`);
|
|
61
|
+
}
|
|
62
|
+
throw new Error(`Frontend paths ${notFiles.join(", ")} are not files`);
|
|
63
|
+
}
|
|
36
64
|
}
|
|
65
|
+
|
|
37
66
|
const outDir = path.resolve(props.outDir ?? "dist/client");
|
|
38
67
|
|
|
39
68
|
if (props.assets) {
|
|
@@ -58,7 +87,7 @@ export async function BunSPA<B extends Bindings>(
|
|
|
58
87
|
},
|
|
59
88
|
build: spreadBuildProps(
|
|
60
89
|
props,
|
|
61
|
-
`bun build '${
|
|
90
|
+
`bun build '${frontendPaths.join("' '")}' --outdir ${outDir}`,
|
|
62
91
|
),
|
|
63
92
|
});
|
|
64
93
|
|
|
@@ -67,9 +96,12 @@ export async function BunSPA<B extends Bindings>(
|
|
|
67
96
|
if (scope.local) {
|
|
68
97
|
const cwd = props.cwd ?? process.cwd();
|
|
69
98
|
await validateBunfigToml(cwd);
|
|
99
|
+
const frontendPathsRelativeToCwd = frontendPaths.map((p) =>
|
|
100
|
+
path.relative(cwd, p),
|
|
101
|
+
);
|
|
70
102
|
const dev = spreadDevProps(
|
|
71
103
|
props,
|
|
72
|
-
`bun '${
|
|
104
|
+
`bun '${frontendPathsRelativeToCwd.join("' '")}'`,
|
|
73
105
|
);
|
|
74
106
|
const secrets = props.wrangler?.secrets ?? !props.wrangler?.path;
|
|
75
107
|
const env = {
|
|
@@ -113,7 +113,7 @@ export interface D1DatabaseProps extends CloudflareApiOptions {
|
|
|
113
113
|
* Set when `Scope.local` is true to force update to the database even if it was already deployed live.
|
|
114
114
|
* @internal
|
|
115
115
|
*/
|
|
116
|
-
force?: boolean
|
|
116
|
+
force?: boolean;
|
|
117
117
|
};
|
|
118
118
|
}
|
|
119
119
|
|
|
@@ -250,7 +250,7 @@ export async function D1Database(
|
|
|
250
250
|
...(props.dev ?? {}),
|
|
251
251
|
// force local migrations to run even if the database was already deployed live
|
|
252
252
|
// this property will oscillate from true to false depending on the dev vs live deployment
|
|
253
|
-
force: Scope.current.local
|
|
253
|
+
force: Scope.current.local,
|
|
254
254
|
},
|
|
255
255
|
});
|
|
256
256
|
}
|