liminal 0.4.1 → 1.0.0-beta.2

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 (195) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +109 -0
  3. package/esm/client/Client.d.ts +39 -0
  4. package/esm/client/Client.d.ts.map +1 -0
  5. package/esm/client/Client.js +9 -0
  6. package/esm/client/Client.js.map +1 -0
  7. package/esm/client/Store.d.ts +3 -0
  8. package/esm/client/Store.d.ts.map +1 -0
  9. package/esm/client/Store.js +3 -0
  10. package/esm/client/Store.js.map +1 -0
  11. package/esm/client/Tx.d.ts +40 -0
  12. package/esm/client/Tx.d.ts.map +1 -0
  13. package/esm/client/Tx.js +36 -0
  14. package/esm/client/Tx.js.map +1 -0
  15. package/esm/client/mod.d.ts +4 -0
  16. package/esm/client/mod.d.ts.map +1 -0
  17. package/esm/client/mod.js +5 -0
  18. package/esm/client/mod.js.map +1 -0
  19. package/esm/core/Bool.d.ts +104 -0
  20. package/esm/core/Bool.d.ts.map +1 -0
  21. package/esm/core/Bool.js +73 -0
  22. package/esm/core/Bool.js.map +1 -0
  23. package/esm/core/Bytes.d.ts +39 -0
  24. package/esm/core/Bytes.d.ts.map +1 -0
  25. package/esm/core/Bytes.js +7 -0
  26. package/esm/core/Bytes.js.map +1 -0
  27. package/esm/core/Call.d.ts +11 -0
  28. package/esm/core/Call.d.ts.map +1 -0
  29. package/esm/core/Call.js +23 -0
  30. package/esm/core/Call.js.map +1 -0
  31. package/esm/core/Effect.d.ts +20 -0
  32. package/esm/core/Effect.d.ts.map +1 -0
  33. package/esm/core/Effect.js +37 -0
  34. package/esm/core/Effect.js.map +1 -0
  35. package/esm/core/Hash.d.ts +41 -0
  36. package/esm/core/Hash.d.ts.map +1 -0
  37. package/esm/core/Hash.js +8 -0
  38. package/esm/core/Hash.js.map +1 -0
  39. package/esm/core/Id.d.ts +198 -0
  40. package/esm/core/Id.d.ts.map +1 -0
  41. package/esm/core/Id.js +69 -0
  42. package/esm/core/Id.js.map +1 -0
  43. package/esm/core/Int.d.ts +768 -0
  44. package/esm/core/Int.d.ts.map +1 -0
  45. package/esm/core/Int.js +201 -0
  46. package/esm/core/Int.js.map +1 -0
  47. package/esm/core/Key.d.ts +40 -0
  48. package/esm/core/Key.d.ts.map +1 -0
  49. package/esm/core/Key.js +7 -0
  50. package/esm/core/Key.js.map +1 -0
  51. package/esm/core/MerkleList.d.ts +105 -0
  52. package/esm/core/MerkleList.d.ts.map +1 -0
  53. package/esm/core/MerkleList.js +82 -0
  54. package/esm/core/MerkleList.js.map +1 -0
  55. package/esm/core/MerkleMap.d.ts +87 -0
  56. package/esm/core/MerkleMap.d.ts.map +1 -0
  57. package/esm/core/MerkleMap.js +67 -0
  58. package/esm/core/MerkleMap.js.map +1 -0
  59. package/esm/core/None.d.ts +52 -0
  60. package/esm/core/None.d.ts.map +1 -0
  61. package/esm/core/None.js +12 -0
  62. package/esm/core/None.js.map +1 -0
  63. package/esm/core/State.d.ts +16 -0
  64. package/esm/core/State.d.ts.map +1 -0
  65. package/esm/core/State.js +22 -0
  66. package/esm/core/State.js.map +1 -0
  67. package/esm/core/String.d.ts +41 -0
  68. package/esm/core/String.d.ts.map +1 -0
  69. package/esm/core/String.js +4 -0
  70. package/esm/core/String.js.map +1 -0
  71. package/esm/core/Struct.d.ts +58 -0
  72. package/esm/core/Struct.d.ts.map +1 -0
  73. package/esm/core/Struct.js +13 -0
  74. package/esm/core/Struct.js.map +1 -0
  75. package/esm/core/Type.d.ts +78 -0
  76. package/esm/core/Type.d.ts.map +1 -0
  77. package/esm/core/Type.js +71 -0
  78. package/esm/core/Type.js.map +1 -0
  79. package/esm/core/Union.d.ts +43 -0
  80. package/esm/core/Union.d.ts.map +1 -0
  81. package/esm/core/Union.js +7 -0
  82. package/esm/core/Union.js.map +1 -0
  83. package/esm/core/Use.d.ts +62 -0
  84. package/esm/core/Use.d.ts.map +1 -0
  85. package/esm/core/Use.js +16 -0
  86. package/esm/core/Use.js.map +1 -0
  87. package/esm/core/mod.d.ts +18 -0
  88. package/esm/core/mod.d.ts.map +1 -0
  89. package/esm/core/mod.js +19 -0
  90. package/esm/core/mod.js.map +1 -0
  91. package/esm/lib/MerkleList.d.ts +4 -0
  92. package/esm/lib/MerkleList.d.ts.map +1 -0
  93. package/esm/lib/MerkleList.js +4 -0
  94. package/esm/lib/MerkleList.js.map +1 -0
  95. package/esm/lib/MerkleMap.d.ts +4 -0
  96. package/esm/lib/MerkleMap.d.ts.map +1 -0
  97. package/esm/lib/MerkleMap.js +4 -0
  98. package/esm/lib/MerkleMap.js.map +1 -0
  99. package/esm/lib/mod.d.ts +3 -0
  100. package/esm/lib/mod.d.ts.map +1 -0
  101. package/esm/lib/mod.js +3 -0
  102. package/esm/lib/mod.js.map +1 -0
  103. package/esm/mod.d.ts +3 -0
  104. package/esm/mod.d.ts.map +1 -0
  105. package/esm/mod.js +4 -0
  106. package/esm/mod.js.map +1 -0
  107. package/esm/package.json +3 -0
  108. package/esm/test/Signer.d.ts +10 -0
  109. package/esm/test/Signer.d.ts.map +1 -0
  110. package/esm/test/Signer.js +13 -0
  111. package/esm/test/Signer.js.map +1 -0
  112. package/esm/test/mod.d.ts +2 -0
  113. package/esm/test/mod.d.ts.map +1 -0
  114. package/esm/test/mod.js +2 -0
  115. package/esm/test/mod.js.map +1 -0
  116. package/esm/util/AbortController.d.ts +4 -0
  117. package/esm/util/AbortController.d.ts.map +1 -0
  118. package/esm/util/AbortController.js +2 -0
  119. package/esm/util/AbortController.js.map +1 -0
  120. package/esm/util/ArrayOfLength.d.ts +2 -0
  121. package/esm/util/ArrayOfLength.d.ts.map +1 -0
  122. package/esm/util/ArrayOfLength.js +2 -0
  123. package/esm/util/ArrayOfLength.js.map +1 -0
  124. package/esm/util/Flatten.d.ts +4 -0
  125. package/esm/util/Flatten.d.ts.map +1 -0
  126. package/esm/util/Flatten.js +2 -0
  127. package/esm/util/Flatten.js.map +1 -0
  128. package/esm/util/Rest.d.ts +2 -0
  129. package/esm/util/Rest.d.ts.map +1 -0
  130. package/esm/util/Rest.js +2 -0
  131. package/esm/util/Rest.js.map +1 -0
  132. package/esm/util/Subscription.d.ts +5 -0
  133. package/esm/util/Subscription.d.ts.map +1 -0
  134. package/esm/util/Subscription.js +2 -0
  135. package/esm/util/Subscription.js.map +1 -0
  136. package/esm/util/Tagged.d.ts +6 -0
  137. package/esm/util/Tagged.d.ts.map +1 -0
  138. package/esm/util/Tagged.js +6 -0
  139. package/esm/util/Tagged.js.map +1 -0
  140. package/esm/util/U2I.d.ts +2 -0
  141. package/esm/util/U2I.d.ts.map +1 -0
  142. package/esm/util/U2I.js +2 -0
  143. package/esm/util/U2I.js.map +1 -0
  144. package/esm/util/generator/collect.d.ts +3 -0
  145. package/esm/util/generator/collect.d.ts.map +1 -0
  146. package/esm/util/generator/collect.js +16 -0
  147. package/esm/util/generator/collect.js.map +1 -0
  148. package/esm/util/isKey.d.ts +2 -0
  149. package/esm/util/isKey.d.ts.map +1 -0
  150. package/esm/util/isKey.js +8 -0
  151. package/esm/util/isKey.js.map +1 -0
  152. package/esm/util/unimplemented.d.ts +2 -0
  153. package/esm/util/unimplemented.d.ts.map +1 -0
  154. package/esm/util/unimplemented.js +6 -0
  155. package/esm/util/unimplemented.js.map +1 -0
  156. package/package.json +24 -10
  157. package/src/client/Client.ts +49 -0
  158. package/src/client/Store.ts +1 -0
  159. package/src/client/Tx.ts +62 -0
  160. package/src/client/mod.ts +5 -0
  161. package/src/core/Bool.ts +75 -0
  162. package/src/core/Bytes.ts +9 -0
  163. package/src/core/Call.ts +38 -0
  164. package/src/core/Effect.ts +87 -0
  165. package/src/core/Hash.ts +23 -0
  166. package/src/core/Id.ts +97 -0
  167. package/src/core/Int.ts +177 -0
  168. package/src/core/Key.ts +9 -0
  169. package/src/core/MerkleList.ts +92 -0
  170. package/src/core/MerkleMap.ts +86 -0
  171. package/src/core/None.ts +11 -0
  172. package/src/core/State.ts +31 -0
  173. package/src/core/String.ts +5 -0
  174. package/src/core/Struct.ts +49 -0
  175. package/src/core/Type.ts +120 -0
  176. package/src/core/Union.ts +17 -0
  177. package/src/core/Use.ts +33 -0
  178. package/src/core/mod.ts +19 -0
  179. package/src/lib/MerkleList.ts +4 -0
  180. package/src/lib/MerkleMap.ts +4 -0
  181. package/src/lib/mod.ts +2 -0
  182. package/src/mod.ts +4 -0
  183. package/src/test/Signer.ts +22 -0
  184. package/src/test/mod.ts +1 -0
  185. package/src/util/AbortController.ts +3 -0
  186. package/src/util/ArrayOfLength.ts +5 -0
  187. package/src/util/Flatten.ts +2 -0
  188. package/src/util/Rest.ts +1 -0
  189. package/src/util/Subscription.ts +5 -0
  190. package/src/util/Tagged.ts +5 -0
  191. package/src/util/U2I.ts +1 -0
  192. package/src/util/generator/collect.ts +16 -0
  193. package/src/util/isKey.ts +7 -0
  194. package/src/util/unimplemented.ts +4 -0
  195. package/lib/index.js +0 -1
