behavior-contracts 0.8.0 → 0.8.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.
Files changed (62) hide show
  1. package/dist/authoring.d.ts +3 -0
  2. package/dist/authoring.d.ts.map +1 -1
  3. package/dist/authoring.js +7 -0
  4. package/dist/authoring.js.map +1 -1
  5. package/dist/behavior.d.ts +15 -0
  6. package/dist/behavior.d.ts.map +1 -1
  7. package/dist/behavior.js +26 -0
  8. package/dist/behavior.js.map +1 -1
  9. package/dist/expr-operator-types.d.ts.map +1 -1
  10. package/dist/expr-operator-types.js +2 -0
  11. package/dist/expr-operator-types.js.map +1 -1
  12. package/dist/generator/emit-shared-go-typed.d.ts.map +1 -1
  13. package/dist/generator/emit-shared-go-typed.js +130 -4
  14. package/dist/generator/emit-shared-go-typed.js.map +1 -1
  15. package/dist/generator/emit-shared-rust-typed.d.ts.map +1 -1
  16. package/dist/generator/emit-shared-rust-typed.js +49 -1
  17. package/dist/generator/emit-shared-rust-typed.js.map +1 -1
  18. package/dist/generator/emit-shared-typescript-typed.d.ts +83 -0
  19. package/dist/generator/emit-shared-typescript-typed.d.ts.map +1 -0
  20. package/dist/generator/emit-shared-typescript-typed.js +259 -0
  21. package/dist/generator/emit-shared-typescript-typed.js.map +1 -0
  22. package/dist/generator/emit-shared-typescript.d.ts.map +1 -1
  23. package/dist/generator/emit-shared-typescript.js +88 -0
  24. package/dist/generator/emit-shared-typescript.js.map +1 -1
  25. package/dist/generator/emit-straightline-typed-typescript.d.ts.map +1 -1
  26. package/dist/generator/emit-straightline-typed-typescript.js +2 -0
  27. package/dist/generator/emit-straightline-typed-typescript.js.map +1 -1
  28. package/dist/generator/emit-typed-native-go.d.ts.map +1 -1
  29. package/dist/generator/emit-typed-native-go.js +250 -26
  30. package/dist/generator/emit-typed-native-go.js.map +1 -1
  31. package/dist/generator/emit-typed-native-rust.d.ts.map +1 -1
  32. package/dist/generator/emit-typed-native-rust.js +244 -25
  33. package/dist/generator/emit-typed-native-rust.js.map +1 -1
  34. package/dist/generator/emit-typescript-native.d.ts +56 -0
  35. package/dist/generator/emit-typescript-native.d.ts.map +1 -0
  36. package/dist/generator/emit-typescript-native.js +44 -0
  37. package/dist/generator/emit-typescript-native.js.map +1 -0
  38. package/dist/generator/index.d.ts +2 -0
  39. package/dist/generator/index.d.ts.map +1 -1
  40. package/dist/generator/index.js +6 -0
  41. package/dist/generator/index.js.map +1 -1
  42. package/dist/generator/native-expr.d.ts +17 -0
  43. package/dist/generator/native-expr.d.ts.map +1 -1
  44. package/dist/generator/native-expr.js +82 -2
  45. package/dist/generator/native-expr.js.map +1 -1
  46. package/dist/generator/straightline.d.ts +22 -1
  47. package/dist/generator/straightline.d.ts.map +1 -1
  48. package/dist/generator/straightline.js +25 -7
  49. package/dist/generator/straightline.js.map +1 -1
  50. package/dist/generator/typed.d.ts +5 -0
  51. package/dist/generator/typed.d.ts.map +1 -1
  52. package/dist/generator/typed.js +8 -0
  53. package/dist/generator/typed.js.map +1 -1
  54. package/dist/guard.d.ts +2 -1
  55. package/dist/guard.d.ts.map +1 -1
  56. package/dist/guard.js +6 -5
  57. package/dist/guard.js.map +1 -1
  58. package/dist/type-gate.d.ts +1 -1
  59. package/dist/type-gate.d.ts.map +1 -1
  60. package/dist/type-gate.js +45 -24
  61. package/dist/type-gate.js.map +1 -1
  62. package/package.json +1 -1
