@nicolastoulemont/std 0.2.0 → 0.4.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 (137) hide show
  1. package/dist/adt/index.d.mts +1 -1
  2. package/dist/adt/index.mjs +1 -1
  3. package/dist/{adt-DraJkmij.mjs → adt-DH37Pprw.mjs} +53 -53
  4. package/dist/adt-DH37Pprw.mjs.map +1 -0
  5. package/dist/{apply-fn.types-CXDoeA7D.d.mts → apply-fn.types-0g_9eXRy.d.mts} +1 -1
  6. package/dist/{apply-fn.types-CXDoeA7D.d.mts.map → apply-fn.types-0g_9eXRy.d.mts.map} +1 -1
  7. package/dist/brand/index.d.mts +2 -2
  8. package/dist/brand/index.mjs +2 -2
  9. package/dist/{brand-CTaxGuU9.mjs → brand-BqcqFXj5.mjs} +6 -6
  10. package/dist/{brand-CTaxGuU9.mjs.map → brand-BqcqFXj5.mjs.map} +1 -1
  11. package/dist/chunk-DRYujVrt.mjs +18 -0
  12. package/dist/data/index.d.mts +1 -1
  13. package/dist/data/index.mjs +1 -1
  14. package/dist/{data-DgzWI4R_.mjs → data-Cg8ySt6-.mjs} +13 -13
  15. package/dist/data-Cg8ySt6-.mjs.map +1 -0
  16. package/dist/discriminator.types-D-UbMmAD.d.mts +7 -0
  17. package/dist/discriminator.types-D-UbMmAD.d.mts.map +1 -0
  18. package/dist/either/index.d.mts +2 -2
  19. package/dist/either/index.mjs +2 -2
  20. package/dist/{either-CnOBUH7a.mjs → either-jkBX8xS1.mjs} +181 -44
  21. package/dist/either-jkBX8xS1.mjs.map +1 -0
  22. package/dist/{equality-YMebYwm1.mjs → equality-C2l3BIi8.mjs} +28 -28
  23. package/dist/equality-C2l3BIi8.mjs.map +1 -0
  24. package/dist/err/index.d.mts +2 -2
  25. package/dist/err/index.mjs +2 -2
  26. package/dist/{err-BqQApH9r.mjs → err-BM-svBaK.mjs} +20 -13
  27. package/dist/err-BM-svBaK.mjs.map +1 -0
  28. package/dist/flow/index.d.mts +1 -1
  29. package/dist/flow/index.mjs +1 -1
  30. package/dist/{flow-pRdnqmMY.mjs → flow-D4cE0EAg.mjs} +10 -3
  31. package/dist/flow-D4cE0EAg.mjs.map +1 -0
  32. package/dist/fx/index.d.mts +3 -0
  33. package/dist/fx/index.mjs +4 -0
  34. package/dist/fx-B-0MxGTM.mjs +1306 -0
  35. package/dist/fx-B-0MxGTM.mjs.map +1 -0
  36. package/dist/fx.types-DpIQILok.mjs +13 -0
  37. package/dist/fx.types-DpIQILok.mjs.map +1 -0
  38. package/dist/fx.types-aTmhyidu.d.mts +133 -0
  39. package/dist/fx.types-aTmhyidu.d.mts.map +1 -0
  40. package/dist/index-BO6bxBeo.d.mts +457 -0
  41. package/dist/index-BO6bxBeo.d.mts.map +1 -0
  42. package/dist/{index-tkgTLCoq.d.mts → index-BOrJQBPO.d.mts} +2 -2
  43. package/dist/{index-tkgTLCoq.d.mts.map → index-BOrJQBPO.d.mts.map} +1 -1
  44. package/dist/{index-zC2zAtZY.d.mts → index-CLlcoy8B.d.mts} +2 -2
  45. package/dist/{index-zC2zAtZY.d.mts.map → index-CLlcoy8B.d.mts.map} +1 -1
  46. package/dist/index-CLspOlBH.d.mts +737 -0
  47. package/dist/index-CLspOlBH.d.mts.map +1 -0
  48. package/dist/{index-BR7takNf.d.mts → index-CQxzD1YM.d.mts} +63 -24
  49. package/dist/index-CQxzD1YM.d.mts.map +1 -0
  50. package/dist/index-ClxPiGP9.d.mts +886 -0
  51. package/dist/index-ClxPiGP9.d.mts.map +1 -0
  52. package/dist/index-Cydt5ocm.d.mts +221 -0
  53. package/dist/index-Cydt5ocm.d.mts.map +1 -0
  54. package/dist/index-D5tzehjf.d.mts +476 -0
  55. package/dist/index-D5tzehjf.d.mts.map +1 -0
  56. package/dist/{index-BCrD3pEs.d.mts → index-EmWRCTY3.d.mts} +18 -18
  57. package/dist/index-EmWRCTY3.d.mts.map +1 -0
  58. package/dist/{index-Cp_4sFun.d.mts → index-FySViSfh.d.mts} +136 -41
  59. package/dist/index-FySViSfh.d.mts.map +1 -0
  60. package/dist/index-USQPafrR.d.mts +288 -0
  61. package/dist/index-USQPafrR.d.mts.map +1 -0
  62. package/dist/index.d.mts +35 -130
  63. package/dist/index.d.mts.map +1 -1
  64. package/dist/index.mjs +13 -39
  65. package/dist/option/index.d.mts +3 -3
  66. package/dist/option/index.mjs +3 -2
  67. package/dist/{option-CKHDOVea.mjs → option-C2QpGffy.mjs} +149 -29
  68. package/dist/option-C2QpGffy.mjs.map +1 -0
  69. package/dist/option.types-BiAiZ8Ks.mjs +33 -0
  70. package/dist/option.types-BiAiZ8Ks.mjs.map +1 -0
  71. package/dist/option.types-CVvowfmd.d.mts +165 -0
  72. package/dist/option.types-CVvowfmd.d.mts.map +1 -0
  73. package/dist/pipe/index.d.mts +1 -1
  74. package/dist/pipe/index.mjs +1 -1
  75. package/dist/{pipe-GYxZNkPB.mjs → pipe-BF4G4SLo.mjs} +2 -2
  76. package/dist/{pipe-GYxZNkPB.mjs.map → pipe-BF4G4SLo.mjs.map} +1 -1
  77. package/dist/pipeable-DYNrUps7.mjs +92 -0
  78. package/dist/pipeable-DYNrUps7.mjs.map +1 -0
  79. package/dist/pipeable-Dr0d_q4F.d.mts +27 -0
  80. package/dist/pipeable-Dr0d_q4F.d.mts.map +1 -0
  81. package/dist/predicate/index.d.mts +2 -2
  82. package/dist/predicate/index.mjs +2 -2
  83. package/dist/{predicate-BZkZmo-W.mjs → predicate-Dt9Qsbav.mjs} +2 -2
  84. package/dist/{predicate-BZkZmo-W.mjs.map → predicate-Dt9Qsbav.mjs.map} +1 -1
  85. package/dist/result/index.d.mts +3 -3
  86. package/dist/result/index.mjs +2 -2
  87. package/dist/{result-C5tPWR60.mjs → result-DhYA-J-M.mjs} +158 -38
  88. package/dist/result-DhYA-J-M.mjs.map +1 -0
  89. package/dist/result.types-_W95221K.d.mts +150 -0
  90. package/dist/result.types-_W95221K.d.mts.map +1 -0
  91. package/package.json +5 -9
  92. package/dist/adt-DraJkmij.mjs.map +0 -1
  93. package/dist/data-DgzWI4R_.mjs.map +0 -1
  94. package/dist/discriminator.types-DCkkrCj4.d.mts +0 -7
  95. package/dist/discriminator.types-DCkkrCj4.d.mts.map +0 -1
  96. package/dist/either-CnOBUH7a.mjs.map +0 -1
  97. package/dist/equality/index.d.mts +0 -86
  98. package/dist/equality/index.d.mts.map +0 -1
  99. package/dist/equality/index.mjs +0 -3
  100. package/dist/equality-YMebYwm1.mjs.map +0 -1
  101. package/dist/err-BqQApH9r.mjs.map +0 -1
  102. package/dist/flow-pRdnqmMY.mjs.map +0 -1
  103. package/dist/fn/index.d.mts +0 -2
  104. package/dist/fn/index.mjs +0 -3
  105. package/dist/fn-DFHj-EVA.mjs +0 -10
  106. package/dist/fn-DFHj-EVA.mjs.map +0 -1
  107. package/dist/gen/index.d.mts +0 -3
  108. package/dist/gen/index.mjs +0 -3
  109. package/dist/gen-DF-FXNdy.mjs +0 -99
  110. package/dist/gen-DF-FXNdy.mjs.map +0 -1
  111. package/dist/index-B3z7T6Dz.d.mts +0 -57
  112. package/dist/index-B3z7T6Dz.d.mts.map +0 -1
  113. package/dist/index-BCrD3pEs.d.mts.map +0 -1
  114. package/dist/index-BFhV56qy.d.mts +0 -105
  115. package/dist/index-BFhV56qy.d.mts.map +0 -1
  116. package/dist/index-BLG9B4bn.d.mts +0 -116
  117. package/dist/index-BLG9B4bn.d.mts.map +0 -1
  118. package/dist/index-BR7takNf.d.mts.map +0 -1
  119. package/dist/index-BiFc2xWF.d.mts +0 -211
  120. package/dist/index-BiFc2xWF.d.mts.map +0 -1
  121. package/dist/index-BwVaI5d0.d.mts +0 -79
  122. package/dist/index-BwVaI5d0.d.mts.map +0 -1
  123. package/dist/index-CckxkaUd.d.mts +0 -80
  124. package/dist/index-CckxkaUd.d.mts.map +0 -1
  125. package/dist/index-Cp_4sFun.d.mts.map +0 -1
  126. package/dist/index-DbfMra4p.d.mts +0 -72
  127. package/dist/index-DbfMra4p.d.mts.map +0 -1
  128. package/dist/index.mjs.map +0 -1
  129. package/dist/is-promise-BEl3eGZg.mjs +0 -11
  130. package/dist/is-promise-BEl3eGZg.mjs.map +0 -1
  131. package/dist/option-CKHDOVea.mjs.map +0 -1
  132. package/dist/option.types-eqVODMIy.d.mts +0 -89
  133. package/dist/option.types-eqVODMIy.d.mts.map +0 -1
  134. package/dist/result-C5tPWR60.mjs.map +0 -1
  135. package/dist/result.types-Bd8a43Fg.d.mts +0 -174
  136. package/dist/result.types-Bd8a43Fg.d.mts.map +0 -1
  137. /package/dist/{result-D7XJ96pv.mjs → result-BmqdTN5o.mjs} +0 -0
