alchemy 2.0.0-beta.43 → 2.0.0-beta.44

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 (207) hide show
  1. package/bin/cli.js +18 -5
  2. package/bin/exec.js +315 -233
  3. package/bin/exec.js.map +1 -1
  4. package/lib/Auth/Lock.js +2 -2
  5. package/lib/Auth/Lock.js.map +1 -1
  6. package/lib/Bundle/Bundle.d.ts +11 -0
  7. package/lib/Bundle/Bundle.d.ts.map +1 -1
  8. package/lib/Bundle/Bundle.js +19 -12
  9. package/lib/Bundle/Bundle.js.map +1 -1
  10. package/lib/Bundle/BundleAnalyzerPlugin.d.ts +25 -0
  11. package/lib/Bundle/BundleAnalyzerPlugin.d.ts.map +1 -0
  12. package/lib/Bundle/BundleAnalyzerPlugin.js +16 -0
  13. package/lib/Bundle/BundleAnalyzerPlugin.js.map +1 -0
  14. package/lib/Bundle/RawPlugin.d.ts +36 -0
  15. package/lib/Bundle/RawPlugin.d.ts.map +1 -0
  16. package/lib/Bundle/RawPlugin.js +80 -0
  17. package/lib/Bundle/RawPlugin.js.map +1 -0
  18. package/lib/Bundle/index.d.ts +2 -0
  19. package/lib/Bundle/index.d.ts.map +1 -1
  20. package/lib/Bundle/index.js +2 -0
  21. package/lib/Bundle/index.js.map +1 -1
  22. package/lib/Cli/commands/dev.d.ts +3 -2
  23. package/lib/Cli/commands/dev.d.ts.map +1 -1
  24. package/lib/Cli/commands/dev.js +9 -1
  25. package/lib/Cli/commands/dev.js.map +1 -1
  26. package/lib/Cli/exec.d.ts.map +1 -1
  27. package/lib/Cli/exec.js +2 -1
  28. package/lib/Cli/exec.js.map +1 -1
  29. package/lib/Cloudflare/Local.d.ts +2 -0
  30. package/lib/Cloudflare/Local.d.ts.map +1 -0
  31. package/lib/Cloudflare/Local.js +9 -0
  32. package/lib/Cloudflare/Local.js.map +1 -0
  33. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  34. package/lib/Cloudflare/Providers.js +3 -1
  35. package/lib/Cloudflare/Providers.js.map +1 -1
  36. package/lib/Cloudflare/Workers/DurableObjectBridge.d.ts.map +1 -1
  37. package/lib/Cloudflare/Workers/DurableObjectBridge.js +0 -1
  38. package/lib/Cloudflare/Workers/DurableObjectBridge.js.map +1 -1
  39. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts +22 -3
  40. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
  41. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +413 -21
  42. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  43. package/lib/Cloudflare/Workers/Worker.d.ts +6 -19
  44. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  45. package/lib/Cloudflare/Workers/Worker.js +3 -4
  46. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  47. package/lib/Cloudflare/Workers/WorkerBridge.d.ts.map +1 -1
  48. package/lib/Cloudflare/Workers/WorkerBridge.js +3 -5
  49. package/lib/Cloudflare/Workers/WorkerBridge.js.map +1 -1
  50. package/lib/Cloudflare/Workers/WorkerBundle.d.ts +1 -2
  51. package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -1
  52. package/lib/Cloudflare/Workers/WorkerBundle.js +3 -6
  53. package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -1
  54. package/lib/Cloudflare/Zaraz/ZarazConfig.d.ts +184 -0
  55. package/lib/Cloudflare/Zaraz/ZarazConfig.d.ts.map +1 -0
  56. package/lib/Cloudflare/Zaraz/ZarazConfig.js +216 -0
  57. package/lib/Cloudflare/Zaraz/ZarazConfig.js.map +1 -0
  58. package/lib/Cloudflare/Zaraz/ZarazEventTypes.d.ts +188 -0
  59. package/lib/Cloudflare/Zaraz/ZarazEventTypes.d.ts.map +1 -0
  60. package/lib/Cloudflare/Zaraz/ZarazEventTypes.js +4 -0
  61. package/lib/Cloudflare/Zaraz/ZarazEventTypes.js.map +1 -0
  62. package/lib/Cloudflare/Zaraz/index.d.ts +3 -0
  63. package/lib/Cloudflare/Zaraz/index.d.ts.map +1 -0
  64. package/lib/Cloudflare/Zaraz/index.js +2 -0
  65. package/lib/Cloudflare/Zaraz/index.js.map +1 -0
  66. package/lib/Cloudflare/index.d.ts +1 -0
  67. package/lib/Cloudflare/index.d.ts.map +1 -1
  68. package/lib/Cloudflare/index.js +1 -0
  69. package/lib/Cloudflare/index.js.map +1 -1
  70. package/lib/Local/RpcProvider.d.ts +54 -0
  71. package/lib/Local/RpcProvider.d.ts.map +1 -0
  72. package/lib/Local/RpcProvider.js +57 -0
  73. package/lib/Local/RpcProvider.js.map +1 -0
  74. package/lib/Local/RpcProviderProxy.d.ts +19 -0
  75. package/lib/Local/RpcProviderProxy.d.ts.map +1 -0
  76. package/lib/Local/RpcProviderProxy.js +48 -0
  77. package/lib/Local/RpcProviderProxy.js.map +1 -0
  78. package/lib/Local/RpcSerialization.d.ts +34 -0
  79. package/lib/Local/RpcSerialization.d.ts.map +1 -0
  80. package/lib/Local/RpcSerialization.js +120 -0
  81. package/lib/Local/RpcSerialization.js.map +1 -0
  82. package/lib/Local/RpcServer.d.ts +63 -0
  83. package/lib/Local/RpcServer.d.ts.map +1 -0
  84. package/lib/Local/RpcServer.js +72 -0
  85. package/lib/Local/RpcServer.js.map +1 -0
  86. package/lib/Local/RpcServerBun.d.ts +3 -0
  87. package/lib/Local/RpcServerBun.d.ts.map +1 -0
  88. package/lib/Local/RpcServerBun.js +47 -0
  89. package/lib/Local/RpcServerBun.js.map +1 -0
  90. package/lib/Local/RpcServerEnvironment.d.ts +20 -0
  91. package/lib/Local/RpcServerEnvironment.d.ts.map +1 -0
  92. package/lib/Local/RpcServerEnvironment.js +22 -0
  93. package/lib/Local/RpcServerEnvironment.js.map +1 -0
  94. package/lib/Local/RpcServerNode.d.ts +3 -0
  95. package/lib/Local/RpcServerNode.d.ts.map +1 -0
  96. package/lib/Local/RpcServerNode.js +43 -0
  97. package/lib/Local/RpcServerNode.js.map +1 -0
  98. package/lib/Local/RpcServerSession.d.ts +27 -0
  99. package/lib/Local/RpcServerSession.d.ts.map +1 -0
  100. package/lib/Local/RpcServerSession.js +68 -0
  101. package/lib/Local/RpcServerSession.js.map +1 -0
  102. package/lib/Local/RpcSpawner.d.ts +21 -0
  103. package/lib/Local/RpcSpawner.d.ts.map +1 -0
  104. package/lib/Local/RpcSpawner.js +132 -0
  105. package/lib/Local/RpcSpawner.js.map +1 -0
  106. package/lib/Util/PlatformServices.d.ts +7 -0
  107. package/lib/Util/PlatformServices.d.ts.map +1 -1
  108. package/lib/Util/PlatformServices.js +22 -11
  109. package/lib/Util/PlatformServices.js.map +1 -1
  110. package/lib/Util/camel.d.ts.map +1 -1
  111. package/lib/Util/camel.js +2 -3
  112. package/lib/Util/camel.js.map +1 -1
  113. package/lib/Util/data.d.ts +5 -0
  114. package/lib/Util/data.d.ts.map +1 -1
  115. package/lib/Util/data.js +29 -0
  116. package/lib/Util/data.js.map +1 -1
  117. package/lib/Util/stable.d.ts.map +1 -1
  118. package/lib/Util/stable.js +3 -6
  119. package/lib/Util/stable.js.map +1 -1
  120. package/lib/tsconfig.test.tsbuildinfo +1 -1
  121. package/package.json +12 -14
  122. package/src/Auth/Lock.ts +2 -2
  123. package/src/Bundle/Bundle.ts +35 -13
  124. package/src/Bundle/BundleAnalyzerPlugin.ts +33 -0
  125. package/src/Bundle/RawPlugin.ts +82 -0
  126. package/src/Bundle/index.ts +2 -0
  127. package/src/Cli/commands/dev.ts +51 -37
  128. package/src/Cli/exec.ts +12 -7
  129. package/src/Cloudflare/Local.ts +23 -0
  130. package/src/Cloudflare/Providers.ts +3 -0
  131. package/src/Cloudflare/Workers/DurableObjectBridge.ts +0 -1
  132. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +547 -21
  133. package/src/Cloudflare/Workers/Worker.ts +11 -22
  134. package/src/Cloudflare/Workers/WorkerBridge.ts +3 -5
  135. package/src/Cloudflare/Workers/WorkerBundle.ts +4 -8
  136. package/src/Cloudflare/Zaraz/ZarazConfig.ts +403 -0
  137. package/src/Cloudflare/Zaraz/ZarazEventTypes.ts +257 -0
  138. package/src/Cloudflare/Zaraz/index.ts +25 -0
  139. package/src/Cloudflare/index.ts +1 -0
  140. package/src/Local/RpcProvider.ts +102 -0
  141. package/src/Local/RpcProviderProxy.ts +86 -0
  142. package/src/Local/RpcSerialization.ts +225 -0
  143. package/src/Local/RpcServer.ts +138 -0
  144. package/src/Local/RpcServerBun.ts +59 -0
  145. package/src/Local/RpcServerEnvironment.ts +55 -0
  146. package/src/Local/RpcServerNode.ts +58 -0
  147. package/src/Local/RpcServerSession.ts +87 -0
  148. package/src/Local/RpcSpawner.ts +196 -0
  149. package/src/Util/PlatformServices.ts +41 -27
  150. package/src/Util/camel.ts +3 -5
  151. package/src/Util/data.ts +38 -0
  152. package/src/Util/stable.ts +4 -10
  153. package/lib/Cloudflare/Local/Sidecar.d.ts +0 -63
  154. package/lib/Cloudflare/Local/Sidecar.d.ts.map +0 -1
  155. package/lib/Cloudflare/Local/Sidecar.js +0 -50
  156. package/lib/Cloudflare/Local/Sidecar.js.map +0 -1
  157. package/lib/Cloudflare/Local/SidecarHandlers.d.ts +0 -8
  158. package/lib/Cloudflare/Local/SidecarHandlers.d.ts.map +0 -1
  159. package/lib/Cloudflare/Local/SidecarHandlers.js +0 -381
  160. package/lib/Cloudflare/Local/SidecarHandlers.js.map +0 -1
  161. package/lib/Cloudflare/Local/SidecarServer.d.ts +0 -2
  162. package/lib/Cloudflare/Local/SidecarServer.d.ts.map +0 -1
  163. package/lib/Cloudflare/Local/SidecarServer.js +0 -34
  164. package/lib/Cloudflare/Local/SidecarServer.js.map +0 -1
  165. package/lib/Sidecar/Lock.d.ts +0 -23
  166. package/lib/Sidecar/Lock.d.ts.map +0 -1
  167. package/lib/Sidecar/Lock.js +0 -39
  168. package/lib/Sidecar/Lock.js.map +0 -1
  169. package/lib/Sidecar/RpcClient.d.ts +0 -15
  170. package/lib/Sidecar/RpcClient.d.ts.map +0 -1
  171. package/lib/Sidecar/RpcClient.js +0 -78
  172. package/lib/Sidecar/RpcClient.js.map +0 -1
  173. package/lib/Sidecar/RpcHandler.d.ts +0 -51
  174. package/lib/Sidecar/RpcHandler.d.ts.map +0 -1
  175. package/lib/Sidecar/RpcHandler.js +0 -87
  176. package/lib/Sidecar/RpcHandler.js.map +0 -1
  177. package/lib/Sidecar/RpcPaths.d.ts +0 -19
  178. package/lib/Sidecar/RpcPaths.d.ts.map +0 -1
  179. package/lib/Sidecar/RpcPaths.js +0 -31
  180. package/lib/Sidecar/RpcPaths.js.map +0 -1
  181. package/lib/Sidecar/RpcServer.d.ts +0 -30
  182. package/lib/Sidecar/RpcServer.d.ts.map +0 -1
  183. package/lib/Sidecar/RpcServer.js +0 -105
  184. package/lib/Sidecar/RpcServer.js.map +0 -1
  185. package/lib/Sidecar/RpcServerBun.d.ts +0 -4
  186. package/lib/Sidecar/RpcServerBun.d.ts.map +0 -1
  187. package/lib/Sidecar/RpcServerBun.js +0 -28
  188. package/lib/Sidecar/RpcServerBun.js.map +0 -1
  189. package/lib/Sidecar/RpcServerNode.d.ts +0 -4
  190. package/lib/Sidecar/RpcServerNode.d.ts.map +0 -1
  191. package/lib/Sidecar/RpcServerNode.js +0 -39
  192. package/lib/Sidecar/RpcServerNode.js.map +0 -1
  193. package/lib/Sidecar/RpcServices.d.ts +0 -6
  194. package/lib/Sidecar/RpcServices.d.ts.map +0 -1
  195. package/lib/Sidecar/RpcServices.js +0 -29
  196. package/lib/Sidecar/RpcServices.js.map +0 -1
  197. package/src/Cloudflare/Local/Sidecar.ts +0 -81
  198. package/src/Cloudflare/Local/SidecarHandlers.ts +0 -491
  199. package/src/Cloudflare/Local/SidecarServer.ts +0 -70
  200. package/src/Sidecar/Lock.ts +0 -66
  201. package/src/Sidecar/RpcClient.ts +0 -142
  202. package/src/Sidecar/RpcHandler.ts +0 -205
  203. package/src/Sidecar/RpcPaths.ts +0 -39
  204. package/src/Sidecar/RpcServer.ts +0 -153
  205. package/src/Sidecar/RpcServerBun.ts +0 -41
  206. package/src/Sidecar/RpcServerNode.ts +0 -51
  207. package/src/Sidecar/RpcServices.ts +0 -48
