@shajara/kernel 0.1.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 (226) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +67 -0
  3. package/dist/.vite/license.md +27 -0
  4. package/dist/contracts/context-key.d.ts +10 -0
  5. package/dist/contracts/context-key.d.ts.map +1 -0
  6. package/dist/contracts/failure.d.ts +5 -0
  7. package/dist/contracts/failure.d.ts.map +1 -0
  8. package/dist/contracts/future-key.d.ts +16 -0
  9. package/dist/contracts/future-key.d.ts.map +1 -0
  10. package/dist/contracts/index.d.ts +11 -0
  11. package/dist/contracts/index.d.ts.map +1 -0
  12. package/dist/contracts/message-key.d.ts +10 -0
  13. package/dist/contracts/message-key.d.ts.map +1 -0
  14. package/dist/contracts/process.d.ts +7 -0
  15. package/dist/contracts/process.d.ts.map +1 -0
  16. package/dist/contracts/scope.d.ts +7 -0
  17. package/dist/contracts/scope.d.ts.map +1 -0
  18. package/dist/contracts/sigil.d.ts +7 -0
  19. package/dist/contracts/sigil.d.ts.map +1 -0
  20. package/dist/contracts/suppressor.d.ts +4 -0
  21. package/dist/contracts/suppressor.d.ts.map +1 -0
  22. package/dist/contracts/token.d.ts +4 -0
  23. package/dist/contracts/token.d.ts.map +1 -0
  24. package/dist/contracts/wisp.d.ts +19 -0
  25. package/dist/contracts/wisp.d.ts.map +1 -0
  26. package/dist/executor/autonomy.d.ts +24 -0
  27. package/dist/executor/autonomy.d.ts.map +1 -0
  28. package/dist/executor/domain-interpreter.d.ts +15 -0
  29. package/dist/executor/domain-interpreter.d.ts.map +1 -0
  30. package/dist/executor/domains/domain.d.ts +14 -0
  31. package/dist/executor/domains/domain.d.ts.map +1 -0
  32. package/dist/executor/domains/index.d.ts +4 -0
  33. package/dist/executor/domains/index.d.ts.map +1 -0
  34. package/dist/executor/domains/reaper.d.ts +26 -0
  35. package/dist/executor/domains/reaper.d.ts.map +1 -0
  36. package/dist/executor/domains/scheduler.d.ts +15 -0
  37. package/dist/executor/domains/scheduler.d.ts.map +1 -0
  38. package/dist/executor/execution-scope.d.ts +7 -0
  39. package/dist/executor/execution-scope.d.ts.map +1 -0
  40. package/dist/executor/executor-driver.d.ts +14 -0
  41. package/dist/executor/executor-driver.d.ts.map +1 -0
  42. package/dist/executor/executor.d.ts +13 -0
  43. package/dist/executor/executor.d.ts.map +1 -0
  44. package/dist/executor/fault-sink.d.ts +12 -0
  45. package/dist/executor/fault-sink.d.ts.map +1 -0
  46. package/dist/executor/index.d.ts +8 -0
  47. package/dist/executor/index.d.ts.map +1 -0
  48. package/dist/executor/launch-handle.d.ts +33 -0
  49. package/dist/executor/launch-handle.d.ts.map +1 -0
  50. package/dist/executor/pacer.d.ts +9 -0
  51. package/dist/executor/pacer.d.ts.map +1 -0
  52. package/dist/executor/primitives/autonomy.d.ts +4 -0
  53. package/dist/executor/primitives/autonomy.d.ts.map +1 -0
  54. package/dist/executor/primitives/index.d.ts +2 -0
  55. package/dist/executor/primitives/index.d.ts.map +1 -0
  56. package/dist/executor/processor.d.ts +9 -0
  57. package/dist/executor/processor.d.ts.map +1 -0
  58. package/dist/executor/round-limit-reaper.d.ts +11 -0
  59. package/dist/executor/round-limit-reaper.d.ts.map +1 -0
  60. package/dist/failures/canceled.d.ts +6 -0
  61. package/dist/failures/canceled.d.ts.map +1 -0
  62. package/dist/failures/external.d.ts +7 -0
  63. package/dist/failures/external.d.ts.map +1 -0
  64. package/dist/failures/index.d.ts +10 -0
  65. package/dist/failures/index.d.ts.map +1 -0
  66. package/dist/failures/interrupted.d.ts +7 -0
  67. package/dist/failures/interrupted.d.ts.map +1 -0
  68. package/dist/failures/scope.d.ts +19 -0
  69. package/dist/failures/scope.d.ts.map +1 -0
  70. package/dist/index.cjs +1 -0
  71. package/dist/index.d.ts +5 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +1986 -0
  74. package/dist/internal/fp/index.d.ts +6 -0
  75. package/dist/internal/fp/index.d.ts.map +1 -0
  76. package/dist/internal/fp/lifting.d.ts +21 -0
  77. package/dist/internal/fp/lifting.d.ts.map +1 -0
  78. package/dist/internal/fp/sigil.d.ts +11 -0
  79. package/dist/internal/fp/sigil.d.ts.map +1 -0
  80. package/dist/internal/fp/wisp-either.d.ts +53 -0
  81. package/dist/internal/fp/wisp-either.d.ts.map +1 -0
  82. package/dist/internal/fp/wisp-option.d.ts +52 -0
  83. package/dist/internal/fp/wisp-option.d.ts.map +1 -0
  84. package/dist/internal/fp/wisp.d.ts +37 -0
  85. package/dist/internal/fp/wisp.d.ts.map +1 -0
  86. package/dist/interpreter/index.d.ts +4 -0
  87. package/dist/interpreter/index.d.ts.map +1 -0
  88. package/dist/interpreter/interpreter.d.ts +48 -0
  89. package/dist/interpreter/interpreter.d.ts.map +1 -0
  90. package/dist/interpreter/process-step.d.ts +21 -0
  91. package/dist/interpreter/process-step.d.ts.map +1 -0
  92. package/dist/interpreter/runtime-future.d.ts +14 -0
  93. package/dist/interpreter/runtime-future.d.ts.map +1 -0
  94. package/dist/interpreter/runtime-process/handle.d.ts +9 -0
  95. package/dist/interpreter/runtime-process/handle.d.ts.map +1 -0
  96. package/dist/interpreter/runtime-process/index.d.ts +5 -0
  97. package/dist/interpreter/runtime-process/index.d.ts.map +1 -0
  98. package/dist/interpreter/runtime-process/keeper.d.ts +39 -0
  99. package/dist/interpreter/runtime-process/keeper.d.ts.map +1 -0
  100. package/dist/interpreter/runtime-process/process.d.ts +54 -0
  101. package/dist/interpreter/runtime-process/process.d.ts.map +1 -0
  102. package/dist/interpreter/runtime-process/runner.d.ts +45 -0
  103. package/dist/interpreter/runtime-process/runner.d.ts.map +1 -0
  104. package/dist/interpreter/runtime-process/stepper.d.ts +9 -0
  105. package/dist/interpreter/runtime-process/stepper.d.ts.map +1 -0
  106. package/dist/interpreter/runtime-scope/index.d.ts +2 -0
  107. package/dist/interpreter/runtime-scope/index.d.ts.map +1 -0
  108. package/dist/interpreter/runtime-scope/runtime-mailbox.d.ts +11 -0
  109. package/dist/interpreter/runtime-scope/runtime-mailbox.d.ts.map +1 -0
  110. package/dist/interpreter/runtime-scope/runtime-scope.d.ts +58 -0
  111. package/dist/interpreter/runtime-scope/runtime-scope.d.ts.map +1 -0
  112. package/dist/interpreter/runtime-scope/scope-failure-draft.d.ts +12 -0
  113. package/dist/interpreter/runtime-scope/scope-failure-draft.d.ts.map +1 -0
  114. package/dist/interpreter/scope-zone.d.ts +6 -0
  115. package/dist/interpreter/scope-zone.d.ts.map +1 -0
  116. package/dist/primitives/all.d.ts +7 -0
  117. package/dist/primitives/all.d.ts.map +1 -0
  118. package/dist/primitives/bind.d.ts +3 -0
  119. package/dist/primitives/bind.d.ts.map +1 -0
  120. package/dist/primitives/cancel.d.ts +3 -0
  121. package/dist/primitives/cancel.d.ts.map +1 -0
  122. package/dist/primitives/cede.d.ts +3 -0
  123. package/dist/primitives/cede.d.ts.map +1 -0
  124. package/dist/primitives/defer.d.ts +3 -0
  125. package/dist/primitives/defer.d.ts.map +1 -0
  126. package/dist/primitives/enclose.d.ts +4 -0
  127. package/dist/primitives/enclose.d.ts.map +1 -0
  128. package/dist/primitives/future.d.ts +3 -0
  129. package/dist/primitives/future.d.ts.map +1 -0
  130. package/dist/primitives/guard.d.ts +6 -0
  131. package/dist/primitives/guard.d.ts.map +1 -0
  132. package/dist/primitives/halt.d.ts +3 -0
  133. package/dist/primitives/halt.d.ts.map +1 -0
  134. package/dist/primitives/index.d.ts +21 -0
  135. package/dist/primitives/index.d.ts.map +1 -0
  136. package/dist/primitives/lookup.d.ts +4 -0
  137. package/dist/primitives/lookup.d.ts.map +1 -0
  138. package/dist/primitives/park.d.ts +3 -0
  139. package/dist/primitives/park.d.ts.map +1 -0
  140. package/dist/primitives/poll.d.ts +4 -0
  141. package/dist/primitives/poll.d.ts.map +1 -0
  142. package/dist/primitives/race.d.ts +8 -0
  143. package/dist/primitives/race.d.ts.map +1 -0
  144. package/dist/primitives/resource.d.ts +5 -0
  145. package/dist/primitives/resource.d.ts.map +1 -0
  146. package/dist/primitives/resumable.d.ts +3 -0
  147. package/dist/primitives/resumable.d.ts.map +1 -0
  148. package/dist/primitives/self.d.ts +5 -0
  149. package/dist/primitives/self.d.ts.map +1 -0
  150. package/dist/primitives/settle.d.ts +3 -0
  151. package/dist/primitives/settle.d.ts.map +1 -0
  152. package/dist/primitives/spawn.d.ts +3 -0
  153. package/dist/primitives/spawn.d.ts.map +1 -0
  154. package/dist/primitives/unbind.d.ts +3 -0
  155. package/dist/primitives/unbind.d.ts.map +1 -0
  156. package/dist/primitives/wait.d.ts +3 -0
  157. package/dist/primitives/wait.d.ts.map +1 -0
  158. package/dist/primitives-kit/index.d.ts +3 -0
  159. package/dist/primitives-kit/index.d.ts.map +1 -0
  160. package/dist/primitives-kit/process.d.ts +7 -0
  161. package/dist/primitives-kit/process.d.ts.map +1 -0
  162. package/dist/primitives-kit/resumable.d.ts +9 -0
  163. package/dist/primitives-kit/resumable.d.ts.map +1 -0
  164. package/dist/primitives.d.ts +2 -0
  165. package/dist/primitives.d.ts.map +1 -0
  166. package/dist/sigils/bind.d.ts +9 -0
  167. package/dist/sigils/bind.d.ts.map +1 -0
  168. package/dist/sigils/branch.d.ts +17 -0
  169. package/dist/sigils/branch.d.ts.map +1 -0
  170. package/dist/sigils/cancel.d.ts +7 -0
  171. package/dist/sigils/cancel.d.ts.map +1 -0
  172. package/dist/sigils/cede.d.ts +7 -0
  173. package/dist/sigils/cede.d.ts.map +1 -0
  174. package/dist/sigils/defer.d.ts +8 -0
  175. package/dist/sigils/defer.d.ts.map +1 -0
  176. package/dist/sigils/future.d.ts +7 -0
  177. package/dist/sigils/future.d.ts.map +1 -0
  178. package/dist/sigils/halt.d.ts +8 -0
  179. package/dist/sigils/halt.d.ts.map +1 -0
  180. package/dist/sigils/index.d.ts +34 -0
  181. package/dist/sigils/index.d.ts.map +1 -0
  182. package/dist/sigils/lookup.d.ts +9 -0
  183. package/dist/sigils/lookup.d.ts.map +1 -0
  184. package/dist/sigils/poll.d.ts +9 -0
  185. package/dist/sigils/poll.d.ts.map +1 -0
  186. package/dist/sigils/receive.d.ts +8 -0
  187. package/dist/sigils/receive.d.ts.map +1 -0
  188. package/dist/sigils/self.d.ts +11 -0
  189. package/dist/sigils/self.d.ts.map +1 -0
  190. package/dist/sigils/send.d.ts +10 -0
  191. package/dist/sigils/send.d.ts.map +1 -0
  192. package/dist/sigils/settle.d.ts +9 -0
  193. package/dist/sigils/settle.d.ts.map +1 -0
  194. package/dist/sigils/spawn.d.ts +13 -0
  195. package/dist/sigils/spawn.d.ts.map +1 -0
  196. package/dist/sigils/unbind.d.ts +8 -0
  197. package/dist/sigils/unbind.d.ts.map +1 -0
  198. package/dist/sigils/wait.d.ts +8 -0
  199. package/dist/sigils/wait.d.ts.map +1 -0
  200. package/dist/sigils.cjs +1 -0
  201. package/dist/sigils.d.ts +2 -0
  202. package/dist/sigils.d.ts.map +1 -0
  203. package/dist/sigils.js +125 -0
  204. package/dist/utils/disposer.d.ts +2 -0
  205. package/dist/utils/disposer.d.ts.map +1 -0
  206. package/dist/utils/either.d.ts +2 -0
  207. package/dist/utils/either.d.ts.map +1 -0
  208. package/dist/utils/iife.d.ts +2 -0
  209. package/dist/utils/iife.d.ts.map +1 -0
  210. package/dist/utils/index.d.ts +8 -0
  211. package/dist/utils/index.d.ts.map +1 -0
  212. package/dist/utils/narrow.d.ts +4 -0
  213. package/dist/utils/narrow.d.ts.map +1 -0
  214. package/dist/utils/noop.d.ts +2 -0
  215. package/dist/utils/noop.d.ts.map +1 -0
  216. package/dist/utils/option.d.ts +2 -0
  217. package/dist/utils/option.d.ts.map +1 -0
  218. package/dist/utils/unreachable.d.ts +2 -0
  219. package/dist/utils/unreachable.d.ts.map +1 -0
  220. package/dist/utils-O8j9DzUQ.cjs +1 -0
  221. package/dist/utils-PwEUjNtC.js +327 -0
  222. package/dist/utils.cjs +1 -0
  223. package/dist/utils.d.ts +2 -0
  224. package/dist/utils.d.ts.map +1 -0
  225. package/dist/utils.js +2 -0
  226. package/package.json +73 -0