@@ -1,105 +0,0 @@
1
- import { i as Result } from "./result.types-Bd8a43Fg.mjs";
2
-
3
- //#region src/brand/brand.types.d.ts
4
-
5
- /**
6
- * Unique symbol for brand keys to ensure true nominal typing.
7
- * Using a symbol prevents collision with actual property keys.
8
- */
9
- declare const BrandSymbol: unique symbol;
10
- /**
11
- * A brand type that adds nominal typing to TypeScript.
12
- * The brand exists only at the type level - no runtime cost.
13
- *
14
- * @template K - The brand key (typically a string literal type)
15
- */
16
- type Brand$1<K extends string> = {
17
- readonly [BrandSymbol]: K;
18
- };
19
- /**
20
- * Create a branded type by intersecting a base type with a brand.
21
- * The resulting type is structurally compatible with T but nominally unique.
22
- *
23
- * @template T - The base type to brand
24
- * @template K - The brand key (string literal)
25
- *
26
- * @example
27
- * ```ts
28
- * type UserId = Branded<string, "UserId">
29
- * type OrderId = Branded<string, "OrderId">
30
- *
31
- * // UserId and OrderId are incompatible even though both are strings
32
- * declare const userId: UserId
33
- * declare const orderId: OrderId
34
- * userId = orderId // Type error!
35
- * ```
36
- */
37
- type Branded<T, K extends string> = T & Brand$1<K>;
38
- /**
39
- * Extract the base type from a branded type.
40
- * Useful for working with the underlying value.
41
- *
42
- * @template B - A branded type
43
- */
44
- type Unbrand<B> = B extends Branded<infer T, string> ? T : B;
45
- /**
46
- * Extract the brand key from a branded type.
47
- *
48
- * @template B - A branded type
49
- */
50
- type BrandKey<B> = B extends Brand$1<infer K> ? K : never;
51
- /**
52
- * A validation function that checks if a value can be branded.
53
- * Returns true if the value passes validation, false otherwise.
54
- *
55
- * @template T - The base type being validated
56
- */
57
- type Validator<T> = (value: T) => boolean;
58
- /**
59
- * Error type returned when brand validation fails.
60
- * Contains the original value and error message for debugging.
61
- *
62
- * @template T - The type of the value that failed validation
63
- */
64
- type BrandError<T = unknown> = {
65
- readonly __typename: "BrandError";
66
- readonly value: T;
67
- readonly message: string;
68
- };
69
- //#endregion
70
- //#region src/brand/brand.d.ts
71
-
72
- /**
73
- * Brand namespace containing utilities for nominal typing in TypeScript.
74
- *
75
- * Brand types add type-level distinctiveness to primitive types without
76
- * any runtime overhead. This prevents accidental mixing of semantically
77
- * different values that share the same structural type.
78
- *
79
- * @example
80
- * ```ts
81
- * import { Brand } from "@repo/std"
82
- * import type { Branded } from "@repo/std"
83
- *
84
- * // Define branded types
85
- * type UserId = Branded<string, "UserId">
86
- * type Email = Branded<string, "Email">
87
- *
88
- * // Create values
89
- * const userId = Brand.make<UserId>("user-123")
90
- * const isValidEmail = Brand.is<Email>(s => s.includes("@"))
91
- *
92
- * // Type safety
93
- * function sendEmail(email: Email) { ... }
94
- * sendEmail(userId) // Type error! UserId is not Email
95
- * ```
96
- */
97
- declare const Brand: {
98
- readonly make: <B extends Branded<unknown, string>>(value: Unbrand<B>) => B;
99
- readonly unsafeMake: <B extends Branded<unknown, string>>(value: Unbrand<B>) => B;
100
- readonly is: <T, K extends string>(validator: Validator<T>) => ((value: T) => value is Branded<T, K>);
101
- readonly refine: <B extends Branded<unknown, string>>(validator: Validator<Unbrand<B>>, errorMessage?: string | ((value: Unbrand<B>) => string)) => ((value: Unbrand<B>) => Result<B, BrandError<Unbrand<B>>>);
102
- };
103
- //#endregion
104
- export { Branded as a, BrandKey as i, Brand$1 as n, Unbrand as o, BrandError as r, Validator as s, Brand as t };
105
- //# sourceMappingURL=index-BFhV56qy.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BFhV56qy.d.mts","names":[],"sources":["../src/brand/brand.types.ts","../src/brand/brand.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAYA,cARc,WAQG,EACS,OAAd,MAAA;AAqBZ;;;;;AAQA;AAAyB,KA9Bb,OA8Ba,CAAA,UAAA,MAAA,CAAA,GAAA;EAAU,UA7BvB,WAAA,CA6BuB,EA7BT,CA6BS;CAA+B;;AAOlE;AAQA;AAiBA;;;;ACqFA;;;;;;;;;;;AApF2E,KDzC/D,OCyC+D,CAAA,CAAA,EAAA,UAAA,MAAA,CAAA,GDzChC,CCyCgC,GDzC5B,OCyC4B,CDzCtB,CCyCsB,CAAA;;;;;;;AA+C9D,KDhFD,OCgFC,CAAA,CAAA,CAAA,GDhFY,CCgFZ,SDhFsB,OCgFtB,CAAA,KAAA,EAAA,EAAA,MAAA,CAAA,GAAA,CAAA,GDhFqD,CCgFrD;;;;;;AAE+C,KD3EhD,QC2EgD,CAAA,CAAA,CAAA,GD3ElC,CC2EkC,SD3ExB,OC2EwB,CAAA,KAAA,EAAA,CAAA,GAAA,CAAA,GAAA,KAAA;;;;;;;KDnEhD,uBAAuB;;;;;;;KAiBvB;;kBAEM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cCmFL;4BAlIkB,iCAAiC,QAAQ,OAAK;kCAoBxC,iCAAiC,QAAQ,OAAK;gDA0BhC,UAAU,gBAAc,eAAe,QAAQ,GAAG;8BA8CpE,qCACpB,UAAU,QAAQ,sCACI,QAAQ,4BAC/B,QAAQ,OAAO,OAAW,GAAG,WAAW,QAAQ"}
@@ -1,116 +0,0 @@
1
- import { _ as GenGenerator, d as AsyncComputation, f as AsyncGenGenerator, v as SyncComputation, y as Yieldable } from "./result.types-Bd8a43Fg.mjs";
2
-
3
- //#region src/gen/gen.d.ts
4
-
5
- /**
6
- * Create a computation from a sync generator function.
7
- * Returns a SyncComputation where run() returns Result directly (no Promise).
8
- *
9
- * @template A - The success value type
10
- * @template E - The error type
11
- * @param generatorFn - A function that returns a sync generator
12
- * @returns SyncComputation<A, E>
13
- *
14
- * @see {@link run} for immediate execution without storing the computation
15
- *
16
- * @example
17
- * ```ts
18
- * const result = gen(function* () {
19
- * const a = yield* Result.yield(divide(10, 2))
20
- * const b = yield* Result.yield(divide(a, 2))
21
- * return b
22
- * }).run()
23
- * // Type: Result<number, "DivisionByZero">
24
- * ```
25
- */
26
- declare function gen<A, E>(generatorFn: () => GenGenerator<A, E>): SyncComputation<A, E>;
27
- /**
28
- * Create a computation from an async generator function.
29
- * Returns an AsyncComputation where run() returns Promise<Result>.
30
- *
31
- * @template A - The success value type
32
- * @template E - The error type
33
- * @param generatorFn - A function that returns an async generator
34
- * @returns AsyncComputation<A, E>
35
- *
36
- * @see {@link run} for immediate execution without storing the computation
37
- *
38
- * @example
39
- * ```ts
40
- * const result = await gen(async function* () {
41
- * const data = yield* Result.yield(await fetchData(1))
42
- * return data
43
- * }).run()
44
- * // Type: Promise<Result<string, "NetworkError">>
45
- * ```
46
- */
47
- declare function gen<A, E>(generatorFn: () => AsyncGenGenerator<A, E>): AsyncComputation<A, E>;
48
- /**
49
- * Convert a sync predicate to a yieldable.
50
- * Use this to validate values within a gen computation.
51
- *
52
- * @template T - The value type to validate
53
- * @template E - The error type on failure
54
- * @param predicate - A sync predicate function
55
- * @param onFail - A function that creates an error from the failing value
56
- * @returns A function that takes a value and returns a Yieldable
57
- *
58
- * @example
59
- * ```ts
60
- * const isPositive = (n: number) => n > 0
61
- *
62
- * const result = gen(function* () {
63
- * const value = yield* ensure(isPositive, n => `${n} must be positive`)(userInput)
64
- * return value * 2
65
- * }).run()
66
- * ```
67
- */
68
- declare function ensure<T, E>(predicate: (value: T) => boolean, onFail: (value: T) => E): (value: T) => Yieldable<T, E>;
69
- /**
70
- * Convert an async predicate to an async yieldable.
71
- * Use this to validate values within an async gen computation.
72
- *
73
- * @template T - The value type to validate
74
- * @template E - The error type on failure
75
- * @param predicate - An async predicate function
76
- * @param onFail - A function that creates an error from the failing value
77
- * @returns A function that takes a value and returns a Promise<Yieldable>
78
- *
79
- * @example
80
- * ```ts
81
- * const isAvailable = async (id: number) => await checkAvailability(id)
82
- *
83
- * const result = await gen(async function* () {
84
- * const id = yield* await ensure(isAvailable, id => `${id} not available`)(userId)
85
- * return `user-${id}`
86
- * }).run()
87
- * ```
88
- */
89
- declare function ensure<T, E>(predicate: (value: T) => Promise<boolean>, onFail: (value: T) => E): (value: T) => Promise<Yieldable<T, E>>;
90
- /**
91
- * Convert a type refinement to a yieldable with type narrowing.
92
- * Use this to narrow types within a gen computation.
93
- *
94
- * Note: Refinements are inherently synchronous (TypeScript type guards).
95
- *
96
- * @template T - The input type
97
- * @template U - The narrowed type (must extend T)
98
- * @template E - The error type on failure
99
- * @param refinement - A type guard function
100
- * @param onFail - A function that creates an error from the failing value
101
- * @returns A function that takes a value and returns a Yieldable with narrowed type
102
- *
103
- * @example
104
- * ```ts
105
- * const isString = (v: unknown): v is string => typeof v === "string"
106
- *
107
- * const result = gen(function* () {
108
- * const str = yield* ensureRefinement(isString, () => "Expected string")(unknownValue)
109
- * return str.toUpperCase() // str is typed as string
110
- * }).run()
111
- * ```
112
- */
113
- declare const ensureRefinement: <T, U extends T, E>(refinement: (value: T) => value is U, onFail: (value: T) => E) => (value: T) => Yieldable<U, E>;
114
- //#endregion
115
- export { ensureRefinement as n, gen as r, ensure as t };
116
- //# sourceMappingURL=index-BLG9B4bn.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BLG9B4bn.d.mts","names":[],"sources":["../src/gen/gen.ts"],"sourcesContent":[],"mappings":";;;;;;AAyBA;;;;;;;;AAsBA;;;;;;;;AA0GA;;;AAAqF,iBAhIrE,GAgIqE,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,WAAA,EAAA,GAAA,GAhIxC,YAgIwC,CAhI3B,CAgI2B,EAhIxB,CAgIwB,CAAA,CAAA,EAhInB,eAgImB,CAhIH,CAgIG,EAhIA,CAgIA,CAAA;;;;;;AAsBrF;;;;;;;;;;;AAuDA;;;;AAC4E,iBAxL5D,GAwL4D,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,WAAA,EAAA,GAAA,GAxL/B,iBAwL+B,CAxLb,CAwLa,EAxLV,CAwLU,CAAA,CAAA,EAxLL,gBAwLK,CAxLY,CAwLZ,EAxLe,CAwLf,CAAA;;;;;;;;;;;;;;;;;;;;;iBA9E5D,gCAAgC,+BAA+B,MAAM,YAAY,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;iBAsBpG,gCACK,MAAM,kCACT,MAAM,YACb,MAAM,QAAQ,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;cAoDzB,gCACG,0BAA0B,eAAe,mBAAmB,MAAM,cACxE,MAAI,UAAU,GAAG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BR7takNf.d.mts","names":[],"sources":["../src/err/err.types.ts","../src/err/err.ts"],"sourcesContent":[],"mappings":";;AAcA;;;;;AAWA;;;;;;;;AAGyB,KAdb,aAca,CAAA,YAAA,MAAA,EAAA,aAAA,MAAA,GAAA,MAAA,CAAA,GAAA;EAAS,SAAA,UAAA,EAbX,GAaW;AASlC,CAAA,GArBI,QAqBQ,CArBC,IAqBD,CAAA;;;;;;;;AAkBA,KA9BA,mBA8BwB,CAAA,YAAW,MAAA,EAAA,aAAA,MAAA,GAAA,MAAA,CAAA,GA9BqC,KA8BrC,GA7B7C,QA6B6C,CA7BpC,IA6BoC,CAAA,GAAA;EAanC,SAAA,UAAS,EAzCI,GAyCE;uBAxCF,UAAU,oBAAoB,KAAK;;;AC5BM;;;;;AAU7D,KD2BO,kBC3BI,CAAA,YAAmB,MAAA,CAAA,GAAA;EAkEnB,IAAA,CAAA,aAAW,MAAA,GAAA,MAAA,CAAA,CAAA,GAAA,IAAA,EAAA,MDrCR,ICqCQ,SAAA,KAAA,GAAA,EAAA,GAAA,CAAA,IAAA,EDrCyB,ICqCzB,CAAA,CAAA,EDpCtB,mBCoCsB,CDpCF,GCoCE,EDpCG,ICoCH,CAAA;EAA0B,SAAA,UAAA,EDnC9B,GCmC8B;CAAyB;;;AAqG9E;;;;;;;;;AA3I0E,KDiB9D,QCjB8D,CAAA,CAAA,CAAA,GDiBhD,CCjBgD,SDiBtC,aCjBsC,CAAA,KAAA,IAAA,CAAA,GAAA,GAAA,GAAA,KAAA;;;;;;;;;;;;KD8B9D,eAAe,UAAU;;;AAtDrC;;;KCTK,MDWD,CAAA,UCXkB,WDWlB,CAAA,MAAA,CAAA,CAAA,GCXyC,IDWzC,CCX8C,CDW9C,EAAA,YAAA,CAAA;;AASJ;;KCfK,WDgBM,CAAA,IAAA,CAAA,GAAA,MChBoB,IDgBpB,SAAA,KAAA,GAAA,IAAA,GAAA,KAAA;;;;;;;;AAWX;;;;;;;;AAkBA;AAaA;;;;ACpEkE;;;;;AAKjB;AAuEjD;;;;;AAqGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBArGgB,qCAAqC,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAqGjE;8BA7ImB,0BACzB,oBACF,YAAY,OAAO,yBAAyB,WAAW,OAAO,OAAO;0BAwF7C,0BAA0B,kDAAgD"}
@@ -1,211 +0,0 @@
1
- import { i as Result, y as Yieldable } from "./result.types-Bd8a43Fg.mjs";
2
- import { a as Option } from "./option.types-eqVODMIy.mjs";
3
-
4
- //#region src/either/either.types.d.ts
5
-
6
- /**
7
- * A discriminated union representing a choice between two alternatives.
8
- * By convention: Right = correct/preferred, Left = alternative.
9
- *
10
- * Unlike Result, neither side has inherent error semantics. Use Either when
11
- * both outcomes are valid alternatives (e.g., cached vs fresh data).
12
- *
13
- * Use Result when modeling success/failure with error semantics.
14
- *
15
- * Implements Yieldable protocol for use in Do computations with yield*.
16
- *
17
- * @example
18
- * ```ts
19
- * // Either: Valid alternatives
20
- * type DataSource = Either<CachedData, FreshData>
21
- *
22
- * // Result: Success/failure
23
- * type ApiResult = Result<User, ApiError>
24
- * ```
25
- */
26
- type Either$1<L, R> = Yieldable<R, L> & ({
27
- readonly right: true;
28
- readonly value: R;
29
- } | {
30
- readonly right: false;
31
- readonly value: L;
32
- });
33
- /**
34
- * Extract the left type from an Either
35
- */
36
- type LeftValue<E> = E extends {
37
- readonly right: false;
38
- readonly value: infer L;
39
- } ? L : never;
40
- /**
41
- * Extract the right type from an Either
42
- */
43
- type RightValue<E> = E extends {
44
- readonly right: true;
45
- readonly value: infer R;
46
- } ? R : never;
47
- /**
48
- * Return type for all() with array input - preserves tuple structure
49
- */
50
- type AllArrayReturn<T extends readonly Either$1<unknown, unknown>[]> = Either$1<LeftValue<T[number]>, { -readonly [K in keyof T]: RightValue<T[K]> }>;
51
- /**
52
- * Return type for all() with object input - preserves object structure
53
- */
54
- type AllObjectReturn<T extends Record<string, Either$1<unknown, unknown>>> = Either$1<LeftValue<T[keyof T]>, { -readonly [K in keyof T]: RightValue<T[K]> }>;
55
- /**
56
- * Type-safe interface for map() with async detection
57
- * Async overload must come first for proper type inference
58
- */
59
- type EitherMap = {
60
- <A, B>(fn: (value: A) => Promise<B>): <L>(either: Either$1<L, A>) => Promise<Either$1<L, B>>;
61
- <A, B>(fn: (value: A) => B): <L>(either: Either$1<L, A>) => Either$1<L, B>;
62
- };
63
- /**
64
- * Type-safe interface for mapLeft() with async detection
65
- */
66
- type EitherMapLeft = {
67
- <L1, L2$1>(fn: (value: L1) => Promise<L2$1>): <R>(either: Either$1<L1, R>) => Promise<Either$1<L2$1, R>>;
68
- <L1, L2$1>(fn: (value: L1) => L2$1): <R>(either: Either$1<L1, R>) => Either$1<L2$1, R>;
69
- };
70
- /**
71
- * Type-safe interface for bimap() with async detection
72
- */
73
- type EitherBimap = {
74
- <L1, L2$1, R1, R2$1>(fnLeft: (left: L1) => Promise<L2$1>, fnRight: (right: R1) => Promise<R2$1>): (either: Either$1<L1, R1>) => Promise<Either$1<L2$1, R2$1>>;
75
- <L1, L2$1, R1, R2$1>(fnLeft: (left: L1) => Promise<L2$1>, fnRight: (right: R1) => R2$1): (either: Either$1<L1, R1>) => Promise<Either$1<L2$1, R2$1>>;
76
- <L1, L2$1, R1, R2$1>(fnLeft: (left: L1) => L2$1, fnRight: (right: R1) => Promise<R2$1>): (either: Either$1<L1, R1>) => Promise<Either$1<L2$1, R2$1>>;
77
- <L1, L2$1, R1, R2$1>(fnLeft: (left: L1) => L2$1, fnRight: (right: R1) => R2$1): (either: Either$1<L1, R1>) => Either$1<L2$1, R2$1>;
78
- };
79
- /**
80
- * Type-safe interface for flatMap() with async detection and left union
81
- */
82
- type EitherFlatMap = {
83
- <A, B, L2$1>(fn: (value: A) => Promise<Either$1<L2$1, B>>): <L>(either: Either$1<L, A>) => Promise<Either$1<L | L2$1, B>>;
84
- <A, B, L2$1>(fn: (value: A) => Either$1<L2$1, B>): <L>(either: Either$1<L, A>) => Either$1<L | L2$1, B>;
85
- };
86
- /**
87
- * Type-safe interface for tap() with async detection
88
- */
89
- type EitherTap = {
90
- <A>(fn: (value: A) => Promise<void>): <L>(either: Either$1<L, A>) => Promise<Either$1<L, A>>;
91
- <A>(fn: (value: A) => void): <L>(either: Either$1<L, A>) => Either$1<L, A>;
92
- };
93
- /**
94
- * Type-safe interface for tapLeft() with async detection
95
- */
96
- type EitherTapLeft = {
97
- <L>(fn: (value: L) => Promise<void>): <R>(either: Either$1<L, R>) => Promise<Either$1<L, R>>;
98
- <L>(fn: (value: L) => void): <R>(either: Either$1<L, R>) => Either$1<L, R>;
99
- };
100
- /**
101
- * Type-safe interface for orElse() with async detection and right union
102
- */
103
- type EitherOrElse = {
104
- <L1, L2$1, R2$1>(fn: (left: L1) => Promise<Either$1<L2$1, R2$1>>): <R>(either: Either$1<L1, R>) => Promise<Either$1<L2$1, R | R2$1>>;
105
- <L1, L2$1, R2$1>(fn: (left: L1) => Either$1<L2$1, R2$1>): <R>(either: Either$1<L1, R>) => Either$1<L2$1, R | R2$1>;
106
- };
107
- /**
108
- * Type-safe interface for filter()
109
- */
110
- type EitherFilter = {
111
- <R, L2$1>(predicate: (value: R) => boolean, onFail: (value: R) => L2$1): <L>(either: Either$1<L, R>) => Either$1<L | L2$1, R>;
112
- };
113
- //#endregion
114
- //#region src/either/either.d.ts
115
-
116
- /**
117
- * Combine multiple Eithers into a single Either.
118
- * Short-circuits on the first left value.
119
- *
120
- * Supports both array and object inputs with full type preservation.
121
- *
122
- * @param eithers - Array or object of Eithers to combine
123
- * @returns Either with all right values or first left
124
- *
125
- * @example
126
- * ```ts
127
- * // Array form (with const assertion for tuple typing)
128
- * all([right(1), right("hello")] as const)
129
- * // => right([1, "hello"])
130
- *
131
- * all([right(1), left("error"), right(3)])
132
- * // => left("error")
133
- *
134
- * // Object form
135
- * all({ a: right(1), b: right("hello") })
136
- * // => right({ a: 1, b: "hello" })
137
- * ```
138
- */
139
- declare function all<const T extends readonly Either$1<unknown, unknown>[]>(eithers: T): AllArrayReturn<T>;
140
- declare function all<const T extends Record<string, Either$1<unknown, unknown>>>(eithers: T): AllObjectReturn<T>;
141
- /**
142
- * Either namespace containing all utility functions for working with Either types.
143
- *
144
- * Either represents a value that can be one of two types: Left<L> or Right<R>.
145
- * By convention, Right is the "success" or preferred path, while Left represents
146
- * an alternative outcome (not necessarily an error, unlike Result).
147
- *
148
- * Use Either when both outcomes are valid and meaningful, not just success/failure.
149
- * For error handling, prefer Result instead.
150
- *
151
- * @see {@link Result} for success/error semantics
152
- * @see {@link Option} for presence/absence semantics
153
- *
154
- * @example
155
- * ```ts
156
- * import { Either, pipe } from '@repo/std'
157
- * import type { Either as EitherType } from '@repo/std'
158
- *
159
- * // Either for branching logic (cache vs fresh data)
160
- * const fetchOrCache = (id: number): EitherType<CachedData, FreshData> =>
161
- * cache.has(id) ? Either.left(cache.get(id)) : Either.right(fetch(id))
162
- *
163
- * const result = pipe(
164
- * fetchOrCache(1),
165
- * Either.map(data => data.value),
166
- * Either.unwrapOr(defaultValue)
167
- * )
168
- *
169
- * // Async example
170
- * const processed = await pipe(
171
- * Either.right(userId),
172
- * Either.map(async id => await fetchUser(id)),
173
- * Either.flatMap(async user => Either.right(await enrichUser(user)))
174
- * )
175
- * ```
176
- */
177
- declare const Either: {
178
- readonly left: <L>(value: L) => Either$1<L, never>;
179
- readonly right: <R>(value: R) => Either$1<never, R>;
180
- readonly isLeft: <L, R>(either: Either$1<L, R>) => either is Extract<Either$1<L, R>, {
181
- right: false;
182
- }>;
183
- readonly isRight: <L, R>(either: Either$1<L, R>) => either is Extract<Either$1<L, R>, {
184
- right: true;
185
- }>;
186
- readonly map: EitherMap;
187
- readonly mapLeft: EitherMapLeft;
188
- readonly bimap: EitherBimap;
189
- readonly flatMap: EitherFlatMap;
190
- readonly tap: EitherTap;
191
- readonly tapLeft: EitherTapLeft;
192
- readonly orElse: EitherOrElse;
193
- readonly swap: <L, R>() => (either: Either$1<L, R>) => Either$1<R, L>;
194
- readonly filter: EitherFilter;
195
- readonly all: typeof all;
196
- readonly unwrapOr: <R>(defaultValue: R) => <L>(either: Either$1<L, R>) => R;
197
- readonly unwrapOrElse: <L, R>(fn: (left: L) => R) => (either: Either$1<L, R>) => R;
198
- readonly match: <L, R, U$1>(handlers: {
199
- left: (value: L) => U$1;
200
- right: (value: R) => U$1;
201
- }) => (either: Either$1<L, R>) => U$1;
202
- readonly fromResult: <R, E>(result: Result<R, E>) => Either$1<E, R>;
203
- readonly toResult: <L, R>(either: Either$1<L, R>) => Result<R, L>;
204
- readonly fromOption: <R, L>(option: Option<R>, onNone: () => L) => Either$1<L, R>;
205
- readonly toOption: <L, R>(either: Either$1<L, R>) => Option<R>;
206
- readonly fromNullable: <R, L>(value: R | null | undefined, onNull: () => L) => Either$1<L, R>;
207
- readonly fromPredicate: <R, L>(value: R, predicate: (value: R) => boolean, onFail: (value: R) => L) => Either$1<L, R>;
208
- };
209
- //#endregion
210
- export { EitherFilter as a, EitherMapLeft as c, EitherTapLeft as d, EitherBimap as i, EitherOrElse as l, all as n, EitherFlatMap as o, Either$1 as r, EitherMap as s, Either as t, EitherTap as u };
211
- //# sourceMappingURL=index-BiFc2xWF.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BiFc2xWF.d.mts","names":[],"sources":["../src/either/either.types.ts","../src/either/either.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1,79 +0,0 @@
1
- import { a as ResultFilter, c as ResultMapErr, i as Result$1, l as ResultOrElse, n as AllObjectReturn, o as ResultFlatMap, r as FromTryReturn, s as ResultMap, t as AllArrayReturn, u as ResultTap } from "./result.types-Bd8a43Fg.mjs";
2
-
3
- //#region src/result/result.d.ts
4
-
5
- /**
6
- * Combine multiple Results into a single Result.
7
- * Supports both array and object inputs.
8
- *
9
- * - If all Results are ok, returns ok with all values
10
- * - If any Result is an error, returns the first error (short-circuits)
11
- *
12
- * @example
13
- * ```ts
14
- * // Array form (use `as const` for tuple types) - returns Result<[number, string], E>
15
- * const [num, str] = pipe(
16
- * Result.all([parseNumber(input), parseString(other)] as const),
17
- * Result.unwrapOr([0, ''])
18
- * )
19
- *
20
- * // Object form - returns Result<{ user: User, config: Config }, E>
21
- * pipe(
22
- * Result.all({ user: fetchUser(id), config: loadConfig() }),
23
- * Result.tap(({ user, config }) => console.log(user.name, config.theme))
24
- * )
25
- * ```
26
- */
27
- declare function all<T extends readonly Result$1<unknown, unknown>[]>(results: T): AllArrayReturn<T>;
28
- declare function all<T extends Record<string, Result$1<unknown, unknown>>>(results: T): AllObjectReturn<T>;
29
- /**
30
- * Result namespace containing all utility functions for working with Result types.
31
- *
32
- * Result represents either success (ok) or failure (err). Use this for operations
33
- * that can fail with typed errors.
34
- *
35
- * @see {@link Option} for presence/absence semantics (no error information)
36
- * @see {@link Either} for two valid outcomes (not just success/failure)
37
- *
38
- * @example
39
- * ```ts
40
- * import { Result, pipe } from '@repo/std'
41
- * import type { Result as ResultType } from '@repo/std'
42
- *
43
- * const divide = (a: number, b: number): ResultType<number, string> =>
44
- * b === 0 ? Result.err('division by zero') : Result.ok(a / b)
45
- *
46
- * const result = pipe(
47
- * divide(10, 2),
48
- * Result.map(n => n * 2),
49
- * Result.unwrapOr(0)
50
- * )
51
- * ```
52
- */
53
- declare const Result: {
54
- readonly ok: <T>(value: T) => Result$1<T, never>;
55
- readonly err: <E>(error: E) => Result$1<never, E>;
56
- readonly isOk: <T, E>(result: Result$1<T, E>) => result is Extract<Result$1<T, E>, {
57
- ok: true;
58
- }>;
59
- readonly isErr: <T, E>(result: Result$1<T, E>) => result is Extract<Result$1<T, E>, {
60
- ok: false;
61
- }>;
62
- readonly map: ResultMap;
63
- readonly mapErr: ResultMapErr;
64
- readonly flatMap: ResultFlatMap;
65
- readonly tap: ResultTap;
66
- readonly orElse: ResultOrElse;
67
- readonly filter: ResultFilter;
68
- readonly all: typeof all;
69
- readonly unwrapOr: <T>(defaultValue: T) => <E>(result: Result$1<T, E>) => T;
70
- readonly unwrapOrElse: <E, T>(fn: (error: E) => T) => (result: Result$1<T, E>) => T;
71
- readonly match: <T, E, U>(handlers: {
72
- ok: (value: T) => U;
73
- err: (error: E) => U;
74
- }) => (result: Result$1<T, E>) => U;
75
- readonly fromTry: <T>(fn: () => T) => FromTryReturn<T>;
76
- };
77
- //#endregion
78
- export { all as n, Result as t };
79
- //# sourceMappingURL=index-BwVaI5d0.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BwVaI5d0.d.mts","names":[],"sources":["../src/result/result.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;iBAqVgB,uBAAuB,uCAAyC,IAAI,eAAe;iBACnF,cAAc,eAAe,sCAAwC,IAAI,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;cA2K5F;0BApegB,MAAI,SAAW;2BAoBd,MAAI,gBAAkB;gCA2BjB,SAAW,GAAG,iBAAe,QAAQ,SAAW,GAAG;;;iCAgBlD,SAAW,GAAG,iBAAe,QAAQ,SAAW,GAAG;;;;;;;;;;uCAiSnE,kBACN,SAAW,GAAG,OAAK;4CAkBZ,MAAM,eAChB,SAAW,GAAG,OAAK;;gBAqBM,MAAM;iBAAgB,MAAM;iBACrD,SAAW,GAAG,OAAK;kCA+CO,MAAI,cAAc"}
@@ -1,80 +0,0 @@
1
- import { a as Option$1, c as OptionMap, l as OptionOrElse, n as AllObjectReturn, o as OptionFilter, r as FromTryReturn, s as OptionFlatMap, t as AllArrayReturn, u as OptionTap } from "./option.types-eqVODMIy.mjs";
2
-
3
- //#region src/option/option.d.ts
4
-
5
- /**
6
- * Combine multiple Options into a single Option.
7
- * Supports both array and object inputs.
8
- *
9
- * - If all Options are some, returns some with all values
10
- * - If any Option is none, returns none (short-circuits)
11
- *
12
- * @example
13
- * ```ts
14
- * // Array form (use `as const` for tuple types) - returns Option<[number, string]>
15
- * const [num, str] = pipe(
16
- * Option.all([parseNumber(input), parseString(other)] as const),
17
- * Option.unwrapOr([0, ''])
18
- * )
19
- *
20
- * // Object form - returns Option<{ user: User, config: Config }>
21
- * pipe(
22
- * Option.all({ user: findUser(id), config: loadConfig() }),
23
- * Option.tap(({ user, config }) => console.log(user.name, config.theme))
24
- * )
25
- * ```
26
- */
27
- declare function all<T extends readonly Option$1<unknown>[]>(options: T): AllArrayReturn<T>;
28
- declare function all<T extends Record<string, Option$1<unknown>>>(options: T): AllObjectReturn<T>;
29
- /**
30
- * Option namespace containing all utility functions for working with Option types.
31
- *
32
- * Option represents either the presence (some) or absence (none) of a value.
33
- * Use this for optional values without needing to track why the value is missing.
34
- *
35
- * @see {@link Result} for success/failure with error information
36
- * @see {@link Either} for two valid outcomes
37
- *
38
- * @example
39
- * ```ts
40
- * import { Option, pipe } from '@repo/std'
41
- * import type { Option as OptionType } from '@repo/std'
42
- *
43
- * const findUser = (id: number): OptionType<User> =>
44
- * id > 0 ? Option.some({ id, name: 'Alice' }) : Option.none()
45
- *
46
- * const result = pipe(
47
- * Option.some(10),
48
- * Option.flatMap(findUser),
49
- * Option.map(user => user.name),
50
- * Option.unwrapOr('Unknown')
51
- * )
52
- * ```
53
- */
54
- declare const Option: {
55
- readonly some: <T>(value: T) => Option$1<T>;
56
- readonly none: <T>() => Option$1<T>;
57
- readonly isSome: <T>(option: Option$1<T>) => option is Extract<Option$1<T>, {
58
- some: true;
59
- }>;
60
- readonly isNone: <T>(option: Option$1<T>) => option is Extract<Option$1<T>, {
61
- some: false;
62
- }>;
63
- readonly map: OptionMap;
64
- readonly flatMap: OptionFlatMap;
65
- readonly tap: OptionTap;
66
- readonly orElse: OptionOrElse;
67
- readonly filter: OptionFilter;
68
- readonly all: typeof all;
69
- readonly unwrapOr: <T>(defaultValue: T) => (option: Option$1<T>) => T;
70
- readonly unwrapOrElse: <T>(fn: () => T) => (option: Option$1<T>) => T;
71
- readonly match: <T, U>(handlers: {
72
- some: (value: T) => U;
73
- none: () => U;
74
- }) => (option: Option$1<T>) => U;
75
- readonly fromNullable: <T>(value: T | null | undefined) => Option$1<T>;
76
- readonly fromTry: <T>(fn: () => T) => FromTryReturn<T>;
77
- };
78
- //#endregion
79
- export { all as n, Option as t };
80
- //# sourceMappingURL=index-CckxkaUd.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-CckxkaUd.d.mts","names":[],"sources":["../src/option/option.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;iBA6SgB,uBAAuB,8BAAgC,IAAI,eAAe;iBAC1E,cAAc,eAAe,6BAA+B,IAAI,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;cA0LnF;4BA1ckB,MAAI,SAAW;0BAmBnB,SAAW;+BA0BJ,SAAW,iBAAe,QAAQ,SAAW;;;+BAgB7C,SAAW,iBAAe,QAAQ,SAAW;;;;;;;;;uCA0P3D,eACT,SAAW,OAAK;uCAkBX,eACL,SAAW,OAAK;;kBAqBQ,MAAM;gBAAe;iBAC7C,SAAW,OAAK;oCAqBY,yBAAuB,SAAW;kCA2CpC,MAAI,cAAc"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-Cp_4sFun.d.mts","names":[],"sources":["../src/adt/adt.types.ts","../src/adt/adt.record.ts","../src/adt/adt.data.ts","../src/adt/adt.match.ts","../src/adt/adt.codec.ts"],"sourcesContent":[],"mappings":"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OoB,SDmOV,GCnOU,CAAA,KAAA,EAAA,CAAA,GDoOhB,QCpOgB,CDoOP,aCpOO,CDoOO,CCpOP,CAAA,CAAA,GDqOhB,CCrOgB,SDqON,YCrOM,CAAA,KAAA,SAAA,EAAA,KAAA,EAAA,CAAA,GDsOd,QCtOc,CDsOL,WCtOK,CDsOO,CCtOP,CAAA,GDsOY,aCtOZ,CDsO0B,QCtO1B,CAAA,CAAA,GAAA,KAAA;;;;;;;;;;KDsPV,kBAAkB,UAAU,qBAAqB;AErQ7D;;;;;;;;;;AC7CY,KH8TA,SG9Ta,CAAA,CAAA,EAAA,YAAA,MAAA,CAAA,GH+TvB,CG/TuB,SH+Tb,GG/Ta,CAAA,KAAA,EAAA,CAAA,GHgUnB,GGhUmB,SAAA,MHgUH,CGhUG,GHiUjB,QGjUiB,CHiUR,WGjUQ,CHiUI,aGjUJ,CHiUkB,CGjUlB,CHiUoB,GGjUpB,CAAA,CAAA,CAAA,GHiU2B,aGjU3B,CHiUyC,GGjUzC,CAAA,CAAA,GAAA,KAAA,GAAA,KAAA;;;;;;AHLoC;;;;;AAkB7D;;;;;AAiBA;;;;;;AAqBA;;;;;;;;AAcA;AAeA;;;;;AAMA;;;;;AAAoG;AAWzE;AAe3B;;;;;;;;;;AAKmC,iBChEnB,MDgEmB,CAAA,mBAAA,MAAA,EAAA,YC9DvB,gBD8DuB,EAAA,eC7DlB,eD6DkB,CC7DF,UD6DE,EC7DQ,GD6DR,CAAA,CAAA,CAAA,UAAA,EC5DrB,UD4DqB,EAAA,MAAA,EC5DH,GD4DG,EAAA,MAAA,EC5DQ,MD4DR,CAAA,EC5DiB,YD4DjB,CC5D8B,UD4D9B,EC5DwC,GD4DxC,EC5D2C,MD4D3C,CAAA;AAAyC,iBCzD5D,MDyD4D,CAAA,mBAAA,MAAA,EAAA,YCzDlB,gBDyDkB,CAAA,CAAA,UAAA,ECxD9D,UDwD8D,EAAA,MAAA,ECvDlE,GDuDkE,CAAA,ECtDzE,YDsDyE,CCtD5D,UDsD4D,ECtDlD,GDsDkD,CAAA;;;;;;;AA1Hf;;;;;AAkB7D;;;;;AAiBA;;;;;;AAqBA;;;;;;;;AAcA;AAeA;;;;;AAMA;;;;;AAAoG;AAWzE;AAe3B;;;;;AACkC,iBEpElB,IFoEkB,CAAA,YEpEH,MFoEG,CAAA,MAAA,EEpEY,SFoEZ,CAAA,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EEpE+C,GFoE/C,CAAA,EEpEmD,GFoEnD,CEpEuD,GFoEvD,CAAA;;;;;;;;AAtH2B;;AAO3C,KGFN,aHEM,CAAA,UAAA;EAAE,SAAA,UAAA,EAAA,MAAA;CAAC,EAAA,OAAA,CAAA,GAAA,QGDb,CHYI,CAAA,YAAe,CAAA,GAAA,CAAA,KAAA,EGZO,OHYP,CGZe,CHYf,EAAA;EAGO,SAAA,UAAA,EGfkC,CHelC;AAAd,CAAA,CAAA,EAAA,GGfyD,OHezD,EAFD;;AAgBnB;;;;;;AAqBA;;;;;;;;AAcA;AAeA;;;;;AAMA;;;;;AAAoG;AAWzE;AAe3B;AAAgC,iBG/EhB,KH+EgB,CAAA,UAAA;EACL,SAAA,UAAA,EAAA,MAAA;CAAX,EAAA,OAAA,EAAA,iBG7EG,aH6EH,CG7EiB,CH6EjB,EG7EoB,OH6EpB,CAAA,GG7E+B,aH6E/B,CG7E6C,CH6E7C,EG7EgD,OH6EhD,CAAA,CAAA,CAAA,KAAA,EG5EP,CH4EO,EAAA,QAAA,EG5EM,QH4EN,CAAA,EG5EiB,OH4EjB;;;;;AAtH6C;AAO/C,iBIUE,gBAAA,CJVF,IAAA,EIWN,UJXM,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,gBAAA,CAAA,EIcO,eJdP,CAAA,QAAA,CAAA,CAAA,EIeX,UJfW"}