@logixjs/sandbox 0.0.1 → 0.0.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.
- package/LICENSE +201 -0
- package/package.json +3 -1
- package/public/sandbox/chunks/chunk-2AUQRESB.js +1114 -0
- package/public/sandbox/chunks/chunk-2F72LQKW.js +194 -0
- package/public/sandbox/chunks/chunk-2PYDGDD3.js +4071 -0
- package/public/sandbox/chunks/chunk-2UGKSXDZ.js +16 -0
- package/public/sandbox/chunks/chunk-2XVE7F26.js +153 -0
- package/public/sandbox/chunks/chunk-3A7TFNZN.js +219 -0
- package/public/sandbox/chunks/chunk-3BHC6JAV.js +1070 -0
- package/public/sandbox/chunks/chunk-3U4CAKCX.js +61 -0
- package/public/sandbox/chunks/chunk-3VU3JLZO.js +272 -0
- package/public/sandbox/chunks/chunk-4CPONKWY.js +1170 -0
- package/public/sandbox/chunks/chunk-4GMUQTWH.js +850 -0
- package/public/sandbox/chunks/chunk-4KIYG5E4.js +749 -0
- package/public/sandbox/chunks/chunk-4MY35XR3.js +175 -0
- package/public/sandbox/chunks/chunk-5DNHJMHA.js +69 -0
- package/public/sandbox/chunks/chunk-5EC4S7X6.js +42 -0
- package/public/sandbox/chunks/chunk-5FB7QFSH.js +227 -0
- package/public/sandbox/chunks/chunk-5GEYCJW2.js +206 -0
- package/public/sandbox/chunks/chunk-5PT7Q5SS.js +373 -0
- package/public/sandbox/chunks/chunk-5WN5IGKA.js +166 -0
- package/public/sandbox/chunks/chunk-5XOBKSOT.js +213 -0
- package/public/sandbox/chunks/chunk-67RVISUC.js +313 -0
- package/public/sandbox/chunks/chunk-6ELJEKZS.js +12 -0
- package/public/sandbox/chunks/chunk-6FKWRVP4.js +85 -0
- package/public/sandbox/chunks/chunk-6JRP52YT.js +34 -0
- package/public/sandbox/chunks/chunk-6JYAC3G6.js +42 -0
- package/public/sandbox/chunks/chunk-6TUOP63Q.js +86 -0
- package/public/sandbox/chunks/{chunk-A6JFUNQQ.js → chunk-74C5VW7Z.js} +2 -2
- package/public/sandbox/chunks/chunk-75DQFC5M.js +16 -0
- package/public/sandbox/chunks/{chunk-UCFEP3BH.js → chunk-7GPAF2UK.js} +1 -1
- package/public/sandbox/chunks/chunk-7KQFTS2Y.js +135 -0
- package/public/sandbox/chunks/chunk-7POKWYE3.js +112 -0
- package/public/sandbox/chunks/chunk-7VUEF5F3.js +395 -0
- package/public/sandbox/chunks/chunk-7W5APZS2.js +77 -0
- package/public/sandbox/chunks/chunk-A6OFCXDQ.js +397 -0
- package/public/sandbox/chunks/chunk-A7HLOSO6.js +216 -0
- package/public/sandbox/chunks/chunk-AGF4RRCB.js +408 -0
- package/public/sandbox/chunks/chunk-ASJSJAAL.js +122 -0
- package/public/sandbox/chunks/chunk-ASVMK364.js +283 -0
- package/public/sandbox/chunks/chunk-AUDTI2BQ.js +895 -0
- package/public/sandbox/chunks/chunk-B2SZTA3M.js +16 -0
- package/public/sandbox/chunks/chunk-B6YS2UMV.js +372 -0
- package/public/sandbox/chunks/chunk-BCEO3MGD.js +244 -0
- package/public/sandbox/chunks/chunk-BCOO65D4.js +373 -0
- package/public/sandbox/chunks/chunk-BJOWSSEL.js +38 -0
- package/public/sandbox/chunks/chunk-BS2WBFW4.js +373 -0
- package/public/sandbox/chunks/chunk-BUVHG3NJ.js +439 -0
- package/public/sandbox/chunks/chunk-BVE33AN6.js +42 -0
- package/public/sandbox/chunks/chunk-BWTGJZVP.js +19 -0
- package/public/sandbox/chunks/chunk-BXD7GZC3.js +1025 -0
- package/public/sandbox/chunks/chunk-BZH4EUUD.js +164 -0
- package/public/sandbox/chunks/{chunk-HFV5GJPK.js → chunk-C2MYMMO4.js} +3 -3
- package/public/sandbox/chunks/chunk-CRE4NJJ6.js +271 -0
- package/public/sandbox/chunks/chunk-CVZPRIDB.js +706 -0
- package/public/sandbox/chunks/chunk-CWOXD5NG.js +991 -0
- package/public/sandbox/chunks/chunk-D6DOC3BJ.js +373 -0
- package/public/sandbox/chunks/chunk-DEPSGFSY.js +1698 -0
- package/public/sandbox/chunks/chunk-DM7C5NP5.js +819 -0
- package/public/sandbox/chunks/chunk-DN33LMOF.js +1112 -0
- package/public/sandbox/chunks/{chunk-S46P7MC6.js → chunk-DT7YIIWE.js} +2 -2
- package/public/sandbox/chunks/chunk-DVB5WRCI.js +260 -0
- package/public/sandbox/chunks/{chunk-TOHCFMQS.js → chunk-E3EVW7NR.js} +11 -18
- package/public/sandbox/chunks/chunk-E5BV567Q.js +417 -0
- package/public/sandbox/chunks/chunk-E7BIWMQQ.js +203 -0
- package/public/sandbox/chunks/chunk-EAKGPSOQ.js +83 -0
- package/public/sandbox/chunks/chunk-EGUYL2ER.js +75 -0
- package/public/sandbox/chunks/chunk-EP5GQYZ5.js +85 -0
- package/public/sandbox/chunks/chunk-ET6CJEHC.js +221 -0
- package/public/sandbox/chunks/chunk-EU67YZHZ.js +1070 -0
- package/public/sandbox/chunks/{chunk-PTSJJANP.js → chunk-EYNDQLSB.js} +1 -1
- package/public/sandbox/chunks/{chunk-CEGSWZ5S.js → chunk-EZTMVCJF.js} +1 -1
- package/public/sandbox/chunks/chunk-F5CLVIS6.js +907 -0
- package/public/sandbox/chunks/chunk-F743SKYD.js +85 -0
- package/public/sandbox/chunks/chunk-FEGFZ5OX.js +86 -0
- package/public/sandbox/chunks/chunk-FG5B7ZX3.js +373 -0
- package/public/sandbox/chunks/chunk-FKZPYMDG.js +373 -0
- package/public/sandbox/chunks/chunk-FNLXHWIU.js +220 -0
- package/public/sandbox/chunks/chunk-FQRUTYAD.js +1991 -0
- package/public/sandbox/chunks/{chunk-VLYP4WUS.js → chunk-FY5A73NK.js} +5 -5
- package/public/sandbox/chunks/chunk-G7FAOG3O.js +221 -0
- package/public/sandbox/chunks/chunk-GFXHUC7Y.js +73 -0
- package/public/sandbox/chunks/chunk-GIPXUIZQ.js +534 -0
- package/public/sandbox/chunks/chunk-GP37MEGJ.js +52 -0
- package/public/sandbox/chunks/chunk-GXL5QCMF.js +4511 -0
- package/public/sandbox/chunks/chunk-GZ2NSE6A.js +177 -0
- package/public/sandbox/chunks/chunk-GZATW4YD.js +69 -0
- package/public/sandbox/chunks/chunk-H4EBXROQ.js +166 -0
- package/public/sandbox/chunks/chunk-HETCPK6Z.js +153 -0
- package/public/sandbox/chunks/chunk-HGUFQ2QC.js +4431 -0
- package/public/sandbox/chunks/chunk-HGV3VNH3.js +255 -0
- package/public/sandbox/chunks/chunk-HIJ67QWR.js +5397 -0
- package/public/sandbox/chunks/chunk-IDHERBKW.js +1114 -0
- package/public/sandbox/chunks/chunk-IDTK4FIY.js +102 -0
- package/public/sandbox/chunks/chunk-ILFVY7H5.js +164 -0
- package/public/sandbox/chunks/chunk-ISGSRYGO.js +57 -0
- package/public/sandbox/chunks/chunk-J45VPU24.js +408 -0
- package/public/sandbox/chunks/chunk-JAUIM3O5.js +42 -0
- package/public/sandbox/chunks/chunk-JB7OQEM6.js +373 -0
- package/public/sandbox/chunks/chunk-JCKW6NHD.js +15 -0
- package/public/sandbox/chunks/chunk-JMA7GY7Z.js +221 -0
- package/public/sandbox/chunks/chunk-JY46J6IL.js +836 -0
- package/public/sandbox/chunks/{chunk-X72PZOFA.js → chunk-K2MQ66O7.js} +1 -1
- package/public/sandbox/chunks/chunk-KA7PZA6F.js +464 -0
- package/public/sandbox/chunks/chunk-KDEQTUID.js +102 -0
- package/public/sandbox/chunks/chunk-KDJR27JV.js +1696 -0
- package/public/sandbox/chunks/chunk-KFE3JO6N.js +77 -0
- package/public/sandbox/chunks/chunk-KLDSYWT5.js +536 -0
- package/public/sandbox/chunks/chunk-KQWWFYBF.js +203 -0
- package/public/sandbox/chunks/chunk-KTFZSXOW.js +6473 -0
- package/public/sandbox/chunks/chunk-KXVIC55U.js +108 -0
- package/public/sandbox/chunks/{chunk-HNEDTEGQ.js → chunk-L4PNO2H6.js} +1 -1
- package/public/sandbox/chunks/{chunk-WE4STGO2.js → chunk-L4ZNW5DI.js} +2 -2
- package/public/sandbox/chunks/chunk-LBUINGZ4.js +836 -0
- package/public/sandbox/chunks/chunk-LIYPPU6I.js +112 -0
- package/public/sandbox/chunks/chunk-LJHTOJXW.js +221 -0
- package/public/sandbox/chunks/{chunk-BWSNPKO5.js → chunk-LQL23SWJ.js} +2 -2
- package/public/sandbox/chunks/chunk-LTFCYZQ6.js +46 -0
- package/public/sandbox/chunks/chunk-LTWLVCKQ.js +166 -0
- package/public/sandbox/chunks/chunk-LWI7BXFN.js +395 -0
- package/public/sandbox/chunks/chunk-LYBBX6WM.js +225 -0
- package/public/sandbox/chunks/chunk-MXE7HIBM.js +474 -0
- package/public/sandbox/chunks/chunk-MYBDYNK4.js +6004 -0
- package/public/sandbox/chunks/chunk-NC2MIWZX.js +732 -0
- package/public/sandbox/chunks/chunk-NE447XAF.js +597 -0
- package/public/sandbox/chunks/chunk-NEAYV5C2.js +255 -0
- package/public/sandbox/chunks/chunk-NMGFJZ4I.js +26 -0
- package/public/sandbox/chunks/chunk-NWCJJZNQ.js +71 -0
- package/public/sandbox/chunks/chunk-O57OZBDR.js +214 -0
- package/public/sandbox/chunks/chunk-OJJT664Q.js +731 -0
- package/public/sandbox/chunks/chunk-OKTBUTCH.js +1175 -0
- package/public/sandbox/chunks/chunk-OQ4SYV5D.js +534 -0
- package/public/sandbox/chunks/chunk-OTVVIHJD.js +219 -0
- package/public/sandbox/chunks/chunk-OWTMSCF7.js +1052 -0
- package/public/sandbox/chunks/chunk-P5ZQNFC3.js +122 -0
- package/public/sandbox/chunks/chunk-PBPT2U2N.js +1698 -0
- package/public/sandbox/chunks/chunk-PHBJLCP3.js +836 -0
- package/public/sandbox/chunks/chunk-PHV4HYHB.js +397 -0
- package/public/sandbox/chunks/chunk-PIXQ6SOX.js +4071 -0
- package/public/sandbox/chunks/chunk-PKJL6YLK.js +73 -0
- package/public/sandbox/chunks/chunk-PKPOITIU.js +221 -0
- package/public/sandbox/chunks/{chunk-NQW73ACJ.js → chunk-PMXBOYQI.js} +1 -1
- package/public/sandbox/chunks/chunk-PQLZD7NR.js +836 -0
- package/public/sandbox/chunks/chunk-QEESVOZU.js +16 -0
- package/public/sandbox/chunks/chunk-QGIM3FQK.js +159 -0
- package/public/sandbox/chunks/chunk-QL5JNEDO.js +69 -0
- package/public/sandbox/chunks/chunk-QQOZ3RMH.js +867 -0
- package/public/sandbox/chunks/chunk-QUMEVT2F.js +194 -0
- package/public/sandbox/chunks/chunk-QVZBXYVY.js +102 -0
- package/public/sandbox/chunks/chunk-R5HQS6RB.js +135 -0
- package/public/sandbox/chunks/chunk-R75Q2CTT.js +900 -0
- package/public/sandbox/chunks/chunk-RBB6SHW2.js +253 -0
- package/public/sandbox/chunks/chunk-RDHNRWQP.js +383 -0
- package/public/sandbox/chunks/chunk-RIWOEI3T.js +1101 -0
- package/public/sandbox/chunks/chunk-RS5FFPUV.js +103 -0
- package/public/sandbox/chunks/chunk-RYSSJBGX.js +203 -0
- package/public/sandbox/chunks/chunk-S3KBAE5Z.js +1114 -0
- package/public/sandbox/chunks/chunk-S6ZZHV6G.js +244 -0
- package/public/sandbox/chunks/chunk-SFXJ24HY.js +499 -0
- package/public/sandbox/chunks/chunk-SH7TP5CJ.js +1109 -0
- package/public/sandbox/chunks/chunk-SI5OKFFY.js +317 -0
- package/public/sandbox/chunks/chunk-SIXNQNIR.js +86 -0
- package/public/sandbox/chunks/chunk-ST353BOX.js +42 -0
- package/public/sandbox/chunks/chunk-SYEHKMLP.js +1140 -0
- package/public/sandbox/chunks/chunk-SZ4KQUJU.js +69 -0
- package/public/sandbox/chunks/{chunk-5SOP6EKV.js → chunk-SZI65PSP.js} +5 -10
- package/public/sandbox/chunks/chunk-T7RLTSMX.js +78 -0
- package/public/sandbox/chunks/chunk-TJ2RLUTW.js +57 -0
- package/public/sandbox/chunks/chunk-TJB73XPN.js +4071 -0
- package/public/sandbox/chunks/chunk-TXJCYO56.js +4046 -0
- package/public/sandbox/chunks/chunk-U5J3LCYI.js +731 -0
- package/public/sandbox/chunks/chunk-UABFN3NH.js +208 -0
- package/public/sandbox/chunks/chunk-UBMUY7WO.js +13 -0
- package/public/sandbox/chunks/chunk-UC27CE32.js +69 -0
- package/public/sandbox/chunks/chunk-UJGVDFZN.js +147 -0
- package/public/sandbox/chunks/chunk-UNVLTK4N.js +122 -0
- package/public/sandbox/chunks/chunk-UQKQ6V3V.js +208 -0
- package/public/sandbox/chunks/chunk-UZZBHWIO.js +703 -0
- package/public/sandbox/chunks/chunk-VKZIJERL.js +1114 -0
- package/public/sandbox/chunks/chunk-VQQEAGID.js +372 -0
- package/public/sandbox/chunks/{chunk-3LX3KIQQ.js → chunk-W365QUZ5.js} +3 -5
- package/public/sandbox/chunks/chunk-WJY2LSWG.js +1052 -0
- package/public/sandbox/chunks/chunk-WNOBN3DX.js +391 -0
- package/public/sandbox/chunks/chunk-X2Z5VYG3.js +245 -0
- package/public/sandbox/chunks/chunk-X74KU74D.js +959 -0
- package/public/sandbox/chunks/chunk-XE7ULSGQ.js +46 -0
- package/public/sandbox/chunks/chunk-XRXUJZ3X.js +431 -0
- package/public/sandbox/chunks/chunk-XWHIN7CC.js +85 -0
- package/public/sandbox/chunks/chunk-Y2TVGGVL.js +527 -0
- package/public/sandbox/chunks/chunk-YMVMZA3U.js +1395 -0
- package/public/sandbox/chunks/chunk-YOBLFWDV.js +431 -0
- package/public/sandbox/chunks/chunk-YR2RFEZA.js +11 -0
- package/public/sandbox/chunks/chunk-YTD6A35P.js +836 -0
- package/public/sandbox/chunks/chunk-Z5L7EZXS.js +81 -0
- package/public/sandbox/chunks/chunk-Z65I5ET2.js +108 -0
- package/public/sandbox/chunks/chunk-Z6LV34RO.js +390 -0
- package/public/sandbox/chunks/chunk-ZAKUP6QG.js +1634 -0
- package/public/sandbox/chunks/chunk-ZHNYE2YH.js +731 -0
- package/public/sandbox/chunks/chunk-ZHQX3B3Y.js +867 -0
- package/public/sandbox/chunks/chunk-ZIXDFRHJ.js +731 -0
- package/public/sandbox/chunks/chunk-ZPZ2MZ4D.js +528 -0
- package/public/sandbox/chunks/chunk-ZQD6NZXB.js +373 -0
- package/public/sandbox/chunks/chunk-ZVVBP7ON.js +16 -0
- package/public/sandbox/chunks/chunk-ZWE3P6X2.js +11 -0
- package/public/sandbox/logix-core/Bound.js +14 -14
- package/public/sandbox/logix-core/Debug.js +12 -10
- package/public/sandbox/logix-core/EffectOp.js +3 -4
- package/public/sandbox/logix-core/Env.js +5 -2
- package/public/sandbox/logix-core/ExternalStore.js +239 -0
- package/public/sandbox/logix-core/Flow.js +7 -8
- package/public/sandbox/logix-core/Kernel.js +7 -4
- package/public/sandbox/logix-core/Link.js +33 -25
- package/public/sandbox/logix-core/Middleware.js +13 -11
- package/public/sandbox/logix-core/Module.js +93 -30
- package/public/sandbox/logix-core/ModuleTag.js +28 -25
- package/public/sandbox/logix-core/Observability.js +21 -19
- package/public/sandbox/logix-core/Process.js +27 -22
- package/public/sandbox/logix-core/ReadQuery.js +7 -11
- package/public/sandbox/logix-core/Reflection.js +173 -53
- package/public/sandbox/logix-core/Resource.js +6 -3
- package/public/sandbox/logix-core/Root.js +7 -3
- package/public/sandbox/logix-core/Runtime.js +54 -40
- package/public/sandbox/logix-core/ScopeRegistry.js +6 -3
- package/public/sandbox/logix-core/StateTrait.js +17 -14
- package/public/sandbox/logix-core/TraitLifecycle.js +8 -8
- package/public/sandbox/logix-core/Workflow.js +332 -0
- package/public/sandbox/logix-core.js +11133 -6622
- package/public/sandbox/logix-core.manifest.json +4 -2
- package/public/sandbox/worker.js +3 -3
- package/public/sandbox/chunks/chunk-4LRLOTMA.js +0 -1698
- package/public/sandbox/chunks/chunk-CDLXJHXY.js +0 -120
- package/public/sandbox/chunks/chunk-CZRI7MHA.js +0 -46
- package/public/sandbox/chunks/chunk-EJDFUZ4B.js +0 -408
- package/public/sandbox/chunks/chunk-IP63FME6.js +0 -282
- package/public/sandbox/chunks/chunk-JIXTOQXJ.js +0 -1103
- package/public/sandbox/chunks/chunk-MPUSOFJ3.js +0 -1928
- package/public/sandbox/chunks/chunk-ON2LY6HJ.js +0 -135
- package/public/sandbox/chunks/chunk-POIBXAH5.js +0 -995
- package/public/sandbox/chunks/chunk-PQ652ULI.js +0 -6359
- package/public/sandbox/chunks/chunk-RJQ4PG2F.js +0 -77
- package/public/sandbox/chunks/chunk-S4EXG3OS.js +0 -533
- package/public/sandbox/chunks/chunk-SUXDGXVE.js +0 -390
- package/public/sandbox/chunks/chunk-TOQ6SJ6O.js +0 -244
- package/public/sandbox/chunks/chunk-UKYAF3NL.js +0 -1036
- package/public/sandbox/chunks/chunk-UMVN3AWO.js +0 -395
- package/public/sandbox/chunks/chunk-WFV5PPWJ.js +0 -194
- package/public/sandbox/chunks/chunk-YF6IO732.js +0 -206
- package/public/sandbox/chunks/chunk-ZUBABAAO.js +0 -86
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
// @logix/core subpath bundles for @logix/sandbox
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
isReadQuery
|
|
5
|
+
} from "./chunk-RDHNRWQP.js";
|
|
6
|
+
import {
|
|
7
|
+
record
|
|
8
|
+
} from "./chunk-4GMUQTWH.js";
|
|
9
|
+
import {
|
|
10
|
+
RunSessionTag,
|
|
11
|
+
make,
|
|
12
|
+
run
|
|
13
|
+
} from "./chunk-GZ2NSE6A.js";
|
|
14
|
+
import {
|
|
15
|
+
EffectOpMiddlewareTag
|
|
16
|
+
} from "./chunk-S6ZZHV6G.js";
|
|
17
|
+
|
|
18
|
+
// ../logix-core/src/internal/runtime/core/FlowRuntime.ts
|
|
19
|
+
import { Effect, Stream, Ref, Option } from "../effect.js";
|
|
20
|
+
var getMiddlewareStack = () => Effect.serviceOption(EffectOpMiddlewareTag).pipe(
|
|
21
|
+
Effect.map((maybe) => Option.isSome(maybe) ? maybe.value.stack : [])
|
|
22
|
+
);
|
|
23
|
+
var getRuntimeScope = (runtime) => {
|
|
24
|
+
if (!runtime) return {};
|
|
25
|
+
if (typeof runtime !== "object" && typeof runtime !== "function") return {};
|
|
26
|
+
const scope = runtime;
|
|
27
|
+
return {
|
|
28
|
+
moduleId: typeof scope.moduleId === "string" ? scope.moduleId : void 0,
|
|
29
|
+
instanceId: typeof scope.instanceId === "string" ? scope.instanceId : void 0
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
var resolveEffect = (eff, payload) => typeof eff === "function" ? eff(payload) : eff;
|
|
33
|
+
var make2 = (runtime, runtimeInternals) => {
|
|
34
|
+
const scope = getRuntimeScope(runtime);
|
|
35
|
+
const resolveConcurrencyLimit = () => runtimeInternals ? runtimeInternals.concurrency.resolveConcurrencyPolicy().pipe(Effect.map((p) => p.concurrencyLimit)) : Effect.succeed(16);
|
|
36
|
+
const runAsFlowOp = (name, payload, eff, options) => Effect.gen(function* () {
|
|
37
|
+
const stack = yield* getMiddlewareStack();
|
|
38
|
+
const meta = {
|
|
39
|
+
...options?.meta ?? {},
|
|
40
|
+
policy: options?.policy,
|
|
41
|
+
tags: options?.tags,
|
|
42
|
+
trace: options?.trace,
|
|
43
|
+
moduleId: scope.moduleId,
|
|
44
|
+
instanceId: scope.instanceId
|
|
45
|
+
};
|
|
46
|
+
if (!(typeof meta.opSeq === "number" && Number.isFinite(meta.opSeq))) {
|
|
47
|
+
const sessionOpt = yield* Effect.serviceOption(RunSessionTag);
|
|
48
|
+
if (Option.isSome(sessionOpt)) {
|
|
49
|
+
const key = meta.instanceId ?? "global";
|
|
50
|
+
meta.opSeq = sessionOpt.value.local.nextSeq("opSeq", key);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const op = make({
|
|
54
|
+
kind: "flow",
|
|
55
|
+
name,
|
|
56
|
+
payload,
|
|
57
|
+
effect: eff,
|
|
58
|
+
meta
|
|
59
|
+
});
|
|
60
|
+
return yield* run(op, stack);
|
|
61
|
+
});
|
|
62
|
+
const runEffect = (eff) => (payload) => resolveEffect(eff, payload);
|
|
63
|
+
const runStreamSequential = (eff, options) => (stream) => Stream.runForEach(
|
|
64
|
+
stream,
|
|
65
|
+
(payload) => runAsFlowOp("flow.run", payload, runEffect(eff)(payload), options)
|
|
66
|
+
);
|
|
67
|
+
const runStreamParallel = (eff, options) => (stream) => Effect.gen(function* () {
|
|
68
|
+
const concurrency = yield* resolveConcurrencyLimit();
|
|
69
|
+
return yield* Stream.runDrain(
|
|
70
|
+
stream.pipe(
|
|
71
|
+
Stream.mapEffect(
|
|
72
|
+
(payload) => runAsFlowOp("flow.runParallel", payload, runEffect(eff)(payload), options),
|
|
73
|
+
{ concurrency }
|
|
74
|
+
)
|
|
75
|
+
)
|
|
76
|
+
).pipe(
|
|
77
|
+
Effect.catchAllCause(
|
|
78
|
+
(cause) => record({
|
|
79
|
+
type: "diagnostic",
|
|
80
|
+
moduleId: scope.moduleId,
|
|
81
|
+
instanceId: scope.instanceId,
|
|
82
|
+
code: "flow::unhandled_failure",
|
|
83
|
+
severity: "error",
|
|
84
|
+
message: "Flow watcher (runParallel) failed with an unhandled error.",
|
|
85
|
+
hint: "Handle errors explicitly inside the watcher (catch/catchAll) or write back via TaskRunner failure; avoid silent failures.",
|
|
86
|
+
kind: "flow_unhandled_failure",
|
|
87
|
+
trigger: {
|
|
88
|
+
kind: "flow",
|
|
89
|
+
name: "runParallel"
|
|
90
|
+
}
|
|
91
|
+
}).pipe(Effect.zipRight(Effect.failCause(cause)))
|
|
92
|
+
)
|
|
93
|
+
);
|
|
94
|
+
});
|
|
95
|
+
return {
|
|
96
|
+
fromAction: (predicate) => runtime.actions$.pipe(Stream.filter(predicate)),
|
|
97
|
+
fromState: (selectorOrQuery) => runtime.changes(isReadQuery(selectorOrQuery) ? selectorOrQuery.select : selectorOrQuery),
|
|
98
|
+
debounce: (ms) => (stream) => Stream.debounce(stream, ms),
|
|
99
|
+
throttle: (ms) => (stream) => Stream.throttle(stream, {
|
|
100
|
+
cost: () => 1,
|
|
101
|
+
units: 1,
|
|
102
|
+
duration: ms,
|
|
103
|
+
strategy: "enforce"
|
|
104
|
+
}),
|
|
105
|
+
filter: (predicate) => (stream) => Stream.filter(stream, predicate),
|
|
106
|
+
run: (eff, options) => (stream) => runStreamSequential(eff, options)(stream),
|
|
107
|
+
runParallel: (eff, options) => (stream) => runStreamParallel(eff, options)(stream),
|
|
108
|
+
runLatest: (eff, options) => (stream) => Stream.runDrain(
|
|
109
|
+
Stream.map(
|
|
110
|
+
stream,
|
|
111
|
+
(payload) => runAsFlowOp(
|
|
112
|
+
"flow.runLatest",
|
|
113
|
+
payload,
|
|
114
|
+
runEffect(eff)(payload),
|
|
115
|
+
options
|
|
116
|
+
)
|
|
117
|
+
).pipe(
|
|
118
|
+
Stream.flatMap((effect) => Stream.fromEffect(effect), {
|
|
119
|
+
switch: true
|
|
120
|
+
})
|
|
121
|
+
)
|
|
122
|
+
),
|
|
123
|
+
runExhaust: (eff, options) => (stream) => Effect.gen(function* () {
|
|
124
|
+
const concurrency = yield* resolveConcurrencyLimit();
|
|
125
|
+
const busyRef = yield* Ref.make(false);
|
|
126
|
+
const mapper = (payload) => Effect.gen(function* () {
|
|
127
|
+
const acquired = yield* Ref.modify(
|
|
128
|
+
busyRef,
|
|
129
|
+
(busy) => busy ? [false, busy] : [true, true]
|
|
130
|
+
);
|
|
131
|
+
if (!acquired) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
try {
|
|
135
|
+
yield* runAsFlowOp(
|
|
136
|
+
"flow.runExhaust",
|
|
137
|
+
payload,
|
|
138
|
+
runEffect(eff)(payload),
|
|
139
|
+
options
|
|
140
|
+
);
|
|
141
|
+
} finally {
|
|
142
|
+
yield* Ref.set(busyRef, false);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
return yield* Stream.runDrain(stream.pipe(Stream.mapEffect(mapper, { concurrency })));
|
|
146
|
+
})
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
export {
|
|
151
|
+
make2 as make
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vbG9naXgtY29yZS9zcmMvaW50ZXJuYWwvcnVudGltZS9jb3JlL0Zsb3dSdW50aW1lLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBFZmZlY3QsIFN0cmVhbSwgUmVmLCBPcHRpb24gfSBmcm9tICdlZmZlY3QnXG5pbXBvcnQgdHlwZSB7IEFueU1vZHVsZVNoYXBlLCBNb2R1bGVSdW50aW1lLCBTdGF0ZU9mLCBBY3Rpb25PZiwgTW9kdWxlU2hhcGUgfSBmcm9tICcuL21vZHVsZS5qcydcbmltcG9ydCB0eXBlICogYXMgTG9naWMgZnJvbSAnLi9Mb2dpY01pZGRsZXdhcmUuanMnXG5pbXBvcnQgKiBhcyBFZmZlY3RPcCBmcm9tICcuLi8uLi9lZmZlY3Qtb3AuanMnXG5pbXBvcnQgKiBhcyBFZmZlY3RPcENvcmUgZnJvbSAnLi9FZmZlY3RPcENvcmUuanMnXG5pbXBvcnQgeyBSdW5TZXNzaW9uVGFnIH0gZnJvbSAnLi4vLi4vb2JzZXJ2YWJpbGl0eS9ydW5TZXNzaW9uLmpzJ1xuaW1wb3J0IHR5cGUgeyBSdW50aW1lSW50ZXJuYWxzIH0gZnJvbSAnLi9SdW50aW1lSW50ZXJuYWxzLmpzJ1xuaW1wb3J0ICogYXMgRGVidWcgZnJvbSAnLi9EZWJ1Z1NpbmsuanMnXG5pbXBvcnQgKiBhcyBSZWFkUXVlcnkgZnJvbSAnLi9SZWFkUXVlcnkuanMnXG5cbmNvbnN0IGdldE1pZGRsZXdhcmVTdGFjayA9ICgpOiBFZmZlY3QuRWZmZWN0PEVmZmVjdE9wLk1pZGRsZXdhcmVTdGFjaywgbmV2ZXIsIGFueT4gPT5cbiAgRWZmZWN0LnNlcnZpY2VPcHRpb24oRWZmZWN0T3BDb3JlLkVmZmVjdE9wTWlkZGxld2FyZVRhZykucGlwZShcbiAgICBFZmZlY3QubWFwKChtYXliZSkgPT4gKE9wdGlvbi5pc1NvbWUobWF5YmUpID8gbWF5YmUudmFsdWUuc3RhY2sgOiBbXSkpLFxuICApXG5cbmNvbnN0IGdldFJ1bnRpbWVTY29wZSA9IChydW50aW1lOiB1bmtub3duKTogeyByZWFkb25seSBtb2R1bGVJZD86IHN0cmluZzsgcmVhZG9ubHkgaW5zdGFuY2VJZD86IHN0cmluZyB9ID0+IHtcbiAgaWYgKCFydW50aW1lKSByZXR1cm4ge31cbiAgaWYgKHR5cGVvZiBydW50aW1lICE9PSAnb2JqZWN0JyAmJiB0eXBlb2YgcnVudGltZSAhPT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHt9XG4gIGNvbnN0IHNjb3BlID0gcnVudGltZSBhcyB7IHJlYWRvbmx5IG1vZHVsZUlkPzogdW5rbm93bjsgcmVhZG9ubHkgaW5zdGFuY2VJZD86IHVua25vd24gfVxuICByZXR1cm4ge1xuICAgIG1vZHVsZUlkOiB0eXBlb2Ygc2NvcGUubW9kdWxlSWQgPT09ICdzdHJpbmcnID8gc2NvcGUubW9kdWxlSWQgOiB1bmRlZmluZWQsXG4gICAgaW5zdGFuY2VJZDogdHlwZW9mIHNjb3BlLmluc3RhbmNlSWQgPT09ICdzdHJpbmcnID8gc2NvcGUuaW5zdGFuY2VJZCA6IHVuZGVmaW5lZCxcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaTxTaCBleHRlbmRzIE1vZHVsZVNoYXBlPGFueSwgYW55PiwgUiA9IG5ldmVyPiB7XG4gIHJlYWRvbmx5IGZyb21BY3Rpb246IDxUIGV4dGVuZHMgQWN0aW9uT2Y8U2g+PihwcmVkaWNhdGU6IChhOiBBY3Rpb25PZjxTaD4pID0+IGEgaXMgVCkgPT4gU3RyZWFtLlN0cmVhbTxUPlxuXG4gIHJlYWRvbmx5IGZyb21TdGF0ZToge1xuICAgIDxWPihzZWxlY3RvcjogKHM6IFN0YXRlT2Y8U2g+KSA9PiBWKTogU3RyZWFtLlN0cmVhbTxWPlxuICAgIDxWPihxdWVyeTogUmVhZFF1ZXJ5LlJlYWRRdWVyeTxTdGF0ZU9mPFNoPiwgVj4pOiBTdHJlYW0uU3RyZWFtPFY+XG4gIH1cblxuICByZWFkb25seSBkZWJvdW5jZTogPFY+KG1zOiBudW1iZXIpID0+IChzdHJlYW06IFN0cmVhbS5TdHJlYW08Vj4pID0+IFN0cmVhbS5TdHJlYW08Vj5cblxuICByZWFkb25seSB0aHJvdHRsZTogPFY+KG1zOiBudW1iZXIpID0+IChzdHJlYW06IFN0cmVhbS5TdHJlYW08Vj4pID0+IFN0cmVhbS5TdHJlYW08Vj5cblxuICByZWFkb25seSBmaWx0ZXI6IDxWPihwcmVkaWNhdGU6ICh2YWx1ZTogVikgPT4gYm9vbGVhbikgPT4gKHN0cmVhbTogU3RyZWFtLlN0cmVhbTxWPikgPT4gU3RyZWFtLlN0cmVhbTxWPlxuXG4gIHJlYWRvbmx5IHJ1bjogPFYsIEEgPSB2b2lkLCBFID0gbmV2ZXIsIFIyID0gdW5rbm93bj4oXG4gICAgZWZmOiBMb2dpYy5PZjxTaCwgUiAmIFIyLCBBLCBFPiB8ICgocGF5bG9hZDogVikgPT4gTG9naWMuT2Y8U2gsIFIgJiBSMiwgQSwgRT4pLFxuICAgIG9wdGlvbnM/OiBMb2dpYy5PcGVyYXRpb25PcHRpb25zLFxuICApID0+IChzdHJlYW06IFN0cmVhbS5TdHJlYW08Vj4pID0+IEVmZmVjdC5FZmZlY3Q8dm9pZCwgRSwgTG9naWMuRW52PFNoLCBSICYgUjI+PlxuXG4gIHJlYWRvbmx5IHJ1blBhcmFsbGVsOiA8ViwgQSA9IHZvaWQsIEUgPSBuZXZlciwgUjIgPSB1bmtub3duPihcbiAgICBlZmY6IExvZ2ljLk9mPFNoLCBSICYgUjIsIEEsIEU+IHwgKChwYXlsb2FkOiBWKSA9PiBMb2dpYy5PZjxTaCwgUiAmIFIyLCBBLCBFPiksXG4gICAgb3B0aW9ucz86IExvZ2ljLk9wZXJhdGlvbk9wdGlvbnMsXG4gICkgPT4gKHN0cmVhbTogU3RyZWFtLlN0cmVhbTxWPikgPT4gRWZmZWN0LkVmZmVjdDx2b2lkLCBFLCBMb2dpYy5FbnY8U2gsIFIgJiBSMj4+XG5cbiAgcmVhZG9ubHkgcnVuTGF0ZXN0OiA8ViwgQSA9IHZvaWQsIEUgPSBuZXZlciwgUjIgPSB1bmtub3duPihcbiAgICBlZmY6IExvZ2ljLk9mPFNoLCBSICYgUjIsIEEsIEU+IHwgKChwYXlsb2FkOiBWKSA9PiBMb2dpYy5PZjxTaCwgUiAmIFIyLCBBLCBFPiksXG4gICAgb3B0aW9ucz86IExvZ2ljLk9wZXJhdGlvbk9wdGlvbnMsXG4gICkgPT4gKHN0cmVhbTogU3RyZWFtLlN0cmVhbTxWPikgPT4gRWZmZWN0LkVmZmVjdDx2b2lkLCBFLCBMb2dpYy5FbnY8U2gsIFIgJiBSMj4+XG5cbiAgcmVhZG9ubHkgcnVuRXhoYXVzdDogPFYsIEEgPSB2b2lkLCBFID0gbmV2ZXIsIFIyID0gdW5rbm93bj4oXG4gICAgZWZmOiBMb2dpYy5PZjxTaCwgUiAmIFIyLCBBLCBFPiB8ICgocGF5bG9hZDogVikgPT4gTG9naWMuT2Y8U2gsIFIgJiBSMiwgQSwgRT4pLFxuICAgIG9wdGlvbnM/OiBMb2dpYy5PcGVyYXRpb25PcHRpb25zLFxuICApID0+IChzdHJlYW06IFN0cmVhbS5TdHJlYW08Vj4pID0+IEVmZmVjdC5FZmZlY3Q8dm9pZCwgRSwgTG9naWMuRW52PFNoLCBSICYgUjI+PlxufVxuXG5jb25zdCByZXNvbHZlRWZmZWN0ID0gPFQsIFNoIGV4dGVuZHMgQW55TW9kdWxlU2hhcGUsIFIsIEEsIEU+KFxuICBlZmY6IExvZ2ljLk9mPFNoLCBSLCBBLCBFPiB8ICgocGF5bG9hZDogVCkgPT4gTG9naWMuT2Y8U2gsIFIsIEEsIEU+KSxcbiAgcGF5bG9hZDogVCxcbik6IExvZ2ljLk9mPFNoLCBSLCBBLCBFPiA9PiAodHlwZW9mIGVmZiA9PT0gJ2Z1bmN0aW9uJyA/IChlZmYgYXMgKHA6IFQpID0+IExvZ2ljLk9mPFNoLCBSLCBBLCBFPikocGF5bG9hZCkgOiBlZmYpXG5cbmV4cG9ydCBjb25zdCBtYWtlID0gPFNoIGV4dGVuZHMgQW55TW9kdWxlU2hhcGUsIFIgPSBuZXZlcj4oXG4gIHJ1bnRpbWU6IE1vZHVsZVJ1bnRpbWU8U3RhdGVPZjxTaD4sIEFjdGlvbk9mPFNoPj4sXG4gIHJ1bnRpbWVJbnRlcm5hbHM/OiBSdW50aW1lSW50ZXJuYWxzLFxuKTogQXBpPFNoLCBSPiA9PiB7XG4gIGNvbnN0IHNjb3BlID0gZ2V0UnVudGltZVNjb3BlKHJ1bnRpbWUpXG4gIGNvbnN0IHJlc29sdmVDb25jdXJyZW5jeUxpbWl0ID0gKCk6IEVmZmVjdC5FZmZlY3Q8bnVtYmVyIHwgJ3VuYm91bmRlZCcsIG5ldmVyLCBhbnk+ID0+XG4gICAgcnVudGltZUludGVybmFsc1xuICAgICAgPyBydW50aW1lSW50ZXJuYWxzLmNvbmN1cnJlbmN5LnJlc29sdmVDb25jdXJyZW5jeVBvbGljeSgpLnBpcGUoRWZmZWN0Lm1hcCgocCkgPT4gcC5jb25jdXJyZW5jeUxpbWl0KSlcbiAgICAgIDogRWZmZWN0LnN1Y2NlZWQoMTYpXG5cbiAgY29uc3QgcnVuQXNGbG93T3AgPSA8QSwgRSwgUjIsIFY+KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBWLFxuICAgIGVmZjogRWZmZWN0LkVmZmVjdDxBLCBFLCBMb2dpYy5FbnY8U2gsIFIgJiBSMj4+LFxuICAgIG9wdGlvbnM/OiBMb2dpYy5PcGVyYXRpb25PcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PEEsIEUsIExvZ2ljLkVudjxTaCwgUiAmIFIyPj4gPT5cbiAgICBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoKSB7XG4gICAgICBjb25zdCBzdGFjayA9IHlpZWxkKiBnZXRNaWRkbGV3YXJlU3RhY2soKVxuICAgICAgY29uc3QgbWV0YTogYW55ID0ge1xuICAgICAgICAuLi4ob3B0aW9ucz8ubWV0YSA/PyB7fSksXG4gICAgICAgIHBvbGljeTogb3B0aW9ucz8ucG9saWN5LFxuICAgICAgICB0YWdzOiBvcHRpb25zPy50YWdzLFxuICAgICAgICB0cmFjZTogb3B0aW9ucz8udHJhY2UsXG4gICAgICAgIG1vZHVsZUlkOiBzY29wZS5tb2R1bGVJZCxcbiAgICAgICAgaW5zdGFuY2VJZDogc2NvcGUuaW5zdGFuY2VJZCxcbiAgICAgIH1cblxuICAgICAgaWYgKCEodHlwZW9mIG1ldGEub3BTZXEgPT09ICdudW1iZXInICYmIE51bWJlci5pc0Zpbml0ZShtZXRhLm9wU2VxKSkpIHtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbk9wdCA9IHlpZWxkKiBFZmZlY3Quc2VydmljZU9wdGlvbihSdW5TZXNzaW9uVGFnKVxuICAgICAgICBpZiAoT3B0aW9uLmlzU29tZShzZXNzaW9uT3B0KSkge1xuICAgICAgICAgIGNvbnN0IGtleSA9IG1ldGEuaW5zdGFuY2VJZCA/PyAnZ2xvYmFsJ1xuICAgICAgICAgIG1ldGEub3BTZXEgPSBzZXNzaW9uT3B0LnZhbHVlLmxvY2FsLm5leHRTZXEoJ29wU2VxJywga2V5KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9wID0gRWZmZWN0T3AubWFrZTxBLCBFLCBhbnk+KHtcbiAgICAgICAga2luZDogJ2Zsb3cnLFxuICAgICAgICBuYW1lLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgICBlZmZlY3Q6IGVmZiBhcyBhbnksXG4gICAgICAgIG1ldGEsXG4gICAgICB9KVxuICAgICAgcmV0dXJuIHlpZWxkKiBFZmZlY3RPcC5ydW4ob3AsIHN0YWNrKVxuICAgIH0pIGFzIGFueVxuXG4gIGNvbnN0IHJ1bkVmZmVjdCA9XG4gICAgPFQsIEEsIEUsIFIyPihlZmY6IExvZ2ljLk9mPFNoLCBSICYgUjIsIEEsIEU+IHwgKChwYXlsb2FkOiBUKSA9PiBMb2dpYy5PZjxTaCwgUiAmIFIyLCBBLCBFPikpID0+XG4gICAgKHBheWxvYWQ6IFQpID0+XG4gICAgICByZXNvbHZlRWZmZWN0PFQsIFNoLCBSICYgUjIsIEEsIEU+KGVmZiwgcGF5bG9hZClcblxuICBjb25zdCBydW5TdHJlYW1TZXF1ZW50aWFsID1cbiAgICA8VCwgQSwgRSwgUjI+KFxuICAgICAgZWZmOiBMb2dpYy5PZjxTaCwgUiAmIFIyLCBBLCBFPiB8ICgocGF5bG9hZDogVCkgPT4gTG9naWMuT2Y8U2gsIFIgJiBSMiwgQSwgRT4pLFxuICAgICAgb3B0aW9ucz86IExvZ2ljLk9wZXJhdGlvbk9wdGlvbnMsXG4gICAgKSA9PlxuICAgIChzdHJlYW06IFN0cmVhbS5TdHJlYW08VD4pOiBFZmZlY3QuRWZmZWN0PHZvaWQsIEUsIExvZ2ljLkVudjxTaCwgUiAmIFIyPj4gPT5cbiAgICAgIFN0cmVhbS5ydW5Gb3JFYWNoKHN0cmVhbSwgKHBheWxvYWQpID0+XG4gICAgICAgIHJ1bkFzRmxvd09wPEEsIEUsIFIyLCBUPignZmxvdy5ydW4nLCBwYXlsb2FkLCBydW5FZmZlY3Q8VCwgQSwgRSwgUjI+KGVmZikocGF5bG9hZCksIG9wdGlvbnMpLFxuICAgICAgKVxuXG4gIGNvbnN0IHJ1blN0cmVhbVBhcmFsbGVsID1cbiAgICA8VCwgQSwgRSwgUjI+KFxuICAgICAgZWZmOiBMb2dpYy5PZjxTaCwgUiAmIFIyLCBBLCBFPiB8ICgocGF5bG9hZDogVCkgPT4gTG9naWMuT2Y8U2gsIFIgJiBSMiwgQSwgRT4pLFxuICAgICAgb3B0aW9ucz86IExvZ2ljLk9wZXJhdGlvbk9wdGlvbnMsXG4gICAgKSA9PlxuICAgIChzdHJlYW06IFN0cmVhbS5TdHJlYW08VD4pOiBFZmZlY3QuRWZmZWN0PHZvaWQsIEUsIExvZ2ljLkVudjxTaCwgUiAmIFIyPj4gPT5cbiAgICAgIEVmZmVjdC5nZW4oZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgY29uY3VycmVuY3kgPSB5aWVsZCogcmVzb2x2ZUNvbmN1cnJlbmN5TGltaXQoKVxuXG4gICAgICAgIHJldHVybiB5aWVsZCogU3RyZWFtLnJ1bkRyYWluKFxuICAgICAgICAgIHN0cmVhbS5waXBlKFxuICAgICAgICAgICAgU3RyZWFtLm1hcEVmZmVjdChcbiAgICAgICAgICAgICAgKHBheWxvYWQpID0+XG4gICAgICAgICAgICAgICAgcnVuQXNGbG93T3A8QSwgRSwgUjIsIFQ+KCdmbG93LnJ1blBhcmFsbGVsJywgcGF5bG9hZCwgcnVuRWZmZWN0PFQsIEEsIEUsIFIyPihlZmYpKHBheWxvYWQpLCBvcHRpb25zKSxcbiAgICAgICAgICAgICAgeyBjb25jdXJyZW5jeSB9LFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApLFxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgRWZmZWN0LmNhdGNoQWxsQ2F1c2UoKGNhdXNlKSA9PlxuICAgICAgICAgICAgRGVidWcucmVjb3JkKHtcbiAgICAgICAgICAgICAgdHlwZTogJ2RpYWdub3N0aWMnLFxuICAgICAgICAgICAgICBtb2R1bGVJZDogc2NvcGUubW9kdWxlSWQsXG4gICAgICAgICAgICAgIGluc3RhbmNlSWQ6IHNjb3BlLmluc3RhbmNlSWQsXG4gICAgICAgICAgICAgIGNvZGU6ICdmbG93Ojp1bmhhbmRsZWRfZmFpbHVyZScsXG4gICAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgICBtZXNzYWdlOiAnRmxvdyB3YXRjaGVyIChydW5QYXJhbGxlbCkgZmFpbGVkIHdpdGggYW4gdW5oYW5kbGVkIGVycm9yLicsXG4gICAgICAgICAgICAgIGhpbnQ6ICdIYW5kbGUgZXJyb3JzIGV4cGxpY2l0bHkgaW5zaWRlIHRoZSB3YXRjaGVyIChjYXRjaC9jYXRjaEFsbCkgb3Igd3JpdGUgYmFjayB2aWEgVGFza1J1bm5lciBmYWlsdXJlOyBhdm9pZCBzaWxlbnQgZmFpbHVyZXMuJyxcbiAgICAgICAgICAgICAga2luZDogJ2Zsb3dfdW5oYW5kbGVkX2ZhaWx1cmUnLFxuICAgICAgICAgICAgICB0cmlnZ2VyOiB7XG4gICAgICAgICAgICAgICAga2luZDogJ2Zsb3cnLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdydW5QYXJhbGxlbCcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KS5waXBlKEVmZmVjdC56aXBSaWdodChFZmZlY3QuZmFpbENhdXNlKGNhdXNlKSkpLFxuICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgIH0pIGFzIGFueVxuXG4gIHJldHVybiB7XG4gICAgZnJvbUFjdGlvbjogPFQgZXh0ZW5kcyBBY3Rpb25PZjxTaD4+KHByZWRpY2F0ZTogKGE6IEFjdGlvbk9mPFNoPikgPT4gYSBpcyBUKSA9PlxuICAgICAgcnVudGltZS5hY3Rpb25zJC5waXBlKFN0cmVhbS5maWx0ZXIocHJlZGljYXRlKSksXG5cbiAgICBmcm9tU3RhdGU6IDxWPihzZWxlY3Rvck9yUXVlcnk6ICgoczogU3RhdGVPZjxTaD4pID0+IFYpIHwgUmVhZFF1ZXJ5LlJlYWRRdWVyeTxTdGF0ZU9mPFNoPiwgVj4pID0+XG4gICAgICBydW50aW1lLmNoYW5nZXMoUmVhZFF1ZXJ5LmlzUmVhZFF1ZXJ5KHNlbGVjdG9yT3JRdWVyeSkgPyBzZWxlY3Rvck9yUXVlcnkuc2VsZWN0IDogc2VsZWN0b3JPclF1ZXJ5KSxcblxuICAgIGRlYm91bmNlOiAobXM6IG51bWJlcikgPT4gKHN0cmVhbSkgPT4gU3RyZWFtLmRlYm91bmNlKHN0cmVhbSwgbXMpLFxuXG4gICAgdGhyb3R0bGU6IChtczogbnVtYmVyKSA9PiAoc3RyZWFtKSA9PlxuICAgICAgU3RyZWFtLnRocm90dGxlKHN0cmVhbSwge1xuICAgICAgICBjb3N0OiAoKSA9PiAxLFxuICAgICAgICB1bml0czogMSxcbiAgICAgICAgZHVyYXRpb246IG1zLFxuICAgICAgICBzdHJhdGVneTogJ2VuZm9yY2UnLFxuICAgICAgfSksXG5cbiAgICBmaWx0ZXI6IChwcmVkaWNhdGU6ICh2YWx1ZTogYW55KSA9PiBib29sZWFuKSA9PiAoc3RyZWFtKSA9PiBTdHJlYW0uZmlsdGVyKHN0cmVhbSwgcHJlZGljYXRlKSxcblxuICAgIHJ1bjogKGVmZiwgb3B0aW9ucykgPT4gKHN0cmVhbSkgPT4gcnVuU3RyZWFtU2VxdWVudGlhbDxhbnksIGFueSwgYW55LCBhbnk+KGVmZiwgb3B0aW9ucykoc3RyZWFtKSxcblxuICAgIHJ1blBhcmFsbGVsOiAoZWZmLCBvcHRpb25zKSA9PiAoc3RyZWFtKSA9PiBydW5TdHJlYW1QYXJhbGxlbDxhbnksIGFueSwgYW55LCBhbnk+KGVmZiwgb3B0aW9ucykoc3RyZWFtKSxcblxuICAgIHJ1bkxhdGVzdDogKGVmZiwgb3B0aW9ucykgPT4gKHN0cmVhbSkgPT5cbiAgICAgIFN0cmVhbS5ydW5EcmFpbihcbiAgICAgICAgU3RyZWFtLm1hcChzdHJlYW0sIChwYXlsb2FkKSA9PlxuICAgICAgICAgIHJ1bkFzRmxvd09wPGFueSwgYW55LCBhbnksIGFueT4oXG4gICAgICAgICAgICAnZmxvdy5ydW5MYXRlc3QnLFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIHJ1bkVmZmVjdDxhbnksIGFueSwgYW55LCBhbnk+KGVmZikocGF5bG9hZCksXG4gICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgICksXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICBTdHJlYW0uZmxhdE1hcCgoZWZmZWN0KSA9PiBTdHJlYW0uZnJvbUVmZmVjdChlZmZlY3QpLCB7XG4gICAgICAgICAgICBzd2l0Y2g6IHRydWUsXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApLFxuXG4gICAgcnVuRXhoYXVzdDogKGVmZiwgb3B0aW9ucykgPT4gKHN0cmVhbSkgPT5cbiAgICAgIEVmZmVjdC5nZW4oZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgY29uY3VycmVuY3kgPSB5aWVsZCogcmVzb2x2ZUNvbmN1cnJlbmN5TGltaXQoKVxuICAgICAgICBjb25zdCBidXN5UmVmID0geWllbGQqIFJlZi5tYWtlKGZhbHNlKVxuICAgICAgICBjb25zdCBtYXBwZXIgPSAocGF5bG9hZDogYW55KSA9PlxuICAgICAgICAgIEVmZmVjdC5nZW4oZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjcXVpcmVkID0geWllbGQqIFJlZi5tb2RpZnkoYnVzeVJlZiwgKGJ1c3kpID0+XG4gICAgICAgICAgICAgIGJ1c3kgPyAoW2ZhbHNlLCBidXN5XSBhcyBjb25zdCkgOiAoW3RydWUsIHRydWVdIGFzIGNvbnN0KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGlmICghYWNxdWlyZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB5aWVsZCogcnVuQXNGbG93T3A8YW55LCBhbnksIGFueSwgYW55PihcbiAgICAgICAgICAgICAgICAnZmxvdy5ydW5FeGhhdXN0JyxcbiAgICAgICAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICAgICAgICAgIHJ1bkVmZmVjdDxhbnksIGFueSwgYW55LCBhbnk+KGVmZikocGF5bG9hZCksXG4gICAgICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgeWllbGQqIFJlZi5zZXQoYnVzeVJlZiwgZmFsc2UpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4geWllbGQqIFN0cmVhbS5ydW5EcmFpbihzdHJlYW0ucGlwZShTdHJlYW0ubWFwRWZmZWN0KG1hcHBlciwgeyBjb25jdXJyZW5jeSB9KSkpXG4gICAgICB9KSxcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBUyxRQUFRLFFBQVEsS0FBSyxjQUFjO0FBVTVDLElBQU0scUJBQXFCLE1BQ3pCLE9BQU8sY0FBMkIscUJBQXFCLEVBQUU7QUFBQSxFQUN2RCxPQUFPLElBQUksQ0FBQyxVQUFXLE9BQU8sT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLFFBQVEsQ0FBQyxDQUFFO0FBQ3ZFO0FBRUYsSUFBTSxrQkFBa0IsQ0FBQyxZQUFtRjtBQUMxRyxNQUFJLENBQUMsUUFBUyxRQUFPLENBQUM7QUFDdEIsTUFBSSxPQUFPLFlBQVksWUFBWSxPQUFPLFlBQVksV0FBWSxRQUFPLENBQUM7QUFDMUUsUUFBTSxRQUFRO0FBQ2QsU0FBTztBQUFBLElBQ0wsVUFBVSxPQUFPLE1BQU0sYUFBYSxXQUFXLE1BQU0sV0FBVztBQUFBLElBQ2hFLFlBQVksT0FBTyxNQUFNLGVBQWUsV0FBVyxNQUFNLGFBQWE7QUFBQSxFQUN4RTtBQUNGO0FBcUNBLElBQU0sZ0JBQWdCLENBQ3BCLEtBQ0EsWUFDMkIsT0FBTyxRQUFRLGFBQWMsSUFBd0MsT0FBTyxJQUFJO0FBRXRHLElBQU1BLFFBQU8sQ0FDbEIsU0FD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LE1BQU07QUFBQSxNQUNaLE9BQU87QUFBQSxNQUNQLFVBQVU7QUFBQSxNQUNWLFVBQVU7QUFBQSxJQUNaLENBQUM7QUFBQSxJQUVILFFBQVEsQ0FBQyxjQUF1QyxDQUFDLFdBQVcsT0FBTyxPQUFPLFFBQVEsU0FBUztBQUFBLElBRTNGLEtBQUssQ0FBQyxLQUFLLFlBQVksQ0FBQyxXQUFXLG9CQUF3QyxLQUFLLE9BQU8sRUFBRSxNQUFNO0FBQUEsSUFFL0YsYUFBYSxDQUFDLEtBQUssWUFBWSxDQUFDLFdBQVcsa0JBQXNDLEtBQUssT0FBTyxFQUFFLE1BQU07QUFBQSxJQUVyRyxXQUFXLENBQUMsS0FBSyxZQUFZLENBQUMsV0FDNUIsT0FBTztBQUFBLE1BQ0wsT0FBTztBQUFBLFFBQUk7QUFBQSxRQUFRLENBQUMsWUFDbEI7QUFBQSxVQUNFO0FBQUEsVUFDQTtBQUFBLFVBQ0EsVUFBOEIsR0FBRyxFQUFFLE9BQU87QUFBQSxVQUMxQztBQUFBLFFBQ0Y7QUFBQSxNQUNGLEVBQUU7QUFBQSxRQUNBLE9BQU8sUUFBUSxDQUFDLFdBQVcsT0FBTyxXQUFXLE1BQU0sR0FBRztBQUFBLFVBQ3BELFFBQVE7QUFBQSxRQUNWLENBQUM7QUFBQSxNQUNIO0FBQUEsSUFDRjtBQUFBLElBRUYsWUFBWSxDQUFDLEtBQUssWUFBWSxDQUFDLFdBQzdCLE9BQU8sSUFBSSxhQUFhO0FBQ3RCLFlBQU0sY0FBYyxPQUFPLHdCQUF3QjtBQUNuRCxZQUFNLFVBQVUsT0FBTyxJQUFJLEtBQUssS0FBSztBQUNyQyxZQUFNLFNBQVMsQ0FBQyxZQUNkLE9BQU8sSUFBSSxhQUFhO0FBQ3RCLGNBQU0sV0FBVyxPQUFPLElBQUk7QUFBQSxVQUFPO0FBQUEsVUFBUyxDQUFDLFNBQzNDLE9BQVEsQ0FBQyxPQUFPLElBQUksSUFBZSxDQUFDLE1BQU0sSUFBSTtBQUFBLFFBQ2hEO0FBQ0EsWUFBSSxDQUFDLFVBQVU7QUFDYjtBQUFBLFFBQ0Y7QUFDQSxZQUFJO0FBQ0YsaUJBQU87QUFBQSxZQUNMO0FBQUEsWUFDQTtBQUFBLFlBQ0EsVUFBOEIsR0FBRyxFQUFFLE9BQU87QUFBQSxZQUMxQztBQUFBLFVBQ0Y7QUFBQSxRQUNGLFVBQUU7QUFDQSxpQkFBTyxJQUFJLElBQUksU0FBUyxLQUFLO0FBQUEsUUFDL0I7QUFBQSxNQUNGLENBQUM7QUFFSCxhQUFPLE9BQU8sT0FBTyxTQUFTLE9BQU8sS0FBSyxPQUFPLFVBQVUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFBQSxJQUN0RixDQUFDO0FBQUEsRUFDTDtBQUNGOyIsCiAgIm5hbWVzIjogWyJtYWtlIl0KfQo=
|