@@ -0,0 +1,6 @@
1
+ export * from './lifting';
2
+ export * from './wisp';
3
+ export * from './wisp-either';
4
+ export * from './wisp-option';
5
+ export * from './sigil';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/fp/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { Kind, Kind2, URIS, URIS2 } from 'fp-ts/HKT';
2
+ import { chain } from 'fp-ts';
3
+ export declare namespace lifting {
4
+ interface Lifting<M extends URIS, F extends URIS, C> extends chain.Chain1<M> {
5
+ readonly liftF: <A extends C>(fa: A) => Kind<M, Kind<F, A>>;
6
+ }
7
+ interface Lifting2<M extends URIS2, F extends URIS, C> extends chain.Chain2<M> {
8
+ readonly liftF: <E, A extends C>(fa: A) => Kind2<M, E, Kind<F, A>>;
9
+ }
10
+ function chainF<M extends URIS, F extends URIS, C>(M: Lifting<M, F, C>): <A, B extends C>(f: (a: A) => B) => (ma: Kind<M, A>) => Kind<M, Kind<F, B>>;
11
+ function chainF<M extends URIS2, F extends URIS, C>(M: Lifting2<M, F, C>): <E, A, B extends C>(f: (a: A) => B) => (ma: Kind2<M, E, A>) => Kind2<M, E, Kind<F, B>>;
12
+ function chainFirstF<M extends URIS, _ extends URIS, C>(M: Lifting<M, _, C>): <A, _ extends C>(f: (a: A) => _) => (ma: Kind<M, A>) => Kind<M, A>;
13
+ function chainFirstF<M extends URIS2, _ extends URIS, C>(M: Lifting2<M, _, C>): <E, A, _ extends C>(f: (a: A) => _) => (ma: Kind2<M, E, A>) => Kind2<M, E, A>;
14
+ function bindF<M extends URIS, F extends URIS, C>(M: Lifting<M, F, C>): <N extends string, A, B extends C>(name: Exclude<N, keyof A>, f: (a: A) => B) => (ma: Kind<M, A>) => Kind<M, {
15
+ readonly [K in N | keyof A]: K extends keyof A ? A[K] : Kind<F, B>;
16
+ }>;
17
+ function bindF<M extends URIS2, F extends URIS, C>(M: Lifting2<M, F, C>): <N extends string, E, A, B extends C>(name: Exclude<N, keyof A>, f: (a: A) => B) => (ma: Kind2<M, E, A>) => Kind2<M, E, {
18
+ readonly [K in N | keyof A]: K extends keyof A ? A[K] : Kind<F, B>;
19
+ }>;
20
+ }
21
+ //# sourceMappingURL=lifting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifting.d.ts","sourceRoot":"","sources":["../../../src/internal/fp/lifting.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Echo, SigilShape } from '../../contracts';
2
+ declare module "fp-ts/HKT" {
3
+ interface URItoKind<A> {
4
+ readonly [sigil.URI]: A extends SigilShape ? Echo<A> : unknown;
5
+ }
6
+ }
7
+ export declare namespace sigil {
8
+ const URI = "Sigil";
9
+ type URI = typeof URI;
10
+ }
11
+ //# sourceMappingURL=sigil.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sigil.d.ts","sourceRoot":"","sources":["../../../src/internal/fp/sigil.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,QAAQ,WAAW,CAAC;IACzB,UAAU,SAAS,CAAC,CAAC;QACnB,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;KAChE;CACF;AAGD,yBAAiB,KAAK,CAAC;IACd,MAAM,GAAG,UAAU,CAAC;IAC3B,KAAY,GAAG,GAAG,OAAO,GAAG,CAAC;CAC9B"}
@@ -0,0 +1,53 @@
1
+ import { SigilShape, Wisp } from '../../contracts';
2
+ import { applicative, apply, either, functor, monad, pointed, chain as fpChain, fromIO as fpFromIO } from 'fp-ts';
3
+ import { lifting } from './lifting';
4
+ import { sigil } from './sigil';
5
+ declare module "fp-ts/HKT" {
6
+ interface URItoKind2<E, A> {
7
+ readonly [wispEither.URI]: wispEither.WispEither<E, A>;
8
+ }
9
+ }
10
+ export declare namespace wispEither {
11
+ const URI = "WispEither";
12
+ type URI = typeof URI;
13
+ type WispEither<E, A> = Wisp<either.Either<E, A>>;
14
+ const left: <E, A = never>(e: E) => Wisp<either.Either<E, A>>;
15
+ const right: <A, E = never>(a: A) => Wisp<either.Either<E, A>>;
16
+ const map: <A, B>(f: (a: A) => B) => <E>(fa: Wisp<either.Either<E, A>>) => Wisp<either.Either<E, B>>;
17
+ const ap: <E, A>(fa: Wisp<either.Either<E, A>>) => <B>(fab: Wisp<either.Either<E, (a: A) => B>>) => Wisp<either.Either<E, B>>;
18
+ const chain: <A, E, B>(f: (a: A) => Wisp<either.Either<E, B>>) => (ma: Wisp<either.Either<E, A>>) => Wisp<either.Either<E, B>>;
19
+ const leftWisp: <E, A = never>(fe: Wisp<E>) => Wisp<either.Either<E, A>>;
20
+ const rightWisp: <A, E = never>(fa: Wisp<A>) => Wisp<either.Either<E, A>>;
21
+ const Pointed: pointed.Pointed2<URI>;
22
+ const Functor: functor.Functor2<URI>;
23
+ const Apply: apply.Apply2<URI>;
24
+ const Applicative: applicative.Applicative2<URI>;
25
+ const Chain: fpChain.Chain2<URI>;
26
+ const Monad: monad.Monad2<URI>;
27
+ const Lifting: lifting.Lifting2<URI, sigil.URI, SigilShape>;
28
+ const FromIO: fpFromIO.FromIO2<URI>;
29
+ const bind: <N extends string, A, E, B>(name: Exclude<N, keyof A>, f: (a: A) => WispEither<E, B>) => (ma: WispEither<E, A>) => WispEither<E, { readonly [K in N | keyof A]: K extends keyof A ? A[K] : B; }>;
30
+ const chainFirst: <A, E, _>(f: (a: A) => WispEither<E, _>) => (first: WispEither<E, A>) => WispEither<E, A>;
31
+ const sequence: <E, A>(ta: readonly WispEither<E, A>[]) => WispEither<E, readonly A[]>;
32
+ const liftF: <E, A extends SigilShape>(fa: A) => WispEither<E, A extends SigilShape ? import("#/contracts").Echo<A> : unknown>;
33
+ const bindF: <N extends string, E, A, B extends SigilShape>(name: Exclude<N, keyof A>, f: (a: A) => B) => (ma: WispEither<E, A>) => WispEither<E, { readonly [K in N | keyof A]: K extends keyof A ? A[K] : B extends SigilShape ? import("#/contracts").Echo<B> : unknown; }>;
34
+ const chainF: <E, A, B extends SigilShape>(f: (a: A) => B) => (ma: WispEither<E, A>) => WispEither<E, B extends SigilShape ? import("#/contracts").Echo<B> : unknown>;
35
+ const chainFirstF: <E, A, _ extends SigilShape>(f: (a: A) => _) => (ma: WispEither<E, A>) => WispEither<E, A>;
36
+ const fromIO: <A, E>(fa: import("fp-ts/lib/IO").IO<A>) => WispEither<E, A>;
37
+ const chainFirstIOK: <A, B>(f: (a: A) => import("fp-ts/lib/IO").IO<B>) => <E>(first: WispEither<E, A>) => WispEither<E, A>;
38
+ const chainIOK: <A, B>(f: (a: A) => import("fp-ts/lib/IO").IO<B>) => <E>(first: WispEither<E, A>) => WispEither<E, B>;
39
+ const alt: <E, A>(second: import("fp-ts/function").LazyArg<Wisp<either.Either<E, A>>>) => (first: Wisp<either.Either<E, A>>) => Wisp<either.Either<E, A>>;
40
+ const bimap: <E, G, A, B>(f: (e: E) => G, g: (a: A) => B) => (self: Wisp<either.Either<E, A>>) => Wisp<either.Either<G, B>>;
41
+ const chainNullableK: <E>(e: E) => <A, B>(f: (a: A) => B | null | undefined) => (ma: Wisp<either.Either<E, A>>) => Wisp<either.Either<E, NonNullable<B>>>;
42
+ const fromNullable: <E>(e: E) => <A>(a: A) => Wisp<either.Either<E, NonNullable<A>>>;
43
+ const getOrElse: <E, A>(onLeft: (e: E) => Wisp<A>) => (ma: Wisp<either.Either<E, A>>) => Wisp<A>;
44
+ const mapLeft: <E, G>(f: (e: E) => G) => <A>(self: Wisp<either.Either<E, A>>) => Wisp<either.Either<G, A>>;
45
+ const match: <E, B, A>(onLeft: (e: E) => B, onRight: (a: A) => B) => (ma: Wisp<either.Either<E, A>>) => Wisp<B>;
46
+ const matchE: <E, B, A>(onLeft: (e: E) => Wisp<B>, onRight: (a: A) => Wisp<B>) => (ma: Wisp<either.Either<E, A>>) => Wisp<B>;
47
+ const orElse: <E1, E2, A>(onLeft: (e: E1) => Wisp<either.Either<E2, A>>) => (ma: Wisp<either.Either<E1, A>>) => Wisp<either.Either<E2, A>>;
48
+ const orElseFirst: <E, B>(onLeft: (e: E) => Wisp<either.Either<E, B>>) => <A>(ma: Wisp<either.Either<E, A>>) => Wisp<either.Either<E, A>>;
49
+ const orLeft: <E1, E2>(onLeft: (e: E1) => Wisp<E2>) => <A>(fa: Wisp<either.Either<E1, A>>) => Wisp<either.Either<E2, A>>;
50
+ const swap: <E, A>(ma: Wisp<either.Either<E, A>>) => Wisp<either.Either<A, E>>;
51
+ const toUnion: <E, A>(fa: Wisp<either.Either<E, A>>) => Wisp<E | A>;
52
+ }
53
+ //# sourceMappingURL=wisp-either.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wisp-either.d.ts","sourceRoot":"","sources":["../../../src/internal/fp/wisp-either.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,EAAW,KAAK,IAAI,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAiB,MAAM,OAAO,CAAC;AAErF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,QAAQ,WAAW,CAAC;IACzB,UAAU,UAAU,CAAC,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACxD;CACF;AAGD,yBAAiB,UAAU,CAAC;IACnB,MAAM,GAAG,eAAe,CAAC;IAChC,KAAY,GAAG,GAAG,OAAO,GAAG,CAAC;IAE7B,KAAY,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAElD,MAAM,IAAI,mDAA6B,CAAC;IACxC,MAAM,KAAK,mDAA8B,CAAC;IAE1C,MAAM,GAAG,2FAA4B,CAAC;IACtC,MAAM,EAAE,qHAAyB,CAAC;IAClC,MAAM,KAAK,mHAA4B,CAAC;IAExC,MAAM,QAAQ,0DAA8B,CAAC;IAC7C,MAAM,SAAS,0DAA+B,CAAC;IAE/C,MAAM,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAGzC,CAAC;IAEK,MAAM,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAGzC,CAAC;IAEK,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAInC,CAAC;IAEK,MAAM,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,CAKrD,CAAC;IAEK,MAAM,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAKrC,CAAC;IAEK,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAMnC,CAAC;IAEK,MAAM,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,UAAU,CAMhE,CAAC;IAEK,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAGxC,CAAC;IAEK,MAAM,IAAI,kMAAsB,CAAC;IACjC,MAAM,UAAU,2FAA4B,CAAC;IAE7C,MAAM,QAAQ,wEAAsC,CAAC;IAErD,MAAQ,KAAK,mHAAY,CAAC;IAC1B,MAAM,KAAK,mQAAyB,CAAC;IACrC,MAAM,MAAM,yJAA0B,CAAC;IACvC,MAAM,WAAW,4FAA+B,CAAC;IAEjD,MAAQ,MAAM,8DAAW,CAAC;IAC1B,MAAM,aAAa,uGAAwC,CAAC;IAC5D,MAAM,QAAQ,uGAAmC,CAAC;IAElD,MAAM,GAAG,gJAA0B,CAAC;IACpC,MAAM,KAAK,gHAA4B,CAAC;IACxC,MAAM,cAAc,qIAAqC,CAAC;IAC1D,MAAM,YAAY,kEAAqC,CAAC;IACxD,MAAM,SAAS,iFAAgC,CAAC;IAChD,MAAM,OAAO,6FAAgC,CAAC;IAC9C,MAAM,KAAK,oGAA4B,CAAC;IACxC,MAAM,MAAM,gHAA6B,CAAC;IAC1C,MAAM,MAAM,8HAA6B,CAAC;IAC1C,MAAM,WAAW,wHAAkC,CAAC;IACpD,MAAM,MAAM,4GAA6B,CAAC;IAC1C,MAAM,IAAI,oEAA6B,CAAC;IACxC,MAAM,OAAO,sDAAgC,CAAC;CACtD"}
@@ -0,0 +1,52 @@
1
+ import { SigilShape, Wisp } from '../../contracts';
2
+ import { applicative, apply, functor, monad, option, pointed, chain as fpChain, fromIO as fpFromIO } from 'fp-ts';
3
+ import { lifting } from './lifting';
4
+ import { sigil } from './sigil';
5
+ declare module "fp-ts/HKT" {
6
+ interface URItoKind<A> {
7
+ readonly [wispOption.URI]: wispOption.WispOption<A>;
8
+ }
9
+ }
10
+ export declare namespace wispOption {
11
+ const URI = "WispOption";
12
+ type URI = typeof URI;
13
+ type WispOption<A> = Wisp<option.Option<A>>;
14
+ const some: <A>(a: A) => Wisp<option.Option<A>>;
15
+ const map: <A, B>(f: (a: A) => B) => (fa: Wisp<option.Option<A>>) => Wisp<option.Option<B>>;
16
+ const ap: <A>(fa: Wisp<option.Option<A>>) => <B>(fab: Wisp<option.Option<(a: A) => B>>) => Wisp<option.Option<B>>;
17
+ const chain: <A, B>(f: (a: A) => Wisp<option.Option<B>>) => (ma: Wisp<option.Option<A>>) => Wisp<option.Option<B>>;
18
+ const fromWisp: <A>(ma: Wisp<A>) => Wisp<option.Option<A>>;
19
+ const Pointed: pointed.Pointed1<URI>;
20
+ const Functor: functor.Functor1<URI>;
21
+ const Apply: apply.Apply1<URI>;
22
+ const Applicative: applicative.Applicative1<URI>;
23
+ const Chain: fpChain.Chain1<URI>;
24
+ const Monad: monad.Monad1<URI>;
25
+ const Lifting: lifting.Lifting<URI, sigil.URI, SigilShape>;
26
+ const FromIO: fpFromIO.FromIO1<URI>;
27
+ const bind: <N extends string, A, B>(name: Exclude<N, keyof A>, f: (a: A) => WispOption<B>) => (ma: WispOption<A>) => WispOption<{ readonly [K in N | keyof A]: K extends keyof A ? A[K] : B; }>;
28
+ const chainFirst: <A, _>(f: (a: A) => WispOption<_>) => (first: WispOption<A>) => WispOption<A>;
29
+ const sequence: <A>(ta: readonly WispOption<A>[]) => WispOption<readonly A[]>;
30
+ const liftF: <A extends SigilShape>(fa: A) => WispOption<A extends SigilShape ? import("#/contracts").Echo<A> : unknown>;
31
+ const bindF: <N extends string, A, B extends SigilShape>(name: Exclude<N, keyof A>, f: (a: A) => B) => (ma: WispOption<A>) => WispOption<{ readonly [K in N | keyof A]: K extends keyof A ? A[K] : B extends SigilShape ? import("#/contracts").Echo<B> : unknown; }>;
32
+ const chainF: <A, B extends SigilShape>(f: (a: A) => B) => (ma: WispOption<A>) => WispOption<B extends SigilShape ? import("#/contracts").Echo<B> : unknown>;
33
+ const chainFirstF: <A, _ extends SigilShape>(f: (a: A) => _) => (ma: WispOption<A>) => WispOption<A>;
34
+ const fromIO: <A>(fa: import("fp-ts/lib/IO").IO<A>) => WispOption<A>;
35
+ const chainFirstIOK: <A, B>(f: (a: A) => import("fp-ts/lib/IO").IO<B>) => (first: WispOption<A>) => WispOption<A>;
36
+ const chainIOK: <A, B>(f: (a: A) => import("fp-ts/lib/IO").IO<B>) => (first: WispOption<A>) => WispOption<B>;
37
+ const alt: <A>(second: import("fp-ts/function").LazyArg<Wisp<option.Option<A>>>) => (first: Wisp<option.Option<A>>) => Wisp<option.Option<A>>;
38
+ const chainNullableK: <A, B>(f: (a: A) => B | null | undefined) => (ma: Wisp<option.Option<A>>) => Wisp<option.Option<NonNullable<B>>>;
39
+ const chainOptionK: <A, B>(f: (a: A) => option.Option<B>) => (ma: Wisp<option.Option<A>>) => Wisp<option.Option<B>>;
40
+ const fromEither: <A>(e: import("fp-ts/lib/Either").Either<unknown, A>) => Wisp<option.Option<A>>;
41
+ const fromNullable: <A>(a: A) => Wisp<option.Option<NonNullable<A>>>;
42
+ const fromPredicate: {
43
+ <A, B extends A>(refinement: import("fp-ts/lib/Refinement").Refinement<A, B>): (a: A) => Wisp<option.Option<B>>;
44
+ <A>(predicate: import("fp-ts/lib/Predicate").Predicate<A>): <B extends A>(b: B) => Wisp<option.Option<B>>;
45
+ <A>(predicate: import("fp-ts/lib/Predicate").Predicate<A>): (a: A) => Wisp<option.Option<A>>;
46
+ };
47
+ const getOrElse: <A>(onNone: import("fp-ts/function").LazyArg<Wisp<A>>) => (fa: Wisp<option.Option<A>>) => Wisp<A>;
48
+ const match: <B, A>(onNone: () => B, onSome: (a: A) => B) => (ma: Wisp<option.Option<A>>) => Wisp<B>;
49
+ const matchE: <B, A>(onNone: () => Wisp<B>, onSome: (a: A) => Wisp<B>) => (ma: Wisp<option.Option<A>>) => Wisp<B>;
50
+ const zero: <A>() => Wisp<option.Option<A>>;
51
+ }
52
+ //# sourceMappingURL=wisp-option.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wisp-option.d.ts","sourceRoot":"","sources":["../../../src/internal/fp/wisp-option.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,IAAI,QAAQ,EAA0B,MAAM,OAAO,CAAC;AAErF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,QAAQ,WAAW,CAAC;IACzB,UAAU,SAAS,CAAC,CAAC;QACnB,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACrD;CACF;AAGD,yBAAiB,UAAU,CAAC;IACnB,MAAM,GAAG,eAAe,CAAC;IAChC,KAAY,GAAG,GAAG,OAAO,GAAG,CAAC;IAE7B,KAAY,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5C,MAAM,IAAI,qCAA6B,CAAC;IAExC,MAAM,GAAG,kFAA4B,CAAC;IACtC,MAAM,EAAE,yGAAyB,CAAC;IAClC,MAAM,KAAK,uGAA4B,CAAC;IAExC,MAAM,QAAQ,4CAA8B,CAAC;IAE7C,MAAM,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAGzC,CAAC;IAEK,MAAM,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAGzC,CAAC;IAEK,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAInC,CAAC;IAEK,MAAM,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,CAKrD,CAAC;IAEK,MAAM,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAKrC,CAAC;IAEK,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAMnC,CAAC;IAEK,MAAM,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,UAAU,CAM/D,CAAC;IAEK,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAGxC,CAAC;IAEK,MAAM,IAAI,sLAAsB,CAAC;IACjC,MAAM,UAAU,+EAA4B,CAAC;IAE7C,MAAM,QAAQ,+DAAsC,CAAC;IAErD,MAAQ,KAAK,6GAAY,CAAC;IAC1B,MAAM,KAAK,0PAAyB,CAAC;IACrC,MAAM,MAAM,gJAA0B,CAAC;IACvC,MAAM,WAAW,mFAA+B,CAAC;IAEjD,MAAQ,MAAM,wDAAW,CAAC;IAC1B,MAAM,aAAa,8FAAwC,CAAC;IAC5D,MAAM,QAAQ,8FAAmC,CAAC;IAElD,MAAM,GAAG,oIAA0B,CAAC;IACpC,MAAM,cAAc,kHAAqC,CAAC;IAC1D,MAAM,YAAY,iGAAmC,CAAC;IACtD,MAAM,UAAU,iFAAmC,CAAC;IACpD,MAAM,YAAY,kDAAqC,CAAC;IACxD,MAAM,aAAa;;;;KAAsC,CAAC;IAC1D,MAAM,SAAS,mGAAgC,CAAC;IAChD,MAAM,KAAK,yFAA8B,CAAC;IAC1C,MAAM,MAAM,qGAA6B,CAAC;IAC1C,MAAM,IAAI,iCAA6B,CAAC;CAChD"}
@@ -0,0 +1,37 @@
1
+ import { SigilShape, Wisp } from '../../contracts';
2
+ import { applicative, apply, functor, monad, pointed, chain as fpChain, fromIO as fpFromIO } from 'fp-ts';
3
+ import { lifting } from './lifting';
4
+ import { sigil } from './sigil';
5
+ declare module "fp-ts/HKT" {
6
+ interface URItoKind<A> {
7
+ readonly [wisp.URI]: Wisp<A>;
8
+ }
9
+ }
10
+ export declare namespace wisp {
11
+ const URI = "Wisp";
12
+ type URI = typeof URI;
13
+ const Pointed: pointed.Pointed1<URI>;
14
+ const Functor: functor.Functor1<URI>;
15
+ const Apply: apply.Apply1<URI>;
16
+ const Applicative: applicative.Applicative1<URI>;
17
+ const Chain: fpChain.Chain1<URI>;
18
+ const Monad: monad.Monad1<URI>;
19
+ const Do: import("#/contracts").RestingWisp<null>;
20
+ const Lifting: lifting.Lifting<URI, sigil.URI, SigilShape>;
21
+ const FromIO: fpFromIO.FromIO1<URI>;
22
+ const of: <A>(a: A) => Wisp<A>;
23
+ const map: <A, B>(f: (a: A) => B) => (fa: Wisp<A>) => Wisp<B>;
24
+ const ap: <A>(fa: Wisp<A>) => <B>(fab: Wisp<(a: A) => B>) => Wisp<B>;
25
+ const chain: <A, B>(f: (a: A) => Wisp<B>) => (fa: Wisp<A>) => Wisp<B>;
26
+ const bind: <N extends string, A, B>(name: Exclude<N, keyof A>, f: (a: A) => Wisp<B>) => (ma: Wisp<A>) => Wisp<{ readonly [K in N | keyof A]: K extends keyof A ? A[K] : B; }>;
27
+ const chainFirst: <A, _>(f: (a: A) => Wisp<_>) => (first: Wisp<A>) => Wisp<A>;
28
+ const sequence: <A>(ta: readonly Wisp<A>[]) => Wisp<readonly A[]>;
29
+ const liftF: <A extends SigilShape>(fa: A) => Wisp<A extends SigilShape ? import("#/contracts").Echo<A> : unknown>;
30
+ const bindF: <N extends string, A, B extends SigilShape>(name: Exclude<N, keyof A>, f: (a: A) => B) => (ma: Wisp<A>) => Wisp<{ readonly [K in N | keyof A]: K extends keyof A ? A[K] : B extends SigilShape ? import("#/contracts").Echo<B> : unknown; }>;
31
+ const chainF: <A, B extends SigilShape>(f: (a: A) => B) => (ma: Wisp<A>) => Wisp<B extends SigilShape ? import("#/contracts").Echo<B> : unknown>;
32
+ const chainFirstF: <A, _ extends SigilShape>(f: (a: A) => _) => (ma: Wisp<A>) => Wisp<A>;
33
+ const fromIO: <A>(fa: import("fp-ts/lib/IO").IO<A>) => Wisp<A>;
34
+ const chainFirstIOK: <A, B>(f: (a: A) => import("fp-ts/lib/IO").IO<B>) => (first: Wisp<A>) => Wisp<A>;
35
+ const chainIOK: <A, B>(f: (a: A) => import("fp-ts/lib/IO").IO<B>) => (first: Wisp<A>) => Wisp<B>;
36
+ }
37
+ //# sourceMappingURL=wisp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wisp.d.ts","sourceRoot":"","sources":["../../../src/internal/fp/wisp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEzE,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,IAAI,QAAQ,EAA2B,MAAM,OAAO,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,QAAQ,WAAW,CAAC;IACzB,UAAU,SAAS,CAAC,CAAC;QACnB,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;KAC9B;CACF;AAGD,yBAAiB,IAAI,CAAC;IACb,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAY,GAAG,GAAG,OAAO,GAAG,CAAC;IAEtB,MAAM,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAGzC,CAAC;IAEK,MAAM,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAMzC,CAAC;IAEK,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAQnC,CAAC;IAEK,MAAM,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,CAKrD,CAAC;IAEK,MAAM,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAQrC,CAAC;IAEK,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAMnC,CAAC;IAEK,MAAM,EAAE,yCAAoB,CAAC;IAE7B,MAAM,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,UAAU,CAM/D,CAAC;IAEK,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAGxC,CAAC;IAEK,MAAQ,EAAE,sBAAY,CAAC;IAEvB,MAAM,GAAG,oDAAwB,CAAC;IAClC,MAAM,EAAE,4DAAqB,CAAC;IAC9B,MAAM,KAAK,0DAAwB,CAAC;IAEpC,MAAM,IAAI,oKAAsB,CAAC;IACjC,MAAM,UAAU,6DAA4B,CAAC;IAE7C,MAAM,QAAQ,mDAAsC,CAAC;IACrD,MAAQ,KAAK,uGAAY,CAAC;IAC1B,MAAM,KAAK,8OAAyB,CAAC;IACrC,MAAM,MAAM,oIAA0B,CAAC;IACvC,MAAM,WAAW,uEAA+B,CAAC;IAEjD,MAAQ,MAAM,kDAAW,CAAC;IAC1B,MAAM,aAAa,kFAAwC,CAAC;IAC5D,MAAM,QAAQ,kFAAmC,CAAC;CAC1D"}
@@ -0,0 +1,4 @@
1
+ export * from './interpreter';
2
+ export type * from './process-step';
3
+ export * from './scope-zone';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interpreter/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,mBAAmB,gBAAgB,CAAC;AACpC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { ContextKey, FutureKey, FutureResult, FutureSettleKey, ProcessRef, Ritual, ScopeRef, Suppressor } from '../contracts';
2
+ import { FutureSettler } from './runtime-future';
3
+ import { ScopeDescriptor } from '../sigils';
4
+ import { option } from 'fp-ts';
5
+ import { Disposer } from '../utils';
6
+ import { Failure } from '../failures';
7
+ import { ProcessStep } from './process-step';
8
+ import { ScopeZone } from './scope-zone';
9
+ import { TaggedUnion } from 'type-fest';
10
+ export declare class Interpreter {
11
+ #private;
12
+ private readonly entry;
13
+ private readonly zoneRoot;
14
+ static create(entry: Ritual<unknown>, zone: ScopeZone): Interpreter;
15
+ step<Relic>(process: ProcessRef<Relic>, suppressor: Suppressor): ProcessStep<Relic>;
16
+ spawn<Relic>(scope: ScopeRef<unknown>, worker: Ritual<Relic>, suppressor: Suppressor): ProcessRef<Relic>;
17
+ lookup<Value>(scope: ScopeRef<unknown>, contextKey: ContextKey<Value>): option.Option<Value>;
18
+ poll<Result>(future: FutureKey<Result> | FutureSettleKey<Result>): option.Option<FutureResult<Result>>;
19
+ wait<Result>(future: FutureKey<Result> | FutureSettleKey<Result>, onSettled: FutureSettler<Result>): Disposer;
20
+ forceFailed(scope: ScopeRef<unknown>, failure: Failure, suppressor: Suppressor): void;
21
+ scopeState(scope: ScopeRef<unknown>): ScopeState;
22
+ processState(process: ProcessRef<unknown>): ProcessState;
23
+ scope(process: ProcessRef<unknown>): ScopeRef<unknown>;
24
+ get scopeRoot(): ScopeRef<void>;
25
+ get processRoot(): ProcessRef<void>;
26
+ get isClosed(): boolean;
27
+ protected constructor(entry: Ritual<unknown>, zoneRoot: ScopeZone);
28
+ protected scopeBranch(scope: ScopeRef<unknown>, entry: Ritual<unknown>, descriptor: ScopeDescriptor, zone: ScopeZone, suppressor: Suppressor): ScopeRef<unknown>;
29
+ protected initialize(): void;
30
+ }
31
+ export type ScopeState = TaggedUnion<"status", {
32
+ closed: ScopeInfo;
33
+ closing: ScopeInfo;
34
+ open: ScopeInfo;
35
+ }>;
36
+ export type ProcessState = TaggedUnion<"status", {
37
+ closed: {};
38
+ open: {
39
+ readonly activity: "running" | "waiting";
40
+ };
41
+ }>;
42
+ export interface ScopeInfo extends Record<string, unknown> {
43
+ readonly children: readonly ScopeRef<unknown>[];
44
+ readonly descriptor: ScopeDescriptor;
45
+ readonly parent: ScopeRef<unknown> | null;
46
+ readonly zone: ScopeZone;
47
+ }
48
+ //# sourceMappingURL=interpreter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpreter.d.ts","sourceRoot":"","sources":["../../src/interpreter/interpreter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { FutureResult } from '../contracts';
2
+ import { TaggedUnion } from 'type-fest';
3
+ export type ProcessStep<Relic> = TaggedUnion<"disposition", {
4
+ waiting: {};
5
+ ceded: {};
6
+ interpreted: {};
7
+ resonated: {};
8
+ exited: {
9
+ readonly result: FutureResult<Relic>;
10
+ };
11
+ }>;
12
+ export type ProcessStepDisposition = ProcessStep<unknown>["disposition"];
13
+ export type ProcessStepOf<Relic, Disposition extends ProcessStepDisposition> = Extract<ProcessStep<Relic>, {
14
+ readonly disposition: Disposition;
15
+ }>;
16
+ export declare function processWaitingStep<Relic>(): ProcessStepOf<Relic, "waiting">;
17
+ export declare function processCededStep<Relic>(): ProcessStepOf<Relic, "ceded">;
18
+ export declare function processInterpretedStep<Relic>(): ProcessStepOf<Relic, "interpreted">;
19
+ export declare function processResonatedStep<Relic>(): ProcessStepOf<Relic, "resonated">;
20
+ export declare function processExitedStep<Relic>(result: FutureResult<Relic>): ProcessStepOf<Relic, "exited">;
21
+ //# sourceMappingURL=process-step.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-step.d.ts","sourceRoot":"","sources":["../../src/interpreter/process-step.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,MAAM,WAAW,CAAC,KAAK,IAAI,WAAW,CAC1C,aAAa,EACb;IACE,OAAO,EAAE,EAAE,CAAC;IACZ,KAAK,EAAE,EAAE,CAAC;IACV,WAAW,EAAE,EAAE,CAAC;IAChB,SAAS,EAAE,EAAE,CAAC;IACd,MAAM,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,CAAA;KAAE,CAAC;CAClD,CACF,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC;AAEzE,MAAM,MAAM,aAAa,CAAC,KAAK,EAAE,WAAW,SAAS,sBAAsB,IAAI,OAAO,CACpF,WAAW,CAAC,KAAK,CAAC,EAClB;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;CAAE,CACtC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAE3E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAEvE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,CAEnF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,CAE/E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EACrC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,GAC1B,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAEhC"}
@@ -0,0 +1,14 @@
1
+ import { FutureHandle, FutureKey, FutureResult, FutureSettleKey, KEY_TOKEN, Suppressor } from '../contracts';
2
+ import { Disposer } from '../utils';
3
+ import { option } from 'fp-ts';
4
+ export declare class RuntimeFuture<out Result> implements FutureKey<Result>, FutureSettleKey<Result> {
5
+ #private;
6
+ poll(): option.Option<FutureResult<Result>>;
7
+ wait(onSettled: FutureSettler<Result>): Disposer;
8
+ settle(result: FutureResult<Result>): FutureNotification;
9
+ handle(): FutureHandle<Result>;
10
+ readonly [KEY_TOKEN]: FutureKey<Result>[typeof KEY_TOKEN] & FutureSettleKey<Result>[typeof KEY_TOKEN];
11
+ }
12
+ export type FutureSettler<out Result> = (result: FutureResult<Result>, suppressor: Suppressor) => void;
13
+ export type FutureNotification = (suppressor: Suppressor) => void;
14
+ //# sourceMappingURL=runtime-future.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-future.d.ts","sourceRoot":"","sources":["../../src/interpreter/runtime-future.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,eAAe,EACf,SAAS,EACT,UAAU,EACX,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG/B,qBAAa,aAAa,CAAC,GAAG,CAAC,MAAM,CAAE,YAAW,SAAS,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC;;IACnF,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAQ3C,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,QAAQ;IAahD,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,kBAAkB;IAexD,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC;IAKrC,SAAwB,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,SAAS,CAAC,GACtE,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC;CAG7C;AAED,MAAM,MAAM,aAAa,CAAC,GAAG,CAAC,MAAM,IAAI,CACtC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAC5B,UAAU,EAAE,UAAU,KACnB,IAAI,CAAC;AAEV,MAAM,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { ProcessRef, ScopeRef } from '../../contracts';
2
+ import { RuntimeProcessKeeper } from './keeper';
3
+ import { RuntimeProcessRunner } from './runner';
4
+ export interface RuntimeProcessHandle<Relic> extends ProcessRef<Relic> {
5
+ keeper(): RuntimeProcessKeeper;
6
+ runner(): RuntimeProcessRunner<Relic>;
7
+ readonly scopeRef: ScopeRef<unknown>;
8
+ }
9
+ //# sourceMappingURL=handle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle.d.ts","sourceRoot":"","sources":["../../../src/interpreter/runtime-process/handle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,MAAM,WAAW,oBAAoB,CAAC,KAAK,CAAE,SAAQ,UAAU,CAAC,KAAK,CAAC;IACpE,MAAM,IAAI,oBAAoB,CAAC;IAC/B,MAAM,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;CACtC"}
@@ -0,0 +1,5 @@
1
+ export * from './handle';
2
+ export * from './keeper';
3
+ export * from './process';
4
+ export * from './runner';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interpreter/runtime-process/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { ProcessRef, ScopeRef } from '../../contracts';
2
+ import { Failure } from '../../failures';
3
+ import { FutureNotification } from '../runtime-future';
4
+ import { ProcessDescriptor } from '../../sigils';
5
+ import { TaggedUnion } from 'type-fest';
6
+ export interface RuntimeProcessKeeper extends ProcessRef<unknown> {
7
+ stateAs<Status extends RuntimeProcessKeeperStatus>(status: Status): RuntimeProcessKeeperStateOf<Status>;
8
+ resume(input: unknown): void;
9
+ wait(dispose: () => void): void;
10
+ complete(result: unknown): ProcessClosure;
11
+ fail(failure: Failure): ProcessClosure;
12
+ cancel(): ProcessClosure;
13
+ readonly descriptor: ProcessDescriptor;
14
+ readonly isClosed: boolean;
15
+ readonly status: RuntimeProcessKeeperStatus;
16
+ }
17
+ export type RuntimeProcessKeeperStateOf<Status extends RuntimeProcessKeeperStatus> = Extract<RuntimeProcessKeeperState, {
18
+ readonly status: Status;
19
+ }>;
20
+ export interface ProcessClosure {
21
+ readonly notification: FutureNotification;
22
+ readonly cleanups: CleanupTask[];
23
+ }
24
+ export type RuntimeProcessKeeperState = TaggedUnion<"status", {
25
+ canceled: {};
26
+ completed: {
27
+ readonly result: unknown;
28
+ };
29
+ failed: {
30
+ readonly failure: Failure;
31
+ };
32
+ running: {};
33
+ waiting: {};
34
+ }>;
35
+ export type RuntimeProcessKeeperStatus = RuntimeProcessKeeperState["status"];
36
+ export type CleanupTask = (spawn: CleanupSpawner) => void;
37
+ export type CleanupSpawner = (provideProcess: ProvideRuntimeProcess) => void;
38
+ export type ProvideRuntimeProcess = (scopeRef: ScopeRef<unknown>, descriptor: ProcessDescriptor) => RuntimeProcessKeeper;
39
+ //# sourceMappingURL=keeper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keeper.d.ts","sourceRoot":"","sources":["../../../src/interpreter/runtime-process/keeper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,WAAW,oBAAqB,SAAQ,UAAU,CAAC,OAAO,CAAC;IAC/D,OAAO,CAAC,MAAM,SAAS,0BAA0B,EAC/C,MAAM,EAAE,MAAM,GACb,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,CAAC;IACvC,MAAM,IAAI,cAAc,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;CAC7C;AAED,MAAM,MAAM,2BAA2B,CAAC,MAAM,SAAS,0BAA0B,IAAI,OAAO,CAC1F,yBAAyB,EACzB;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAC5B,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;CAClC;AAED,MAAM,MAAM,yBAAyB,GAAG,WAAW,CACjD,QAAQ,EACR;IACE,QAAQ,EAAE,EAAE,CAAC;IACb,SAAS,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IACxC,MAAM,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACtC,OAAO,EAAE,EAAE,CAAC;IACZ,OAAO,EAAE,EAAE,CAAC;CACb,CACF,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;AAE7E,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;AAE1D,MAAM,MAAM,cAAc,GAAG,CAAC,cAAc,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAE7E,MAAM,MAAM,qBAAqB,GAAG,CAClC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC3B,UAAU,EAAE,iBAAiB,KAC1B,oBAAoB,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { CleanupTask, ProcessClosure, RuntimeProcessKeeper } from './keeper';
2
+ import { FutureKey, ProcessRef, REF_TOKEN, Ritual, ScopeRef } from '../../contracts';
3
+ import { ProcessDescriptor, SelfHandle } from '../../sigils';
4
+ import { RuntimeProcessRunner, RuntimeProcessRunnerNext } from './runner';
5
+ import { Failure } from '../../failures';
6
+ import { RuntimeProcessHandle } from './handle';
7
+ import { Stepper } from './stepper';
8
+ import { TaggedUnion } from 'type-fest';
9
+ export declare class RuntimeProcess<Relic> implements RuntimeProcessHandle<Relic>, RuntimeProcessRunner<Relic>, RuntimeProcessKeeper {
10
+ #private;
11
+ private readonly scopeReference;
12
+ private readonly processDescriptor;
13
+ static create<Relic>(scopeRef: ScopeRef<unknown>, worker: Ritual<Relic>, descriptor: ProcessDescriptor): RuntimeProcessHandle<Relic>;
14
+ selfHandle(): SelfHandle;
15
+ runner(): RuntimeProcessRunner<Relic>;
16
+ keeper(): RuntimeProcessKeeper;
17
+ stateAs<Status extends RuntimeProcessStatus>(_status: Status): RuntimeProcessStateOf<Relic, Status>;
18
+ resume(input: unknown): void;
19
+ wait(dispose: () => void): void;
20
+ complete(result: unknown): ProcessClosure;
21
+ fail(failure: Failure): ProcessClosure;
22
+ cancel(): ProcessClosure;
23
+ defer(cleanup: CleanupTask): void;
24
+ get exitFuture(): FutureKey<Relic>;
25
+ get descriptor(): ProcessDescriptor;
26
+ get scopeRef(): ScopeRef<unknown>;
27
+ get status(): RuntimeProcessStatus;
28
+ get isClosed(): boolean;
29
+ readonly [REF_TOKEN]: ProcessRef<Relic>[typeof REF_TOKEN];
30
+ private constructor();
31
+ }
32
+ type RuntimeProcessStateOf<Relic, Status extends RuntimeProcessStatus> = Extract<RuntimeProcessState<Relic>, {
33
+ readonly status: Status;
34
+ }>;
35
+ type RuntimeProcessStatus = RuntimeProcessState<unknown>["status"];
36
+ type RuntimeProcessState<Relic> = TaggedUnion<"status", {
37
+ canceled: {};
38
+ completed: {
39
+ readonly result: Relic;
40
+ };
41
+ failed: {
42
+ readonly failure: Failure;
43
+ };
44
+ running: {
45
+ next(): RuntimeProcessRunnerNext<Relic>;
46
+ readonly stepper: Stepper<Relic>;
47
+ };
48
+ waiting: {
49
+ dispose(): void;
50
+ readonly stepper: Stepper<Relic>;
51
+ };
52
+ }>;
53
+ export {};
54
+ //# sourceMappingURL=process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/interpreter/runtime-process/process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { Echo, ProcessRef } from '../../contracts';
2
+ import { SelfHandle, Sigil } from '../../sigils';
3
+ import { CleanupTask } from './keeper';
4
+ import { Failure } from '../../failures';
5
+ import { TaggedUnion } from 'type-fest';
6
+ export interface RuntimeProcessRunner<Relic> extends ProcessRef<Relic> {
7
+ defer(cleanup: CleanupTask): void;
8
+ selfHandle(): SelfHandle;
9
+ stateAs<Status extends RuntimeProcessRunnerStatus>(status: Status): RuntimeProcessRunnerStateOf<Relic, Status>;
10
+ readonly isClosed: boolean;
11
+ readonly status: RuntimeProcessRunnerStatus;
12
+ }
13
+ export type RuntimeProcessRunnerStatus = RuntimeProcessRunnerState<unknown>["status"];
14
+ export type RuntimeProcessRunnerStateOf<Relic, Status extends RuntimeProcessRunnerStatus> = Extract<RuntimeProcessRunnerState<Relic>, {
15
+ readonly status: Status;
16
+ }>;
17
+ export type RuntimeProcessRunnerState<Relic> = TaggedUnion<"status", {
18
+ canceled: {};
19
+ completed: {
20
+ readonly result: Relic;
21
+ };
22
+ failed: {
23
+ readonly failure: Failure;
24
+ };
25
+ running: {
26
+ next(): RuntimeProcessRunnerNext<Relic>;
27
+ };
28
+ waiting: {};
29
+ }>;
30
+ export type RuntimeProcessRunnerNext<Relic, SigilItem extends Sigil = Sigil> = TaggedUnion<"kind", {
31
+ echo: {
32
+ accept(echo: Echo<SigilItem>): void;
33
+ readonly sigil: SigilItem;
34
+ };
35
+ relic: {
36
+ readonly relic: Relic;
37
+ };
38
+ resonate: {
39
+ readonly sigil: Sigil;
40
+ };
41
+ }>;
42
+ export type RuntimeProcessNextEcho<SigilItem extends Sigil> = Extract<RuntimeProcessRunnerNext<never, SigilItem>, {
43
+ readonly kind: "echo";
44
+ }>;
45
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/interpreter/runtime-process/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,WAAW,oBAAoB,CAAC,KAAK,CAAE,SAAQ,UAAU,CAAC,KAAK,CAAC;IACpE,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,UAAU,IAAI,UAAU,CAAC;IACzB,OAAO,CAAC,MAAM,SAAS,0BAA0B,EAC/C,MAAM,EAAE,MAAM,GACb,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;CAC7C;AAED,MAAM,MAAM,0BAA0B,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;AAEtF,MAAM,MAAM,2BAA2B,CAAC,KAAK,EAAE,MAAM,SAAS,0BAA0B,IAAI,OAAO,CACjG,yBAAyB,CAAC,KAAK,CAAC,EAChC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAC5B,CAAC;AAEF,MAAM,MAAM,yBAAyB,CAAC,KAAK,IAAI,WAAW,CACxD,QAAQ,EACR;IACE,QAAQ,EAAE,EAAE,CAAC;IACb,SAAS,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAA;KAAE,CAAC;IACtC,MAAM,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACtC,OAAO,EAAE;QAAE,IAAI,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAA;KAAE,CAAC;IACrD,OAAO,EAAE,EAAE,CAAC;CACb,CACF,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,KAAK,EAAE,SAAS,SAAS,KAAK,GAAG,KAAK,IAAI,WAAW,CACxF,MAAM,EACN;IACE,IAAI,EAAE;QACJ,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;KAC3B,CAAC;IACF,KAAK,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;IACjC,QAAQ,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;CACrC,CACF,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,SAAS,SAAS,KAAK,IAAI,OAAO,CACnE,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,EAC1C;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAC1B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Ritual } from '../../contracts';
2
+ import { RuntimeProcessRunnerNext } from './runner';
3
+ export declare class Stepper<Relic> {
4
+ #private;
5
+ current(): RuntimeProcessRunnerNext<Relic>;
6
+ next(): RuntimeProcessRunnerNext<Relic>;
7
+ constructor(worker: Ritual<Relic>);
8
+ }
9
+ //# sourceMappingURL=stepper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepper.d.ts","sourceRoot":"","sources":["../../../src/interpreter/runtime-process/stepper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,MAAM,EAAsB,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAKzD,qBAAa,OAAO,CAAC,KAAK;;IACjB,OAAO,IAAI,wBAAwB,CAAC,KAAK,CAAC;IAwB1C,IAAI,IAAI,wBAAwB,CAAC,KAAK,CAAC;gBA8C3B,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;CAezC"}
@@ -0,0 +1,2 @@
1
+ export * from './runtime-scope';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interpreter/runtime-scope/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { option } from 'fp-ts';
2
+ import { MessageKey } from '../../contracts';
3
+ export declare class RuntimeMailbox<Receiver> {
4
+ #private;
5
+ tryReceive<Value>(messageKey: MessageKey<Value>): option.Option<Value>;
6
+ enqueueReceiver(receiver: Receiver, messageKey: MessageKey<unknown>): void;
7
+ send<Value>(messageKey: MessageKey<Value>, value: Value): Receiver | null;
8
+ cancelReceiver(receiver: Receiver): void;
9
+ clear(): void;
10
+ }
11
+ //# sourceMappingURL=runtime-mailbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-mailbox.d.ts","sourceRoot":"","sources":["../../../src/interpreter/runtime-scope/runtime-mailbox.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAiB,MAAM,OAAO,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,qBAAa,cAAc,CAAC,QAAQ;;IAC3B,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;IAuBtE,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI;IAQ1E,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI;IAyBzE,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAYxC,KAAK,IAAI,IAAI;CA6BrB"}