@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/cf.d.ts
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
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
|
+
* Minimal R2 bucket surface — covers the methods photons actually call.
|
|
27
|
+
* Structurally compatible with `@cloudflare/workers-types` `R2Bucket`.
|
|
28
|
+
*/
|
|
29
|
+
export interface R2BucketLike {
|
|
30
|
+
head(key: string): Promise<unknown>;
|
|
31
|
+
get(key: string, options?: unknown): Promise<unknown>;
|
|
32
|
+
put(key: string, value: unknown, options?: unknown): Promise<unknown>;
|
|
33
|
+
delete(keys: string | string[]): Promise<void>;
|
|
34
|
+
list(options?: unknown): Promise<unknown>;
|
|
35
|
+
}
|
|
36
|
+
/** Minimal KV namespace surface. */
|
|
37
|
+
export interface KVNamespaceLike {
|
|
38
|
+
get(key: string, options?: unknown): Promise<unknown>;
|
|
39
|
+
put(key: string, value: string | ArrayBuffer | ArrayBufferView | ReadableStream, options?: unknown): Promise<void>;
|
|
40
|
+
delete(key: string): Promise<void>;
|
|
41
|
+
list(options?: unknown): Promise<unknown>;
|
|
42
|
+
}
|
|
43
|
+
/** Minimal D1 database surface. */
|
|
44
|
+
export interface D1DatabaseLike {
|
|
45
|
+
prepare(query: string): D1PreparedStatementLike;
|
|
46
|
+
batch<T = unknown>(statements: D1PreparedStatementLike[]): Promise<T[]>;
|
|
47
|
+
exec(query: string): Promise<unknown>;
|
|
48
|
+
dump(): Promise<ArrayBuffer>;
|
|
49
|
+
}
|
|
50
|
+
/** Minimal D1 prepared statement surface. */
|
|
51
|
+
export interface D1PreparedStatementLike {
|
|
52
|
+
bind(...values: unknown[]): D1PreparedStatementLike;
|
|
53
|
+
first<T = unknown>(colName?: string): Promise<T | null>;
|
|
54
|
+
run<T = unknown>(): Promise<T>;
|
|
55
|
+
all<T = unknown>(): Promise<T>;
|
|
56
|
+
raw<T = unknown>(): Promise<T[]>;
|
|
57
|
+
}
|
|
58
|
+
/** Minimal queue surface. */
|
|
59
|
+
export interface QueueLike<Body = unknown> {
|
|
60
|
+
send(message: Body, options?: unknown): Promise<void>;
|
|
61
|
+
sendBatch(messages: {
|
|
62
|
+
body: Body;
|
|
63
|
+
}[], options?: unknown): Promise<void>;
|
|
64
|
+
}
|
|
65
|
+
/** Minimal vectorize surface. */
|
|
66
|
+
export interface VectorizeIndexLike {
|
|
67
|
+
insert(vectors: unknown[]): Promise<unknown>;
|
|
68
|
+
upsert(vectors: unknown[]): Promise<unknown>;
|
|
69
|
+
query(vector: number[], options?: unknown): Promise<unknown>;
|
|
70
|
+
getByIds(ids: string[]): Promise<unknown>;
|
|
71
|
+
deleteByIds(ids: string[]): Promise<unknown>;
|
|
72
|
+
}
|
|
73
|
+
/** Minimal Workers AI surface. */
|
|
74
|
+
export interface AiLike {
|
|
75
|
+
run(model: string, inputs: unknown, options?: unknown): Promise<unknown>;
|
|
76
|
+
}
|
|
77
|
+
/** Minimal Cloudflare Images binding surface. */
|
|
78
|
+
export interface ImagesBindingLike {
|
|
79
|
+
info(stream: ReadableStream): Promise<unknown>;
|
|
80
|
+
input(stream: ReadableStream): unknown;
|
|
81
|
+
}
|
|
82
|
+
/** Minimal Fetcher surface (Service binding / Browser Rendering). */
|
|
83
|
+
export interface FetcherLike {
|
|
84
|
+
fetch(input: string, init?: unknown): Promise<unknown>;
|
|
85
|
+
}
|
|
86
|
+
/** Minimal Durable Object namespace surface. */
|
|
87
|
+
export interface DurableObjectNamespaceLike {
|
|
88
|
+
idFromName(name: string): unknown;
|
|
89
|
+
idFromString(id: string): unknown;
|
|
90
|
+
newUniqueId(): unknown;
|
|
91
|
+
get(id: unknown): {
|
|
92
|
+
fetch(input: string, init?: unknown): Promise<unknown>;
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Cloudflare runtime surface as exposed via `this.cf`.
|
|
97
|
+
*
|
|
98
|
+
* Each subnamespace returns either an upstream Cloudflare type or a
|
|
99
|
+
* runtime-supplied proxy with the same shape. Backends:
|
|
100
|
+
* - Local: miniflare instance configured from `protected cfBindings`.
|
|
101
|
+
* - Deployed Worker: real `env.<binding>` passed through.
|
|
102
|
+
*/
|
|
103
|
+
export interface CFRuntime {
|
|
104
|
+
r2(name: string): R2BucketLike;
|
|
105
|
+
kv(name: string): KVNamespaceLike;
|
|
106
|
+
d1(name: string): D1DatabaseLike;
|
|
107
|
+
queue<Body = unknown>(name: string): QueueLike<Body>;
|
|
108
|
+
vectorize(name: string): VectorizeIndexLike;
|
|
109
|
+
ai: AiLike;
|
|
110
|
+
images: ImagesBindingLike;
|
|
111
|
+
browser: FetcherLike;
|
|
112
|
+
fetch(input: string, init?: unknown): Promise<unknown>;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Returns a stub `CFRuntime` whose subnamespaces throw a helpful error
|
|
116
|
+
* when used. Callers should hold one instance per photon (mirrors the
|
|
117
|
+
* `_memory` and `_schedule` lazy-init pattern) so identity-sensitive
|
|
118
|
+
* checks remain consistent across reads of `this.cf`.
|
|
119
|
+
*/
|
|
120
|
+
export declare function notConfiguredCF(): CFRuntime;
|
|
121
|
+
//# sourceMappingURL=cf.d.ts.map
|
package/dist/cf.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cf.d.ts","sourceRoot":"","sources":["../src/cf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3C;AAED,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,eAAe,GAAG,cAAc,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3C;AAED,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,uBAAuB,CAAC;IAChD,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;CAC9B;AAED,6CAA6C;AAC7C,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,uBAAuB,CAAC;IACpD,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACxD,GAAG,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/B,GAAG,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/B,GAAG,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CAClC;AAED,6BAA6B;AAC7B,MAAM,WAAW,SAAS,CAAC,IAAI,GAAG,OAAO;IACvC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,SAAS,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAED,iCAAiC;AACjC,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9C;AAED,kCAAkC;AAClC,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1E;AAED,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC;CACxC;AAED,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxD;AAED,gDAAgD;AAChD,MAAM,WAAW,0BAA0B;IACzC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,WAAW,IAAI,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;CAC9E;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IAC/B,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;IAClC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC;IACjC,KAAK,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACrD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAC;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxD;AAyBD;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,SAAS,CAc3C"}
|
package/dist/cf.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
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
|
+
const HINT = 'No Cloudflare runtime is configured. Either run this photon under a ' +
|
|
26
|
+
'CF-aware host (local Beam with miniflare, or deployed to Cloudflare ' +
|
|
27
|
+
'Workers), declare `protected cfBindings = { ... }` on the class, or ' +
|
|
28
|
+
'remove the `this.cf` usage.';
|
|
29
|
+
function throwingFn(category) {
|
|
30
|
+
return (..._args) => {
|
|
31
|
+
throw new Error(`this.cf.${category}() called but ${HINT}`);
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function throwingProperty(category) {
|
|
35
|
+
return new Proxy(Object.create(null), {
|
|
36
|
+
get(_target, prop) {
|
|
37
|
+
if (prop === Symbol.toPrimitive || prop === 'toString') {
|
|
38
|
+
return () => `[unconfigured this.cf.${category}]`;
|
|
39
|
+
}
|
|
40
|
+
throw new Error(`this.cf.${category}.${String(prop)} accessed but ${HINT}`);
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Returns a stub `CFRuntime` whose subnamespaces throw a helpful error
|
|
46
|
+
* when used. Callers should hold one instance per photon (mirrors the
|
|
47
|
+
* `_memory` and `_schedule` lazy-init pattern) so identity-sensitive
|
|
48
|
+
* checks remain consistent across reads of `this.cf`.
|
|
49
|
+
*/
|
|
50
|
+
export function notConfiguredCF() {
|
|
51
|
+
return {
|
|
52
|
+
r2: throwingFn('r2'),
|
|
53
|
+
kv: throwingFn('kv'),
|
|
54
|
+
d1: throwingFn('d1'),
|
|
55
|
+
queue: throwingFn('queue'),
|
|
56
|
+
vectorize: throwingFn('vectorize'),
|
|
57
|
+
ai: throwingProperty('ai'),
|
|
58
|
+
images: throwingProperty('images'),
|
|
59
|
+
browser: throwingProperty('browser'),
|
|
60
|
+
fetch: ((_input, _init) => {
|
|
61
|
+
throw new Error(`this.cf.fetch() called but ${HINT}`);
|
|
62
|
+
}),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=cf.js.map
|
package/dist/cf.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cf.js","sourceRoot":"","sources":["../src/cf.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAkGH,MAAM,IAAI,GACR,sEAAsE;IACtE,sEAAsE;IACtE,sEAAsE;IACtE,6BAA6B,CAAC;AAEhC,SAAS,UAAU,CAAC,QAAgB;IAClC,OAAO,CAAC,GAAG,KAAgB,EAAE,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,WAAW,QAAQ,iBAAiB,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgB;IACxC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACpC,GAAG,CAAC,OAAO,EAAE,IAAI;YACf,IAAI,IAAI,KAAK,MAAM,CAAC,WAAW,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACvD,OAAO,GAAG,EAAE,CAAC,yBAAyB,QAAQ,GAAG,CAAC;YACpD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,WAAW,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;KACF,CAAU,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL,EAAE,EAAE,UAAU,CAAC,IAAI,CAAoB;QACvC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAoB;QACvC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAoB;QACvC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAuB;QAChD,SAAS,EAAE,UAAU,CAAC,WAAW,CAA2B;QAC5D,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAsB;QAC/C,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAiC;QAClE,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAA2B;QAC9D,KAAK,EAAE,CAAC,CAAC,MAAc,EAAE,KAAe,EAAE,EAAE;YAC1C,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC,CAAuB;KACzB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
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
|
+
import { type R2BucketLike, type KVNamespaceLike, type D1DatabaseLike, type QueueLike, type VectorizeIndexLike, type AiLike, type ImagesBindingLike, type FetcherLike } from './cf.js';
|
|
46
|
+
/**
|
|
47
|
+
* The wrapped Cloudflare surface. Methods that take a resource type
|
|
48
|
+
* (kv, r2, d1, queue, vectorize) accept an **optional** qualifier — when
|
|
49
|
+
* omitted, the runtime resolves the photon's default binding for that
|
|
50
|
+
* category. AI / images / browser are single shared bindings per Worker
|
|
51
|
+
* and have no qualifier.
|
|
52
|
+
*/
|
|
53
|
+
export interface Cloudflare {
|
|
54
|
+
/** Resolves to `<photonName>_kv` (default) or `<photonName>_<qualifier>_kv`. */
|
|
55
|
+
kv(qualifier?: string): KVNamespaceLike;
|
|
56
|
+
/** Resolves to `<photonName>_r2` (default) or `<photonName>_<qualifier>_r2`. */
|
|
57
|
+
r2(qualifier?: string): R2BucketLike;
|
|
58
|
+
/** Resolves to `<photonName>_d1` (default) or `<photonName>_<qualifier>_d1`. */
|
|
59
|
+
d1(qualifier?: string): D1DatabaseLike;
|
|
60
|
+
/** Resolves to `<photonName>_queue` (default) or `<photonName>_<qualifier>_queue`. */
|
|
61
|
+
queue<Body = unknown>(qualifier?: string): QueueLike<Body>;
|
|
62
|
+
/** Resolves to `<photonName>_vectorize` (default) or `<photonName>_<qualifier>_vectorize`. */
|
|
63
|
+
vectorize(qualifier?: string): VectorizeIndexLike;
|
|
64
|
+
/** Workers AI — shared `AI` binding. */
|
|
65
|
+
readonly ai: AiLike;
|
|
66
|
+
/** Cloudflare Images — shared `IMAGES` binding. */
|
|
67
|
+
readonly images: ImagesBindingLike;
|
|
68
|
+
/** Browser Rendering — shared `BROWSER` binding. */
|
|
69
|
+
readonly browser: FetcherLike;
|
|
70
|
+
/** Top-level fetch (with optional service-binding routing). */
|
|
71
|
+
fetch(input: string, init?: unknown): Promise<unknown>;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Categories that are scoped per-photon and use the auto-naming
|
|
75
|
+
* convention. Shared categories (ai, images, browser) live outside this
|
|
76
|
+
* list and resolve to fixed binding names.
|
|
77
|
+
*/
|
|
78
|
+
export type ScopedBindingCategory = 'kv' | 'r2' | 'd1' | 'queue' | 'vectorize';
|
|
79
|
+
/**
|
|
80
|
+
* Build the env binding name for a scoped category on a given photon.
|
|
81
|
+
* Default (no qualifier): `<photon>_<category>` (e.g. `gallery_kv`).
|
|
82
|
+
* With qualifier: `<photon>_<qualifier>_<category>` (e.g. `gallery_cache_kv`).
|
|
83
|
+
*
|
|
84
|
+
* The helper is exported so deploy-side codegen (wrangler.toml emission)
|
|
85
|
+
* uses the same naming rule the runtime resolves with.
|
|
86
|
+
*/
|
|
87
|
+
export declare function bindingNameFor(photonName: string, category: ScopedBindingCategory, qualifier?: string): string;
|
|
88
|
+
/** Fixed binding name for a shared category. */
|
|
89
|
+
export declare const SHARED_AI_BINDING = "AI";
|
|
90
|
+
export declare const SHARED_IMAGES_BINDING = "IMAGES";
|
|
91
|
+
export declare const SHARED_BROWSER_BINDING = "BROWSER";
|
|
92
|
+
/**
|
|
93
|
+
* Throwing-Proxy fallback. Used by the loader when a photon's
|
|
94
|
+
* constructor types a `Cloudflare` parameter but no CF runtime was
|
|
95
|
+
* provided (e.g. unit tests that didn't pass a stub, or local hosts
|
|
96
|
+
* without miniflare configured).
|
|
97
|
+
*/
|
|
98
|
+
export declare function notConfiguredCloudflare(): Cloudflare;
|
|
99
|
+
/**
|
|
100
|
+
* Build a `Cloudflare` surface backed directly by a Worker `env` (the
|
|
101
|
+
* deployed-CF case). Resolves auto-named bindings via the convention in
|
|
102
|
+
* `bindingNameFor`. Local hosts use the miniflare-backed factory in the
|
|
103
|
+
* photon repo's `runtime/cf-local.ts` instead.
|
|
104
|
+
*
|
|
105
|
+
* `env` is typed loosely so this module stays free of
|
|
106
|
+
* `@cloudflare/workers-types`. The deployed Worker template passes the
|
|
107
|
+
* real `env` straight through.
|
|
108
|
+
*/
|
|
109
|
+
export declare function createCloudflareFromEnv(env: Record<string, unknown>, photonName: string): Cloudflare;
|
|
110
|
+
//# sourceMappingURL=cloudflare.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../src/cloudflare.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,KAAK,iBAAiB,EACtB,KAAK,WAAW,EACjB,MAAM,SAAS,CAAC;AAEjB;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,gFAAgF;IAChF,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IACxC,gFAAgF;IAChF,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACrC,gFAAgF;IAChF,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IACvC,sFAAsF;IACtF,KAAK,CAAC,IAAI,GAAG,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3D,8FAA8F;IAC9F,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC;IAClD,wCAAwC;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,+DAA+D;IAC/D,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxD;AAED;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,WAAW,CAAC;AAE/E;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,qBAAqB,EAC/B,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAOR;AAED,gDAAgD;AAChD,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,sBAAsB,YAAY,CAAC;AAQhD;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,UAAU,CAwBpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,UAAU,EAAE,MAAM,GACjB,UAAU,CA6BZ"}
|
|
@@ -0,0 +1,138 @@
|
|
|
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
|
+
* Build the env binding name for a scoped category on a given photon.
|
|
47
|
+
* Default (no qualifier): `<photon>_<category>` (e.g. `gallery_kv`).
|
|
48
|
+
* With qualifier: `<photon>_<qualifier>_<category>` (e.g. `gallery_cache_kv`).
|
|
49
|
+
*
|
|
50
|
+
* The helper is exported so deploy-side codegen (wrangler.toml emission)
|
|
51
|
+
* uses the same naming rule the runtime resolves with.
|
|
52
|
+
*/
|
|
53
|
+
export function bindingNameFor(photonName, category, qualifier) {
|
|
54
|
+
const safePhoton = photonName.toLowerCase().replace(/-/g, '_');
|
|
55
|
+
if (qualifier && qualifier.length > 0) {
|
|
56
|
+
const safeQualifier = qualifier.toLowerCase().replace(/-/g, '_');
|
|
57
|
+
return `${safePhoton}_${safeQualifier}_${category}`;
|
|
58
|
+
}
|
|
59
|
+
return `${safePhoton}_${category}`;
|
|
60
|
+
}
|
|
61
|
+
/** Fixed binding name for a shared category. */
|
|
62
|
+
export const SHARED_AI_BINDING = 'AI';
|
|
63
|
+
export const SHARED_IMAGES_BINDING = 'IMAGES';
|
|
64
|
+
export const SHARED_BROWSER_BINDING = 'BROWSER';
|
|
65
|
+
const CF_HINT = 'This photon imports `Cloudflare` from "@portel/photon" but no CF ' +
|
|
66
|
+
'runtime is attached. Run via `photon host run` (miniflare-backed) ' +
|
|
67
|
+
'or deploy with `photon host deploy cloudflare`. Outside CF, this ' +
|
|
68
|
+
'photon\'s CF-dependent methods cannot execute.';
|
|
69
|
+
/**
|
|
70
|
+
* Throwing-Proxy fallback. Used by the loader when a photon's
|
|
71
|
+
* constructor types a `Cloudflare` parameter but no CF runtime was
|
|
72
|
+
* provided (e.g. unit tests that didn't pass a stub, or local hosts
|
|
73
|
+
* without miniflare configured).
|
|
74
|
+
*/
|
|
75
|
+
export function notConfiguredCloudflare() {
|
|
76
|
+
const throwing = (label) => (..._args) => {
|
|
77
|
+
throw new Error(`Cloudflare.${label} called but ${CF_HINT}`);
|
|
78
|
+
};
|
|
79
|
+
const throwingProp = (label) => new Proxy(Object.create(null), {
|
|
80
|
+
get(_t, prop) {
|
|
81
|
+
if (prop === Symbol.toPrimitive || prop === 'toString') {
|
|
82
|
+
return () => `[unconfigured Cloudflare.${label}]`;
|
|
83
|
+
}
|
|
84
|
+
throw new Error(`Cloudflare.${label}.${String(prop)} accessed but ${CF_HINT}`);
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
return {
|
|
88
|
+
kv: throwing('kv'),
|
|
89
|
+
r2: throwing('r2'),
|
|
90
|
+
d1: throwing('d1'),
|
|
91
|
+
queue: throwing('queue'),
|
|
92
|
+
vectorize: throwing('vectorize'),
|
|
93
|
+
ai: throwingProp('ai'),
|
|
94
|
+
images: throwingProp('images'),
|
|
95
|
+
browser: throwingProp('browser'),
|
|
96
|
+
fetch: throwing('fetch'),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Build a `Cloudflare` surface backed directly by a Worker `env` (the
|
|
101
|
+
* deployed-CF case). Resolves auto-named bindings via the convention in
|
|
102
|
+
* `bindingNameFor`. Local hosts use the miniflare-backed factory in the
|
|
103
|
+
* photon repo's `runtime/cf-local.ts` instead.
|
|
104
|
+
*
|
|
105
|
+
* `env` is typed loosely so this module stays free of
|
|
106
|
+
* `@cloudflare/workers-types`. The deployed Worker template passes the
|
|
107
|
+
* real `env` straight through.
|
|
108
|
+
*/
|
|
109
|
+
export function createCloudflareFromEnv(env, photonName) {
|
|
110
|
+
const scoped = (category) => (qualifier) => {
|
|
111
|
+
const name = bindingNameFor(photonName, category, qualifier);
|
|
112
|
+
const binding = env[name];
|
|
113
|
+
if (binding === undefined) {
|
|
114
|
+
throw new Error(`Cloudflare.${category}(${qualifier ? JSON.stringify(qualifier) : ''}) ` +
|
|
115
|
+
`requires binding "${name}" on the Worker env, but it is not defined. ` +
|
|
116
|
+
`Add it to wrangler.toml (or run \`photon host deploy cloudflare\` to ` +
|
|
117
|
+
`regenerate bindings from the photon's declarations).`);
|
|
118
|
+
}
|
|
119
|
+
return binding;
|
|
120
|
+
};
|
|
121
|
+
return {
|
|
122
|
+
kv: scoped('kv'),
|
|
123
|
+
r2: scoped('r2'),
|
|
124
|
+
d1: scoped('d1'),
|
|
125
|
+
queue: scoped('queue'),
|
|
126
|
+
vectorize: scoped('vectorize'),
|
|
127
|
+
ai: (env[SHARED_AI_BINDING] ?? notConfiguredCloudflare().ai),
|
|
128
|
+
images: (env[SHARED_IMAGES_BINDING] ?? notConfiguredCloudflare().images),
|
|
129
|
+
browser: (env[SHARED_BROWSER_BINDING] ?? notConfiguredCloudflare().browser),
|
|
130
|
+
fetch: (input, init) => {
|
|
131
|
+
const fetcher = env['fetch'];
|
|
132
|
+
if (typeof fetcher === 'function')
|
|
133
|
+
return fetcher(input, init);
|
|
134
|
+
return fetch(input, init);
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=cloudflare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../src/cloudflare.ts"],"names":[],"mappings":"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"}
|
|
@@ -129,6 +129,18 @@ export declare class Collection<T> extends ReactiveArray<T> {
|
|
|
129
129
|
/**
|
|
130
130
|
* Attach a rendering hint for auto-UI.
|
|
131
131
|
* Returns `this` for chaining at the end of a query.
|
|
132
|
+
*
|
|
133
|
+
* Pins `toJSON` as an own property here. Bun's `JSON.stringify`
|
|
134
|
+
* resolves the array branch before consulting the prototype's
|
|
135
|
+
* `toJSON`, so a prototype-only definition is silently bypassed
|
|
136
|
+
* for Array subclasses (Node 22 calls it correctly; Bun 1.2 does
|
|
137
|
+
* not). Installing the bound function as an own enumerable: false
|
|
138
|
+
* property makes both engines route through our serialization.
|
|
139
|
+
* Without `.as()` the photon shouldn't produce the metadata
|
|
140
|
+
* envelope at all, so the prototype-level `toJSON` (returns plain
|
|
141
|
+
* array) is fine — and JSON.stringify's array path produces the
|
|
142
|
+
* same plain array anyway, so the Bun divergence is invisible
|
|
143
|
+
* for that case.
|
|
132
144
|
*/
|
|
133
145
|
as(format: RenderFormat, options?: Record<string, unknown>): this;
|
|
134
146
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../src/collections/Collection.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../src/collections/Collection.ts"],"names":[],"mappings":"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"}
|
|
@@ -286,9 +286,28 @@ export class Collection extends ReactiveArray {
|
|
|
286
286
|
/**
|
|
287
287
|
* Attach a rendering hint for auto-UI.
|
|
288
288
|
* Returns `this` for chaining at the end of a query.
|
|
289
|
+
*
|
|
290
|
+
* Pins `toJSON` as an own property here. Bun's `JSON.stringify`
|
|
291
|
+
* resolves the array branch before consulting the prototype's
|
|
292
|
+
* `toJSON`, so a prototype-only definition is silently bypassed
|
|
293
|
+
* for Array subclasses (Node 22 calls it correctly; Bun 1.2 does
|
|
294
|
+
* not). Installing the bound function as an own enumerable: false
|
|
295
|
+
* property makes both engines route through our serialization.
|
|
296
|
+
* Without `.as()` the photon shouldn't produce the metadata
|
|
297
|
+
* envelope at all, so the prototype-level `toJSON` (returns plain
|
|
298
|
+
* array) is fine — and JSON.stringify's array path produces the
|
|
299
|
+
* same plain array anyway, so the Bun divergence is invisible
|
|
300
|
+
* for that case.
|
|
289
301
|
*/
|
|
290
302
|
as(format, options) {
|
|
291
303
|
this._renderHint = { format, options };
|
|
304
|
+
if (!Object.prototype.hasOwnProperty.call(this, 'toJSON')) {
|
|
305
|
+
Object.defineProperty(this, 'toJSON', {
|
|
306
|
+
value: this.toJSON.bind(this),
|
|
307
|
+
enumerable: false,
|
|
308
|
+
configurable: true,
|
|
309
|
+
});
|
|
310
|
+
}
|
|
292
311
|
return this;
|
|
293
312
|
}
|
|
294
313
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Collection.js","sourceRoot":"","sources":["../../src/collections/Collection.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Collection.js","sourceRoot":"","sources":["../../src/collections/Collection.ts"],"names":[],"mappings":"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"}
|
package/dist/env.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CloudflareEnv — raw Cloudflare Worker `env`, surfaced as an explicit
|
|
3
|
+
* constructor injection so the import line itself signals that the
|
|
4
|
+
* importing photon depends on a Cloudflare deploy target.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* import type { CloudflareEnv } from "@portel/photon";
|
|
9
|
+
*
|
|
10
|
+
* interface MyBindings {
|
|
11
|
+
* WEATHER_KV: KVNamespace;
|
|
12
|
+
* PHOTOS: R2Bucket;
|
|
13
|
+
* }
|
|
14
|
+
*
|
|
15
|
+
* export class Weather {
|
|
16
|
+
* constructor(private env: CloudflareEnv<MyBindings>) {}
|
|
17
|
+
* async forecast() {
|
|
18
|
+
* await this.env.WEATHER_KV.put("k", "v");
|
|
19
|
+
* }
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* The default loose type (`Record<string, unknown>`) keeps the no-types
|
|
24
|
+
* path working. Authors who want strict binding shapes pass their own
|
|
25
|
+
* type parameter; future codegen from `protected cfBindings` can fill
|
|
26
|
+
* this in automatically.
|
|
27
|
+
*/
|
|
28
|
+
export type CloudflareEnv<T = Record<string, unknown>> = T;
|
|
29
|
+
//# sourceMappingURL=env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/dist/env.js
ADDED
package/dist/env.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -35,6 +35,9 @@
|
|
|
35
35
|
export { type TextWrapOptions, type FuzzyMatch, type ExecutionContext, type LogLevel, type LoggerOptions, formatOutput, detectFormat, renderPrimitive, renderList, renderTable, renderTree, renderNone, formatKey, formatValue, formatToMimeType, printSuccess, printError, printInfo, printWarning, printHeader, STATUS, ProgressRenderer, getProgressRenderer, startSpinner, showProgress, updateProgressMessage, stopProgress, isProgressActive, executionContext, runWithContext, getContext, type CallerInfo, TextUtils, FuzzyMatcher, fuzzyMatch, fuzzyScore, findBestMatch, Logger, createLogger, getLogger, } from '@portel/cli';
|
|
36
36
|
export { type MCPToolInfo, type MCPToolResult, type MCPTransport, type MCPSourceType, type MissingMCPInfo, type MCPServerConfig, type MCPConfig, type PhotonMCPConfig, type ElicitOptions, type ElicitResult, type PromptHandler, type ElicitHandler, MCPClient, type MCPClientFactory, MCPError, MCPNotConnectedError, MCPToolError, MCPConfigurationError, createMCPProxy, SDKMCPTransport, SDKMCPClientFactory, loadMCPConfig, createSDKMCPClientFactory, resolveMCPSource, PHOTON_CONFIG_DIR, MCP_SERVERS_CONFIG_FILE, loadPhotonMCPConfig, savePhotonMCPConfig, isMCPConfigured, getMCPServerConfig, listMCPServers, setMCPServerConfig, removeMCPServerConfig, toMCPConfig, resolveEnvVars, prompt, confirm, elicit, elicitReadline, elicitNativeDialog, setPromptHandler, getPromptHandler, setElicitHandler, getElicitHandler, } from '@portel/mcp';
|
|
37
37
|
export { Photon, Photon as PhotonMCP } from './base.js';
|
|
38
|
+
export { type Cloudflare, type ScopedBindingCategory, bindingNameFor, notConfiguredCloudflare, createCloudflareFromEnv, SHARED_AI_BINDING, SHARED_IMAGES_BINDING, SHARED_BROWSER_BINDING, } from './cloudflare.js';
|
|
39
|
+
export { type CloudflareEnv } from './env.js';
|
|
40
|
+
export { type R2BucketLike, type KVNamespaceLike, type D1DatabaseLike, type D1PreparedStatementLike, type QueueLike, type VectorizeIndexLike, type AiLike, type ImagesBindingLike, type FetcherLike, } from './cf.js';
|
|
38
41
|
export { withPhotonCapabilities } from './mixins.js';
|
|
39
42
|
export { DependencyManager } from './dependency-manager.js';
|
|
40
43
|
export { SchemaExtractor, detectCapabilities, type PhotonCapability } from './schema-extractor.js';
|