@@ -31,6 +31,10 @@ function renderTypeRef(ref) {
31
31
  return `*${renderTypeRef(ref.inner)}`;
32
32
  case "arr":
33
33
  return `[]${renderTypeRef(ref.elem)}`;
34
+ case "map":
35
+ // 動的 string キー・同種値のマップ。Go の map[string]V(順序なし)。canonical/serialize では
36
+ // **キーを明示 sort**(code point 昇順)して決定的に列挙する(serMap helper が担う)。
37
+ return `map[string]${renderTypeRef(ref.value)}`;
34
38
  case "named":
35
39
  return ref.name;
36
40
  }
@@ -107,8 +111,29 @@ function emitFieldMaterialize(target, src, ref, plan, indent) {
107
111
  if (ref.scalar === "null") {
108
112
  return `${t}${target} = ${src}`;
109
113
  }
114
+ // #108: a FLOAT (float64) field ALSO accepts an int64 boxed value and WIDENS it. run_behavior
115
+ // decodes an integral input number to int (codec.decodeValue: `Number.isInteger → BigInt`, go:
116
+ // int64), so a float-declared field carrying integral values (a graphddb `param.number()` — the
117
+ // "integral lock" shape) arrives boxed as int64. Widening keeps the de-box at PARITY with
118
+ // run_behavior (an int magnitude is exactly representable as float64) instead of a type error.
119
+ if (ref.scalar === "float") {
120
+ // scoped block so the temporaries are local (this materialize may be inlined repeatedly in one
121
+ // Go block, e.g. an array-element loop — avoid a redeclared-in-block collision).
122
+ return [
123
+ `${t}{`,
124
+ `${t}\tswitch fnum := ${src}.(type) {`,
125
+ `${t}\tcase float64:`,
126
+ `${t}\t\t${target} = fnum`,
127
+ `${t}\tcase int64:`,
128
+ `${t}\t\t${target} = float64(fnum)`,
129
+ `${t}\tdefault:`,
130
+ `${t}\t\treturn out, ${PKG}.NewExprFailure("TYPE_MISMATCH", "typed marshal: expected float, got "+${PKG}.TypeName(${src}))`,
131
+ `${t}\t}`,
132
+ `${t}}`,
133
+ ].join("\n");
134
+ }
110
135
  const gt = goScalar(ref.scalar);
111
- const assertType = ref.scalar === "int" ? "int64" : ref.scalar === "float" ? "float64" : gt;
136
+ const assertType = ref.scalar === "int" ? "int64" : gt;
112
137
  return [
113
138
  `${t}sv, sok := ${src}.(${assertType})`,
114
139
  `${t}if !sok {`,
@@ -156,6 +181,30 @@ function emitFieldMaterialize(target, src, ref, plan, indent) {
156
181
  `${t}}`,
157
182
  ].join("\n");
158
183
  }
184
+ case "map": {
185
+ // 動的 string キー map の de-box: boxed value は `*Obj`(obj と同表現・キーは動的)。
186
+ // 各エントリを V へ材化して `map[string]V` に格納する(順序は serialize 側で明示 sort するため
187
+ // ここでは Keys 挿入順で走査してよい)。ローカル名は depth(indent)で一意化して nested map の
188
+ // 変数衝突を避ける(inner の for-loop body 内で outer と同名を再宣言しないため)。
189
+ const valGo = renderTypeRef(ref.value);
190
+ const d = indent;
191
+ const [mo, mok, m, mk, mvRaw, mvOut] = [`mo${d}`, `mok${d}`, `m${d}`, `mk${d}`, `mvRaw${d}`, `mvOut${d}`];
192
+ const inner = emitFieldMaterialize(mvOut, mvRaw, ref.value, plan, indent + 1);
193
+ return [
194
+ `${t}${mo}, ${mok} := ${src}.(*${PKG}.Obj)`,
195
+ `${t}if !${mok} {`,
196
+ `${t}\treturn out, ${PKG}.NewExprFailure("TYPE_MISMATCH", "typed marshal: expected map, got "+${PKG}.TypeName(${src}))`,
197
+ `${t}}`,
198
+ `${t}${m} := make(map[string]${valGo}, ${mo}.Len())`,
199
+ `${t}for _, ${mk} := range ${mo}.Keys {`,
200
+ `${t}\t${mvRaw}, _ := ${mo}.Get(${mk})`,
201
+ `${t}\tvar ${mvOut} ${valGo}`,
202
+ inner,
203
+ `${t}\t${m}[${mk}] = ${mvOut}`,
204
+ `${t}}`,
205
+ `${t}${target} = ${m}`,
206
+ ].join("\n");
207
+ }
159
208
  }