@@ -0,0 +1,52 @@
1
+ import { Type } from "./Type.js";
2
+ declare const None_base: {
3
+ new <Source, Native = never, From = Native, Into extends Type<any, any, any, any, any> = never>(source: Source | import("./Type.js").TypeSource): {
4
+ ""?: [Native, From, Into] | undefined;
5
+ readonly typeName: "None";
6
+ readonly source: Source | import("./Type.js").TypeSource;
7
+ ctor: new (source: Source | import("./Type.js").TypeSource) => any;
8
+ into<O extends Into>(into: import("./Type.js").Factory<O>): O;
9
+ equals<T extends Type<any, any, any, any, any>>(this: T, inQuestion: T): import("./Bool.js").bool;
10
+ is<T_1 extends Type<any, any, any, any, any>, M extends import("./Type.js").Factory<T_1>>(this: T_1, match: M): import("./Bool.js").bool;
11
+ case<T_2 extends Type<any, any, any, any, any>, M_1 extends import("./Type.js").Factory<T_2>, R extends import("./Call.js").Result, U extends R | Exclude<T_2, InstanceType<M_1>>>(this: T_2, match: M_1, f: import("./Call.js").ValueCall<R, [InstanceType<M_1>]>): U;
12
+ case<T_3 extends Type<any, any, any, any, any>, M_2 extends import("./Type.js").Factory<T_3>, Y extends import("./Call.js").Yield, R_1 extends import("./Call.js").Result, U_1 extends R_1 | Exclude<T_3, InstanceType<M_2>>>(this: T_3, match: M_2, f: import("./Call.js").GenCall<Y, R_1, [InstanceType<M_2>]>): import("./Effect.js").Effect<Y, U_1>;
13
+ "?"<T_4 extends Type<any, any, any, any, any>, M_3 extends import("./Type.js").Factory<T_4>>(this: T_4, match: M_3): import("./Effect.js").Effect<InstanceType<M_3>, Exclude<T_4, InstanceType<M_3>>>;
14
+ "?"<T_5 extends Type<any, any, any, any, any>, M_4 extends import("./Type.js").Factory<T_5>, W extends Type<any, any, any, any, any>>(this: T_5, match: M_4, with_: W): import("./Effect.js").Effect<W, Exclude<T_5, InstanceType<M_4>>>;
15
+ };
16
+ make<Name extends string>(name: Name): {
17
+ new <Source_1, Native_1 = never, From_1 = Native_1, Into_1 extends Type<any, any, any, any, any> = never>(source: Source_1 | import("./Type.js").TypeSource): {
18
+ ""?: [Native_1, From_1, Into_1] | undefined;
19
+ readonly typeName: Name;
20
+ readonly source: Source_1 | import("./Type.js").TypeSource;
21
+ ctor: new (source: Source_1 | import("./Type.js").TypeSource) => any;
22
+ into<O_1 extends Into_1>(into: import("./Type.js").Factory<O_1>): O_1;
23
+ equals<T_6 extends Type<any, any, any, any, any>>(this: T_6, inQuestion: T_6): import("./Bool.js").bool;
24
+ is<T_7 extends Type<any, any, any, any, any>, M_5 extends import("./Type.js").Factory<T_7>>(this: T_7, match: M_5): import("./Bool.js").bool;
25
+ case<T_8 extends Type<any, any, any, any, any>, M_6 extends import("./Type.js").Factory<T_8>, R_2 extends import("./Call.js").Result, U_2 extends R_2 | Exclude<T_8, InstanceType<M_6>>>(this: T_8, match: M_6, f: import("./Call.js").ValueCall<R_2, [InstanceType<M_6>]>): U_2;
26
+ case<T_9 extends Type<any, any, any, any, any>, M_7 extends import("./Type.js").Factory<T_9>, Y_1 extends import("./Call.js").Yield, R_3 extends import("./Call.js").Result, U_3 extends R_3 | Exclude<T_9, InstanceType<M_7>>>(this: T_9, match: M_7, f: import("./Call.js").GenCall<Y_1, R_3, [InstanceType<M_7>]>): import("./Effect.js").Effect<Y_1, U_3>;
27
+ "?"<T_10 extends Type<any, any, any, any, any>, M_8 extends import("./Type.js").Factory<T_10>>(this: T_10, match: M_8): import("./Effect.js").Effect<InstanceType<M_8>, Exclude<T_10, InstanceType<M_8>>>;
28
+ "?"<T_11 extends Type<any, any, any, any, any>, M_9 extends import("./Type.js").Factory<T_11>, W_1 extends Type<any, any, any, any, any>>(this: T_11, match: M_9, with_: W_1): import("./Effect.js").Effect<W_1, Exclude<T_11, InstanceType<M_9>>>;
29
+ };
30
+ make<Name extends string>(name: Name): any;
31
+ "new"<T_12 extends Type<any, any, any, any, any>>(this: import("./Type.js").Factory<T_12>, ...[value]: import("../util/Rest.js").Rest<Type.From<T_12>>): T_12;
32
+ state<T_13 extends Type<any, any, any, any, any>>(this: import("./Type.js").Factory<T_13>): import("./State.js").State<T_13>;
33
+ };
34
+ "new"<T_12 extends Type<any, any, any, any, any>>(this: import("./Type.js").Factory<T_12>, ...[value]: import("../util/Rest.js").Rest<Type.From<T_12>>): T_12;
35
+ state<T_13 extends Type<any, any, any, any, any>>(this: import("./Type.js").Factory<T_13>): import("./State.js").State<T_13>;
36
+ };
37
+ export declare class None extends None_base<NoneSource, undefined> {
38
+ }
39
+ export type NoneSource = NoneSource.Intrinsic;
40
+ export declare namespace NoneSource {
41
+ const Intrinsic_base: {
42
+ new (): {
43
+ readonly tag: "Default";
44
+ };
45
+ };
46
+ export class Intrinsic extends Intrinsic_base {
47
+ }
48
+ export {};
49
+ }
50
+ export declare const none: None;
51
+ export {};
52
+ //# sourceMappingURL=None.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"None.d.ts","sourceRoot":"","sources":["../../src/core/None.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhC,qBAAa,IAAK,SAAQ,UAAkB,UAAU,EAAE,SAAS,CAAC;CAAG;AAErE,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAA;AAC7C,yBAAiB,UAAU,CAAC;;;;;;IAC1B,MAAM,OAAO,SAAU,SAAQ,cAAiB;KAAG;;CACpD;AAED,eAAO,MAAM,IAAI,MAAuC,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { Tagged } from "../util/Tagged.js";
2
+ import { Type } from "./Type.js";
3
+ export class None extends Type.make("None") {
4
+ }
5
+ export var NoneSource;
6
+ (function (NoneSource) {
7
+ class Intrinsic extends Tagged("Default") {
8
+ }
9
+ NoneSource.Intrinsic = Intrinsic;
10
+ })(NoneSource || (NoneSource = {}));
11
+ export const none = new None(new NoneSource.Intrinsic());
12
+ //# sourceMappingURL=None.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"None.js","sourceRoot":"","sources":["../../src/core/None.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,OAAO,IAAK,SAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAwB;CAAG;AAGrE,MAAM,KAAW,UAAU,CAE1B;AAFD,WAAiB,UAAU;IACzB,MAAa,SAAU,SAAQ,MAAM,CAAC,SAAS,CAAC;KAAG;IAAtC,oBAAS,YAA6B,CAAA;AACrD,CAAC,EAFgB,UAAU,KAAV,UAAU,QAE1B;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { Effect } from "./Effect.js";
2
+ import { Factory, Type } from "./Type.js";
3
+ export type State<T extends Type = any> = {
4
+ (): Effect<never, T>;
5
+ (setter: StateSetter<T>): Effect<never, T>;
6
+ tag: "State";
7
+ type: Factory<T>;
8
+ };
9
+ export declare function State<T extends Type>(type: Factory<T>): State<T>;
10
+ export declare class StateEffect<T extends Type> extends Effect<never, T> {
11
+ readonly state: State<T>;
12
+ setter?: StateSetter<T>;
13
+ constructor(state: State<T>, setter?: StateSetter<T>);
14
+ }
15
+ export type StateSetter<T> = T | ((value: T) => T);
16
+ //# sourceMappingURL=State.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../src/core/State.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,IAAI,GAAG,GAAG,IAAI;IACxC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACpB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC1C,GAAG,EAAE,OAAO,CAAA;IACZ,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CACjB,CAAA;AAED,wBAAgB,KAAK,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAQhE;AAED,qBAAa,WAAW,CAAC,CAAC,SAAS,IAAI,CAAE,SAAQ,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAEnD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAD5B,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;gBACV,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;CAM9D;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA"}
@@ -0,0 +1,22 @@
1
+ import { Effect } from "./Effect.js";
2
+ export function State(type) {
3
+ const state = Object.assign((setter) => {
4
+ return new StateEffect(state, setter);
5
+ }, {
6
+ tag: "State",
7
+ type,
8
+ });
9
+ return state;
10
+ }
11
+ export class StateEffect extends Effect {
12
+ state;
13
+ constructor(state, setter) {
14
+ super();
15
+ this.state = state;
16
+ this.yields = [this];
17
+ this.result = new state.type(this);
18
+ if (setter)
19
+ this.setter = setter;
20
+ }
21
+ }
22
+ //# sourceMappingURL=State.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"State.js","sourceRoot":"","sources":["../../src/core/State.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAUpC,MAAM,UAAU,KAAK,CAAiB,IAAgB;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAuB,EAAE,EAAE;QACtD,OAAO,IAAI,WAAW,CAAI,KAAK,EAAE,MAAM,CAAC,CAAA;IAC1C,CAAC,EAAE;QACD,GAAG,EAAE,OAAgB;QACrB,IAAI;KACL,CAAC,CAAA;IACF,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,OAAO,WAA4B,SAAQ,MAAgB;IAE1C;IAArB,YAAqB,KAAe,EAAE,MAAuB;QAC3D,KAAK,EAAE,CAAA;QADY,UAAK,GAAL,KAAK,CAAU;QAElC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAa,CAAC,CAAA;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClC,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IAClC,CAAC;CACF"}
@@ -0,0 +1,41 @@
1
+ import { Type } from "./Type.js";
2
+ declare const String_base: {
3
+ new <Source, Native = never, From = Native, Into extends Type<any, any, any, any, any> = never>(source: import("./Type.js").TypeSource | Source): {
4
+ ""?: [Native, From, Into] | undefined;
5
+ readonly typeName: "String";
6
+ readonly source: import("./Type.js").TypeSource | Source;
7
+ ctor: new (source: import("./Type.js").TypeSource | Source) => any;
8
+ into<O extends Into>(into: import("./Type.js").Factory<O>): O;
9
+ equals<T extends Type<any, any, any, any, any>>(this: T, inQuestion: T): import("./Bool.js").bool;
10
+ is<T_1 extends Type<any, any, any, any, any>, M extends import("./Type.js").Factory<T_1>>(this: T_1, match: M): import("./Bool.js").bool;
11
+ case<T_2 extends Type<any, any, any, any, any>, M_1 extends import("./Type.js").Factory<T_2>, R extends import("./Call.js").Result, U extends R | Exclude<T_2, InstanceType<M_1>>>(this: T_2, match: M_1, f: import("./Call.js").ValueCall<R, [InstanceType<M_1>]>): U;
12
+ case<T_3 extends Type<any, any, any, any, any>, M_2 extends import("./Type.js").Factory<T_3>, Y extends import("./Call.js").Yield, R_1 extends import("./Call.js").Result, U_1 extends R_1 | Exclude<T_3, InstanceType<M_2>>>(this: T_3, match: M_2, f: import("./Call.js").GenCall<Y, R_1, [InstanceType<M_2>]>): import("./Effect.js").Effect<Y, U_1>;
13
+ "?"<T_4 extends Type<any, any, any, any, any>, M_3 extends import("./Type.js").Factory<T_4>>(this: T_4, match: M_3): import("./Effect.js").Effect<InstanceType<M_3>, Exclude<T_4, InstanceType<M_3>>>;
14
+ "?"<T_5 extends Type<any, any, any, any, any>, M_4 extends import("./Type.js").Factory<T_5>, W extends Type<any, any, any, any, any>>(this: T_5, match: M_4, with_: W): import("./Effect.js").Effect<W, Exclude<T_5, InstanceType<M_4>>>;
15
+ };
16
+ make<Name extends string>(name: Name): {
17
+ new <Source_1, Native_1 = never, From_1 = Native_1, Into_1 extends Type<any, any, any, any, any> = never>(source: Source_1 | import("./Type.js").TypeSource): {
18
+ ""?: [Native_1, From_1, Into_1] | undefined;
19
+ readonly typeName: Name;
20
+ readonly source: Source_1 | import("./Type.js").TypeSource;
21
+ ctor: new (source: Source_1 | import("./Type.js").TypeSource) => any;
22
+ into<O_1 extends Into_1>(into: import("./Type.js").Factory<O_1>): O_1;
23
+ equals<T_6 extends Type<any, any, any, any, any>>(this: T_6, inQuestion: T_6): import("./Bool.js").bool;
24
+ is<T_7 extends Type<any, any, any, any, any>, M_5 extends import("./Type.js").Factory<T_7>>(this: T_7, match: M_5): import("./Bool.js").bool;
25
+ case<T_8 extends Type<any, any, any, any, any>, M_6 extends import("./Type.js").Factory<T_8>, R_2 extends import("./Call.js").Result, U_2 extends R_2 | Exclude<T_8, InstanceType<M_6>>>(this: T_8, match: M_6, f: import("./Call.js").ValueCall<R_2, [InstanceType<M_6>]>): U_2;
26
+ case<T_9 extends Type<any, any, any, any, any>, M_7 extends import("./Type.js").Factory<T_9>, Y_1 extends import("./Call.js").Yield, R_3 extends import("./Call.js").Result, U_3 extends R_3 | Exclude<T_9, InstanceType<M_7>>>(this: T_9, match: M_7, f: import("./Call.js").GenCall<Y_1, R_3, [InstanceType<M_7>]>): import("./Effect.js").Effect<Y_1, U_3>;
27
+ "?"<T_10 extends Type<any, any, any, any, any>, M_8 extends import("./Type.js").Factory<T_10>>(this: T_10, match: M_8): import("./Effect.js").Effect<InstanceType<M_8>, Exclude<T_10, InstanceType<M_8>>>;
28
+ "?"<T_11 extends Type<any, any, any, any, any>, M_9 extends import("./Type.js").Factory<T_11>, W_1 extends Type<any, any, any, any, any>>(this: T_11, match: M_9, with_: W_1): import("./Effect.js").Effect<W_1, Exclude<T_11, InstanceType<M_9>>>;
29
+ };
30
+ make<Name extends string>(name: Name): any;
31
+ "new"<T_12 extends Type<any, any, any, any, any>>(this: import("./Type.js").Factory<T_12>, ...[value]: import("../util/Rest.js").Rest<Type.From<T_12>>): T_12;
32
+ state<T_13 extends Type<any, any, any, any, any>>(this: import("./Type.js").Factory<T_13>): import("./State.js").State<T_13>;
33
+ };
34
+ "new"<T_12 extends Type<any, any, any, any, any>>(this: import("./Type.js").Factory<T_12>, ...[value]: import("../util/Rest.js").Rest<Type.From<T_12>>): T_12;
35
+ state<T_13 extends Type<any, any, any, any, any>>(this: import("./Type.js").Factory<T_13>): import("./State.js").State<T_13>;
36
+ };
37
+ export declare class String extends String_base<StringSource, string, string> {
38
+ }
39
+ export type StringSource = never;
40
+ export {};
41
+ //# sourceMappingURL=String.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"String.d.ts","sourceRoot":"","sources":["../../src/core/String.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhC,qBAAa,MAAO,SAAQ,YAAoB,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC;CAAG;AAEhF,MAAM,MAAM,YAAY,GAAG,KAAK,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { Type } from "./Type.js";
2
+ export class String extends Type.make("String") {
3
+ }
4
+ //# sourceMappingURL=String.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"String.js","sourceRoot":"","sources":["../../src/core/String.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,OAAO,MAAO,SAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAA+B;CAAG"}
@@ -0,0 +1,58 @@
1
+ import { Flatten } from "../util/Flatten.js";
2
+ import { Key } from "./Key.js";
3
+ import { Factory, Type, TypeSource } from "./Type.js";
4
+ export interface Struct<F extends FieldTypes = any> extends InstanceType<ReturnType<typeof Struct<F>>> {
5
+ }
6
+ export declare function Struct<const F extends FieldTypes>(fieldTypes: F): {
7
+ new (source: TypeSource): {
8
+ fieldTypes: F;
9
+ fields: Fields<F>;
10
+ ""?: [{ [K_1 in keyof { -readonly [K in keyof F]: StructNativeField<F[K]>; }]: { -readonly [K in keyof F]: StructNativeField<F[K]>; }[K_1]; }, StructFrom<F>, never] | undefined;
11
+ readonly typeName: "Struct";
12
+ readonly source: TypeSource;
13
+ ctor: new (source: TypeSource) => any;
14
+ into<O extends never>(into: Factory<O>): O;
15
+ equals<T extends Type<any, any, any, any, any>>(this: T, inQuestion: T): import("./Bool.js").bool;
16
+ is<T_1 extends Type<any, any, any, any, any>, M extends Factory<T_1>>(this: T_1, match: M): import("./Bool.js").bool;
17
+ case<T_2 extends Type<any, any, any, any, any>, M_1 extends Factory<T_2>, R extends import("./Call.js").Result, U extends R | Exclude<T_2, InstanceType<M_1>>>(this: T_2, match: M_1, f: import("./Call.js").ValueCall<R, [InstanceType<M_1>]>): U;
18
+ case<T_3 extends Type<any, any, any, any, any>, M_2 extends Factory<T_3>, Y extends import("./Call.js").Yield, R_1 extends import("./Call.js").Result, U_1 extends R_1 | Exclude<T_3, InstanceType<M_2>>>(this: T_3, match: M_2, f: import("./Call.js").GenCall<Y, R_1, [InstanceType<M_2>]>): import("./Effect.js").Effect<Y, U_1>;
19
+ "?"<T_4 extends Type<any, any, any, any, any>, M_3 extends Factory<T_4>>(this: T_4, match: M_3): import("./Effect.js").Effect<InstanceType<M_3>, Exclude<T_4, InstanceType<M_3>>>;
20
+ "?"<T_5 extends Type<any, any, any, any, any>, M_4 extends Factory<T_5>, W extends Type<any, any, any, any, any>>(this: T_5, match: M_4, with_: W): import("./Effect.js").Effect<W, Exclude<T_5, InstanceType<M_4>>>;
21
+ };
22
+ make<Name extends string>(name: Name): {
23
+ new <Source, Native = never, From = Native, Into extends Type<any, any, any, any, any> = never>(source: Source | TypeSource): {
24
+ ""?: [Native, From, Into] | undefined;
25
+ readonly typeName: Name;
26
+ readonly source: Source | TypeSource;
27
+ ctor: new (source: Source | TypeSource) => any;
28
+ into<O_1 extends Into>(into: Factory<O_1>): O_1;
29
+ equals<T_6 extends Type<any, any, any, any, any>>(this: T_6, inQuestion: T_6): import("./Bool.js").bool;
30
+ is<T_7 extends Type<any, any, any, any, any>, M_5 extends Factory<T_7>>(this: T_7, match: M_5): import("./Bool.js").bool;
31
+ case<T_8 extends Type<any, any, any, any, any>, M_6 extends Factory<T_8>, R_2 extends import("./Call.js").Result, U_2 extends R_2 | Exclude<T_8, InstanceType<M_6>>>(this: T_8, match: M_6, f: import("./Call.js").ValueCall<R_2, [InstanceType<M_6>]>): U_2;
32
+ case<T_9 extends Type<any, any, any, any, any>, M_7 extends Factory<T_9>, Y_1 extends import("./Call.js").Yield, R_3 extends import("./Call.js").Result, U_3 extends R_3 | Exclude<T_9, InstanceType<M_7>>>(this: T_9, match: M_7, f: import("./Call.js").GenCall<Y_1, R_3, [InstanceType<M_7>]>): import("./Effect.js").Effect<Y_1, U_3>;
33
+ "?"<T_10 extends Type<any, any, any, any, any>, M_8 extends Factory<T_10>>(this: T_10, match: M_8): import("./Effect.js").Effect<InstanceType<M_8>, Exclude<T_10, InstanceType<M_8>>>;
34
+ "?"<T_11 extends Type<any, any, any, any, any>, M_9 extends Factory<T_11>, W_1 extends Type<any, any, any, any, any>>(this: T_11, match: M_9, with_: W_1): import("./Effect.js").Effect<W_1, Exclude<T_11, InstanceType<M_9>>>;
35
+ };
36
+ make<Name extends string>(name: Name): any;
37
+ "new"<T_12 extends Type<any, any, any, any, any>>(this: Factory<T_12>, ...[value]: import("../util/Rest.js").Rest<Type.From<T_12>>): T_12;
38
+ state<T_13 extends Type<any, any, any, any, any>>(this: Factory<T_13>): import("./State.js").State<T_13>;
39
+ };
40
+ "new"<T_12 extends Type<any, any, any, any, any>>(this: Factory<T_12>, ...[value]: import("../util/Rest.js").Rest<Type.From<T_12>>): T_12;
41
+ state<T_13 extends Type<any, any, any, any, any>>(this: Factory<T_13>): import("./State.js").State<T_13>;
42
+ };
43
+ export type FieldType = keyof any | Factory;
44
+ export type FieldTypes = Record<string, FieldType>;
45
+ export type Fields<F extends FieldTypes = any> = {
46
+ -readonly [K in keyof F]: F[K] extends keyof any ? Key<F[K]> : F[K] extends Factory ? InstanceType<F[K]> : never;
47
+ };
48
+ export type StructFrom<F extends FieldTypes = any> = F extends Record<string, keyof any> ? undefined : {
49
+ -readonly [K in keyof F as F[K] extends Factory ? K : never]: F[K] extends Factory<infer T> ? T | Type.Native<T> : never;
50
+ };
51
+ type StructNativeField<T> = T extends Factory<infer U> ? Type.Native<U> : T;
52
+ export type StructNative<F extends FieldTypes> = Flatten<{
53
+ -readonly [K in keyof F]: StructNativeField<F[K]>;
54
+ }>;
55
+ export type StructField<T> = T extends keyof any ? Key<T> : T extends Factory ? InstanceType<T> : never;
56
+ export type StructSource = never;
57
+ export {};
58
+ //# sourceMappingURL=Struct.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Struct.d.ts","sourceRoot":"","sources":["../../src/core/Struct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAErD,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,UAAU,GAAG,GAAG,CAChD,SAAQ,YAAY,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;CAClD;AAEF,wBAAgB,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY/D;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,GAAG,OAAO,CAAA;AAC3C,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AAElD,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,UAAU,GAAG,GAAG,IAAI;IAC/C,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACxD,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACzC,KAAK;CACV,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,GAAG,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,GAChG;IACA,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GACvF,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAClB,KAAK;CACV,CAAA;AAEH,KAAK,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAC3E,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CACtD;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CACtD,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GACrD,CAAC,SAAS,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,GACnC,KAAK,CAAA;AAET,MAAM,MAAM,YAAY,GAAG,KAAK,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { isKey } from "../util/isKey.js";
2
+ import { Key } from "./Key.js";
3
+ import { Type, TypeSource } from "./Type.js";
4
+ export function Struct(fieldTypes) {
5
+ return class extends Type.make("Struct") {
6
+ fieldTypes = fieldTypes;
7
+ fields = Object.fromEntries(Object.entries(fieldTypes).map(([key, type]) => [
8
+ key,
9
+ new (isKey(type) ? Key(type) : type)(new TypeSource.StructField(this, key)),
10
+ ]));
11
+ };
12
+ }
13
+ //# sourceMappingURL=Struct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Struct.js","sourceRoot":"","sources":["../../src/core/Struct.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAW,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAMrD,MAAM,UAAU,MAAM,CAA6B,UAAa;IAC9D,OAAO,KAAM,SAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAA+C;QACpF,UAAU,GAAG,UAAU,CAAA;QACvB,MAAM,GAAG,MAAM,CAAC,WAAW,CACzB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;YAC9C,GAAG;YACH,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAClC,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CACtC;SACF,CAAC,CACU,CAAA;KACf,CAAA;AACH,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { Rest } from "../util/Rest.js";
2
+ import { bool } from "./Bool.js";
3
+ import { GenCall, Result, ValueCall, Yield } from "./Call.js";
4
+ import { Effect } from "./Effect.js";
5
+ import { State } from "./State.js";
6
+ export type Factory<T extends Type = any> = new (source: any) => T;
7
+ export declare class Type<Name extends string = any, Source = any, Native = any, From = any, Into extends Type = any> {
8
+ readonly typeName: Name;
9
+ readonly source: Source | TypeSource;
10
+ ""?: [Native, From, Into];
11
+ static make<Name extends string>(name: Name): {
12
+ new <Source, Native = never, From = Native, Into extends Type<any, any, any, any, any> = never>(source: Source | TypeSource): {
13
+ ""?: [Native, From, Into] | undefined;
14
+ readonly typeName: Name;
15
+ readonly source: Source | TypeSource;
16
+ ctor: new (source: Source | TypeSource) => any;
17
+ into<O extends Into>(into: Factory<O>): O;
18
+ equals<T extends Type<any, any, any, any, any>>(this: T, inQuestion: T): bool;
19
+ is<T_1 extends Type<any, any, any, any, any>, M extends Factory<T_1>>(this: T_1, match: M): bool;
20
+ case<T_2 extends Type<any, any, any, any, any>, M_1 extends Factory<T_2>, R extends Result, U extends R | Exclude<T_2, InstanceType<M_1>>>(this: T_2, match: M_1, f: ValueCall<R, [InstanceType<M_1>]>): U;
21
+ case<T_3 extends Type<any, any, any, any, any>, M_2 extends Factory<T_3>, Y extends Yield, R_1 extends Result, U_1 extends R_1 | Exclude<T_3, InstanceType<M_2>>>(this: T_3, match: M_2, f: GenCall<Y, R_1, [InstanceType<M_2>]>): Effect<Y, U_1>;
22
+ "?"<T_4 extends Type<any, any, any, any, any>, M_3 extends Factory<T_4>>(this: T_4, match: M_3): Effect<InstanceType<M_3>, Exclude<T_4, InstanceType<M_3>>>;
23
+ "?"<T_5 extends Type<any, any, any, any, any>, M_4 extends Factory<T_5>, W extends Type<any, any, any, any, any>>(this: T_5, match: M_4, with_: W): Effect<W, Exclude<T_5, InstanceType<M_4>>>;
24
+ };
25
+ make<Name extends string>(name: Name): any;
26
+ "new"<T_6 extends Type<any, any, any, any, any>>(this: Factory<T_6>, ...[value]: Rest<Type.From<T_6>>): T_6;
27
+ state<T_7 extends Type<any, any, any, any, any>>(this: Factory<T_7>): State<T_7>;
28
+ };
29
+ static new<T extends Type>(this: Factory<T>, ...[value]: Rest<Type.From<T>>): T;
30
+ static state<T extends Type>(this: Factory<T>): State<T>;
31
+ constructor(typeName: Name, source: Source | TypeSource);
32
+ ctor: new (source: Source | TypeSource) => this;
33
+ into<O extends Into>(into: Factory<O>): O;
34
+ equals<T extends Type>(this: T, inQuestion: T): bool;
35
+ is<T extends Type, M extends Factory<T>>(this: T, match: M): bool;
36
+ case<T extends Type, M extends Factory<T>, R extends Result, U extends Exclude<T, InstanceType<M>> | R>(this: T, match: M, f: ValueCall<R, [InstanceType<M>]>): U;
37
+ case<T extends Type, M extends Factory<T>, Y extends Yield, R extends Result, U extends Exclude<T, InstanceType<M>> | R>(this: T, match: M, f: GenCall<Y, R, [InstanceType<M>]>): Effect<Y, U>;
38
+ "?"<T extends Type, M extends Factory<T>>(this: T, match: M): Effect<InstanceType<M>, Exclude<T, InstanceType<M>>>;
39
+ "?"<T extends Type, M extends Factory<T>, W extends Type>(this: T, match: M, with_: W): Effect<W, Exclude<T, InstanceType<M>>>;
40
+ }
41
+ export declare namespace Type {
42
+ type From<T> = T extends Type<any, any, any, infer From> ? From : never;
43
+ type Native<T extends Type | void> = T extends Type<any, any, infer N> ? N : undefined;
44
+ type Source<T extends Type> = T extends Type<any, infer S> ? S : never;
45
+ }
46
+ export type TypeSource = TypeSource.New | TypeSource.Into | TypeSource.StructField;
47
+ export declare namespace TypeSource {
48
+ const New_base: {
49
+ new (): {
50
+ readonly tag: "New";
51
+ };
52
+ };
53
+ export class New extends New_base {
54
+ readonly from: unknown;
55
+ constructor(from: unknown);
56
+ }
57
+ const Into_base: {
58
+ new (): {
59
+ readonly tag: "Into";
60
+ };
61
+ };
62
+ export class Into extends Into_base {
63
+ readonly from: unknown;
64
+ constructor(from: unknown);
65
+ }
66
+ const StructField_base: {
67
+ new (): {
68
+ readonly tag: "StructField";
69
+ };
70
+ };
71
+ export class StructField extends StructField_base {
72
+ readonly self: Type;
73
+ readonly key: keyof any;
74
+ constructor(self: Type, key: keyof any);
75
+ }
76
+ export {};
77
+ }
78
+ //# sourceMappingURL=Type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Type.d.ts","sourceRoot":"","sources":["../../src/core/Type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAGtC,OAAO,EAAE,IAAI,EAAc,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,IAAI,GAAG,GAAG,IAAI,KAAI,MAAM,EAAE,GAAG,KAAK,CAAC,CAAA;AAEjE,qBAAa,IAAI,CACf,IAAI,SAAS,MAAM,GAAG,GAAG,EACzB,MAAM,GAAG,GAAG,EACZ,MAAM,GAAG,GAAG,EACZ,IAAI,GAAG,GAAG,EACV,IAAI,SAAS,IAAI,GAAG,GAAG;IAsBX,QAAQ,CAAC,QAAQ,EAAE,IAAI;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IApBjE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAEjC,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,MAAM,EAAE,IAAI,EAAE,IAAI;;;;;;;;;;;;;;wCAAJ,IAAI;;;;IAU3C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAI/E,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBAInC,QAAQ,EAAE,IAAI,EAAW,MAAM,EAAE,MAAM,GAAG,UAAU;IAEzE,IAAI,eAA4C,MAAM,GAAG,UAAU,KAAK,IAAI,CAAA;IAE5E,IAAI,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAIzC,MAAM,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI;IAIpD,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAIjE,IAAI,CACF,CAAC,SAAS,IAAI,EACd,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,EACpB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAEzC,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,CAAC,EACR,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GACjC,CAAC;IACJ,IAAI,CACF,CAAC,SAAS,IAAI,EACd,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,EACpB,CAAC,SAAS,KAAK,EACf,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAEzC,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,CAAC,EACR,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAClC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAKf,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,EACtC,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,CAAC,GACP,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,GAAG,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,EACtD,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,CAAC,GACP,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;CAQ1C;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAY,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAA;IAC9E,KAAY,MAAM,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;IAC7F,KAAY,MAAM,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;CAC9E;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,WAAW,CAAA;AAClF,yBAAiB,UAAU,CAAC;;;;;;IAC1B,MAAM,OAAO,GAAI,SAAQ,QAAa;QACxB,QAAQ,CAAC,IAAI,EAAE,OAAO;oBAAb,IAAI,EAAE,OAAO;KAGnC;;;;;;IACD,MAAM,OAAO,IAAK,SAAQ,SAAc;QAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO;oBAAb,IAAI,EAAE,OAAO;KAGnC;;;;;;IACD,MAAM,OAAO,WAAY,SAAQ,gBAAqB;QACxC,QAAQ,CAAC,IAAI,EAAE,IAAI;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG;oBAAnC,IAAI,EAAE,IAAI,EAAW,GAAG,EAAE,MAAM,GAAG;KAGzD;;CACF"}
@@ -0,0 +1,71 @@
1
+ import { Tagged } from "../util/Tagged.js";
2
+ import { unimplemented } from "../util/unimplemented.js";
3
+ import { bool, BoolSource } from "./Bool.js";
4
+ import { State } from "./State.js";
5
+ export class Type {
6
+ typeName;
7
+ source;
8
+ static make(name) {
9
+ return class extends this {
10
+ constructor(source) {
11
+ super(name, source);
12
+ }
13
+ };
14
+ }
15
+ static new(...[value]) {
16
+ return new this(new TypeSource.New(value));
17
+ }
18
+ static state() {
19
+ return State(this);
20
+ }
21
+ constructor(typeName, source) {
22
+ this.typeName = typeName;
23
+ this.source = source;
24
+ }
25
+ ctor = this.constructor;
26
+ into(into) {
27
+ return new into(new TypeSource.Into({ from: this }));
28
+ }
29
+ equals(inQuestion) {
30
+ return new bool(new BoolSource.Equals(this, inQuestion));
31
+ }
32
+ is(match) {
33
+ return new bool(new BoolSource.Is(this, match));
34
+ }
35
+ case(_match, _f) {
36
+ unimplemented();
37
+ }
38
+ "?"(_match, _maybeWith_) {
39
+ return unimplemented();
40
+ }
41
+ }
42
+ export var TypeSource;
43
+ (function (TypeSource) {
44
+ class New extends Tagged("New") {
45
+ from;
46
+ constructor(from) {
47
+ super();
48
+ this.from = from;
49
+ }
50
+ }
51
+ TypeSource.New = New;
52
+ class Into extends Tagged("Into") {
53
+ from;
54
+ constructor(from) {
55
+ super();
56
+ this.from = from;
57
+ }
58
+ }
59
+ TypeSource.Into = Into;
60
+ class StructField extends Tagged("StructField") {
61
+ self;
62
+ key;
63
+ constructor(self, key) {
64
+ super();
65
+ this.self = self;
66
+ this.key = key;
67
+ }
68
+ }
69
+ TypeSource.StructField = StructField;
70
+ })(TypeSource || (TypeSource = {}));
71
+ //# sourceMappingURL=Type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Type.js","sourceRoot":"","sources":["../../src/core/Type.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAG5C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAIlC,MAAM,OAAO,IAAI;IA2BM;IAAyB;IAlB9C,MAAM,CAAC,IAAI,CAAsB,IAAU;QACzC,OAAO,KACL,SAAQ,IAAsC;YAE9C,YAAY,MAA2B;gBACrC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACrB,CAAC;SACF,CAAA;IACH,CAAC;IAED,MAAM,CAAC,GAAG,CAAmC,GAAG,CAAC,KAAK,CAAqB;QACzE,OAAO,IAAI,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,CAAC,KAAK;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;IAED,YAAqB,QAAc,EAAW,MAA2B;QAApD,aAAQ,GAAR,QAAQ,CAAM;QAAW,WAAM,GAAN,MAAM,CAAqB;IAAG,CAAC;IAE7E,IAAI,GAAG,IAAI,CAAC,WAAgE,CAAA;IAE5E,IAAI,CAAiB,IAAgB;QACnC,OAAO,IAAI,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACtD,CAAC;IAED,MAAM,CAA0B,UAAa;QAC3C,OAAO,IAAI,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,EAAE,CAAgD,KAAQ;QACxD,OAAO,IAAI,IAAI,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IACjD,CAAC;IAuBD,IAAI,CAAC,MAAW,EAAE,EAAO;QACvB,aAAa,EAAE,CAAA;IACjB,CAAC;IAWD,GAAG,CAED,MAAkB,EAClB,WAAkB;QAElB,OAAO,aAAa,EAAE,CAAA;IACxB,CAAC;CACF;AASD,MAAM,KAAW,UAAU,CAgB1B;AAhBD,WAAiB,UAAU;IACzB,MAAa,GAAI,SAAQ,MAAM,CAAC,KAAK,CAAC;QACf;QAArB,YAAqB,IAAa;YAChC,KAAK,EAAE,CAAA;YADY,SAAI,GAAJ,IAAI,CAAS;QAElC,CAAC;KACF;IAJY,cAAG,MAIf,CAAA;IACD,MAAa,IAAK,SAAQ,MAAM,CAAC,MAAM,CAAC;QACjB;QAArB,YAAqB,IAAa;YAChC,KAAK,EAAE,CAAA;YADY,SAAI,GAAJ,IAAI,CAAS;QAElC,CAAC;KACF;IAJY,eAAI,OAIhB,CAAA;IACD,MAAa,WAAY,SAAQ,MAAM,CAAC,aAAa,CAAC;QAC/B;QAAqB;QAA1C,YAAqB,IAAU,EAAW,GAAc;YACtD,KAAK,EAAE,CAAA;YADY,SAAI,GAAJ,IAAI,CAAM;YAAW,QAAG,GAAH,GAAG,CAAW;QAExD,CAAC;KACF;IAJY,sBAAW,cAIvB,CAAA;AACH,CAAC,EAhBgB,UAAU,KAAV,UAAU,QAgB1B"}
@@ -0,0 +1,43 @@
1
+ import { MerkleListSource } from "./MerkleList.js";
2
+ import { MerkleMapSource } from "./MerkleMap.js";
3
+ import { Factory, Type } from "./Type.js";
4
+ export interface Union<T extends Factory[] = any> extends ReturnType<typeof Union<T>> {
5
+ }
6
+ export declare function Union<T extends Factory[]>(...members: T): {
7
+ new (source: import("./Type.js").TypeSource | UnionSource): {
8
+ members: T;
9
+ ""?: [Type.Native<InstanceType<T[number]>>, InstanceType<T[number]> | Type.Native<InstanceType<T[number]>>, never] | undefined;
10
+ readonly typeName: "Union";
11
+ readonly source: import("./Type.js").TypeSource | UnionSource;
12
+ ctor: new (source: import("./Type.js").TypeSource | UnionSource) => any;
13
+ into<O extends never>(into: Factory<O>): O;
14
+ equals<T extends Type<any, any, any, any, any>>(this: T, inQuestion: T): import("./Bool.js").bool;
15
+ is<T_1 extends Type<any, any, any, any, any>, M extends Factory<T_1>>(this: T_1, match: M): import("./Bool.js").bool;
16
+ case<T_2 extends Type<any, any, any, any, any>, M_1 extends Factory<T_2>, R extends import("./Call.js").Result, U extends R | Exclude<T_2, InstanceType<M_1>>>(this: T_2, match: M_1, f: import("./Call.js").ValueCall<R, [InstanceType<M_1>]>): U;
17
+ case<T_3 extends Type<any, any, any, any, any>, M_2 extends Factory<T_3>, Y extends import("./Call.js").Yield, R_1 extends import("./Call.js").Result, U_1 extends R_1 | Exclude<T_3, InstanceType<M_2>>>(this: T_3, match: M_2, f: import("./Call.js").GenCall<Y, R_1, [InstanceType<M_2>]>): import("./Effect.js").Effect<Y, U_1>;
18
+ "?"<T_4 extends Type<any, any, any, any, any>, M_3 extends Factory<T_4>>(this: T_4, match: M_3): import("./Effect.js").Effect<InstanceType<M_3>, Exclude<T_4, InstanceType<M_3>>>;
19
+ "?"<T_5 extends Type<any, any, any, any, any>, M_4 extends Factory<T_5>, W extends Type<any, any, any, any, any>>(this: T_5, match: M_4, with_: W): import("./Effect.js").Effect<W, Exclude<T_5, InstanceType<M_4>>>;
20
+ };
21
+ make<Name extends string>(name: Name): {
22
+ new <Source, Native = never, From = Native, Into extends Type<any, any, any, any, any> = never>(source: Source | import("./Type.js").TypeSource): {
23
+ ""?: [Native, From, Into] | undefined;
24
+ readonly typeName: Name;
25
+ readonly source: Source | import("./Type.js").TypeSource;
26
+ ctor: new (source: Source | import("./Type.js").TypeSource) => any;
27
+ into<O_1 extends Into>(into: Factory<O_1>): O_1;
28
+ equals<T_6 extends Type<any, any, any, any, any>>(this: T_6, inQuestion: T_6): import("./Bool.js").bool;
29
+ is<T_7 extends Type<any, any, any, any, any>, M_5 extends Factory<T_7>>(this: T_7, match: M_5): import("./Bool.js").bool;
30
+ case<T_8 extends Type<any, any, any, any, any>, M_6 extends Factory<T_8>, R_2 extends import("./Call.js").Result, U_2 extends R_2 | Exclude<T_8, InstanceType<M_6>>>(this: T_8, match: M_6, f: import("./Call.js").ValueCall<R_2, [InstanceType<M_6>]>): U_2;
31
+ case<T_9 extends Type<any, any, any, any, any>, M_7 extends Factory<T_9>, Y_1 extends import("./Call.js").Yield, R_3 extends import("./Call.js").Result, U_3 extends R_3 | Exclude<T_9, InstanceType<M_7>>>(this: T_9, match: M_7, f: import("./Call.js").GenCall<Y_1, R_3, [InstanceType<M_7>]>): import("./Effect.js").Effect<Y_1, U_3>;
32
+ "?"<T_10 extends Type<any, any, any, any, any>, M_8 extends Factory<T_10>>(this: T_10, match: M_8): import("./Effect.js").Effect<InstanceType<M_8>, Exclude<T_10, InstanceType<M_8>>>;
33
+ "?"<T_11 extends Type<any, any, any, any, any>, M_9 extends Factory<T_11>, W_1 extends Type<any, any, any, any, any>>(this: T_11, match: M_9, with_: W_1): import("./Effect.js").Effect<W_1, Exclude<T_11, InstanceType<M_9>>>;
34
+ };
35
+ make<Name extends string>(name: Name): any;
36
+ "new"<T_12 extends Type<any, any, any, any, any>>(this: Factory<T_12>, ...[value]: import("../util/Rest.js").Rest<Type.From<T_12>>): T_12;
37
+ state<T_13 extends Type<any, any, any, any, any>>(this: Factory<T_13>): import("./State.js").State<T_13>;
38
+ };
39
+ "new"<T_12 extends Type<any, any, any, any, any>>(this: Factory<T_12>, ...[value]: import("../util/Rest.js").Rest<Type.From<T_12>>): T_12;
40
+ state<T_13 extends Type<any, any, any, any, any>>(this: Factory<T_13>): import("./State.js").State<T_13>;
41
+ };
42
+ export type UnionSource = MerkleMapSource.Get | MerkleListSource.At;
43
+ //# sourceMappingURL=Union.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Union.d.ts","sourceRoot":"","sources":["../../src/core/Union.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,GAAG,CAAE,SAAQ,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;CAAG;AAExF,wBAAgB,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQvD;AAED,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,GAAG,gBAAgB,CAAC,EAAE,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { Type } from "./Type.js";
2
+ export function Union(...members) {
3
+ return class extends Type.make("Union") {
4
+ members = members;
5
+ };
6
+ }
7
+ //# sourceMappingURL=Union.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Union.js","sourceRoot":"","sources":["../../src/core/Union.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,IAAI,EAAE,MAAM,WAAW,CAAA;AAIzC,MAAM,UAAU,KAAK,CAAsB,GAAG,OAAU;IACtD,OAAO,KAAM,SAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAIrC;QACC,OAAO,GAAG,OAAO,CAAA;KAClB,CAAA;AACH,CAAC"}
@@ -0,0 +1,62 @@
1
+ import { Flatten } from "../util/Flatten.js";
2
+ import { U2I } from "../util/U2I.js";
3
+ import { Yield } from "./Call.js";
4
+ import { Factory, Type } from "./Type.js";
5
+ import { Union } from "./Union.js";
6
+ export type UseField = Factory;
7
+ export type UseFieldTypes = Record<string, UseField>;
8
+ export type UseFields<F extends UseFieldTypes = any> = {
9
+ [K in keyof F]: InstanceType<F[K]>;
10
+ };
11
+ export declare function use<F extends UseFieldTypes>(_fields: F): Generator<Use<Flatten<UseFields<F>>>, Flatten<{
12
+ [K in keyof F]: F[K] extends Union<infer U> ? InstanceType<U[number]> : InstanceType<F[K]>;
13
+ }>>;
14
+ declare const Use_base: {
15
+ new <Source, Native = never, From = Native, Into extends Type<any, any, any, any, any> = never>(source: import("./Type.js").TypeSource | Source): {
16
+ ""?: [Native, From, Into] | undefined;
17
+ readonly typeName: "Dependencies";
18
+ readonly source: import("./Type.js").TypeSource | Source;
19
+ ctor: new (source: import("./Type.js").TypeSource | Source) => any;
20
+ into<O extends Into>(into: Factory<O>): O;
21
+ equals<T extends Type<any, any, any, any, any>>(this: T, inQuestion: T): import("./Bool.js").bool;
22
+ is<T_1 extends Type<any, any, any, any, any>, M extends Factory<T_1>>(this: T_1, match: M): import("./Bool.js").bool;
23
+ case<T_2 extends Type<any, any, any, any, any>, M_1 extends Factory<T_2>, R extends import("./Call.js").Result, U extends R | Exclude<T_2, InstanceType<M_1>>>(this: T_2, match: M_1, f: import("./Call.js").ValueCall<R, [InstanceType<M_1>]>): U;
24
+ case<T_3 extends Type<any, any, any, any, any>, M_2 extends Factory<T_3>, Y extends Yield, R_1 extends import("./Call.js").Result, U_1 extends R_1 | Exclude<T_3, InstanceType<M_2>>>(this: T_3, match: M_2, f: import("./Call.js").GenCall<Y, R_1, [InstanceType<M_2>]>): import("./Effect.js").Effect<Y, U_1>;
25
+ "?"<T_4 extends Type<any, any, any, any, any>, M_3 extends Factory<T_4>>(this: T_4, match: M_3): import("./Effect.js").Effect<InstanceType<M_3>, Exclude<T_4, InstanceType<M_3>>>;
26
+ "?"<T_5 extends Type<any, any, any, any, any>, M_4 extends Factory<T_5>, W extends Type<any, any, any, any, any>>(this: T_5, match: M_4, with_: W): import("./Effect.js").Effect<W, Exclude<T_5, InstanceType<M_4>>>;
27
+ };
28
+ make<Name extends string>(name: Name): {
29
+ new <Source_1, Native_1 = never, From_1 = Native_1, Into_1 extends Type<any, any, any, any, any> = never>(source: Source_1 | import("./Type.js").TypeSource): {
30
+ ""?: [Native_1, From_1, Into_1] | undefined;
31
+ readonly typeName: Name;
32
+ readonly source: Source_1 | import("./Type.js").TypeSource;
33
+ ctor: new (source: Source_1 | import("./Type.js").TypeSource) => any;
34
+ into<O_1 extends Into_1>(into: Factory<O_1>): O_1;
35
+ equals<T_6 extends Type<any, any, any, any, any>>(this: T_6, inQuestion: T_6): import("./Bool.js").bool;
36
+ is<T_7 extends Type<any, any, any, any, any>, M_5 extends Factory<T_7>>(this: T_7, match: M_5): import("./Bool.js").bool;
37
+ case<T_8 extends Type<any, any, any, any, any>, M_6 extends Factory<T_8>, R_2 extends import("./Call.js").Result, U_2 extends R_2 | Exclude<T_8, InstanceType<M_6>>>(this: T_8, match: M_6, f: import("./Call.js").ValueCall<R_2, [InstanceType<M_6>]>): U_2;
38
+ case<T_9 extends Type<any, any, any, any, any>, M_7 extends Factory<T_9>, Y_1 extends Yield, R_3 extends import("./Call.js").Result, U_3 extends R_3 | Exclude<T_9, InstanceType<M_7>>>(this: T_9, match: M_7, f: import("./Call.js").GenCall<Y_1, R_3, [InstanceType<M_7>]>): import("./Effect.js").Effect<Y_1, U_3>;
39
+ "?"<T_10 extends Type<any, any, any, any, any>, M_8 extends Factory<T_10>>(this: T_10, match: M_8): import("./Effect.js").Effect<InstanceType<M_8>, Exclude<T_10, InstanceType<M_8>>>;
40
+ "?"<T_11 extends Type<any, any, any, any, any>, M_9 extends Factory<T_11>, W_1 extends Type<any, any, any, any, any>>(this: T_11, match: M_9, with_: W_1): import("./Effect.js").Effect<W_1, Exclude<T_11, InstanceType<M_9>>>;
41
+ };
42
+ make<Name extends string>(name: Name): any;
43
+ "new"<T_12 extends Type<any, any, any, any, any>>(this: Factory<T_12>, ...[value]: import("../util/Rest.js").Rest<Type.From<T_12>>): T_12;
44
+ state<T_13 extends Type<any, any, any, any, any>>(this: Factory<T_13>): import("./State.js").State<T_13>;
45
+ };
46
+ "new"<T_12 extends Type<any, any, any, any, any>>(this: Factory<T_12>, ...[value]: import("../util/Rest.js").Rest<Type.From<T_12>>): T_12;
47
+ state<T_13 extends Type<any, any, any, any, any>>(this: Factory<T_13>): import("./State.js").State<T_13>;
48
+ };
49
+ export declare class Use<F extends UseFields = any> extends Use_base<UseSource> {
50
+ readonly fields: F;
51
+ constructor(fields: F);
52
+ }
53
+ declare const UseSource_base: {
54
+ new (): {
55
+ readonly tag: "UseSource";
56
+ };
57
+ };
58
+ export declare class UseSource extends UseSource_base {
59
+ }
60
+ export type ExtractUse<Y extends Yield> = Extract<Y, Use> extends Use<infer D> ? Flatten<U2I<D>> : never;
61
+ export {};
62
+ //# sourceMappingURL=Use.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Use.d.ts","sourceRoot":"","sources":["../../src/core/Use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAEpC,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAA;AAC9B,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AACpD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,aAAa,GAAG,GAAG,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAA;AAE7F,wBAAgB,GAAG,CAAC,CAAC,SAAS,aAAa,EACzC,OAAO,EAAE,CAAC,GACT,SAAS,CACV,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1B,OAAO,CACL;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAC/F,CACF,CAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,qBAAa,GAAG,CAAC,CAAC,SAAS,SAAS,GAAG,GAAG,CAAE,SAAQ,SAA0B,SAAS,CAAC;IAC1E,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAAT,MAAM,EAAE,CAAC;CAG/B;;;;;;AAED,qBAAa,SAAU,SAAQ,cAAmB;CAAG;AAErD,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAC5F,KAAK,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { Tagged } from "../util/Tagged.js";
2
+ import { unimplemented } from "../util/unimplemented.js";
3
+ import { Type } from "./Type.js";
4
+ export function use(_fields) {
5
+ unimplemented();
6
+ }
7
+ export class Use extends Type.make("Dependencies") {
8
+ fields;
9
+ constructor(fields) {
10
+ super(new UseSource());
11
+ this.fields = fields;
12
+ }
13
+ }
14
+ export class UseSource extends Tagged("UseSource") {
15
+ }
16
+ //# sourceMappingURL=Use.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Use.js","sourceRoot":"","sources":["../../src/core/Use.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD,OAAO,EAAW,IAAI,EAAE,MAAM,WAAW,CAAA;AAOzC,MAAM,UAAU,GAAG,CACjB,OAAU;IAOV,aAAa,EAAE,CAAA;AACjB,CAAC;AAED,MAAM,OAAO,GAA+B,SAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAY;IACjE;IAArB,YAAqB,MAAS;QAC5B,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC,CAAA;QADH,WAAM,GAAN,MAAM,CAAG;IAE9B,CAAC;CACF;AAED,MAAM,OAAO,SAAU,SAAQ,MAAM,CAAC,WAAW,CAAC;CAAG"}
@@ -0,0 +1,18 @@
1
+ export * from "./Bool.js";
2
+ export * from "./Bytes.js";
3
+ export * from "./Call.js";
4
+ export * from "./Effect.js";
5
+ export * from "./Hash.js";
6
+ export * from "./Id.js";
7
+ export * from "./Int.js";
8
+ export * from "./Key.js";
9
+ export * from "./MerkleList.js";
10
+ export * from "./MerkleMap.js";
11
+ export * from "./None.js";
12
+ export * from "./State.js";
13
+ export * from "./String.js";
14
+ export * from "./Struct.js";
15
+ export * from "./Type.js";
16
+ export * from "./Union.js";
17
+ export * from "./Use.js";
18
+ //# sourceMappingURL=mod.d.ts.map