@nicolastoulemont/std 0.7.1 → 0.8.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.
- package/README.md +570 -168
- package/dist/adt/index.d.mts +1 -1
- package/dist/adt/index.mjs +1 -1
- package/dist/adt-CzdkjlUM.mjs +2 -0
- package/dist/adt-CzdkjlUM.mjs.map +1 -0
- package/dist/brand/index.d.mts +1 -1
- package/dist/brand/index.mjs +1 -1
- package/dist/brand-DZgGDrAe.mjs +2 -0
- package/dist/brand-DZgGDrAe.mjs.map +1 -0
- package/dist/brand.types-B3NDX1vo.d.mts +62 -0
- package/dist/brand.types-B3NDX1vo.d.mts.map +1 -0
- package/dist/context/index.d.mts +1 -1
- package/dist/context/index.mjs +1 -1
- package/dist/{context-CCHj1nab.mjs → context-0xDbwtpx.mjs} +2 -2
- package/dist/context-0xDbwtpx.mjs.map +1 -0
- package/dist/{context-r8ESJiFn.d.mts → context-B2dWloPl.d.mts} +2 -18
- package/dist/context-B2dWloPl.d.mts.map +1 -0
- package/dist/data/index.d.mts +1 -1
- package/dist/data/index.mjs +1 -1
- package/dist/{data-BLXO4XwS.mjs → data-BHYPdqWZ.mjs} +2 -2
- package/dist/{data-BLXO4XwS.mjs.map → data-BHYPdqWZ.mjs.map} +1 -1
- package/dist/{discriminator.types-CTURejXz.d.mts → discriminator.types-C-ygT2S1.d.mts} +1 -1
- package/dist/discriminator.types-C-ygT2S1.d.mts.map +1 -0
- package/dist/{dual-CZhzZslG.mjs → dual-fN6OUwN_.mjs} +1 -1
- package/dist/{dual-CZhzZslG.mjs.map → dual-fN6OUwN_.mjs.map} +1 -1
- package/dist/duration/index.d.mts +2 -0
- package/dist/duration/index.mjs +1 -0
- package/dist/duration-CYoDHcOR.mjs +2 -0
- package/dist/duration-CYoDHcOR.mjs.map +1 -0
- package/dist/either/index.d.mts +1 -1
- package/dist/either/index.mjs +1 -1
- package/dist/{either-BMLPfvMl.mjs → either-G7uOu4Ar.mjs} +2 -2
- package/dist/either-G7uOu4Ar.mjs.map +1 -0
- package/dist/{equality-CoyUHWh9.mjs → equality-BX6BUidG.mjs} +1 -1
- package/dist/{equality-CoyUHWh9.mjs.map → equality-BX6BUidG.mjs.map} +1 -1
- package/dist/{flow-D8_tllWl.mjs → flow-CNyLsPGb.mjs} +1 -1
- package/dist/flow-CNyLsPGb.mjs.map +1 -0
- package/dist/functions/index.d.mts +1 -1
- package/dist/functions/index.mjs +1 -1
- package/dist/functions-ByAk682_.mjs +2 -0
- package/dist/functions-ByAk682_.mjs.map +1 -0
- package/dist/fx/index.d.mts +1 -1
- package/dist/fx/index.mjs +1 -1
- package/dist/fx-DUXDxwsU.mjs +2 -0
- package/dist/fx-DUXDxwsU.mjs.map +1 -0
- package/dist/{fx.runtime-DclEDyjY.mjs → fx.runtime-jQxh77s3.mjs} +2 -2
- package/dist/{fx.runtime-DclEDyjY.mjs.map → fx.runtime-jQxh77s3.mjs.map} +1 -1
- package/dist/{fx.types-DeEWEltG.d.mts → fx.types-BdN1EWxr.d.mts} +1 -1
- package/dist/{fx.types-DeEWEltG.d.mts.map → fx.types-BdN1EWxr.d.mts.map} +1 -1
- package/dist/{fx.types-Bg-Mmdm5.mjs → fx.types-DyQVgTS8.mjs} +1 -1
- package/dist/{fx.types-Bg-Mmdm5.mjs.map → fx.types-DyQVgTS8.mjs.map} +1 -1
- package/dist/{index-DXbYlSnB.d.mts → index-BA0EsFxS.d.mts} +5 -74
- package/dist/index-BA0EsFxS.d.mts.map +1 -0
- package/dist/{index-UzMbg1dh.d.mts → index-BqJ1GWAF.d.mts} +20 -56
- package/dist/index-BqJ1GWAF.d.mts.map +1 -0
- package/dist/index-BsPOcZk9.d.mts +96 -0
- package/dist/index-BsPOcZk9.d.mts.map +1 -0
- package/dist/{index-DEAWPlcI.d.mts → index-CIvNgjsx.d.mts} +24 -56
- package/dist/index-CIvNgjsx.d.mts.map +1 -0
- package/dist/{index-B_iY5tq0.d.mts → index-CNTYbcY9.d.mts} +1 -21
- package/dist/index-CNTYbcY9.d.mts.map +1 -0
- package/dist/index-Ctg7XUOs.d.mts +36 -0
- package/dist/index-Ctg7XUOs.d.mts.map +1 -0
- package/dist/{index-Cq2IFito.d.mts → index-Ctqe1fD1.d.mts} +3 -17
- package/dist/index-Ctqe1fD1.d.mts.map +1 -0
- package/dist/{index-B_wWGszy.d.mts → index-D7mFNjot.d.mts} +1 -5
- package/dist/index-D7mFNjot.d.mts.map +1 -0
- package/dist/{index-CUZn-ohG.d.mts → index-D8rDE60Y.d.mts} +23 -54
- package/dist/index-D8rDE60Y.d.mts.map +1 -0
- package/dist/{index-By6dNRc4.d.mts → index-DR7hzXU4.d.mts} +3 -23
- package/dist/{index-By6dNRc4.d.mts.map → index-DR7hzXU4.d.mts.map} +1 -1
- package/dist/{index-DKS1g1oC.d.mts → index-DfQGXBQI.d.mts} +54 -45
- package/dist/index-DfQGXBQI.d.mts.map +1 -0
- package/dist/{index-BNQ9xSAz.d.mts → index-MsJqfQu0.d.mts} +64 -70
- package/dist/index-MsJqfQu0.d.mts.map +1 -0
- package/dist/{index-CGiLfREk.d.mts → index-UINIHFuh.d.mts} +39 -15
- package/dist/index-UINIHFuh.d.mts.map +1 -0
- package/dist/{index-BiiE8NS7.d.mts → index-crtzMG48.d.mts} +14 -23
- package/dist/index-crtzMG48.d.mts.map +1 -0
- package/dist/{index-B1-tBzc0.d.mts → index-dCRymj_g.d.mts} +23 -71
- package/dist/{index-B1-tBzc0.d.mts.map → index-dCRymj_g.d.mts.map} +1 -1
- package/dist/index-uE3S3Krx.d.mts +245 -0
- package/dist/index-uE3S3Krx.d.mts.map +1 -0
- package/dist/index.d.mts +21 -19
- package/dist/index.mjs +1 -1
- package/dist/layer/index.d.mts +1 -1
- package/dist/layer/index.mjs +1 -1
- package/dist/{layer-BttmtDrs.mjs → layer-CKtH7TRL.mjs} +2 -2
- package/dist/layer-CKtH7TRL.mjs.map +1 -0
- package/dist/{layer.types-DgpCIsk_.d.mts → layer.types-BB0MrvLg.d.mts} +4 -4
- package/dist/{layer.types-DgpCIsk_.d.mts.map → layer.types-BB0MrvLg.d.mts.map} +1 -1
- package/dist/multithread/index.d.mts +1 -1
- package/dist/multithread/index.mjs +1 -1
- package/dist/{multithread-xUUh4eLn.mjs → multithread-Cyc8Bz45.mjs} +2 -2
- package/dist/multithread-Cyc8Bz45.mjs.map +1 -0
- package/dist/option/index.d.mts +1 -1
- package/dist/option/index.mjs +1 -1
- package/dist/{option-Tfbo4wty.mjs → option-C2iCxAuJ.mjs} +2 -2
- package/dist/option-C2iCxAuJ.mjs.map +1 -0
- package/dist/{option.types-D1mm0zUb.mjs → option.types-CbY_swma.mjs} +1 -1
- package/dist/{option.types-D1mm0zUb.mjs.map → option.types-CbY_swma.mjs.map} +1 -1
- package/dist/{option.types-qPevEZQd.d.mts → option.types-D9hrKcfa.d.mts} +3 -3
- package/dist/{option.types-qPevEZQd.d.mts.map → option.types-D9hrKcfa.d.mts.map} +1 -1
- package/dist/order/index.d.mts +1 -1
- package/dist/order/index.mjs +1 -1
- package/dist/order-BXOBEKvB.mjs +2 -0
- package/dist/order-BXOBEKvB.mjs.map +1 -0
- package/dist/{pipeable-rfqacPxZ.d.mts → pipeable-BIrevC0D.d.mts} +1 -1
- package/dist/{pipeable-rfqacPxZ.d.mts.map → pipeable-BIrevC0D.d.mts.map} +1 -1
- package/dist/pipeable-Dp1_23zH.mjs +2 -0
- package/dist/{pipeable-COGyGMUV.mjs.map → pipeable-Dp1_23zH.mjs.map} +1 -1
- package/dist/predicate/index.d.mts +1 -1
- package/dist/predicate/index.mjs +1 -1
- package/dist/{predicate-DUhhQqWY.mjs → predicate-D_1SsIi4.mjs} +2 -2
- package/dist/predicate-D_1SsIi4.mjs.map +1 -0
- package/dist/provide/index.d.mts +1 -1
- package/dist/provide/index.mjs +1 -1
- package/dist/provide--yZE8x-n.mjs +2 -0
- package/dist/provide--yZE8x-n.mjs.map +1 -0
- package/dist/queue/index.d.mts +1 -1
- package/dist/queue/index.mjs +1 -1
- package/dist/{queue-Sg6KJerl.mjs → queue-apiEOlRD.mjs} +2 -2
- package/dist/queue-apiEOlRD.mjs.map +1 -0
- package/dist/{queue.types-CD2LOu37.d.mts → queue.types-B-l5XYbU.d.mts} +1 -1
- package/dist/{queue.types-CD2LOu37.d.mts.map → queue.types-B-l5XYbU.d.mts.map} +1 -1
- package/dist/result/index.d.mts +1 -1
- package/dist/result/index.mjs +1 -1
- package/dist/{result-BEzV0DYC.mjs → result-D3VY0qBG.mjs} +2 -2
- package/dist/result-D3VY0qBG.mjs.map +1 -0
- package/dist/{result.types-_xDAei3-.d.mts → result.types-BKzChyWY.d.mts} +3 -3
- package/dist/{result.types-_xDAei3-.d.mts.map → result.types-BKzChyWY.d.mts.map} +1 -1
- package/dist/schedule/index.d.mts +1 -1
- package/dist/schedule/index.mjs +1 -1
- package/dist/schedule-B9K_2Z21.d.mts +183 -0
- package/dist/schedule-B9K_2Z21.d.mts.map +1 -0
- package/dist/schedule-C6iN3oMt.mjs +2 -0
- package/dist/schedule-C6iN3oMt.mjs.map +1 -0
- package/dist/schema/index.d.mts +2 -0
- package/dist/schema/index.mjs +1 -0
- package/dist/schema-D87TVF_b.mjs +2 -0
- package/dist/schema-D87TVF_b.mjs.map +1 -0
- package/dist/schema.shared-CI4eydjX.mjs +2 -0
- package/dist/schema.shared-CI4eydjX.mjs.map +1 -0
- package/dist/schema.types-CFzzx4bw.d.mts +45 -0
- package/dist/schema.types-CFzzx4bw.d.mts.map +1 -0
- package/dist/scope/index.d.mts +1 -1
- package/dist/scope/index.mjs +1 -1
- package/dist/{scope-CZdp4wKX.d.mts → scope-CuM3CzwG.d.mts} +3 -9
- package/dist/scope-CuM3CzwG.d.mts.map +1 -0
- package/dist/{scope-D_kzd1nT.mjs → scope-gVt4PESc.mjs} +2 -2
- package/dist/scope-gVt4PESc.mjs.map +1 -0
- package/dist/service/index.d.mts +1 -1
- package/dist/service/index.mjs +1 -1
- package/dist/{service-3PYQTUdH.mjs → service-CWAIEH46.mjs} +2 -2
- package/dist/service-CWAIEH46.mjs.map +1 -0
- package/dist/{service-DrXU7KJG.d.mts → service-D8mr0wwg.d.mts} +2 -8
- package/dist/service-D8mr0wwg.d.mts.map +1 -0
- package/dist/{service-resolution-C19smeaO.mjs → service-resolution-BefYr4nR.mjs} +1 -1
- package/dist/{service-resolution-C19smeaO.mjs.map → service-resolution-BefYr4nR.mjs.map} +1 -1
- package/package.json +9 -1
- package/dist/adt-DajUZvJe.mjs +0 -2
- package/dist/adt-DajUZvJe.mjs.map +0 -1
- package/dist/brand-Bia3Vj6l.mjs +0 -2
- package/dist/brand-Bia3Vj6l.mjs.map +0 -1
- package/dist/context-CCHj1nab.mjs.map +0 -1
- package/dist/context-r8ESJiFn.d.mts.map +0 -1
- package/dist/data.tagged-error.types-CGiKD-ES.d.mts +0 -29
- package/dist/data.tagged-error.types-CGiKD-ES.d.mts.map +0 -1
- package/dist/discriminator.types-CTURejXz.d.mts.map +0 -1
- package/dist/either-BMLPfvMl.mjs.map +0 -1
- package/dist/flow-D8_tllWl.mjs.map +0 -1
- package/dist/functions-BkevX2Dw.mjs +0 -2
- package/dist/functions-BkevX2Dw.mjs.map +0 -1
- package/dist/fx-K-a9Smhn.mjs +0 -2
- package/dist/fx-K-a9Smhn.mjs.map +0 -1
- package/dist/index-7Lv982Om.d.mts +0 -217
- package/dist/index-7Lv982Om.d.mts.map +0 -1
- package/dist/index-BNQ9xSAz.d.mts.map +0 -1
- package/dist/index-B_iY5tq0.d.mts.map +0 -1
- package/dist/index-B_wWGszy.d.mts.map +0 -1
- package/dist/index-BiiE8NS7.d.mts.map +0 -1
- package/dist/index-CGiLfREk.d.mts.map +0 -1
- package/dist/index-CUZn-ohG.d.mts.map +0 -1
- package/dist/index-Cq2IFito.d.mts.map +0 -1
- package/dist/index-DEAWPlcI.d.mts.map +0 -1
- package/dist/index-DKS1g1oC.d.mts.map +0 -1
- package/dist/index-DXbYlSnB.d.mts.map +0 -1
- package/dist/index-UzMbg1dh.d.mts.map +0 -1
- package/dist/layer-BttmtDrs.mjs.map +0 -1
- package/dist/multithread-xUUh4eLn.mjs.map +0 -1
- package/dist/option-Tfbo4wty.mjs.map +0 -1
- package/dist/order-D5c4QChk.mjs +0 -2
- package/dist/order-D5c4QChk.mjs.map +0 -1
- package/dist/pipeable-COGyGMUV.mjs +0 -2
- package/dist/predicate-DUhhQqWY.mjs.map +0 -1
- package/dist/provide-C2cWOx2B.mjs +0 -2
- package/dist/provide-C2cWOx2B.mjs.map +0 -1
- package/dist/queue-Sg6KJerl.mjs.map +0 -1
- package/dist/result-BEzV0DYC.mjs.map +0 -1
- package/dist/schedule-C6tjcJ1O.mjs +0 -2
- package/dist/schedule-C6tjcJ1O.mjs.map +0 -1
- package/dist/schedule-DlX2Dg69.d.mts +0 -144
- package/dist/schedule-DlX2Dg69.d.mts.map +0 -1
- package/dist/scope-CZdp4wKX.d.mts.map +0 -1
- package/dist/scope-D_kzd1nT.mjs.map +0 -1
- package/dist/service-3PYQTUdH.mjs.map +0 -1
- package/dist/service-DrXU7KJG.d.mts.map +0 -1
- /package/dist/{chunk-C934ptG5.mjs → chunk-oQKkju2G.mjs} +0 -0
- /package/dist/{option-CBCwzF0L.mjs → option-CXXiA1w-.mjs} +0 -0
- /package/dist/{result-B5WbPg8C.mjs → result-xFLfwriM.mjs} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { a as FxError, c as FxTypeId, d as FxYieldable, f as RunnableFx, h as isServiceRequest, i as Fx, l as FxValue, m as SyncFx, n as AsyncFxGenerator, o as FxGenerator, p as ServiceRequest, r as AsyncFxYieldable, s as FxRequirements, t as AsyncFx, u as FxYield } from "./fx.types-
|
|
2
|
-
import { a as ResultFromTry, m as Ok, p as Err, t as Result } from "./result.types-
|
|
3
|
-
import { r as Option } from "./option.types-
|
|
4
|
-
import { t as Concurrency } from "./queue.types-
|
|
5
|
-
import { n as SyncRetrySchedule, t as RetrySchedule } from "./schedule-
|
|
1
|
+
import { a as FxError, c as FxTypeId, d as FxYieldable, f as RunnableFx, h as isServiceRequest, i as Fx, l as FxValue, m as SyncFx, n as AsyncFxGenerator, o as FxGenerator, p as ServiceRequest, r as AsyncFxYieldable, s as FxRequirements, t as AsyncFx, u as FxYield } from "./fx.types-BdN1EWxr.mjs";
|
|
2
|
+
import { a as ResultFromTry, m as Ok, p as Err, t as Result } from "./result.types-BKzChyWY.mjs";
|
|
3
|
+
import { r as Option } from "./option.types-D9hrKcfa.mjs";
|
|
4
|
+
import { t as Concurrency } from "./queue.types-B-l5XYbU.mjs";
|
|
5
|
+
import { n as SyncRetrySchedule, t as RetrySchedule } from "./schedule-B9K_2Z21.mjs";
|
|
6
6
|
|
|
7
7
|
//#region src/fx/exit.d.ts
|
|
8
8
|
/**
|
|
@@ -100,17 +100,14 @@ type FxGenRequirements<Yielded> = Yielded extends Fx<unknown, unknown, infer R>
|
|
|
100
100
|
*
|
|
101
101
|
* @example
|
|
102
102
|
* ```ts
|
|
103
|
-
*
|
|
104
|
-
* const db = yield* Database
|
|
105
|
-
* const logger = yield* Logger
|
|
103
|
+
* import { Fx, Provide, Service } from "@nicolastoulemont/std"
|
|
106
104
|
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
105
|
+
* const Port = Service.tag<number>("Port")
|
|
106
|
+
* const readPort = Fx.gen(function* () {
|
|
107
|
+
* return yield* Port
|
|
109
108
|
* })
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
* // Execute later with dependencies provided
|
|
113
|
-
* const exit = pipe(getUser("123"), Provide.layer(AppLayer)).run()
|
|
109
|
+
* const exit = Fx.run(Provide.service(Port, 3000)(readPort))
|
|
110
|
+
* // => { _tag: "Ok", value: 3000 }
|
|
114
111
|
* ```
|
|
115
112
|
*/
|
|
116
113
|
declare function fxGen<Yielded, A$1>(generatorFn: () => Generator<Yielded, A$1, unknown>): SyncFx<A$1, FxGenError<Yielded>, FxGenRequirements<Yielded>>;
|
|
@@ -125,14 +122,16 @@ declare function fxGen<Yielded, A$1>(generatorFn: () => Generator<Yielded, A$1,
|
|
|
125
122
|
*
|
|
126
123
|
* @example
|
|
127
124
|
* ```ts
|
|
128
|
-
*
|
|
129
|
-
* const logger = yield* Logger
|
|
125
|
+
* import { Fx, Provide, Service } from "@nicolastoulemont/std"
|
|
130
126
|
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
127
|
+
* const Token = Service.tag<string>("Token")
|
|
128
|
+
* const readToken = Fx.gen(async function* () {
|
|
129
|
+
* const token = yield* Token
|
|
130
|
+
* const suffix = await Promise.resolve("-ok")
|
|
131
|
+
* return `${token}${suffix}`
|
|
134
132
|
* })
|
|
135
|
-
*
|
|
133
|
+
* const exit = await Fx.run(Provide.service(Token, "abc")(readToken))
|
|
134
|
+
* // => { _tag: "Ok", value: "abc-ok" }
|
|
136
135
|
* ```
|
|
137
136
|
*/
|
|
138
137
|
declare function fxGen<Yielded, A$1>(generatorFn: () => AsyncGenerator<Yielded, A$1, unknown>): AsyncFx<A$1, FxGenError<Yielded>, FxGenRequirements<Yielded>>;
|
|
@@ -148,13 +147,15 @@ declare function fxGen<Yielded, A$1>(generatorFn: () => AsyncGenerator<Yielded,
|
|
|
148
147
|
*
|
|
149
148
|
* @example
|
|
150
149
|
* ```ts
|
|
151
|
-
*
|
|
152
|
-
* const db = yield* Database
|
|
153
|
-
* return yield* db.query(`SELECT * FROM users WHERE id = '${userId}'`)
|
|
154
|
-
* })
|
|
155
|
-
* // Type: (params: {userId: string}) => SyncFx<...>
|
|
150
|
+
* import { Fx, Provide, Service } from "@nicolastoulemont/std"
|
|
156
151
|
*
|
|
157
|
-
* const
|
|
152
|
+
* const Port = Service.tag<number>("Port")
|
|
153
|
+
* const describePort = Fx.gen(function* (label: string) {
|
|
154
|
+
* const port = yield* Port
|
|
155
|
+
* return `${label}:${port}`
|
|
156
|
+
* })
|
|
157
|
+
* const exit = Fx.run(Provide.service(Port, 3000)(describePort("port")))
|
|
158
|
+
* // => { _tag: "Ok", value: "port:3000" }
|
|
158
159
|
* ```
|
|
159
160
|
*/
|
|
160
161
|
declare function fxGen<P extends [unknown, ...unknown[]], Yielded, A$1>(generatorFn: (...params: P) => Generator<Yielded, A$1, unknown>): (...params: P) => SyncFx<A$1, FxGenError<Yielded>, FxGenRequirements<Yielded>>;
|
|
@@ -170,11 +171,16 @@ declare function fxGen<P extends [unknown, ...unknown[]], Yielded, A$1>(generato
|
|
|
170
171
|
*
|
|
171
172
|
* @example
|
|
172
173
|
* ```ts
|
|
173
|
-
*
|
|
174
|
-
*
|
|
175
|
-
*
|
|
174
|
+
* import { Fx, Provide, Service } from "@nicolastoulemont/std"
|
|
175
|
+
*
|
|
176
|
+
* const Token = Service.tag<string>("Token")
|
|
177
|
+
* const describeToken = Fx.gen(async function* (prefix: string) {
|
|
178
|
+
* const token = yield* Token
|
|
179
|
+
* const suffix = await Promise.resolve("!")
|
|
180
|
+
* return `${prefix}:${token}${suffix}`
|
|
176
181
|
* })
|
|
177
|
-
*
|
|
182
|
+
* const exit = await Fx.run(Provide.service(Token, "abc")(describeToken("token")))
|
|
183
|
+
* // => { _tag: "Ok", value: "token:abc!" }
|
|
178
184
|
* ```
|
|
179
185
|
*/
|
|
180
186
|
declare function fxGen<P extends [unknown, ...unknown[]], Yielded, A$1>(generatorFn: (...params: P) => AsyncGenerator<Yielded, A$1, unknown>): (...params: P) => AsyncFx<A$1, FxGenError<Yielded>, FxGenRequirements<Yielded>>;
|
|
@@ -191,13 +197,14 @@ type FxRunResult<F extends RunnableFx<unknown, unknown, unknown>> = F extends As
|
|
|
191
197
|
*
|
|
192
198
|
* @example
|
|
193
199
|
* ```ts
|
|
200
|
+
* import { Fx } from "@nicolastoulemont/std"
|
|
201
|
+
*
|
|
194
202
|
* const exit = Fx.fn(function* () {
|
|
195
|
-
* const a = yield*
|
|
196
|
-
* const b = yield*
|
|
203
|
+
* const a = yield* Fx.ok(10)
|
|
204
|
+
* const b = yield* Fx.ok(20)
|
|
197
205
|
* return a + b
|
|
198
206
|
* })
|
|
199
|
-
* //
|
|
200
|
-
* // exit = { _tag: "Ok", value: 30 }
|
|
207
|
+
* // => { _tag: "Ok", value: 30 }
|
|
201
208
|
* ```
|
|
202
209
|
*/
|
|
203
210
|
declare function fxFn<A$1, E$1>(generatorFn: () => FxGenerator<A$1, E$1, never>): Exit<A$1, E$1>;
|
|
@@ -213,12 +220,13 @@ declare function fxFn<A$1, E$1>(generatorFn: () => FxGenerator<A$1, E$1, never>)
|
|
|
213
220
|
*
|
|
214
221
|
* @example
|
|
215
222
|
* ```ts
|
|
223
|
+
* import { Fx } from "@nicolastoulemont/std"
|
|
224
|
+
*
|
|
216
225
|
* const exit = await Fx.fn(async function* () {
|
|
217
|
-
* const
|
|
218
|
-
*
|
|
219
|
-
* return data
|
|
226
|
+
* const value = await Promise.resolve(2)
|
|
227
|
+
* return value + 1
|
|
220
228
|
* })
|
|
221
|
-
* //
|
|
229
|
+
* // => { _tag: "Ok", value: 3 }
|
|
222
230
|
* ```
|
|
223
231
|
*/
|
|
224
232
|
declare function fxFn<A$1, E$1>(generatorFn: () => AsyncFxGenerator<A$1, E$1, never>): Promise<Exit<A$1, E$1>>;
|
|
@@ -236,13 +244,15 @@ declare function fxFn<A$1, E$1>(generatorFn: () => AsyncFxGenerator<A$1, E$1, ne
|
|
|
236
244
|
*
|
|
237
245
|
* @example
|
|
238
246
|
* ```ts
|
|
247
|
+
* import { Fx, Provide, Service } from "@nicolastoulemont/std"
|
|
248
|
+
*
|
|
249
|
+
* const Port = Service.tag<number>("Port")
|
|
250
|
+
*
|
|
239
251
|
* const exit = Fx.fn(function* () {
|
|
240
|
-
* const
|
|
241
|
-
*
|
|
242
|
-
*
|
|
243
|
-
*
|
|
244
|
-
* }, Provide.layer(AppLayer))
|
|
245
|
-
* // Type: Exit<string, never>
|
|
252
|
+
* const port = yield* Port
|
|
253
|
+
* return port + 1
|
|
254
|
+
* }, Provide.service(Port, 3000))
|
|
255
|
+
* // => { _tag: "Ok", value: 3001 }
|
|
246
256
|
* ```
|
|
247
257
|
*/
|
|
248
258
|
declare function fxFn<A$1, E$1, R$1, ProvidedFx extends RunnableFx<unknown, unknown, unknown>>(generatorFn: () => FxGenerator<A$1, E$1, R$1>, provider: (fx: SyncFx<A$1, E$1, R$1>) => ProvidedFx): FxRunResult<ProvidedFx>;
|
|
@@ -260,12 +270,16 @@ declare function fxFn<A$1, E$1, R$1, ProvidedFx extends RunnableFx<unknown, unkn
|
|
|
260
270
|
*
|
|
261
271
|
* @example
|
|
262
272
|
* ```ts
|
|
273
|
+
* import { Fx, Provide, Service } from "@nicolastoulemont/std"
|
|
274
|
+
*
|
|
275
|
+
* const Token = Service.tag<string>("Token")
|
|
276
|
+
*
|
|
263
277
|
* const exit = await Fx.fn(async function* () {
|
|
264
|
-
* const
|
|
265
|
-
* await
|
|
266
|
-
* return
|
|
267
|
-
* }, Provide.
|
|
268
|
-
* //
|
|
278
|
+
* const token = yield* Token
|
|
279
|
+
* const suffix = await Promise.resolve("!")
|
|
280
|
+
* return `${token}${suffix}`
|
|
281
|
+
* }, Provide.service(Token, "abc"))
|
|
282
|
+
* // => { _tag: "Ok", value: "abc!" }
|
|
269
283
|
* ```
|
|
270
284
|
*/
|
|
271
285
|
declare function fxFn<A$1, E$1, R$1, ProvidedFx extends RunnableFx<unknown, unknown, unknown>>(generatorFn: () => AsyncFxGenerator<A$1, E$1, R$1>, provider: (fx: AsyncFx<A$1, E$1, R$1>) => ProvidedFx): FxRunResult<ProvidedFx>;
|
|
@@ -279,8 +293,6 @@ declare function fxFn<A$1, E$1, R$1, ProvidedFx extends RunnableFx<unknown, unkn
|
|
|
279
293
|
*
|
|
280
294
|
* type Example = typeof Fx
|
|
281
295
|
* ```
|
|
282
|
-
*
|
|
283
|
-
* @category Type-level
|
|
284
296
|
*/
|
|
285
297
|
type TaggedMatch<T extends {
|
|
286
298
|
readonly _tag: string;
|
|
@@ -301,8 +313,6 @@ type TaggedMatch<T extends {
|
|
|
301
313
|
* const exit = Fx.run(program)
|
|
302
314
|
* // => { _tag: "Ok", value: 3 }
|
|
303
315
|
* ```
|
|
304
|
-
*
|
|
305
|
-
* @category Constructors
|
|
306
316
|
*/
|
|
307
317
|
declare const gen: typeof fxGen;
|
|
308
318
|
/**
|
|
@@ -317,8 +327,6 @@ declare const gen: typeof fxGen;
|
|
|
317
327
|
* })
|
|
318
328
|
* // => { _tag: "Ok", value: 2 }
|
|
319
329
|
* ```
|
|
320
|
-
*
|
|
321
|
-
* @category Utilities
|
|
322
330
|
*/
|
|
323
331
|
declare const fn: typeof fxFn;
|
|
324
332
|
/**
|
|
@@ -333,8 +341,6 @@ declare const fn: typeof fxFn;
|
|
|
333
341
|
* }))
|
|
334
342
|
* // => { _tag: "Ok", value: 1 }
|
|
335
343
|
* ```
|
|
336
|
-
*
|
|
337
|
-
* @category Utilities
|
|
338
344
|
*/
|
|
339
345
|
declare const run: typeof fxRun;
|
|
340
346
|
/**
|
|
@@ -355,8 +361,6 @@ declare const run: typeof fxRun;
|
|
|
355
361
|
* const exit = Fx.run(retried)
|
|
356
362
|
* // => { _tag: "Err", error: "boom" }
|
|
357
363
|
* ```
|
|
358
|
-
*
|
|
359
|
-
* @category Error Handling
|
|
360
364
|
*/
|
|
361
365
|
declare const retry: {
|
|
362
366
|
<Fx$1 extends RunnableFx<unknown, unknown, unknown>, S extends RetrySchedule>(fx: Fx$1, schedule: S): RetryResult<Fx$1, S>;
|
|
@@ -374,8 +378,6 @@ declare const retry: {
|
|
|
374
378
|
* }))
|
|
375
379
|
* // => AsyncFx<readonly number[], ...>
|
|
376
380
|
* ```
|
|
377
|
-
*
|
|
378
|
-
* @category Sequencing
|
|
379
381
|
*/
|
|
380
382
|
declare const forEach: {
|
|
381
383
|
<A$1, F extends (a: A$1, i: number) => RunnableFx<unknown, unknown, unknown>, const Discard extends boolean = false>(self: Iterable<A$1>, f: F, options?: {
|
|
@@ -403,8 +405,6 @@ declare const forEach: {
|
|
|
403
405
|
* const value = Fx.ok(42)
|
|
404
406
|
* // => { _tag: "Ok", value: 42 }
|
|
405
407
|
* ```
|
|
406
|
-
*
|
|
407
|
-
* @category Constructors
|
|
408
408
|
*/
|
|
409
409
|
declare const ok: <T>(value: T) => Result<T, never>;
|
|
410
410
|
/**
|
|
@@ -417,8 +417,6 @@ declare const ok: <T>(value: T) => Result<T, never>;
|
|
|
417
417
|
* const value = Fx.err("boom")
|
|
418
418
|
* // => { _tag: "Err", error: "boom" }
|
|
419
419
|
* ```
|
|
420
|
-
*
|
|
421
|
-
* @category Constructors
|
|
422
420
|
*/
|
|
423
421
|
declare const err: <E$1>(error: E$1) => Result<never, E$1>;
|
|
424
422
|
/**
|
|
@@ -431,8 +429,6 @@ declare const err: <E$1>(error: E$1) => Result<never, E$1>;
|
|
|
431
429
|
* const value = Fx.option("token")
|
|
432
430
|
* // => { _tag: "Some", value: "token" }
|
|
433
431
|
* ```
|
|
434
|
-
*
|
|
435
|
-
* @category Conversions
|
|
436
432
|
*/
|
|
437
433
|
declare const option: <T>(value: T) => Option<NonNullable<T>>;
|
|
438
434
|
declare const try_: ResultFromTry;
|
|
@@ -448,8 +444,6 @@ declare const try_: ResultFromTry;
|
|
|
448
444
|
* })
|
|
449
445
|
* // => 3
|
|
450
446
|
* ```
|
|
451
|
-
*
|
|
452
|
-
* @category Pattern Matching
|
|
453
447
|
*/
|
|
454
448
|
declare const match: {
|
|
455
449
|
<T extends {
|
|
@@ -461,4 +455,4 @@ declare const match: {
|
|
|
461
455
|
};
|
|
462
456
|
//#endregion
|
|
463
457
|
export { fx_d_exports as t };
|
|
464
|
-
//# sourceMappingURL=index-
|
|
458
|
+
//# sourceMappingURL=index-MsJqfQu0.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-MsJqfQu0.d.mts","names":[],"sources":["../src/fx/exit.ts","../src/fx/fx.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as
|
|
1
|
+
import { i as Fx } from "./fx.types-BdN1EWxr.mjs";
|
|
2
|
+
import { t as Discriminator } from "./discriminator.types-C-ygT2S1.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/data/data.types.d.ts
|
|
5
5
|
/**
|
|
@@ -185,6 +185,40 @@ declare function struct$1<T extends Record<string, unknown>>(input: T): StructVa
|
|
|
185
185
|
*/
|
|
186
186
|
declare function tagged$1<T extends Record<string, unknown>>(tag: string): TaggedConstructor<typeof tag, T>;
|
|
187
187
|
//#endregion
|
|
188
|
+
//#region src/data/data.tagged-error.types.d.ts
|
|
189
|
+
interface TaggedErrorCore<Tag extends string, Data extends object = object> extends Error, Fx<never, TaggedErrorInstance<Tag, Data>, never> {
|
|
190
|
+
readonly _tag: Tag;
|
|
191
|
+
[Symbol.iterator](): Generator<TaggedErrorInstance<Tag, Data>, never, unknown>;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Type for instances created by the TaggedError class factory.
|
|
195
|
+
* Extends Error and includes the tag, data, Fx protocol, and Yieldable protocol.
|
|
196
|
+
* When yielded, yields itself as an Fx type for proper inference.
|
|
197
|
+
*
|
|
198
|
+
* @template Tag - The error tag (discriminator string)
|
|
199
|
+
* @template Data - Additional error data (optional)
|
|
200
|
+
*/
|
|
201
|
+
type TaggedErrorInstance<Tag extends string, Data extends object = object> = TaggedErrorCore<Tag, Data> & Readonly<Data>;
|
|
202
|
+
/**
|
|
203
|
+
* Public constructor shape for tagged error classes with a fixed payload.
|
|
204
|
+
*
|
|
205
|
+
* @template Tag - The error tag (discriminator string)
|
|
206
|
+
* @template Data - Additional error data (optional)
|
|
207
|
+
*/
|
|
208
|
+
type TaggedErrorClass<Tag extends string, Data extends object = object> = {
|
|
209
|
+
new (...args: keyof Data extends never ? [] : [data: Data]): TaggedErrorInstance<Tag, Data>;
|
|
210
|
+
readonly _tag: Tag;
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* Type for the class returned by TaggedError factory.
|
|
214
|
+
* Supports the Effect-style curried syntax: `TaggedError("Tag")<{ data }>` and `TaggedError("Tag")`
|
|
215
|
+
*
|
|
216
|
+
* @template Tag - The error tag (discriminator string)
|
|
217
|
+
*/
|
|
218
|
+
type TaggedErrorFactory<Tag extends string> = TaggedErrorClass<Tag> & {
|
|
219
|
+
new <Data extends object = object>(...args: keyof Data extends never ? [] : [data: Data]): TaggedErrorInstance<Tag, Data>;
|
|
220
|
+
};
|
|
221
|
+
//#endregion
|
|
188
222
|
//#region src/data/data.tagged-error.d.ts
|
|
189
223
|
/**
|
|
190
224
|
* Create a class-based tagged error type (Effect-style syntax).
|
|
@@ -255,7 +289,7 @@ declare function TaggedError$1<Tag extends string>(tag: Tag): TaggedErrorFactory
|
|
|
255
289
|
*/
|
|
256
290
|
declare function tuple$1<T extends readonly unknown[]>(...args: T): TupleValue<T>;
|
|
257
291
|
declare namespace data_d_exports {
|
|
258
|
-
export { TaggedError, array, struct, tagged, tuple };
|
|
292
|
+
export { TaggedError, TaggedErrorClass, TaggedErrorFactory, TaggedErrorInstance, array, struct, tagged, tuple };
|
|
259
293
|
}
|
|
260
294
|
/**
|
|
261
295
|
* Construct tagged data objects.
|
|
@@ -268,8 +302,6 @@ declare namespace data_d_exports {
|
|
|
268
302
|
* const user = User({ id: "u1" })
|
|
269
303
|
* // => { _tag: "User", id: "u1" }
|
|
270
304
|
* ```
|
|
271
|
-
*
|
|
272
|
-
* @category Constructors
|
|
273
305
|
*/
|
|
274
306
|
declare const tagged: typeof tagged$1;
|
|
275
307
|
/**
|
|
@@ -283,8 +315,6 @@ declare const tagged: typeof tagged$1;
|
|
|
283
315
|
* const error = new NotFoundError({ id: "u1" })
|
|
284
316
|
* // => { _tag: "NotFoundError", id: "u1" }
|
|
285
317
|
* ```
|
|
286
|
-
*
|
|
287
|
-
* @category Constructors
|
|
288
318
|
*/
|
|
289
319
|
declare const TaggedError: typeof TaggedError$1;
|
|
290
320
|
/**
|
|
@@ -298,8 +328,6 @@ declare const TaggedError: typeof TaggedError$1;
|
|
|
298
328
|
* const same = point.equals({ x: 1, y: 2 })
|
|
299
329
|
* // => true
|
|
300
330
|
* ```
|
|
301
|
-
*
|
|
302
|
-
* @category Constructors
|
|
303
331
|
*/
|
|
304
332
|
declare const struct: typeof struct$1;
|
|
305
333
|
/**
|
|
@@ -313,8 +341,6 @@ declare const struct: typeof struct$1;
|
|
|
313
341
|
* const first = pair[0]
|
|
314
342
|
* // => "left"
|
|
315
343
|
* ```
|
|
316
|
-
*
|
|
317
|
-
* @category Constructors
|
|
318
344
|
*/
|
|
319
345
|
declare const tuple: typeof tuple$1;
|
|
320
346
|
/**
|
|
@@ -328,10 +354,8 @@ declare const tuple: typeof tuple$1;
|
|
|
328
354
|
* const upper = ids.map((id) => id.toUpperCase())
|
|
329
355
|
* // => ["A", "B"]
|
|
330
356
|
* ```
|
|
331
|
-
*
|
|
332
|
-
* @category Constructors
|
|
333
357
|
*/
|
|
334
358
|
declare const array: typeof array$1;
|
|
335
359
|
//#endregion
|
|
336
|
-
export { data_d_exports as t };
|
|
337
|
-
//# sourceMappingURL=index-
|
|
360
|
+
export { TaggedErrorFactory as n, data_d_exports as t };
|
|
361
|
+
//# sourceMappingURL=index-UINIHFuh.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-UINIHFuh.d.mts","names":[],"sources":["../src/data/data.types.ts","../src/data/data.array.ts","../src/data/data.struct.ts","../src/data/data.tagged.ts","../src/data/data.tagged-error.types.ts","../src/data/data.tagged-error.ts","../src/data/data.tuple.ts","../src/data/data.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { f as RunnableFx, m as SyncFx, t as AsyncFx } from "./fx.types-
|
|
2
|
-
import { t as ServiceClass } from "./service-
|
|
3
|
-
import { t as Context } from "./context-
|
|
4
|
-
import { n as Layer } from "./layer.types-
|
|
1
|
+
import { f as RunnableFx, m as SyncFx, t as AsyncFx } from "./fx.types-BdN1EWxr.mjs";
|
|
2
|
+
import { t as ServiceClass } from "./service-D8mr0wwg.mjs";
|
|
3
|
+
import { t as Context } from "./context-B2dWloPl.mjs";
|
|
4
|
+
import { n as Layer } from "./layer.types-BB0MrvLg.mjs";
|
|
5
5
|
|
|
6
6
|
//#region src/provide/provide.d.ts
|
|
7
7
|
declare namespace provide_d_exports {
|
|
@@ -39,9 +39,7 @@ type ProvideResult<E2, LayerSync extends boolean, Fx extends RunnableFx<unknown,
|
|
|
39
39
|
*
|
|
40
40
|
* @example
|
|
41
41
|
* ```ts
|
|
42
|
-
* import { Provide } from "@nicolastoulemont/std"
|
|
43
|
-
*
|
|
44
|
-
* import { Fx, Layer, Service } from "@nicolastoulemont/std"
|
|
42
|
+
* import { Fx, Layer, Provide, Service } from "@nicolastoulemont/std"
|
|
45
43
|
*
|
|
46
44
|
* const Port = Service.tag<number>("Port")
|
|
47
45
|
* const portLayer = Layer.ok(Port, 3000)
|
|
@@ -49,10 +47,9 @@ type ProvideResult<E2, LayerSync extends boolean, Fx extends RunnableFx<unknown,
|
|
|
49
47
|
* return yield* Port
|
|
50
48
|
* })
|
|
51
49
|
* const provided = Provide.layer(portLayer)(readPort)
|
|
52
|
-
*
|
|
50
|
+
* const exit = Fx.run(provided)
|
|
51
|
+
* // => { _tag: "Ok", value: 3000 }
|
|
53
52
|
* ```
|
|
54
|
-
*
|
|
55
|
-
* @category Utilities
|
|
56
53
|
*/
|
|
57
54
|
declare function layer<ROut, E2, LayerSync extends boolean>(layer: Layer<ROut, E2, never, LayerSync>): <Fx extends RunnableFx<unknown, unknown, ROut>>(fx: Fx) => ProvideResult<E2, LayerSync, Fx>;
|
|
58
55
|
/**
|
|
@@ -63,9 +60,7 @@ declare function layer<ROut, E2, LayerSync extends boolean>(layer: Layer<ROut, E
|
|
|
63
60
|
*
|
|
64
61
|
* @example
|
|
65
62
|
* ```ts
|
|
66
|
-
* import { Provide } from "@nicolastoulemont/std"
|
|
67
|
-
*
|
|
68
|
-
* import { Context, Fx, Service } from "@nicolastoulemont/std"
|
|
63
|
+
* import { Context, Fx, Provide, Service } from "@nicolastoulemont/std"
|
|
69
64
|
*
|
|
70
65
|
* const Port = Service.tag<number>("Port")
|
|
71
66
|
* const ctx = Context.make(Port, 3000)
|
|
@@ -73,10 +68,9 @@ declare function layer<ROut, E2, LayerSync extends boolean>(layer: Layer<ROut, E
|
|
|
73
68
|
* return yield* Port
|
|
74
69
|
* })
|
|
75
70
|
* const provided = Provide.context(ctx)(readPort)
|
|
76
|
-
*
|
|
71
|
+
* const exit = Fx.run(provided)
|
|
72
|
+
* // => { _tag: "Ok", value: 3000 }
|
|
77
73
|
* ```
|
|
78
|
-
*
|
|
79
|
-
* @category Utilities
|
|
80
74
|
*/
|
|
81
75
|
declare const context: <R>(ctx: Context<R>) => <A, E>(fx: RunnableFx<A, E, R>) => RunnableFx<A, E>;
|
|
82
76
|
/**
|
|
@@ -88,21 +82,18 @@ declare const context: <R>(ctx: Context<R>) => <A, E>(fx: RunnableFx<A, E, R>) =
|
|
|
88
82
|
*
|
|
89
83
|
* @example
|
|
90
84
|
* ```ts
|
|
91
|
-
* import { Provide } from "@nicolastoulemont/std"
|
|
92
|
-
*
|
|
93
|
-
* import { Fx, Service } from "@nicolastoulemont/std"
|
|
85
|
+
* import { Fx, Provide, Service } from "@nicolastoulemont/std"
|
|
94
86
|
*
|
|
95
87
|
* const Port = Service.tag<number>("Port")
|
|
96
88
|
* const readPort = Fx.gen(function* () {
|
|
97
89
|
* return yield* Port
|
|
98
90
|
* })
|
|
99
91
|
* const provided = Provide.service(Port, 3000)(readPort)
|
|
100
|
-
*
|
|
92
|
+
* const exit = Fx.run(provided)
|
|
93
|
+
* // => { _tag: "Ok", value: 3000 }
|
|
101
94
|
* ```
|
|
102
|
-
*
|
|
103
|
-
* @category Utilities
|
|
104
95
|
*/
|
|
105
96
|
declare const service: <S>(service: ServiceClass<S>, impl: S) => <A, E, R>(fx: RunnableFx<A, E, R | S>) => RunnableFx<A, E, Exclude<R, S>>;
|
|
106
97
|
//#endregion
|
|
107
98
|
export { provide_d_exports as t };
|
|
108
|
-
//# sourceMappingURL=index-
|
|
99
|
+
//# sourceMappingURL=index-crtzMG48.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-crtzMG48.d.mts","names":[],"sources":["../src/provide/provide.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;KAoBK,iBAAiB,UAAU;;;;KAK3B,iBAAiB,UAAU;AAlBsB;AAaZ;AAKA;;;;;;KAUrC,aAMqC,CAAA,EAAA,EAAA,kBAAA,OAAA,EAAA,WAH7B,UAG6B,CAAA,OAAA,EAAA,OAAA,EAAA,OAAA,CAAA,CAAA,GAFtC,SAEsC,SAAA,IAAA,GADtC,EACsC,CAAA,MAAA,CAAA,SAAA,QAAA,GAApC,MAAoC,CAA7B,WAA6B,CAAjB,EAAiB,CAAA,EAAZ,WAAY,CAAA,EAAA,CAAA,GAAM,EAAN,CAAA,GACpC,OADoC,CAC5B,WAD4B,CAChB,EADgB,CAAA,EACX,WADW,CACC,EADD,CAAA,GACO,EADP,CAAA,GAEtC,SAFsC,SAAA,KAAA,GAGpC,OAHoC,CAG5B,WAH4B,CAGhB,EAHgB,CAAA,EAGX,WAHW,CAGC,EAHD,CAAA,GAGO,EAHP,CAAA,GAIpC,UAJoC,CAIzB,WAJyB,CAIb,EAJa,CAAA,EAIR,WAJQ,CAII,EAJJ,CAAA,GAIU,EAJV,CAAA;;;;;;;;;;;;;;;;;;;;;;;;AAiC1C;;;;AACS,iBADO,KACP,CAAA,IAAA,EAAA,EAAA,EAAA,kBAAA,OAAA,CAAA,CAAA,KAAA,EAAA,KAAA,CAAM,IAAN,EAAY,EAAZ,EAAA,KAAA,EAAuB,SAAvB,CAAA,CAAA,EAAA,CAAA,WACM,UADN,CAAA,OAAA,EAAA,OAAA,EACmC,IADnC,CAAA,CAAA,CAAA,EAAA,EAC8C,EAD9C,EAAA,GACqD,aADrD,CACmE,EADnE,EACuE,SADvE,EACkF,EADlF,CAAA;;;;;;;;;AA+LT;;;;;;;;;;;AA8FA;AAC4B,cA/Ff,OA+Fe,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EA9FjB,OA8FiB,CA9FT,CA8FS,CAAA,EAAA,GAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EA7Ff,UA6Fe,CA7FJ,CA6FI,EA7FD,CA6FC,EA7FE,CA6FF,CAAA,EAAA,GA7FO,UA6FP,CA7FkB,CA6FlB,EA7FqB,CA6FrB,CAAA;;;;;;;;;;;;;;;;;;;;;cADf,sBACE,aAAa,UAAU,oBACtB,WAAW,GAAG,GAAG,IAAI,OAAK,WAAW,GAAG,GAAG,QAAQ,GAAG"}
|