160
209
  }
161
210
  /**
@@ -174,6 +223,8 @@ function materializeExpr(rawExpr, ref, _plan) {
174
223
  return `mustArr_${arrHelperKey(ref)}(${rawExpr})`;
175
224
  case "opt":
176
225
  return `mustOpt_${arrHelperKey(ref)}(${rawExpr})`;
226
+ case "map":
227
+ return `mustMap_${arrHelperKey(ref)}(${rawExpr})`;
177
228
  }
178
229
  }
179
230
  /**
@@ -210,6 +261,9 @@ function serializeTyped(typedExpr, ref, _plan) {
210
261
  return `${PKG}.Value(${typedExpr})`;
211
262
  case "arr":
212
263
  return `serArr(${typedExpr}, func(e ${renderTypeRef(ref.elem)}) ${PKG}.Value { return ${serializeTyped("e", ref.elem, _plan)} })`;
264
+ case "map":
265
+ // serMap は **キーを code point 昇順 sort** して *Obj を組む(Go の map は順序なし → 明示 sort が必須)。
266
+ return `serMap(${typedExpr}, func(e ${renderTypeRef(ref.value)}) ${PKG}.Value { return ${serializeTyped("e", ref.value, _plan)} })`;
213
267
  case "opt":
214
268
  return `serOpt(${typedExpr} == nil, func() ${PKG}.Value { return ${serializeTypedOptInner(ref.inner, typedExpr, _plan)} })`;
215
269
  }
@@ -244,6 +298,42 @@ func serOpt(isNil bool, ser func() ${PKG}.Value) ${PKG}.Value {
244
298
  \t\treturn nil
245
299
  \t}
246
300
  \treturn ser()
301
+ }
302
+
303
+ // serMapCmpCP — code-point (UTF-8 rune) order comparison for map key sort (matches cmpCodePoints /
304
+ // CanonicalJSON's all-level sort — determinism across languages).
305
+ func serMapCmpCP(a, b string) bool {
306
+ \tra, rb := []rune(a), []rune(b)
307
+ \tn := len(ra)
308
+ \tif len(rb) < n {
309
+ \t\tn = len(rb)
310
+ \t}
311
+ \tfor i := 0; i < n; i++ {
312
+ \t\tif ra[i] != rb[i] {
313
+ \t\t\treturn ra[i] < rb[i]
314
+ \t\t}
315
+ \t}
316
+ \treturn len(ra) < len(rb)
317
+ }
318
+
319
+ // serMap serializes a map[string]T to a canonical *Obj with keys in code-point order (Go maps are
320
+ // unordered — the keys are sorted EXPLICITLY so the serialized output is deterministic / byte-identical).
321
+ func serMap[T any](m map[string]T, ser func(T) ${PKG}.Value) ${PKG}.Value {
322
+ \tkeys := make([]string, 0, len(m))
323
+ \tfor k := range m {
324
+ \t\tkeys = append(keys, k)
325
+ \t}
326
+ \t// insertion sort by code point (small maps; avoids a "sort" import in the runtime-adjacent glue).
327
+ \tfor i := 1; i < len(keys); i++ {
328
+ \t\tfor j := i; j > 0 && serMapCmpCP(keys[j], keys[j-1]); j-- {
329
+ \t\t\tkeys[j], keys[j-1] = keys[j-1], keys[j]
330
+ \t\t}
331
+ \t}
332
+ \to := ${PKG}.NewObj()
333
+ \tfor _, k := range keys {
334
+ \t\to.Set(k, ser(m[k]))
335
+ \t}
336
+ \treturn o
247
337
  }`;
248
338
  return perStruct.length === 0 ? generic : `${generic}\n\n${perStruct.join("\n\n")}`;
249
339
  }
@@ -400,6 +490,8 @@ function arrHelperKey(ref) {
400
490
  return `arr_${flat(r.elem)}`;
401
491
  case "opt":
402
492
  return `opt_${flat(r.inner)}`;
493
+ case "map":
494
+ return `map_${flat(r.value)}`;
403
495
  }
404
496
  };
405
497
  return flat(ref);
@@ -498,7 +590,7 @@ function emitArrOptNodeHelpers(ctx, plan) {
498
590
  }`);
499
591
  }
500
592
  else if (ref.kind === "opt") {
501
- if (ref.inner.kind === "arr" || ref.inner.kind === "opt")
593
+ if (ref.inner.kind === "arr" || ref.inner.kind === "opt" || ref.inner.kind === "map")
502
594
  need(ref.inner);
503
595
  if (seen.has(`opt_${key}`))
504
596
  return;
@@ -510,6 +602,29 @@ function emitArrOptNodeHelpers(ctx, plan) {
510
602
  \t}
511
603
  \tinner := ${elemMaterializeExpr(ref.inner, "v")}
512
604
  \treturn &inner
605
+ }`);
606
+ }
607
+ else if (ref.kind === "map") {
608
+ // 動的 string キー map node: value が arr/opt/map なら先に要素 helper を用意(ネスト de-box)。
609
+ if (ref.value.kind === "arr" || ref.value.kind === "opt" || ref.value.kind === "map")
610
+ need(ref.value);
611
+ if (seen.has(`map_${key}`))
612
+ return;
613
+ seen.add(`map_${key}`);
614
+ const valGo = renderTypeRef(ref.value);
615
+ // boxed map value は *Obj(obj と同表現)。各エントリを V へ材化して map[string]V を組む(順序は
616
+ // serMap 側で明示 sort するのでここは Keys 挿入順で走査してよい)。
617
+ parts.push(`func mustMap_${key}(v ${PKG}.Value) map[string]${valGo} {
618
+ \to, _ := v.(*${PKG}.Obj)
619
+ \tout := make(map[string]${valGo})
620
+ \tif o == nil {
621
+ \t\treturn out
622
+ \t}
623
+ \tfor _, mk := range o.Keys {
624
+ \t\tmv, _ := o.Get(mk)
625
+ \t\tout[mk] = ${elemMaterializeExpr(ref.value, "mv")}
626
+ \t}
627
+ \treturn out
513
628
  }`);
514
629
  }
515
630
  };
@@ -519,9 +634,17 @@ function emitArrOptNodeHelpers(ctx, plan) {
519
634
  if (ot === undefined || !("component" in n))
520
635
  continue;
521
636
  const ref = deriveTypeRef(ot, plan);
522
- if (ref.kind === "arr" || ref.kind === "opt")
637
+ if (ref.kind === "arr" || ref.kind === "opt" || ref.kind === "map")
523
638
  need(ref);
524
639
  }
640
+ // #108-map: an INPUT MAP port (with elemType) de-boxes via mustMap_* at input decode — register its
641
+ // map ref too (the input decoder materializes the boxed Obj into the native map[string]V).
642
+ for (const p of Object.keys(comp.inputPorts ?? {})) {
643
+ const s = comp.inputPorts[p];
644
+ const et = s.elemType;
645
+ if (s?.type === "map" && et !== undefined)
646
+ need({ kind: "map", value: deriveTypeRef(et, plan) });
647
+ }
525
648
  }
526
649
  return parts.join("\n\n");
527
650
  }
@@ -533,8 +656,11 @@ function elemMaterializeExpr(ref, varName = "e") {
533
656
  case "scalar":
534
657
  return `mustScalar_${ref.scalar}(${varName})`;
535
658
  case "arr":
659
+ return `mustArr_${arrHelperKey(ref)}(${varName})`;
536
660
  case "opt":
537
- return `mustArr_${arrHelperKey(ref)}(${varName})`.replace("mustArr_", ref.kind === "opt" ? "mustOpt_" : "mustArr_");
661
+ return `mustOpt_${arrHelperKey(ref)}(${varName})`;
662
+ case "map":
663
+ return `mustMap_${arrHelperKey(ref)}(${varName})`;
538
664
  }
539
665
  }
540
666
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"emit-shared-go-typed.js","sourceRoot":"","sources":["../../src/generator/emit-shared-go-typed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit-shared-go-typed.js","sourceRoot":"","sources":["../../src/generator/emit-shared-go-typed.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"emit-shared-rust-typed.d.ts","sourceRoot":"","sources":["../../src/generator/emit-shared-rust-typed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,OAAO,EAEb,MAAM,YAAY,CAAC;AACpB,OAAO,EAA6B,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,gBAAgB,CAAC;AAO9D,4EAA4E;AAC5E,iBAAS,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAchF;AAED,2EAA2E;AAC3E,iBAAS,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAY3C;AAED,oFAAoF;AACpF,iBAAS,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO3C;AAWD,8BAA8B;AAC9B,iBAAS,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAErC;AAkCD,iEAAiE;AACjE,iBAAS,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAe7C;AAED;;;;GAIG;AACH,iBAAS,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAG/C;AAoCD,4CAA4C;AAC5C,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAM1D;AA2DD;;;;GAIG;AACH,iBAAS,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAK9E;AAED;;;GAGG;AACH,iBAAS,gBAAgB,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EAAE,EAChB,IAAI,EAAE,QAAQ,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAchC;AAED;;;;GAIG;AACH,iBAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CA4B/E;AAID,8FAA8F;AAC9F,iBAAS,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAW/C;AAID,sEAAsE;AACtE,iBAAS,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzC;AAYD;;;;;;;;;GASG;AACH,iBAAS,cAAc,CACrB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,OAAO,GAAG,SAAS,EAC7B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,EAAE,QAAQ,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CA0F5C;AAgCD;;;GAGG;AACH,iBAAS,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAOhF;AAID,iBAAS,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAMvD;AAED,+CAA+C;AAC/C,iBAAS,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAGlD;AAED,+DAA+D;AAC/D,iBAAS,kBAAkB,IAAI,MAAM,CAqCpC;AAED,kFAAkF;AAClF,iBAAS,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAU5C;AA6BD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwB9B,CAAC"}
1
+ {"version":3,"file":"emit-shared-rust-typed.d.ts","sourceRoot":"","sources":["../../src/generator/emit-shared-rust-typed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,OAAO,EAEb,MAAM,YAAY,CAAC;AACpB,OAAO,EAA6B,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,gBAAgB,CAAC;AAO9D,4EAA4E;AAC5E,iBAAS,UAAU,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAchF;AAED,2EAA2E;AAC3E,iBAAS,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAiB3C;AAED,oFAAoF;AACpF,iBAAS,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO3C;AAWD,8BAA8B;AAC9B,iBAAS,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAErC;AAoCD,iEAAiE;AACjE,iBAAS,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAe7C;AAED;;;;GAIG;AACH,iBAAS,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAG/C;AAoCD,4CAA4C;AAC5C,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAM1D;AA4FD;;;;GAIG;AACH,iBAAS,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAK9E;AAED;;;GAGG;AACH,iBAAS,gBAAgB,CACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EAAE,EAChB,IAAI,EAAE,QAAQ,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAchC;AAED;;;;GAIG;AACH,iBAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAkC/E;AAID,8FAA8F;AAC9F,iBAAS,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAW/C;AAID,sEAAsE;AACtE,iBAAS,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzC;AAYD;;;;;;;;;GASG;AACH,iBAAS,cAAc,CACrB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,OAAO,GAAG,SAAS,EAC7B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,EAAE,QAAQ,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,CA0F5C;AAgCD;;;GAGG;AACH,iBAAS,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAOhF;AAID,iBAAS,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAMvD;AAED,+CAA+C;AAC/C,iBAAS,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAGlD;AAED,+DAA+D;AAC/D,iBAAS,kBAAkB,IAAI,MAAM,CAqCpC;AAED,kFAAkF;AAClF,iBAAS,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAU5C;AA+BD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwB9B,CAAC"}
@@ -30,6 +30,11 @@ function renderTypeRef(ref) {
30
30
  return `Option<${renderTypeRef(ref.inner)}>`;
31
31
  case "arr":
32
32
  return `Vec<${renderTypeRef(ref.elem)}>`;
33
+ case "map":
34
+ // 動的 string キー・同種値のマップ。BTreeMap で **キー順を決定的**(UTF-8 byte 順 = code point 順)に
35
+ // 保つ(HashMap は非決定的順序ゆえ canonical 直列化に使わない — determinism 必須)。
36
+ // 完全修飾で書き top-level `use` を要らなくする(生成モジュールは runtime-free)。
37
+ return `std::collections::BTreeMap<String, ${renderTypeRef(ref.value)}>`;
33
38
  case "named":
34
39
  return ref.name;
35
40
  }
@@ -88,6 +93,8 @@ function isDefaultable(ref, plan) {
88
93
  return true; // Option<T> は常に None default
89
94
  case "arr":
90
95
  return true; // Vec<T> は常に空 default
96
+ case "map":
97
+ return true; // BTreeMap<String,T> は常に空 default
91
98
  case "named": {
92
99
  const decl = findDecl(plan, ref.name);
93
100
  return decl ? decl.fields.every((f) => isDefaultable(f.type, plan)) : false;
@@ -171,7 +178,21 @@ function emitFieldMaterialize(src, ref, plan) {
171
178
  // null 単独型は Value のまま保持(clone)。
172
179
  return `${src}.clone()`;
173
180
  }
174
- const variant = ref.scalar === "int" ? "Int" : ref.scalar === "float" ? "Float" : ref.scalar === "bool" ? "Bool" : "Str";
181
+ // #108: a FLOAT (f64) field ALSO accepts a `Value::Int` and WIDENS it to f64. run_behavior decodes
182
+ // an integral input number to int (codec.decodeValue: `Number.isInteger → BigInt`), so a
183
+ // float-declared field (e.g. a graphddb `param.number()` carrying integral values — the "integral
184
+ // lock" shape) arrives boxed as `Value::Int`. Widening it here keeps the de-box at PARITY with
185
+ // run_behavior (an int magnitude is exactly representable as f64) instead of a spurious type error.
186
+ if (ref.scalar === "float") {
187
+ return [
188
+ `match ${src} {`,
189
+ ` Value::Float(s) => *s,`,
190
+ ` Value::Int(s) => *s as f64,`,
191
+ ` other => return Err(marshal_type_error(${rustStrLit("typed marshal: expected float, got ")}, other.type_name())),`,
192
+ `}`,
193
+ ].join("\n");
194
+ }
195
+ const variant = ref.scalar === "int" ? "Int" : ref.scalar === "bool" ? "Bool" : "Str";
175
196
  // Str は clone(所有 String)、その他は Copy。
176
197
  const bind = ref.scalar === "string" ? "s.clone()" : "*s";
177
198
  return [
@@ -201,6 +222,25 @@ function emitFieldMaterialize(src, ref, plan) {
201
222
  `}`,
202
223
  ].join("\n");
203
224
  }
225
+ case "map": {
226
+ // 動的 string キー map の de-box: boxed value は `Value::Obj(pairs)`(obj と同表現・キーは動的)。
227
+ // 各 (k,v) を V へ材化し BTreeMap に collect する(BTreeMap がキー順を決定的に保つ)。
228
+ const valTy = renderTypeRef(ref.value);
229
+ const inner = emitFieldMaterialize("val_raw", ref.value, plan);
230
+ return [
231
+ `match ${src} {`,
232
+ ` Value::Obj(entries) => {`,
233
+ ` let mut out: std::collections::BTreeMap<String, ${valTy}> = std::collections::BTreeMap::new();`,
234
+ ` for (map_key, val_raw) in entries.iter() {`,
235
+ ` let val_out = ${indentBlock(inner, 3).trimStart()};`,
236
+ ` out.insert(map_key.clone(), val_out);`,
237
+ ` }`,
238
+ ` out`,
239
+ ` }`,
240
+ ` other => return Err(marshal_type_error(${rustStrLit("typed marshal: expected map, got ")}, other.type_name())),`,
241
+ `}`,
242
+ ].join("\n");
243
+ }
204
244
  case "opt": {
205
245
  const inner = emitFieldMaterialize("inner_raw", ref.inner, plan);
206
246
  return [
@@ -276,6 +316,12 @@ function serializeTyped(typedExpr, ref, plan) {
276
316
  const elemTy = renderTypeRef(ref.elem);
277
317
  return `Value::Arr(${typedExpr}.into_iter().map(|e: ${elemTy}| ${serializeTyped("e", ref.elem, plan)}).collect())`;
278
318
  }
319
+ case "map": {
320
+ // BTreeMap は into_iter でキー昇順(UTF-8 byte 順 = code point 順)に列挙する → Value::Obj の
321
+ // pair 列は決定的にソート済み(canonical/byte-identical output に必須)。
322
+ const valTy = renderTypeRef(ref.value);
323
+ return `Value::Obj(${typedExpr}.into_iter().map(|(k, v): (String, ${valTy})| (k, ${serializeTyped("v", ref.value, plan)})).collect())`;
324
+ }
279
325
  case "opt":
280
326
  return `match ${typedExpr} { Some(inner) => ${serializeTyped("inner", ref.inner, plan)}, None => Value::Null }`;
281
327
  }
@@ -546,6 +592,8 @@ function defaultExpr(ref) {
546
592
  return "None";
547
593
  case "arr":
548
594
  return "Vec::new()";
595
+ case "map":
596
+ return "std::collections::BTreeMap::new()";
549
597
  case "named":
550
598
  return `${ref.name}::default()`;
551
599
  }
@@ -1 +1 @@
1
- {"version":3,"file":"emit-shared-rust-typed.js","sourceRoot":"","sources":["../../src/generator/emit-shared-rust-typed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit-shared-rust-typed.js","sourceRoot":"","sources":["../../src/generator/emit-shared-rust-typed.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * emit-shared-typescript-typed.ts — TS TypedMaterializer runtime-materialization hooks + the
3
+ * reachable native typed layer (bc#135).
4
+ *
5
+ * The TypedMaterializer seam (typed.ts) exposes runtime-materialization hooks — `emitMarshallers`,
6
+ * `materializeExpr`, `typedFieldAccess`, `serializeTyped` — that the COMPILE languages (go/rust,
7
+ * #47/#48) implement to de-box a raw `Value` into a concrete struct. `typescript-typed` (the #46
8
+ * oracle) implements ONLY the decls-only subset (`emitTypeDecls`/`renderTypeRef`) and leaves the
9
+ * runtime hooks unimplemented — its typed layer is a dead-on-runtime verification oracle.
10
+ *
11
+ * This module implements the runtime-materialization hooks for TS (`tsNativeTypedMaterializer`) and
12
+ * assembles the REACHABLE typed layer (`emitNativeTypedLayer`) the `typescript-native` emitter puts
13
+ * on top of the straight-line runtime body:
14
+ * - `emitTypeDecls` / `renderTypeRef`: interface declarations + type annotations (shared discipline
15
+ * with the oracle — reused verbatim from emit-straightline-typed-typescript.ts).
16
+ * - `emitMarshallers`: for every named interface T*, a `marshalT*(v: Value): T*` that materializes
17
+ * a boxed `Value` into the declared interface by reading each declared field — the de-interpreted
18
+ * shape walk (no generic Value tree-walk in the typed entry path). Under TS erasure the field
19
+ * reads are dynamic and the leaf `as` is a no-op; that is the handler `Value` boundary (expected).
20
+ * - `materializeExpr`: materialize a raw `Value` expression into a `TypeRef` (marshaller call for
21
+ * obj, element-map for arr, null-branch for opt, cast for scalar).
22
+ * - `typedFieldAccess`: static typed field access on an already-materialized base (`base["f"]["g"]`)
23
+ * — tsc checks the path against the interface.
24
+ * - `serializeTyped`: identity at the boundary (TS values are already the canonical JS shape; the
25
+ * equivalence pin is that the straight-line body produced the value).
26
+ *
27
+ * The typed layer is REACHABLE: `bindTyped(handlers)` runs the straight-line `bind()` runner and
28
+ * materializes each covered component's result through `marshalOutput_<name>` into the component's
29
+ * `outputType`. So the `as T` boundary + typed field access sit on a LIVE typed path (not a dead
30
+ * oracle). Runtime is byte-identical to the straight-line body (marshalling returns the same value,
31
+ * retyped); `tsc --strict` proves the typed surface.
32
+ *
33
+ * HONEST NOTE (bc#31/#32): TS erasure ⇒ no runtime de-box win. The marshaller is a validated
34
+ * pass-through, NOT a monomorphized struct materialization like go/rust. Its value is compile-time
35
+ * type safety + an honest codegen surface, not perf.
36
+ */
37
+ import type { EmitContext } from "./core.js";
38
+ import { deriveTypeRef, type TypePlan, type TypeRef, type TypedMaterializer } from "./typed.js";
39
+ /** Render a TypeRef to a TS type annotation (scalar/opt/arr inline; obj → named interface ref). */
40
+ export declare function renderTypeRef(ref: TypeRef): string;
41
+ /** Emit the named interface declarations (decls order = deterministic). */
42
+ export declare function emitTypeDecls(plan: TypePlan): string;
43
+ /**
44
+ * materializeExpr — materialize a raw `Value` expression into a value of the annotated `ref`:
45
+ * - named (obj) → `marshalT*(rawExpr)` (the shape walk),
46
+ * - arr → `(rawExpr as Value[]).map((e) => <materialize e as elem>)`,
47
+ * - opt → `(rawExpr === null ? null : <materialize as inner>)`,
48
+ * - scalar → typed cast `(rawExpr as <ts type>)`.
49
+ * Under TS erasure the scalar cast is a no-op — that IS the handler Value boundary (expected).
50
+ */
51
+ export declare function materializeExpr(rawExpr: string, ref: TypeRef, _plan: TypePlan): string;
52
+ /**
53
+ * emitMarshallers — for every named interface T*, a `marshalT*(v: Value): T*` that materializes a
54
+ * boxed `Value` into the declared interface by reading each declared field (the de-interpreted shape
55
+ * walk). Deterministic (decls order). Empty when there are no named decls.
56
+ */
57
+ export declare function emitMarshallers(plan: TypePlan): string;
58
+ /**
59
+ * typedFieldAccess — static typed field access on an already-materialized base (`base["f"]["g"]`).
60
+ * Returns the access expression and the type reached (per the plan decls). tsc checks the path
61
+ * against the interface (a field not on the interface is a compile error — the non-vacuous pin).
62
+ */
63
+ export declare function typedFieldAccess(baseExpr: string, baseRef: TypeRef, fields: string[], plan: TypePlan): {
64
+ expr: string;
65
+ ref: TypeRef;
66
+ };
67
+ /**
68
+ * serializeTyped — identity at the boundary. In TS the typed value IS already the canonical JS shape
69
+ * (erasure), so no re-serialization is needed for the equivalence pin: the straight-line body produced
70
+ * the canonical Value and the marshaller returned the same value retyped.
71
+ */
72
+ export declare function serializeTyped(typedExpr: string, _ref: TypeRef, _plan: TypePlan): string;
73
+ /** The TS runtime-materialization TypedMaterializer (bc#135) — the seam go/rust also ride. */
74
+ export declare const tsNativeTypedMaterializer: TypedMaterializer;
75
+ /**
76
+ * emitNativeTypedLayer — the REACHABLE typed layer appended to the straight-line runtime body:
77
+ * interfaces + marshallers + per-component output marshallers + a `bindTyped`/`bindTypedAsync` facade
78
+ * that runs the straight-line `bind()` runner and materializes each covered component's result into
79
+ * its `outputType`. This is what makes the typed layer live (not a dead oracle): the `as` boundary and
80
+ * typed field access are on a real typed entry path that `tsc --strict` verifies.
81
+ */
82
+ export declare function emitNativeTypedLayer(ctx: EmitContext, plan: TypePlan, mat: TypedMaterializer, derive: typeof deriveTypeRef): string;
83
+ //# sourceMappingURL=emit-shared-typescript-typed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-shared-typescript-typed.d.ts","sourceRoot":"","sources":["../../src/generator/emit-shared-typescript-typed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAKhG,mGAAmG;AACnG,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAyBlD;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAQpD;AAeD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CActF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAsBtD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EAAE,EAChB,IAAI,EAAE,QAAQ,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAQhC;AAWD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAExF;AAED,8FAA8F;AAC9F,eAAO,MAAM,yBAAyB,EAAE,iBAOvC,CAAC;AAiCF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,OAAO,aAAa,GAC3B,MAAM,CAwFR"}