@@ -1,51 +0,0 @@
1
- import type { RpcCompatible } from "capnweb";
2
- import * as Effect from "effect/Effect";
3
- import * as Schema from "effect/Schema";
4
- type RpcHandler<Args extends Array<any>, Success, Error> = (...args: Args) => Effect.Effect<Success, Error>;
5
- type SerializedArgs<T> = string & {
6
- __serializedArgs: T;
7
- };
8
- type SerializedRpcHandler<Args, Success, Error> = (args: SerializedArgs<Args>) => Promise<SerializedExit<RpcCompatible<Success>, RpcCompatible<Error>>>;
9
- type SerializedCause<Error> = {
10
- _tag: "Fail";
11
- error: Error;
12
- } | {
13
- _tag: "Die";
14
- defect: unknown;
15
- } | {
16
- _tag: "Interrupt";
17
- fiberId: number | undefined;
18
- };
19
- type SerializedExit<Success, Error> = {
20
- _tag: "Success";
21
- value: Success;
22
- } | {
23
- _tag: "Failure";
24
- cause: Array<SerializedCause<Error>>;
25
- };
26
- export type RpcHandlers = Record<string, RpcHandler<any, any, any>>;
27
- export type SerializedRpcHandlers<T extends RpcHandlers> = {
28
- [K in keyof T]: T[K] extends RpcHandler<infer Args, infer Success, infer Error> ? SerializedRpcHandler<Args, Success, Error> : never;
29
- } extends infer O extends object & RpcCompatible<O> ? O : never;
30
- type RpcHandlerEncoder<Success, Error> = {
31
- success: Schema.Encoder<Success>;
32
- error: Schema.Encoder<Error>;
33
- };
34
- export type RpcHandlerEncoders<T extends RpcHandlers> = {
35
- [K in keyof T]: T[K] extends RpcHandler<any, infer Success, infer Error> ? RpcHandlerEncoder<Success, Error> : never;
36
- };
37
- type RpcHandlerDecoder<Success, Error> = {
38
- success: Schema.Decoder<Success>;
39
- error: Schema.Decoder<Error>;
40
- };
41
- export type RpcHandlerDecoders<T extends RpcHandlers> = {
42
- [K in keyof T]: T[K] extends RpcHandler<any, infer Success, infer Error> ? RpcHandlerDecoder<Success, Error> : never;
43
- };
44
- export declare const serializeRpcHandlers: <T extends RpcHandlers>(handlers: T, schema: RpcHandlerEncoders<T>) => SerializedRpcHandlers<T>;
45
- export declare const deserializeRpcHandlers: <T extends RpcHandlers>(handlers: SerializedRpcHandlers<T>, schema: RpcHandlerDecoders<T>) => T;
46
- export declare const defineSchema: <T extends RpcHandlers>(schema: { [K in keyof T]: T[K] extends RpcHandler<any, infer Success, infer Error> ? {
47
- success: Schema.Codec<Success, any>;
48
- error: Schema.Codec<Error, any>;
49
- } : never; }) => RpcHandlerEncoders<T> & RpcHandlerDecoders<T>;
50
- export {};
51
- //# sourceMappingURL=RpcHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RpcHandler.d.ts","sourceRoot":"","sources":["../../src/Sidecar/RpcHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,KAAK,UAAU,CAAC,IAAI,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK,IAAI,CACzD,GAAG,IAAI,EAAE,IAAI,KACV,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAEnC,KAAK,cAAc,CAAC,CAAC,IAAI,MAAM,GAAG;IAAE,gBAAgB,EAAE,CAAC,CAAA;CAAE,CAAC;AAE1D,KAAK,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAChD,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,KACvB,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE3E,KAAK,eAAe,CAAC,KAAK,IACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEvD,KAAK,cAAc,CAAC,OAAO,EAAE,KAAK,IAC9B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACnC;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;CACtC,CAAC;AAEN,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEpE,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,WAAW,IAAI;KACxD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CACrC,MAAM,IAAI,EACV,MAAM,OAAO,EACb,MAAM,KAAK,CACZ,GACG,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,GAC1C,KAAK;CACV,SAAS,MAAM,CAAC,SAAS,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAC/C,CAAC,GACD,KAAK,CAAC;AAEV,KAAK,iBAAiB,CAAC,OAAO,EAAE,KAAK,IAAI;IACvC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,WAAW,IAAI;KACrD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,EAAE,MAAM,OAAO,EAAE,MAAM,KAAK,CAAC,GACpE,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,GACjC,KAAK;CACV,CAAC;AAEF,KAAK,iBAAiB,CAAC,OAAO,EAAE,KAAK,IAAI;IACvC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,WAAW,IAAI;KACrD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,EAAE,MAAM,OAAO,EAAE,MAAM,KAAK,CAAC,GACpE,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,GACjC,KAAK;CACV,CAAC;AAwDF,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,WAAW,EACxD,UAAU,CAAC,EACX,QAAQ,kBAAkB,CAAC,CAAC,CAAC,KAC5B,qBAAqB,CAAC,CAAC,CAMK,CAAC;AA4DhC,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,WAAW,EAC1D,UAAU,qBAAqB,CAAC,CAAC,CAAC,EAClC,QAAQ,kBAAkB,CAAC,CAAC,CAAC,KAC5B,CAMK,CAAC;AAET,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,WAAW,EAAE,QAAQ,GACzD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,GAAG,EAAE,MAAM,OAAO,EAAE,MAAM,KAAK,CAAC,GACpE;IAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;CAAE,GACxE,KAAK,GACV,KAAe,kBAAkB,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC"}
@@ -1,87 +0,0 @@
1
- import * as Cause from "effect/Cause";
2
- import * as Effect from "effect/Effect";
3
- import * as Exit from "effect/Exit";
4
- import { flow } from "effect/Function";
5
- import * as Redacted from "effect/Redacted";
6
- import * as Schema from "effect/Schema";
7
- const serializeRpcHandler = (handler, schema) => flow((args) => Effect.sync(() => JSON.parse(args, (_, value) => {
8
- if (typeof value === "object" &&
9
- value !== null &&
10
- "_tag" in value &&
11
- value._tag === "Redacted") {
12
- return Redacted.make(value.value);
13
- }
14
- return value;
15
- })), Effect.flatMap((args) => handler(...args)), Effect.exit, Effect.map((exit) => {
16
- if (exit._tag === "Success") {
17
- return {
18
- _tag: "Success",
19
- value: Schema.encodeSync(schema.success)(exit.value),
20
- };
21
- }
22
- return {
23
- _tag: "Failure",
24
- cause: exit.cause.reasons.map((reason) => {
25
- switch (reason._tag) {
26
- case "Fail":
27
- return {
28
- _tag: "Fail",
29
- error: Schema.encodeSync(schema.error)(reason.error),
30
- };
31
- case "Die":
32
- return {
33
- _tag: "Die",
34
- defect: Schema.encodeSync(Schema.DefectWithStack)(reason.defect),
35
- };
36
- case "Interrupt":
37
- return { _tag: "Interrupt", fiberId: reason.fiberId };
38
- }
39
- }),
40
- };
41
- }), Effect.runPromise);
42
- export const serializeRpcHandlers = (handlers, schema) => Object.fromEntries(Object.entries(schema).map(([key, schema]) => [
43
- key,
44
- serializeRpcHandler(handlers[key], schema),
45
- ]));
46
- const encodeRedacted = (value) => {
47
- if (Redacted.isRedacted(value)) {
48
- return { _tag: "Redacted", value: Redacted.value(value) };
49
- }
50
- if (Array.isArray(value)) {
51
- return value.map(encodeRedacted);
52
- }
53
- if (value && typeof value === "object" && !("toJSON" in value)) {
54
- return Object.fromEntries(Object.entries(value).map(([key, child]) => [key, encodeRedacted(child)]));
55
- }
56
- return value;
57
- };
58
- const deserializeRpcHandler = (handler, schema) => (...args) => Effect.promise(async () => {
59
- try {
60
- const serializedArgs = JSON.stringify(encodeRedacted(args));
61
- return await handler(serializedArgs);
62
- }
63
- catch (error) {
64
- console.error("Error calling handler", error);
65
- throw error;
66
- }
67
- }).pipe(Effect.map((exit) => {
68
- if (exit._tag === "Success") {
69
- return Exit.succeed(Schema.decodeSync(schema.success)(exit.value));
70
- }
71
- return Exit.failCause(Cause.fromReasons(exit.cause.map((reason) => {
72
- switch (reason._tag) {
73
- case "Fail":
74
- return Cause.makeFailReason(Schema.decodeSync(schema.error)(reason.error));
75
- case "Die":
76
- return Cause.makeDieReason(Schema.decodeSync(Schema.DefectWithStack)(reason.defect));
77
- case "Interrupt":
78
- return Cause.makeInterruptReason(reason.fiberId);
79
- }
80
- })));
81
- }), Effect.flatMap((exit) => exit));
82
- export const deserializeRpcHandlers = (handlers, schema) => Object.fromEntries(Object.entries(schema).map(([key, schema]) => [
83
- key,
84
- deserializeRpcHandler(handlers[key], schema),
85
- ]));
86
- export const defineSchema = (schema) => schema;
87
- //# sourceMappingURL=RpcHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RpcHandler.js","sourceRoot":"","sources":["../../src/Sidecar/RpcHandler.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import * as Context from "effect/Context";
2
- import * as FileSystem from "effect/FileSystem";
3
- import * as Layer from "effect/Layer";
4
- import * as Path from "effect/Path";
5
- import * as AlchemyContext from "../AlchemyContext.ts";
6
- declare const RpcPaths_base: Context.ServiceClass<RpcPaths, "RpcPaths", {
7
- readonly lock: string;
8
- readonly url: string;
9
- }>;
10
- export declare class RpcPaths extends RpcPaths_base {
11
- }
12
- export declare const layer: (main: string) => Layer.Layer<RpcPaths, import("effect/PlatformError").PlatformError, FileSystem.FileSystem | Path.Path | AlchemyContext.AlchemyContext>;
13
- /**
14
- * The sidecar main file is provided using `import.meta.resolve("./SidecarServer.ts", import.meta.url)`.
15
- * This changes the extension to .js if you're currently running in js.
16
- */
17
- export declare const sanitizeSidecarMain: (url: string) => string;
18
- export {};
19
- //# sourceMappingURL=RpcPaths.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RpcPaths.d.ts","sourceRoot":"","sources":["../../src/Sidecar/RpcPaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;;mBAIpC,MAAM;kBAAgB,MAAM;;AAF/C,qBAAa,QAAS,SAAQ,aAGf;CAAG;AAElB,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,2IAe/B,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,WAG9C,CAAC"}
@@ -1,31 +0,0 @@
1
- import * as Context from "effect/Context";
2
- import * as Effect from "effect/Effect";
3
- import * as FileSystem from "effect/FileSystem";
4
- import * as Hash from "effect/Hash";
5
- import * as Layer from "effect/Layer";
6
- import * as Path from "effect/Path";
7
- import { fileURLToPath } from "node:url";
8
- import * as AlchemyContext from "../AlchemyContext.js";
9
- export class RpcPaths extends Context.Service()("RpcPaths") {
10
- }
11
- export const layer = (main) => Layer.effect(RpcPaths, Effect.gen(function* () {
12
- const { dotAlchemy } = yield* AlchemyContext.AlchemyContext;
13
- const path = yield* Path.Path;
14
- const fs = yield* FileSystem.FileSystem;
15
- const id = Math.abs(Hash.string(sanitizeSidecarMain(main)));
16
- const dir = path.resolve(dotAlchemy, "local");
17
- yield* fs.makeDirectory(dir, { recursive: true });
18
- return RpcPaths.of({
19
- lock: path.join(dir, `${id}.lock`),
20
- url: path.join(dir, `${id}.url`),
21
- });
22
- }));
23
- /**
24
- * The sidecar main file is provided using `import.meta.resolve("./SidecarServer.ts", import.meta.url)`.
25
- * This changes the extension to .js if you're currently running in js.
26
- */
27
- export const sanitizeSidecarMain = (url) => {
28
- const main = fileURLToPath(url);
29
- return import.meta.url.endsWith(".js") ? main.replace(".ts", ".js") : main;
30
- };
31
- //# sourceMappingURL=RpcPaths.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RpcPaths.js","sourceRoot":"","sources":["../../src/Sidecar/RpcPaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAO,QAAS,SAAQ,OAAO,CAAC,OAAO,EAG1C,CAAC,UAAU,CAAC;CAAG;AAElB,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CACpC,KAAK,CAAC,MAAM,CACV,QAAQ,EACR,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,OAAO,QAAQ,CAAC,EAAE,CAAC;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC;QAClC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC;KACjC,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC;AAEJ;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAE,EAAE;IACjD,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7E,CAAC,CAAC"}
@@ -1,30 +0,0 @@
1
- import { RpcSession, type RpcCompatible } from "capnweb";
2
- import * as Context from "effect/Context";
3
- import * as Effect from "effect/Effect";
4
- import * as FileSystem from "effect/FileSystem";
5
- import type * as Scope from "effect/Scope";
6
- import * as Lock from "./Lock.ts";
7
- import { type RpcHandlerEncoders, type RpcHandlers } from "./RpcHandler.ts";
8
- import * as RpcPaths from "./RpcPaths.ts";
9
- declare const RpcServer_base: Context.ServiceClass<RpcServer, "RpcServer", {
10
- make: <T extends RpcCompatible<T>>(main: () => T) => Effect.Effect<{
11
- readonly url: string;
12
- }, never, Scope.Scope>;
13
- }>;
14
- export declare class RpcServer extends RpcServer_base {
15
- }
16
- export declare const makeRpcServer: <T extends RpcHandlers, E, R>(handlersEffect: Effect.Effect<T, E, R>, schema: RpcHandlerEncoders<T>) => Effect.Effect<void, Lock.LockError, Scope.Scope | FileSystem.FileSystem | RpcPaths.RpcPaths | Lock.Lock | RpcServer | R>;
17
- interface ServerWebSocketLike {
18
- send: (message: string) => any | Promise<any>;
19
- close: (code?: number, reason?: string) => void;
20
- }
21
- export type WebSocketRpcSession<T extends RpcCompatible<T>> = ReturnType<typeof makeWebSocketRpcSession<T>>;
22
- export declare function makeWebSocketRpcSession<T extends RpcCompatible<T>>(ws: ServerWebSocketLike, main: () => T): {
23
- session: RpcSession<undefined>;
24
- dispatch: {
25
- message: (data: string | Buffer<ArrayBuffer>) => void;
26
- close: (code: number, reason: string) => void;
27
- };
28
- };
29
- export {};
30
- //# sourceMappingURL=RpcServer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RpcServer.d.ts","sourceRoot":"","sources":["../../src/Sidecar/RpcServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,aAAa,EAAqB,MAAM,SAAS,CAAC;AAC5E,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;;UAKhC,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,EAC/B,IAAI,EAAE,MAAM,CAAC,KACV,MAAM,CAAC,MAAM,CAChB;QACE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;KACtB,EACD,KAAK,EACL,KAAK,CAAC,KAAK,CACZ;;AAXL,qBAAa,SAAU,SAAQ,cAaf;CAAG;AAEnB,eAAO,MAAM,aAAa,GAAwB,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC,oMAgC3E,CAAC;AAmBH,UAAU,mBAAmB;IAC3B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,IAAI,UAAU,CACtE,OAAO,uBAAuB,CAAC,CAAC,CAAC,CAClC,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,EAChE,EAAE,EAAE,mBAAmB,EACvB,IAAI,EAAE,MAAM,CAAC;;;wBAmCO,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;sBAa9B,MAAM,UAAU,MAAM;;EA3CzC"}
@@ -1,105 +0,0 @@
1
- import { RpcSession } from "capnweb";
2
- import * as Context from "effect/Context";
3
- import * as Effect from "effect/Effect";
4
- import * as Fiber from "effect/Fiber";
5
- import * as FileSystem from "effect/FileSystem";
6
- import * as Schedule from "effect/Schedule";
7
- import * as Lock from "./Lock.js";
8
- import { serializeRpcHandlers, } from "./RpcHandler.js";
9
- import * as RpcPaths from "./RpcPaths.js";
10
- export class RpcServer extends Context.Service()("RpcServer") {
11
- }
12
- export const makeRpcServer = Effect.fn(function* (handlersEffect, schema) {
13
- const lock = yield* Lock.Lock.use((lock) => lock.acquire);
14
- const fs = yield* FileSystem.FileSystem;
15
- const paths = yield* RpcPaths.RpcPaths;
16
- const server = yield* Effect.gen(function* () {
17
- const heartbeat = yield* Heartbeat;
18
- const handlers = yield* handlersEffect;
19
- const server = yield* RpcServer.use((server) => server.make(() => Object.assign(serializeRpcHandlers(handlers, schema), {
20
- heartbeat: () => Effect.runPromise(heartbeat.touch),
21
- shutdown: () => Effect.runPromise(heartbeat.shutdown),
22
- })));
23
- yield* fs.writeFileString(paths.url, server.url);
24
- yield* Effect.addFinalizer(() => fs.readFileString(paths.url).pipe(Effect.flatMap((text) => text === server.url ? fs.remove(paths.url) : Effect.void), Effect.ignore));
25
- yield* heartbeat.await;
26
- }).pipe(Effect.forkScoped);
27
- yield* Fiber.joinAll([lock, server]);
28
- });
29
- const Heartbeat = Effect.gen(function* () {
30
- let last = Date.now();
31
- const fiber = yield* Effect.suspend(() => {
32
- if (Date.now() - last > 10_000) {
33
- return Effect.fail({ _tag: "Timeout" });
34
- }
35
- return Effect.void;
36
- }).pipe(Effect.repeat(Schedule.spaced("4 seconds")), Effect.forkScoped);
37
- return {
38
- touch: Effect.sync(() => {
39
- last = Date.now();
40
- }),
41
- shutdown: Fiber.interrupt(fiber),
42
- await: Fiber.join(fiber),
43
- };
44
- });
45
- export function makeWebSocketRpcSession(ws, main) {
46
- const { transport, dispatch } = makeWebSocketRpcTransport(ws);
47
- const session = new RpcSession(transport, main());
48
- return { session, dispatch };
49
- }
50
- function makeWebSocketRpcTransport(ws) {
51
- let receiveQueue = [];
52
- let receiveResolver;
53
- let receiveRejecter;
54
- let error;
55
- return {
56
- transport: {
57
- send: async (message) => await ws.send(message),
58
- receive: async () => {
59
- const next = receiveQueue.shift();
60
- if (next) {
61
- return next;
62
- }
63
- else if (error) {
64
- throw error;
65
- }
66
- return new Promise((resolve, reject) => {
67
- receiveResolver = resolve;
68
- receiveRejecter = reject;
69
- });
70
- },
71
- abort: (reason) => {
72
- const message = reason instanceof Error ? reason.message : String(reason);
73
- ws.close(3000, message);
74
- error ??= reason;
75
- },
76
- },
77
- dispatch: {
78
- message: (data) => {
79
- if (error) {
80
- return;
81
- }
82
- data = typeof data === "string" ? data : data.toString("utf-8");
83
- if (receiveResolver) {
84
- receiveResolver(data);
85
- receiveResolver = undefined;
86
- receiveRejecter = undefined;
87
- }
88
- else {
89
- receiveQueue.push(data);
90
- }
91
- },
92
- close: (code, reason) => {
93
- if (!error) {
94
- error = new Error(`WebSocket closed with code ${code}: ${reason}`);
95
- if (receiveRejecter) {
96
- receiveRejecter(error);
97
- receiveRejecter = undefined;
98
- receiveResolver = undefined;
99
- }
100
- }
101
- },
102
- },
103
- };
104
- }
105
- //# sourceMappingURL=RpcServer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RpcServer.js","sourceRoot":"","sources":["../../src/Sidecar/RpcServer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import * as Layer from "effect/Layer";
2
- import { RpcServer } from "./RpcServer.ts";
3
- export declare const RpcServerBun: Layer.Layer<RpcServer, never, never>;
4
- //# sourceMappingURL=RpcServerBun.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RpcServerBun.d.ts","sourceRoot":"","sources":["../../src/Sidecar/RpcServerBun.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAA2B,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEpE,eAAO,MAAM,YAAY,sCAkCxB,CAAC"}
@@ -1,28 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Layer from "effect/Layer";
3
- import { makeWebSocketRpcSession, RpcServer } from "./RpcServer.js";
4
- export const RpcServerBun = Layer.succeed(RpcServer, RpcServer.of({
5
- make: (main) => Effect.acquireRelease(Effect.sync(() => Bun.serve({
6
- port: 0,
7
- fetch: (request, server) => {
8
- if (server.upgrade(request, { data: undefined })) {
9
- return;
10
- }
11
- return new Response("Upgrade failed", { status: 400 });
12
- },
13
- websocket: {
14
- open: (ws) => {
15
- ws.data = makeWebSocketRpcSession(ws, main);
16
- },
17
- message: (ws, message) => {
18
- ws.data.dispatch.message(message);
19
- },
20
- close: (ws, code, reason) => {
21
- ws.data.dispatch.close(code, reason);
22
- },
23
- },
24
- })), (server) => Effect.sync(() => server.stop(true))).pipe(Effect.map((server) => ({
25
- url: `ws://${server.hostname}:${server.port}`,
26
- }))),
27
- }));
28
- //# sourceMappingURL=RpcServerBun.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RpcServerBun.js","sourceRoot":"","sources":["../../src/Sidecar/RpcServerBun.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEpE,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CACvC,SAAS,EACT,SAAS,CAAC,EAAE,CAAC;IACX,IAAI,EAAE,CAA6B,IAAa,EAAE,EAAE,CAClD,MAAM,CAAC,cAAc,CACnB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CACf,GAAG,CAAC,KAAK,CAAyB;QAChC,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzB,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAU,EAAE,CAAC,EAAE,CAAC;gBAClD,OAAO;YACT,CAAC;YACD,OAAO,IAAI,QAAQ,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,SAAS,EAAE;YACT,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;gBACX,EAAE,CAAC,IAAI,GAAG,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE;gBACvB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;YACD,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;gBAC1B,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvC,CAAC;SACF;KACF,CAAC,CACH,EACD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACjD,CAAC,IAAI,CACJ,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACtB,GAAG,EAAE,QAAQ,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE;KAC9C,CAAC,CAAC,CACJ;CACJ,CAAC,CACH,CAAC"}
@@ -1,4 +0,0 @@
1
- import * as Layer from "effect/Layer";
2
- import { RpcServer } from "./RpcServer.ts";
3
- export declare const RpcServerNode: Layer.Layer<RpcServer, never, never>;
4
- //# sourceMappingURL=RpcServerNode.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RpcServerNode.d.ts","sourceRoot":"","sources":["../../src/Sidecar/RpcServerNode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EAA2B,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEpE,eAAO,MAAM,aAAa,sCA0BzB,CAAC"}
@@ -1,39 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import * as Layer from "effect/Layer";
3
- import { WebSocketServer } from "ws";
4
- import { makeWebSocketRpcSession, RpcServer } from "./RpcServer.js";
5
- export const RpcServerNode = Layer.succeed(RpcServer, RpcServer.of({
6
- make: Effect.fnUntraced(function* (main) {
7
- const server = new WebSocketServer({ host: "127.0.0.1", port: 0 });
8
- const url = yield* Effect.callback((resume) => {
9
- server.on("connection", (ws) => {
10
- const session = makeWebSocketRpcSession(ws, main);
11
- ws.on("message", (data) => {
12
- session.dispatch.message(data.toString());
13
- });
14
- ws.on("close", (code, reason) => {
15
- session.dispatch.close(code, reason.toString());
16
- });
17
- });
18
- server.on("error", (error) => {
19
- resume(Effect.die(error));
20
- });
21
- server.on("listening", () => {
22
- resume(getServerAddress(server));
23
- });
24
- });
25
- yield* Effect.addFinalizer(() => Effect.sync(() => server.close()));
26
- return { url };
27
- }),
28
- }));
29
- function getServerAddress(server) {
30
- const address = server.address();
31
- if (typeof address === "object" &&
32
- address !== null &&
33
- "address" in address &&
34
- "port" in address) {
35
- return Effect.succeed(`ws://${address.address === "::" ? "localhost" : address.address}:${address.port}`);
36
- }
37
- return Effect.die(new Error(`Server address is not an object with address and port properties: ${JSON.stringify(address)}`));
38
- }
39
- //# sourceMappingURL=RpcServerNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RpcServerNode.js","sourceRoot":"","sources":["../../src/Sidecar/RpcServerNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,eAAe,EAAe,MAAM,IAAI,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEpE,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CACxC,SAAS,EACT,SAAS,CAAC,EAAE,CAAC;IACX,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI;QACrC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAS,CAAC,MAAM,EAAE,EAAE;YACpD,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE;gBAC7B,MAAM,OAAO,GAAG,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAClD,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;oBACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAC;gBACH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;oBAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAClD,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;gBAC1B,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC,CAAC;CACH,CAAC,CACH,CAAC;AAEF,SAAS,gBAAgB,CAAC,MAAc;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,IACE,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,SAAS,IAAI,OAAO;QACpB,MAAM,IAAI,OAAO,EACjB,CAAC;QACD,OAAO,MAAM,CAAC,OAAO,CACnB,QAAQ,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CACnF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CACf,IAAI,KAAK,CACP,qEAAqE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAC/F,CACF,CAAC;AACJ,CAAC"}
@@ -1,6 +0,0 @@
1
- import * as Layer from "effect/Layer";
2
- import * as AlchemyContext from "../AlchemyContext.ts";
3
- import * as Lock from "./Lock.ts";
4
- import * as RpcPaths from "./RpcPaths.ts";
5
- export declare const layer: (main: string) => Layer.Layer<AlchemyContext.AlchemyContext | RpcPaths.RpcPaths | Lock.Lock | import("./RpcServer.ts").RpcServer, import("effect/PlatformError").PlatformError, import("effect/FileSystem").FileSystem | import("effect/Path").Path>;
6
- //# sourceMappingURL=RpcServices.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RpcServices.d.ts","sourceRoot":"","sources":["../../src/Sidecar/RpcServices.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAIvD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAE1C,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,uOAmB/B,CAAC"}
@@ -1,29 +0,0 @@
1
- import * as ConfigProvider from "effect/ConfigProvider";
2
- import * as Effect from "effect/Effect";
3
- import * as Layer from "effect/Layer";
4
- import * as Option from "effect/Option";
5
- import * as AlchemyContext from "../AlchemyContext.js";
6
- import { withProfileOverride } from "../Auth/Profile.js";
7
- import { loadConfigProvider } from "../Util/ConfigProvider.js";
8
- import * as Lock from "./Lock.js";
9
- import * as RpcPaths from "./RpcPaths.js";
10
- export const layer = (main) => Layer.provideMerge(Lock.LockLive, Layer.provideMerge(RpcPaths.layer(main), Layer.mergeAll(AlchemyContext.AlchemyContextLive, makeConfigProvider(), Layer.unwrap(Effect.promise(() => {
11
- if ("Bun" in globalThis) {
12
- return import("./RpcServerBun.js").then((m) => m.RpcServerBun);
13
- }
14
- else {
15
- return import("./RpcServerNode.js").then((m) => m.RpcServerNode);
16
- }
17
- })))));
18
- const makeConfigProvider = () => {
19
- let options;
20
- try {
21
- options = JSON.parse(process.env.ALCHEMY_EXEC_OPTIONS);
22
- }
23
- catch {
24
- options = {};
25
- }
26
- const envFile = Option.fromUndefinedOr(options.envFile);
27
- return ConfigProvider.layer(loadConfigProvider(envFile).pipe(Effect.map((base) => withProfileOverride(base, options.profile))));
28
- };
29
- //# sourceMappingURL=RpcServices.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RpcServices.js","sourceRoot":"","sources":["../../src/Sidecar/RpcServices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAE1C,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CACpC,KAAK,CAAC,YAAY,CAChB,IAAI,CAAC,QAAQ,EACb,KAAK,CAAC,YAAY,CAChB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EACpB,KAAK,CAAC,QAAQ,CACZ,cAAc,CAAC,kBAAkB,EACjC,kBAAkB,EAAE,EACpB,KAAK,CAAC,MAAM,CACV,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;IAClB,IAAI,KAAK,IAAI,UAAU,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,OAAO,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACnE,CAAC;AACH,CAAC,CAAC,CACH,CACF,CACF,CACF,CAAC;AAEJ,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC9B,IAAI,OAAyC,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAClB,OAAO,CAAC,GAAG,CAAC,oBAAqB,CACP,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO,cAAc,CAAC,KAAK,CACzB,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CACjE,CACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,81 +0,0 @@
1
- import { RuntimeError } from "@distilled.cloud/cloudflare-runtime/RuntimeError";
2
- import * as Effect from "effect/Effect";
3
- import * as Schema from "effect/Schema";
4
- import { BundleError } from "../../Bundle/Bundle.ts";
5
- import type { ResourceBinding } from "../../Resource.ts";
6
- import * as RpcClient from "../../Sidecar/RpcClient.ts";
7
- import { defineSchema } from "../../Sidecar/RpcHandler.ts";
8
- import type { Worker, WorkerProps } from "../Workers/Worker.ts";
9
-
10
- export interface ReconcileOptions {
11
- id: string;
12
- props: WorkerProps;
13
- bindings: ResourceBinding<Worker["Binding"]>[];
14
- stack: { name: string; stage: string };
15
- instanceId: string;
16
- }
17
-
18
- export class ValidationError extends Schema.TaggedErrorClass<ValidationError>()(
19
- "ValidationError",
20
- {
21
- message: Schema.String,
22
- hint: Schema.optional(Schema.String),
23
- value: Schema.Unknown,
24
- },
25
- ) {}
26
-
27
- export const ServeResult = Schema.Struct({
28
- workerId: Schema.String,
29
- workerName: Schema.String,
30
- logpush: Schema.UndefinedOr(Schema.Boolean),
31
- url: Schema.String,
32
- tags: Schema.Array(Schema.String).pipe(Schema.mutable),
33
- durableObjectNamespaces: Schema.Record(Schema.String, Schema.String),
34
- domains: Schema.Array(
35
- Schema.Struct({
36
- hostname: Schema.String,
37
- id: Schema.String,
38
- zoneId: Schema.String,
39
- }),
40
- ).pipe(Schema.mutable),
41
- crons: Schema.Array(Schema.String).pipe(Schema.mutable),
42
- accountId: Schema.String,
43
- });
44
- export type ServeResult = typeof ServeResult.Type;
45
-
46
- export const ServeError = Schema.Union([
47
- RuntimeError,
48
- BundleError,
49
- ValidationError,
50
- ]);
51
- export type ServeError = typeof ServeError.Type;
52
-
53
- export const DiffResult = Schema.Struct({
54
- action: Schema.Literals(["update", "noop"]),
55
- });
56
- export type DiffResult = typeof DiffResult.Type;
57
-
58
- export const SidecarSchema = defineSchema<Sidecar["Service"]>({
59
- diff: { success: DiffResult, error: Schema.Never },
60
- reconcile: {
61
- success: ServeResult,
62
- error: ServeError,
63
- },
64
- delete: { success: Schema.Void, error: Schema.Never },
65
- });
66
-
67
- export class Sidecar extends RpcClient.RpcClientService<
68
- Sidecar,
69
- {
70
- readonly diff: (options: ReconcileOptions) => Effect.Effect<DiffResult>;
71
- readonly reconcile: (
72
- options: ReconcileOptions,
73
- ) => Effect.Effect<ServeResult, ServeError>;
74
- readonly delete: (id: string) => Effect.Effect<void>;
75
- }
76
- >()("Sidecar") {}
77
-
78
- export const SidecarLive = RpcClient.layer(Sidecar, {
79
- main: import.meta.resolve("./SidecarServer.ts", import.meta.url),
80
- schema: SidecarSchema,
81
- });