@livestore/utils 0.4.0 → 0.5.0-dev.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.
Files changed (247) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/NoopTracer.d.ts +7 -8
  3. package/dist/NoopTracer.d.ts.map +1 -1
  4. package/dist/NoopTracer.js +3 -18
  5. package/dist/NoopTracer.js.map +1 -1
  6. package/dist/NoopTracer.test.d.ts +2 -0
  7. package/dist/NoopTracer.test.d.ts.map +1 -0
  8. package/dist/NoopTracer.test.js +17 -0
  9. package/dist/NoopTracer.test.js.map +1 -0
  10. package/dist/browser/Opfs/Opfs.d.ts +179 -29
  11. package/dist/browser/Opfs/Opfs.d.ts.map +1 -1
  12. package/dist/browser/Opfs/Opfs.js +132 -307
  13. package/dist/browser/Opfs/Opfs.js.map +1 -1
  14. package/dist/browser/Opfs/debug-utils.d.ts.map +1 -1
  15. package/dist/browser/Opfs/debug-utils.js +5 -4
  16. package/dist/browser/Opfs/debug-utils.js.map +1 -1
  17. package/dist/browser/Opfs/utils.d.ts +8 -8
  18. package/dist/browser/Opfs/utils.d.ts.map +1 -1
  19. package/dist/browser/Opfs/utils.js +35 -26
  20. package/dist/browser/Opfs/utils.js.map +1 -1
  21. package/dist/browser/QuotaExceededError.d.ts +10 -9
  22. package/dist/browser/QuotaExceededError.d.ts.map +1 -1
  23. package/dist/browser/WebChannelBrowser.d.ts.map +1 -1
  24. package/dist/browser/WebChannelBrowser.js +21 -10
  25. package/dist/browser/WebChannelBrowser.js.map +1 -1
  26. package/dist/browser/WebError.d.ts +54 -86
  27. package/dist/browser/WebError.d.ts.map +1 -1
  28. package/dist/browser/WebError.js +91 -84
  29. package/dist/browser/WebError.js.map +1 -1
  30. package/dist/browser/WebError.test.js +6 -6
  31. package/dist/browser/WebError.test.js.map +1 -1
  32. package/dist/browser/WebLock.d.ts.map +1 -1
  33. package/dist/browser/WebLock.js +13 -13
  34. package/dist/browser/WebLock.js.map +1 -1
  35. package/dist/effect/Debug.d.ts +4 -7
  36. package/dist/effect/Debug.d.ts.map +1 -1
  37. package/dist/effect/Debug.js +32 -36
  38. package/dist/effect/Debug.js.map +1 -1
  39. package/dist/effect/Effect.d.ts +31 -22
  40. package/dist/effect/Effect.d.ts.map +1 -1
  41. package/dist/effect/Effect.js +51 -47
  42. package/dist/effect/Effect.js.map +1 -1
  43. package/dist/effect/Effect.test.d.ts +2 -0
  44. package/dist/effect/Effect.test.d.ts.map +1 -0
  45. package/dist/effect/Effect.test.js +72 -0
  46. package/dist/effect/Effect.test.js.map +1 -0
  47. package/dist/effect/Error.d.ts +4 -6
  48. package/dist/effect/Error.d.ts.map +1 -1
  49. package/dist/effect/Logger.d.ts +0 -6
  50. package/dist/effect/Logger.d.ts.map +1 -1
  51. package/dist/effect/Logger.js +0 -32
  52. package/dist/effect/Logger.js.map +1 -1
  53. package/dist/effect/OtelTracer.d.ts +1 -1
  54. package/dist/effect/OtelTracer.d.ts.map +1 -1
  55. package/dist/effect/OtelTracer.js +2 -3
  56. package/dist/effect/OtelTracer.js.map +1 -1
  57. package/dist/effect/RpcClient.d.ts +7 -7
  58. package/dist/effect/RpcClient.d.ts.map +1 -1
  59. package/dist/effect/RpcClient.js +72 -52
  60. package/dist/effect/RpcClient.js.map +1 -1
  61. package/dist/effect/Schedule.d.ts +1 -1
  62. package/dist/effect/Schedule.d.ts.map +1 -1
  63. package/dist/effect/Schedule.js +2 -2
  64. package/dist/effect/Schedule.js.map +1 -1
  65. package/dist/effect/Schema/debug-diff.d.ts +1 -1
  66. package/dist/effect/Schema/debug-diff.d.ts.map +1 -1
  67. package/dist/effect/Schema/debug-diff.js +5 -7
  68. package/dist/effect/Schema/debug-diff.js.map +1 -1
  69. package/dist/effect/Schema/debug-diff.test.js +7 -4
  70. package/dist/effect/Schema/debug-diff.test.js.map +1 -1
  71. package/dist/effect/Schema/index.d.ts +28 -20
  72. package/dist/effect/Schema/index.d.ts.map +1 -1
  73. package/dist/effect/Schema/index.js +55 -28
  74. package/dist/effect/Schema/index.js.map +1 -1
  75. package/dist/effect/Stream.d.ts +13 -5
  76. package/dist/effect/Stream.d.ts.map +1 -1
  77. package/dist/effect/Stream.js +19 -12
  78. package/dist/effect/Stream.js.map +1 -1
  79. package/dist/effect/Stream.test.js +9 -9
  80. package/dist/effect/Stream.test.js.map +1 -1
  81. package/dist/effect/Subscribable.d.ts +9 -3
  82. package/dist/effect/Subscribable.d.ts.map +1 -1
  83. package/dist/effect/Subscribable.js +20 -35
  84. package/dist/effect/Subscribable.js.map +1 -1
  85. package/dist/effect/SubscriptionRef.d.ts +5 -6
  86. package/dist/effect/SubscriptionRef.d.ts.map +1 -1
  87. package/dist/effect/SubscriptionRef.js +2 -3
  88. package/dist/effect/SubscriptionRef.js.map +1 -1
  89. package/dist/effect/TaskTracing.d.ts +1 -1
  90. package/dist/effect/TaskTracing.d.ts.map +1 -1
  91. package/dist/effect/TaskTracing.js +12 -16
  92. package/dist/effect/TaskTracing.js.map +1 -1
  93. package/dist/effect/WebChannel/WebChannel.d.ts +7 -7
  94. package/dist/effect/WebChannel/WebChannel.d.ts.map +1 -1
  95. package/dist/effect/WebChannel/WebChannel.js +64 -43
  96. package/dist/effect/WebChannel/WebChannel.js.map +1 -1
  97. package/dist/effect/WebChannel/WebChannel.test.js +15 -15
  98. package/dist/effect/WebChannel/WebChannel.test.js.map +1 -1
  99. package/dist/effect/WebChannel/broadcastChannelWithAck.d.ts.map +1 -1
  100. package/dist/effect/WebChannel/broadcastChannelWithAck.js +16 -9
  101. package/dist/effect/WebChannel/broadcastChannelWithAck.js.map +1 -1
  102. package/dist/effect/WebChannel/common.d.ts +16 -17
  103. package/dist/effect/WebChannel/common.d.ts.map +1 -1
  104. package/dist/effect/WebChannel/common.js +6 -6
  105. package/dist/effect/WebChannel/common.js.map +1 -1
  106. package/dist/effect/WebSocket.d.ts +4 -6
  107. package/dist/effect/WebSocket.d.ts.map +1 -1
  108. package/dist/effect/WebSocket.js +4 -4
  109. package/dist/effect/WebSocket.js.map +1 -1
  110. package/dist/effect/WebSocket.test.js +2 -2
  111. package/dist/effect/WebSocket.test.js.map +1 -1
  112. package/dist/effect/mod.browser-build.test.d.ts +2 -0
  113. package/dist/effect/mod.browser-build.test.d.ts.map +1 -0
  114. package/dist/effect/mod.browser-build.test.js +18 -0
  115. package/dist/effect/mod.browser-build.test.js.map +1 -0
  116. package/dist/effect/mod.d.ts +13 -15
  117. package/dist/effect/mod.d.ts.map +1 -1
  118. package/dist/effect/mod.js +13 -18
  119. package/dist/effect/mod.js.map +1 -1
  120. package/dist/effect/spanEvent.d.ts.map +1 -1
  121. package/dist/effect/spanEvent.js +2 -2
  122. package/dist/effect/spanEvent.js.map +1 -1
  123. package/dist/effect/spanEvent.test.js +10 -13
  124. package/dist/effect/spanEvent.test.js.map +1 -1
  125. package/dist/fast-deep-equal.d.ts.map +1 -1
  126. package/dist/fast-deep-equal.js +1 -2
  127. package/dist/fast-deep-equal.js.map +1 -1
  128. package/dist/misc.js +2 -2
  129. package/dist/misc.js.map +1 -1
  130. package/dist/mod.d.ts +0 -35
  131. package/dist/mod.d.ts.map +1 -1
  132. package/dist/mod.js +0 -8
  133. package/dist/mod.js.map +1 -1
  134. package/dist/node/mod.d.ts +17 -11
  135. package/dist/node/mod.d.ts.map +1 -1
  136. package/dist/node/mod.js +23 -16
  137. package/dist/node/mod.js.map +1 -1
  138. package/dist/object/index.d.ts +0 -9
  139. package/dist/object/index.d.ts.map +1 -1
  140. package/dist/object/index.js +0 -9
  141. package/dist/object/index.js.map +1 -1
  142. package/dist/string.d.ts +0 -2
  143. package/dist/string.d.ts.map +1 -1
  144. package/dist/string.js +0 -2
  145. package/dist/string.js.map +1 -1
  146. package/package.json +18 -36
  147. package/src/NoopTracer.test.ts +20 -0
  148. package/src/NoopTracer.ts +18 -41
  149. package/src/browser/Opfs/Opfs.ts +304 -277
  150. package/src/browser/Opfs/debug-utils.ts +7 -6
  151. package/src/browser/Opfs/utils.ts +36 -26
  152. package/src/browser/QuotaExceededError.ts +13 -10
  153. package/src/browser/WebChannelBrowser.ts +25 -11
  154. package/src/browser/WebError.test.ts +6 -6
  155. package/src/browser/WebError.ts +107 -133
  156. package/src/browser/WebLock.ts +13 -14
  157. package/src/effect/Debug.ts +66 -59
  158. package/src/effect/Effect.test.ts +117 -0
  159. package/src/effect/Effect.ts +84 -71
  160. package/src/effect/Logger.ts +0 -48
  161. package/src/effect/OtelTracer.ts +2 -3
  162. package/src/effect/RpcClient.ts +80 -61
  163. package/src/effect/Schedule.ts +4 -5
  164. package/src/effect/Schema/debug-diff.test.ts +6 -6
  165. package/src/effect/Schema/debug-diff.ts +6 -8
  166. package/src/effect/Schema/index.ts +122 -61
  167. package/src/effect/Stream.test.ts +9 -9
  168. package/src/effect/Stream.ts +23 -16
  169. package/src/effect/Subscribable.ts +31 -42
  170. package/src/effect/SubscriptionRef.ts +8 -12
  171. package/src/effect/TaskTracing.ts +13 -16
  172. package/src/effect/WebChannel/WebChannel.test.ts +23 -23
  173. package/src/effect/WebChannel/WebChannel.ts +87 -55
  174. package/src/effect/WebChannel/broadcastChannelWithAck.ts +21 -11
  175. package/src/effect/WebChannel/common.ts +14 -15
  176. package/src/effect/WebSocket.test.ts +2 -2
  177. package/src/effect/WebSocket.ts +9 -6
  178. package/src/effect/mod.browser-build.test.ts +19 -0
  179. package/src/effect/mod.ts +35 -69
  180. package/src/effect/spanEvent.test.ts +10 -13
  181. package/src/effect/spanEvent.ts +5 -3
  182. package/src/fast-deep-equal.ts +1 -2
  183. package/src/misc.ts +2 -2
  184. package/src/mod.ts +0 -36
  185. package/src/node/mod.ts +26 -20
  186. package/src/object/index.ts +0 -24
  187. package/src/string.ts +0 -3
  188. package/dist/effect/BucketQueue.d.ts +0 -20
  189. package/dist/effect/BucketQueue.d.ts.map +0 -1
  190. package/dist/effect/BucketQueue.js +0 -34
  191. package/dist/effect/BucketQueue.js.map +0 -1
  192. package/dist/effect/Scheduler.d.ts +0 -4
  193. package/dist/effect/Scheduler.d.ts.map +0 -1
  194. package/dist/effect/Scheduler.js +0 -9
  195. package/dist/effect/Scheduler.js.map +0 -1
  196. package/dist/effect/ServiceContext.d.ts +0 -37
  197. package/dist/effect/ServiceContext.d.ts.map +0 -1
  198. package/dist/effect/ServiceContext.js +0 -55
  199. package/dist/effect/ServiceContext.js.map +0 -1
  200. package/dist/guards.d.ts +0 -20
  201. package/dist/guards.d.ts.map +0 -1
  202. package/dist/guards.js +0 -20
  203. package/dist/guards.js.map +0 -1
  204. package/dist/node/ChildProcessRunner/ChildProcessRunner.d.ts +0 -4
  205. package/dist/node/ChildProcessRunner/ChildProcessRunner.d.ts.map +0 -1
  206. package/dist/node/ChildProcessRunner/ChildProcessRunner.js +0 -128
  207. package/dist/node/ChildProcessRunner/ChildProcessRunner.js.map +0 -1
  208. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.d.ts +0 -10
  209. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.d.ts.map +0 -1
  210. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.js +0 -217
  211. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.js.map +0 -1
  212. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.d.ts +0 -84
  213. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.d.ts.map +0 -1
  214. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.js +0 -68
  215. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.js.map +0 -1
  216. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.d.ts +0 -2
  217. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.d.ts.map +0 -1
  218. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js +0 -52
  219. package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js.map +0 -1
  220. package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts +0 -23
  221. package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts.map +0 -1
  222. package/dist/node/ChildProcessRunner/ChildProcessWorker.js +0 -138
  223. package/dist/node/ChildProcessRunner/ChildProcessWorker.js.map +0 -1
  224. package/dist/object/omit.d.ts +0 -3
  225. package/dist/object/omit.d.ts.map +0 -1
  226. package/dist/object/omit.js +0 -14
  227. package/dist/object/omit.js.map +0 -1
  228. package/dist/object/pick.d.ts +0 -14
  229. package/dist/object/pick.d.ts.map +0 -1
  230. package/dist/object/pick.js +0 -17
  231. package/dist/object/pick.js.map +0 -1
  232. package/dist/time.d.ts +0 -12
  233. package/dist/time.d.ts.map +0 -1
  234. package/dist/time.js +0 -22
  235. package/dist/time.js.map +0 -1
  236. package/src/effect/BucketQueue.ts +0 -49
  237. package/src/effect/Scheduler.ts +0 -13
  238. package/src/effect/ServiceContext.ts +0 -108
  239. package/src/guards.ts +0 -23
  240. package/src/node/ChildProcessRunner/ChildProcessRunner.ts +0 -148
  241. package/src/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.ts +0 -311
  242. package/src/node/ChildProcessRunner/ChildProcessRunnerTest/schema.ts +0 -78
  243. package/src/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.ts +0 -65
  244. package/src/node/ChildProcessRunner/ChildProcessWorker.ts +0 -169
  245. package/src/object/omit.ts +0 -17
  246. package/src/object/pick.ts +0 -27
  247. package/src/time.ts +0 -25
