behavior-contracts 0.2.1 → 0.2.3
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/dist/generator/emit-straightline-typed-go.d.ts.map +1 -1
- package/dist/generator/emit-straightline-typed-go.js +265 -45
- package/dist/generator/emit-straightline-typed-go.js.map +1 -1
- package/dist/generator/emit-straightline-typed-rust.d.ts.map +1 -1
- package/dist/generator/emit-straightline-typed-rust.js +304 -47
- package/dist/generator/emit-straightline-typed-rust.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-straightline-typed-go.d.ts","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-go.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAOL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAiPpB,eAAO,MAAM,mBAAmB,EAAE,iBAOjC,CAAC;
|
|
1
|
+
{"version":3,"file":"emit-straightline-typed-go.d.ts","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-go.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAOL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAiPpB,eAAO,MAAM,mBAAmB,EAAE,iBAOjC,CAAC;AA01BF;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,aAM5B,CAAC"}
|
|
@@ -416,15 +416,10 @@ function emitTypedRunner(comp, plan) {
|
|
|
416
416
|
const fn = sanitize(comp.name);
|
|
417
417
|
// struct-native scope を組むため、port 式は portScope()(input params のみ)で emit する。
|
|
418
418
|
const cplan = buildComponentPlan(comp, goStraightlineInternals.dialect, PORT_SCOPE);
|
|
419
|
-
// typed node(componentRef で outType を持つもの)を index 化。
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
if (ot !== undefined && "component" in n) {
|
|
424
|
-
typedNodes.set(n.id, deriveTypeRef(ot, plan));
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
// 各 typed node の struct ローカル宣言(zero 値・producedフラグ)。RunPlan の exec が marshal して埋める。
|
|
419
|
+
// typed node(componentRef / map / cond で outType を持つもの)を index 化。map の node 結果型は
|
|
420
|
+
// {arr:elemType}(collected / augmented list)、cond は選択枝の合流型。いずれも struct 空間で保持する。
|
|
421
|
+
const typedNodes = collectTypedNodes(comp, plan);
|
|
422
|
+
// 各 typed node の struct ローカル宣言(zero 値)。RunPlan の exec が marshal して埋める。
|
|
428
423
|
const decls = [...typedNodes.entries()]
|
|
429
424
|
.map(([id, ref]) => `\tvar ${typedLocal(id)} ${renderTypeRef(ref)}`)
|
|
430
425
|
.join("\n");
|
|
@@ -492,16 +487,31 @@ ${arms}
|
|
|
492
487
|
\treturn ${serialized}, nil
|
|
493
488
|
}`;
|
|
494
489
|
}
|
|
490
|
+
/**
|
|
491
|
+
* collectTypedNodes — component の body ノードで outType を持つもの(componentRef / map / cond)を
|
|
492
|
+
* id → 結果 TypeRef に index 化する。map/cond も struct 空間で結果を保持する(#66 de-box 拡張)。
|
|
493
|
+
*/
|
|
494
|
+
function collectTypedNodes(comp, plan) {
|
|
495
|
+
const typedNodes = new Map();
|
|
496
|
+
for (const n of comp.body) {
|
|
497
|
+
const ot = n.outType;
|
|
498
|
+
if (ot !== undefined)
|
|
499
|
+
typedNodes.set(n.id, deriveTypeRef(ot, plan));
|
|
500
|
+
}
|
|
501
|
+
return typedNodes;
|
|
502
|
+
}
|
|
495
503
|
/**
|
|
496
504
|
* emitTypedExecArm — 1 ノードの struct-native exec 分岐。componentRef: ports を native/primitive で評価
|
|
497
505
|
* (portScope 読み)→ ExecHandler → 結果を **outType struct へ marshal**(raw→typed 境界)→ struct scope に
|
|
498
|
-
* 格納。map
|
|
506
|
+
* 格納。map(#66): 要素反復し per-element handler 結果を **要素 struct へ marshal** して `[]T` を組み、
|
|
507
|
+
* struct scope に格納(動的 Value collected list は作らない)。cond(#66): 純 Expression を primitive で
|
|
508
|
+
* 1 式評価(意味論 SSoT)→ 選択枝 raw を **outType struct へ marshal** して struct scope に格納。
|
|
499
509
|
*/
|
|
500
510
|
function emitTypedExecArm(op, compName, typedNodes, plan) {
|
|
501
|
-
if (op.kind
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
511
|
+
if (op.kind === "map")
|
|
512
|
+
return emitTypedMapArm(op, compName, typedNodes, plan);
|
|
513
|
+
if (op.kind === "cond")
|
|
514
|
+
return emitTypedCondArm(op, compName, typedNodes, plan);
|
|
505
515
|
const gp = goStraightlineInternals.goPortVar;
|
|
506
516
|
const portEvals = op.ports
|
|
507
517
|
.map((p) => `\t\t\t${gp(p.name)}, err := ${p.expr}
|
|
@@ -513,36 +523,7 @@ function emitTypedExecArm(op, compName, typedNodes, plan) {
|
|
|
513
523
|
const body = op.ports.length === 0 ? "" : `\n${portEvals}`;
|
|
514
524
|
const ref = typedNodes.get(op.id);
|
|
515
525
|
// 結果 materialization: handler 結果を outType struct へ marshal して struct scope へ格納(de-box 境界)。
|
|
516
|
-
|
|
517
|
-
let materialize;
|
|
518
|
-
if (ref === undefined) {
|
|
519
|
-
// outType 無し node(typed component だが個々の node には注記が無い): 結果は使われない(output が
|
|
520
|
-
// input/他 node 由来)。struct 化する型が無いので何もしない(Value を scope へ入れることもしない)。
|
|
521
|
-
materialize = "\t\t\t_ = outcome.Ok";
|
|
522
|
-
}
|
|
523
|
-
else if (ref.kind === "named") {
|
|
524
|
-
materialize = `\t\t\tst, merr := marshal_${ref.name}(outcome.Ok)
|
|
525
|
-
\t\t\tif merr != nil {
|
|
526
|
-
\t\t\t\treturn abort(idx, merr)
|
|
527
|
-
\t\t\t}
|
|
528
|
-
\t\t\tscopeMu.Lock()
|
|
529
|
-
\t\t\t${typedLocal(op.id)} = st
|
|
530
|
-
\t\t\tscopeMu.Unlock()`;
|
|
531
|
-
}
|
|
532
|
-
else {
|
|
533
|
-
// scalar/arr/opt outType node: **fail-closed** 材化関数で具体 typed 値へ(marshal と同型の de-box)。
|
|
534
|
-
// 旧実装は must*(型 assert を捨てて zero 値へ silent coerce)だったが、handler が outType 非適合の
|
|
535
|
-
// 値を返した場合に沈黙で潰れる(TYPE_MISMATCH を握り潰す)ため fail-closed に差し替えた(bc#49 B3)。
|
|
536
|
-
// materializeNode_* は emitFieldMaterialize と同じ TYPE_MISMATCH/MISSING_PROP を返す。
|
|
537
|
-
const mfn = nodeMaterializerName(compName, op.id);
|
|
538
|
-
materialize = `\t\t\ttv, merr := ${mfn}(outcome.Ok)
|
|
539
|
-
\t\t\tif merr != nil {
|
|
540
|
-
\t\t\t\treturn abort(idx, merr)
|
|
541
|
-
\t\t\t}
|
|
542
|
-
\t\t\tscopeMu.Lock()
|
|
543
|
-
\t\t\t${typedLocal(op.id)} = tv
|
|
544
|
-
\t\t\tscopeMu.Unlock()`;
|
|
545
|
-
}
|
|
526
|
+
const materialize = emitStoreTypedNode(op.id, "outcome.Ok", ref, compName, plan, 3);
|
|
546
527
|
return `\t\tif i == ${op.index} {
|
|
547
528
|
\t\t\tports := ${PKG}.NewObj()${body}
|
|
548
529
|
\t\t\toutcome, resolved := ${PKG}.ExecHandler(handlers, ${JSON.stringify(op.id)}, ${JSON.stringify(op.component)}, ports, nil)
|
|
@@ -556,6 +537,209 @@ ${materialize}
|
|
|
556
537
|
\t\t\treturn ${PKG}.OkOutcome(nil)
|
|
557
538
|
\t\t}`;
|
|
558
539
|
}
|
|
540
|
+
/**
|
|
541
|
+
* emitStoreTypedNode — raw Value 式 `srcExpr` を node の outType(`ref`)へ **fail-closed** de-box し、
|
|
542
|
+
* 該当 typed scope ローカル(`typedLocal(nodeId)`)へ格納する Go 文ブロックを返す(indent = タブ数)。
|
|
543
|
+
* named→marshal_T*、scalar/arr/opt→materializeNode_*(silent-coerce しない — bc#49 B3)、注記無し→捨てる。
|
|
544
|
+
* componentRef / cond / map の結果格納で共有する(node 結果は必ず struct 空間・動的 Value scope は組まない)。
|
|
545
|
+
*/
|
|
546
|
+
function emitStoreTypedNode(nodeId, srcExpr, ref, compName, _plan, indent) {
|
|
547
|
+
const t = "\t".repeat(indent);
|
|
548
|
+
if (ref === undefined) {
|
|
549
|
+
// outType 無し node(typed component だが個々の node には注記が無い): struct 化する型が無いので
|
|
550
|
+
// 何もしない(Value を scope へ入れることもしない)。
|
|
551
|
+
return `${t}_ = ${srcExpr}`;
|
|
552
|
+
}
|
|
553
|
+
const store = `${t}scopeMu.Lock()\n${t}${typedLocal(nodeId)} = tv\n${t}scopeMu.Unlock()`;
|
|
554
|
+
if (ref.kind === "named") {
|
|
555
|
+
return `${t}tv, merr := marshal_${ref.name}(${srcExpr})\n${t}if merr != nil {\n${t}\treturn abort(idx, merr)\n${t}}\n${store}`;
|
|
556
|
+
}
|
|
557
|
+
// scalar/arr/opt outType node: **fail-closed** 材化関数で具体 typed 値へ(marshal と同型の de-box)。
|
|
558
|
+
const mfn = nodeMaterializerName(compName, nodeId);
|
|
559
|
+
return `${t}tv, merr := ${mfn}(${srcExpr})\n${t}if merr != nil {\n${t}\treturn abort(idx, merr)\n${t}}\n${store}`;
|
|
560
|
+
}
|
|
561
|
+
/**
|
|
562
|
+
* emitTypedCondArm — typed cond の struct-native exec(#66)。cond は純 Expression(handler 非呼び)。
|
|
563
|
+
* `{cond:[if,then,else]}` を primitive(PrimCond。短絡・strict-bool の意味論 SSoT)で 1 式評価し、選択された
|
|
564
|
+
* 枝の raw Value を outType struct へ **その場で marshal**(de-box 境界)して struct scope へ格納する。
|
|
565
|
+
* 動的 Value node-result scope は組まない(両枝は同じ outType へ材化される)。
|
|
566
|
+
*/
|
|
567
|
+
function emitTypedCondArm(op, compName, typedNodes, _plan) {
|
|
568
|
+
const ref = typedNodes.get(op.id);
|
|
569
|
+
const store = emitStoreTypedNode(op.id, "condRaw", ref, compName, _plan, 3);
|
|
570
|
+
return `\t\tif i == ${op.index} {
|
|
571
|
+
\t\t\tcondRaw, cerr := ${op.expr}
|
|
572
|
+
\t\t\tif cerr != nil {
|
|
573
|
+
\t\t\t\treturn abort(idx, cerr)
|
|
574
|
+
\t\t\t}
|
|
575
|
+
${store}
|
|
576
|
+
\t\t\treturn ${PKG}.OkOutcome(nil)
|
|
577
|
+
\t\t}`;
|
|
578
|
+
}
|
|
579
|
+
/**
|
|
580
|
+
* emitTypedMapArm — typed map の struct-native exec(#66)。node 結果型は {arr:elemType}(`outType`)。
|
|
581
|
+
* 要素を反復し、guard(PrimCond・strict-bool SSoT)で skip、per-element ports を要素 scope(`mscope()` =
|
|
582
|
+
* input params + `as`→要素値)で native/primitive 評価、handler を呼び、その **raw 結果を要素 struct へ
|
|
583
|
+
* marshal**(de-box 境界)して `[]elemStruct` を組み、struct scope へ格納する(動的 Value collected list は
|
|
584
|
+
* 作らない)。batched は guard 通過全要素 ports を 1 回の handler 呼びへ。into は over 要素へ handler 結果を
|
|
585
|
+
* zip-attach した augment 済み Value を **要素 struct へ marshal** して `[]elemStruct` を組む(over 要素は
|
|
586
|
+
* 入力境界 Value・into 値は handler raw = 局所境界の合流→marshal で de-box。動的 output tree は組まない)。
|
|
587
|
+
* plan.concurrency は外側の RunPlan primitive が保存する(map ノードは 1 op)。
|
|
588
|
+
*/
|
|
589
|
+
function emitTypedMapArm(op, compName, typedNodes, plan) {
|
|
590
|
+
const ref = typedNodes.get(op.id);
|
|
591
|
+
// typed map の結果は必ず arr({arr:elemType})。elemType が named/scalar/arr/opt いずれでも要素 struct へ marshal。
|
|
592
|
+
if (ref === undefined || ref.kind !== "arr") {
|
|
593
|
+
throw new GeneratorFailure("UNSUPPORTED_NODE_STRAIGHTLINE", `go-typed struct-native map: node '${op.id}' has no {arr:elemType} outType (got ${ref ? JSON.stringify(ref.kind) : "no outType"}). A typed map must annotate its result element type to de-box into a native []T; otherwise regenerate as untyped straight-line. Do not fall back to a dynamic Value collected list.`);
|
|
594
|
+
}
|
|
595
|
+
// #66 hardening: a typed map combining `when` (guard) AND `into` yields
|
|
596
|
+
// HETEROGENEOUS elements — skipped elements pass through un-augmented (no `into`
|
|
597
|
+
// field) while kept elements gain it, which cannot share one non-optional element
|
|
598
|
+
// struct. The interpreter produces a heterogeneous list; a struct-native de-box
|
|
599
|
+
// cannot. Reject loudly at generation time rather than emitting a module that only
|
|
600
|
+
// fail-closes (MISSING_PROP) at runtime for a skipping input.
|
|
601
|
+
if (op.guard !== undefined && op.into !== undefined) {
|
|
602
|
+
throw new GeneratorFailure("UNSUPPORTED_NODE_STRAIGHTLINE", `go-typed struct-native map: node '${op.id}' combines 'when' (guard) and 'into', which produces heterogeneous elements (skipped elements lack the 'into' field) that cannot de-box into a single []T. Regenerate this map as untyped straight-line, or split guard and into. Do not emit a struct-native map that fail-closes only at runtime.`);
|
|
603
|
+
}
|
|
604
|
+
const elemRef = ref.elem;
|
|
605
|
+
const elemGo = renderTypeRef(elemRef);
|
|
606
|
+
const comp = JSON.stringify(op.component);
|
|
607
|
+
const nodeId = JSON.stringify(op.id);
|
|
608
|
+
const asKey = JSON.stringify(op.as);
|
|
609
|
+
const gp = goStraightlineInternals.goPortVar;
|
|
610
|
+
// 要素 raw Value を elemStruct へ **fail-closed** materialize する関数呼び(mapElemMaterializerName → (elemT, error))。
|
|
611
|
+
const elemMat = mapElemMaterializerName(compName, op.id);
|
|
612
|
+
// mscope: portScope()(input params のみ)に `as`→要素値 を足す(node-result Value scope は組まない)。
|
|
613
|
+
const mscopeDef = `\t\t\t\tmel := el
|
|
614
|
+
\t\t\t\tmscope := func() *${PKG}.Obj {
|
|
615
|
+
\t\t\t\t\ts := portScope()
|
|
616
|
+
\t\t\t\t\ts.Set(${asKey}, mel)
|
|
617
|
+
\t\t\t\t\treturn s
|
|
618
|
+
\t\t\t\t}
|
|
619
|
+
\t\t\t\t_ = mscope`;
|
|
620
|
+
const guardBlock = op.guard === undefined
|
|
621
|
+
? ""
|
|
622
|
+
: `\n\t\t\t\tgkeep, gerr := ${op.guard}
|
|
623
|
+
\t\t\t\tif gerr != nil {
|
|
624
|
+
\t\t\t\t\treturn abort(idx, gerr)
|
|
625
|
+
\t\t\t\t}
|
|
626
|
+
\t\t\t\tif gkeep != true {
|
|
627
|
+
\t\t\t\t\tcontinue
|
|
628
|
+
\t\t\t\t}`;
|
|
629
|
+
const portEvals = op.ports.length === 0
|
|
630
|
+
? `\t\t\t\tports := ${PKG}.NewObj()`
|
|
631
|
+
: `\t\t\t\tports := ${PKG}.NewObj()\n${op.ports
|
|
632
|
+
.map((p) => `\t\t\t\t${gp(p.name)}, err := ${p.expr}
|
|
633
|
+
\t\t\t\tif err != nil {
|
|
634
|
+
\t\t\t\t\treturn abort(idx, err)
|
|
635
|
+
\t\t\t\t}
|
|
636
|
+
\t\t\t\tports.Set(${JSON.stringify(p.name)}, ${gp(p.name)})`)
|
|
637
|
+
.join("\n")}`;
|
|
638
|
+
// elemRaws: guard 通過要素の handler raw 結果(into でも collected でも per-element raw を貯める)。
|
|
639
|
+
const collectLoop = op.batched
|
|
640
|
+
? `\t\t\titems := make([]${PKG}.Value, 0, len(overArr))
|
|
641
|
+
\t\t\tfor mi, el := range overArr {
|
|
642
|
+
${mscopeDef}${guardBlock}
|
|
643
|
+
${portEvals}
|
|
644
|
+
\t\t\t\titems = append(items, ports)
|
|
645
|
+
\t\t\t\tkeptIdx = append(keptIdx, mi)
|
|
646
|
+
\t\t\t}
|
|
647
|
+
\t\t\tvar elemRaws []${PKG}.Value
|
|
648
|
+
\t\t\tif len(items) == 0 {
|
|
649
|
+
\t\t\t\telemRaws = []${PKG}.Value{}
|
|
650
|
+
\t\t\t} else {
|
|
651
|
+
\t\t\t\tbatchPorts := ${PKG}.NewObj()
|
|
652
|
+
\t\t\t\tbatchPorts.Set("items", items)
|
|
653
|
+
\t\t\t\toutcome, resolved := ${PKG}.ExecHandler(handlers, ${nodeId}, ${comp}, batchPorts, nil)
|
|
654
|
+
\t\t\t\tif !resolved {
|
|
655
|
+
\t\t\t\t\treturn abort(idx, ${PKG}.NewBehaviorFailure("UNKNOWN_COMPONENT", "component '${op.component}' has no handler (fail-closed)"))
|
|
656
|
+
\t\t\t\t}
|
|
657
|
+
\t\t\t\tif outcome.IsError {
|
|
658
|
+
\t\t\t\t\treturn outcome
|
|
659
|
+
\t\t\t\t}
|
|
660
|
+
\t\t\t\tr, isArr := outcome.Ok.([]${PKG}.Value)
|
|
661
|
+
\t\t\t\tif !isArr || len(r) != len(items) {
|
|
662
|
+
\t\t\t\t\treturn abort(idx, ${PKG}.NewBehaviorFailure("MAP_BATCH_RESULT_MISMATCH", fmt.Sprintf("map '${op.id}': batched handler must return a list aligned to items (want %d)", len(items))))
|
|
663
|
+
\t\t\t\t}
|
|
664
|
+
\t\t\t\telemRaws = r
|
|
665
|
+
\t\t\t}`
|
|
666
|
+
: `\t\t\telemRaws := make([]${PKG}.Value, 0, len(overArr))
|
|
667
|
+
\t\t\tfor mi, el := range overArr {
|
|
668
|
+
${mscopeDef}${guardBlock}
|
|
669
|
+
${portEvals}
|
|
670
|
+
\t\t\t\toutcome, resolved := ${PKG}.ExecHandler(handlers, ${nodeId}, ${comp}, ports, mel)
|
|
671
|
+
\t\t\t\tif !resolved {
|
|
672
|
+
\t\t\t\t\treturn abort(idx, ${PKG}.NewBehaviorFailure("UNKNOWN_COMPONENT", "component '${op.component}' has no handler (fail-closed)"))
|
|
673
|
+
\t\t\t\t}
|
|
674
|
+
\t\t\t\tif outcome.IsError {
|
|
675
|
+
\t\t\t\t\treturn outcome
|
|
676
|
+
\t\t\t\t}
|
|
677
|
+
\t\t\t\telemRaws = append(elemRaws, outcome.Ok)
|
|
678
|
+
\t\t\t\tkeptIdx = append(keptIdx, mi)
|
|
679
|
+
\t\t\t}`;
|
|
680
|
+
// 要素 struct へ de-box して []elemStruct を組み、struct scope へ格納(動的 Value collected list は作らない)。
|
|
681
|
+
// 要素 materialize は **fail-closed**(elemMat = (elemT, error))— 要素が elemType 非適合なら TYPE_MISMATCH/
|
|
682
|
+
// MISSING_PROP で loud reject(silent-coerce しない)。
|
|
683
|
+
const store = `\t\t\tscopeMu.Lock()
|
|
684
|
+
\t\t\t${typedLocal(op.id)} = typed
|
|
685
|
+
\t\t\tscopeMu.Unlock()`;
|
|
686
|
+
const buildTyped = op.into === undefined
|
|
687
|
+
? `\t\t\ttyped := make([]${elemGo}, 0, len(elemRaws))
|
|
688
|
+
\t\t\tfor _, er := range elemRaws {
|
|
689
|
+
\t\t\t\ttv, terr := ${elemMat}(er)
|
|
690
|
+
\t\t\t\tif terr != nil {
|
|
691
|
+
\t\t\t\t\treturn abort(idx, terr)
|
|
692
|
+
\t\t\t\t}
|
|
693
|
+
\t\t\t\ttyped = append(typed, tv)
|
|
694
|
+
\t\t\t}
|
|
695
|
+
${store}`
|
|
696
|
+
: `\t\t\ttyped := make([]${elemGo}, 0, len(overArr))
|
|
697
|
+
\t\t\tmk := 0
|
|
698
|
+
\t\t\tfor mj, oel := range overArr {
|
|
699
|
+
\t\t\t\tif mk < len(keptIdx) && keptIdx[mk] == mj {
|
|
700
|
+
\t\t\t\t\toelObj, isObj := oel.(*${PKG}.Obj)
|
|
701
|
+
\t\t\t\t\tif !isObj {
|
|
702
|
+
\t\t\t\t\t\treturn abort(idx, ${PKG}.NewBehaviorFailure("MAP_INTO_ELEMENT_NOT_OBJECT", fmt.Sprintf("map '${op.id}': 'into' requires object elements (element %d is not an object)", mj)))
|
|
703
|
+
\t\t\t\t\t}
|
|
704
|
+
\t\t\t\t\tcp := ${PKG}.NewObj()
|
|
705
|
+
\t\t\t\t\tfor _, fk := range oelObj.Keys {
|
|
706
|
+
\t\t\t\t\t\tcp.Set(fk, oelObj.Vals[fk])
|
|
707
|
+
\t\t\t\t\t}
|
|
708
|
+
\t\t\t\t\tcp.Set(${JSON.stringify(op.into)}, elemRaws[mk])
|
|
709
|
+
\t\t\t\t\ttv, terr := ${elemMat}(cp)
|
|
710
|
+
\t\t\t\t\tif terr != nil {
|
|
711
|
+
\t\t\t\t\t\treturn abort(idx, terr)
|
|
712
|
+
\t\t\t\t\t}
|
|
713
|
+
\t\t\t\t\ttyped = append(typed, tv)
|
|
714
|
+
\t\t\t\t\tmk++
|
|
715
|
+
\t\t\t\t} else {
|
|
716
|
+
\t\t\t\t\ttv, terr := ${elemMat}(oel)
|
|
717
|
+
\t\t\t\t\tif terr != nil {
|
|
718
|
+
\t\t\t\t\t\treturn abort(idx, terr)
|
|
719
|
+
\t\t\t\t\t}
|
|
720
|
+
\t\t\t\t\ttyped = append(typed, tv)
|
|
721
|
+
\t\t\t\t}
|
|
722
|
+
\t\t\t}
|
|
723
|
+
${store}`;
|
|
724
|
+
return `\t\tif i == ${op.index} {
|
|
725
|
+
\t\t\toverVal, overErr := ${op.over}
|
|
726
|
+
\t\t\tif overErr != nil {
|
|
727
|
+
\t\t\t\treturn abort(idx, overErr)
|
|
728
|
+
\t\t\t}
|
|
729
|
+
\t\t\toverArr, isArr := overVal.([]${PKG}.Value)
|
|
730
|
+
\t\t\tif !isArr {
|
|
731
|
+
\t\t\t\treturn abort(idx, ${PKG}.NewBehaviorFailure("MAP_OVER_NOT_ARRAY", "map '${op.id}': 'over' did not evaluate to an array"))
|
|
732
|
+
\t\t\t}
|
|
733
|
+
\t\t\tkeptIdx := make([]int, 0, len(overArr))
|
|
734
|
+
${collectLoop}
|
|
735
|
+
${buildTyped}
|
|
736
|
+
\t\t\treturn ${PKG}.OkOutcome(nil)
|
|
737
|
+
\t\t}`;
|
|
738
|
+
}
|
|
739
|
+
/** typed map の要素 fail-closed 材化関数名(component 名で namespace)。 */
|
|
740
|
+
function mapElemMaterializerName(compName, nodeId) {
|
|
741
|
+
return `materializeMapElem_${sanitize(compName)}_${nodeId.replace(/[^A-Za-z0-9_]/g, "_")}`;
|
|
742
|
+
}
|
|
559
743
|
/** arr/opt helper 名の決定的キー(要素型で一意化)。 */
|
|
560
744
|
function arrHelperKey(ref) {
|
|
561
745
|
const flat = (r) => {
|
|
@@ -711,6 +895,31 @@ function emitNodeMaterializers(comp, typedNodes, plan) {
|
|
|
711
895
|
}
|
|
712
896
|
return parts.join("\n\n");
|
|
713
897
|
}
|
|
898
|
+
/**
|
|
899
|
+
* emitMapElemMaterializers — typed map node(outType {arr:elemType})の要素 fail-closed 材化関数
|
|
900
|
+
* `materializeMapElem_<comp>_<id>(raw Value) (elemT, error)` を emit する(#66)。emitFieldMaterialize を
|
|
901
|
+
* 再利用し、marshaller と同型の TYPE_MISMATCH/MISSING_PROP で loud reject する(要素が elemType 非適合なら
|
|
902
|
+
* silent-coerce せず loud fail — 要素 de-box が本物である証拠)。
|
|
903
|
+
*/
|
|
904
|
+
function emitMapElemMaterializers(comp, plan) {
|
|
905
|
+
const parts = [];
|
|
906
|
+
for (const n of comp.body) {
|
|
907
|
+
if (!("map" in n))
|
|
908
|
+
continue;
|
|
909
|
+
const ot = n.outType;
|
|
910
|
+
if (ot === undefined)
|
|
911
|
+
continue;
|
|
912
|
+
const ref = deriveTypeRef(ot, plan);
|
|
913
|
+
if (ref.kind !== "arr")
|
|
914
|
+
continue; // typed map の結果は {arr:elemType}(arm 側でも fail-closed 検査)
|
|
915
|
+
const elemRef = ref.elem;
|
|
916
|
+
const ty = renderTypeRef(elemRef);
|
|
917
|
+
const fn = mapElemMaterializerName(comp.name, n.id);
|
|
918
|
+
const body = emitFieldMaterialize("out", "raw", elemRef, plan, 1);
|
|
919
|
+
parts.push(`func ${fn}(raw ${PKG}.Value) (${ty}, error) {\n\tvar out ${ty}\n${body}\n\treturn out, nil\n}`);
|
|
920
|
+
}
|
|
921
|
+
return parts.join("\n\n");
|
|
922
|
+
}
|
|
714
923
|
/** arr/opt 要素の materialize 式(named→mustMarshal, scalar→mustScalar, arr/opt→ネスト helper)。 */
|
|
715
924
|
function elemMaterializeExpr(ref, varName = "e") {
|
|
716
925
|
switch (ref.kind) {
|
|
@@ -738,19 +947,29 @@ function emit(ctx) {
|
|
|
738
947
|
const mustHelpers = emitMustHelpers(plan);
|
|
739
948
|
const arrOptNodeHelpers = emitArrOptNodeHelpers(ctx, plan);
|
|
740
949
|
// fail-closed な scalar/arr/opt node 材化関数(bc#49 B3 — exec 経路の silent-coerce 修正)。
|
|
950
|
+
// componentRef / cond の scalar/arr/opt outType node を fail-closed materialize する(#66 で cond も対象)。
|
|
741
951
|
const nodeMaterializers = ctx.ir.components
|
|
742
952
|
.filter((c) => isTypedComponent(c))
|
|
743
953
|
.map((c) => {
|
|
744
954
|
const typedNodes = new Map();
|
|
745
955
|
for (const n of c.body) {
|
|
956
|
+
// map は要素材化(materializeMapElem_*)が別途担うので node 材化からは除外する。
|
|
957
|
+
if ("map" in n)
|
|
958
|
+
continue;
|
|
746
959
|
const ot = n.outType;
|
|
747
|
-
if (ot !== undefined
|
|
960
|
+
if (ot !== undefined)
|
|
748
961
|
typedNodes.set(n.id, deriveTypeRef(ot, plan));
|
|
749
962
|
}
|
|
750
963
|
return emitNodeMaterializers(c, typedNodes, plan);
|
|
751
964
|
})
|
|
752
965
|
.filter((s) => s.length > 0)
|
|
753
966
|
.join("\n\n");
|
|
967
|
+
// typed map の要素 fail-closed 材化関数(#66): map node の {arr:elemType} の要素型へ de-box する。
|
|
968
|
+
const mapElemMaterializers = ctx.ir.components
|
|
969
|
+
.filter((c) => isTypedComponent(c))
|
|
970
|
+
.map((c) => emitMapElemMaterializers(c, plan))
|
|
971
|
+
.filter((s) => s.length > 0)
|
|
972
|
+
.join("\n\n");
|
|
754
973
|
const runners = ctx.ir.components
|
|
755
974
|
.filter((c) => isTypedComponent(c))
|
|
756
975
|
.map((c) => emitTypedRunner(c, plan))
|
|
@@ -773,6 +992,7 @@ function emit(ctx) {
|
|
|
773
992
|
`// must-form helpers used inside the single-expression struct materialization / output assembly.\n${mustHelpers}`,
|
|
774
993
|
arrOptNodeHelpers ? `// arr/opt node de-box helpers (concrete slice/pointer materialization).\n${arrOptNodeHelpers}` : undefined,
|
|
775
994
|
nodeMaterializers ? `// scalar/arr/opt node materializers: FAIL-CLOSED de-box (TYPE_MISMATCH/MISSING_PROP) for typed nodes whose outType is not a named obj.\n${nodeMaterializers}` : undefined,
|
|
995
|
+
mapElemMaterializers ? `// typed map element materializers (#66): FAIL-CLOSED de-box of each map element into the []T element type.\n${mapElemMaterializers}` : undefined,
|
|
776
996
|
`// struct-native typed runners: the REAL de-box exec path (called by Bind for typed components).\n${runners}`,
|
|
777
997
|
typedDispatch,
|
|
778
998
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-straightline-typed-go.js","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-go.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emit-straightline-typed-go.js","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-go.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-straightline-typed-rust.d.ts","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-rust.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAOL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AA4SpB,eAAO,MAAM,qBAAqB,EAAE,iBAOnC,CAAC;
|
|
1
|
+
{"version":3,"file":"emit-straightline-typed-rust.d.ts","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-rust.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAOL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AA4SpB,eAAO,MAAM,qBAAqB,EAAE,iBAOnC,CAAC;AA8yBF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAM9B,CAAC"}
|
|
@@ -462,19 +462,18 @@ function emitTypedRunner(comp, plan) {
|
|
|
462
462
|
const fn = rustStraightlineInternals.sanitize(comp.name);
|
|
463
463
|
// struct-native scope を組むため、port 式は port_scope()(input params のみ)で emit する。
|
|
464
464
|
const cplan = buildComponentPlan(comp, rustStraightlineInternals.dialect, PORT_SCOPE);
|
|
465
|
-
// typed node(componentRef で outType を持つもの)を index 化。
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
if (ot !== undefined && "component" in n) {
|
|
470
|
-
typedNodes.set(n.id, deriveTypeRef(ot, plan));
|
|
471
|
-
}
|
|
472
|
-
}
|
|
473
|
-
// 各 typed node の struct cell 宣言(Option<T> を RefCell で。marshal 後に Some(struct) を書き込む)。
|
|
465
|
+
// typed node(componentRef / map / cond で outType を持つもの)を index 化。map の node 結果型は
|
|
466
|
+
// {arr:elemType}(collected/augmented list)、cond は選択枝の合流型。いずれも struct 空間で保持する。
|
|
467
|
+
const typedNodes = collectTypedNodes(comp, plan);
|
|
468
|
+
// 各 typed node の struct cell 宣言(RefCell で。marshal 後に struct を書き込む)。
|
|
474
469
|
const cellDecls = [...typedNodes.entries()]
|
|
475
470
|
.map(([id, ref]) => ` let ${typedCell(id)}: RefCell<${renderTypeRef(ref)}> = RefCell::new(Default::default());`)
|
|
476
471
|
.join("\n");
|
|
477
|
-
const arms = cplan.ops.map((op) => emitTypedExecArm(op, typedNodes, plan)).join("\n");
|
|
472
|
+
const arms = cplan.ops.map((op) => emitTypedExecArm(op, comp.name, typedNodes, plan)).join("\n");
|
|
473
|
+
// handler を 1 度も呼ばない typed component(cond のみ等)では `handlers` を `_handlers` に(unused-variables
|
|
474
|
+
// 回避)。componentRef と map(要素/batched handler)は handler を呼ぶ。
|
|
475
|
+
const usesHandlers = cplan.ops.some((o) => o.kind === "componentRef" || o.kind === "map");
|
|
476
|
+
const handlerParam = usesHandlers ? "handlers" : "_handlers";
|
|
478
477
|
const planExpr = comp.plan
|
|
479
478
|
? rustStraightlineInternals.emitPlanLiteral(comp.plan)
|
|
480
479
|
: "None";
|
|
@@ -493,7 +492,7 @@ function emitTypedRunner(comp, plan) {
|
|
|
493
492
|
// Called by Bind for '${comp.name}'. (bc handlers return a Value mock = the raw->typed boundary; in
|
|
494
493
|
// graphddb #60 the handler returns raw and the same marshal-at-boundary keeps it struct-native.)
|
|
495
494
|
fn run_typed_${fn}<H: ComponentExec>(
|
|
496
|
-
|
|
495
|
+
${handlerParam}: &mut H,
|
|
497
496
|
input: &[(String, Value)],
|
|
498
497
|
) -> Result<Value, BehaviorError> {
|
|
499
498
|
let ops: Vec<OpSpec> = ${opsLiteral};
|
|
@@ -540,44 +539,19 @@ ${arms}
|
|
|
540
539
|
* (port_scope 読み)→ handlers.exec_ctx → 結果を **outType struct へ marshal**(raw→typed 境界)→ cell に
|
|
541
540
|
* 格納。map/cond は struct-native では未対応(typed corpus は componentRef のみ)— fail-closed。
|
|
542
541
|
*/
|
|
543
|
-
function emitTypedExecArm(op, typedNodes, plan) {
|
|
544
|
-
if (op.kind
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
542
|
+
function emitTypedExecArm(op, compName, typedNodes, plan) {
|
|
543
|
+
if (op.kind === "map")
|
|
544
|
+
return emitTypedMapArm(op, compName, typedNodes, plan);
|
|
545
|
+
if (op.kind === "cond")
|
|
546
|
+
return emitTypedCondArm(op, compName, typedNodes, plan);
|
|
548
547
|
const portRows = op.ports.length === 0
|
|
549
548
|
? " Ok(Vec::new())"
|
|
550
549
|
: ` Ok(vec![\n${op.ports
|
|
551
550
|
.map((pt) => ` (${rustStrLit(pt.name)}.to_string(), (${pt.expr})?),`)
|
|
552
551
|
.join("\n")}\n ])`;
|
|
553
552
|
const ref = typedNodes.get(op.id);
|
|
554
|
-
// 結果 materialization: handler
|
|
555
|
-
|
|
556
|
-
if (ref === undefined) {
|
|
557
|
-
// outType 無し node(typed component だが個々の node には注記が無い): 結果は使われない(output が
|
|
558
|
-
// input/他 node 由来)。struct 化する型が無いので何もしない(Value を results へ入れることもしない)。
|
|
559
|
-
materialize = ` let _ = &v;`;
|
|
560
|
-
}
|
|
561
|
-
else if (ref.kind === "named") {
|
|
562
|
-
materialize = ` match marshal_${ref.name}(v) {
|
|
563
|
-
Ok(st) => { *${typedCell(op.id)}.borrow_mut() = st; }
|
|
564
|
-
Err(e) => {
|
|
565
|
-
*err_cell = Some(e);
|
|
566
|
-
return ExecOutcome::Error("aborted".to_string());
|
|
567
|
-
}
|
|
568
|
-
}`;
|
|
569
|
-
}
|
|
570
|
-
else {
|
|
571
|
-
// scalar/arr/opt outType node: インライン材化 block で具体 typed 値へ(de-box、named でない)。
|
|
572
|
-
// 材化式は `?` を使わず(closure が Result を返さない)BehaviorError を err_cell へ写す match 展開にする。
|
|
573
|
-
materialize = ` match materialize_node_${typedCell(op.id)}(v) {
|
|
574
|
-
Ok(tv) => { *${typedCell(op.id)}.borrow_mut() = tv; }
|
|
575
|
-
Err(e) => {
|
|
576
|
-
*err_cell = Some(e);
|
|
577
|
-
return ExecOutcome::Error("aborted".to_string());
|
|
578
|
-
}
|
|
579
|
-
}`;
|
|
580
|
-
}
|
|
553
|
+
// 結果 materialization: handler 結果(&v)を outType struct へ marshal して cell へ格納(de-box 境界)。
|
|
554
|
+
const materialize = emitStoreTypedNodeRust(op.id, "v", ref, 4);
|
|
581
555
|
return ` if i == ${op.index} {
|
|
582
556
|
let eval_ports = || -> Result<Vec<(String, Value)>, behavior_contracts::ExprFailure> {
|
|
583
557
|
${portRows}
|
|
@@ -604,6 +578,244 @@ ${materialize}
|
|
|
604
578
|
return ExecOutcome::Ok(Value::Null);
|
|
605
579
|
}`;
|
|
606
580
|
}
|
|
581
|
+
/**
|
|
582
|
+
* collectTypedNodes — component の body ノードで outType を持つもの(componentRef / map / cond)を
|
|
583
|
+
* id → 結果 TypeRef に index 化する(#66: map/cond も struct 空間で結果を保持)。
|
|
584
|
+
*/
|
|
585
|
+
function collectTypedNodes(comp, plan) {
|
|
586
|
+
const typedNodes = new Map();
|
|
587
|
+
for (const n of comp.body) {
|
|
588
|
+
const ot = n.outType;
|
|
589
|
+
if (ot !== undefined)
|
|
590
|
+
typedNodes.set(n.id, deriveTypeRef(ot, plan));
|
|
591
|
+
}
|
|
592
|
+
return typedNodes;
|
|
593
|
+
}
|
|
594
|
+
/**
|
|
595
|
+
* emitStoreTypedNodeRust — raw な `&Value` 式(`srcExpr`)を node の outType(`ref`)へ **fail-closed**
|
|
596
|
+
* de-box し、typed cell(RefCell<T>)へ格納する Rust match block を返す(indent = 4-space 段)。named→
|
|
597
|
+
* marshal_T*、scalar/arr/opt→materialize_node_*、注記無し→捨てる。componentRef / cond の結果格納で共有。
|
|
598
|
+
* これらは `?` を使わず(closure が Result を返さない)BehaviorError を err_cell へ写す。`nodeIdForFn` は
|
|
599
|
+
* materialize_node_* の名前生成に使う node id(cond/componentRef とも op.id)。
|
|
600
|
+
*/
|
|
601
|
+
function emitStoreTypedNodeRust(nodeId, srcExpr, ref, indent) {
|
|
602
|
+
const pad = " ".repeat(indent);
|
|
603
|
+
if (ref === undefined) {
|
|
604
|
+
return `${pad}let _ = ${srcExpr};`;
|
|
605
|
+
}
|
|
606
|
+
const call = ref.kind === "named" ? `marshal_${ref.name}(${srcExpr})` : `materialize_node_${typedCell(nodeId)}(${srcExpr})`;
|
|
607
|
+
return `${pad}match ${call} {
|
|
608
|
+
${pad} Ok(tv) => { *${typedCell(nodeId)}.borrow_mut() = tv; }
|
|
609
|
+
${pad} Err(e) => {
|
|
610
|
+
${pad} *err_cell = Some(e);
|
|
611
|
+
${pad} return ExecOutcome::Error("aborted".to_string());
|
|
612
|
+
${pad} }
|
|
613
|
+
${pad}}`;
|
|
614
|
+
}
|
|
615
|
+
/**
|
|
616
|
+
* emitTypedCondArm — typed cond の struct-native exec(#66)。cond は純 Expression(handler 非呼び)。
|
|
617
|
+
* `{cond:[if,then,else]}` を primitive(primitives::cond。短絡・strict-bool の意味論 SSoT)で 1 式評価し、
|
|
618
|
+
* 選択枝の raw Value を outType struct へ **その場で marshal**(de-box 境界)して cell へ格納する。動的 Value
|
|
619
|
+
* node-result scope は組まない(両枝は同じ outType へ材化される)。
|
|
620
|
+
*/
|
|
621
|
+
function emitTypedCondArm(op, _compName, typedNodes, _plan) {
|
|
622
|
+
const ref = typedNodes.get(op.id);
|
|
623
|
+
const store = emitStoreTypedNodeRust(op.id, "&cond_raw", ref, 4);
|
|
624
|
+
return ` if i == ${op.index} {
|
|
625
|
+
let cond_raw: Value = match ${op.expr} {
|
|
626
|
+
Ok(v) => v,
|
|
627
|
+
Err(e) => {
|
|
628
|
+
*err_cell = Some(e.into());
|
|
629
|
+
return ExecOutcome::Error("aborted".to_string());
|
|
630
|
+
}
|
|
631
|
+
};
|
|
632
|
+
${store}
|
|
633
|
+
return ExecOutcome::Ok(Value::Null);
|
|
634
|
+
}`;
|
|
635
|
+
}
|
|
636
|
+
/**
|
|
637
|
+
* emitTypedMapArm — typed map の struct-native exec(#66)。node 結果型は {arr:elemType}(`outType`)。要素を
|
|
638
|
+
* 反復し、guard(primitives::cond・strict-bool SSoT)で skip、per-element ports を要素 scope(mscope = input
|
|
639
|
+
* params + `as`→要素値)で native/primitive 評価、handler を呼び、その **raw 結果を要素 struct へ marshal**
|
|
640
|
+
* (de-box 境界)して `Vec<elemStruct>` を組み、cell へ格納する(動的 Value collected list は作らない)。batched
|
|
641
|
+
* は guard 通過全要素 ports を 1 回の handler 呼びへ。into は over 要素へ handler 結果を zip-attach した augment
|
|
642
|
+
* 済み Value を **要素 struct へ marshal**(over 要素=入力境界 Value・into 値=handler raw の局所合流→marshal で
|
|
643
|
+
* de-box。動的 output tree は組まない)。plan.concurrency は外側の run_plan primitive が保存する(map=1 op)。
|
|
644
|
+
*/
|
|
645
|
+
function emitTypedMapArm(op, compName, typedNodes, _plan) {
|
|
646
|
+
const ref = typedNodes.get(op.id);
|
|
647
|
+
if (ref === undefined || ref.kind !== "arr") {
|
|
648
|
+
throw new GeneratorFailure("UNSUPPORTED_NODE_STRAIGHTLINE", `rust-typed struct-native map: node '${op.id}' has no {arr:elemType} outType (got ${ref ? JSON.stringify(ref.kind) : "no outType"}). A typed map must annotate its result element type to de-box into a native Vec<T>; otherwise regenerate as untyped straight-line. Do not fall back to a dynamic Value collected list.`);
|
|
649
|
+
}
|
|
650
|
+
// #66 hardening: a typed map combining `when` (guard) AND `into` yields
|
|
651
|
+
// HETEROGENEOUS elements (skipped elements lack the `into` field) that cannot
|
|
652
|
+
// de-box into a single Vec<T>. Reject loudly at generation time rather than
|
|
653
|
+
// emitting a module that only fail-closes (MISSING_PROP) at runtime on a skip.
|
|
654
|
+
if (op.guard !== undefined && op.into !== undefined) {
|
|
655
|
+
throw new GeneratorFailure("UNSUPPORTED_NODE_STRAIGHTLINE", `rust-typed struct-native map: node '${op.id}' combines 'when' (guard) and 'into', which produces heterogeneous elements (skipped elements lack the 'into' field) that cannot de-box into a single Vec<T>. Regenerate this map as untyped straight-line, or split guard and into. Do not emit a struct-native map that fail-closes only at runtime.`);
|
|
656
|
+
}
|
|
657
|
+
const elemRef = ref.elem;
|
|
658
|
+
const elemTy = renderTypeRef(elemRef);
|
|
659
|
+
const comp = rustStrLit(op.component);
|
|
660
|
+
const nodeId = rustStrLit(op.id);
|
|
661
|
+
const asKey = rustStrLit(op.as);
|
|
662
|
+
const elemMat = mapElemMaterializerNameRust(compName, op.id);
|
|
663
|
+
// mscope: input params(port_scope)に `as`→要素値 を足す(node-result Value scope は組まない)。
|
|
664
|
+
const mscope = ` let mscope = || -> Vec<(String, Value)> {
|
|
665
|
+
let mut s = ${PORT_SCOPE};
|
|
666
|
+
s.push((${asKey}.to_string(), el.clone()));
|
|
667
|
+
s
|
|
668
|
+
};
|
|
669
|
+
let _ = &mscope;`;
|
|
670
|
+
const guardBlock = op.guard === undefined
|
|
671
|
+
? ""
|
|
672
|
+
: `
|
|
673
|
+
let gkeep = {
|
|
674
|
+
${mscope}
|
|
675
|
+
match ${op.guard} {
|
|
676
|
+
Ok(v) => matches!(v, Value::Bool(true)),
|
|
677
|
+
Err(e) => {
|
|
678
|
+
*err_cell = Some(e.into());
|
|
679
|
+
return ExecOutcome::Error("aborted".to_string());
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
};
|
|
683
|
+
if !gkeep {
|
|
684
|
+
continue;
|
|
685
|
+
}`;
|
|
686
|
+
const portRows = op.ports.length === 0
|
|
687
|
+
? "Ok(Vec::new())"
|
|
688
|
+
: `Ok(vec![\n${op.ports
|
|
689
|
+
.map((pt) => ` (${rustStrLit(pt.name)}.to_string(), (${pt.expr})?),`)
|
|
690
|
+
.join("\n")}\n ])`;
|
|
691
|
+
const portEval = `
|
|
692
|
+
let eval_ports = || -> Result<Vec<(String, Value)>, behavior_contracts::ExprFailure> {
|
|
693
|
+
${mscope}
|
|
694
|
+
${portRows}
|
|
695
|
+
};
|
|
696
|
+
let ports = match eval_ports() {
|
|
697
|
+
Ok(p) => p,
|
|
698
|
+
Err(e) => {
|
|
699
|
+
*err_cell = Some(e.into());
|
|
700
|
+
return ExecOutcome::Error("aborted".to_string());
|
|
701
|
+
}
|
|
702
|
+
};`;
|
|
703
|
+
// guard 通過要素の handler raw 結果を貯める(into でも collected でも per-element raw)。
|
|
704
|
+
const collectLoop = op.batched
|
|
705
|
+
? ` let mut items: Vec<Value> = Vec::new();
|
|
706
|
+
for (mi, el) in over_arr.iter().enumerate() {${guardBlock}${portEval}
|
|
707
|
+
items.push(Value::Obj(ports));
|
|
708
|
+
kept_idx.push(mi);
|
|
709
|
+
}
|
|
710
|
+
let elem_raws: Vec<Value> = if items.is_empty() {
|
|
711
|
+
Vec::new()
|
|
712
|
+
} else {
|
|
713
|
+
let want = items.len();
|
|
714
|
+
let batch_ports = vec![("items".to_string(), Value::Arr(items))];
|
|
715
|
+
match handlers.exec_ctx(${nodeId}, ${comp}, &batch_ports, None) {
|
|
716
|
+
None => {
|
|
717
|
+
*err_cell = Some(unknown_component(${comp}));
|
|
718
|
+
return ExecOutcome::Error("aborted".to_string());
|
|
719
|
+
}
|
|
720
|
+
Some(ExecOutcome::Error(e)) => return ExecOutcome::Error(e),
|
|
721
|
+
Some(ExecOutcome::Ok(v)) => match v {
|
|
722
|
+
Value::Arr(r) if r.len() == want => r,
|
|
723
|
+
_ => {
|
|
724
|
+
*err_cell = Some(behavior_contracts::BehaviorError::new(
|
|
725
|
+
"MAP_BATCH_RESULT_MISMATCH",
|
|
726
|
+
format!("map '${op.id}': batched handler must return a list aligned to items (want {want})"),
|
|
727
|
+
));
|
|
728
|
+
return ExecOutcome::Error("aborted".to_string());
|
|
729
|
+
}
|
|
730
|
+
},
|
|
731
|
+
}
|
|
732
|
+
};`
|
|
733
|
+
: ` let mut elem_raws: Vec<Value> = Vec::with_capacity(over_arr.len());
|
|
734
|
+
for (mi, el) in over_arr.iter().enumerate() {${guardBlock}${portEval}
|
|
735
|
+
match handlers.exec_ctx(${nodeId}, ${comp}, &ports, Some(el)) {
|
|
736
|
+
None => {
|
|
737
|
+
*err_cell = Some(unknown_component(${comp}));
|
|
738
|
+
return ExecOutcome::Error("aborted".to_string());
|
|
739
|
+
}
|
|
740
|
+
Some(ExecOutcome::Error(e)) => return ExecOutcome::Error(e),
|
|
741
|
+
Some(ExecOutcome::Ok(v)) => elem_raws.push(v),
|
|
742
|
+
}
|
|
743
|
+
kept_idx.push(mi);
|
|
744
|
+
}`;
|
|
745
|
+
// 要素 struct へ **fail-closed** de-box して Vec<elemStruct> を組み、cell へ格納(動的 Value list は作らない)。
|
|
746
|
+
const buildTyped = op.into === undefined
|
|
747
|
+
? ` let mut typed: Vec<${elemTy}> = Vec::with_capacity(elem_raws.len());
|
|
748
|
+
for er in elem_raws.iter() {
|
|
749
|
+
match ${elemMat}(er) {
|
|
750
|
+
Ok(tv) => typed.push(tv),
|
|
751
|
+
Err(e) => {
|
|
752
|
+
*err_cell = Some(e);
|
|
753
|
+
return ExecOutcome::Error("aborted".to_string());
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
*${typedCell(op.id)}.borrow_mut() = typed;`
|
|
758
|
+
: ` let mut typed: Vec<${elemTy}> = Vec::with_capacity(over_arr.len());
|
|
759
|
+
let mut mk = 0usize;
|
|
760
|
+
for (mj, oel) in over_arr.iter().enumerate() {
|
|
761
|
+
let elem_val: Value = if mk < kept_idx.len() && kept_idx[mk] == mj {
|
|
762
|
+
let merged = match oel {
|
|
763
|
+
Value::Obj(pairs) => {
|
|
764
|
+
let mut next: Vec<(String, Value)> = pairs.clone();
|
|
765
|
+
if let Some(slot) = next.iter_mut().find(|(kk, _)| kk == ${rustStrLit(op.into ?? "")}) {
|
|
766
|
+
slot.1 = elem_raws[mk].clone();
|
|
767
|
+
} else {
|
|
768
|
+
next.push((${rustStrLit(op.into ?? "")}.to_string(), elem_raws[mk].clone()));
|
|
769
|
+
}
|
|
770
|
+
Value::Obj(next)
|
|
771
|
+
}
|
|
772
|
+
_ => {
|
|
773
|
+
*err_cell = Some(behavior_contracts::BehaviorError::new(
|
|
774
|
+
"MAP_INTO_ELEMENT_NOT_OBJECT",
|
|
775
|
+
format!("map '${op.id}': 'into' requires object elements (element {mj} is not an object)"),
|
|
776
|
+
));
|
|
777
|
+
return ExecOutcome::Error("aborted".to_string());
|
|
778
|
+
}
|
|
779
|
+
};
|
|
780
|
+
mk += 1;
|
|
781
|
+
merged
|
|
782
|
+
} else {
|
|
783
|
+
oel.clone()
|
|
784
|
+
};
|
|
785
|
+
match ${elemMat}(&elem_val) {
|
|
786
|
+
Ok(tv) => typed.push(tv),
|
|
787
|
+
Err(e) => {
|
|
788
|
+
*err_cell = Some(e);
|
|
789
|
+
return ExecOutcome::Error("aborted".to_string());
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
*${typedCell(op.id)}.borrow_mut() = typed;`;
|
|
794
|
+
return ` if i == ${op.index} {
|
|
795
|
+
let over_arr: Vec<Value> = match ${op.over} {
|
|
796
|
+
Ok(Value::Arr(a)) => a,
|
|
797
|
+
Ok(_) => {
|
|
798
|
+
*err_cell = Some(behavior_contracts::BehaviorError::new(
|
|
799
|
+
"MAP_OVER_NOT_ARRAY",
|
|
800
|
+
"map '${op.id}': 'over' did not evaluate to an array".to_string(),
|
|
801
|
+
));
|
|
802
|
+
return ExecOutcome::Error("aborted".to_string());
|
|
803
|
+
}
|
|
804
|
+
Err(e) => {
|
|
805
|
+
*err_cell = Some(e.into());
|
|
806
|
+
return ExecOutcome::Error("aborted".to_string());
|
|
807
|
+
}
|
|
808
|
+
};
|
|
809
|
+
let mut kept_idx: Vec<usize> = Vec::new();
|
|
810
|
+
${collectLoop}
|
|
811
|
+
${buildTyped}
|
|
812
|
+
return ExecOutcome::Ok(Value::Null);
|
|
813
|
+
}`;
|
|
814
|
+
}
|
|
815
|
+
/** typed map の要素 fail-closed 材化関数名(component 名で namespace・rust)。 */
|
|
816
|
+
function mapElemMaterializerNameRust(compName, nodeId) {
|
|
817
|
+
return `materialize_map_elem_${rustStraightlineInternals.sanitize(compName)}_${nodeId.replace(/[^A-Za-z0-9_]/g, "_")}`;
|
|
818
|
+
}
|
|
607
819
|
/**
|
|
608
820
|
* emitNodeMaterializers — scalar/arr/opt を outType に持つ typed **node** 用の材化関数
|
|
609
821
|
* `materialize_node_cell_*(&Value) -> Result<T, BehaviorError>` を emit する(named node は marshal_T* を
|
|
@@ -620,6 +832,34 @@ function emitNodeMaterializers(comp, typedNodes, plan) {
|
|
|
620
832
|
}
|
|
621
833
|
return parts.join("\n\n");
|
|
622
834
|
}
|
|
835
|
+
/**
|
|
836
|
+
* emitMapElemMaterializersRust — typed map node(outType {arr:elemType})の要素 fail-closed 材化関数
|
|
837
|
+
* `materialize_map_elem_<comp>_<id>(raw: &Value) -> Result<elemT, BehaviorError>` を emit する(#66)。
|
|
838
|
+
* emitFieldMaterialize を再利用し、marshaller と同型の TYPE_MISMATCH/MISSING_PROP で loud reject する。
|
|
839
|
+
*/
|
|
840
|
+
function emitMapElemMaterializersRust(comp, plan) {
|
|
841
|
+
const parts = [];
|
|
842
|
+
for (const n of comp.body) {
|
|
843
|
+
if (!("map" in n))
|
|
844
|
+
continue;
|
|
845
|
+
const ot = n.outType;
|
|
846
|
+
if (ot === undefined)
|
|
847
|
+
continue;
|
|
848
|
+
const ref = deriveTypeRef(ot, plan);
|
|
849
|
+
if (ref.kind !== "arr")
|
|
850
|
+
continue;
|
|
851
|
+
const elemRef = ref.elem;
|
|
852
|
+
const ty = renderTypeRef(elemRef);
|
|
853
|
+
const fn = mapElemMaterializerNameRust(comp.name, n.id);
|
|
854
|
+
// named 要素は marshal_T*(raw) を直接返す(clippy::needless_question_mark 回避)。それ以外は
|
|
855
|
+
// materialize block を Ok(...) で包む(emitFieldMaterialize は末尾式・error は内部 return)。
|
|
856
|
+
const inner = elemRef.kind === "named"
|
|
857
|
+
? `marshal_${elemRef.name}(raw)`
|
|
858
|
+
: `Ok(${indentBlock(emitFieldMaterialize("raw", elemRef, plan), 1).trimStart()})`;
|
|
859
|
+
parts.push(`#[allow(dead_code)]\nfn ${fn}(raw: &Value) -> Result<${ty}, BehaviorError> {\n ${inner}\n}`);
|
|
860
|
+
}
|
|
861
|
+
return parts.join("\n\n");
|
|
862
|
+
}
|
|
623
863
|
// ── module 綴じ(straight-line 本体を流用 + typed 層)──────────────────────────────
|
|
624
864
|
function hasAnyTypeAnnotation(ctx) {
|
|
625
865
|
for (const comp of ctx.ir.components) {
|
|
@@ -736,12 +976,14 @@ function injectTypedDispatch(code, ctx) {
|
|
|
736
976
|
throw new Error(`rust-typed emit: could not find the straight-line dispatch arm for typed component '${c.name}'`);
|
|
737
977
|
}
|
|
738
978
|
out = out.replace(arm, typedArm);
|
|
739
|
-
// (2) 差し替えで dead になる straight-line 定義に allow を付す。
|
|
979
|
+
// (2) 差し替えで dead になる straight-line 定義に allow を付す。dead な本体(typed dispatch が SSoT に
|
|
980
|
+
// なるので実行されない)に対し dead_code だけでなく、body 内で発火し得る lint(未使用 handler・
|
|
981
|
+
// map の static-string format! など。#66 で map/cond typed component も dead 化するため)も抑止する。
|
|
740
982
|
const def = `fn run_${fn}<H: ComponentExec>(`;
|
|
741
983
|
if (!out.includes(def)) {
|
|
742
984
|
throw new Error(`rust-typed emit: could not find the straight-line fn definition for typed component '${c.name}'`);
|
|
743
985
|
}
|
|
744
|
-
out = out.replace(def, `#[allow(dead_code)]\n${def}`);
|
|
986
|
+
out = out.replace(def, `#[allow(dead_code, unused_variables, clippy::useless_format)]\n${def}`);
|
|
745
987
|
}
|
|
746
988
|
return out;
|
|
747
989
|
}
|
|
@@ -759,21 +1001,33 @@ function emit(ctx) {
|
|
|
759
1001
|
const marshallers = rustTypedMaterializer.emitMarshallers(plan);
|
|
760
1002
|
const serializers = emitSerializers(plan);
|
|
761
1003
|
const marshalHelpers = emitMarshalHelpers();
|
|
762
|
-
// node 材化関数(scalar/arr/opt outType node 用)を全 typed component
|
|
1004
|
+
// node 材化関数(scalar/arr/opt outType node 用)を全 typed component から集める(#66: cond も対象。
|
|
1005
|
+
// map は要素材化 materialize_map_elem_* が別途担うので除外)。
|
|
763
1006
|
const nodeMaterializers = [];
|
|
764
1007
|
for (const comp of ctx.ir.components) {
|
|
765
1008
|
if (!isTypedComponent(comp))
|
|
766
1009
|
continue;
|
|
767
1010
|
const typedNodes = new Map();
|
|
768
1011
|
for (const n of comp.body) {
|
|
1012
|
+
if ("map" in n)
|
|
1013
|
+
continue;
|
|
769
1014
|
const ot = n.outType;
|
|
770
|
-
if (ot !== undefined
|
|
1015
|
+
if (ot !== undefined)
|
|
771
1016
|
typedNodes.set(n.id, deriveTypeRef(ot, plan));
|
|
772
1017
|
}
|
|
773
1018
|
const nm = emitNodeMaterializers(comp, typedNodes, plan);
|
|
774
1019
|
if (nm)
|
|
775
1020
|
nodeMaterializers.push(nm);
|
|
776
1021
|
}
|
|
1022
|
+
// typed map の要素 fail-closed 材化関数(#66)。
|
|
1023
|
+
const mapElemMaterializers = [];
|
|
1024
|
+
for (const comp of ctx.ir.components) {
|
|
1025
|
+
if (!isTypedComponent(comp))
|
|
1026
|
+
continue;
|
|
1027
|
+
const me = emitMapElemMaterializersRust(comp, plan);
|
|
1028
|
+
if (me)
|
|
1029
|
+
mapElemMaterializers.push(me);
|
|
1030
|
+
}
|
|
777
1031
|
const runners = ctx.ir.components
|
|
778
1032
|
.filter((c) => isTypedComponent(c))
|
|
779
1033
|
.map((c) => emitTypedRunner(c, plan))
|
|
@@ -799,6 +1053,9 @@ use std::cell::RefCell;`;
|
|
|
799
1053
|
nodeMaterializers.length
|
|
800
1054
|
? `// scalar/arr/opt node materializers: concrete de-box for typed nodes whose outType is not a named obj.\n${nodeMaterializers.join("\n\n")}`
|
|
801
1055
|
: undefined,
|
|
1056
|
+
mapElemMaterializers.length
|
|
1057
|
+
? `// typed map element materializers (#66): FAIL-CLOSED de-box of each map element into the Vec<T> element type.\n${mapElemMaterializers.join("\n\n")}`
|
|
1058
|
+
: undefined,
|
|
802
1059
|
serializers
|
|
803
1060
|
? `// typed -> Value serializers (final return boundary only): canonical observation for the equivalence pin.\n${serializers}`
|
|
804
1061
|
: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-straightline-typed-rust.js","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-rust.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emit-straightline-typed-rust.js","sourceRoot":"","sources":["../../src/generator/emit-straightline-typed-rust.ts"],"names":[],"mappings":"AAuCA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EACL,aAAa,EACb,aAAa,EACb,QAAQ,GAKT,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAuB,MAAM,mBAAmB,CAAC;AAG5E,8CAA8C;AAC9C,MAAM,CAAC,GAAG,yBAAyB,CAAC,CAAC,CAAC;AACtC,0FAA0F;AAC1F,MAAM,UAAU,GAAG,cAAc,CAAC;AAElC,iFAAiF;AAEjF,4EAA4E;AAC5E,SAAS,UAAU,CAAC,MAAoD;IACtE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,KAAK,CAAC;QACf,KAAK,OAAO;YACV,OAAO,KAAK,CAAC;QACf,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM;YACT,4DAA4D;YAC5D,OAAO,OAAO,CAAC;IACnB,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,SAAS,aAAa,CAAC,GAAY;IACjC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,KAAK,KAAK;YACR,6CAA6C;YAC7C,OAAO,UAAU,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;QAC/C,KAAK,KAAK;YACR,OAAO,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3C,KAAK,OAAO;YACV,OAAO,GAAG,CAAC,IAAI,CAAC;IACpB,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,SAAS,aAAa,CAAC,IAAY;IACjC,gEAAgE;IAChE,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAC/C,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;IAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,IAAI,GAAG,IAAI,CAAC;IACnC,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,IAAI,EAAE,CAAC;IAChD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,qDAAqD;AACrD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI;IAC3F,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ;IAC/F,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO;IAC9F,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU;IAC1F,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;CAChE,CAAC,CAAC;AAEH,8BAA8B;AAC9B,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,qDAAqD;AACrD,SAAS,WAAW,CAAC,EAAU;IAC7B,IAAI,EAAE,KAAK,GAAG;QAAE,OAAO,OAAO,CAAC;IAC/B,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,QAAQ,CAAC;IACjC,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IAChC,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IAChC,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IAChC,2EAA2E;IAC3E,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;IAC9B,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;IACjE,OAAO,IAAI,EAAE,GAAG,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,GAAY,EAAE,IAAc;IACjD,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,4BAA4B;QAC5D,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,CAAC,6BAA6B;QAC5C,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,CAAC,sBAAsB;QACrC,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9E,CAAC;IACH,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,SAAS,aAAa,CAAC,IAAc;IACnC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,IAAI,CAAC,KAAK;SACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM;aACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;aAClG,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,kFAAkF;QAClF,qFAAqF;QACrF,0EAA0E;QAC1E,0FAA0F;QAC1F,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;QAClG,OAAO,YAAY,OAAO,mCAAmC,CAAC,CAAC,IAAI,OAAO,MAAM,KAAK,CAAC;IACxF,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,IAAc;IACrC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAW,EAAE,IAAc;IACpD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,iFAAiF;IACjF,8EAA8E;IAC9E,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,2BAA2B,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC;IACtF,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CACR,kDAAkD,UAAU,CAAC,iBAAiB,CAAC,CAAC,IAAI,sBAAsB,CAAC,wBAAwB,CACpI,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrB,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,SAAS,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,WAAW,QAAQ,MAAM,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,0DAA0D,MAAM,KAAK,CAAC,CAAC;QAClF,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CACR,uDAAuD,UAAU,CAAC,iBAAiB,CAAC,CAAC,IAAI,sBAAsB,CAAC,KAAK,MAAM,KAAK,CACjI,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,UAAU,CAAC,IAAI,CAAC,WAAW,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,4CAA4C;AAC5C,SAAS,WAAW,CAAC,KAAa,EAAE,MAAc;IAChD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,KAAK;SACT,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;SAC1C,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,GAAW,EAAE,GAAY,EAAE,IAAc;IACrE,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC1B,gCAAgC;gBAChC,OAAO,GAAG,GAAG,UAAU,CAAC;YAC1B,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YACzH,oCAAoC;YACpC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1D,OAAO;gBACL,SAAS,GAAG,IAAI;gBAChB,cAAc,OAAO,UAAU,IAAI,GAAG;gBACtC,8CAA8C,UAAU,CAAC,2BAA2B,GAAG,CAAC,MAAM,QAAQ,CAAC,wBAAwB;gBAC/H,GAAG;aACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,WAAW,GAAG,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC;QACxC,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,oBAAoB,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/D,OAAO;gBACL,SAAS,GAAG,IAAI;gBAChB,4BAA4B;gBAC5B,4BAA4B,MAAM,sCAAsC;gBACxE,wCAAwC;gBACxC,8BAA8B,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG;gBAClE,iCAAiC;gBACjC,WAAW;gBACX,aAAa;gBACb,OAAO;gBACP,8CAA8C,UAAU,CAAC,mCAAmC,CAAC,wBAAwB;gBACrH,GAAG;aACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjE,OAAO;gBACL,SAAS,GAAG,IAAI;gBAChB,0BAA0B;gBAC1B,oBAAoB;gBACpB,2BAA2B,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG;gBAC/D,yBAAyB;gBACzB,OAAO;gBACP,GAAG;aACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,OAAe,EAAE,GAAY,EAAE,IAAc;IACpE,iEAAiE;IACjE,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,WAAW,GAAG,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC;IACpE,gEAAgE;IAChE,OAAO,iBAAiB,OAAO,KAAK,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC;AACvG,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CACvB,QAAgB,EAChB,OAAgB,EAChB,MAAgB,EAChB,IAAc;IAEd,IAAI,IAAI,GAAG,QAAQ,CAAC;IACpB,IAAI,GAAG,GAAG,OAAO,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnG,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,yBAAyB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACtF,IAAI,GAAG,GAAG,IAAI,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,mCAAmC;QACzE,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;IACjB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,SAAiB,EAAE,GAAY,EAAE,IAAc;IACrE,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,OAAO,GAAG,CAAC,IAAI,IAAI,SAAS,GAAG,CAAC;QACzC,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;gBACnB,KAAK,QAAQ;oBACX,OAAO,cAAc,SAAS,GAAG,CAAC;gBACpC,KAAK,KAAK;oBACR,OAAO,cAAc,SAAS,GAAG,CAAC;gBACpC,KAAK,OAAO;oBACV,OAAO,gBAAgB,SAAS,GAAG,CAAC;gBACtC,KAAK,MAAM;oBACT,OAAO,eAAe,SAAS,GAAG,CAAC;gBACrC,KAAK,MAAM;oBACT,sCAAsC;oBACtC,OAAO,GAAG,SAAS,EAAE,CAAC;YAC1B,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,OAAO,cAAc,SAAS,wBAAwB,MAAM,KAAK,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC;QACrH,CAAC;QACD,KAAK,KAAK;YACR,OAAO,SAAS,SAAS,qBAAqB,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,yBAAyB,CAAC;IACpH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,aAAa;IACb,aAAa;IACb,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,cAAc;CACf,CAAC;AAEF,8EAA8E;AAE9E,8FAA8F;AAC9F,SAAS,eAAe,CAAC,IAAc;IACrC,OAAO,IAAI,CAAC,KAAK;SACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM;aAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,cAAc,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;aACzH,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,iFAAiF;QACjF,sDAAsD;QACtD,OAAO,+BAA+B,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,uCAAuC,IAAI,aAAa,CAAC;IACpH,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,iFAAiF;AAEjF,sEAAsE;AACtE,SAAS,SAAS,CAAC,MAAc;IAC/B,OAAO,QAAQ,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,qEAAqE;AACrE,SAAS,SAAS,CAAC,IAAa;IAC9B,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACvF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7D,MAAM,IAAI,GAAI,IAAyB,CAAC,GAAG,CAAC;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IACxF,OAAO,IAAgB,CAAC;AAC1B,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,cAAc,CACrB,IAAa,EACb,QAA6B,EAC7B,UAAgC,EAChC,IAAc;IAEd,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,+EAA+E;YAC/E,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;YACtC,oFAAoF;YACpF,6FAA6F;YAC7F,0EAA0E;YAC1E,MAAM,gBAAgB,GACpB,IAAI,CAAC,MAAM,KAAK,CAAC;gBACjB,OAAO,CAAC,IAAI,KAAK,QAAQ;gBACzB,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;YACxF,MAAM,IAAI,GAAG,gBAAgB;gBAC3B,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW;gBAChC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC3E,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QACvB,CAAC;QACD,oFAAoF;QACpF,0DAA0D;QAC1D,IAAI,QAAQ;YAAE,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;QACrG,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;IACnD,CAAC;IAED,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAA+B,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACpF,oDAAoD;YACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAE,CAAC;YAC5C,MAAM,MAAM,GAAI,IAAyC,CAAC,GAAG,CAAC;YAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAClC,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;gBACrE,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;YACjD,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;QAC7E,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAClF,MAAM,KAAK,GAAI,IAA2B,CAAC,GAAG,CAAC;YAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YACxF,OAAO,EAAE,IAAI,EAAE,gBAAgB,MAAM,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;QAC7F,CAAC;QACD,uFAAuF;QACvF,qFAAqF;QACrF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxH,MAAM,KAAK,GAAI,IAA8B,CAAC,MAAM,CAAC;YACrD,2EAA2E;YAC3E,sFAAsF;YACtF,qEAAqE;YACrE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC7B,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAC1B,kFAAkF;oBAClF,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBACrB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;wBAAE,OAAO,YAAY,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACrE,OAAO,gBAAgB,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC3C,CAAC;gBACD,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;gBACtF,OAAO,kBAAkB,GAAG,CAAC,IAAI,KAAK,CAAC;YACzC,CAAC,CAAC,CAAC;YACH,OAAO;gBACL,IAAI,EAAE,kCAAkC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ;gBAChE,GAAG,EAAE,QAAQ;aACd,CAAC;QACJ,CAAC;QACD,8EAA8E;QAC9E,4EAA4E;QAC5E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,gBAAgB,CACxB,+BAA+B,EAC/B,8CAA8C,IAAI,CAAC,CAAC,CAAC,yMAAyM,CAC/P,CAAC;QACJ,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3C,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IACnE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;AAC1D,CAAC;AAED,2FAA2F;AAC3F,SAAS,SAAS,CAAC,IAAc;IAC/B,OAAO,eAAe,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,UAAU,GAAG,CAAC;AAC5E,CAAC;AAED,oDAAoD;AACpD,SAAS,SAAS,CAAC,IAAa,EAAE,MAAoD;IACpF,IAAI,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;IAC9F,IAAI,MAAM,KAAK,MAAM,IAAI,OAAO,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACnF,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAQ,IAAgC,CAAC,GAAG,KAAK,QAAQ;YACxG,OAAO,GAAI,IAA+B,CAAC,GAAG,KAAK,CAAC;QACtD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,GAAG,IAAI,KAAK,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAQ,IAAgC,CAAC,KAAK,KAAK,QAAQ;YAC1G,OAAO,GAAI,IAA+B,CAAC,KAAK,KAAK,CAAC;QACxD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,GAAG,IAAI,KAAK,CAAC;IACpD,CAAC;IACD,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,aAAa,CAAC;IAC5C,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,MAAM,EAAE,CAAC,CAAC;AAC1G,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAa;IACrC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,aAAa,CAAC;IACxC,IAAI,OAAO,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACxF,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,cAAc,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC;IACnF,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,eAAe,CAAC,IAAe,EAAE,IAAc;IACtD,MAAM,EAAE,GAAG,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,4EAA4E;IAC5E,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,yBAAyB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEtF,iFAAiF;IACjF,8EAA8E;IAC9E,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEjD,oEAAoE;IACpE,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,WAAW,SAAS,CAAC,EAAE,CAAC,aAAa,aAAa,CAAC,GAAG,CAAC,uCAAuC,CAAC;SAClH,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjG,6FAA6F;IAC7F,2DAA2D;IAC3D,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;IAC1F,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;IAE7D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI;QACxB,CAAC,CAAC,yBAAyB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QACtD,CAAC,CAAC,MAAM,CAAC;IAEX,sEAAsE;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChG,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC;IACtC,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IAElG,MAAM,UAAU,GAAG,yBAAyB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAEnE,OAAO,gBAAgB,EAAE;;;;;;yBAMF,IAAI,CAAC,IAAI;;eAEnB,EAAE;MACX,YAAY;;;6BAGW,UAAU;;;;;EAKrC,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;EAgBjC,IAAI;;;;mBAIa,QAAQ;;;;;;;;;;wBAUH,GAAG,CAAC,IAAI;SACvB,UAAU;EACjB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,EAAkB,EAAE,QAAgB,EAAE,UAAgC,EAAE,IAAc;IAC9G,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAC9E,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAChF,MAAM,QAAQ,GACZ,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QACnB,CAAC,CAAC,gCAAgC;QAClC,CAAC,CAAC,6BAA6B,EAAE,CAAC,KAAK;aAClC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,wBAAwB,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,MAAM,CAAC;aACvF,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC;IAE1C,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClC,uFAAuF;IACvF,MAAM,WAAW,GAAG,sBAAsB,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAE/D,OAAO,uBAAuB,EAAE,CAAC,KAAK;;EAEtC,QAAQ;;;;;;;;;wDAS8C,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC;;;6DAGzC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC;;;;;;;;EAQnF,WAAW;;cAEC,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,IAAe,EAAE,IAAc;IACxD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAI,CAAgC,CAAC,OAAO,CAAC;QACrD,IAAI,EAAE,KAAK,SAAS;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,MAAc,EAAE,OAAe,EAAE,GAAwB,EAAE,MAAc;IACvG,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,GAAG,GAAG,WAAW,OAAO,GAAG,CAAC;IACrC,CAAC;IACD,MAAM,IAAI,GACR,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,oBAAoB,SAAS,CAAC,MAAM,CAAC,IAAI,OAAO,GAAG,CAAC;IACjH,OAAO,GAAG,GAAG,SAAS,IAAI;EAC1B,GAAG,oBAAoB,SAAS,CAAC,MAAM,CAAC;EACxC,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG,GAAG,CAAC;AACT,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,EAA6C,EAAE,SAAiB,EAAE,UAAgC,EAAE,KAAe;IAC3I,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,sBAAsB,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACjE,OAAO,uBAAuB,EAAE,CAAC,KAAK;8CACM,EAAE,CAAC,IAAI;;;;;;;EAOnD,KAAK;;cAEO,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,eAAe,CAAC,EAA4C,EAAE,QAAgB,EAAE,UAAgC,EAAE,KAAe;IACxI,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC5C,MAAM,IAAI,gBAAgB,CACxB,+BAA+B,EAC/B,uCAAuC,EAAE,CAAC,EAAE,wCAAwC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,yLAAyL,CAC3T,CAAC;IACJ,CAAC;IACD,wEAAwE;IACxE,8EAA8E;IAC9E,4EAA4E;IAC5E,+EAA+E;IAC/E,IAAI,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACpD,MAAM,IAAI,gBAAgB,CACxB,+BAA+B,EAC/B,uCAAuC,EAAE,CAAC,EAAE,wSAAwS,CACrV,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;IACzB,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,2BAA2B,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAE7D,iFAAiF;IACjF,MAAM,MAAM,GAAG;sCACqB,UAAU;kCACd,KAAK;;;qCAGF,CAAC;IACpC,MAAM,UAAU,GACd,EAAE,CAAC,KAAK,KAAK,SAAS;QACpB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;;EAEN,MAAM;4BACoB,EAAE,CAAC,KAAK;;;;;;;;;;kBAUlB,CAAC;IACjB,MAAM,QAAQ,GACZ,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QACnB,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,aAAa,EAAE,CAAC,KAAK;aAClB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,4BAA4B,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,MAAM,CAAC;aAC3F,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC;IAC9C,MAAM,QAAQ,GAAG;;EAEjB,MAAM;sBACc,QAAQ;;;;;;;;mBAQX,CAAC;IAElB,wEAAwE;IACxE,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO;QAC5B,CAAC,CAAC;2DACqD,UAAU,GAAG,QAAQ;;;;;;;;;0CAStC,MAAM,KAAK,IAAI;;6DAEI,IAAI;;;;;;;;;gDASjB,EAAE,CAAC,EAAE;;;;;;eAMtC;QACX,CAAC,CAAC;2DACqD,UAAU,GAAG,QAAQ;0CACtC,MAAM,KAAK,IAAI;;6DAEI,IAAI;;;;;;;cAOnD,CAAC;IAEb,2FAA2F;IAC3F,MAAM,UAAU,GACd,EAAE,CAAC,IAAI,KAAK,SAAS;QACnB,CAAC,CAAC,kCAAkC,MAAM;;wBAExB,OAAO;;;;;;;;eAQhB,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,wBAAwB;QACjD,CAAC,CAAC,kCAAkC,MAAM;;;;;;;uFAOuC,UAAU,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;;;6CAGnE,UAAU,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;;;;;;;gDAOtB,EAAE,CAAC,EAAE;;;;;;;;;;wBAU7B,OAAO;;;;;;;;eAQhB,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,wBAAwB,CAAC;IAEtD,OAAO,uBAAuB,EAAE,CAAC,KAAK;+CACO,EAAE,CAAC,IAAI;;;;;gCAKtB,EAAE,CAAC,EAAE;;;;;;;;;;EAUnC,WAAW;EACX,UAAU;;cAEE,CAAC;AACf,CAAC;AAED,oEAAoE;AACpE,SAAS,2BAA2B,CAAC,QAAgB,EAAE,MAAc;IACnE,OAAO,wBAAwB,yBAAyB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC;AACzH,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,IAAe,EAAE,UAAgC,EAAE,IAAc;IAC9F,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;YAAE,SAAS;QACnC,MAAM,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CACR,4CAA4C,SAAS,CAAC,EAAE,CAAC,2BAA2B,EAAE,8BAA8B,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAC3J,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,SAAS,4BAA4B,CAAC,IAAe,EAAE,IAAc;IACnE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAAE,SAAS;QAC5B,MAAM,EAAE,GAAI,CAAgC,CAAC,OAAO,CAAC;QACrD,IAAI,EAAE,KAAK,SAAS;YAAE,SAAS;QAC/B,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACpC,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK;YAAE,SAAS;QACjC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;QACzB,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,EAAE,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACxD,2EAA2E;QAC3E,+EAA+E;QAC/E,MAAM,KAAK,GACT,OAAO,CAAC,IAAI,KAAK,OAAO;YACtB,CAAC,CAAC,WAAW,OAAO,CAAC,IAAI,OAAO;YAChC,CAAC,CAAC,MAAM,WAAW,CAAC,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC;QACtF,KAAK,CAAC,IAAI,CAAC,2BAA2B,EAAE,2BAA2B,EAAE,2BAA2B,KAAK,KAAK,CAAC,CAAC;IAC9G,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,4EAA4E;AAE5E,SAAS,oBAAoB,CAAC,GAAgB;IAC5C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC/C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI;YAAE,IAAK,CAAgC,CAAC,OAAO,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;IACtG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+CAA+C;AAC/C,SAAS,gBAAgB,CAAC,IAAe;IACvC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAgC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;AACxF,CAAC;AAED,+DAA+D;AAC/D,SAAS,kBAAkB;IACzB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCP,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,SAAS,YAAY,CAAC,IAAc;IAClC,OAAO,IAAI,CAAC,KAAK;SACd,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;SACpE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM;aACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;aAC3E,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,oBAAoB,CAAC,CAAC,IAAI,2CAA2C,CAAC,CAAC,IAAI,OAAO,MAAM,uBAAuB,CAAC;IACzH,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,4EAA4E;AAC5E,SAAS,WAAW,CAAC,GAAY;IAC/B,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,QAAQ;YACX,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;gBACnB,KAAK,QAAQ;oBACX,OAAO,eAAe,CAAC;gBACzB,KAAK,KAAK;oBACR,OAAO,MAAM,CAAC;gBAChB,KAAK,OAAO;oBACV,OAAO,MAAM,CAAC;gBAChB,KAAK,MAAM;oBACT,OAAO,OAAO,CAAC;gBACjB,KAAK,MAAM;oBACT,OAAO,aAAa,CAAC;YACzB,CAAC;YACD,MAAM;QACR,KAAK,KAAK;YACR,OAAO,MAAM,CAAC;QAChB,KAAK,KAAK;YACR,OAAO,YAAY,CAAC;QACtB,KAAK,OAAO;YACV,OAAO,GAAG,GAAG,CAAC,IAAI,aAAa,CAAC;IACpC,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,4CAA4C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACrF,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,mBAAmB,CAAC,IAAY,EAAE,GAAgB;IACzD,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAAE,SAAS;QACnC,MAAM,EAAE,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtD,0DAA0D;QAC1D,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,8BAA8B,CAAC;QAC7E,MAAM,QAAQ,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,8BAA8B,CAAC;QACxF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QACpH,CAAC;QACD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACjC,kFAAkF;QAClF,oEAAoE;QACpE,wFAAwF;QACxF,MAAM,GAAG,GAAG,UAAU,EAAE,qBAAqB,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QACrH,CAAC;QACD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,kEAAkE,GAAG,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,IAAI,CAAC,GAAgB;IAC5B,oFAAoF;IACpF,wFAAwF;IACxF,mEAAmE;IACnE,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE3D,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC;QAAE,OAAO,gBAAgB,CAAC;IAExD,MAAM,OAAO,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAE3D,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,qBAAqB,CAAC,aAAc,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,qBAAqB,CAAC,eAAgB,CAAC,IAAI,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,kBAAkB,EAAE,CAAC;IAE5C,kFAAkF;IAClF,+CAA+C;IAC/C,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;QACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,SAAS;QACtC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmB,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1B,IAAI,KAAK,IAAI,CAAC;gBAAE,SAAS;YACzB,MAAM,EAAE,GAAI,CAAgC,CAAC,OAAO,CAAC;YACrD,IAAI,EAAE,KAAK,SAAS;gBAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,EAAE,GAAG,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,EAAE;YAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,uCAAuC;IACvC,MAAM,oBAAoB,GAAa,EAAE,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;QACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAAE,SAAS;QACtC,MAAM,EAAE,GAAG,4BAA4B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,EAAE;YAAE,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,CAAC,UAAU;SAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;SAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;SACpC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,MAAM,MAAM,GAAG;;;;;;;;;wBASO,CAAC;IAEvB,MAAM,QAAQ,GAA2B;QACvC,MAAM;QACN,KAAK,IAAI,SAAS;QAClB,QAAQ,IAAI,SAAS;QACrB,cAAc;QACd,WAAW;YACT,CAAC,CAAC,uGAAuG,WAAW,EAAE;YACtH,CAAC,CAAC,SAAS;QACb,iBAAiB,CAAC,MAAM;YACtB,CAAC,CAAC,4GAA4G,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC9I,CAAC,CAAC,SAAS;QACb,oBAAoB,CAAC,MAAM;YACzB,CAAC,CAAC,mHAAmH,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACxJ,CAAC,CAAC,SAAS;QACb,WAAW;YACT,CAAC,CAAC,+GAA+G,WAAW,EAAE;YAC9H,CAAC,CAAC,SAAS;QACb,qGAAqG,OAAO,EAAE;KAC/G,CAAC;IACF,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxE,sDAAsD;IACtD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAkB;IAC7C,QAAQ,EAAE,YAAY;IACtB,aAAa,EAAE,KAAK;IACpB,oBAAoB,EAAE,oBAAoB;IAC1C,YAAY,EAAE,8BAA8B;IAC5C,IAAI;CACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "behavior-contracts",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "Language-agnostic runtime core for behavior contracts (dsl-contracts): validateEnvelope / evaluateExpression / renderTemplate / runPlan / canonical serialization. Single source of truth for the shared DSL runtime primitives.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|