@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,81 @@
|
|
|
1
|
+
// @logix/core subpath bundles for @logix/sandbox
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
isJsonValue
|
|
5
|
+
} from "./chunk-RYSSJBGX.js";
|
|
6
|
+
|
|
7
|
+
// ../logix-core/src/internal/observability/evidence.ts
|
|
8
|
+
var OBSERVABILITY_PROTOCOL_VERSION = "v1";
|
|
9
|
+
var isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
10
|
+
var asNonEmptyString = (value) => typeof value === "string" && value.length > 0 ? value : void 0;
|
|
11
|
+
var asFiniteNumber = (value) => typeof value === "number" && Number.isFinite(value) ? value : void 0;
|
|
12
|
+
var asPositiveInt = (value) => {
|
|
13
|
+
if (typeof value !== "number" || !Number.isFinite(value)) return void 0;
|
|
14
|
+
const n = Math.floor(value);
|
|
15
|
+
return n >= 1 ? n : void 0;
|
|
16
|
+
};
|
|
17
|
+
var exportEvidencePackage = (options) => {
|
|
18
|
+
const protocolVersion = options.protocolVersion ?? OBSERVABILITY_PROTOCOL_VERSION;
|
|
19
|
+
return {
|
|
20
|
+
protocolVersion,
|
|
21
|
+
runId: options.runId,
|
|
22
|
+
createdAt: options.createdAt ?? Date.now(),
|
|
23
|
+
source: options.source,
|
|
24
|
+
events: options.events.slice().sort((a, b) => a.seq - b.seq),
|
|
25
|
+
summary: options.summary
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
var importEvidencePackage = (input) => {
|
|
29
|
+
const fallback = {
|
|
30
|
+
protocolVersion: OBSERVABILITY_PROTOCOL_VERSION,
|
|
31
|
+
runId: "unknown",
|
|
32
|
+
createdAt: Date.now(),
|
|
33
|
+
source: { host: "unknown" },
|
|
34
|
+
events: []
|
|
35
|
+
};
|
|
36
|
+
if (!isRecord(input)) return fallback;
|
|
37
|
+
const protocolVersion = asNonEmptyString(input.protocolVersion) ?? fallback.protocolVersion;
|
|
38
|
+
const runId = asNonEmptyString(input.runId) ?? fallback.runId;
|
|
39
|
+
const createdAt = asFiniteNumber(input.createdAt) ?? fallback.createdAt;
|
|
40
|
+
const sourceRaw = input.source;
|
|
41
|
+
const source = isRecord(sourceRaw) ? {
|
|
42
|
+
host: asNonEmptyString(sourceRaw.host) ?? "unknown",
|
|
43
|
+
label: typeof sourceRaw.label === "string" ? sourceRaw.label : void 0
|
|
44
|
+
} : fallback.source;
|
|
45
|
+
const eventsRaw = Array.isArray(input.events) ? input.events : [];
|
|
46
|
+
const events = [];
|
|
47
|
+
for (const e of eventsRaw) {
|
|
48
|
+
if (!isRecord(e)) continue;
|
|
49
|
+
const seq = asPositiveInt(e.seq);
|
|
50
|
+
const timestamp = asFiniteNumber(e.timestamp);
|
|
51
|
+
const type = asNonEmptyString(e.type);
|
|
52
|
+
const payloadRaw = e.payload;
|
|
53
|
+
if (!seq || timestamp === void 0 || !type || !isJsonValue(payloadRaw)) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
events.push({
|
|
57
|
+
protocolVersion: asNonEmptyString(e.protocolVersion) ?? protocolVersion,
|
|
58
|
+
runId: asNonEmptyString(e.runId) ?? runId,
|
|
59
|
+
seq,
|
|
60
|
+
timestamp,
|
|
61
|
+
type,
|
|
62
|
+
payload: payloadRaw
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
const summary = isJsonValue(input.summary) ? input.summary : void 0;
|
|
66
|
+
return {
|
|
67
|
+
protocolVersion,
|
|
68
|
+
runId,
|
|
69
|
+
createdAt,
|
|
70
|
+
source,
|
|
71
|
+
events: events.sort((a, b) => a.seq - b.seq),
|
|
72
|
+
summary
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export {
|
|
77
|
+
OBSERVABILITY_PROTOCOL_VERSION,
|
|
78
|
+
exportEvidencePackage,
|
|
79
|
+
importEvidencePackage
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vbG9naXgtY29yZS9zcmMvaW50ZXJuYWwvb2JzZXJ2YWJpbGl0eS9ldmlkZW5jZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgaXNKc29uVmFsdWUsIHR5cGUgSnNvblZhbHVlIH0gZnJvbSBcIi4vanNvblZhbHVlLmpzXCJcblxuZXhwb3J0IGNvbnN0IE9CU0VSVkFCSUxJVFlfUFJPVE9DT0xfVkVSU0lPTiA9IFwidjFcIlxuXG5leHBvcnQgaW50ZXJmYWNlIE9ic2VydmF0aW9uRW52ZWxvcGUge1xuICByZWFkb25seSBwcm90b2NvbFZlcnNpb246IHN0cmluZ1xuICByZWFkb25seSBydW5JZDogc3RyaW5nXG4gIHJlYWRvbmx5IHNlcTogbnVtYmVyXG4gIHJlYWRvbmx5IHRpbWVzdGFtcDogbnVtYmVyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZ1xuICByZWFkb25seSBwYXlsb2FkOiBKc29uVmFsdWVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdmlkZW5jZVBhY2thZ2VTb3VyY2Uge1xuICByZWFkb25seSBob3N0OiBzdHJpbmdcbiAgcmVhZG9ubHkgbGFiZWw/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdmlkZW5jZVBhY2thZ2Uge1xuICByZWFkb25seSBwcm90b2NvbFZlcnNpb246IHN0cmluZ1xuICByZWFkb25seSBydW5JZDogc3RyaW5nXG4gIHJlYWRvbmx5IGNyZWF0ZWRBdDogbnVtYmVyXG4gIHJlYWRvbmx5IHNvdXJjZTogRXZpZGVuY2VQYWNrYWdlU291cmNlXG4gIHJlYWRvbmx5IGV2ZW50czogUmVhZG9ubHlBcnJheTxPYnNlcnZhdGlvbkVudmVsb3BlPlxuICByZWFkb25seSBzdW1tYXJ5PzogSnNvblZhbHVlXG59XG5cbmNvbnN0IGlzUmVjb3JkID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT5cbiAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlICE9PSBudWxsICYmICFBcnJheS5pc0FycmF5KHZhbHVlKVxuXG5jb25zdCBhc05vbkVtcHR5U3RyaW5nID0gKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+XG4gIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWx1ZS5sZW5ndGggPiAwID8gdmFsdWUgOiB1bmRlZmluZWRcblxuY29uc3QgYXNGaW5pdGVOdW1iZXIgPSAodmFsdWU6IHVua25vd24pOiBudW1iZXIgfCB1bmRlZmluZWQgPT5cbiAgdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiICYmIE51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZFxuXG5jb25zdCBhc1Bvc2l0aXZlSW50ID0gKHZhbHVlOiB1bmtub3duKTogbnVtYmVyIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJudW1iZXJcIiB8fCAhTnVtYmVyLmlzRmluaXRlKHZhbHVlKSkgcmV0dXJuIHVuZGVmaW5lZFxuICBjb25zdCBuID0gTWF0aC5mbG9vcih2YWx1ZSlcbiAgcmV0dXJuIG4gPj0gMSA/IG4gOiB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGNvbnN0IGV4cG9ydEV2aWRlbmNlUGFja2FnZSA9IChvcHRpb25zOiB7XG4gIHJlYWRvbmx5IHJ1bklkOiBzdHJpbmdcbiAgcmVhZG9ubHkgc291cmNlOiBFdmlkZW5jZVBhY2thZ2VTb3VyY2VcbiAgcmVhZG9ubHkgZXZlbnRzOiBSZWFkb25seUFycmF5PE9ic2VydmF0aW9uRW52ZWxvcGU+XG4gIHJlYWRvbmx5IGNyZWF0ZWRBdD86IG51bWJlclxuICByZWFkb25seSBwcm90b2NvbFZlcnNpb24/OiBzdHJpbmdcbiAgcmVhZG9ubHkgc3VtbWFyeT86IEpzb25WYWx1ZVxufSk6IEV2aWRlbmNlUGFja2FnZSA9PiB7XG4gIGNvbnN0IHByb3RvY29sVmVyc2lvbiA9IG9wdGlvbnMucHJvdG9jb2xWZXJzaW9uID8/IE9CU0VSVkFCSUxJVFlfUFJPVE9DT0xfVkVSU0lPTlxuICByZXR1cm4ge1xuICAgIHByb3RvY29sVmVyc2lvbixcbiAgICBydW5JZDogb3B0aW9ucy5ydW5JZCxcbiAgICBjcmVhdGVkQXQ6IG9wdGlvbnMuY3JlYXRlZEF0ID8/IERhdGUubm93KCksXG4gICAgc291cmNlOiBvcHRpb25zLnNvdXJjZSxcbiAgICBldmVudHM6IG9wdGlvbnMuZXZlbnRzLnNsaWNlKCkuc29ydCgoYSwgYikgPT4gYS5zZXEgLSBiLnNlcSksXG4gICAgc3VtbWFyeTogb3B0aW9ucy5zdW1tYXJ5LFxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBpbXBvcnRFdmlkZW5jZVBhY2thZ2UgPSAoaW5wdXQ6IHVua25vd24pOiBFdmlkZW5jZVBhY2thZ2UgPT4ge1xuICBjb25zdCBmYWxsYmFjazogRXZpZGVuY2VQYWNrYWdlID0ge1xuICAgIHByb3RvY29sVmVyc2lvbjogT0JTRVJWQUJJTElUWV9QUk9UT0NPTF9WRVJTSU9OLFxuICAgIHJ1bklkOiBcInVua25vd25cIixcbiAgICBjcmVhdGVkQXQ6IERhdGUubm93KCksXG4gICAgc291cmNlOiB7IGhvc3Q6IFwidW5rbm93blwiIH0sXG4gICAgZXZlbnRzOiBbXSxcbiAgfVxuXG4gIGlmICghaXNSZWNvcmQoaW5wdXQpKSByZXR1cm4gZmFsbGJhY2tcblxuICBjb25zdCBwcm90b2NvbFZlcnNpb24gPSBhc05vbkVtcHR5U3RyaW5nKGlucHV0LnByb3RvY29sVmVyc2lvbikgPz8gZmFsbGJhY2sucHJvdG9jb2xWZXJzaW9uXG4gIGNvbnN0IHJ1bklkID0gYXNOb25FbXB0eVN0cmluZyhpbnB1dC5ydW5JZCkgPz8gZmFsbGJhY2sucnVuSWRcbiAgY29uc3QgY3JlYXRlZEF0ID0gYXNGaW5pdGVOdW1iZXIoaW5wdXQuY3JlYXRlZEF0KSA/PyBmYWxsYmFjay5jcmVhdGVkQXRcblxuICBjb25zdCBzb3VyY2VSYXcgPSBpbnB1dC5zb3VyY2VcbiAgY29uc3Qgc291cmNlOiBFdmlkZW5jZVBhY2thZ2VTb3VyY2UgPSBpc1JlY29yZChzb3VyY2VSYXcpXG4gICAgPyB7XG4gICAgICAgIGhvc3Q6IGFzTm9uRW1wdHlTdHJpbmcoc291cmNlUmF3Lmhvc3QpID8/IFwidW5rbm93blwiLFxuICAgICAgICBsYWJlbDogdHlwZW9mIHNvdXJjZVJhdy5sYWJlbCA9PT0gXCJzdHJpbmdcIiA/IHNvdXJjZVJhdy5sYWJlbCA6IHVuZGVmaW5lZCxcbiAgICAgIH1cbiAgICA6IGZhbGxiYWNrLnNvdXJjZVxuXG4gIGNvbnN0IGV2ZW50c1JhdyA9IEFycmF5LmlzQXJyYXkoaW5wdXQuZXZlbnRzKSA/IGlucHV0LmV2ZW50cyA6IFtdXG4gIGNvbnN0IGV2ZW50czogT2JzZXJ2YXRpb25FbnZlbG9wZVtdID0gW11cblxuICBmb3IgKGNvbnN0IGUgb2YgZXZlbnRzUmF3KSB7XG4gICAgaWYgKCFpc1JlY29yZChlKSkgY29udGludWVcblxuICAgIGNvbnN0IHNlcSA9IGFzUG9zaXRpdmVJbnQoZS5zZXEpXG4gICAgY29uc3QgdGltZXN0YW1wID0gYXNGaW5pdGVOdW1iZXIoZS50aW1lc3RhbXApXG4gICAgY29uc3QgdHlwZSA9IGFzTm9uRW1wdHlTdHJpbmcoZS50eXBlKVxuICAgIGNvbnN0IHBheWxvYWRSYXcgPSBlLnBheWxvYWRcblxuICAgIGlmICghc2VxIHx8IHRpbWVzdGFtcCA9PT0gdW5kZWZpbmVkIHx8ICF0eXBlIHx8ICFpc0pzb25WYWx1ZShwYXlsb2FkUmF3KSkge1xuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBldmVudHMucHVzaCh7XG4gICAgICBwcm90b2NvbFZlcnNpb246IGFzTm9uRW1wdHlTdHJpbmcoZS5wcm90b2NvbFZlcnNpb24pID8/IHByb3RvY29sVmVyc2lvbixcbiAgICAgIHJ1bklkOiBhc05vbkVtcHR5U3RyaW5nKGUucnVuSWQpID8/IHJ1bklkLFxuICAgICAgc2VxLFxuICAgICAgdGltZXN0YW1wLFxuICAgICAgdHlwZSxcbiAgICAgIHBheWxvYWQ6IHBheWxvYWRSYXcsXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IHN1bW1hcnkgPSBpc0pzb25WYWx1ZShpbnB1dC5zdW1tYXJ5KSA/IGlucHV0LnN1bW1hcnkgOiB1bmRlZmluZWRcblxuICByZXR1cm4ge1xuICAgIHByb3RvY29sVmVyc2lvbixcbiAgICBydW5JZCxcbiAgICBjcmVhdGVkQXQsXG4gICAgc291cmNlLFxuICAgIGV2ZW50czogZXZlbnRzLnNvcnQoKGEsIGIpID0+IGEuc2VxIC0gYi5zZXEpLFxuICAgIHN1bW1hcnksXG4gIH1cbn1cblxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7OztBQUVPLElBQU0saUNBQWlDO0FBeUI5QyxJQUFNLFdBQVcsQ0FBQyxVQUNoQixPQUFPLFVBQVUsWUFBWSxVQUFVLFFBQVEsQ0FBQyxNQUFNLFFBQVEsS0FBSztBQUVyRSxJQUFNLG1CQUFtQixDQUFDLFVBQ3hCLE9BQU8sVUFBVSxZQUFZLE1BQU0sU0FBUyxJQUFJLFFBQVE7QUFFMUQsSUFBTSxpQkFBaUIsQ0FBQyxVQUN0QixPQUFPLFVBQVUsWUFBWSxPQUFPLFNBQVMsS0FBSyxJQUFJLFFBQVE7QUFFaEUsSUFBTSxnQkFBZ0IsQ0FBQyxVQUF1QztBQUM1RCxNQUFJLE9BQU8sVUFBVSxZQUFZLENBQUMsT0FBTyxTQUFTLEtBQUssRUFBRyxRQUFPO0FBQ2pFLFFBQU0sSUFBSSxLQUFLLE1BQU0sS0FBSztBQUMxQixTQUFPLEtBQUssSUFBSSxJQUFJO0FBQ3RCO0FBRU8sSUFBTSx3QkFBd0IsQ0FBQyxZQU9mO0FBQ3JCLFFBQU0sa0JBQWtCLFFBQVEsbUJBQW1CO0FBQ25ELFNBQU87QUFBQSxJQUNMO0FBQUEsSUFDQSxPQUFPLFFBQVE7QUFBQSxJQUNmLFdBQVcsUUFBUSxhQUFhLEtBQUssSUFBSTtBQUFBLElBQ3pDLFFBQVEsUUFBUTtBQUFBLElBQ2hCLFFBQVEsUUFBUSxPQUFPLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUc7QUFBQSxJQUMzRCxTQUFTLFFBQVE7QUFBQSxFQUNuQjtBQUNGO0FBRU8sSUFBTSx3QkFBd0IsQ0FBQyxVQUFvQztBQUN4RSxRQUFNLFdBQTRCO0FBQUEsSUFDaEMsaUJBQWlCO0FBQUEsSUFDakIsT0FBTztBQUFBLElBQ1AsV0FBVyxLQUFLLElBQUk7QUFBQSxJQUNwQixRQUFRLEVBQUUsTUFBTSxVQUFVO0FBQUEsSUFDMUIsUUFBUSxDQUFDO0FBQUEsRUFDWDtBQUVBLE1BQUksQ0FBQyxTQUFTLEtBQUssRUFBRyxRQUFPO0FBRTdCLFFBQU0sa0JBQWtCLGlCQUFpQixNQUFNLGVBQWUsS0FBSyxTQUFTO0FBQzVFLFFBQU0sUUFBUSxpQkFBaUIsTUFBTSxLQUFLLEtBQUssU0FBUztBQUN4RCxRQUFNLFlBQVksZUFBZSxNQUFNLFNBQVMsS0FBSyxTQUFTO0FBRTlELFFBQU0sWUFBWSxNQUFNO0FBQ3hCLFFBQU0sU0FBZ0MsU0FBUyxTQUFTLElBQ3BEO0FBQUEsSUFDRSxNQUFNLGlCQUFpQixVQUFVLElBQUksS0FBSztBQUFBLElBQzFDLE9BQU8sT0FBTyxVQUFVLFVBQVUsV0FBVyxVQUFVLFFBQVE7QUFBQSxFQUNqRSxJQUNBLFNBQVM7QUFFYixRQUFNLFlBQVksTUFBTSxRQUFRLE1BQU0sTUFBTSxJQUFJLE1BQU0sU0FBUyxDQUFDO0FBQ2hFLFFBQU0sU0FBZ0MsQ0FBQztBQUV2QyxhQUFXLEtBQUssV0FBVztBQUN6QixRQUFJLENBQUMsU0FBUyxDQUFDLEVBQUc7QUFFbEIsVUFBTSxNQUFNLGNBQWMsRUFBRSxHQUFHO0FBQy9CLFVBQU0sWUFBWSxlQUFlLEVBQUUsU0FBUztBQUM1QyxVQUFNLE9BQU8saUJBQWlCLEVBQUUsSUFBSTtBQUNwQyxVQUFNLGFBQWEsRUFBRTtBQUVyQixRQUFJLENBQUMsT0FBTyxjQUFjLFVBQWEsQ0FBQyxRQUFRLENBQUMsWUFBWSxVQUFVLEdBQUc7QUFDeEU7QUFBQSxJQUNGO0FBRUEsV0FBTyxLQUFLO0FBQUEsTUFDVixpQkFBaUIsaUJBQWlCLEVBQUUsZUFBZSxLQUFLO0FBQUEsTUFDeEQsT0FBTyxpQkFBaUIsRUFBRSxLQUFLLEtBQUs7QUFBQSxNQUNwQztBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQSxTQUFTO0FBQUEsSUFDWCxDQUFDO0FBQUEsRUFDSDtBQUVBLFFBQU0sVUFBVSxZQUFZLE1BQU0sT0FBTyxJQUFJLE1BQU0sVUFBVTtBQUU3RCxTQUFPO0FBQUEsSUFDTDtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0EsUUFBUSxPQUFPLEtBQUssQ0FBQyxHQUFHLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRztBQUFBLElBQzNDO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// @logix/core subpath bundles for @logix/sandbox
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
isDevEnv
|
|
5
|
+
} from "./chunk-LTFCYZQ6.js";
|
|
6
|
+
|
|
7
|
+
// ../logix-core/src/internal/resource.ts
|
|
8
|
+
import { Context, Layer } from "../effect.js";
|
|
9
|
+
var stableStringify = (value) => {
|
|
10
|
+
const seen = /* @__PURE__ */ new WeakSet();
|
|
11
|
+
const encode = (input) => {
|
|
12
|
+
if (input === null) return null;
|
|
13
|
+
if (typeof input === "string" || typeof input === "number" || typeof input === "boolean") {
|
|
14
|
+
return input;
|
|
15
|
+
}
|
|
16
|
+
if (typeof input === "bigint") return input.toString();
|
|
17
|
+
if (typeof input === "undefined") return "__undefined__";
|
|
18
|
+
if (typeof input === "symbol") return `__symbol__:${String(input)}`;
|
|
19
|
+
if (typeof input === "function") return "__function__";
|
|
20
|
+
if (Array.isArray(input)) {
|
|
21
|
+
return input.map((v) => encode(v));
|
|
22
|
+
}
|
|
23
|
+
if (input instanceof Date) {
|
|
24
|
+
return `__date__:${input.toISOString()}`;
|
|
25
|
+
}
|
|
26
|
+
if (input instanceof Error) {
|
|
27
|
+
return {
|
|
28
|
+
_tag: "Error",
|
|
29
|
+
name: input.name,
|
|
30
|
+
message: input.message
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
if (input && typeof input === "object") {
|
|
34
|
+
const obj = input;
|
|
35
|
+
if (seen.has(obj)) return "__cycle__";
|
|
36
|
+
seen.add(obj);
|
|
37
|
+
const record = input;
|
|
38
|
+
const keys = Object.keys(record).sort();
|
|
39
|
+
const out = {};
|
|
40
|
+
for (const k of keys) {
|
|
41
|
+
out[k] = encode(record[k]);
|
|
42
|
+
}
|
|
43
|
+
return out;
|
|
44
|
+
}
|
|
45
|
+
return String(input);
|
|
46
|
+
};
|
|
47
|
+
try {
|
|
48
|
+
return JSON.stringify(encode(value));
|
|
49
|
+
} catch {
|
|
50
|
+
return String(value);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
var keyHash = (key) => stableStringify(key);
|
|
54
|
+
var Snapshot = {
|
|
55
|
+
idle: () => ({
|
|
56
|
+
status: "idle",
|
|
57
|
+
keyHash: void 0,
|
|
58
|
+
data: void 0,
|
|
59
|
+
error: void 0
|
|
60
|
+
}),
|
|
61
|
+
loading: (params) => ({
|
|
62
|
+
status: "loading",
|
|
63
|
+
keyHash: params.keyHash,
|
|
64
|
+
data: void 0,
|
|
65
|
+
error: void 0
|
|
66
|
+
}),
|
|
67
|
+
success: (params) => ({
|
|
68
|
+
status: "success",
|
|
69
|
+
keyHash: params.keyHash,
|
|
70
|
+
data: params.data,
|
|
71
|
+
error: void 0
|
|
72
|
+
}),
|
|
73
|
+
error: (params) => ({
|
|
74
|
+
status: "error",
|
|
75
|
+
keyHash: params.keyHash,
|
|
76
|
+
data: void 0,
|
|
77
|
+
error: params.error
|
|
78
|
+
})
|
|
79
|
+
};
|
|
80
|
+
var ResourceRegistryTag = class extends Context.Tag("@logix/core/ResourceRegistry")() {
|
|
81
|
+
};
|
|
82
|
+
var internal = {
|
|
83
|
+
ResourceRegistryTag
|
|
84
|
+
};
|
|
85
|
+
var make = (spec) => spec;
|
|
86
|
+
var layer = (specs) => Layer.succeed(
|
|
87
|
+
ResourceRegistryTag,
|
|
88
|
+
(() => {
|
|
89
|
+
const map = /* @__PURE__ */ new Map();
|
|
90
|
+
for (const spec of specs) {
|
|
91
|
+
if (isDevEnv() && map.has(spec.id) && map.get(spec.id) !== spec) {
|
|
92
|
+
throw new Error(`[Resource.layer] Duplicate resource id "${spec.id}" detected in the same runtime scope`);
|
|
93
|
+
}
|
|
94
|
+
map.set(spec.id, spec);
|
|
95
|
+
}
|
|
96
|
+
return { specs: map };
|
|
97
|
+
})()
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
export {
|
|
101
|
+
keyHash,
|
|
102
|
+
Snapshot,
|
|
103
|
+
ResourceRegistryTag,
|
|
104
|
+
internal,
|
|
105
|
+
make,
|
|
106
|
+
layer
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vbG9naXgtY29yZS9zcmMvaW50ZXJuYWwvcmVzb3VyY2UudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IENvbnRleHQsIExheWVyIH0gZnJvbSAnZWZmZWN0J1xuaW1wb3J0IHsgaXNEZXZFbnYgfSBmcm9tICcuL3J1bnRpbWUvY29yZS9lbnYuanMnXG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VTcGVjPEtleSwgT3V0LCBFcnIsIEVudj4ge1xuICByZWFkb25seSBpZDogc3RyaW5nXG4gIHJlYWRvbmx5IGtleVNjaGVtYTogaW1wb3J0KCdlZmZlY3QnKS5TY2hlbWEuU2NoZW1hPEtleSwgYW55PlxuICByZWFkb25seSBsb2FkOiAoa2V5OiBLZXkpID0+IGltcG9ydCgnZWZmZWN0JykuRWZmZWN0LkVmZmVjdDxPdXQsIEVyciwgRW52PlxuICByZWFkb25seSBtZXRhPzoge1xuICAgIHJlYWRvbmx5IGNhY2hlR3JvdXA/OiBzdHJpbmdcbiAgICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICAgIHJlYWRvbmx5IFtrOiBzdHJpbmddOiB1bmtub3duXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQW55UmVzb3VyY2VTcGVjID0gUmVzb3VyY2VTcGVjPGFueSwgYW55LCBhbnksIGFueT5cblxuZXhwb3J0IHR5cGUgUmVzb3VyY2VTdGF0dXMgPSAnaWRsZScgfCAnbG9hZGluZycgfCAnc3VjY2VzcycgfCAnZXJyb3InXG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VTbmFwc2hvdDxEYXRhID0gdW5rbm93biwgRXJyID0gdW5rbm93bj4ge1xuICByZWFkb25seSBzdGF0dXM6IFJlc291cmNlU3RhdHVzXG4gIHJlYWRvbmx5IGtleUhhc2g/OiBzdHJpbmdcbiAgcmVhZG9ubHkgZGF0YT86IERhdGFcbiAgcmVhZG9ubHkgZXJyb3I/OiBFcnJcbn1cblxuY29uc3Qgc3RhYmxlU3RyaW5naWZ5ID0gKHZhbHVlOiB1bmtub3duKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgc2VlbiA9IG5ldyBXZWFrU2V0PG9iamVjdD4oKVxuICBjb25zdCBlbmNvZGUgPSAoaW5wdXQ6IHVua25vd24pOiB1bmtub3duID0+IHtcbiAgICBpZiAoaW5wdXQgPT09IG51bGwpIHJldHVybiBudWxsXG4gICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGlucHV0ID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgaW5wdXQgPT09ICdib29sZWFuJykge1xuICAgICAgcmV0dXJuIGlucHV0XG4gICAgfVxuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdiaWdpbnQnKSByZXR1cm4gaW5wdXQudG9TdHJpbmcoKVxuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gJ19fdW5kZWZpbmVkX18nXG4gICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N5bWJvbCcpIHJldHVybiBgX19zeW1ib2xfXzoke1N0cmluZyhpbnB1dCl9YFxuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdmdW5jdGlvbicpIHJldHVybiAnX19mdW5jdGlvbl9fJ1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpKSB7XG4gICAgICByZXR1cm4gaW5wdXQubWFwKCh2KSA9PiBlbmNvZGUodikpXG4gICAgfVxuICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHJldHVybiBgX19kYXRlX186JHtpbnB1dC50b0lTT1N0cmluZygpfWBcbiAgICB9XG4gICAgaWYgKGlucHV0IGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIF90YWc6ICdFcnJvcicsXG4gICAgICAgIG5hbWU6IGlucHV0Lm5hbWUsXG4gICAgICAgIG1lc3NhZ2U6IGlucHV0Lm1lc3NhZ2UsXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBvYmogPSBpbnB1dCBhcyBvYmplY3RcbiAgICAgIGlmIChzZWVuLmhhcyhvYmopKSByZXR1cm4gJ19fY3ljbGVfXydcbiAgICAgIHNlZW4uYWRkKG9iailcblxuICAgICAgY29uc3QgcmVjb3JkID0gaW5wdXQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhyZWNvcmQpLnNvcnQoKVxuICAgICAgY29uc3Qgb3V0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9XG4gICAgICBmb3IgKGNvbnN0IGsgb2Yga2V5cykge1xuICAgICAgICBvdXRba10gPSBlbmNvZGUocmVjb3JkW2tdKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG91dFxuICAgIH1cbiAgICByZXR1cm4gU3RyaW5nKGlucHV0KVxuICB9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZW5jb2RlKHZhbHVlKSlcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSlcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qga2V5SGFzaCA9IChrZXk6IHVua25vd24pOiBzdHJpbmcgPT4gc3RhYmxlU3RyaW5naWZ5KGtleSlcblxuZXhwb3J0IGNvbnN0IFNuYXBzaG90ID0ge1xuICBpZGxlOiA8RGF0YSA9IG5ldmVyLCBFcnIgPSBuZXZlcj4oKTogUmVzb3VyY2VTbmFwc2hvdDxEYXRhLCBFcnI+ID0+ICh7XG4gICAgc3RhdHVzOiAnaWRsZScsXG4gICAga2V5SGFzaDogdW5kZWZpbmVkLFxuICAgIGRhdGE6IHVuZGVmaW5lZCxcbiAgICBlcnJvcjogdW5kZWZpbmVkLFxuICB9KSxcbiAgbG9hZGluZzogPERhdGEgPSBuZXZlciwgRXJyID0gbmV2ZXI+KHBhcmFtczogeyByZWFkb25seSBrZXlIYXNoOiBzdHJpbmcgfSk6IFJlc291cmNlU25hcHNob3Q8RGF0YSwgRXJyPiA9PiAoe1xuICAgIHN0YXR1czogJ2xvYWRpbmcnLFxuICAgIGtleUhhc2g6IHBhcmFtcy5rZXlIYXNoLFxuICAgIGRhdGE6IHVuZGVmaW5lZCxcbiAgICBlcnJvcjogdW5kZWZpbmVkLFxuICB9KSxcbiAgc3VjY2VzczogPERhdGE+KHBhcmFtczogeyByZWFkb25seSBrZXlIYXNoOiBzdHJpbmc7IHJlYWRvbmx5IGRhdGE6IERhdGEgfSk6IFJlc291cmNlU25hcHNob3Q8RGF0YSwgbmV2ZXI+ID0+ICh7XG4gICAgc3RhdHVzOiAnc3VjY2VzcycsXG4gICAga2V5SGFzaDogcGFyYW1zLmtleUhhc2gsXG4gICAgZGF0YTogcGFyYW1zLmRhdGEsXG4gICAgZXJyb3I6IHVuZGVmaW5lZCxcbiAgfSksXG4gIGVycm9yOiA8RXJyPihwYXJhbXM6IHsgcmVhZG9ubHkga2V5SGFzaDogc3RyaW5nOyByZWFkb25seSBlcnJvcjogRXJyIH0pOiBSZXNvdXJjZVNuYXBzaG90PG5ldmVyLCBFcnI+ID0+ICh7XG4gICAgc3RhdHVzOiAnZXJyb3InLFxuICAgIGtleUhhc2g6IHBhcmFtcy5rZXlIYXNoLFxuICAgIGRhdGE6IHVuZGVmaW5lZCxcbiAgICBlcnJvcjogcGFyYW1zLmVycm9yLFxuICB9KSxcbn0gYXMgY29uc3RcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVJlZ2lzdHJ5IHtcbiAgcmVhZG9ubHkgc3BlY3M6IFJlYWRvbmx5TWFwPHN0cmluZywgQW55UmVzb3VyY2VTcGVjPlxufVxuXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VSZWdpc3RyeVRhZyBleHRlbmRzIENvbnRleHQuVGFnKCdAbG9naXgvY29yZS9SZXNvdXJjZVJlZ2lzdHJ5Jyk8XG4gIFJlc291cmNlUmVnaXN0cnlUYWcsXG4gIFJlc291cmNlUmVnaXN0cnlcbj4oKSB7fVxuXG5leHBvcnQgY29uc3QgaW50ZXJuYWwgPSB7XG4gIFJlc291cmNlUmVnaXN0cnlUYWcsXG59XG5cbmV4cG9ydCB0eXBlIFNwZWM8S2V5LCBPdXQsIEVyciwgRW52PiA9IFJlc291cmNlU3BlYzxLZXksIE91dCwgRXJyLCBFbnY+XG5cbmV4cG9ydCBjb25zdCBtYWtlID0gPEtleSwgT3V0LCBFcnIsIEVudj4oc3BlYzogUmVzb3VyY2VTcGVjPEtleSwgT3V0LCBFcnIsIEVudj4pOiBSZXNvdXJjZVNwZWM8S2V5LCBPdXQsIEVyciwgRW52PiA9PlxuICBzcGVjXG5cbmV4cG9ydCBjb25zdCBsYXllciA9IChzcGVjczogUmVhZG9ubHlBcnJheTxBbnlSZXNvdXJjZVNwZWM+KTogTGF5ZXIuTGF5ZXI8UmVzb3VyY2VSZWdpc3RyeVRhZywgbmV2ZXIsIG5ldmVyPiA9PlxuICBMYXllci5zdWNjZWVkKFxuICAgIFJlc291cmNlUmVnaXN0cnlUYWcsXG4gICAgKCgpID0+IHtcbiAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8c3RyaW5nLCBBbnlSZXNvdXJjZVNwZWM+KClcbiAgICAgIGZvciAoY29uc3Qgc3BlYyBvZiBzcGVjcykge1xuICAgICAgICBpZiAoaXNEZXZFbnYoKSAmJiBtYXAuaGFzKHNwZWMuaWQpICYmIG1hcC5nZXQoc3BlYy5pZCkgIT09IHNwZWMpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFtSZXNvdXJjZS5sYXllcl0gRHVwbGljYXRlIHJlc291cmNlIGlkIFwiJHtzcGVjLmlkfVwiIGRldGVjdGVkIGluIHRoZSBzYW1lIHJ1bnRpbWUgc2NvcGVgKVxuICAgICAgICB9XG4gICAgICAgIG1hcC5zZXQoc3BlYy5pZCwgc3BlYylcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHNwZWNzOiBtYXAgfVxuICAgIH0pKCksXG4gIClcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7QUFBQSxTQUFTLFNBQVMsYUFBYTtBQXlCL0IsSUFBTSxrQkFBa0IsQ0FBQyxVQUEyQjtBQUNsRCxRQUFNLE9BQU8sb0JBQUksUUFBZ0I7QUFDakMsUUFBTSxTQUFTLENBQUMsVUFBNEI7QUFDMUMsUUFBSSxVQUFVLEtBQU0sUUFBTztBQUMzQixRQUFJLE9BQU8sVUFBVSxZQUFZLE9BQU8sVUFBVSxZQUFZLE9BQU8sVUFBVSxXQUFXO0FBQ3hGLGFBQU87QUFBQSxJQUNUO0FBQ0EsUUFBSSxPQUFPLFVBQVUsU0FBVSxRQUFPLE1BQU0sU0FBUztBQUNyRCxRQUFJLE9BQU8sVUFBVSxZQUFhLFFBQU87QUFDekMsUUFBSSxPQUFPLFVBQVUsU0FBVSxRQUFPLGNBQWMsT0FBTyxLQUFLLENBQUM7QUFDakUsUUFBSSxPQUFPLFVBQVUsV0FBWSxRQUFPO0FBRXhDLFFBQUksTUFBTSxRQUFRLEtBQUssR0FBRztBQUN4QixhQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sT0FBTyxDQUFDLENBQUM7QUFBQSxJQUNuQztBQUNBLFFBQUksaUJBQWlCLE1BQU07QUFDekIsYUFBTyxZQUFZLE1BQU0sWUFBWSxDQUFDO0FBQUEsSUFDeEM7QUFDQSxRQUFJLGlCQUFpQixPQUFPO0FBQzFCLGFBQU87QUFBQSxRQUNMLE1BQU07QUFBQSxRQUNOLE1BQU0sTUFBTTtBQUFBLFFBQ1osU0FBUyxNQUFNO0FBQUEsTUFDakI7QUFBQSxJQUNGO0FBQ0EsUUFBSSxTQUFTLE9BQU8sVUFBVSxVQUFVO0FBQ3RDLFlBQU0sTUFBTTtBQUNaLFVBQUksS0FBSyxJQUFJLEdBQUcsRUFBRyxRQUFPO0FBQzFCLFdBQUssSUFBSSxHQUFHO0FBRVosWUFBTSxTQUFTO0FBQ2YsWUFBTSxPQUFPLE9BQU8sS0FBSyxNQUFNLEVBQUUsS0FBSztBQUN0QyxZQUFNLE1BQStCLENBQUM7QUFDdEMsaUJBQVcsS0FBSyxNQUFNO0FBQ3BCLFlBQUksQ0FBQyxJQUFJLE9BQU8sT0FBTyxDQUFDLENBQUM7QUFBQSxNQUMzQjtBQUNBLGFBQU87QUFBQSxJQUNUO0FBQ0EsV0FBTyxPQUFPLEtBQUs7QUFBQSxFQUNyQjtBQUVBLE1BQUk7QUFDRixXQUFPLEtBQUssVUFBVSxPQUFPLEtBQUssQ0FBQztBQUFBLEVBQ3JDLFFBQVE7QUFDTixXQUFPLE9BQU8sS0FBSztBQUFBLEVBQ3JCO0FBQ0Y7QUFFTyxJQUFNLFVBQVUsQ0FBQyxRQUF5QixnQkFBZ0IsR0FBRztBQUU3RCxJQUFNLFdBQVc7QUFBQSxFQUN0QixNQUFNLE9BQStEO0FBQUEsSUFDbkUsUUFBUTtBQUFBLElBQ1IsU0FBUztBQUFBLElBQ1QsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUNBLFNBQVMsQ0FBNEIsWUFBdUU7QUFBQSxJQUMxRyxRQUFRO0FBQUEsSUFDUixTQUFTLE9BQU87QUFBQSxJQUNoQixNQUFNO0FBQUEsSUFDTixPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsU0FBUyxDQUFPLFlBQThGO0FBQUEsSUFDNUcsUUFBUTtBQUFBLElBQ1IsU0FBUyxPQUFPO0FBQUEsSUFDaEIsTUFBTSxPQUFPO0FBQUEsSUFDYixPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0EsT0FBTyxDQUFNLFlBQTZGO0FBQUEsSUFDeEcsUUFBUTtBQUFBLElBQ1IsU0FBUyxPQUFPO0FBQUEsSUFDaEIsTUFBTTtBQUFBLElBQ04sT0FBTyxPQUFPO0FBQUEsRUFDaEI7QUFDRjtBQU1PLElBQU0sc0JBQU4sY0FBa0MsUUFBUSxJQUFJLDhCQUE4QixFQUdqRixFQUFFO0FBQUM7QUFFRSxJQUFNLFdBQVc7QUFBQSxFQUN0QjtBQUNGO0FBSU8sSUFBTSxPQUFPLENBQXFCLFNBQ3ZDO0FBRUssSUFBTSxRQUFRLENBQUMsVUFDcEIsTUFBTTtBQUFBLEVBQ0o7QUFBQSxHQUNDLE1BQU07QUFDTCxVQUFNLE1BQU0sb0JBQUksSUFBNkI7QUFDN0MsZUFBVyxRQUFRLE9BQU87QUFDeEIsVUFBSSxTQUFTLEtBQUssSUFBSSxJQUFJLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxLQUFLLEVBQUUsTUFBTSxNQUFNO0FBQy9ELGNBQU0sSUFBSSxNQUFNLDJDQUEyQyxLQUFLLEVBQUUsc0NBQXNDO0FBQUEsTUFDMUc7QUFDQSxVQUFJLElBQUksS0FBSyxJQUFJLElBQUk7QUFBQSxJQUN2QjtBQUNBLFdBQU8sRUFBRSxPQUFPLElBQUk7QUFBQSxFQUN0QixHQUFHO0FBQ0w7IiwKICAibmFtZXMiOiBbXQp9Cg==
|