@@ -1,55 +0,0 @@
1
- import { Cause, Effect, Exit, Fiber, Layer, pipe, Scope } from 'effect';
2
- export const unsafeMainLayer = (original) => {
3
- const scope = Effect.runSync(Scope.make());
4
- const layer = pipe(original, Layer.memoize, Effect.parallelFinalizers, // NOTE this runs the layer teardown in parallel
5
- Effect.provideService(Scope.Scope, scope), Effect.runSync);
6
- return { layer, close: Scope.close(scope, Exit.void) };
7
- };
8
- export const make = (staticData, runtime, close = Effect.dieMessage('close not implemented')) => {
9
- return {
10
- provide: (self) => self.pipe(Effect.provide(runtime)),
11
- runWithErrorLog: (self) => runWithErrorLog(self.pipe(Effect.provide(runtime))),
12
- runSync: (self) => Effect.runSync(self.pipe(Effect.provide(runtime))),
13
- runPromiseWithErrorLog: (self) => runPromiseWithErrorLog(self.pipe(Effect.provide(runtime))),
14
- runPromiseExit: (self) => Effect.runPromiseExit(self.pipe(Effect.provide(runtime))),
15
- runPromise: (self) => Effect.runPromise(self.pipe(Effect.provide(runtime))),
16
- withRuntime: (fn) => fn(runtime),
17
- close: close,
18
- closePromise: () => Effect.runPromise(close),
19
- staticData,
20
- };
21
- };
22
- export const runWithErrorLog = (self) => {
23
- const fiber = Effect.runFork(self);
24
- fiber.addObserver((ex) => {
25
- if (ex._tag === 'Failure' && Cause.isInterruptedOnly(ex.cause) === false) {
26
- console.error(Cause.pretty(ex.cause));
27
- }
28
- });
29
- return () => {
30
- Effect.runFork(Fiber.interrupt(fiber));
31
- };
32
- };
33
- export const runPromiseWithErrorLog = (self) => Effect.runPromiseExit(self).then((ex) => {
34
- if (ex._tag === 'Failure') {
35
- console.error(Cause.pretty(ex.cause));
36
- return undefined;
37
- }
38
- else {
39
- return ex.value;
40
- }
41
- });
42
- export const MissingContext = Effect.die('service context not provided, wrap your app in LiveServiceContext');
43
- export const empty = () => ({
44
- provide: () => MissingContext,
45
- runWithErrorLog: () => runWithErrorLog(MissingContext),
46
- runSync: () => Effect.runSync(MissingContext),
47
- runPromiseWithErrorLog: () => runPromiseWithErrorLog(MissingContext),
48
- runPromiseExit: () => Effect.runPromiseExit(MissingContext),
49
- runPromise: () => Effect.runPromise(MissingContext),
50
- withRuntime: () => Effect.runSync(MissingContext),
51
- close: Effect.dieMessage('Empty ServiceContext cannot be closed'),
52
- closePromise: () => Promise.reject('Empty ServiceContext cannot be closed'),
53
- staticData: {},
54
- });
55
- //# sourceMappingURL=ServiceContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ServiceContext.js","sourceRoot":"","sources":["../../src/effect/ServiceContext.ts"],"names":[],"mappings":"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"}
package/dist/guards.d.ts DELETED
@@ -1,20 +0,0 @@
1
- /** Type guard that narrows `T | undefined` to `T`. Useful for filtering arrays. */
2
- export declare const isNotUndefined: <T>(_: T | undefined) => _ is T;
3
- /** Type guard that narrows `T | null` to `T`. */
4
- export declare const isNotNull: <T>(_: T | null) => _ is T;
5
- /** Type guard that checks if a value is `undefined`. */
6
- export declare const isUndefined: <T>(_: T | undefined) => _ is undefined;
7
- /** Type guard that checks if a value is `null` or `undefined`. */
8
- export declare const isNil: (val: any) => val is null | undefined;
9
- /**
10
- * Type guard that narrows `T | undefined | null` to `T`.
11
- * Commonly used to filter out nullish values from arrays.
12
- *
13
- * @example
14
- * ```ts
15
- * const values = [1, null, 2, undefined, 3]
16
- * const nonNil = values.filter(isNotNil) // [1, 2, 3] (type: number[])
17
- * ```
18
- */
19
- export declare const isNotNil: <T>(val: T | undefined | null) => val is T;
20
- //# sourceMappingURL=guards.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,KAAG,CAAC,IAAI,CAAoB,CAAA;AAE9E,iDAAiD;AACjD,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,KAAG,CAAC,IAAI,CAAe,CAAA;AAE/D,wDAAwD;AACxD,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,KAAG,CAAC,IAAI,SAA4B,CAAA;AAEnF,kEAAkE;AAClE,eAAO,MAAM,KAAK,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,IAAI,GAAG,SAA8C,CAAA;AAE7F;;;;;;;;;GASG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,KAAK,CAAC,GAAG,SAAS,GAAG,IAAI,KAAG,GAAG,IAAI,CAAsC,CAAA"}
package/dist/guards.js DELETED
@@ -1,20 +0,0 @@
1
- /** Type guard that narrows `T | undefined` to `T`. Useful for filtering arrays. */
2
- export const isNotUndefined = (_) => _ !== undefined;
3
- /** Type guard that narrows `T | null` to `T`. */
4
- export const isNotNull = (_) => _ !== null;
5
- /** Type guard that checks if a value is `undefined`. */
6
- export const isUndefined = (_) => _ === undefined;
7
- /** Type guard that checks if a value is `null` or `undefined`. */
8
- export const isNil = (val) => val === null || val === undefined;
9
- /**
10
- * Type guard that narrows `T | undefined | null` to `T`.
11
- * Commonly used to filter out nullish values from arrays.
12
- *
13
- * @example
14
- * ```ts
15
- * const values = [1, null, 2, undefined, 3]
16
- * const nonNil = values.filter(isNotNil) // [1, 2, 3] (type: number[])
17
- * ```
18
- */
19
- export const isNotNil = (val) => val !== null && val !== undefined;
20
- //# sourceMappingURL=guards.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAI,CAAgB,EAAU,EAAE,CAAC,CAAC,KAAK,SAAS,CAAA;AAE9E,iDAAiD;AACjD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,CAAW,EAAU,EAAE,CAAC,CAAC,KAAK,IAAI,CAAA;AAE/D,wDAAwD;AACxD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAI,CAAgB,EAAkB,EAAE,CAAC,CAAC,KAAK,SAAS,CAAA;AAEnF,kEAAkE;AAClE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAQ,EAA2B,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,CAAA;AAE7F;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAI,GAAyB,EAAY,EAAE,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,CAAA"}
@@ -1,4 +0,0 @@
1
- import * as Runner from '@effect/platform/WorkerRunner';
2
- import * as Layer from 'effect/Layer';
3
- export declare const layer: Layer.Layer<Runner.PlatformRunner, never, never>;
4
- //# sourceMappingURL=ChildProcessRunner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChildProcessRunner.d.ts","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessRunner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAOvD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAwIrC,eAAO,MAAM,KAAK,kDAA2D,CAAA"}
@@ -1,128 +0,0 @@
1
- import process from 'node:process';
2
- import { WorkerError } from '@effect/platform/WorkerError';
3
- import * as Runner from '@effect/platform/WorkerRunner';
4
- import * as Cause from 'effect/Cause';
5
- import * as Context from 'effect/Context';
6
- import * as Deferred from 'effect/Deferred';
7
- import * as Effect from 'effect/Effect';
8
- import * as Exit from 'effect/Exit';
9
- import * as FiberSet from 'effect/FiberSet';
10
- import * as Layer from 'effect/Layer';
11
- import * as Runtime from 'effect/Runtime';
12
- import * as Scope from 'effect/Scope';
13
- // Parent death monitoring setup
14
- let parentDeathDetectionEnabled = false;
15
- let parentDeathTimer = null;
16
- const isSetupParentDeathDetectionMessage = (message) => Array.isArray(message) &&
17
- message[0] === 'setup-parent-death-detection' &&
18
- typeof message[1] === 'object' &&
19
- message[1] !== null &&
20
- 'parentPid' in message[1] &&
21
- typeof message[1].parentPid === 'number';
22
- const stopParentDeathMonitoring = () => {
23
- parentDeathDetectionEnabled = false;
24
- if (parentDeathTimer !== null) {
25
- clearTimeout(parentDeathTimer);
26
- parentDeathTimer = null;
27
- }
28
- };
29
- const setupParentDeathMonitoring = (parentPid) => {
30
- if (parentDeathDetectionEnabled === true)
31
- return;
32
- parentDeathDetectionEnabled = true;
33
- let consecutiveFailures = 0;
34
- const maxFailures = 3; // Require 3 consecutive failures before self-terminating
35
- // Check if parent is still alive every 2 seconds (more conservative)
36
- const checkParentAlive = () => {
37
- if (parentDeathDetectionEnabled === false)
38
- return;
39
- try {
40
- // Send signal 0 to check if process exists (doesn't actually send signal)
41
- process.kill(parentPid, 0);
42
- // If we reach here, parent is still alive, reset failure counter and check again later
43
- consecutiveFailures = 0;
44
- parentDeathTimer = setTimeout(checkParentAlive, 2000);
45
- }
46
- catch {
47
- consecutiveFailures++;
48
- console.warn(`[Worker ${process.pid}] Parent check failed (${consecutiveFailures}/${maxFailures})`);
49
- if (consecutiveFailures >= maxFailures) {
50
- // Parent process has been gone for multiple checks, self-terminate
51
- console.error(`[Worker ${process.pid}] Parent process ${parentPid} confirmed dead, self-terminating`);
52
- process.exit(0);
53
- }
54
- else {
55
- // Try again sooner on failure
56
- parentDeathTimer = setTimeout(checkParentAlive, 1000);
57
- }
58
- }
59
- };
60
- // Start monitoring after a longer initial delay to let things settle
61
- parentDeathTimer = setTimeout(checkParentAlive, 5000);
62
- };
63
- const platformRunnerImpl = Runner.PlatformRunner.of({
64
- [Runner.PlatformRunnerTypeId]: Runner.PlatformRunnerTypeId,
65
- start(closeLatch) {
66
- return Effect.gen(function* () {
67
- if (process.send == null) {
68
- return yield* new WorkerError({ reason: 'spawn', cause: new Error('not in a child process') });
69
- }
70
- const port = {
71
- postMessage: (message) => process.send(message),
72
- on: (event, handler) => process.on(event, handler),
73
- close: () => process.disconnect?.(),
74
- };
75
- const send = (_portId, message, _transfers) => Effect.sync(() => port.postMessage([1, message] /*, transfers as any*/));
76
- const run = Effect.fnUntraced(function* (
77
- // biome-ignore lint/suspicious/noConfusingVoidType: need to support void
78
- handler) {
79
- const runtime = (yield* Effect.interruptible(Effect.runtime())).pipe(Runtime.updateContext(Context.omit(Scope.Scope)));
80
- const fiberSet = yield* FiberSet.make();
81
- const runFork = Runtime.runFork(runtime);
82
- const onExit = (exit) => {
83
- if (exit._tag === 'Failure' && Cause.isInterruptedOnly(exit.cause) === false) {
84
- // Deferred.unsafeDone(closeLatch, Exit.die(Cause.squash(exit.cause)))
85
- Deferred.unsafeDone(closeLatch, Exit.die(exit.cause));
86
- }
87
- };
88
- port.on('message', (message) => {
89
- // console.log('message', message)
90
- // Handle parent death detection setup messages
91
- if (isSetupParentDeathDetectionMessage(message) === true) {
92
- const parentPid = message[1].parentPid;
93
- // console.log(`[Worker ${process.pid}] Setting up parent death detection for parent ${parentPid}`)
94
- setupParentDeathMonitoring(parentPid);
95
- return;
96
- }
97
- // Handle normal Effect worker messages
98
- if (Array.isArray(message) === true && typeof message[0] === 'number') {
99
- if (message[0] === 0) {
100
- const result = handler(0, message[1]);
101
- if (Effect.isEffect(result) === true) {
102
- const fiber = runFork(result);
103
- fiber.addObserver(onExit);
104
- FiberSet.unsafeAdd(fiberSet, fiber);
105
- }
106
- }
107
- else {
108
- // Graceful shutdown requested by parent: stop monitoring and close port
109
- stopParentDeathMonitoring();
110
- Deferred.unsafeDone(closeLatch, Exit.void);
111
- port.close();
112
- }
113
- }
114
- });
115
- port.on('messageerror', (cause) => {
116
- Deferred.unsafeDone(closeLatch, new WorkerError({ reason: 'decode', cause }));
117
- });
118
- port.on('error', (cause) => {
119
- Deferred.unsafeDone(closeLatch, new WorkerError({ reason: 'unknown', cause }));
120
- });
121
- port.postMessage([0]);
122
- });
123
- return { run, send };
124
- });
125
- },
126
- });
127
- export const layer = Layer.succeed(Runner.PlatformRunner, platformRunnerImpl);
128
- //# sourceMappingURL=ChildProcessRunner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChildProcessRunner.js","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessRunner.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { Schema } from 'effect';
2
- declare const TestError_base: Schema.TaggedErrorClass<TestError, "TestError", {
3
- readonly _tag: Schema.tag<"TestError">;
4
- } & {
5
- message: typeof Schema.String;
6
- }>;
7
- export declare class TestError extends TestError_base {
8
- }
9
- export {};
10
- //# sourceMappingURL=ChildProcessRunner.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChildProcessRunner.test.d.ts","sourceRoot":"","sources":["../../../../src/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwC,MAAM,EAAiB,MAAM,QAAQ,CAAA;;;;;;AAEpF,qBAAa,SAAU,SAAQ,cAE7B;CAAG"}
@@ -1,217 +0,0 @@
1
- import * as ChildProcess from 'node:child_process';
2
- import * as EffectWorker from '@effect/platform/Worker';
3
- import { assert, describe, it } from '@effect/vitest';
4
- import { Chunk, Deferred, Effect, Exit, Fiber, Schema, Scope, Stream } from 'effect';
5
- export class TestError extends Schema.TaggedError()('TestError', {
6
- message: Schema.String,
7
- }) {
8
- }
9
- import * as ChildProcessWorker from "../ChildProcessWorker.js";
10
- import { GetPersonById, GetUserById, InitialMessage, Person, StartStubbornWorker, User } from "./schema.js";
11
- const WorkerLive = ChildProcessWorker.layer(() => ChildProcess.fork(new URL('../../../../dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js', import.meta.url)));
12
- // const WorkerLive = NodeWorker.layer(
13
- // () =>
14
- // new WorkerThreads.Worker(
15
- // new URL('../../../../dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js', import.meta.url),
16
- // ),
17
- // )
18
- describe('ChildProcessRunner', { timeout: 10_000 }, () => {
19
- it('Serialized', () => Effect.gen(function* () {
20
- const pool = yield* EffectWorker.makePoolSerialized({ size: 1 });
21
- const people = yield* pool.execute(new GetPersonById({ id: 123 })).pipe(Stream.runCollect);
22
- assert.deepStrictEqual(Chunk.toReadonlyArray(people), [
23
- new Person({ id: 123, name: 'test', data: new Uint8Array([1, 2, 3]) }),
24
- new Person({ id: 123, name: 'ing', data: new Uint8Array([4, 5, 6]) }),
25
- ]);
26
- }).pipe(Effect.scoped, Effect.provide(WorkerLive), Effect.runPromise));
27
- it('Serialized with initialMessage', () => Effect.gen(function* () {
28
- const pool = yield* EffectWorker.makePoolSerialized({
29
- size: 1,
30
- initialMessage: () => new InitialMessage({ name: 'custom', data: new Uint8Array([1, 2, 3]) }),
31
- });
32
- let user = yield* pool.executeEffect(new GetUserById({ id: 123 }));
33
- user = yield* pool.executeEffect(new GetUserById({ id: 123 }));
34
- assert.deepStrictEqual(user, new User({ id: 123, name: 'custom' }));
35
- const people = yield* pool.execute(new GetPersonById({ id: 123 })).pipe(Stream.runCollect);
36
- assert.deepStrictEqual(Chunk.toReadonlyArray(people), [
37
- new Person({ id: 123, name: 'test', data: new Uint8Array([1, 2, 3]) }),
38
- new Person({ id: 123, name: 'ing', data: new Uint8Array([4, 5, 6]) }),
39
- ]);
40
- }).pipe(Effect.scoped, Effect.provide(WorkerLive), Effect.runPromise));
41
- describe('Process Cleanup', { timeout: 15_000 }, () => {
42
- const isProcessRunning = (pid) => {
43
- try {
44
- process.kill(pid, 0); // Signal 0 checks if process exists
45
- return true;
46
- }
47
- catch {
48
- return false;
49
- }
50
- };
51
- it('should clean up child processes when Effect is interrupted', () => Effect.gen(function* () {
52
- const workerPidDeferred = yield* Deferred.make();
53
- const testEffect = Effect.gen(function* () {
54
- const pool = yield* EffectWorker.makePoolSerialized({
55
- size: 1,
56
- initialMessage: () => new InitialMessage({ name: 'test', data: new Uint8Array([1, 2, 3]) }),
57
- });
58
- const result = yield* pool.executeEffect(new StartStubbornWorker({ blockDuration: 30_000 }));
59
- yield* Deferred.succeed(workerPidDeferred, result.pid);
60
- // Verify the worker process is running
61
- assert.strictEqual(isProcessRunning(result.pid), true, 'Worker process should be running');
62
- // Start a long-running operation that we'll interrupt
63
- yield* Effect.sleep('60 seconds');
64
- }).pipe(Effect.scoped, Effect.provide(WorkerLive));
65
- // Run the test effect but interrupt it after 2 seconds
66
- const fiber = yield* Effect.forkScoped(testEffect);
67
- const workerPid = yield* Deferred.await(workerPidDeferred).pipe(Effect.raceFirst(Fiber.join(fiber).pipe(Effect.flatMap(() => new TestError({ message: 'testEffect completed before reporting worker PID' })))), Effect.timeout(10_000));
68
- yield* Effect.sleep('2 seconds');
69
- yield* Fiber.interrupt(fiber);
70
- // Wait a moment for cleanup to complete
71
- yield* Effect.sleep('1 second');
72
- assert.strictEqual(isProcessRunning(workerPid), false, `Worker process ${workerPid} should be terminated after Effect interruption`);
73
- }).pipe(Effect.scoped, Effect.runPromise));
74
- it('should clean up child processes when scope is closed abruptly', () => Effect.gen(function* () {
75
- let workerPid;
76
- // Create a scope that we can close manually
77
- const scope = yield* Scope.make();
78
- try {
79
- const pool = yield* EffectWorker.makePoolSerialized({
80
- size: 1,
81
- initialMessage: () => new InitialMessage({ name: 'test', data: new Uint8Array([1, 2, 3]) }),
82
- }).pipe(Scope.extend(scope), Effect.provide(WorkerLive));
83
- const result = yield* pool.executeEffect(new StartStubbornWorker({ blockDuration: 30_000 }));
84
- workerPid = result.pid;
85
- // Verify the worker is running
86
- assert.strictEqual(isProcessRunning(workerPid), true, 'Worker process should be running');
87
- }
88
- finally {
89
- // Abruptly close the scope (simulating test abortion)
90
- yield* Scope.close(scope, Exit.void);
91
- }
92
- // Wait for cleanup
93
- yield* Effect.sleep('1 second');
94
- // This should pass but will initially fail due to zombie process issue
95
- if (workerPid !== undefined) {
96
- assert.strictEqual(isProcessRunning(workerPid), false, `Worker process ${workerPid} should be terminated after scope closure`);
97
- }
98
- else {
99
- assert.fail('Worker PID was not captured');
100
- }
101
- }).pipe(Effect.runPromise));
102
- it('should clean up child processes when parent receives SIGINT', () => Effect.gen(function* () {
103
- let workerPid;
104
- const pool = yield* EffectWorker.makePoolSerialized({
105
- size: 1,
106
- initialMessage: () => new InitialMessage({ name: 'test', data: new Uint8Array([1, 2, 3]) }),
107
- });
108
- const result = yield* pool.executeEffect(new StartStubbornWorker({ blockDuration: 60_000 }));
109
- workerPid = result.pid;
110
- // Verify the worker is running
111
- assert.strictEqual(isProcessRunning(workerPid), true, 'Worker process should be running');
112
- // Simulate SIGINT being sent to current process (like Ctrl+C in vitest)
113
- // This should trigger cleanup of child processes
114
- yield* Effect.async((resume) => {
115
- // Store current listeners before we manipulate them
116
- const currentSIGINTListeners = process.listeners('SIGINT').slice();
117
- // Set up our test handler
118
- const testHandler = () => {
119
- // Emit SIGINT to all current listeners to trigger cleanup
120
- currentSIGINTListeners.forEach((listener) => {
121
- try {
122
- ;
123
- listener();
124
- }
125
- catch {
126
- // Ignore errors
127
- }
128
- });
129
- resume(Effect.void);
130
- };
131
- // Remove all current SIGINT listeners and add our test handler
132
- process.removeAllListeners('SIGINT');
133
- process.once('SIGINT', testHandler);
134
- // Send SIGINT after a short delay
135
- setTimeout(() => {
136
- process.kill(process.pid, 'SIGINT');
137
- }, 1000);
138
- });
139
- // Wait for cleanup to complete
140
- yield* Effect.sleep('2 seconds');
141
- // This test should initially fail - child process will still be running
142
- if (workerPid !== undefined) {
143
- assert.strictEqual(isProcessRunning(workerPid), false, `Worker process ${workerPid} should be terminated after SIGINT`);
144
- }
145
- else {
146
- assert.fail('Worker PID was not captured');
147
- }
148
- }).pipe(Effect.scoped, Effect.provide(WorkerLive), Effect.runPromise));
149
- it('should clean up multiple concurrent child processes', () => Effect.gen(function* () {
150
- let workerPids = [];
151
- const testEffect = Effect.gen(function* () {
152
- const pool = yield* EffectWorker.makePoolSerialized({
153
- size: 3, // Multiple workers
154
- initialMessage: () => new InitialMessage({ name: 'test', data: new Uint8Array([1, 2, 3]) }),
155
- });
156
- // Start multiple stubborn workers
157
- const workers = yield* Effect.all([
158
- pool.executeEffect(new StartStubbornWorker({ blockDuration: 30_000 })),
159
- pool.executeEffect(new StartStubbornWorker({ blockDuration: 30_000 })),
160
- pool.executeEffect(new StartStubbornWorker({ blockDuration: 30_000 })),
161
- ], { concurrency: 'unbounded' });
162
- workerPids = workers.map((w) => w.pid);
163
- // Verify all workers are running
164
- for (const pid of workerPids) {
165
- assert.strictEqual(isProcessRunning(pid), true, `Worker process ${pid} should be running`);
166
- }
167
- yield* Effect.sleep('30 seconds'); // Keep running until interrupted
168
- }).pipe(Effect.scoped, Effect.provide(WorkerLive));
169
- // Run with timeout to force termination
170
- const fiber = yield* Effect.fork(testEffect);
171
- yield* Effect.sleep('2 seconds');
172
- yield* Fiber.interrupt(fiber);
173
- // Wait for cleanup
174
- yield* Effect.sleep('2 seconds');
175
- // All worker processes should be cleaned up
176
- for (const pid of workerPids) {
177
- assert.strictEqual(isProcessRunning(pid), false, `Worker process ${pid} should be terminated after pool cleanup`);
178
- }
179
- }).pipe(Effect.runPromise));
180
- it('should handle direct ChildProcess.fork cleanup (node-sync pattern)', () => Effect.gen(function* () {
181
- let childPid;
182
- // This mimics the exact pattern used in node-sync tests
183
- const nodeChildProcess = ChildProcess.fork(new URL('../../../../dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js', import.meta.url), ['test-client']);
184
- childPid = nodeChildProcess.pid;
185
- const testEffect = Effect.gen(function* () {
186
- const worker = yield* EffectWorker.makePoolSerialized({
187
- size: 1,
188
- concurrency: 100,
189
- initialMessage: () => new InitialMessage({ name: 'test', data: new Uint8Array([1, 2, 3]) }),
190
- }).pipe(Effect.provide(ChildProcessWorker.layer(() => nodeChildProcess)));
191
- // Start stubborn worker
192
- yield* worker.executeEffect(new StartStubbornWorker({ blockDuration: 60_000 }));
193
- // Verify process is running
194
- if (childPid !== undefined) {
195
- assert.strictEqual(isProcessRunning(childPid), true, 'Child process should be running');
196
- }
197
- // Keep running until interrupted
198
- yield* Effect.sleep('30 seconds');
199
- }).pipe(Effect.scoped);
200
- // Simulate the exact abortion pattern from node-sync
201
- const fiber = yield* Effect.fork(testEffect);
202
- yield* Effect.sleep('2 seconds');
203
- // Force kill the fiber without proper cleanup (simulates Ctrl+C)
204
- yield* Fiber.interrupt(fiber);
205
- // Wait for cleanup
206
- yield* Effect.sleep('3 seconds');
207
- // This test should initially fail - demonstrating the zombie process issue
208
- if (childPid !== undefined) {
209
- assert.strictEqual(isProcessRunning(childPid), false, `Child process ${childPid} should be terminated after forced interruption`);
210
- }
211
- else {
212
- assert.fail('Child PID was not captured');
213
- }
214
- }).pipe(Effect.runPromise));
215
- });
216
- });
217
- //# sourceMappingURL=ChildProcessRunner.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChildProcessRunner.test.js","sourceRoot":"","sources":["../../../../src/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.ts"],"names":[],"mappings":"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"}
@@ -1,84 +0,0 @@
1
- import * as Schema from 'effect/Schema';
2
- declare const User_base: Schema.Class<User, {
3
- id: typeof Schema.Number;
4
- name: typeof Schema.String;
5
- }, Schema.Struct.Encoded<{
6
- id: typeof Schema.Number;
7
- name: typeof Schema.String;
8
- }>, never, {
9
- readonly name: string;
10
- } & {
11
- readonly id: number;
12
- }, {}, {}>;
13
- export declare class User extends User_base {
14
- }
15
- declare const GetUserById_base: Schema.TaggedRequestClass<GetUserById, "GetUserById", {
16
- readonly _tag: Schema.tag<"GetUserById">;
17
- } & {
18
- id: typeof Schema.Number;
19
- }, typeof User, typeof Schema.Never>;
20
- export declare class GetUserById extends GetUserById_base {
21
- }
22
- declare const Person_base: Schema.Class<Person, {
23
- id: typeof Schema.Number;
24
- name: typeof Schema.String;
25
- data: typeof Schema.Uint8Array;
26
- }, Schema.Struct.Encoded<{
27
- id: typeof Schema.Number;
28
- name: typeof Schema.String;
29
- data: typeof Schema.Uint8Array;
30
- }>, never, {
31
- readonly name: string;
32
- } & {
33
- readonly data: Uint8Array<ArrayBufferLike>;
34
- } & {
35
- readonly id: number;
36
- }, {}, {}>;
37
- export declare class Person extends Person_base {
38
- }
39
- declare const GetPersonById_base: Schema.TaggedRequestClass<GetPersonById, "GetPersonById", {
40
- readonly _tag: Schema.tag<"GetPersonById">;
41
- } & {
42
- id: typeof Schema.Number;
43
- }, typeof Person, typeof Schema.Never>;
44
- export declare class GetPersonById extends GetPersonById_base {
45
- }
46
- declare const RunnerInterrupt_base: Schema.TaggedRequestClass<RunnerInterrupt, "RunnerInterrupt", {
47
- readonly _tag: Schema.tag<"RunnerInterrupt">;
48
- }, typeof Schema.Void, typeof Schema.Never>;
49
- export declare class RunnerInterrupt extends RunnerInterrupt_base {
50
- }
51
- declare const StartStubbornWorker_base: Schema.TaggedRequestClass<StartStubbornWorker, "StartStubbornWorker", {
52
- readonly _tag: Schema.tag<"StartStubbornWorker">;
53
- } & {
54
- blockDuration: typeof Schema.Number;
55
- }, Schema.Struct<{
56
- pid: typeof Schema.Number;
57
- }>, typeof Schema.Never>;
58
- export declare class StartStubbornWorker extends StartStubbornWorker_base {
59
- }
60
- declare const InitialMessage_base: Schema.TaggedRequestClass<InitialMessage, "InitialMessage", {
61
- readonly _tag: Schema.tag<"InitialMessage">;
62
- } & {
63
- name: typeof Schema.String;
64
- data: typeof Schema.Uint8Array;
65
- }, typeof Schema.Void, typeof Schema.Never>;
66
- export declare class InitialMessage extends InitialMessage_base {
67
- }
68
- declare const GetSpan_base: Schema.TaggedRequestClass<GetSpan, "GetSpan", {
69
- readonly _tag: Schema.tag<"GetSpan">;
70
- }, Schema.Struct<{
71
- name: typeof Schema.String;
72
- traceId: typeof Schema.String;
73
- spanId: typeof Schema.String;
74
- parent: Schema.Option<Schema.Struct<{
75
- traceId: typeof Schema.String;
76
- spanId: typeof Schema.String;
77
- }>>;
78
- }>, typeof Schema.Never>;
79
- export declare class GetSpan extends GetSpan_base {
80
- }
81
- export declare const WorkerMessage: Schema.Union<[typeof GetUserById, typeof GetPersonById, typeof InitialMessage, typeof GetSpan, typeof RunnerInterrupt, typeof StartStubbornWorker]>;
82
- export type WorkerMessage = Schema.Schema.Type<typeof WorkerMessage>;
83
- export {};
84
- //# sourceMappingURL=schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/node/ChildProcessRunner/ChildProcessRunnerTest/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;;;;;;;;;;;;AAEvC,qBAAa,IAAK,SAAQ,SAGxB;CAAG;;;;;;AAEL,qBAAa,WAAY,SAAQ,gBAM/B;CAAG;;;;;;;;;;;;;;;;AAEL,qBAAa,MAAO,SAAQ,WAK1B;CAAG;;;;;;AAEL,qBAAa,aAAc,SAAQ,kBAMjC;CAAG;;;;AAEL,qBAAa,eAAgB,SAAQ,oBAInC;CAAG;;;;;;;;AAEL,qBAAa,mBAAoB,SAAQ,wBAIvC;CAAG;;;;;;;AAEL,qBAAa,cAAe,SAAQ,mBAQlC;CAAG;;;;;;;;;;;;AAEL,qBAAa,OAAQ,SAAQ,YAc3B;CAAG;AAEL,eAAO,MAAM,aAAa,qJAOzB,CAAA;AACD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,aAAa,CAAC,CAAA"}