@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,177 @@
|
|
|
1
|
+
// @logix/core subpath bundles for @logix/sandbox
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
OBSERVABILITY_PROTOCOL_VERSION,
|
|
5
|
+
exportEvidencePackage
|
|
6
|
+
} from "./chunk-LQL23SWJ.js";
|
|
7
|
+
import {
|
|
8
|
+
composeMiddleware,
|
|
9
|
+
makeOperationRejected,
|
|
10
|
+
runWithMiddleware
|
|
11
|
+
} from "./chunk-S6ZZHV6G.js";
|
|
12
|
+
|
|
13
|
+
// ../logix-core/src/internal/observability/runSession.ts
|
|
14
|
+
import { Context, Layer } from "../effect.js";
|
|
15
|
+
var RunSessionTagImpl = class extends Context.Tag("@logix/core/RunSession")() {
|
|
16
|
+
};
|
|
17
|
+
var RunSessionTag = RunSessionTagImpl;
|
|
18
|
+
var NEXT_RUN_SEQ_KEY = /* @__PURE__ */ Symbol.for("@logix/core/runSession/nextRunSeq");
|
|
19
|
+
var fallbackNextRunSeq = 0;
|
|
20
|
+
var nextRunSeq = () => {
|
|
21
|
+
try {
|
|
22
|
+
const g = globalThis;
|
|
23
|
+
const prev = typeof g[NEXT_RUN_SEQ_KEY] === "number" ? g[NEXT_RUN_SEQ_KEY] : 0;
|
|
24
|
+
const next = prev + 1;
|
|
25
|
+
g[NEXT_RUN_SEQ_KEY] = next;
|
|
26
|
+
return next;
|
|
27
|
+
} catch {
|
|
28
|
+
fallbackNextRunSeq += 1;
|
|
29
|
+
return fallbackNextRunSeq;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
var makeRunId = (startedAt) => `run-${startedAt}.${nextRunSeq()}`;
|
|
33
|
+
var makeRunSessionLocalState = () => {
|
|
34
|
+
const onceKeys = /* @__PURE__ */ new Set();
|
|
35
|
+
const seqByNamespace = /* @__PURE__ */ new Map();
|
|
36
|
+
return {
|
|
37
|
+
once: (key) => {
|
|
38
|
+
if (onceKeys.has(key)) return false;
|
|
39
|
+
onceKeys.add(key);
|
|
40
|
+
return true;
|
|
41
|
+
},
|
|
42
|
+
nextSeq: (namespace, key) => {
|
|
43
|
+
const byKey = seqByNamespace.get(namespace) ?? /* @__PURE__ */ new Map();
|
|
44
|
+
if (!seqByNamespace.has(namespace)) seqByNamespace.set(namespace, byKey);
|
|
45
|
+
const prev = byKey.get(key) ?? 0;
|
|
46
|
+
const next = prev + 1;
|
|
47
|
+
byKey.set(key, next);
|
|
48
|
+
return next;
|
|
49
|
+
},
|
|
50
|
+
clear: () => {
|
|
51
|
+
onceKeys.clear();
|
|
52
|
+
seqByNamespace.clear();
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
var makeRunSession = (options) => {
|
|
57
|
+
const startedAt = options?.startedAt ?? Date.now();
|
|
58
|
+
return {
|
|
59
|
+
runId: options?.runId ?? makeRunId(startedAt),
|
|
60
|
+
source: options?.source ?? { host: "unknown" },
|
|
61
|
+
startedAt,
|
|
62
|
+
local: options?.local ?? makeRunSessionLocalState()
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
var makeEvidenceSink = (session) => {
|
|
66
|
+
const events = [];
|
|
67
|
+
let nextSeq = 1;
|
|
68
|
+
return {
|
|
69
|
+
record: (type, payload, options) => {
|
|
70
|
+
events.push({
|
|
71
|
+
protocolVersion: OBSERVABILITY_PROTOCOL_VERSION,
|
|
72
|
+
runId: session.runId,
|
|
73
|
+
seq: nextSeq++,
|
|
74
|
+
timestamp: options?.timestamp ?? Date.now(),
|
|
75
|
+
type,
|
|
76
|
+
payload
|
|
77
|
+
});
|
|
78
|
+
},
|
|
79
|
+
export: (options) => {
|
|
80
|
+
const protocolVersion = options?.protocolVersion ?? OBSERVABILITY_PROTOCOL_VERSION;
|
|
81
|
+
const maxEvents = options?.maxEvents;
|
|
82
|
+
const selected = typeof maxEvents === "number" && Number.isFinite(maxEvents) && maxEvents > 0 ? events.slice(Math.max(0, events.length - Math.floor(maxEvents))) : events.slice();
|
|
83
|
+
return exportEvidencePackage({
|
|
84
|
+
protocolVersion,
|
|
85
|
+
runId: session.runId,
|
|
86
|
+
source: session.source,
|
|
87
|
+
createdAt: options?.createdAt,
|
|
88
|
+
events: selected,
|
|
89
|
+
summary: options?.summary
|
|
90
|
+
});
|
|
91
|
+
},
|
|
92
|
+
clear: () => {
|
|
93
|
+
events.length = 0;
|
|
94
|
+
nextSeq = 1;
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
var runSessionLayer = (session) => Layer.succeed(RunSessionTag, session ?? makeRunSession());
|
|
99
|
+
|
|
100
|
+
// ../logix-core/src/internal/effect-op.ts
|
|
101
|
+
import { Effect, Option } from "../effect.js";
|
|
102
|
+
var composeMiddleware2 = composeMiddleware;
|
|
103
|
+
var makeOperationRejected2 = makeOperationRejected;
|
|
104
|
+
var nextGlobalOpSeq = 0;
|
|
105
|
+
var nextOpSeq = () => {
|
|
106
|
+
nextGlobalOpSeq += 1;
|
|
107
|
+
return nextGlobalOpSeq;
|
|
108
|
+
};
|
|
109
|
+
var makeId = (instanceId, opSeq) => instanceId ? `${instanceId}::o${opSeq}` : `o${opSeq}`;
|
|
110
|
+
var make = (params) => ({
|
|
111
|
+
...params.id ? { id: params.id, meta: params.meta } : (() => {
|
|
112
|
+
const meta = params.meta ?? {};
|
|
113
|
+
const instanceId = meta.instanceId;
|
|
114
|
+
const opSeq = typeof meta.opSeq === "number" && Number.isFinite(meta.opSeq) ? Math.floor(meta.opSeq) : nextOpSeq();
|
|
115
|
+
return {
|
|
116
|
+
id: makeId(instanceId, opSeq),
|
|
117
|
+
meta: meta.opSeq === opSeq ? meta : { ...meta, opSeq }
|
|
118
|
+
};
|
|
119
|
+
})(),
|
|
120
|
+
kind: params.kind,
|
|
121
|
+
name: params.name,
|
|
122
|
+
payload: params.payload,
|
|
123
|
+
effect: params.effect
|
|
124
|
+
});
|
|
125
|
+
var makeInRunSession = (params) => Effect.gen(function* () {
|
|
126
|
+
if (params.id) {
|
|
127
|
+
return {
|
|
128
|
+
id: params.id,
|
|
129
|
+
kind: params.kind,
|
|
130
|
+
name: params.name,
|
|
131
|
+
payload: params.payload,
|
|
132
|
+
meta: params.meta,
|
|
133
|
+
effect: params.effect
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
const meta = params.meta ?? {};
|
|
137
|
+
const instanceId = meta.instanceId;
|
|
138
|
+
let opSeq;
|
|
139
|
+
if (typeof meta.opSeq === "number" && Number.isFinite(meta.opSeq)) {
|
|
140
|
+
opSeq = Math.floor(meta.opSeq);
|
|
141
|
+
} else {
|
|
142
|
+
const sessionOpt = yield* Effect.serviceOption(RunSessionTag);
|
|
143
|
+
if (Option.isSome(sessionOpt)) {
|
|
144
|
+
const key = instanceId ?? "global";
|
|
145
|
+
opSeq = sessionOpt.value.local.nextSeq("opSeq", key);
|
|
146
|
+
} else {
|
|
147
|
+
opSeq = nextOpSeq();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
id: makeId(instanceId, opSeq),
|
|
152
|
+
kind: params.kind,
|
|
153
|
+
name: params.name,
|
|
154
|
+
payload: params.payload,
|
|
155
|
+
meta: meta.opSeq === opSeq ? meta : { ...meta, opSeq },
|
|
156
|
+
effect: params.effect
|
|
157
|
+
};
|
|
158
|
+
});
|
|
159
|
+
var withMeta = (op, meta) => ({
|
|
160
|
+
...op,
|
|
161
|
+
meta: { ...op.meta ?? {}, ...meta }
|
|
162
|
+
});
|
|
163
|
+
var run = (op, stack) => runWithMiddleware(op, stack);
|
|
164
|
+
|
|
165
|
+
export {
|
|
166
|
+
RunSessionTag,
|
|
167
|
+
makeRunSession,
|
|
168
|
+
makeEvidenceSink,
|
|
169
|
+
runSessionLayer,
|
|
170
|
+
composeMiddleware2 as composeMiddleware,
|
|
171
|
+
makeOperationRejected2 as makeOperationRejected,
|
|
172
|
+
make,
|
|
173
|
+
makeInRunSession,
|
|
174
|
+
withMeta,
|
|
175
|
+
run
|
|
176
|
+
};
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vbG9naXgtY29yZS9zcmMvaW50ZXJuYWwvb2JzZXJ2YWJpbGl0eS9ydW5TZXNzaW9uLnRzIiwgIi4uLy4uLy4uLy4uL2xvZ2l4LWNvcmUvc3JjL2ludGVybmFsL2VmZmVjdC1vcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgQ29udGV4dCwgTGF5ZXIgfSBmcm9tICdlZmZlY3QnXG5pbXBvcnQgdHlwZSB7IEpzb25WYWx1ZSB9IGZyb20gJy4vanNvblZhbHVlLmpzJ1xuaW1wb3J0IHR5cGUgeyBFdmlkZW5jZVBhY2thZ2UsIEV2aWRlbmNlUGFja2FnZVNvdXJjZSwgT2JzZXJ2YXRpb25FbnZlbG9wZSB9IGZyb20gJy4vZXZpZGVuY2UuanMnXG5pbXBvcnQgeyBleHBvcnRFdmlkZW5jZVBhY2thZ2UsIE9CU0VSVkFCSUxJVFlfUFJPVE9DT0xfVkVSU0lPTiB9IGZyb20gJy4vZXZpZGVuY2UuanMnXG5cbmV4cG9ydCB0eXBlIFJ1bklkID0gc3RyaW5nXG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVuU2Vzc2lvbkxvY2FsU3RhdGUge1xuICAvKipcbiAgICogb25jZVx1RkYxQVx1NzUyOFx1NEU4RVx1MjAxQ1x1NTNFQVx1NTNEMVx1NEUwMFx1NkIyMVx1MjAxRFx1NzY4NFx1NTNCQlx1OTFDRFx1OTUyRVx1OTZDNlx1NTQwOFx1RkYwOFx1NUZDNVx1OTg3Qlx1NjMwOVx1NEYxQVx1OEJERFx1OTY5NFx1NzlCQlx1RkYwQ1x1OTA3Rlx1NTE0RFx1OERFOFx1NEYxQVx1OEJERFx1NkM2MVx1NjdEM1x1RkYwOVx1MzAwMlxuICAgKiBcdThGRDRcdTU2REUgdHJ1ZSBcdTg4NjhcdTc5M0FcdTk5OTZcdTZCMjFcdTUxRkFcdTczQjBcdUZGMENmYWxzZSBcdTg4NjhcdTc5M0FcdTVERjJcdTUxRkFcdTczQjBcdThGQzdcdTMwMDJcbiAgICovXG4gIHJlYWRvbmx5IG9uY2U6IChrZXk6IHN0cmluZykgPT4gYm9vbGVhblxuXG4gIC8qKlxuICAgKiBzZXFcdUZGMUFcdTc1MjhcdTRFOEVcdTYzMDkga2V5IFx1NTIwNlx1OTE0RFx1NTM1NVx1OEMwM1x1NUU4Rlx1NTNGN1x1RkYwOFx1NEY4Qlx1NTk4MiBvcFNlcS9ldmVudFNlcSBcdTdCNDlcdUZGMDlcdUZGMENcdTVGQzVcdTk4N0JcdTYzMDlcdTRGMUFcdThCRERcdTk2OTRcdTc5QkJcdTMwMDJcbiAgICovXG4gIHJlYWRvbmx5IG5leHRTZXE6IChuYW1lc3BhY2U6IHN0cmluZywga2V5OiBzdHJpbmcpID0+IG51bWJlclxuXG4gIC8qKiBcdTRFQzVcdTc1MjhcdTRFOEVcdTZENEJcdThCRDUvXHU1OTBEXHU0RjREXHVGRjFBXHU2RTA1XHU3QTdBXHU2NzJDXHU0RjFBXHU4QkREXHU3Njg0XHU2NzJDXHU1NzMwXHU3MkI2XHU2MDAxXHUzMDAyICovXG4gIHJlYWRvbmx5IGNsZWFyOiAoKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVuU2Vzc2lvbiB7XG4gIHJlYWRvbmx5IHJ1bklkOiBSdW5JZFxuICByZWFkb25seSBzb3VyY2U6IEV2aWRlbmNlUGFja2FnZVNvdXJjZVxuICByZWFkb25seSBzdGFydGVkQXQ6IG51bWJlclxuICByZWFkb25seSBsb2NhbDogUnVuU2Vzc2lvbkxvY2FsU3RhdGVcbn1cblxuY2xhc3MgUnVuU2Vzc2lvblRhZ0ltcGwgZXh0ZW5kcyBDb250ZXh0LlRhZygnQGxvZ2l4L2NvcmUvUnVuU2Vzc2lvbicpPFJ1blNlc3Npb25UYWdJbXBsLCBSdW5TZXNzaW9uPigpIHt9XG5cbmV4cG9ydCBjb25zdCBSdW5TZXNzaW9uVGFnID0gUnVuU2Vzc2lvblRhZ0ltcGxcblxuZXhwb3J0IGludGVyZmFjZSBFdmlkZW5jZVNpbmsge1xuICByZWFkb25seSByZWNvcmQ6ICh0eXBlOiBzdHJpbmcsIHBheWxvYWQ6IEpzb25WYWx1ZSwgb3B0aW9ucz86IHsgcmVhZG9ubHkgdGltZXN0YW1wPzogbnVtYmVyIH0pID0+IHZvaWRcbiAgcmVhZG9ubHkgZXhwb3J0OiAob3B0aW9ucz86IHtcbiAgICByZWFkb25seSBwcm90b2NvbFZlcnNpb24/OiBzdHJpbmdcbiAgICByZWFkb25seSBjcmVhdGVkQXQ/OiBudW1iZXJcbiAgICByZWFkb25seSBzdW1tYXJ5PzogSnNvblZhbHVlXG4gICAgcmVhZG9ubHkgbWF4RXZlbnRzPzogbnVtYmVyXG4gIH0pID0+IEV2aWRlbmNlUGFja2FnZVxuICByZWFkb25seSBjbGVhcjogKCkgPT4gdm9pZFxufVxuXG5jb25zdCBORVhUX1JVTl9TRVFfS0VZID0gU3ltYm9sLmZvcignQGxvZ2l4L2NvcmUvcnVuU2Vzc2lvbi9uZXh0UnVuU2VxJylcbmxldCBmYWxsYmFja05leHRSdW5TZXEgPSAwXG5cbmNvbnN0IG5leHRSdW5TZXEgPSAoKTogbnVtYmVyID0+IHtcbiAgdHJ5IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IGc6IGFueSA9IGdsb2JhbFRoaXMgYXMgYW55XG4gICAgY29uc3QgcHJldiA9IHR5cGVvZiBnW05FWFRfUlVOX1NFUV9LRVldID09PSAnbnVtYmVyJyA/IChnW05FWFRfUlVOX1NFUV9LRVldIGFzIG51bWJlcikgOiAwXG4gICAgY29uc3QgbmV4dCA9IHByZXYgKyAxXG4gICAgZ1tORVhUX1JVTl9TRVFfS0VZXSA9IG5leHRcbiAgICByZXR1cm4gbmV4dFxuICB9IGNhdGNoIHtcbiAgICBmYWxsYmFja05leHRSdW5TZXEgKz0gMVxuICAgIHJldHVybiBmYWxsYmFja05leHRSdW5TZXFcbiAgfVxufVxuXG5jb25zdCBtYWtlUnVuSWQgPSAoc3RhcnRlZEF0OiBudW1iZXIpOiBSdW5JZCA9PiBgcnVuLSR7c3RhcnRlZEF0fS4ke25leHRSdW5TZXEoKX1gXG5cbmV4cG9ydCBjb25zdCBtYWtlUnVuU2Vzc2lvbkxvY2FsU3RhdGUgPSAoKTogUnVuU2Vzc2lvbkxvY2FsU3RhdGUgPT4ge1xuICBjb25zdCBvbmNlS2V5cyA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGNvbnN0IHNlcUJ5TmFtZXNwYWNlID0gbmV3IE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIG51bWJlcj4+KClcblxuICByZXR1cm4ge1xuICAgIG9uY2U6IChrZXkpID0+IHtcbiAgICAgIGlmIChvbmNlS2V5cy5oYXMoa2V5KSkgcmV0dXJuIGZhbHNlXG4gICAgICBvbmNlS2V5cy5hZGQoa2V5KVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9LFxuICAgIG5leHRTZXE6IChuYW1lc3BhY2UsIGtleSkgPT4ge1xuICAgICAgY29uc3QgYnlLZXkgPSBzZXFCeU5hbWVzcGFjZS5nZXQobmFtZXNwYWNlKSA/PyBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpXG4gICAgICBpZiAoIXNlcUJ5TmFtZXNwYWNlLmhhcyhuYW1lc3BhY2UpKSBzZXFCeU5hbWVzcGFjZS5zZXQobmFtZXNwYWNlLCBieUtleSlcbiAgICAgIGNvbnN0IHByZXYgPSBieUtleS5nZXQoa2V5KSA/PyAwXG4gICAgICBjb25zdCBuZXh0ID0gcHJldiArIDFcbiAgICAgIGJ5S2V5LnNldChrZXksIG5leHQpXG4gICAgICByZXR1cm4gbmV4dFxuICAgIH0sXG4gICAgY2xlYXI6ICgpID0+IHtcbiAgICAgIG9uY2VLZXlzLmNsZWFyKClcbiAgICAgIHNlcUJ5TmFtZXNwYWNlLmNsZWFyKClcbiAgICB9LFxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBtYWtlUnVuU2Vzc2lvbiA9IChvcHRpb25zPzoge1xuICByZWFkb25seSBydW5JZD86IFJ1bklkXG4gIHJlYWRvbmx5IHNvdXJjZT86IEV2aWRlbmNlUGFja2FnZVNvdXJjZVxuICByZWFkb25seSBzdGFydGVkQXQ/OiBudW1iZXJcbiAgcmVhZG9ubHkgbG9jYWw/OiBSdW5TZXNzaW9uTG9jYWxTdGF0ZVxufSk6IFJ1blNlc3Npb24gPT4ge1xuICBjb25zdCBzdGFydGVkQXQgPSBvcHRpb25zPy5zdGFydGVkQXQgPz8gRGF0ZS5ub3coKVxuICByZXR1cm4ge1xuICAgIHJ1bklkOiBvcHRpb25zPy5ydW5JZCA/PyBtYWtlUnVuSWQoc3RhcnRlZEF0KSxcbiAgICBzb3VyY2U6IG9wdGlvbnM/LnNvdXJjZSA/PyB7IGhvc3Q6ICd1bmtub3duJyB9LFxuICAgIHN0YXJ0ZWRBdCxcbiAgICBsb2NhbDogb3B0aW9ucz8ubG9jYWwgPz8gbWFrZVJ1blNlc3Npb25Mb2NhbFN0YXRlKCksXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IG1ha2VFdmlkZW5jZVNpbmsgPSAoc2Vzc2lvbjogUnVuU2Vzc2lvbik6IEV2aWRlbmNlU2luayA9PiB7XG4gIGNvbnN0IGV2ZW50czogT2JzZXJ2YXRpb25FbnZlbG9wZVtdID0gW11cbiAgbGV0IG5leHRTZXEgPSAxXG5cbiAgcmV0dXJuIHtcbiAgICByZWNvcmQ6ICh0eXBlLCBwYXlsb2FkLCBvcHRpb25zKSA9PiB7XG4gICAgICBldmVudHMucHVzaCh7XG4gICAgICAgIHByb3RvY29sVmVyc2lvbjogT0JTRVJWQUJJTElUWV9QUk9UT0NPTF9WRVJTSU9OLFxuICAgICAgICBydW5JZDogc2Vzc2lvbi5ydW5JZCxcbiAgICAgICAgc2VxOiBuZXh0U2VxKyssXG4gICAgICAgIHRpbWVzdGFtcDogb3B0aW9ucz8udGltZXN0YW1wID8/IERhdGUubm93KCksXG4gICAgICAgIHR5cGUsXG4gICAgICAgIHBheWxvYWQsXG4gICAgICB9KVxuICAgIH0sXG4gICAgZXhwb3J0OiAob3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgcHJvdG9jb2xWZXJzaW9uID0gb3B0aW9ucz8ucHJvdG9jb2xWZXJzaW9uID8/IE9CU0VSVkFCSUxJVFlfUFJPVE9DT0xfVkVSU0lPTlxuICAgICAgY29uc3QgbWF4RXZlbnRzID0gb3B0aW9ucz8ubWF4RXZlbnRzXG5cbiAgICAgIGNvbnN0IHNlbGVjdGVkID1cbiAgICAgICAgdHlwZW9mIG1heEV2ZW50cyA9PT0gJ251bWJlcicgJiYgTnVtYmVyLmlzRmluaXRlKG1heEV2ZW50cykgJiYgbWF4RXZlbnRzID4gMFxuICAgICAgICAgID8gZXZlbnRzLnNsaWNlKE1hdGgubWF4KDAsIGV2ZW50cy5sZW5ndGggLSBNYXRoLmZsb29yKG1heEV2ZW50cykpKVxuICAgICAgICAgIDogZXZlbnRzLnNsaWNlKClcblxuICAgICAgcmV0dXJuIGV4cG9ydEV2aWRlbmNlUGFja2FnZSh7XG4gICAgICAgIHByb3RvY29sVmVyc2lvbixcbiAgICAgICAgcnVuSWQ6IHNlc3Npb24ucnVuSWQsXG4gICAgICAgIHNvdXJjZTogc2Vzc2lvbi5zb3VyY2UsXG4gICAgICAgIGNyZWF0ZWRBdDogb3B0aW9ucz8uY3JlYXRlZEF0LFxuICAgICAgICBldmVudHM6IHNlbGVjdGVkLFxuICAgICAgICBzdW1tYXJ5OiBvcHRpb25zPy5zdW1tYXJ5LFxuICAgICAgfSlcbiAgICB9LFxuICAgIGNsZWFyOiAoKSA9PiB7XG4gICAgICBldmVudHMubGVuZ3RoID0gMFxuICAgICAgbmV4dFNlcSA9IDFcbiAgICB9LFxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBydW5TZXNzaW9uTGF5ZXIgPSAoc2Vzc2lvbj86IFJ1blNlc3Npb24pOiBMYXllci5MYXllcjxSdW5TZXNzaW9uVGFnSW1wbCwgbmV2ZXIsIG5ldmVyPiA9PlxuICBMYXllci5zdWNjZWVkKFJ1blNlc3Npb25UYWcsIHNlc3Npb24gPz8gbWFrZVJ1blNlc3Npb24oKSkgYXMgTGF5ZXIuTGF5ZXI8UnVuU2Vzc2lvblRhZ0ltcGwsIG5ldmVyLCBuZXZlcj5cbiIsICIvLyBJbnRlcm5hbCBFZmZlY3RPcCBBUEkgKGZvciBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBjb2RlKS5cbi8vXG4vLyBHb2FsOlxuLy8gLSBJbnRlcm5hbCBtb2R1bGVzIG11c3QgbmV2ZXIgaW1wb3J0IHJvb3QgcHVibGljIHN1Ym1vZHVsZXMgKGUuZy4gYC4uL0VmZmVjdE9wYCkuXG4vLyAtIFRoaXMgZmlsZSBob3N0cyB0aGUgc2hhcmVkIGltcGxlbWVudGF0aW9uOyBwdWJsaWMgYHNyYy9FZmZlY3RPcC50c2AgZGVsZWdhdGVzIHRvIGl0LlxuXG5pbXBvcnQgeyBFZmZlY3QsIE9wdGlvbiB9IGZyb20gJ2VmZmVjdCdcbmltcG9ydCAqIGFzIENvcmUgZnJvbSAnLi9ydW50aW1lL2NvcmUvRWZmZWN0T3BDb3JlLmpzJ1xuaW1wb3J0IHsgUnVuU2Vzc2lvblRhZyB9IGZyb20gJy4vb2JzZXJ2YWJpbGl0eS9ydW5TZXNzaW9uLmpzJ1xuXG5leHBvcnQgdHlwZSBFZmZlY3RPcDxPdXQgPSB1bmtub3duLCBFcnIgPSB1bmtub3duLCBFbnYgPSB1bmtub3duPiA9IENvcmUuRWZmZWN0T3A8T3V0LCBFcnIsIEVudj5cblxuZXhwb3J0IHR5cGUgT3BlcmF0aW9uUG9saWN5ID0gQ29yZS5PcGVyYXRpb25Qb2xpY3lcblxuZXhwb3J0IHR5cGUgT3BlcmF0aW9uUmVqZWN0ZWQgPSBDb3JlLk9wZXJhdGlvblJlamVjdGVkXG5cbmV4cG9ydCB0eXBlIE9wZXJhdGlvbkVycm9yPEU+ID0gQ29yZS5PcGVyYXRpb25FcnJvcjxFPlxuXG5leHBvcnQgdHlwZSBNaWRkbGV3YXJlID0gQ29yZS5NaWRkbGV3YXJlXG5cbmV4cG9ydCB0eXBlIE1pZGRsZXdhcmVTdGFjayA9IENvcmUuTWlkZGxld2FyZVN0YWNrXG5cbmV4cG9ydCBjb25zdCBjb21wb3NlTWlkZGxld2FyZSA9IENvcmUuY29tcG9zZU1pZGRsZXdhcmVcblxuZXhwb3J0IGNvbnN0IG1ha2VPcGVyYXRpb25SZWplY3RlZCA9IENvcmUubWFrZU9wZXJhdGlvblJlamVjdGVkXG5cbi8qKlxuICogXHU3NTFGXHU2MjEwXHU3QTMzXHU1QjlBIGlkXHVGRjBDXHU3NTI4XHU0RThFXHU2ODA3XHU4QkM2XHU0RTAwXHU2QjIxIEVmZmVjdE9wXHUzMDAyXG4gKiAtIFx1OUVEOFx1OEJBNFx1NEY3Rlx1NzUyOFx1NTM1NVx1OEMwM1x1NUU4Rlx1NTNGN1x1RkYwQ1x1OTA3Rlx1NTE0RFx1OTY4Rlx1NjczQS9cdTY1RjZcdTk1RjRcdTVFMjZcdTY3NjVcdTc2ODRcdTRFMERcdTUzRUZcdTkxQ0RcdTY1M0VcdTYwMjdcdUZGMUJcbiAqIC0gXHU4MkU1IG1ldGEuaW5zdGFuY2VJZCBcdTUzRUZcdTc1MjhcdUZGMENcdTUyMTlcdTRGMThcdTUxNDhcdTZEM0VcdTc1MUZcdTRFM0EgYCR7aW5zdGFuY2VJZH06Om8ke29wU2VxfWBcdTMwMDJcbiAqL1xubGV0IG5leHRHbG9iYWxPcFNlcSA9IDBcblxuY29uc3QgbmV4dE9wU2VxID0gKCk6IG51bWJlciA9PiB7XG4gIG5leHRHbG9iYWxPcFNlcSArPSAxXG4gIHJldHVybiBuZXh0R2xvYmFsT3BTZXFcbn1cblxuY29uc3QgbWFrZUlkID0gKGluc3RhbmNlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgb3BTZXE6IG51bWJlcik6IHN0cmluZyA9PlxuICBpbnN0YW5jZUlkID8gYCR7aW5zdGFuY2VJZH06Om8ke29wU2VxfWAgOiBgbyR7b3BTZXF9YFxuXG4vKipcbiAqIEVmZmVjdE9wLm1ha2VcdUZGMUFcbiAqIC0gXHU1MjFCXHU1RUZBXHU0RTAwXHU2NzYxXHU1RTI2XHU1N0ZBXHU2NzJDIG1ldGEgXHU3Njg0IEVmZmVjdE9wXHVGRjFCXG4gKiAtIFx1OUVEOFx1OEJBNFx1NzUxRlx1NjIxMFx1N0EzM1x1NUI5QSBpZFx1RkYwOFx1NTdGQVx1NEU4RSBgaW5zdGFuY2VJZGAgKyBcdTUzNTVcdThDMDMgYG9wU2VxYFx1RkYwOVx1RkYwQ1x1OEMwM1x1NzUyOFx1NjVCOVx1NEU1Rlx1NTNFRlx1NTcyOFx1NTkxNlx1NUM0Mlx1ODk4Nlx1NTE5OVx1MzAwMlxuICovXG5leHBvcnQgY29uc3QgbWFrZSA9IDxBLCBFLCBSPihwYXJhbXM6IHtcbiAgcmVhZG9ubHkga2luZDogRWZmZWN0T3BbJ2tpbmQnXVxuICByZWFkb25seSBuYW1lOiBzdHJpbmdcbiAgcmVhZG9ubHkgZWZmZWN0OiBFZmZlY3QuRWZmZWN0PEEsIEUsIFI+XG4gIHJlYWRvbmx5IHBheWxvYWQ/OiB1bmtub3duXG4gIHJlYWRvbmx5IG1ldGE/OiBFZmZlY3RPcFsnbWV0YSddXG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nXG59KTogRWZmZWN0T3A8QSwgRSwgUj4gPT4gKHtcbiAgLi4uKHBhcmFtcy5pZFxuICAgID8geyBpZDogcGFyYW1zLmlkLCBtZXRhOiBwYXJhbXMubWV0YSB9XG4gICAgOiAoKCkgPT4ge1xuICAgICAgICBjb25zdCBtZXRhOiBhbnkgPSBwYXJhbXMubWV0YSA/PyB7fVxuICAgICAgICBjb25zdCBpbnN0YW5jZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBtZXRhLmluc3RhbmNlSWRcbiAgICAgICAgY29uc3Qgb3BTZXE6IG51bWJlciA9XG4gICAgICAgICAgdHlwZW9mIG1ldGEub3BTZXEgPT09ICdudW1iZXInICYmIE51bWJlci5pc0Zpbml0ZShtZXRhLm9wU2VxKSA/IE1hdGguZmxvb3IobWV0YS5vcFNlcSkgOiBuZXh0T3BTZXEoKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlkOiBtYWtlSWQoaW5zdGFuY2VJZCwgb3BTZXEpLFxuICAgICAgICAgIG1ldGE6IG1ldGEub3BTZXEgPT09IG9wU2VxID8gbWV0YSA6IHsgLi4ubWV0YSwgb3BTZXEgfSxcbiAgICAgICAgfVxuICAgICAgfSkoKSksXG4gIGtpbmQ6IHBhcmFtcy5raW5kLFxuICBuYW1lOiBwYXJhbXMubmFtZSxcbiAgcGF5bG9hZDogcGFyYW1zLnBheWxvYWQsXG4gIGVmZmVjdDogcGFyYW1zLmVmZmVjdCxcbn0pXG5cbi8qKlxuICogRWZmZWN0T3AubWFrZUluUnVuU2Vzc2lvblx1RkYxQVxuICogLSBcdTU3MjggUnVuU2Vzc2lvbiBcdTRGNUNcdTc1MjhcdTU3REZcdTUxODVcdTUyMDZcdTkxNERcdTdBMzNcdTVCOUEgYG9wU2VxYFx1RkYwOHBlci1zZXNzaW9uICsgcGVyLWluc3RhbmNlXHVGRjA5XHVGRjFCXG4gKiAtIFx1ODJFNSBFbnYgXHU0RTJEXHU2NUUwIFJ1blNlc3Npb25cdUZGMENcdTUyMTlcdTU2REVcdTkwMDBcdTUyMzBcdThGREJcdTdBMEJcdTdFQTdcdTUzNTVcdThDMDNcdTVFOEZcdTUzRjdcdUZGMDhcdTRFMERcdTUxOERcdTRGN0ZcdTc1MjhcdThGREJcdTdBMEJcdTdFQTcgTWFwXHVGRjA5XHUzMDAyXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlSW5SdW5TZXNzaW9uID0gPEEsIEUsIFI+KHBhcmFtczoge1xuICByZWFkb25seSBraW5kOiBFZmZlY3RPcFsna2luZCddXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZ1xuICByZWFkb25seSBlZmZlY3Q6IEVmZmVjdC5FZmZlY3Q8QSwgRSwgUj5cbiAgcmVhZG9ubHkgcGF5bG9hZD86IHVua25vd25cbiAgcmVhZG9ubHkgbWV0YT86IEVmZmVjdE9wWydtZXRhJ11cbiAgcmVhZG9ubHkgaWQ/OiBzdHJpbmdcbn0pOiBFZmZlY3QuRWZmZWN0PEVmZmVjdE9wPEEsIEUsIFI+LCBuZXZlciwgYW55PiA9PlxuICBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoKSB7XG4gICAgaWYgKHBhcmFtcy5pZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IHBhcmFtcy5pZCxcbiAgICAgICAga2luZDogcGFyYW1zLmtpbmQsXG4gICAgICAgIG5hbWU6IHBhcmFtcy5uYW1lLFxuICAgICAgICBwYXlsb2FkOiBwYXJhbXMucGF5bG9hZCxcbiAgICAgICAgbWV0YTogcGFyYW1zLm1ldGEsXG4gICAgICAgIGVmZmVjdDogcGFyYW1zLmVmZmVjdCxcbiAgICAgIH0gc2F0aXNmaWVzIEVmZmVjdE9wPEEsIEUsIFI+XG4gICAgfVxuXG4gICAgY29uc3QgbWV0YTogYW55ID0gcGFyYW1zLm1ldGEgPz8ge31cbiAgICBjb25zdCBpbnN0YW5jZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBtZXRhLmluc3RhbmNlSWRcblxuICAgIGxldCBvcFNlcTogbnVtYmVyXG4gICAgaWYgKHR5cGVvZiBtZXRhLm9wU2VxID09PSAnbnVtYmVyJyAmJiBOdW1iZXIuaXNGaW5pdGUobWV0YS5vcFNlcSkpIHtcbiAgICAgIG9wU2VxID0gTWF0aC5mbG9vcihtZXRhLm9wU2VxKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzZXNzaW9uT3B0ID0geWllbGQqIEVmZmVjdC5zZXJ2aWNlT3B0aW9uKFJ1blNlc3Npb25UYWcpXG4gICAgICBpZiAoT3B0aW9uLmlzU29tZShzZXNzaW9uT3B0KSkge1xuICAgICAgICBjb25zdCBrZXkgPSBpbnN0YW5jZUlkID8/ICdnbG9iYWwnXG4gICAgICAgIG9wU2VxID0gc2Vzc2lvbk9wdC52YWx1ZS5sb2NhbC5uZXh0U2VxKCdvcFNlcScsIGtleSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9wU2VxID0gbmV4dE9wU2VxKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IG1ha2VJZChpbnN0YW5jZUlkLCBvcFNlcSksXG4gICAgICBraW5kOiBwYXJhbXMua2luZCxcbiAgICAgIG5hbWU6IHBhcmFtcy5uYW1lLFxuICAgICAgcGF5bG9hZDogcGFyYW1zLnBheWxvYWQsXG4gICAgICBtZXRhOiBtZXRhLm9wU2VxID09PSBvcFNlcSA/IG1ldGEgOiB7IC4uLm1ldGEsIG9wU2VxIH0sXG4gICAgICBlZmZlY3Q6IHBhcmFtcy5lZmZlY3QsXG4gICAgfSBzYXRpc2ZpZXMgRWZmZWN0T3A8QSwgRSwgUj5cbiAgfSlcblxuLyoqXG4gKiBFZmZlY3RPcC53aXRoTWV0YVx1RkYxQVxuICogLSBcdTU3MjhcdTczQjBcdTY3MDkgRWZmZWN0T3AgXHU0RTBBXHU4RkZEXHU1MkEwXHU2MjE2XHU4OTg2XHU3NkQ2IG1ldGEgXHU1QjU3XHU2QkI1XHVGRjFCXG4gKiAtIFx1NEUwRFx1NjUzOVx1NTNEOCBlZmZlY3QgXHU2NzJDXHU4RUFCXHUzMDAyXG4gKi9cbmV4cG9ydCBjb25zdCB3aXRoTWV0YSA9IDxBLCBFLCBSPihcbiAgb3A6IEVmZmVjdE9wPEEsIEUsIFI+LFxuICBtZXRhOiBQYXJ0aWFsPE5vbk51bGxhYmxlPEVmZmVjdE9wWydtZXRhJ10+Pixcbik6IEVmZmVjdE9wPEEsIEUsIFI+ID0+ICh7XG4gIC4uLm9wLFxuICBtZXRhOiB7IC4uLihvcC5tZXRhID8/IHt9KSwgLi4ubWV0YSB9LFxufSlcblxuLyoqXG4gKiBFZmZlY3RPcC5ydW5cdUZGMUFcbiAqIC0gXHU0RjdGXHU3NTI4XHU3RUQ5XHU1QjlBIE1pZGRsZXdhcmVTdGFjayBcdTYyNjdcdTg4NENcdTRFMDBcdTY3NjEgRWZmZWN0T3BcdUZGMUJcbiAqIC0gXHU4MkU1IHN0YWNrIFx1NEUzQVx1N0E3QVx1RkYwQ1x1NTIxOVx1NzZGNFx1NjNBNVx1OEZENFx1NTZERSBvcC5lZmZlY3RcdTMwMDJcbiAqL1xuZXhwb3J0IGNvbnN0IHJ1biA9IDxBLCBFLCBSPihvcDogRWZmZWN0T3A8QSwgRSwgUj4sIHN0YWNrOiBNaWRkbGV3YXJlU3RhY2spOiBFZmZlY3QuRWZmZWN0PEEsIEUsIFI+ID0+XG4gIENvcmUucnVuV2l0aE1pZGRsZXdhcmUob3AsIHN0YWNrKVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7OztBQUFBLFNBQVMsU0FBUyxhQUFhO0FBOEIvQixJQUFNLG9CQUFOLGNBQWdDLFFBQVEsSUFBSSx3QkFBd0IsRUFBaUMsRUFBRTtBQUFDO0FBRWpHLElBQU0sZ0JBQWdCO0FBYTdCLElBQU0sbUJBQW1CLHVCQUFPLElBQUksbUNBQW1DO0FBQ3ZFLElBQUkscUJBQXFCO0FBRXpCLElBQU0sYUFBYSxNQUFjO0FBQy9CLE1BQUk7QUFFRixVQUFNLElBQVM7QUFDZixVQUFNLE9BQU8sT0FBTyxFQUFFLGdCQUFnQixNQUFNLFdBQVksRUFBRSxnQkFBZ0IsSUFBZTtBQUN6RixVQUFNLE9BQU8sT0FBTztBQUNwQixNQUFFLGdCQUFnQixJQUFJO0FBQ3RCLFdBQU87QUFBQSxFQUNULFFBQVE7QUFDTiwwQkFBc0I7QUFDdEIsV0FBTztBQUFBLEVBQ1Q7QUFDRjtBQUVBLElBQU0sWUFBWSxDQUFDLGNBQTZCLE9BQU8sU0FBUyxJQUFJLFdBQVcsQ0FBQztBQUV6RSxJQUFNLDJCQUEyQixNQUE0QjtBQUNsRSxRQUFNLFdBQVcsb0JBQUksSUFBWTtBQUNqQyxRQUFNLGlCQUFpQixvQkFBSSxJQUFpQztBQUU1RCxTQUFPO0FBQUEsSUFDTCxNQUFNLENBQUMsUUFBUTtBQUNiLFVBQUksU0FBUyxJQUFJLEdBQUcsRUFBRyxRQUFPO0FBQzlCLGVBQVMsSUFBSSxHQUFHO0FBQ2hCLGFBQU87QUFBQSxJQUNUO0FBQUEsSUFDQSxTQUFTLENBQUMsV0FBVyxRQUFRO0FBQzNCLFlBQU0sUUFBUSxlQUFlLElBQUksU0FBUyxLQUFLLG9CQUFJLElBQW9CO0FBQ3ZFLFVBQUksQ0FBQyxlQUFlLElBQUksU0FBUyxFQUFHLGdCQUFlLElBQUksV0FBVyxLQUFLO0FBQ3ZFLFlBQU0sT0FBTyxNQUFNLElBQUksR0FBRyxLQUFLO0FBQy9CLFlBQU0sT0FBTyxPQUFPO0FBQ3BCLFlBQU0sSUFBSSxLQUFLLElBQUk7QUFDbkIsYUFBTztBQUFBLElBQ1Q7QUFBQSxJQUNBLE9BQU8sTUFBTTtBQUNYLGVBQVMsTUFBTTtBQUNmLHFCQUFlLE1BQU07QUFBQSxJQUN2QjtBQUFBLEVBQ0Y7QUFDRjtBQUVPLElBQU0saUJBQWlCLENBQUMsWUFLYjtBQUNoQixRQUFNLFlBQVksU0FBUyxhQUFhLEtBQUssSUFBSTtBQUNqRCxTQUFPO0FBQUEsSUFDTCxPQUFPLFNBQVMsU0FBUyxVQUFVLFNBQVM7QUFBQSxJQUM1QyxRQUFRLFNBQVMsVUFBVSxFQUFFLE1BQU0sVUFBVTtBQUFBLElBQzdDO0FBQUEsSUFDQSxPQUFPLFNBQVMsU0FBUyx5QkFBeUI7QUFBQSxFQUNwRDtBQUNGO0FBRU8sSUFBTSxtQkFBbUIsQ0FBQyxZQUFzQztBQUNyRSxRQUFNLFNBQWdDLENBQUM7QUFDdkMsTUFBSSxVQUFVO0FBRWQsU0FBTztBQUFBLElBQ0wsUUFBUSxDQUFDLE1BQU0sU0FBUyxZQUFZO0FBQ2xDLGFBQU8sS0FBSztBQUFBLFFBQ1YsaUJBQWlCO0FBQUEsUUFDakIsT0FBTyxRQUFRO0FBQUEsUUFDZixLQUFLO0FBQUEsUUFDTCxXQUFXLFNBQVMsYUFBYSxLQUFLLElBQUk7QUFBQSxRQUMxQztBQUFBLFFBQ0E7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBQUEsSUFDQSxRQUFRLENBQUMsWUFBWTtBQUNuQixZQUFNLGtCQUFrQixTQUFTLG1CQUFtQjtBQUNwRCxZQUFNLFlBQVksU0FBUztBQUUzQixZQUFNLFdBQ0osT0FBTyxjQUFjLFlBQVksT0FBTyxTQUFTLFNBQVMsS0FBSyxZQUFZLElBQ3ZFLE9BQU8sTUFBTSxLQUFLLElBQUksR0FBRyxPQUFPLFNBQVMsS0FBSyxNQUFNLFNBQVMsQ0FBQyxDQUFDLElBQy9ELE9BQU8sTUFBTTtBQUVuQixhQUFPLHNCQUFzQjtBQUFBLFFBQzNCO0FBQUEsUUFDQSxPQUFPLFFBQVE7QUFBQSxRQUNmLFFBQVEsUUFBUTtBQUFBLFFBQ2hCLFdBQVcsU0FBUztBQUFBLFFBQ3BCLFFBQVE7QUFBQSxRQUNSLFNBQVMsU0FBUztBQUFBLE1BQ3BCLENBQUM7QUFBQSxJQUNIO0FBQUEsSUFDQSxPQUFPLE1BQU07QUFDWCxhQUFPLFNBQVM7QUFDaEIsZ0JBQVU7QUFBQSxJQUNaO0FBQUEsRUFDRjtBQUNGO0FBRU8sSUFBTSxrQkFBa0IsQ0FBQyxZQUM5QixNQUFNLFFBQVEsZUFBZSxXQUFXLGVBQWUsQ0FBQzs7O0FDM0kxRCxTQUFTLFFBQVEsY0FBYztBQWdCeEIsSUFBTUEscUJBQXlCO0FBRS9CLElBQU1DLHlCQUE2QjtBQU8xQyxJQUFJLGtCQUFrQjtBQUV0QixJQUFNLFlBQVksTUFBYztBQUM5QixxQkFBbUI7QUFDbkIsU0FBTztBQUNUO0FBRUEsSUFBTSxTQUFTLENBQUMsWUFBZ0MsVUFDOUMsYUFBYSxHQUFHLFVBQVUsTUFBTSxLQUFLLEtBQUssSUFBSSxLQUFLO0FBTzlDLElBQU0sT0FBTyxDQUFVLFlBT0o7QUFBQSxFQUN4QixHQUFJLE9BQU8sS0FDUCxFQUFFLElBQUksT0FBTyxJQUFJLE1BQU0sT0FBTyxLQUFLLEtBQ2xDLE1BQU07QUFDTCxVQUFNLE9BQVksT0FBTyxRQUFRLENBQUM7QUFDbEMsVUFBTSxhQUFpQyxLQUFLO0FBQzVDLFVBQU0sUUFDSixPQUFPLEtBQUssVUFBVSxZQUFZLE9BQU8sU0FBUyxLQUFLLEtBQUssSUFBSSxLQUFLLE1BQU0sS0FBSyxLQUFLLElBQUksVUFBVTtBQUNyRyxXQUFPO0FBQUEsTUFDTCxJQUFJLE9BQU8sWUFBWSxLQUFLO0FBQUEsTUFDNUIsTUFBTSxLQUFLLFVBQVUsUUFBUSxPQUFPLEVBQUUsR0FBRyxNQUFNLE1BQU07QUFBQSxJQUN2RDtBQUFBLEVBQ0YsR0FBRztBQUFBLEVBQ1AsTUFBTSxPQUFPO0FBQUEsRUFDYixNQUFNLE9BQU87QUFBQSxFQUNiLFNBQVMsT0FBTztBQUFBLEVBQ2hCLFFBQVEsT0FBTztBQUNqQjtBQU9PLElBQU0sbUJBQW1CLENBQVUsV0FReEMsT0FBTyxJQUFJLGFBQWE7QUFDdEIsTUFBSSxPQUFPLElBQUk7QUFDYixXQUFPO0FBQUEsTUFDTCxJQUFJLE9BQU87QUFBQSxNQUNYLE1BQU0sT0FBTztBQUFBLE1BQ2IsTUFBTSxPQUFPO0FBQUEsTUFDYixTQUFTLE9BQU87QUFBQSxNQUNoQixNQUFNLE9BQU87QUFBQSxNQUNiLFFBQVEsT0FBTztBQUFBLElBQ2pCO0FBQUEsRUFDRjtBQUVBLFFBQU0sT0FBWSxPQUFPLFFBQVEsQ0FBQztBQUNsQyxRQUFNLGFBQWlDLEtBQUs7QUFFNUMsTUFBSTtBQUNKLE1BQUksT0FBTyxLQUFLLFVBQVUsWUFBWSxPQUFPLFNBQVMsS0FBSyxLQUFLLEdBQUc7QUFDakUsWUFBUSxLQUFLLE1BQU0sS0FBSyxLQUFLO0FBQUEsRUFDL0IsT0FBTztBQUNMLFVBQU0sYUFBYSxPQUFPLE9BQU8sY0FBYyxhQUFhO0FBQzVELFFBQUksT0FBTyxPQUFPLFVBQVUsR0FBRztBQUM3QixZQUFNLE1BQU0sY0FBYztBQUMxQixjQUFRLFdBQVcsTUFBTSxNQUFNLFFBQVEsU0FBUyxHQUFHO0FBQUEsSUFDckQsT0FBTztBQUNMLGNBQVEsVUFBVTtBQUFBLElBQ3BCO0FBQUEsRUFDRjtBQUVBLFNBQU87QUFBQSxJQUNMLElBQUksT0FBTyxZQUFZLEtBQUs7QUFBQSxJQUM1QixNQUFNLE9BQU87QUFBQSxJQUNiLE1BQU0sT0FBTztBQUFBLElBQ2IsU0FBUyxPQUFPO0FBQUEsSUFDaEIsTUFBTSxLQUFLLFVBQVUsUUFBUSxPQUFPLEVBQUUsR0FBRyxNQUFNLE1BQU07QUFBQSxJQUNyRCxRQUFRLE9BQU87QUFBQSxFQUNqQjtBQUNGLENBQUM7QUFPSSxJQUFNLFdBQVcsQ0FDdEIsSUFDQSxVQUN1QjtBQUFBLEVBQ3ZCLEdBQUc7QUFBQSxFQUNILE1BQU0sRUFBRSxHQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUksR0FBRyxLQUFLO0FBQ3RDO0FBT08sSUFBTSxNQUFNLENBQVUsSUFBdUIsVUFDN0Msa0JBQWtCLElBQUksS0FBSzsiLAogICJuYW1lcyI6IFsiY29tcG9zZU1pZGRsZXdhcmUiLCAibWFrZU9wZXJhdGlvblJlamVjdGVkIl0KfQo=
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// @logix/core subpath bundles for @logix/sandbox
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
record
|
|
5
|
+
} from "./chunk-GIPXUIZQ.js";
|
|
6
|
+
|
|
7
|
+
// ../logix-core/src/Middleware.ts
|
|
8
|
+
import { Effect } from "../effect.js";
|
|
9
|
+
var makeDebugLogger = (config) => (op) => Effect.gen(function* () {
|
|
10
|
+
if (op.meta?.policy?.disableObservers) {
|
|
11
|
+
return yield* op.effect;
|
|
12
|
+
}
|
|
13
|
+
if (config?.logger) {
|
|
14
|
+
config.logger(op);
|
|
15
|
+
} else {
|
|
16
|
+
yield* Effect.logDebug(
|
|
17
|
+
`[EffectOp] kind=${op.kind} name=${op.name}`
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
return yield* op.effect;
|
|
21
|
+
});
|
|
22
|
+
var applyDebug = (stack, config) => [...stack, makeDebugLogger(config)];
|
|
23
|
+
var makeDebugObserver = (config) => (op) => Effect.gen(function* () {
|
|
24
|
+
if (op.meta?.policy?.disableObservers) {
|
|
25
|
+
return yield* op.effect;
|
|
26
|
+
}
|
|
27
|
+
if (!config?.filter || config.filter(op)) {
|
|
28
|
+
const meta = op.meta ?? {};
|
|
29
|
+
const slimOp = {
|
|
30
|
+
id: op.id,
|
|
31
|
+
kind: op.kind,
|
|
32
|
+
name: op.name,
|
|
33
|
+
payload: op.payload,
|
|
34
|
+
meta: op.meta
|
|
35
|
+
};
|
|
36
|
+
yield* record({
|
|
37
|
+
type: "trace:effectop",
|
|
38
|
+
moduleId: typeof meta.moduleId === "string" ? meta.moduleId : void 0,
|
|
39
|
+
instanceId: typeof meta.instanceId === "string" ? meta.instanceId : void 0,
|
|
40
|
+
runtimeLabel: typeof meta.runtimeLabel === "string" ? meta.runtimeLabel : void 0,
|
|
41
|
+
txnSeq: typeof meta.txnSeq === "number" && Number.isFinite(meta.txnSeq) ? Math.floor(meta.txnSeq) : void 0,
|
|
42
|
+
data: slimOp
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return yield* op.effect;
|
|
46
|
+
});
|
|
47
|
+
var applyDebugObserver = (stack, config) => [...stack, makeDebugObserver(config)];
|
|
48
|
+
var withDebug = (stack, options) => {
|
|
49
|
+
let next = stack;
|
|
50
|
+
if (options?.logger !== false) {
|
|
51
|
+
const loggerConfig = typeof options?.logger === "function" ? { logger: options.logger } : void 0;
|
|
52
|
+
next = applyDebug(next, loggerConfig);
|
|
53
|
+
}
|
|
54
|
+
if (options?.observer !== false) {
|
|
55
|
+
const observerOption = options?.observer;
|
|
56
|
+
const observerConfig = observerOption === void 0 ? void 0 : observerOption;
|
|
57
|
+
next = applyDebugObserver(next, observerConfig);
|
|
58
|
+
}
|
|
59
|
+
return next;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export {
|
|
63
|
+
makeDebugLogger,
|
|
64
|
+
applyDebug,
|
|
65
|
+
makeDebugObserver,
|
|
66
|
+
applyDebugObserver,
|
|
67
|
+
withDebug
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vbG9naXgtY29yZS9zcmMvTWlkZGxld2FyZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLy8gTWlkZGxld2FyZSBcdTU0N0RcdTU0MERcdTdBN0FcdTk1RjRcdTUxNjVcdTUzRTNcdUZGMDhAbG9naXgvY29yZS9NaWRkbGV3YXJlXHVGRjA5XHUzMDAyXG4vLyAtIFx1NjNEMFx1NEY5Qlx1NTdGQVx1NEU4RSBFZmZlY3RPcCBcdTc2ODRcdThDMDNcdThCRDUvXHU4OUMyXHU2RDRCXHU0RTJEXHU5NUY0XHU0RUY2XHU3QjQ5XHU4Rjg1XHU1MkE5XHU1REU1XHU1MTc3XHVGRjFCXG4vLyAtIFF1ZXJ5IC8gRGVidWdPYnNlcnZlciBcdTdCNDlcdTgwRkRcdTUyOUJcdTU3MjhcdTY3MkNcdTU0N0RcdTU0MERcdTdBN0FcdTk1RjRcdTRFMEJcdTYyNjlcdTVDNTVcdTMwMDJcblxuaW1wb3J0IHsgRWZmZWN0IH0gZnJvbSBcImVmZmVjdFwiXG5pbXBvcnQgKiBhcyBFZmZlY3RPcCBmcm9tIFwiLi9FZmZlY3RPcC5qc1wiXG5pbXBvcnQgKiBhcyBEZWJ1ZyBmcm9tIFwiLi9EZWJ1Zy5qc1wiXG5cbmV4cG9ydCB0eXBlIE1pZGRsZXdhcmUgPSBFZmZlY3RPcC5NaWRkbGV3YXJlXG5leHBvcnQgdHlwZSBNaWRkbGV3YXJlU3RhY2sgPSBFZmZlY3RPcC5NaWRkbGV3YXJlU3RhY2tcblxuZXhwb3J0IGludGVyZmFjZSBEZWJ1Z0xvZ2dlckNvbmZpZyB7XG4gIC8qKlxuICAgKiBcdTUzRUZcdTkwMDlcdUZGMUFcdTgxRUFcdTVCOUFcdTRFNDlcdTY1RTVcdTVGRDdcdTUxRkRcdTY1NzBcdUZGMENcdTY1QjlcdTRGQkZcdTU3MjhcdTZENEJcdThCRDVcdTRFMkRcdTYzNTVcdTgzQjdcdThDMDNcdTc1MjhcdTMwMDJcbiAgICogLSBcdTgyRTVcdTY3MkFcdTYzRDBcdTRGOUJcdUZGMENcdTUyMTlcdTlFRDhcdThCQTRcdTRGN0ZcdTc1MjggRWZmZWN0LmxvZ0RlYnVnIFx1OEY5M1x1NTFGQVx1MzAwMlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nZ2VyPzogKG9wOiBFZmZlY3RPcC5FZmZlY3RPcDxhbnksIGFueSwgYW55PikgPT4gdm9pZFxufVxuXG4vKipcbiAqIFx1NTIxQlx1NUVGQVx1NEUwMFx1NEUyQVx1N0I4MFx1NTM1NVx1NzY4NCBEZWJ1ZyBcdTY1RTVcdTVGRDdcdTRFMkRcdTk1RjRcdTRFRjZcdUZGMUFcbiAqIC0gXHU1NzI4XHU2MjY3XHU4ODRDIEVmZmVjdCBcdTRFNEJcdTUyNERcdThCQjBcdTVGNTVcdTRFMDBcdTY3NjFcdTY1RTVcdTVGRDdcdUZGMUJcbiAqIC0gXHU0RTBEXHU2NTM5XHU1M0Q4XHU3RUQzXHU2NzlDXHU0RTBFXHU5NTE5XHU4QkVGXHU4QkVEXHU0RTQ5XHUzMDAyXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlRGVidWdMb2dnZXIgPSAoXG4gIGNvbmZpZz86IERlYnVnTG9nZ2VyQ29uZmlnLFxuKTogTWlkZGxld2FyZSA9PlxuICA8QSwgRSwgUj4ob3A6IEVmZmVjdE9wLkVmZmVjdE9wPEEsIEUsIFI+KTogRWZmZWN0LkVmZmVjdDxBLCBFLCBSPiA9PlxuICAgIEVmZmVjdC5nZW4oZnVuY3Rpb24qICgpIHtcbiAgICAgIC8vIFx1N0VBRlx1ODlDMlx1NkQ0Qlx1N0M3Qlx1ODBGRFx1NTI5Qlx1RkYxQVx1NTE0MVx1OEJCOFx1ODhBQlx1NUM0MFx1OTBFOFx1N0I1Nlx1NzU2NVx1NTE3M1x1OTVFRFx1MzAwMlxuICAgICAgaWYgKG9wLm1ldGE/LnBvbGljeT8uZGlzYWJsZU9ic2VydmVycykge1xuICAgICAgICByZXR1cm4geWllbGQqIG9wLmVmZmVjdFxuICAgICAgfVxuICAgICAgaWYgKGNvbmZpZz8ubG9nZ2VyKSB7XG4gICAgICAgIGNvbmZpZy5sb2dnZXIob3ApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB5aWVsZCogRWZmZWN0LmxvZ0RlYnVnKFxuICAgICAgICAgIGBbRWZmZWN0T3BdIGtpbmQ9JHtvcC5raW5kfSBuYW1lPSR7b3AubmFtZX1gLFxuICAgICAgICApXG4gICAgICB9XG4gICAgICByZXR1cm4geWllbGQqIG9wLmVmZmVjdFxuICAgIH0pXG5cbi8qKlxuICogYXBwbHlEZWJ1Z1x1RkYxQVxuICogLSBcdTU3MjhcdTczQjBcdTY3MDkgTWlkZGxld2FyZVN0YWNrIFx1NjcyQlx1NUMzRVx1OEZGRFx1NTJBMFx1NEUwMFx1NEUyQSBEZWJ1Z0xvZ2dlciBcdTRFMkRcdTk1RjRcdTRFRjZcdUZGMUJcbiAqIC0gXHU4RkQ0XHU1NkRFXHU2NUIwXHU3Njg0IHN0YWNrXHVGRjBDXHU0RTBEXHU0RkVFXHU2NTM5XHU1MzlGXHU2NTcwXHU3RUM0XHUzMDAyXG4gKi9cbmV4cG9ydCBjb25zdCBhcHBseURlYnVnID0gKFxuICBzdGFjazogTWlkZGxld2FyZVN0YWNrLFxuICBjb25maWc/OiBEZWJ1Z0xvZ2dlckNvbmZpZyxcbik6IE1pZGRsZXdhcmVTdGFjayA9PiBbLi4uc3RhY2ssIG1ha2VEZWJ1Z0xvZ2dlcihjb25maWcpXVxuXG4vKipcbiAqIERlYnVnT2JzZXJ2ZXJDb25maWdcdUZGMUFcbiAqIC0gXHU5ODg0XHU3NTU5XHU4RkM3XHU2RUU0XHU1MTY1XHU1M0UzXHVGRjFBXHU1M0VGXHU2MzA5XHU2QTIxXHU1NzU3IC8ga2luZCAvIG5hbWUgXHU3QjQ5XHU3RUY0XHU1RUE2XHU3QjVCXHU5MDA5XHU5NzAwXHU4OTgxXHU4OUMyXHU2RDRCXHU3Njg0IEVmZmVjdE9wXHUzMDAyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVidWdPYnNlcnZlckNvbmZpZyB7XG4gIHJlYWRvbmx5IGZpbHRlcj86IChcbiAgICBvcDogRWZmZWN0T3AuRWZmZWN0T3A8YW55LCBhbnksIGFueT4sXG4gICkgPT4gYm9vbGVhblxufVxuXG4vKipcbiAqIG1ha2VEZWJ1Z09ic2VydmVyXHVGRjFBXG4gKiAtIFx1NUMwNiBFZmZlY3RPcCBcdTZENDFcdTdFREZcdTRFMDBcdTY1MzZcdTUzRTNcdTUyMzAgRGVidWdTaW5rXHVGRjA4RWZmZWN0T3AgXHUyMTkyIERlYnVnLkV2ZW50XHVGRjA5XHVGRjFCXG4gKiAtIFx1NUY1M1x1NTI0RFx1OTAxQVx1OEZDNyB0cmFjZToqIFx1NEU4Qlx1NEVGNlx1NUMwNiBFZmZlY3RPcCBcdTc2ODQgU2xpbSBcdTg5QzZcdTU2RkVcdTkwMEZcdTRGMjBcdTUyMzAgRGVidWcgXHU2RDQxXHVGRjA4XHU3OTgxXHU2QjYyXHU2NDNBXHU1RTI2IGVmZmVjdCBcdTk1RURcdTUzMDVcdUZGMDlcdUZGMUFcbiAqICAgLSB0eXBlOiBcInRyYWNlOmVmZmVjdG9wXCJcbiAqICAgLSBtb2R1bGVJZDogXHU2NzY1XHU4MUVBIG9wLm1ldGE/Lm1vZHVsZUlkXHVGRjA4XHU4MkU1XHU1QjU4XHU1NzI4XHVGRjA5XG4gKiAgIC0gZGF0YTogeyBpZCwga2luZCwgbmFtZSwgcGF5bG9hZCwgbWV0YSB9XG4gKlxuICogXHU4QkY0XHU2NjBFXHVGRjFBXG4gKiAtIFx1NEUwRFx1NjUzOVx1NTNEOFx1NTM5Rlx1NjcwOSBFZmZlY3QgXHU4ODRDXHU0RTNBXHVGRjBDXHU0RUM1XHU4RkZEXHU1MkEwIERlYnVnIFx1NEZBN1x1ODlDMlx1NkQ0Qlx1RkYxQlxuICogLSBcdTUxNzdcdTRGNTNcdTc2ODQgRGV2dG9vbHMgLyBUaW1lbGluZSBcdTg5QzZcdTU2RkVcdTUzRUZcdTRFRTVcdTU3RkFcdTRFOEUgdHJhY2U6ZWZmZWN0b3AgXHU0RThCXHU0RUY2XHU5MUNEXHU1RUZBIEVmZmVjdE9wIFx1NjVGNlx1OTVGNFx1N0VCRlx1MzAwMlxuICovXG5leHBvcnQgY29uc3QgbWFrZURlYnVnT2JzZXJ2ZXIgPSAoXG4gIGNvbmZpZz86IERlYnVnT2JzZXJ2ZXJDb25maWcsXG4pOiBNaWRkbGV3YXJlID0+XG4gIDxBLCBFLCBSPihvcDogRWZmZWN0T3AuRWZmZWN0T3A8QSwgRSwgUj4pOiBFZmZlY3QuRWZmZWN0PEEsIEUsIFI+ID0+XG4gICAgRWZmZWN0LmdlbihmdW5jdGlvbiogKCkge1xuICAgICAgLy8gXHU3RUFGXHU4OUMyXHU2RDRCXHU3QzdCXHU4MEZEXHU1MjlCXHVGRjFBXHU1MTQxXHU4QkI4XHU4OEFCXHU1QzQwXHU5MEU4XHU3QjU2XHU3NTY1XHU1MTczXHU5NUVEXHUzMDAyXG4gICAgICBpZiAob3AubWV0YT8ucG9saWN5Py5kaXNhYmxlT2JzZXJ2ZXJzKSB7XG4gICAgICAgIHJldHVybiB5aWVsZCogb3AuZWZmZWN0XG4gICAgICB9XG4gICAgICBpZiAoIWNvbmZpZz8uZmlsdGVyIHx8IGNvbmZpZy5maWx0ZXIob3ApKSB7XG4gICAgICAgIGNvbnN0IG1ldGE6IGFueSA9IG9wLm1ldGEgPz8ge31cbiAgICAgICAgY29uc3Qgc2xpbU9wID0ge1xuICAgICAgICAgIGlkOiBvcC5pZCxcbiAgICAgICAgICBraW5kOiBvcC5raW5kLFxuICAgICAgICAgIG5hbWU6IG9wLm5hbWUsXG4gICAgICAgICAgcGF5bG9hZDogb3AucGF5bG9hZCxcbiAgICAgICAgICBtZXRhOiBvcC5tZXRhLFxuICAgICAgICB9XG4gICAgICAgIHlpZWxkKiBEZWJ1Zy5yZWNvcmQoe1xuICAgICAgICAgIHR5cGU6IFwidHJhY2U6ZWZmZWN0b3BcIixcbiAgICAgICAgICBtb2R1bGVJZDogdHlwZW9mIG1ldGEubW9kdWxlSWQgPT09IFwic3RyaW5nXCIgPyBtZXRhLm1vZHVsZUlkIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGluc3RhbmNlSWQ6IHR5cGVvZiBtZXRhLmluc3RhbmNlSWQgPT09IFwic3RyaW5nXCIgPyBtZXRhLmluc3RhbmNlSWQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgcnVudGltZUxhYmVsOiB0eXBlb2YgbWV0YS5ydW50aW1lTGFiZWwgPT09IFwic3RyaW5nXCIgPyBtZXRhLnJ1bnRpbWVMYWJlbCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICB0eG5TZXE6XG4gICAgICAgICAgICB0eXBlb2YgbWV0YS50eG5TZXEgPT09IFwibnVtYmVyXCIgJiYgTnVtYmVyLmlzRmluaXRlKG1ldGEudHhuU2VxKVxuICAgICAgICAgICAgICA/IE1hdGguZmxvb3IobWV0YS50eG5TZXEpXG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGRhdGE6IHNsaW1PcCxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIHJldHVybiB5aWVsZCogb3AuZWZmZWN0XG4gICAgfSlcblxuLyoqXG4gKiBhcHBseURlYnVnT2JzZXJ2ZXJcdUZGMUFcbiAqIC0gXHU1NzI4XHU3M0IwXHU2NzA5IE1pZGRsZXdhcmVTdGFjayBcdTY3MkJcdTVDM0VcdThGRkRcdTUyQTAgRGVidWdPYnNlcnZlciBcdTRFMkRcdTk1RjRcdTRFRjZcdUZGMUJcbiAqIC0gXHU4RkQ0XHU1NkRFXHU2NUIwXHU3Njg0IHN0YWNrXHVGRjBDXHU0RTBEXHU0RkVFXHU2NTM5XHU1MzlGXHU2NTcwXHU3RUM0XHUzMDAyXG4gKi9cbmV4cG9ydCBjb25zdCBhcHBseURlYnVnT2JzZXJ2ZXIgPSAoXG4gIHN0YWNrOiBNaWRkbGV3YXJlU3RhY2ssXG4gIGNvbmZpZz86IERlYnVnT2JzZXJ2ZXJDb25maWcsXG4pOiBNaWRkbGV3YXJlU3RhY2sgPT4gWy4uLnN0YWNrLCBtYWtlRGVidWdPYnNlcnZlcihjb25maWcpXVxuXG4vKipcbiAqIFdpdGhEZWJ1Z09wdGlvbnNcdUZGMUFcbiAqIC0gXHU5QUQ4XHU1QzQyXHU3RUM0XHU1NDA4XHU1MTY1XHU1M0UzXHU3Njg0XHU5MTREXHU3RjZFXHU5ODc5XHVGRjBDXHU3NTI4XHU0RThFXHU1NzI4XHU3M0IwXHU2NzA5IE1pZGRsZXdhcmVTdGFjayBcdTRFMEFcdThGRkRcdTUyQTAgRGVidWcgXHU4MEZEXHU1MjlCXHUzMDAyXG4gKlxuICogXHU3RUE2XHU1QjlBXHVGRjFBXG4gKiAtIGxvZ2dlcjpcbiAqICAgLSBcdTY3MkFcdThCQkVcdTdGNkVcdUZGMDh1bmRlZmluZWRcdUZGMDlcdUZGMUFcdTU0MkZcdTc1MjhcdTlFRDhcdThCQTQgRGVidWdMb2dnZXJcdUZGMDhFZmZlY3QubG9nRGVidWdcdUZGMDlcdUZGMUJcbiAqICAgLSBcdTYzRDBcdTRGOUJcdTUxRkRcdTY1NzBcdUZGMUFcdTRGN0ZcdTc1MjhcdTgxRUFcdTVCOUFcdTRFNDkgbG9nZ2VyKG9wKSBcdTY2RkZcdTRFRTNcdTlFRDhcdThCQTRcdTg4NENcdTRFM0FcdUZGMUJcbiAqICAgLSBcdTY2M0VcdTVGMEYgZmFsc2VcdUZGMUFcdTRFMERcdThGRkRcdTUyQTAgRGVidWdMb2dnZXIgXHU0RTJEXHU5NUY0XHU0RUY2XHUzMDAyXG4gKiAtIG9ic2VydmVyOlxuICogICAtIFx1NjcyQVx1OEJCRVx1N0Y2RVx1RkYwOHVuZGVmaW5lZFx1RkYwOVx1RkYxQVx1NTQyRlx1NzUyOCBEZWJ1Z09ic2VydmVyXHVGRjBDXHU0RjdGXHU3NTI4XHU5RUQ4XHU4QkE0XHU5MTREXHU3RjZFXHVGRjFCXG4gKiAgIC0gXHU2M0QwXHU0RjlCIERlYnVnT2JzZXJ2ZXJDb25maWdcdUZGMUFcdTYzMDlcdTkxNERcdTdGNkVcdTU0MkZcdTc1MjggRGVidWdPYnNlcnZlclx1RkYxQlxuICogICAtIFx1NjYzRVx1NUYwRiBmYWxzZVx1RkYxQVx1NEUwRFx1OEZGRFx1NTJBMCBEZWJ1Z09ic2VydmVyIFx1NEUyRFx1OTVGNFx1NEVGNlx1MzAwMlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdpdGhEZWJ1Z09wdGlvbnMge1xuICByZWFkb25seSBsb2dnZXI/OiBEZWJ1Z0xvZ2dlckNvbmZpZ1tcImxvZ2dlclwiXSB8IGZhbHNlXG4gIHJlYWRvbmx5IG9ic2VydmVyPzogRGVidWdPYnNlcnZlckNvbmZpZyB8IGZhbHNlXG59XG5cbi8qKlxuICogd2l0aERlYnVnXHVGRjFBXG4gKiAtIFx1NTcyOFx1NzNCMFx1NjcwOSBNaWRkbGV3YXJlU3RhY2sgXHU0RTBBXHU4RkZEXHU1MkEwIERlYnVnTG9nZ2VyICsgRGVidWdPYnNlcnZlciBcdTk4ODRcdThCQkVcdUZGMUJcbiAqIC0gXHU2NTJGXHU2MzAxXHU5MDFBXHU4RkM3IG9wdGlvbnMgXHU2M0E3XHU1MjM2IGxvZ2dlciAvIG9ic2VydmVyIFx1NjYyRlx1NTQyNlx1NTQyRlx1NzUyOFx1NTNDQVx1NTE3Nlx1OTE0RFx1N0Y2RVx1RkYxQlxuICogLSBcdThGRDRcdTU2REVcdTY1QjBcdTc2ODQgc3RhY2tcdUZGMENcdTRFMERcdTRGRUVcdTY1MzlcdTUzOUZcdTY1NzBcdTdFQzRcdTMwMDJcbiAqXG4gKiBcdTUxNzhcdTU3OEJcdTc1MjhcdTZDRDVcdUZGMUFcbiAqXG4gKiAgIGxldCBzdGFjazogTWlkZGxld2FyZVN0YWNrID0gW21ldHJpY3MsIHRpbWluZ11cbiAqICAgc3RhY2sgPSBNaWRkbGV3YXJlLndpdGhEZWJ1ZyhzdGFjaywge1xuICogICAgIGxvZ2dlcjogKG9wKSA9PiBjb25zb2xlLmxvZyhvcC5raW5kLCBvcC5uYW1lKSxcbiAqICAgICBvYnNlcnZlcjogeyBmaWx0ZXI6IChvcCkgPT4gb3Aua2luZCAhPT0gXCJzZXJ2aWNlXCIgfSxcbiAqICAgfSlcbiAqL1xuZXhwb3J0IGNvbnN0IHdpdGhEZWJ1ZyA9IChcbiAgc3RhY2s6IE1pZGRsZXdhcmVTdGFjayxcbiAgb3B0aW9ucz86IFdpdGhEZWJ1Z09wdGlvbnMsXG4pOiBNaWRkbGV3YXJlU3RhY2sgPT4ge1xuICBsZXQgbmV4dCA9IHN0YWNrXG5cbiAgLy8gRGVidWdMb2dnZXJcdUZGMUFcdTlFRDhcdThCQTRcdTVGMDBcdTU0MkZcdUZGMENcdTk2NjRcdTk3NUVcdTY2M0VcdTVGMEYgbG9nZ2VyID09PSBmYWxzZVx1MzAwMlxuICBpZiAob3B0aW9ucz8ubG9nZ2VyICE9PSBmYWxzZSkge1xuICAgIGNvbnN0IGxvZ2dlckNvbmZpZzogRGVidWdMb2dnZXJDb25maWcgfCB1bmRlZmluZWQgPVxuICAgICAgdHlwZW9mIG9wdGlvbnM/LmxvZ2dlciA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgID8geyBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyIH1cbiAgICAgICAgOiB1bmRlZmluZWRcbiAgICBuZXh0ID0gYXBwbHlEZWJ1ZyhuZXh0LCBsb2dnZXJDb25maWcpXG4gIH1cblxuICAvLyBEZWJ1Z09ic2VydmVyXHVGRjFBXHU5RUQ4XHU4QkE0XHU1RjAwXHU1NDJGXHVGRjBDXHU5NjY0XHU5NzVFXHU2NjNFXHU1RjBGIG9ic2VydmVyID09PSBmYWxzZVx1MzAwMlxuICBpZiAob3B0aW9ucz8ub2JzZXJ2ZXIgIT09IGZhbHNlKSB7XG4gICAgLy8gXHU4RkQ5XHU5MUNDXHU1REYyXHU3RUNGXHU5MDFBXHU4RkM3XHU2NzYxXHU0RUY2XHU2MzkyXHU5NjY0XHU0RTg2IG9ic2VydmVyID09PSBmYWxzZVx1RkYwQ1x1NTNFQVx1OTcwMFx1ODk4MVx1NTcyOFx1NjcwOVx1OTE0RFx1N0Y2RVx1NUJGOVx1OEM2MVx1NjVGNlx1OTAwRlx1NEYyMFx1RkYxQlxuICAgIC8vIHVuZGVmaW5lZCBcdTg4NjhcdTc5M0FcdTRGN0ZcdTc1MjggRGVidWdPYnNlcnZlciBcdTlFRDhcdThCQTRcdTg4NENcdTRFM0FcdTMwMDJcbiAgICBjb25zdCBvYnNlcnZlck9wdGlvbiA9IG9wdGlvbnM/Lm9ic2VydmVyXG4gICAgY29uc3Qgb2JzZXJ2ZXJDb25maWc6IERlYnVnT2JzZXJ2ZXJDb25maWcgfCB1bmRlZmluZWQgPVxuICAgICAgb2JzZXJ2ZXJPcHRpb24gPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IG9ic2VydmVyT3B0aW9uXG4gICAgbmV4dCA9IGFwcGx5RGVidWdPYnNlcnZlcihuZXh0LCBvYnNlcnZlckNvbmZpZylcbiAgfVxuXG4gIHJldHVybiBuZXh0XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7O0FBSUEsU0FBUyxjQUFjO0FBb0JoQixJQUFNLGtCQUFrQixDQUM3QixXQUVBLENBQVUsT0FDUixPQUFPLElBQUksYUFBYTtBQUV0QixNQUFJLEdBQUcsTUFBTSxRQUFRLGtCQUFrQjtBQUNyQyxXQUFPLE9BQU8sR0FBRztBQUFBLEVBQ25CO0FBQ0EsTUFBSSxRQUFRLFFBQVE7QUFDbEIsV0FBTyxPQUFPLEVBQUU7QUFBQSxFQUNsQixPQUFPO0FBQ0wsV0FBTyxPQUFPO0FBQUEsTUFDWixtQkFBbUIsR0FBRyxJQUFJLFNBQVMsR0FBRyxJQUFJO0FBQUEsSUFDNUM7QUFBQSxFQUNGO0FBQ0EsU0FBTyxPQUFPLEdBQUc7QUFDbkIsQ0FBQztBQU9FLElBQU0sYUFBYSxDQUN4QixPQUNBLFdBQ29CLENBQUMsR0FBRyxPQUFPLGdCQUFnQixNQUFNLENBQUM7QUF3QmpELElBQU0sb0JBQW9CLENBQy9CLFdBRUEsQ0FBVSxPQUNSLE9BQU8sSUFBSSxhQUFhO0FBRXRCLE1BQUksR0FBRyxNQUFNLFFBQVEsa0JBQWtCO0FBQ3JDLFdBQU8sT0FBTyxHQUFHO0FBQUEsRUFDbkI7QUFDQSxNQUFJLENBQUMsUUFBUSxVQUFVLE9BQU8sT0FBTyxFQUFFLEdBQUc7QUFDeEMsVUFBTSxPQUFZLEdBQUcsUUFBUSxDQUFDO0FBQzlCLFVBQU0sU0FBUztBQUFBLE1BQ2IsSUFBSSxHQUFHO0FBQUEsTUFDUCxNQUFNLEdBQUc7QUFBQSxNQUNULE1BQU0sR0FBRztBQUFBLE1BQ1QsU0FBUyxHQUFHO0FBQUEsTUFDWixNQUFNLEdBQUc7QUFBQSxJQUNYO0FBQ0EsV0FBYSxPQUFPO0FBQUEsTUFDbEIsTUFBTTtBQUFBLE1BQ04sVUFBVSxPQUFPLEtBQUssYUFBYSxXQUFXLEtBQUssV0FBVztBQUFBLE1BQzlELFlBQVksT0FBTyxLQUFLLGVBQWUsV0FBVyxLQUFLLGFBQWE7QUFBQSxNQUNwRSxjQUFjLE9BQU8sS0FBSyxpQkFBaUIsV0FBVyxLQUFLLGVBQWU7QUFBQSxNQUMxRSxRQUNFLE9BQU8sS0FBSyxXQUFXLFlBQVksT0FBTyxTQUFTLEtBQUssTUFBTSxJQUMxRCxLQUFLLE1BQU0sS0FBSyxNQUFNLElBQ3RCO0FBQUEsTUFDTixNQUFNO0FBQUEsSUFDUixDQUFDO0FBQUEsRUFDSDtBQUNBLFNBQU8sT0FBTyxHQUFHO0FBQ25CLENBQUM7QUFPRSxJQUFNLHFCQUFxQixDQUNoQyxPQUNBLFdBQ29CLENBQUMsR0FBRyxPQUFPLGtCQUFrQixNQUFNLENBQUM7QUFtQ25ELElBQU0sWUFBWSxDQUN2QixPQUNBLFlBQ29CO0FBQ3BCLE1BQUksT0FBTztBQUdYLE1BQUksU0FBUyxXQUFXLE9BQU87QUFDN0IsVUFBTSxlQUNKLE9BQU8sU0FBUyxXQUFXLGFBQ3ZCLEVBQUUsUUFBUSxRQUFRLE9BQU8sSUFDekI7QUFDTixXQUFPLFdBQVcsTUFBTSxZQUFZO0FBQUEsRUFDdEM7QUFHQSxNQUFJLFNBQVMsYUFBYSxPQUFPO0FBRy9CLFVBQU0saUJBQWlCLFNBQVM7QUFDaEMsVUFBTSxpQkFDSixtQkFBbUIsU0FBWSxTQUFZO0FBQzdDLFdBQU8sbUJBQW1CLE1BQU0sY0FBYztBQUFBLEVBQ2hEO0FBRUEsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
// @logix/core subpath bundles for @logix/sandbox
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
record
|
|
5
|
+
} from "./chunk-CVZPRIDB.js";
|
|
6
|
+
import {
|
|
7
|
+
EffectOpMiddlewareTag,
|
|
8
|
+
make,
|
|
9
|
+
run
|
|
10
|
+
} from "./chunk-UNVLTK4N.js";
|
|
11
|
+
import {
|
|
12
|
+
RunSessionTag
|
|
13
|
+
} from "./chunk-RS5FFPUV.js";
|
|
14
|
+
|
|
15
|
+
// ../logix-core/src/internal/runtime/core/FlowRuntime.ts
|
|
16
|
+
import { Effect, Stream, Ref, Option } from "../effect.js";
|
|
17
|
+
var getMiddlewareStack = () => Effect.serviceOption(EffectOpMiddlewareTag).pipe(
|
|
18
|
+
Effect.map((maybe) => Option.isSome(maybe) ? maybe.value.stack : [])
|
|
19
|
+
);
|
|
20
|
+
var getRuntimeScope = (runtime) => {
|
|
21
|
+
if (!runtime) return {};
|
|
22
|
+
if (typeof runtime !== "object" && typeof runtime !== "function") return {};
|
|
23
|
+
const scope = runtime;
|
|
24
|
+
return {
|
|
25
|
+
moduleId: typeof scope.moduleId === "string" ? scope.moduleId : void 0,
|
|
26
|
+
instanceId: typeof scope.instanceId === "string" ? scope.instanceId : void 0
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
var resolveEffect = (eff, payload) => typeof eff === "function" ? eff(payload) : eff;
|
|
30
|
+
var make2 = (runtime, runtimeInternals) => {
|
|
31
|
+
const scope = getRuntimeScope(runtime);
|
|
32
|
+
const resolveConcurrencyLimit = () => runtimeInternals ? runtimeInternals.concurrency.resolveConcurrencyPolicy().pipe(
|
|
33
|
+
Effect.map((p) => p.concurrencyLimit)
|
|
34
|
+
) : Effect.succeed(16);
|
|
35
|
+
const runAsFlowOp = (name, payload, eff, options) => Effect.gen(function* () {
|
|
36
|
+
const stack = yield* getMiddlewareStack();
|
|
37
|
+
const meta = {
|
|
38
|
+
...options?.meta ?? {},
|
|
39
|
+
policy: options?.policy,
|
|
40
|
+
tags: options?.tags,
|
|
41
|
+
trace: options?.trace,
|
|
42
|
+
moduleId: scope.moduleId,
|
|
43
|
+
instanceId: scope.instanceId
|
|
44
|
+
};
|
|
45
|
+
if (!(typeof meta.opSeq === "number" && Number.isFinite(meta.opSeq))) {
|
|
46
|
+
const sessionOpt = yield* Effect.serviceOption(RunSessionTag);
|
|
47
|
+
if (Option.isSome(sessionOpt)) {
|
|
48
|
+
const key = meta.instanceId ?? "global";
|
|
49
|
+
meta.opSeq = sessionOpt.value.local.nextSeq("opSeq", key);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const op = make({
|
|
53
|
+
kind: "flow",
|
|
54
|
+
name,
|
|
55
|
+
payload,
|
|
56
|
+
effect: eff,
|
|
57
|
+
meta
|
|
58
|
+
});
|
|
59
|
+
return yield* run(op, stack);
|
|
60
|
+
});
|
|
61
|
+
const runEffect = (eff) => (payload) => resolveEffect(eff, payload);
|
|
62
|
+
const runStreamSequential = (eff, options) => (stream) => Stream.runForEach(
|
|
63
|
+
stream,
|
|
64
|
+
(payload) => runAsFlowOp(
|
|
65
|
+
"flow.run",
|
|
66
|
+
payload,
|
|
67
|
+
runEffect(eff)(payload),
|
|
68
|
+
options
|
|
69
|
+
)
|
|
70
|
+
);
|
|
71
|
+
const runStreamParallel = (eff, options) => (stream) => Effect.gen(function* () {
|
|
72
|
+
const concurrency = yield* resolveConcurrencyLimit();
|
|
73
|
+
return yield* Stream.runDrain(
|
|
74
|
+
stream.pipe(
|
|
75
|
+
Stream.mapEffect(
|
|
76
|
+
(payload) => runAsFlowOp(
|
|
77
|
+
"flow.runParallel",
|
|
78
|
+
payload,
|
|
79
|
+
runEffect(eff)(payload),
|
|
80
|
+
options
|
|
81
|
+
),
|
|
82
|
+
{ concurrency }
|
|
83
|
+
)
|
|
84
|
+
)
|
|
85
|
+
).pipe(
|
|
86
|
+
Effect.catchAllCause(
|
|
87
|
+
(cause) => record({
|
|
88
|
+
type: "diagnostic",
|
|
89
|
+
moduleId: scope.moduleId,
|
|
90
|
+
instanceId: scope.instanceId,
|
|
91
|
+
code: "flow::unhandled_failure",
|
|
92
|
+
severity: "error",
|
|
93
|
+
message: "Flow watcher (runParallel) failed with an unhandled error.",
|
|
94
|
+
hint: "\u5728 watcher \u5185\u663E\u5F0F\u5904\u7406\u9519\u8BEF\uFF08catch/catchAll\uFF09\u6216\u7528 TaskRunner \u7684 failure \u5199\u56DE\uFF1B\u907F\u514D silent failure\u3002",
|
|
95
|
+
kind: "flow_unhandled_failure",
|
|
96
|
+
trigger: {
|
|
97
|
+
kind: "flow",
|
|
98
|
+
name: "runParallel"
|
|
99
|
+
}
|
|
100
|
+
}).pipe(Effect.zipRight(Effect.failCause(cause)))
|
|
101
|
+
)
|
|
102
|
+
);
|
|
103
|
+
});
|
|
104
|
+
return {
|
|
105
|
+
fromAction: (predicate) => runtime.actions$.pipe(Stream.filter(predicate)),
|
|
106
|
+
fromState: (selector) => runtime.changes(selector),
|
|
107
|
+
debounce: (ms) => (stream) => Stream.debounce(stream, ms),
|
|
108
|
+
throttle: (ms) => (stream) => Stream.throttle(stream, {
|
|
109
|
+
cost: () => 1,
|
|
110
|
+
units: 1,
|
|
111
|
+
duration: ms,
|
|
112
|
+
strategy: "enforce"
|
|
113
|
+
}),
|
|
114
|
+
filter: (predicate) => (stream) => Stream.filter(stream, predicate),
|
|
115
|
+
run: (eff, options) => (stream) => runStreamSequential(eff, options)(stream),
|
|
116
|
+
runParallel: (eff, options) => (stream) => runStreamParallel(eff, options)(stream),
|
|
117
|
+
runLatest: (eff, options) => (stream) => Stream.runDrain(
|
|
118
|
+
Stream.map(
|
|
119
|
+
stream,
|
|
120
|
+
(payload) => runAsFlowOp(
|
|
121
|
+
"flow.runLatest",
|
|
122
|
+
payload,
|
|
123
|
+
runEffect(eff)(payload),
|
|
124
|
+
options
|
|
125
|
+
)
|
|
126
|
+
).pipe(
|
|
127
|
+
Stream.flatMap((effect) => Stream.fromEffect(effect), {
|
|
128
|
+
switch: true
|
|
129
|
+
})
|
|
130
|
+
)
|
|
131
|
+
),
|
|
132
|
+
runExhaust: (eff, options) => (stream) => Effect.gen(function* () {
|
|
133
|
+
const concurrency = yield* resolveConcurrencyLimit();
|
|
134
|
+
const busyRef = yield* Ref.make(false);
|
|
135
|
+
const mapper = (payload) => Effect.gen(function* () {
|
|
136
|
+
const acquired = yield* Ref.modify(
|
|
137
|
+
busyRef,
|
|
138
|
+
(busy) => busy ? [false, busy] : [true, true]
|
|
139
|
+
);
|
|
140
|
+
if (!acquired) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
try {
|
|
144
|
+
yield* runAsFlowOp(
|
|
145
|
+
"flow.runExhaust",
|
|
146
|
+
payload,
|
|
147
|
+
runEffect(eff)(payload),
|
|
148
|
+
options
|
|
149
|
+
);
|
|
150
|
+
} finally {
|
|
151
|
+
yield* Ref.set(busyRef, false);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
return yield* Stream.runDrain(
|
|
155
|
+
stream.pipe(
|
|
156
|
+
Stream.mapEffect(mapper, { concurrency })
|
|
157
|
+
)
|
|
158
|
+
);
|
|
159
|
+
})
|
|
160
|
+
};
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
export {
|
|
164
|
+
make2 as make
|
|
165
|
+
};
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vbG9naXgtY29yZS9zcmMvaW50ZXJuYWwvcnVudGltZS9jb3JlL0Zsb3dSdW50aW1lLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBFZmZlY3QsIFN0cmVhbSwgUmVmLCBPcHRpb24gfSBmcm9tIFwiZWZmZWN0XCJcbmltcG9ydCB0eXBlIHtcbiAgQW55TW9kdWxlU2hhcGUsXG4gIE1vZHVsZVJ1bnRpbWUsXG4gIFN0YXRlT2YsXG4gIEFjdGlvbk9mLFxuICBNb2R1bGVTaGFwZSxcbn0gZnJvbSBcIi4vbW9kdWxlLmpzXCJcbmltcG9ydCB0eXBlICogYXMgTG9naWMgZnJvbSBcIi4vTG9naWNNaWRkbGV3YXJlLmpzXCJcbmltcG9ydCAqIGFzIEVmZmVjdE9wIGZyb20gXCIuLi8uLi8uLi9FZmZlY3RPcC5qc1wiXG5pbXBvcnQgKiBhcyBFZmZlY3RPcENvcmUgZnJvbSBcIi4uL0VmZmVjdE9wQ29yZS5qc1wiXG5pbXBvcnQgeyBSdW5TZXNzaW9uVGFnIH0gZnJvbSBcIi4uLy4uL29ic2VydmFiaWxpdHkvcnVuU2Vzc2lvbi5qc1wiXG5pbXBvcnQgdHlwZSB7IFJ1bnRpbWVJbnRlcm5hbHMgfSBmcm9tIFwiLi9SdW50aW1lSW50ZXJuYWxzLmpzXCJcbmltcG9ydCAqIGFzIERlYnVnIGZyb20gXCIuL0RlYnVnU2luay5qc1wiXG5cbmNvbnN0IGdldE1pZGRsZXdhcmVTdGFjayA9ICgpOiBFZmZlY3QuRWZmZWN0PFxuICBFZmZlY3RPcC5NaWRkbGV3YXJlU3RhY2ssXG4gIG5ldmVyLFxuICBhbnlcbj4gPT5cbiAgRWZmZWN0LnNlcnZpY2VPcHRpb24oRWZmZWN0T3BDb3JlLkVmZmVjdE9wTWlkZGxld2FyZVRhZykucGlwZShcbiAgICBFZmZlY3QubWFwKChtYXliZSkgPT4gKE9wdGlvbi5pc1NvbWUobWF5YmUpID8gbWF5YmUudmFsdWUuc3RhY2sgOiBbXSkpLFxuICApXG5cbmNvbnN0IGdldFJ1bnRpbWVTY29wZSA9IChcbiAgcnVudGltZTogdW5rbm93bixcbik6IHsgcmVhZG9ubHkgbW9kdWxlSWQ/OiBzdHJpbmc7IHJlYWRvbmx5IGluc3RhbmNlSWQ/OiBzdHJpbmcgfSA9PiB7XG4gIGlmICghcnVudGltZSkgcmV0dXJuIHt9XG4gIGlmICh0eXBlb2YgcnVudGltZSAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgcnVudGltZSAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4ge31cbiAgY29uc3Qgc2NvcGUgPSBydW50aW1lIGFzIHsgcmVhZG9ubHkgbW9kdWxlSWQ/OiB1bmtub3duOyByZWFkb25seSBpbnN0YW5jZUlkPzogdW5rbm93biB9XG4gIHJldHVybiB7XG4gICAgbW9kdWxlSWQ6IHR5cGVvZiBzY29wZS5tb2R1bGVJZCA9PT0gXCJzdHJpbmdcIiA/IHNjb3BlLm1vZHVsZUlkIDogdW5kZWZpbmVkLFxuICAgIGluc3RhbmNlSWQ6IHR5cGVvZiBzY29wZS5pbnN0YW5jZUlkID09PSBcInN0cmluZ1wiID8gc2NvcGUuaW5zdGFuY2VJZCA6IHVuZGVmaW5lZCxcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwaTxTaCBleHRlbmRzIE1vZHVsZVNoYXBlPGFueSwgYW55PiwgUiA9IG5ldmVyPiB7XG4gIHJlYWRvbmx5IGZyb21BY3Rpb246IDxUIGV4dGVuZHMgQWN0aW9uT2Y8U2g+PihcbiAgICBwcmVkaWNhdGU6IChhOiBBY3Rpb25PZjxTaD4pID0+IGEgaXMgVFxuICApID0+IFN0cmVhbS5TdHJlYW08VD5cblxuICByZWFkb25seSBmcm9tU3RhdGU6IDxWPihcbiAgICBzZWxlY3RvcjogKHM6IFN0YXRlT2Y8U2g+KSA9PiBWXG4gICkgPT4gU3RyZWFtLlN0cmVhbTxWPlxuXG4gIHJlYWRvbmx5IGRlYm91bmNlOiA8Vj4oXG4gICAgbXM6IG51bWJlclxuICApID0+IChzdHJlYW06IFN0cmVhbS5TdHJlYW08Vj4pID0+IFN0cmVhbS5TdHJlYW08Vj5cblxuICByZWFkb25seSB0aHJvdHRsZTogPFY+KFxuICAgIG1zOiBudW1iZXJcbiAgKSA9PiAoc3RyZWFtOiBTdHJlYW0uU3RyZWFtPFY+KSA9PiBTdHJlYW0uU3RyZWFtPFY+XG5cbiAgcmVhZG9ubHkgZmlsdGVyOiA8Vj4oXG4gICAgcHJlZGljYXRlOiAodmFsdWU6IFYpID0+IGJvb2xlYW5cbiAgKSA9PiAoc3RyZWFtOiBTdHJlYW0uU3RyZWFtPFY+KSA9PiBTdHJlYW0uU3RyZWFtPFY+XG5cbiAgcmVhZG9ubHkgcnVuOiA8ViwgQSA9IHZvaWQsIEUgPSBuZXZlciwgUjIgPSB1bmtub3duPihcbiAgICBlZmY6XG4gICAgICB8IExvZ2ljLk9mPFNoLCBSICYgUjIsIEEsIEU+XG4gICAgICB8ICgocGF5bG9hZDogVikgPT4gTG9naWMuT2Y8U2gsIFIgJiBSMiwgQSwgRT4pLFxuICAgIG9wdGlvbnM/OiBMb2dpYy5PcGVyYXRpb25PcHRpb25zLFxuICApID0+IChzdHJlYW06IFN0cmVhbS5TdHJlYW08Vj4pID0+IEVmZmVjdC5FZmZlY3Q8dm9pZCwgRSwgTG9naWMuRW52PFNoLCBSICYgUjI+PlxuXG4gIHJlYWRvbmx5IHJ1blBhcmFsbGVsOiA8ViwgQSA9IHZvaWQsIEUgPSBuZXZlciwgUjIgPSB1bmtub3duPihcbiAgICBlZmY6XG4gICAgICB8IExvZ2ljLk9mPFNoLCBSICYgUjIsIEEsIEU+XG4gICAgICB8ICgocGF5bG9hZDogVikgPT4gTG9naWMuT2Y8U2gsIFIgJiBSMiwgQSwgRT4pLFxuICAgIG9wdGlvbnM/OiBMb2dpYy5PcGVyYXRpb25PcHRpb25zLFxuICApID0+IChzdHJlYW06IFN0cmVhbS5TdHJlYW08Vj4pID0+IEVmZmVjdC5FZmZlY3Q8dm9pZCwgRSwgTG9naWMuRW52PFNoLCBSICYgUjI+PlxuXG4gIHJlYWRvbmx5IHJ1bkxhdGVzdDogPFYsIEEgPSB2b2lkLCBFID0gbmV2ZXIsIFIyID0gdW5rbm93bj4oXG4gICAgZWZmOlxuICAgICAgfCBMb2dpYy5PZjxTaCwgUiAmIFIyLCBBLCBFPlxuICAgICAgfCAoKHBheWxvYWQ6IFYpID0+IExvZ2ljLk9mPFNoLCBSICYgUjIsIEEsIEU+KSxcbiAgICBvcHRpb25zPzogTG9naWMuT3BlcmF0aW9uT3B0aW9ucyxcbiAgKSA9PiAoc3RyZWFtOiBTdHJlYW0uU3RyZWFtPFY+KSA9PiBFZmZlY3QuRWZmZWN0PHZvaWQsIEUsIExvZ2ljLkVudjxTaCwgUiAmIFIyPj5cblxuICByZWFkb25seSBydW5FeGhhdXN0OiA8ViwgQSA9IHZvaWQsIEUgPSBuZXZlciwgUjIgPSB1bmtub3duPihcbiAgICBlZmY6XG4gICAgICB8IExvZ2ljLk9mPFNoLCBSICYgUjIsIEEsIEU+XG4gICAgICB8ICgocGF5bG9hZDogVikgPT4gTG9naWMuT2Y8U2gsIFIgJiBSMiwgQSwgRT4pLFxuICAgIG9wdGlvbnM/OiBMb2dpYy5PcGVyYXRpb25PcHRpb25zLFxuICApID0+IChzdHJlYW06IFN0cmVhbS5TdHJlYW08Vj4pID0+IEVmZmVjdC5FZmZlY3Q8dm9pZCwgRSwgTG9naWMuRW52PFNoLCBSICYgUjI+PlxufVxuXG5jb25zdCByZXNvbHZlRWZmZWN0ID0gPFQsIFNoIGV4dGVuZHMgQW55TW9kdWxlU2hhcGUsIFIsIEEsIEU+KFxuICBlZmY6XG4gICAgfCBMb2dpYy5PZjxTaCwgUiwgQSwgRT5cbiAgICB8ICgocGF5bG9hZDogVCkgPT4gTG9naWMuT2Y8U2gsIFIsIEEsIEU+KSxcbiAgcGF5bG9hZDogVFxuKTogTG9naWMuT2Y8U2gsIFIsIEEsIEU+ID0+XG4gIHR5cGVvZiBlZmYgPT09IFwiZnVuY3Rpb25cIlxuICAgID8gKGVmZiBhcyAocDogVCkgPT4gTG9naWMuT2Y8U2gsIFIsIEEsIEU+KShwYXlsb2FkKVxuICAgIDogZWZmXG5cbmV4cG9ydCBjb25zdCBtYWtlID0gPFNoIGV4dGVuZHMgQW55TW9kdWxlU2hhcGUsIFIgPSBuZXZlcj4oXG4gIHJ1bnRpbWU6IE1vZHVsZVJ1bnRpbWU8U3RhdGVPZjxTaD4sIEFjdGlvbk9mPFNoPj4sXG4gIHJ1bnRpbWVJbnRlcm5hbHM/OiBSdW50aW1lSW50ZXJuYWxzLFxuKTogQXBpPFNoLCBSPiA9PiB7XG4gIGNvbnN0IHNjb3BlID0gZ2V0UnVudGltZVNjb3BlKHJ1bnRpbWUpXG4gIGNvbnN0IHJlc29sdmVDb25jdXJyZW5jeUxpbWl0ID0gKCk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbnVtYmVyIHwgXCJ1bmJvdW5kZWRcIixcbiAgICBuZXZlcixcbiAgICBhbnlcbiAgPiA9PlxuICAgIHJ1bnRpbWVJbnRlcm5hbHNcbiAgICAgID8gcnVudGltZUludGVybmFscy5jb25jdXJyZW5jeS5yZXNvbHZlQ29uY3VycmVuY3lQb2xpY3koKS5waXBlKFxuICAgICAgICAgIEVmZmVjdC5tYXAoKHApID0+IHAuY29uY3VycmVuY3lMaW1pdCksXG4gICAgICAgIClcbiAgICAgIDogRWZmZWN0LnN1Y2NlZWQoMTYpXG5cbiAgY29uc3QgcnVuQXNGbG93T3AgPSA8QSwgRSwgUjIsIFY+KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBWLFxuICAgIGVmZjogRWZmZWN0LkVmZmVjdDxBLCBFLCBMb2dpYy5FbnY8U2gsIFIgJiBSMj4+LFxuICAgIG9wdGlvbnM/OiBMb2dpYy5PcGVyYXRpb25PcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PEEsIEUsIExvZ2ljLkVudjxTaCwgUiAmIFIyPj4gPT5cbiAgICBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoKSB7XG4gICAgICBjb25zdCBzdGFjayA9IHlpZWxkKiBnZXRNaWRkbGV3YXJlU3RhY2soKVxuICAgICAgY29uc3QgbWV0YTogYW55ID0ge1xuICAgICAgICAuLi4ob3B0aW9ucz8ubWV0YSA/PyB7fSksXG4gICAgICAgIHBvbGljeTogb3B0aW9ucz8ucG9saWN5LFxuICAgICAgICB0YWdzOiBvcHRpb25zPy50YWdzLFxuICAgICAgICB0cmFjZTogb3B0aW9ucz8udHJhY2UsXG4gICAgICAgIG1vZHVsZUlkOiBzY29wZS5tb2R1bGVJZCxcbiAgICAgICAgaW5zdGFuY2VJZDogc2NvcGUuaW5zdGFuY2VJZCxcbiAgICAgIH1cblxuICAgICAgaWYgKCEodHlwZW9mIG1ldGEub3BTZXEgPT09IFwibnVtYmVyXCIgJiYgTnVtYmVyLmlzRmluaXRlKG1ldGEub3BTZXEpKSkge1xuICAgICAgICBjb25zdCBzZXNzaW9uT3B0ID0geWllbGQqIEVmZmVjdC5zZXJ2aWNlT3B0aW9uKFJ1blNlc3Npb25UYWcpXG4gICAgICAgIGlmIChPcHRpb24uaXNTb21lKHNlc3Npb25PcHQpKSB7XG4gICAgICAgICAgY29uc3Qga2V5ID0gbWV0YS5pbnN0YW5jZUlkID8/IFwiZ2xvYmFsXCJcbiAgICAgICAgICBtZXRhLm9wU2VxID0gc2Vzc2lvbk9wdC52YWx1ZS5sb2NhbC5uZXh0U2VxKFwib3BTZXFcIiwga2V5KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9wID0gRWZmZWN0T3AubWFrZTxBLCBFLCBhbnk+KHtcbiAgICAgICAga2luZDogXCJmbG93XCIsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIGVmZmVjdDogZWZmIGFzIGFueSxcbiAgICAgICAgbWV0YSxcbiAgICAgIH0pXG4gICAgICByZXR1cm4geWllbGQqIEVmZmVjdE9wLnJ1bihvcCwgc3RhY2spXG4gICAgfSkgYXMgYW55XG5cbiAgY29uc3QgcnVuRWZmZWN0ID1cbiAgICA8VCwgQSwgRSwgUjI+KFxuICAgICAgZWZmOlxuICAgICAgICB8IExvZ2ljLk9mPFNoLCBSICYgUjIsIEEsIEU+XG4gICAgICAgIHwgKChwYXlsb2FkOiBUKSA9PiBMb2dpYy5PZjxTaCwgUiAmIFIyLCBBLCBFPilcbiAgICApID0+XG4gICAgICAocGF5bG9hZDogVCkgPT5cbiAgICAgICAgcmVzb2x2ZUVmZmVjdDxULCBTaCwgUiAmIFIyLCBBLCBFPihlZmYsIHBheWxvYWQpXG5cbiAgY29uc3QgcnVuU3RyZWFtU2VxdWVudGlhbCA9IDxULCBBLCBFLCBSMj4oXG4gICAgZWZmOlxuICAgICAgfCBMb2dpYy5PZjxTaCwgUiAmIFIyLCBBLCBFPlxuICAgICAgfCAoKHBheWxvYWQ6IFQpID0+IExvZ2ljLk9mPFNoLCBSICYgUjIsIEEsIEU+KSxcbiAgICBvcHRpb25zPzogTG9naWMuT3BlcmF0aW9uT3B0aW9ucyxcbiAgKSA9PiAoc3RyZWFtOiBTdHJlYW0uU3RyZWFtPFQ+KTogRWZmZWN0LkVmZmVjdDx2b2lkLCBFLCBMb2dpYy5FbnY8U2gsIFIgJiBSMj4+ID0+XG4gICAgU3RyZWFtLnJ1bkZvckVhY2goc3RyZWFtLCAocGF5bG9hZCkgPT5cbiAgICAgIHJ1bkFzRmxvd09wPEEsIEUsIFIyLCBUPihcbiAgICAgICAgXCJmbG93LnJ1blwiLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgICBydW5FZmZlY3Q8VCwgQSwgRSwgUjI+KGVmZikocGF5bG9hZCksXG4gICAgICAgIG9wdGlvbnMsXG4gICAgICApLFxuICAgIClcblxuICBjb25zdCBydW5TdHJlYW1QYXJhbGxlbCA9IDxULCBBLCBFLCBSMj4oXG4gICAgZWZmOlxuICAgICAgfCBMb2dpYy5PZjxTaCwgUiAmIFIyLCBBLCBFPlxuICAgICAgfCAoKHBheWxvYWQ6IFQpID0+IExvZ2ljLk9mPFNoLCBSICYgUjIsIEEsIEU+KSxcbiAgICBvcHRpb25zPzogTG9naWMuT3BlcmF0aW9uT3B0aW9ucyxcbiAgKSA9PiAoc3RyZWFtOiBTdHJlYW0uU3RyZWFtPFQ+KTogRWZmZWN0LkVmZmVjdDx2b2lkLCBFLCBMb2dpYy5FbnY8U2gsIFIgJiBSMj4+ID0+XG4gICAgRWZmZWN0LmdlbihmdW5jdGlvbiogKCkge1xuICAgICAgY29uc3QgY29uY3VycmVuY3kgPSB5aWVsZCogcmVzb2x2ZUNvbmN1cnJlbmN5TGltaXQoKVxuXG4gICAgICByZXR1cm4geWllbGQqIFN0cmVhbS5ydW5EcmFpbihcbiAgICAgICAgc3RyZWFtLnBpcGUoXG4gICAgICAgICAgU3RyZWFtLm1hcEVmZmVjdChcbiAgICAgICAgICAgIChwYXlsb2FkKSA9PlxuICAgICAgICAgICAgICBydW5Bc0Zsb3dPcDxBLCBFLCBSMiwgVD4oXG4gICAgICAgICAgICAgICAgXCJmbG93LnJ1blBhcmFsbGVsXCIsXG4gICAgICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgICAgICBydW5FZmZlY3Q8VCwgQSwgRSwgUjI+KGVmZikocGF5bG9hZCksXG4gICAgICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHsgY29uY3VycmVuY3kgfSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKS5waXBlKFxuICAgICAgICBFZmZlY3QuY2F0Y2hBbGxDYXVzZSgoY2F1c2UpID0+XG4gICAgICAgICAgRGVidWcucmVjb3JkKHtcbiAgICAgICAgICAgIHR5cGU6IFwiZGlhZ25vc3RpY1wiLFxuICAgICAgICAgICAgbW9kdWxlSWQ6IHNjb3BlLm1vZHVsZUlkLFxuICAgICAgICAgICAgaW5zdGFuY2VJZDogc2NvcGUuaW5zdGFuY2VJZCxcbiAgICAgICAgICAgIGNvZGU6IFwiZmxvdzo6dW5oYW5kbGVkX2ZhaWx1cmVcIixcbiAgICAgICAgICAgIHNldmVyaXR5OiBcImVycm9yXCIsXG4gICAgICAgICAgICBtZXNzYWdlOiBcIkZsb3cgd2F0Y2hlciAocnVuUGFyYWxsZWwpIGZhaWxlZCB3aXRoIGFuIHVuaGFuZGxlZCBlcnJvci5cIixcbiAgICAgICAgICAgIGhpbnQ6XG4gICAgICAgICAgICAgIFwiXHU1NzI4IHdhdGNoZXIgXHU1MTg1XHU2NjNFXHU1RjBGXHU1OTA0XHU3NDA2XHU5NTE5XHU4QkVGXHVGRjA4Y2F0Y2gvY2F0Y2hBbGxcdUZGMDlcdTYyMTZcdTc1MjggVGFza1J1bm5lciBcdTc2ODQgZmFpbHVyZSBcdTUxOTlcdTU2REVcdUZGMUJcdTkwN0ZcdTUxNEQgc2lsZW50IGZhaWx1cmVcdTMwMDJcIixcbiAgICAgICAgICAgIGtpbmQ6IFwiZmxvd191bmhhbmRsZWRfZmFpbHVyZVwiLFxuICAgICAgICAgICAgdHJpZ2dlcjoge1xuICAgICAgICAgICAgICBraW5kOiBcImZsb3dcIixcbiAgICAgICAgICAgICAgbmFtZTogXCJydW5QYXJhbGxlbFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KS5waXBlKEVmZmVjdC56aXBSaWdodChFZmZlY3QuZmFpbENhdXNlKGNhdXNlKSkpLFxuICAgICAgICApLFxuICAgICAgKVxuICAgIH0pIGFzIGFueVxuXG4gIHJldHVybiB7XG4gICAgZnJvbUFjdGlvbjogPFQgZXh0ZW5kcyBBY3Rpb25PZjxTaD4+KFxuICAgICAgcHJlZGljYXRlOiAoYTogQWN0aW9uT2Y8U2g+KSA9PiBhIGlzIFRcbiAgICApID0+IHJ1bnRpbWUuYWN0aW9ucyQucGlwZShTdHJlYW0uZmlsdGVyKHByZWRpY2F0ZSkpLFxuXG4gICAgZnJvbVN0YXRlOiA8Vj4oc2VsZWN0b3I6IChzOiBTdGF0ZU9mPFNoPikgPT4gVikgPT5cbiAgICAgIHJ1bnRpbWUuY2hhbmdlcyhzZWxlY3RvciksXG5cbiAgICBkZWJvdW5jZTogKG1zOiBudW1iZXIpID0+IChzdHJlYW0pID0+IFN0cmVhbS5kZWJvdW5jZShzdHJlYW0sIG1zKSxcblxuICAgIHRocm90dGxlOiAobXM6IG51bWJlcikgPT4gKHN0cmVhbSkgPT5cbiAgICAgIFN0cmVhbS50aHJvdHRsZShzdHJlYW0sIHtcbiAgICAgICAgY29zdDogKCkgPT4gMSxcbiAgICAgICAgdW5pdHM6IDEsXG4gICAgICAgIGR1cmF0aW9uOiBtcyxcbiAgICAgICAgc3RyYXRlZ3k6IFwiZW5mb3JjZVwiLFxuICAgICAgfSksXG5cbiAgICBmaWx0ZXI6IChwcmVkaWNhdGU6ICh2YWx1ZTogYW55KSA9PiBib29sZWFuKSA9PiAoc3RyZWFtKSA9PlxuICAgICAgU3RyZWFtLmZpbHRlcihzdHJlYW0sIHByZWRpY2F0ZSksXG5cbiAgICBydW46IChlZmYsIG9wdGlvbnMpID0+IChzdHJlYW0pID0+XG4gICAgICBydW5TdHJlYW1TZXF1ZW50aWFsPGFueSwgYW55LCBhbnksIGFueT4oZWZmLCBvcHRpb25zKShzdHJlYW0pLFxuXG4gICAgcnVuUGFyYWxsZWw6IChlZmYsIG9wdGlvbnMpID0+IChzdHJlYW0pID0+XG4gICAgICBydW5TdHJlYW1QYXJhbGxlbDxhbnksIGFueSwgYW55LCBhbnk+KGVmZiwgb3B0aW9ucykoc3RyZWFtKSxcblxuICAgIHJ1bkxhdGVzdDogKGVmZiwgb3B0aW9ucykgPT4gKHN0cmVhbSkgPT5cbiAgICAgIFN0cmVhbS5ydW5EcmFpbihcbiAgICAgICAgU3RyZWFtLm1hcChzdHJlYW0sIChwYXlsb2FkKSA9PlxuICAgICAgICAgIHJ1bkFzRmxvd09wPGFueSwgYW55LCBhbnksIGFueT4oXG4gICAgICAgICAgICBcImZsb3cucnVuTGF0ZXN0XCIsXG4gICAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICAgICAgcnVuRWZmZWN0PGFueSwgYW55LCBhbnksIGFueT4oZWZmKShwYXlsb2FkKSxcbiAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgKVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgU3RyZWFtLmZsYXRNYXAoKGVmZmVjdCkgPT4gU3RyZWFtLmZyb21FZmZlY3QoZWZmZWN0KSwge1xuICAgICAgICAgICAgc3dpdGNoOiB0cnVlLFxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICksXG5cbiAgICBydW5FeGhhdXN0OiAoZWZmLCBvcHRpb25zKSA9PiAoc3RyZWFtKSA9PlxuICAgICAgRWZmZWN0LmdlbihmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBjb25jdXJyZW5jeSA9IHlpZWxkKiByZXNvbHZlQ29uY3VycmVuY3lMaW1pdCgpXG4gICAgICAgIGNvbnN0IGJ1c3lSZWYgPSB5aWVsZCogUmVmLm1ha2UoZmFsc2UpXG4gICAgICAgIGNvbnN0IG1hcHBlciA9IChwYXlsb2FkOiBhbnkpID0+XG4gICAgICAgICAgRWZmZWN0LmdlbihmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgYWNxdWlyZWQgPSB5aWVsZCogUmVmLm1vZGlmeShidXN5UmVmLCAoYnVzeSkgPT5cbiAgICAgICAgICAgICAgYnVzeSA/IChbZmFsc2UsIGJ1c3ldIGFzIGNvbnN0KSA6IChbdHJ1ZSwgdHJ1ZV0gYXMgY29uc3QpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAoIWFjcXVpcmVkKSB7XG4gICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgeWllbGQqIHJ1bkFzRmxvd09wPGFueSwgYW55LCBhbnksIGFueT4oXG4gICAgICAgICAgICAgICAgXCJmbG93LnJ1bkV4aGF1c3RcIixcbiAgICAgICAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICAgICAgICAgIHJ1bkVmZmVjdDxhbnksIGFueSwgYW55LCBhbnk+KGVmZikocGF5bG9hZCksXG4gICAgICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgeWllbGQqIFJlZi5zZXQoYnVzeVJlZiwgZmFsc2UpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4geWllbGQqIFN0cmVhbS5ydW5EcmFpbihcbiAgICAgICAgICBzdHJlYW0ucGlwZShcbiAgICAgICAgICAgIFN0cmVhbS5tYXBFZmZlY3QobWFwcGVyLCB7IGNvbmN1cnJlbmN5IH0pXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9KSxcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBUyxRQUFRLFFBQVEsS0FBSyxjQUFjO0FBZTVDLElBQU0scUJBQXFCLE1BS3pCLE9BQU8sY0FBMkIscUJBQXFCLEVBQUU7QUFBQSxFQUN2RCxPQUFPLElBQUksQ0FBQyxVQUFXLE9BQU8sT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLFFBQVEsQ0FBQyxDQUFFO0FBQ3ZFO0FBRUYsSUFBTSxrQkFBa0IsQ0FDdEIsWUFDaUU7QUFDakUsTUFBSSxDQUFDLFFBQVMsUUFBTyxDQUFD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
|