@portel/photon-core 2.25.0 → 2.27.0
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 +121 -0
- package/dist/asset-discovery.d.ts +8 -2
- package/dist/asset-discovery.d.ts.map +1 -1
- package/dist/asset-discovery.js +46 -9
- package/dist/asset-discovery.js.map +1 -1
- package/dist/base.d.ts +76 -0
- package/dist/base.d.ts.map +1 -1
- package/dist/base.js +80 -0
- package/dist/base.js.map +1 -1
- package/dist/cf.d.ts +121 -0
- package/dist/cf.d.ts.map +1 -0
- package/dist/cf.js +65 -0
- package/dist/cf.js.map +1 -0
- package/dist/cloudflare.d.ts +110 -0
- package/dist/cloudflare.d.ts.map +1 -0
- package/dist/cloudflare.js +138 -0
- package/dist/cloudflare.js.map +1 -0
- package/dist/collections/Collection.d.ts +12 -0
- package/dist/collections/Collection.d.ts.map +1 -1
- package/dist/collections/Collection.js +19 -0
- package/dist/collections/Collection.js.map +1 -1
- package/dist/env.d.ts +29 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +2 -0
- package/dist/env.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mixins.d.ts.map +1 -1
- package/dist/mixins.js +10 -0
- package/dist/mixins.js.map +1 -1
- package/dist/photon-loader-lite.d.ts +17 -0
- package/dist/photon-loader-lite.d.ts.map +1 -1
- package/dist/photon-loader-lite.js +150 -1
- package/dist/photon-loader-lite.js.map +1 -1
- package/dist/schema-extractor.d.ts +25 -6
- package/dist/schema-extractor.d.ts.map +1 -1
- package/dist/schema-extractor.js +86 -7
- package/dist/schema-extractor.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +3 -2
- package/src/asset-discovery.ts +44 -9
- package/src/base.ts +86 -0
- package/src/cf.ts +165 -0
- package/src/cloudflare.ts +198 -0
- package/src/collections/Collection.ts +19 -0
- package/src/env.ts +28 -0
- package/src/index.ts +27 -0
- package/src/mixins.ts +12 -0
- package/src/photon-loader-lite.ts +185 -0
- package/src/schema-extractor.ts +119 -9
- package/src/types.ts +16 -1
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqhBH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAY,EAAE,CAAC,GAAe,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@portel/photon-core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.27.0",
|
|
4
4
|
"description": "Core library for parsing, loading, and managing .photon.ts files - runtime-agnostic foundation for building custom Photon runtimes",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -69,7 +69,8 @@
|
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@types/node": "^22.10.2",
|
|
72
|
-
"tsx": "^4.21.0"
|
|
72
|
+
"tsx": "^4.21.0",
|
|
73
|
+
"vitest": "^4.1.5"
|
|
73
74
|
},
|
|
74
75
|
"engines": {
|
|
75
76
|
"node": ">=18.0.0",
|
package/src/asset-discovery.ts
CHANGED
|
@@ -28,9 +28,15 @@ async function fileExists(filePath: string): Promise<boolean> {
|
|
|
28
28
|
/**
|
|
29
29
|
* Discover and extract assets from a Photon file
|
|
30
30
|
*
|
|
31
|
-
*
|
|
31
|
+
* Conventions (both supported, dual-layout):
|
|
32
32
|
* - Asset folder: {photon-name}/ next to {photon-name}.photon.ts
|
|
33
|
-
* -
|
|
33
|
+
* - Old layout: subfolders ui/, prompts/, resources/ live directly under {photon-name}/
|
|
34
|
+
* - New layout: subfolders live under {photon-name}/assets/ (canonical bundle root)
|
|
35
|
+
*
|
|
36
|
+
* When {photon-name}/assets/ exists, it becomes the resolution root for
|
|
37
|
+
* explicit @ui declarations and the source for auto-discovery. The plain
|
|
38
|
+
* {photon-name}/ folder remains a fallback so older photons keep working
|
|
39
|
+
* without modification.
|
|
34
40
|
*
|
|
35
41
|
* @param photonPath - Absolute path to the .photon.ts file
|
|
36
42
|
* @param source - Source code content of the Photon file
|
|
@@ -70,8 +76,23 @@ export async function discoverAssets(
|
|
|
70
76
|
// Folder doesn't exist
|
|
71
77
|
}
|
|
72
78
|
|
|
79
|
+
// Dual-layout: prefer {photon}/assets/ as the canonical root when present.
|
|
80
|
+
// Falling back to the plain folder keeps every pre-v1.29 fixture working.
|
|
81
|
+
let assetRoot = assetFolder;
|
|
82
|
+
if (folderExists) {
|
|
83
|
+
const nestedRoot = path.join(assetFolder, 'assets');
|
|
84
|
+
try {
|
|
85
|
+
const nestedStat = await fs.stat(nestedRoot);
|
|
86
|
+
if (nestedStat.isDirectory()) {
|
|
87
|
+
assetRoot = nestedRoot;
|
|
88
|
+
}
|
|
89
|
+
} catch {
|
|
90
|
+
// No assets/ subfolder — keep the legacy root.
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
73
94
|
// Extract explicit asset declarations from source annotations
|
|
74
|
-
const assets = extractor.extractAssets(source, folderExists ?
|
|
95
|
+
const assets = extractor.extractAssets(source, folderExists ? assetRoot : undefined);
|
|
75
96
|
|
|
76
97
|
// If no folder exists and no explicit declarations, skip
|
|
77
98
|
if (
|
|
@@ -84,19 +105,33 @@ export async function discoverAssets(
|
|
|
84
105
|
}
|
|
85
106
|
|
|
86
107
|
if (folderExists) {
|
|
87
|
-
// Resolve paths for explicitly declared assets
|
|
108
|
+
// Resolve paths for explicitly declared assets. Try the canonical root
|
|
109
|
+
// first; if a declaration was written against the legacy root convention
|
|
110
|
+
// (./ui/foo.html with no assets/ wrapper), fall back to assetFolder so
|
|
111
|
+
// the directive keeps resolving without source edits.
|
|
112
|
+
const resolveAssetPath = async (declared: string): Promise<string> => {
|
|
113
|
+
const cleaned = declared.replace(/^\.\//, '');
|
|
114
|
+
const primary = path.resolve(assetRoot, cleaned);
|
|
115
|
+
if (assetRoot === assetFolder) return primary;
|
|
116
|
+
try {
|
|
117
|
+
await fs.access(primary);
|
|
118
|
+
return primary;
|
|
119
|
+
} catch {
|
|
120
|
+
return path.resolve(assetFolder, cleaned);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
88
123
|
for (const ui of assets.ui) {
|
|
89
|
-
ui.resolvedPath =
|
|
124
|
+
ui.resolvedPath = await resolveAssetPath(ui.path);
|
|
90
125
|
}
|
|
91
126
|
for (const prompt of assets.prompts) {
|
|
92
|
-
prompt.resolvedPath =
|
|
127
|
+
prompt.resolvedPath = await resolveAssetPath(prompt.path);
|
|
93
128
|
}
|
|
94
129
|
for (const resource of assets.resources) {
|
|
95
|
-
resource.resolvedPath =
|
|
130
|
+
resource.resolvedPath = await resolveAssetPath(resource.path);
|
|
96
131
|
}
|
|
97
132
|
|
|
98
|
-
// Auto-discover assets from folder structure
|
|
99
|
-
await autoDiscoverAssets(
|
|
133
|
+
// Auto-discover assets from folder structure (new convention root first).
|
|
134
|
+
await autoDiscoverAssets(assetRoot, assets);
|
|
100
135
|
}
|
|
101
136
|
|
|
102
137
|
return assets;
|
package/src/base.ts
CHANGED
|
@@ -139,6 +139,35 @@ export class Photon {
|
|
|
139
139
|
*/
|
|
140
140
|
_sessionId?: string;
|
|
141
141
|
|
|
142
|
+
/**
|
|
143
|
+
* Cloudflare Worker env, present only when the photon runs on a
|
|
144
|
+
* deployed CF Worker. Carries bindings (KV, R2, secrets, custom env
|
|
145
|
+
* vars) that aren't part of the typed `this.cf.*` namespace. Undefined
|
|
146
|
+
* on the local CLI / Beam daemon.
|
|
147
|
+
*
|
|
148
|
+
* Typed loosely so photon-core stays free of `@cloudflare/workers-types`.
|
|
149
|
+
* Photons that need exact binding shapes can re-declare the property
|
|
150
|
+
* with a stricter type.
|
|
151
|
+
*/
|
|
152
|
+
readonly env?: Record<string, unknown>;
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* True when the active `/mcp` request passed the `PHOTON_MCP_BEARER`
|
|
156
|
+
* Worker secret check. False/undefined when:
|
|
157
|
+
* - no secret is configured (the bearer gate is off),
|
|
158
|
+
* - the photon is running locally (CLI / Beam),
|
|
159
|
+
* - the call arrived via `/api/*`, `__call`, or any path other than
|
|
160
|
+
* a transport-authed `tools/call`.
|
|
161
|
+
*
|
|
162
|
+
* User code can guard sensitive methods with:
|
|
163
|
+
* ```typescript
|
|
164
|
+
* if (!this.mcpAuthed) throw new Error('unauthorized');
|
|
165
|
+
* ```
|
|
166
|
+
* Backed by AsyncLocalStorage on the deployed Worker so concurrent
|
|
167
|
+
* tool calls each see their own value.
|
|
168
|
+
*/
|
|
169
|
+
readonly mcpAuthed?: boolean;
|
|
170
|
+
|
|
142
171
|
/**
|
|
143
172
|
* Authenticated caller identity
|
|
144
173
|
*
|
|
@@ -263,6 +292,63 @@ export class Photon {
|
|
|
263
292
|
return '';
|
|
264
293
|
}
|
|
265
294
|
|
|
295
|
+
/**
|
|
296
|
+
* Workspace roots declared by the connected MCP client (per spec
|
|
297
|
+
* `roots/list`). Each entry is a `{ uri, name? }` pair; URIs always start
|
|
298
|
+
* with `file://` per the current spec.
|
|
299
|
+
*
|
|
300
|
+
* Empty when:
|
|
301
|
+
* - the client did not declare the `roots` capability,
|
|
302
|
+
* - the photon is running outside a live MCP session (CLI / unit test),
|
|
303
|
+
* - the client returned an empty list.
|
|
304
|
+
*
|
|
305
|
+
* The runtime fetches `roots/list` once per session and refreshes on
|
|
306
|
+
* `notifications/roots/list_changed`, so reads inside a tool call are
|
|
307
|
+
* synchronous and consistent.
|
|
308
|
+
*
|
|
309
|
+
* @example
|
|
310
|
+
* ```typescript
|
|
311
|
+
* async listProjectFiles() {
|
|
312
|
+
* const roots = this.roots;
|
|
313
|
+
* if (roots.length === 0) return [];
|
|
314
|
+
* // ...resolve files under each root.uri...
|
|
315
|
+
* }
|
|
316
|
+
* ```
|
|
317
|
+
*/
|
|
318
|
+
get roots(): Array<{ uri: string; name?: string }> {
|
|
319
|
+
const store = executionContext.getStore() as
|
|
320
|
+
| { roots?: Array<{ uri: string; name?: string }> }
|
|
321
|
+
| undefined;
|
|
322
|
+
return store?.roots ?? [];
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* Notify subscribed MCP clients that the resource at `uri` has changed.
|
|
327
|
+
* Triggers `notifications/resources/updated` for every client that has
|
|
328
|
+
* issued `resources/subscribe` against this exact URI.
|
|
329
|
+
*
|
|
330
|
+
* Default no-op so calls from CLI execution (no live MCP server) do not
|
|
331
|
+
* throw. The runtime overrides this with a wired version on every
|
|
332
|
+
* instance it constructs; that wired version dispatches into the
|
|
333
|
+
* server's subscription registry.
|
|
334
|
+
*
|
|
335
|
+
* Use it from `@stateful` methods or any code path that mutates the
|
|
336
|
+
* data behind a `@resource <uri-template>` resolver:
|
|
337
|
+
*
|
|
338
|
+
* @example
|
|
339
|
+
* ```typescript
|
|
340
|
+
* async upsertPerson(params: { slug: string; ... }) {
|
|
341
|
+
* this.people[params.slug] = ...;
|
|
342
|
+
* this.notifyResourceUpdated(`person://${params.slug}`);
|
|
343
|
+
* }
|
|
344
|
+
* ```
|
|
345
|
+
*/
|
|
346
|
+
notifyResourceUpdated(_uri: string): void {
|
|
347
|
+
// Runtime injects a wired version on every instance — see
|
|
348
|
+
// photon/src/loader.ts injectResourceNotifier. This default is for
|
|
349
|
+
// standalone use (CLI, unit tests) where no MCP server is attached.
|
|
350
|
+
}
|
|
351
|
+
|
|
266
352
|
/**
|
|
267
353
|
* Internal: resolve the runtime-supplied input provider, throwing a
|
|
268
354
|
* clear error if none is attached to the current execution context.
|
package/src/cf.ts
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare capability surface — `this.cf.*`
|
|
3
|
+
*
|
|
4
|
+
* Photons reach into Cloudflare features (R2, KV, D1, Workers AI, Queues,
|
|
5
|
+
* Vectorize, Images, Browser Rendering, Durable Objects) through one
|
|
6
|
+
* namespace. The runtime adapter that wraps a photon decides what backs
|
|
7
|
+
* each binding:
|
|
8
|
+
*
|
|
9
|
+
* - Local: `miniflare` provides an in-process sandbox seeded from the
|
|
10
|
+
* photon's `protected cfBindings = { ... }` config.
|
|
11
|
+
* - Deployed Worker: the real `env` is proxied through.
|
|
12
|
+
*
|
|
13
|
+
* Both paths satisfy the same shape, so the photon source is unchanged.
|
|
14
|
+
*
|
|
15
|
+
* Typing: we publish minimal structural shapes here rather than re-exporting
|
|
16
|
+
* `@cloudflare/workers-types`. The cost of importing the full workers-types
|
|
17
|
+
* tree (~6k lines of declarations) into every photon's transform pipeline
|
|
18
|
+
* showed up as flaky `EPIPE` errors under tsx. Photons that already use
|
|
19
|
+
* workers-types get exact compatibility through structural typing — assign
|
|
20
|
+
* a `R2Bucket` from workers-types into our `R2BucketLike` and TS accepts
|
|
21
|
+
* it. Photons that don't use workers-types still see typed methods on
|
|
22
|
+
* the namespace and full autocomplete on the runtime methods we expose
|
|
23
|
+
* here.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Minimal R2 bucket surface — covers the methods photons actually call.
|
|
28
|
+
* Structurally compatible with `@cloudflare/workers-types` `R2Bucket`.
|
|
29
|
+
*/
|
|
30
|
+
export interface R2BucketLike {
|
|
31
|
+
head(key: string): Promise<unknown>;
|
|
32
|
+
get(key: string, options?: unknown): Promise<unknown>;
|
|
33
|
+
put(key: string, value: unknown, options?: unknown): Promise<unknown>;
|
|
34
|
+
delete(keys: string | string[]): Promise<void>;
|
|
35
|
+
list(options?: unknown): Promise<unknown>;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Minimal KV namespace surface. */
|
|
39
|
+
export interface KVNamespaceLike {
|
|
40
|
+
get(key: string, options?: unknown): Promise<unknown>;
|
|
41
|
+
put(key: string, value: string | ArrayBuffer | ArrayBufferView | ReadableStream, options?: unknown): Promise<void>;
|
|
42
|
+
delete(key: string): Promise<void>;
|
|
43
|
+
list(options?: unknown): Promise<unknown>;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** Minimal D1 database surface. */
|
|
47
|
+
export interface D1DatabaseLike {
|
|
48
|
+
prepare(query: string): D1PreparedStatementLike;
|
|
49
|
+
batch<T = unknown>(statements: D1PreparedStatementLike[]): Promise<T[]>;
|
|
50
|
+
exec(query: string): Promise<unknown>;
|
|
51
|
+
dump(): Promise<ArrayBuffer>;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** Minimal D1 prepared statement surface. */
|
|
55
|
+
export interface D1PreparedStatementLike {
|
|
56
|
+
bind(...values: unknown[]): D1PreparedStatementLike;
|
|
57
|
+
first<T = unknown>(colName?: string): Promise<T | null>;
|
|
58
|
+
run<T = unknown>(): Promise<T>;
|
|
59
|
+
all<T = unknown>(): Promise<T>;
|
|
60
|
+
raw<T = unknown>(): Promise<T[]>;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/** Minimal queue surface. */
|
|
64
|
+
export interface QueueLike<Body = unknown> {
|
|
65
|
+
send(message: Body, options?: unknown): Promise<void>;
|
|
66
|
+
sendBatch(messages: { body: Body }[], options?: unknown): Promise<void>;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** Minimal vectorize surface. */
|
|
70
|
+
export interface VectorizeIndexLike {
|
|
71
|
+
insert(vectors: unknown[]): Promise<unknown>;
|
|
72
|
+
upsert(vectors: unknown[]): Promise<unknown>;
|
|
73
|
+
query(vector: number[], options?: unknown): Promise<unknown>;
|
|
74
|
+
getByIds(ids: string[]): Promise<unknown>;
|
|
75
|
+
deleteByIds(ids: string[]): Promise<unknown>;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** Minimal Workers AI surface. */
|
|
79
|
+
export interface AiLike {
|
|
80
|
+
run(model: string, inputs: unknown, options?: unknown): Promise<unknown>;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** Minimal Cloudflare Images binding surface. */
|
|
84
|
+
export interface ImagesBindingLike {
|
|
85
|
+
info(stream: ReadableStream): Promise<unknown>;
|
|
86
|
+
input(stream: ReadableStream): unknown;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/** Minimal Fetcher surface (Service binding / Browser Rendering). */
|
|
90
|
+
export interface FetcherLike {
|
|
91
|
+
fetch(input: string, init?: unknown): Promise<unknown>;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/** Minimal Durable Object namespace surface. */
|
|
95
|
+
export interface DurableObjectNamespaceLike {
|
|
96
|
+
idFromName(name: string): unknown;
|
|
97
|
+
idFromString(id: string): unknown;
|
|
98
|
+
newUniqueId(): unknown;
|
|
99
|
+
get(id: unknown): { fetch(input: string, init?: unknown): Promise<unknown> };
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Cloudflare runtime surface as exposed via `this.cf`.
|
|
104
|
+
*
|
|
105
|
+
* Each subnamespace returns either an upstream Cloudflare type or a
|
|
106
|
+
* runtime-supplied proxy with the same shape. Backends:
|
|
107
|
+
* - Local: miniflare instance configured from `protected cfBindings`.
|
|
108
|
+
* - Deployed Worker: real `env.<binding>` passed through.
|
|
109
|
+
*/
|
|
110
|
+
export interface CFRuntime {
|
|
111
|
+
r2(name: string): R2BucketLike;
|
|
112
|
+
kv(name: string): KVNamespaceLike;
|
|
113
|
+
d1(name: string): D1DatabaseLike;
|
|
114
|
+
queue<Body = unknown>(name: string): QueueLike<Body>;
|
|
115
|
+
vectorize(name: string): VectorizeIndexLike;
|
|
116
|
+
ai: AiLike;
|
|
117
|
+
images: ImagesBindingLike;
|
|
118
|
+
browser: FetcherLike;
|
|
119
|
+
fetch(input: string, init?: unknown): Promise<unknown>;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const HINT =
|
|
123
|
+
'No Cloudflare runtime is configured. Either run this photon under a ' +
|
|
124
|
+
'CF-aware host (local Beam with miniflare, or deployed to Cloudflare ' +
|
|
125
|
+
'Workers), declare `protected cfBindings = { ... }` on the class, or ' +
|
|
126
|
+
'remove the `this.cf` usage.';
|
|
127
|
+
|
|
128
|
+
function throwingFn(category: string): (...args: unknown[]) => never {
|
|
129
|
+
return (..._args: unknown[]) => {
|
|
130
|
+
throw new Error(`this.cf.${category}() called but ${HINT}`);
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function throwingProperty(category: string): never {
|
|
135
|
+
return new Proxy(Object.create(null), {
|
|
136
|
+
get(_target, prop) {
|
|
137
|
+
if (prop === Symbol.toPrimitive || prop === 'toString') {
|
|
138
|
+
return () => `[unconfigured this.cf.${category}]`;
|
|
139
|
+
}
|
|
140
|
+
throw new Error(`this.cf.${category}.${String(prop)} accessed but ${HINT}`);
|
|
141
|
+
},
|
|
142
|
+
}) as never;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Returns a stub `CFRuntime` whose subnamespaces throw a helpful error
|
|
147
|
+
* when used. Callers should hold one instance per photon (mirrors the
|
|
148
|
+
* `_memory` and `_schedule` lazy-init pattern) so identity-sensitive
|
|
149
|
+
* checks remain consistent across reads of `this.cf`.
|
|
150
|
+
*/
|
|
151
|
+
export function notConfiguredCF(): CFRuntime {
|
|
152
|
+
return {
|
|
153
|
+
r2: throwingFn('r2') as CFRuntime['r2'],
|
|
154
|
+
kv: throwingFn('kv') as CFRuntime['kv'],
|
|
155
|
+
d1: throwingFn('d1') as CFRuntime['d1'],
|
|
156
|
+
queue: throwingFn('queue') as CFRuntime['queue'],
|
|
157
|
+
vectorize: throwingFn('vectorize') as CFRuntime['vectorize'],
|
|
158
|
+
ai: throwingProperty('ai') as unknown as AiLike,
|
|
159
|
+
images: throwingProperty('images') as unknown as ImagesBindingLike,
|
|
160
|
+
browser: throwingProperty('browser') as unknown as FetcherLike,
|
|
161
|
+
fetch: ((_input: string, _init?: unknown) => {
|
|
162
|
+
throw new Error(`this.cf.fetch() called but ${HINT}`);
|
|
163
|
+
}) as CFRuntime['fetch'],
|
|
164
|
+
};
|
|
165
|
+
}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare — wrapped, auto-named CF surface injected via constructor.
|
|
3
|
+
*
|
|
4
|
+
* Where `CloudflareEnv<T>` exposes the raw Worker `env` (escape hatch for
|
|
5
|
+
* service bindings, exotic features, anything we don't wrap), `Cloudflare`
|
|
6
|
+
* is the ergonomic 95% path: photons call `cf.kv()` / `cf.r2()` / etc.
|
|
7
|
+
* with optional qualifier strings, and the runtime resolves bindings by
|
|
8
|
+
* the **photon name + suffix** convention — so authors never pick names
|
|
9
|
+
* that could collide across photons.
|
|
10
|
+
*
|
|
11
|
+
* Importing `Cloudflare` (or `CloudflareEnv`) into a photon's source is
|
|
12
|
+
* the explicit signal that the photon depends on a Cloudflare deploy
|
|
13
|
+
* target. Outside of CF (or its local miniflare mirror), the loader
|
|
14
|
+
* injects a throwing Proxy and the message names the imported symbol so
|
|
15
|
+
* the diagnostic is unambiguous.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import type { Photon, Cloudflare } from "@portel/photon";
|
|
20
|
+
*
|
|
21
|
+
* export class Gallery {
|
|
22
|
+
* constructor(
|
|
23
|
+
* private photon: Photon,
|
|
24
|
+
* private cf: Cloudflare,
|
|
25
|
+
* ) {}
|
|
26
|
+
* async upload(name: string, blob: Blob) {
|
|
27
|
+
* await this.cf.r2().put(name, blob); // gallery_r2
|
|
28
|
+
* await this.cf.d1().prepare("...").bind(name).run(); // gallery_d1
|
|
29
|
+
* await this.photon.memory.set(name, Date.now());
|
|
30
|
+
* }
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* Multi-resource case — qualifier namespaces under the photon:
|
|
35
|
+
* ```ts
|
|
36
|
+
* this.cf.kv() // gallery_kv (default for this photon)
|
|
37
|
+
* this.cf.kv("cache") // gallery_cache_kv
|
|
38
|
+
* this.cf.kv("sessions") // gallery_sessions_kv
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* Override path stays in `protected cfBindings = { ... }` — present only
|
|
42
|
+
* when an author needs to point a named binding at a pre-existing CF
|
|
43
|
+
* resource owned outside the photon.
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
import {
|
|
47
|
+
type R2BucketLike,
|
|
48
|
+
type KVNamespaceLike,
|
|
49
|
+
type D1DatabaseLike,
|
|
50
|
+
type QueueLike,
|
|
51
|
+
type VectorizeIndexLike,
|
|
52
|
+
type AiLike,
|
|
53
|
+
type ImagesBindingLike,
|
|
54
|
+
type FetcherLike,
|
|
55
|
+
} from './cf.js';
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* The wrapped Cloudflare surface. Methods that take a resource type
|
|
59
|
+
* (kv, r2, d1, queue, vectorize) accept an **optional** qualifier — when
|
|
60
|
+
* omitted, the runtime resolves the photon's default binding for that
|
|
61
|
+
* category. AI / images / browser are single shared bindings per Worker
|
|
62
|
+
* and have no qualifier.
|
|
63
|
+
*/
|
|
64
|
+
export interface Cloudflare {
|
|
65
|
+
/** Resolves to `<photonName>_kv` (default) or `<photonName>_<qualifier>_kv`. */
|
|
66
|
+
kv(qualifier?: string): KVNamespaceLike;
|
|
67
|
+
/** Resolves to `<photonName>_r2` (default) or `<photonName>_<qualifier>_r2`. */
|
|
68
|
+
r2(qualifier?: string): R2BucketLike;
|
|
69
|
+
/** Resolves to `<photonName>_d1` (default) or `<photonName>_<qualifier>_d1`. */
|
|
70
|
+
d1(qualifier?: string): D1DatabaseLike;
|
|
71
|
+
/** Resolves to `<photonName>_queue` (default) or `<photonName>_<qualifier>_queue`. */
|
|
72
|
+
queue<Body = unknown>(qualifier?: string): QueueLike<Body>;
|
|
73
|
+
/** Resolves to `<photonName>_vectorize` (default) or `<photonName>_<qualifier>_vectorize`. */
|
|
74
|
+
vectorize(qualifier?: string): VectorizeIndexLike;
|
|
75
|
+
/** Workers AI — shared `AI` binding. */
|
|
76
|
+
readonly ai: AiLike;
|
|
77
|
+
/** Cloudflare Images — shared `IMAGES` binding. */
|
|
78
|
+
readonly images: ImagesBindingLike;
|
|
79
|
+
/** Browser Rendering — shared `BROWSER` binding. */
|
|
80
|
+
readonly browser: FetcherLike;
|
|
81
|
+
/** Top-level fetch (with optional service-binding routing). */
|
|
82
|
+
fetch(input: string, init?: unknown): Promise<unknown>;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Categories that are scoped per-photon and use the auto-naming
|
|
87
|
+
* convention. Shared categories (ai, images, browser) live outside this
|
|
88
|
+
* list and resolve to fixed binding names.
|
|
89
|
+
*/
|
|
90
|
+
export type ScopedBindingCategory = 'kv' | 'r2' | 'd1' | 'queue' | 'vectorize';
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Build the env binding name for a scoped category on a given photon.
|
|
94
|
+
* Default (no qualifier): `<photon>_<category>` (e.g. `gallery_kv`).
|
|
95
|
+
* With qualifier: `<photon>_<qualifier>_<category>` (e.g. `gallery_cache_kv`).
|
|
96
|
+
*
|
|
97
|
+
* The helper is exported so deploy-side codegen (wrangler.toml emission)
|
|
98
|
+
* uses the same naming rule the runtime resolves with.
|
|
99
|
+
*/
|
|
100
|
+
export function bindingNameFor(
|
|
101
|
+
photonName: string,
|
|
102
|
+
category: ScopedBindingCategory,
|
|
103
|
+
qualifier?: string,
|
|
104
|
+
): string {
|
|
105
|
+
const safePhoton = photonName.toLowerCase().replace(/-/g, '_');
|
|
106
|
+
if (qualifier && qualifier.length > 0) {
|
|
107
|
+
const safeQualifier = qualifier.toLowerCase().replace(/-/g, '_');
|
|
108
|
+
return `${safePhoton}_${safeQualifier}_${category}`;
|
|
109
|
+
}
|
|
110
|
+
return `${safePhoton}_${category}`;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/** Fixed binding name for a shared category. */
|
|
114
|
+
export const SHARED_AI_BINDING = 'AI';
|
|
115
|
+
export const SHARED_IMAGES_BINDING = 'IMAGES';
|
|
116
|
+
export const SHARED_BROWSER_BINDING = 'BROWSER';
|
|
117
|
+
|
|
118
|
+
const CF_HINT =
|
|
119
|
+
'This photon imports `Cloudflare` from "@portel/photon" but no CF ' +
|
|
120
|
+
'runtime is attached. Run via `photon host run` (miniflare-backed) ' +
|
|
121
|
+
'or deploy with `photon host deploy cloudflare`. Outside CF, this ' +
|
|
122
|
+
'photon\'s CF-dependent methods cannot execute.';
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Throwing-Proxy fallback. Used by the loader when a photon's
|
|
126
|
+
* constructor types a `Cloudflare` parameter but no CF runtime was
|
|
127
|
+
* provided (e.g. unit tests that didn't pass a stub, or local hosts
|
|
128
|
+
* without miniflare configured).
|
|
129
|
+
*/
|
|
130
|
+
export function notConfiguredCloudflare(): Cloudflare {
|
|
131
|
+
const throwing = (label: string) => (..._args: unknown[]) => {
|
|
132
|
+
throw new Error(`Cloudflare.${label} called but ${CF_HINT}`);
|
|
133
|
+
};
|
|
134
|
+
const throwingProp = (label: string) =>
|
|
135
|
+
new Proxy(Object.create(null), {
|
|
136
|
+
get(_t, prop) {
|
|
137
|
+
if (prop === Symbol.toPrimitive || prop === 'toString') {
|
|
138
|
+
return () => `[unconfigured Cloudflare.${label}]`;
|
|
139
|
+
}
|
|
140
|
+
throw new Error(`Cloudflare.${label}.${String(prop)} accessed but ${CF_HINT}`);
|
|
141
|
+
},
|
|
142
|
+
});
|
|
143
|
+
return {
|
|
144
|
+
kv: throwing('kv') as Cloudflare['kv'],
|
|
145
|
+
r2: throwing('r2') as Cloudflare['r2'],
|
|
146
|
+
d1: throwing('d1') as Cloudflare['d1'],
|
|
147
|
+
queue: throwing('queue') as Cloudflare['queue'],
|
|
148
|
+
vectorize: throwing('vectorize') as Cloudflare['vectorize'],
|
|
149
|
+
ai: throwingProp('ai') as unknown as AiLike,
|
|
150
|
+
images: throwingProp('images') as unknown as ImagesBindingLike,
|
|
151
|
+
browser: throwingProp('browser') as unknown as FetcherLike,
|
|
152
|
+
fetch: throwing('fetch') as Cloudflare['fetch'],
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Build a `Cloudflare` surface backed directly by a Worker `env` (the
|
|
158
|
+
* deployed-CF case). Resolves auto-named bindings via the convention in
|
|
159
|
+
* `bindingNameFor`. Local hosts use the miniflare-backed factory in the
|
|
160
|
+
* photon repo's `runtime/cf-local.ts` instead.
|
|
161
|
+
*
|
|
162
|
+
* `env` is typed loosely so this module stays free of
|
|
163
|
+
* `@cloudflare/workers-types`. The deployed Worker template passes the
|
|
164
|
+
* real `env` straight through.
|
|
165
|
+
*/
|
|
166
|
+
export function createCloudflareFromEnv(
|
|
167
|
+
env: Record<string, unknown>,
|
|
168
|
+
photonName: string,
|
|
169
|
+
): Cloudflare {
|
|
170
|
+
const scoped = (category: ScopedBindingCategory) => (qualifier?: string) => {
|
|
171
|
+
const name = bindingNameFor(photonName, category, qualifier);
|
|
172
|
+
const binding = env[name];
|
|
173
|
+
if (binding === undefined) {
|
|
174
|
+
throw new Error(
|
|
175
|
+
`Cloudflare.${category}(${qualifier ? JSON.stringify(qualifier) : ''}) ` +
|
|
176
|
+
`requires binding "${name}" on the Worker env, but it is not defined. ` +
|
|
177
|
+
`Add it to wrangler.toml (or run \`photon host deploy cloudflare\` to ` +
|
|
178
|
+
`regenerate bindings from the photon's declarations).`,
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
return binding;
|
|
182
|
+
};
|
|
183
|
+
return {
|
|
184
|
+
kv: scoped('kv') as Cloudflare['kv'],
|
|
185
|
+
r2: scoped('r2') as Cloudflare['r2'],
|
|
186
|
+
d1: scoped('d1') as Cloudflare['d1'],
|
|
187
|
+
queue: scoped('queue') as Cloudflare['queue'],
|
|
188
|
+
vectorize: scoped('vectorize') as Cloudflare['vectorize'],
|
|
189
|
+
ai: (env[SHARED_AI_BINDING] ?? notConfiguredCloudflare().ai) as AiLike,
|
|
190
|
+
images: (env[SHARED_IMAGES_BINDING] ?? notConfiguredCloudflare().images) as ImagesBindingLike,
|
|
191
|
+
browser: (env[SHARED_BROWSER_BINDING] ?? notConfiguredCloudflare().browser) as FetcherLike,
|
|
192
|
+
fetch: (input: string, init?: unknown) => {
|
|
193
|
+
const fetcher = env['fetch'] as ((i: string, n?: unknown) => Promise<unknown>) | undefined;
|
|
194
|
+
if (typeof fetcher === 'function') return fetcher(input, init);
|
|
195
|
+
return fetch(input, init as RequestInit | undefined) as Promise<unknown>;
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
}
|
|
@@ -330,9 +330,28 @@ export class Collection<T> extends ReactiveArray<T> {
|
|
|
330
330
|
/**
|
|
331
331
|
* Attach a rendering hint for auto-UI.
|
|
332
332
|
* Returns `this` for chaining at the end of a query.
|
|
333
|
+
*
|
|
334
|
+
* Pins `toJSON` as an own property here. Bun's `JSON.stringify`
|
|
335
|
+
* resolves the array branch before consulting the prototype's
|
|
336
|
+
* `toJSON`, so a prototype-only definition is silently bypassed
|
|
337
|
+
* for Array subclasses (Node 22 calls it correctly; Bun 1.2 does
|
|
338
|
+
* not). Installing the bound function as an own enumerable: false
|
|
339
|
+
* property makes both engines route through our serialization.
|
|
340
|
+
* Without `.as()` the photon shouldn't produce the metadata
|
|
341
|
+
* envelope at all, so the prototype-level `toJSON` (returns plain
|
|
342
|
+
* array) is fine — and JSON.stringify's array path produces the
|
|
343
|
+
* same plain array anyway, so the Bun divergence is invisible
|
|
344
|
+
* for that case.
|
|
333
345
|
*/
|
|
334
346
|
as(format: RenderFormat, options?: Record<string, unknown>): this {
|
|
335
347
|
this._renderHint = { format, options };
|
|
348
|
+
if (!Object.prototype.hasOwnProperty.call(this, 'toJSON')) {
|
|
349
|
+
Object.defineProperty(this, 'toJSON', {
|
|
350
|
+
value: this.toJSON.bind(this),
|
|
351
|
+
enumerable: false,
|
|
352
|
+
configurable: true,
|
|
353
|
+
});
|
|
354
|
+
}
|
|
336
355
|
return this;
|
|
337
356
|
}
|
|
338
357
|
|