devflare 0.0.0 → 1.0.0-next.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.
Files changed (199) hide show
  1. package/LLM.md +976 -0
  2. package/README.md +737 -1
  3. package/bin/devflare.js +14 -0
  4. package/dist/account-rvrj687w.js +397 -0
  5. package/dist/ai-dx4fr9jh.js +107 -0
  6. package/dist/bridge/client.d.ts +82 -0
  7. package/dist/bridge/client.d.ts.map +1 -0
  8. package/dist/bridge/index.d.ts +7 -0
  9. package/dist/bridge/index.d.ts.map +1 -0
  10. package/dist/bridge/miniflare.d.ts +70 -0
  11. package/dist/bridge/miniflare.d.ts.map +1 -0
  12. package/dist/bridge/protocol.d.ts +146 -0
  13. package/dist/bridge/protocol.d.ts.map +1 -0
  14. package/dist/bridge/proxy.d.ts +49 -0
  15. package/dist/bridge/proxy.d.ts.map +1 -0
  16. package/dist/bridge/serialization.d.ts +83 -0
  17. package/dist/bridge/serialization.d.ts.map +1 -0
  18. package/dist/bridge/server.d.ts +8 -0
  19. package/dist/bridge/server.d.ts.map +1 -0
  20. package/dist/browser-shim/binding-worker.d.ts +7 -0
  21. package/dist/browser-shim/binding-worker.d.ts.map +1 -0
  22. package/dist/browser-shim/handler.d.ts +21 -0
  23. package/dist/browser-shim/handler.d.ts.map +1 -0
  24. package/dist/browser-shim/index.d.ts +3 -0
  25. package/dist/browser-shim/index.d.ts.map +1 -0
  26. package/dist/browser-shim/server.d.ts +25 -0
  27. package/dist/browser-shim/server.d.ts.map +1 -0
  28. package/dist/browser-shim/worker.d.ts +14 -0
  29. package/dist/browser-shim/worker.d.ts.map +1 -0
  30. package/dist/build-mnf6v8gd.js +53 -0
  31. package/dist/bundler/do-bundler.d.ts +42 -0
  32. package/dist/bundler/do-bundler.d.ts.map +1 -0
  33. package/dist/bundler/index.d.ts +2 -0
  34. package/dist/bundler/index.d.ts.map +1 -0
  35. package/dist/cli/bin.d.ts +3 -0
  36. package/dist/cli/bin.d.ts.map +1 -0
  37. package/dist/cli/colors.d.ts +11 -0
  38. package/dist/cli/colors.d.ts.map +1 -0
  39. package/dist/cli/commands/account.d.ts +4 -0
  40. package/dist/cli/commands/account.d.ts.map +1 -0
  41. package/dist/cli/commands/ai.d.ts +3 -0
  42. package/dist/cli/commands/ai.d.ts.map +1 -0
  43. package/dist/cli/commands/build.d.ts +4 -0
  44. package/dist/cli/commands/build.d.ts.map +1 -0
  45. package/dist/cli/commands/deploy.d.ts +4 -0
  46. package/dist/cli/commands/deploy.d.ts.map +1 -0
  47. package/dist/cli/commands/dev.d.ts +4 -0
  48. package/dist/cli/commands/dev.d.ts.map +1 -0
  49. package/dist/cli/commands/doctor.d.ts +4 -0
  50. package/dist/cli/commands/doctor.d.ts.map +1 -0
  51. package/dist/cli/commands/init.d.ts +4 -0
  52. package/dist/cli/commands/init.d.ts.map +1 -0
  53. package/dist/cli/commands/remote.d.ts +4 -0
  54. package/dist/cli/commands/remote.d.ts.map +1 -0
  55. package/dist/cli/commands/types.d.ts +4 -0
  56. package/dist/cli/commands/types.d.ts.map +1 -0
  57. package/dist/cli/dependencies.d.ts +90 -0
  58. package/dist/cli/dependencies.d.ts.map +1 -0
  59. package/dist/cli/index.d.ts +23 -0
  60. package/dist/cli/index.d.ts.map +1 -0
  61. package/dist/cli/wrangler-auth.d.ts +36 -0
  62. package/dist/cli/wrangler-auth.d.ts.map +1 -0
  63. package/dist/cloudflare/account.d.ts +65 -0
  64. package/dist/cloudflare/account.d.ts.map +1 -0
  65. package/dist/cloudflare/api.d.ts +51 -0
  66. package/dist/cloudflare/api.d.ts.map +1 -0
  67. package/dist/cloudflare/auth.d.ts +35 -0
  68. package/dist/cloudflare/auth.d.ts.map +1 -0
  69. package/dist/cloudflare/index.d.ts +107 -0
  70. package/dist/cloudflare/index.d.ts.map +1 -0
  71. package/dist/cloudflare/index.js +13 -0
  72. package/dist/cloudflare/preferences.d.ts +46 -0
  73. package/dist/cloudflare/preferences.d.ts.map +1 -0
  74. package/dist/cloudflare/pricing.d.ts +15 -0
  75. package/dist/cloudflare/pricing.d.ts.map +1 -0
  76. package/dist/cloudflare/remote-config.d.ts +37 -0
  77. package/dist/cloudflare/remote-config.d.ts.map +1 -0
  78. package/dist/cloudflare/types.d.ts +161 -0
  79. package/dist/cloudflare/types.d.ts.map +1 -0
  80. package/dist/cloudflare/usage.d.ts +77 -0
  81. package/dist/cloudflare/usage.d.ts.map +1 -0
  82. package/dist/config/compiler.d.ts +146 -0
  83. package/dist/config/compiler.d.ts.map +1 -0
  84. package/dist/config/define.d.ts +44 -0
  85. package/dist/config/define.d.ts.map +1 -0
  86. package/dist/config/index.d.ts +6 -0
  87. package/dist/config/index.d.ts.map +1 -0
  88. package/dist/config/loader.d.ts +52 -0
  89. package/dist/config/loader.d.ts.map +1 -0
  90. package/dist/config/ref.d.ts +160 -0
  91. package/dist/config/ref.d.ts.map +1 -0
  92. package/dist/config/schema.d.ts +3318 -0
  93. package/dist/config/schema.d.ts.map +1 -0
  94. package/dist/decorators/durable-object.d.ts +59 -0
  95. package/dist/decorators/durable-object.d.ts.map +1 -0
  96. package/dist/decorators/index.d.ts +3 -0
  97. package/dist/decorators/index.d.ts.map +1 -0
  98. package/dist/decorators/index.js +9 -0
  99. package/dist/deploy-nhceck39.js +70 -0
  100. package/dist/dev-qnxet3j9.js +2096 -0
  101. package/dist/dev-server/index.d.ts +2 -0
  102. package/dist/dev-server/index.d.ts.map +1 -0
  103. package/dist/dev-server/server.d.ts +30 -0
  104. package/dist/dev-server/server.d.ts.map +1 -0
  105. package/dist/doctor-e8fy6fj5.js +186 -0
  106. package/dist/durable-object-t4kbb0yt.js +13 -0
  107. package/dist/env.d.ts +48 -0
  108. package/dist/env.d.ts.map +1 -0
  109. package/dist/index-07q6yxyc.js +168 -0
  110. package/dist/index-1xpj0m4r.js +57 -0
  111. package/dist/index-37x76zdn.js +4 -0
  112. package/dist/index-3t6rypgc.js +13 -0
  113. package/dist/index-67qcae0f.js +183 -0
  114. package/dist/index-a855bdsx.js +18 -0
  115. package/dist/index-d8bdkx2h.js +109 -0
  116. package/dist/index-ep3445yc.js +2225 -0
  117. package/dist/index-gz1gndna.js +307 -0
  118. package/dist/index-hcex3rgh.js +266 -0
  119. package/dist/index-m2q41jwa.js +462 -0
  120. package/dist/index-n7rs26ft.js +77 -0
  121. package/dist/index-pf5s73n9.js +1413 -0
  122. package/dist/index-rbht7m9r.js +36 -0
  123. package/dist/index-tfyxa77h.js +850 -0
  124. package/dist/index-tk6ej9dj.js +94 -0
  125. package/dist/index-z14anrqp.js +226 -0
  126. package/dist/index.d.ts +13 -0
  127. package/dist/index.d.ts.map +1 -0
  128. package/dist/index.js +298 -0
  129. package/dist/init-f9mgmew3.js +186 -0
  130. package/dist/remote-q59qk463.js +97 -0
  131. package/dist/runtime/context.d.ts +46 -0
  132. package/dist/runtime/context.d.ts.map +1 -0
  133. package/dist/runtime/exports.d.ts +118 -0
  134. package/dist/runtime/exports.d.ts.map +1 -0
  135. package/dist/runtime/index.d.ts +4 -0
  136. package/dist/runtime/index.d.ts.map +1 -0
  137. package/dist/runtime/index.js +111 -0
  138. package/dist/runtime/middleware.d.ts +82 -0
  139. package/dist/runtime/middleware.d.ts.map +1 -0
  140. package/dist/runtime/validation.d.ts +37 -0
  141. package/dist/runtime/validation.d.ts.map +1 -0
  142. package/dist/sveltekit/index.d.ts +2 -0
  143. package/dist/sveltekit/index.d.ts.map +1 -0
  144. package/dist/sveltekit/index.js +182 -0
  145. package/dist/sveltekit/platform.d.ts +141 -0
  146. package/dist/sveltekit/platform.d.ts.map +1 -0
  147. package/dist/test/bridge-context.d.ts +73 -0
  148. package/dist/test/bridge-context.d.ts.map +1 -0
  149. package/dist/test/cf.d.ts +130 -0
  150. package/dist/test/cf.d.ts.map +1 -0
  151. package/dist/test/email.d.ts +75 -0
  152. package/dist/test/email.d.ts.map +1 -0
  153. package/dist/test/index.d.ts +22 -0
  154. package/dist/test/index.d.ts.map +1 -0
  155. package/dist/test/index.js +71 -0
  156. package/dist/test/multi-worker-context.d.ts +114 -0
  157. package/dist/test/multi-worker-context.d.ts.map +1 -0
  158. package/dist/test/queue.d.ts +74 -0
  159. package/dist/test/queue.d.ts.map +1 -0
  160. package/dist/test/remote-ai.d.ts +6 -0
  161. package/dist/test/remote-ai.d.ts.map +1 -0
  162. package/dist/test/remote-vectorize.d.ts +6 -0
  163. package/dist/test/remote-vectorize.d.ts.map +1 -0
  164. package/dist/test/resolve-service-bindings.d.ts +68 -0
  165. package/dist/test/resolve-service-bindings.d.ts.map +1 -0
  166. package/dist/test/scheduled.d.ts +58 -0
  167. package/dist/test/scheduled.d.ts.map +1 -0
  168. package/dist/test/should-skip.d.ts +50 -0
  169. package/dist/test/should-skip.d.ts.map +1 -0
  170. package/dist/test/simple-context.d.ts +43 -0
  171. package/dist/test/simple-context.d.ts.map +1 -0
  172. package/dist/test/tail.d.ts +86 -0
  173. package/dist/test/tail.d.ts.map +1 -0
  174. package/dist/test/utilities.d.ts +99 -0
  175. package/dist/test/utilities.d.ts.map +1 -0
  176. package/dist/test/worker.d.ts +76 -0
  177. package/dist/test/worker.d.ts.map +1 -0
  178. package/dist/transform/durable-object.d.ts +46 -0
  179. package/dist/transform/durable-object.d.ts.map +1 -0
  180. package/dist/transform/index.d.ts +3 -0
  181. package/dist/transform/index.d.ts.map +1 -0
  182. package/dist/transform/worker-entrypoint.d.ts +66 -0
  183. package/dist/transform/worker-entrypoint.d.ts.map +1 -0
  184. package/dist/types-5nyrz1sz.js +454 -0
  185. package/dist/utils/entrypoint-discovery.d.ts +29 -0
  186. package/dist/utils/entrypoint-discovery.d.ts.map +1 -0
  187. package/dist/utils/glob.d.ts +33 -0
  188. package/dist/utils/glob.d.ts.map +1 -0
  189. package/dist/utils/resolve-package.d.ts +10 -0
  190. package/dist/utils/resolve-package.d.ts.map +1 -0
  191. package/dist/vite/index.d.ts +3 -0
  192. package/dist/vite/index.d.ts.map +1 -0
  193. package/dist/vite/index.js +339 -0
  194. package/dist/vite/plugin.d.ts +138 -0
  195. package/dist/vite/plugin.d.ts.map +1 -0
  196. package/dist/worker-entrypoint-m9th0rg0.js +13 -0
  197. package/dist/workerName.d.ts +17 -0
  198. package/dist/workerName.d.ts.map +1 -0
  199. package/package.json +112 -1
@@ -0,0 +1,70 @@
1
+ import type { Miniflare as MiniflareType } from 'miniflare';
2
+ import { type DevflareConfig } from '../config';
3
+ export interface MiniflareInstance {
4
+ /** Ready promise - resolves when Miniflare is ready */
5
+ ready: Promise<void>;
6
+ /** Dispose the Miniflare instance */
7
+ dispose(): Promise<void>;
8
+ /** Get bindings directly from Miniflare */
9
+ getBindings(): Promise<Record<string, unknown>>;
10
+ /** Get a specific KV namespace by binding name */
11
+ getKVNamespace: MiniflareType['getKVNamespace'];
12
+ /** Get a specific R2 bucket by binding name */
13
+ getR2Bucket: MiniflareType['getR2Bucket'];
14
+ /** Get a specific D1 database by binding name */
15
+ getD1Database: MiniflareType['getD1Database'];
16
+ /** Get a Durable Object namespace by binding name */
17
+ getDurableObjectNamespace: MiniflareType['getDurableObjectNamespace'];
18
+ /** Dispatch a fetch request to a worker */
19
+ dispatchFetch: MiniflareType['dispatchFetch'];
20
+ /** The underlying Miniflare instance */
21
+ _mf: MiniflareType;
22
+ }
23
+ export interface MiniflareOptions {
24
+ /** Devflare config to derive bindings from */
25
+ config?: DevflareConfig;
26
+ /** Port for HTTP server (default: 8787) */
27
+ port?: number;
28
+ /** Persist data to disk */
29
+ persist?: boolean | string;
30
+ /** Path to persist data (if persist is true) */
31
+ persistPath?: string;
32
+ /** Enable verbose logging */
33
+ verbose?: boolean;
34
+ /** Durable Object classes to register */
35
+ durableObjects?: Record<string, {
36
+ className: string;
37
+ scriptPath?: string;
38
+ }>;
39
+ /** KV namespaces to create - can be array of names or Record<name, id> */
40
+ kvNamespaces?: string[] | Record<string, string>;
41
+ /** R2 buckets to create - can be array of names or Record<name, id> */
42
+ r2Buckets?: string[] | Record<string, string>;
43
+ /** D1 databases to create - can be array of names or Record<name, id> */
44
+ d1Databases?: string[] | Record<string, string>;
45
+ /** Queue bindings */
46
+ queues?: string[];
47
+ /** Environment variables */
48
+ bindings?: Record<string, string>;
49
+ /** Compatibility date */
50
+ compatibilityDate?: string;
51
+ /** Compatibility flags */
52
+ compatibilityFlags?: string[];
53
+ }
54
+ /**
55
+ * Start a Miniflare instance with the given configuration
56
+ */
57
+ export declare function startMiniflare(options?: MiniflareOptions): Promise<MiniflareInstance>;
58
+ /**
59
+ * Start Miniflare from a devflare config
60
+ */
61
+ export declare function startMiniflareFromConfig(config: DevflareConfig, options?: Partial<MiniflareOptions>): Promise<MiniflareInstance>;
62
+ /**
63
+ * Get or start the global Miniflare instance
64
+ */
65
+ export declare function getMiniflare(options?: MiniflareOptions): Promise<MiniflareInstance>;
66
+ /**
67
+ * Stop the global Miniflare instance
68
+ */
69
+ export declare function stopMiniflare(): Promise<void>;
70
+ //# sourceMappingURL=miniflare.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"miniflare.d.ts","sourceRoot":"","sources":["../../src/bridge/miniflare.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,WAAW,CAAA;AAC3D,OAAO,EAAsB,KAAK,cAAc,EAA6B,MAAM,WAAW,CAAA;AAM9F,MAAM,WAAW,iBAAiB;IACjC,uDAAuD;IACvD,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACpB,qCAAqC;IACrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,2CAA2C;IAC3C,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC/C,kDAAkD;IAClD,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAA;IAC/C,+CAA+C;IAC/C,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACzC,iDAAiD;IACjD,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IAC7C,qDAAqD;IACrD,yBAAyB,EAAE,aAAa,CAAC,2BAA2B,CAAC,CAAA;IACrE,2CAA2C;IAC3C,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,CAAA;IAC7C,wCAAwC;IACxC,GAAG,EAAE,aAAa,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAChC,8CAA8C;IAC9C,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3E,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChD,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7C,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/C,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,yBAAyB;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,0BAA0B;IAC1B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC7B;AAwLD;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA+F/F;AAMD;;GAEG;AACH,wBAAsB,wBAAwB,CAC7C,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,OAAO,CAAC,gBAAgB,CAAM,GACrC,OAAO,CAAC,iBAAiB,CAAC,CA+B5B;AAQD;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAKzF;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAKnD"}
@@ -0,0 +1,146 @@
1
+ /** RPC call from client to worker */
2
+ export interface RpcCall {
3
+ t: 'rpc.call';
4
+ id: string;
5
+ method: string;
6
+ params: unknown[];
7
+ }
8
+ /** Successful RPC response */
9
+ export interface RpcOk {
10
+ t: 'rpc.ok';
11
+ id: string;
12
+ result: unknown;
13
+ }
14
+ /** Error RPC response */
15
+ export interface RpcErr {
16
+ t: 'rpc.err';
17
+ id: string;
18
+ error: {
19
+ code: string;
20
+ message: string;
21
+ details?: unknown;
22
+ };
23
+ }
24
+ /** Event notification (worker → client) */
25
+ export interface EventMsg {
26
+ t: 'event';
27
+ topic: string;
28
+ data: unknown;
29
+ }
30
+ /** Open a new stream */
31
+ export interface StreamOpen {
32
+ t: 'stream.open';
33
+ sid: number;
34
+ meta?: {
35
+ contentType?: string;
36
+ length?: number;
37
+ };
38
+ }
39
+ /** Request bytes from stream (pull-based backpressure) */
40
+ export interface StreamPull {
41
+ t: 'stream.pull';
42
+ sid: number;
43
+ creditBytes: number;
44
+ }
45
+ /** Stream completed successfully */
46
+ export interface StreamEnd {
47
+ t: 'stream.end';
48
+ sid: number;
49
+ }
50
+ /** Stream aborted with error */
51
+ export interface StreamAbort {
52
+ t: 'stream.abort';
53
+ sid: number;
54
+ error?: string;
55
+ }
56
+ /** Open WebSocket proxy connection */
57
+ export interface WsOpen {
58
+ t: 'ws.open';
59
+ wid: number;
60
+ target: {
61
+ binding: string;
62
+ id: string;
63
+ url: string;
64
+ headers?: [string, string][];
65
+ };
66
+ }
67
+ /** WebSocket proxy opened successfully */
68
+ export interface WsOpened {
69
+ t: 'ws.opened';
70
+ wid: number;
71
+ }
72
+ /** Close WebSocket proxy */
73
+ export interface WsClose {
74
+ t: 'ws.close';
75
+ wid: number;
76
+ code?: number;
77
+ reason?: string;
78
+ }
79
+ /** HTTP upload/download for large files */
80
+ export interface HttpTransfer {
81
+ t: 'http.transfer';
82
+ id: string;
83
+ url: string;
84
+ direction: 'upload' | 'download';
85
+ }
86
+ /** Union of all JSON message types */
87
+ export type JsonMsg = RpcCall | RpcOk | RpcErr | EventMsg | StreamOpen | StreamPull | StreamEnd | StreamAbort | WsOpen | WsOpened | WsClose | HttpTransfer;
88
+ /** Binary frame kinds */
89
+ export declare const BinaryKind: {
90
+ readonly StreamChunk: 1;
91
+ readonly WsData: 2;
92
+ };
93
+ export type BinaryKind = typeof BinaryKind[keyof typeof BinaryKind];
94
+ /** Binary frame flags */
95
+ export declare const BinaryFlags: {
96
+ readonly FIN: 1;
97
+ readonly TEXT: 2;
98
+ };
99
+ /**
100
+ * Binary frame header structure:
101
+ * - kind: u8 (1 = stream chunk, 2 = ws data)
102
+ * - id: u32 (stream id or websocket id)
103
+ * - seq: u32 (sequence number for ordering)
104
+ * - flags: u8 (FIN, TEXT/BINARY)
105
+ * - payload: remaining bytes
106
+ *
107
+ * Total header size: 10 bytes
108
+ */
109
+ export declare const BINARY_HEADER_SIZE = 10;
110
+ /** Encode a binary frame */
111
+ export declare function encodeBinaryFrame(kind: BinaryKind, id: number, seq: number, flags: number, payload: Uint8Array): Uint8Array;
112
+ /** Decoded binary frame */
113
+ export interface DecodedBinaryFrame {
114
+ kind: BinaryKind;
115
+ id: number;
116
+ seq: number;
117
+ flags: number;
118
+ payload: Uint8Array;
119
+ }
120
+ /** Decode a binary frame */
121
+ export declare function decodeBinaryFrame(frame: Uint8Array): DecodedBinaryFrame;
122
+ /** Check if FIN flag is set */
123
+ export declare function isFin(flags: number): boolean;
124
+ /** Check if TEXT flag is set (vs binary) */
125
+ export declare function isText(flags: number): boolean;
126
+ /** Parse a JSON message from string */
127
+ export declare function parseJsonMsg(data: string): JsonMsg;
128
+ /** Stringify a JSON message */
129
+ export declare function stringifyJsonMsg(msg: JsonMsg): string;
130
+ /** Generate unique RPC call ID */
131
+ export declare function nextRpcId(): string;
132
+ /** Generate unique stream ID */
133
+ export declare function nextStreamId(): number;
134
+ /** Generate unique WebSocket proxy ID */
135
+ export declare function nextWsId(): number;
136
+ /** Reset ID counters (for testing) */
137
+ export declare function resetIdCounters(): void;
138
+ /** Default chunk size for streaming (256 KB) */
139
+ export declare const DEFAULT_CHUNK_SIZE: number;
140
+ /** Threshold for switching to HTTP transfer (10 MB) */
141
+ export declare const HTTP_TRANSFER_THRESHOLD: number;
142
+ /** Default WebSocket port for bridge */
143
+ export declare const DEFAULT_BRIDGE_PORT = 8686;
144
+ /** Default HTTP port for large transfers */
145
+ export declare const DEFAULT_HTTP_PORT = 8687;
146
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/bridge/protocol.ts"],"names":[],"mappings":"AAUA,qCAAqC;AACrC,MAAM,WAAW,OAAO;IACvB,CAAC,EAAE,UAAU,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,EAAE,CAAA;CACjB;AAED,8BAA8B;AAC9B,MAAM,WAAW,KAAK;IACrB,CAAC,EAAE,QAAQ,CAAA;IACX,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,OAAO,CAAA;CACf;AAED,yBAAyB;AACzB,MAAM,WAAW,MAAM;IACtB,CAAC,EAAE,SAAS,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,OAAO,CAAA;KACjB,CAAA;CACD;AAED,6CAA2C;AAC3C,MAAM,WAAW,QAAQ;IACxB,CAAC,EAAE,OAAO,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,CAAA;CACb;AAED,wBAAwB;AACxB,MAAM,WAAW,UAAU;IAC1B,CAAC,EAAE,aAAa,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE;QACN,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,MAAM,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;CACD;AAED,0DAA0D;AAC1D,MAAM,WAAW,UAAU;IAC1B,CAAC,EAAE,aAAa,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;CACnB;AAED,oCAAoC;AACpC,MAAM,WAAW,SAAS;IACzB,CAAC,EAAE,YAAY,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;CACX;AAED,gCAAgC;AAChC,MAAM,WAAW,WAAW;IAC3B,CAAC,EAAE,cAAc,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,sCAAsC;AACtC,MAAM,WAAW,MAAM;IACtB,CAAC,EAAE,SAAS,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE;QACP,OAAO,EAAE,MAAM,CAAA;QACf,EAAE,EAAE,MAAM,CAAA;QACV,GAAG,EAAE,MAAM,CAAA;QACX,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;KAC5B,CAAA;CACD;AAED,0CAA0C;AAC1C,MAAM,WAAW,QAAQ;IACxB,CAAC,EAAE,WAAW,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;CACX;AAED,4BAA4B;AAC5B,MAAM,WAAW,OAAO;IACvB,CAAC,EAAE,UAAU,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC5B,CAAC,EAAE,eAAe,CAAA;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAA;CAChC;AAED,sCAAsC;AACtC,MAAM,MAAM,OAAO,GAChB,OAAO,GACP,KAAK,GACL,MAAM,GACN,QAAQ,GACR,UAAU,GACV,UAAU,GACV,SAAS,GACT,WAAW,GACX,MAAM,GACN,QAAQ,GACR,OAAO,GACP,YAAY,CAAA;AAMf,yBAAyB;AACzB,eAAO,MAAM,UAAU;;;CAGb,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAA;AAEnE,yBAAyB;AACzB,eAAO,MAAM,WAAW;;;CAGd,CAAA;AAEV;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAA;AAEpC,4BAA4B;AAC5B,wBAAgB,iBAAiB,CAChC,IAAI,EAAE,UAAU,EAChB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,UAAU,GACjB,UAAU,CAYZ;AAED,2BAA2B;AAC3B,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,UAAU,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,UAAU,CAAA;CACnB;AAED,4BAA4B;AAC5B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,kBAAkB,CAcvE;AAED,+BAA+B;AAC/B,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5C;AAED,4CAA4C;AAC5C,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE7C;AAMD,uCAAuC;AACvC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CASlD;AAED,+BAA+B;AAC/B,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAErD;AAUD,kCAAkC;AAClC,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,gCAAgC;AAChC,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,yCAAyC;AACzC,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAED,sCAAsC;AACtC,wBAAgB,eAAe,IAAI,IAAI,CAItC;AAMD,gDAAgD;AAChD,eAAO,MAAM,kBAAkB,QAAa,CAAA;AAE5C,uDAAuD;AAGvD,eAAO,MAAM,uBAAuB,QAAa,CAAA;AAEjD,wCAAwC;AACxC,eAAO,MAAM,mBAAmB,OAAO,CAAA;AAEvC,4CAA4C;AAC5C,eAAO,MAAM,iBAAiB,OAAO,CAAA"}
@@ -0,0 +1,49 @@
1
+ import { type BridgeClient } from './client';
2
+ export interface EnvProxyOptions {
3
+ /** Bridge client to use (uses default if not provided) */
4
+ client?: BridgeClient;
5
+ /** Lazily connect on first access */
6
+ lazy?: boolean;
7
+ /** Transform results before returning (e.g., for transport decoding) */
8
+ transformResult?: (result: unknown) => unknown;
9
+ }
10
+ /** Binding type hints for better proxy creation */
11
+ export interface BindingHints {
12
+ [key: string]: 'kv' | 'r2' | 'd1' | 'do' | 'queue' | 'ai' | 'service' | 'secret' | 'var';
13
+ }
14
+ /**
15
+ * Create an env proxy that routes all binding access through the bridge
16
+ */
17
+ export declare function createEnvProxy(options?: EnvProxyOptions & {
18
+ hints?: BindingHints;
19
+ }): Record<string, unknown>;
20
+ /**
21
+ * Get the global env proxy for bridge RPC
22
+ *
23
+ * Note: This is distinct from `devflare/runtime`'s `env` which provides
24
+ * request-scoped context access. Use `bridgeEnv` for standalone bridge usage
25
+ * (e.g., testing, scripts) and the runtime `env` within request handlers.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * import { bridgeEnv } from 'devflare'
30
+ *
31
+ * await bridgeEnv.MY_KV.get('key')
32
+ * await bridgeEnv.MY_DO.get(id).fetch(request)
33
+ * ```
34
+ */
35
+ export declare const bridgeEnv: Record<string, unknown>;
36
+ /**
37
+ * @deprecated Use `bridgeEnv` instead to avoid confusion with runtime `env`
38
+ */
39
+ export declare const env: Record<string, unknown>;
40
+ /**
41
+ * Initialize the env proxy with specific options
42
+ */
43
+ export declare function initEnv(options?: EnvProxyOptions): Record<string, unknown>;
44
+ /**
45
+ * Set binding hints for better proxy creation
46
+ * Hints help the bridge create optimized proxies for each binding type
47
+ */
48
+ export declare function setBindingHints(hints: BindingHints): void;
49
+ //# sourceMappingURL=proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../src/bridge/proxy.ts"],"names":[],"mappings":"AAMA,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,UAAU,CAAA;AAYvD,MAAM,WAAW,eAAe;IAC/B,0DAA0D;IAC1D,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,qCAAqC;IACrC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,wEAAwE;IACxE,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAA;CAC9C;AA0aD,mDAAmD;AACnD,MAAM,WAAW,YAAY;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAA;CACxF;AAKD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,eAAe,GAAG;IAAE,KAAK,CAAC,EAAE,YAAY,CAAA;CAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsEhH;AAqED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAO5C,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,GAAG,yBAAY,CAAA;AAE5B;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,GAAE,eAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAG9E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAIzD"}
@@ -0,0 +1,83 @@
1
+ /** Serialized HTTP Request */
2
+ export interface SerializedRequest {
3
+ url: string;
4
+ method: string;
5
+ headers: [string, string][];
6
+ body?: BodyRef | null;
7
+ redirect?: 'follow' | 'error' | 'manual';
8
+ cf?: unknown;
9
+ }
10
+ /** Serialized HTTP Response */
11
+ export interface SerializedResponse {
12
+ status: number;
13
+ statusText?: string;
14
+ headers: [string, string][];
15
+ body?: BodyRef | null;
16
+ webSocket?: {
17
+ wid: number;
18
+ };
19
+ }
20
+ /** Reference to a body - either inline bytes or stream */
21
+ export type BodyRef = {
22
+ type: 'bytes';
23
+ data: string;
24
+ } | {
25
+ type: 'stream';
26
+ sid: number;
27
+ } | {
28
+ type: 'http';
29
+ transferId: string;
30
+ };
31
+ /** Serialized DurableObjectId */
32
+ export interface SerializedDOId {
33
+ type: 'do-id';
34
+ name?: string;
35
+ hexId?: string;
36
+ }
37
+ /** Serialized DurableObjectStub */
38
+ export interface SerializedDOStub {
39
+ type: 'do-stub';
40
+ binding: string;
41
+ id: SerializedDOId;
42
+ }
43
+ /** Serialize a Request to a POJO */
44
+ export declare function serializeRequest(request: Request, options?: {
45
+ httpThreshold?: number;
46
+ }): Promise<{
47
+ serialized: SerializedRequest;
48
+ streams: StreamRef[];
49
+ }>;
50
+ /** Deserialize a Request from a POJO */
51
+ export declare function deserializeRequest(serialized: SerializedRequest, getStream?: (sid: number) => ReadableStream<Uint8Array> | null): Request;
52
+ /** Serialize a Response to a POJO */
53
+ export declare function serializeResponse(response: Response, options?: {
54
+ httpThreshold?: number;
55
+ }): Promise<{
56
+ serialized: SerializedResponse;
57
+ streams: StreamRef[];
58
+ }>;
59
+ /** Deserialize a Response from a POJO */
60
+ export declare function deserializeResponse(serialized: SerializedResponse, getStream?: (sid: number) => ReadableStream<Uint8Array> | null): Response;
61
+ /** Reference to a stream that needs to be sent separately */
62
+ export interface StreamRef {
63
+ sid: number;
64
+ stream: ReadableStream<Uint8Array>;
65
+ }
66
+ /** Serialize a DurableObjectId */
67
+ export declare function serializeDOId(id: DurableObjectId): SerializedDOId;
68
+ /** Serialize a DurableObjectStub reference */
69
+ export declare function serializeDOStub(binding: string, id: DurableObjectId): SerializedDOStub;
70
+ /** Check if a value needs special serialization */
71
+ export declare function needsSpecialSerialization(value: unknown): boolean;
72
+ /** Serialize a value that may contain special types */
73
+ export declare function serializeValue(value: unknown): Promise<{
74
+ value: unknown;
75
+ streams: StreamRef[];
76
+ }>;
77
+ /** Deserialize a value that may contain special types */
78
+ export declare function deserializeValue(value: unknown, getStream?: (sid: number) => ReadableStream<Uint8Array> | null): unknown;
79
+ /** Encode Uint8Array to base64 string */
80
+ export declare function base64Encode(bytes: Uint8Array): string;
81
+ /** Decode base64 string to Uint8Array */
82
+ export declare function base64Decode(str: string): Uint8Array;
83
+ //# sourceMappingURL=serialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../src/bridge/serialization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface GatewayEnv {
2
+ [key: string]: unknown;
3
+ }
4
+ declare const _default: {
5
+ fetch(request: Request<unknown, CfProperties<unknown>>, env: GatewayEnv, ctx: ExecutionContext<unknown>): Promise<Response>;
6
+ };
7
+ export default _default;
8
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/bridge/server.ts"],"names":[],"mappings":"AAkCA,MAAM,WAAW,UAAU;IAE1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACtB;;;;AAgBD,wBAuBC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Generate the browser binding worker script
3
+ * @param browserShimUrl - URL of the external browser shim server (e.g., http://127.0.0.1:8788)
4
+ * @param debug - Enable debug logging (default: false)
5
+ */
6
+ export declare function getBrowserBindingScript(browserShimUrl: string, debug?: boolean): string;
7
+ //# sourceMappingURL=binding-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-worker.d.ts","sourceRoot":"","sources":["../../src/browser-shim/binding-worker.ts"],"names":[],"mappings":"AA+BA;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,MAAM,CA8SrF"}
@@ -0,0 +1,21 @@
1
+ import type { Miniflare } from 'miniflare';
2
+ import type { ConsolaInstance } from 'consola';
3
+ export interface BrowserNodeHandlerOptions {
4
+ /** URL of the browser shim server (e.g., http://127.0.0.1:8788) */
5
+ browserShimUrl: string;
6
+ /** Logger instance */
7
+ logger?: ConsolaInstance;
8
+ /** Enable verbose logging */
9
+ verbose?: boolean;
10
+ }
11
+ /**
12
+ * Create a service binding handler for browser rendering
13
+ *
14
+ * This handler is passed to Miniflare's serviceBindings option directly as a function.
15
+ * It uses the fetch-style signature: (request: Request, miniflare: Miniflare) => Response
16
+ *
17
+ * @param options - Handler configuration
18
+ * @returns Fetch-style handler function
19
+ */
20
+ export declare function createBrowserNodeHandler(options: BrowserNodeHandlerOptions): (request: Request<unknown, CfProperties<unknown>>, _miniflare: Miniflare) => Promise<Response>;
21
+ //# sourceMappingURL=handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/browser-shim/handler.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,MAAM,WAAW,yBAAyB;IACzC,mEAAmE;IACnE,cAAc,EAAE,MAAM,CAAA;IACtB,sBAAsB;IACtB,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AAkCD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,kGAuB1E"}
@@ -0,0 +1,3 @@
1
+ export { createBrowserShim, type BrowserShimOptions, type BrowserShim } from './server';
2
+ export { createBrowserNodeHandler, type BrowserNodeHandlerOptions } from './handler';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser-shim/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AACvF,OAAO,EAAE,wBAAwB,EAAE,KAAK,yBAAyB,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,25 @@
1
+ import type { ConsolaInstance } from 'consola';
2
+ export interface BrowserShimOptions {
3
+ /** Port to run the shim server on (default: 8788) */
4
+ port?: number;
5
+ /** Host to bind to (default: 127.0.0.1) */
6
+ host?: string;
7
+ /** Logger instance */
8
+ logger?: ConsolaInstance;
9
+ /** Enable verbose logging */
10
+ verbose?: boolean;
11
+ /** Keep alive timeout in ms (default: 60000 = 1 minute) */
12
+ keepAlive?: number;
13
+ /** Custom cache directory for Chrome (default: ~/.devflare/chrome) */
14
+ cacheDir?: string;
15
+ }
16
+ export interface BrowserShim {
17
+ /** Start the browser shim server */
18
+ start(): Promise<void>;
19
+ /** Stop the server and close all browsers */
20
+ stop(): Promise<void>;
21
+ /** Get the server URL (for creating Fetcher) */
22
+ getUrl(): string;
23
+ }
24
+ export declare function createBrowserShim(options?: BrowserShimOptions): BrowserShim;
25
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/browser-shim/server.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAiB9C,MAAM,WAAW,kBAAkB;IAClC,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sBAAsB;IACtB,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,WAAW;IAC3B,oCAAoC;IACpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,6CAA6C;IAC7C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,gDAAgD;IAChD,MAAM,IAAI,MAAM,CAAA;CAChB;AAmFD,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,kBAAuB,GAAG,WAAW,CAyf/E"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Generate the inline worker script for Browser Rendering
3
+ * This is embedded in Miniflare as a script string
4
+ *
5
+ * The worker acts as a bridge between @cloudflare/puppeteer and our browser shim:
6
+ * 1. HTTP requests (like /v1/acquire) are proxied to the shim
7
+ * 2. WebSocket requests are handled by connecting to Chrome's DevTools directly
8
+ * (Chrome is launched by the shim and its ws endpoint is returned)
9
+ *
10
+ * @param browserShimUrl - URL of the browser shim server
11
+ * @param debug - Enable debug logging (default: false, uses DEVFLARE_DEBUG env)
12
+ */
13
+ export declare function generateBrowserWorkerScript(browserShimUrl: string, debug?: boolean): string;
14
+ //# sourceMappingURL=worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/browser-shim/worker.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,MAAM,CAmLzF"}
@@ -0,0 +1,53 @@
1
+ import {
2
+ compileConfig,
3
+ writeWranglerConfig
4
+ } from "./index-67qcae0f.js";
5
+ import {
6
+ loadConfig
7
+ } from "./index-hcex3rgh.js";
8
+ import {
9
+ getDependencies
10
+ } from "./index-1xpj0m4r.js";
11
+ import"./index-37x76zdn.js";
12
+
13
+ // src/cli/commands/build.ts
14
+ async function runBuildCommand(parsed, logger, options) {
15
+ const cwd = options.cwd || process.cwd();
16
+ const configPath = parsed.options.config;
17
+ const environment = parsed.options.env;
18
+ logger.info("Building for production...");
19
+ try {
20
+ const config = await loadConfig({ cwd, configFile: configPath });
21
+ logger.info(`Building: ${config.name}`);
22
+ const wranglerConfig = compileConfig(config, environment);
23
+ await writeWranglerConfig(cwd, wranglerConfig);
24
+ logger.success("Generated wrangler.jsonc");
25
+ const { exec } = await getDependencies();
26
+ logger.info("Running vite build...");
27
+ const proc = await exec.exec("bunx", ["vite", "build"], {
28
+ cwd,
29
+ stdio: "inherit",
30
+ env: {
31
+ ...process.env,
32
+ DEVFLARE_BUILD: "true"
33
+ }
34
+ });
35
+ if (proc.exitCode !== 0) {
36
+ logger.error("Build failed");
37
+ return { exitCode: 1 };
38
+ }
39
+ logger.success("Build complete!");
40
+ return { exitCode: 0 };
41
+ } catch (error) {
42
+ if (error instanceof Error) {
43
+ logger.error("Build failed:", error.message);
44
+ if (parsed.options.debug) {
45
+ logger.error(error.stack);
46
+ }
47
+ }
48
+ return { exitCode: 1 };
49
+ }
50
+ }
51
+ export {
52
+ runBuildCommand
53
+ };
@@ -0,0 +1,42 @@
1
+ import type { ConsolaInstance } from 'consola';
2
+ export interface DOBundlerOptions {
3
+ /** Project root directory */
4
+ cwd: string;
5
+ /** Glob pattern for DO files (e.g., 'src/do.*.ts') */
6
+ pattern: string;
7
+ /** Output directory for bundled files */
8
+ outDir: string;
9
+ /** Logger instance */
10
+ logger?: ConsolaInstance;
11
+ /** Callback when a DO is rebuilt */
12
+ onRebuild?: (result: DOBundleResult) => void | Promise<void>;
13
+ }
14
+ export interface DOBundleResult {
15
+ /** Map of binding name → bundled file path */
16
+ bundles: Map<string, string>;
17
+ /** Map of binding name → class name */
18
+ classes: Map<string, string>;
19
+ /** Map of source file → class names found */
20
+ sourceFiles: Map<string, string[]>;
21
+ /** Errors during bundling */
22
+ errors: Error[];
23
+ }
24
+ export interface DOBundler {
25
+ /** Initial build of all DOs */
26
+ build(): Promise<DOBundleResult>;
27
+ /** Start watching for changes */
28
+ watch(): Promise<void>;
29
+ /** Stop watching */
30
+ close(): Promise<void>;
31
+ /** Get the latest bundle result */
32
+ getResult(): DOBundleResult;
33
+ }
34
+ /**
35
+ * Create a DO bundler with watch support
36
+ */
37
+ export declare function createDOBundler(options: DOBundlerOptions): DOBundler;
38
+ /**
39
+ * Bundle DOs without watching (one-shot build)
40
+ */
41
+ export declare function bundleDOs(options: Omit<DOBundlerOptions, 'onRebuild'>): Promise<DOBundleResult>;
42
+ //# sourceMappingURL=do-bundler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"do-bundler.d.ts","sourceRoot":"","sources":["../../src/bundler/do-bundler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAS9C,MAAM,WAAW,gBAAgB;IAChC,6BAA6B;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAA;IACf,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAA;IACd,sBAAsB;IACtB,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,oCAAoC;IACpC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5D;AAED,MAAM,WAAW,cAAc;IAC9B,gDAA8C;IAC9C,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,yCAAuC;IACvC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,+CAA6C;IAC7C,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAClC,6BAA6B;IAC7B,MAAM,EAAE,KAAK,EAAE,CAAA;CACf;AAED,MAAM,WAAW,SAAS;IACzB,+BAA+B;IAC/B,KAAK,IAAI,OAAO,CAAC,cAAc,CAAC,CAAA;IAChC,iCAAiC;IACjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,oBAAoB;IACpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,mCAAmC;IACnC,SAAS,IAAI,cAAc,CAAA;CAC3B;AAqRD;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CA4NpE;AAMD;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAIrG"}
@@ -0,0 +1,2 @@
1
+ export { type DOBundlerOptions, type DOBundleResult, type DOBundler, createDOBundler, bundleDOs } from './do-bundler';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bundler/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,eAAe,EACf,SAAS,EACT,MAAM,cAAc,CAAA"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=bin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ export declare const BOLD = "\u001B[1m";
2
+ export declare const DIM = "\u001B[2m";
3
+ export declare const RESET = "\u001B[0m";
4
+ export declare const CYAN = "\u001B[36m";
5
+ export declare const CYAN_BOLD = "\u001B[1;36m";
6
+ export declare const WHITE = "\u001B[97m";
7
+ export declare const GREEN = "\u001B[32m";
8
+ export declare const RED = "\u001B[31m";
9
+ export declare const YELLOW = "\u001B[33m";
10
+ export declare const BG_BLUE = "\u001B[44m";
11
+ //# sourceMappingURL=colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/cli/colors.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,IAAI,cAAY,CAAA;AAC7B,eAAO,MAAM,GAAG,cAAY,CAAA;AAC5B,eAAO,MAAM,KAAK,cAAY,CAAA;AAG9B,eAAO,MAAM,IAAI,eAAa,CAAA;AAC9B,eAAO,MAAM,SAAS,iBAAe,CAAA;AACrC,eAAO,MAAM,KAAK,eAAa,CAAA;AAC/B,eAAO,MAAM,KAAK,eAAa,CAAA;AAC/B,eAAO,MAAM,GAAG,eAAa,CAAA;AAC7B,eAAO,MAAM,MAAM,eAAa,CAAA;AAGhC,eAAO,MAAM,OAAO,eAAa,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { ConsolaInstance } from 'consola';
2
+ import type { ParsedArgs, CliOptions, CliResult } from '../index';
3
+ export declare function runAccountCommand(parsed: ParsedArgs, logger: ConsolaInstance, _options: CliOptions): Promise<CliResult>;
4
+ //# sourceMappingURL=account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/account.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAmEjE,wBAAsB,iBAAiB,CACtC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,UAAU,GAClB,OAAO,CAAC,SAAS,CAAC,CAiFpB"}
@@ -0,0 +1,3 @@
1
+ import type { CliResult } from '../index';
2
+ export declare function runAICommand(): CliResult;
3
+ //# sourceMappingURL=ai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ai.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAyGzC,wBAAgB,YAAY,IAAI,SAAS,CAwCxC"}
@@ -0,0 +1,4 @@
1
+ import { type ConsolaInstance } from 'consola';
2
+ import type { ParsedArgs, CliOptions, CliResult } from '../index';
3
+ export declare function runBuildCommand(parsed: ParsedArgs, logger: ConsolaInstance, options: CliOptions): Promise<CliResult>;
4
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAKjE,wBAAsB,eAAe,CACpC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,UAAU,GACjB,OAAO,CAAC,SAAS,CAAC,CA+CpB"}