aontu 0.62.0 → 0.64.0

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 (373) hide show
  1. package/README.md +7 -7
  2. package/dist/agentsmd.js +0 -27
  3. package/dist/agentsmd.js.map +1 -1
  4. package/dist/alias.js.map +1 -1
  5. package/dist/allow.js +0 -92
  6. package/dist/allow.js.map +1 -1
  7. package/dist/aontu.d.ts +3 -3
  8. package/dist/aontu.js +4 -84
  9. package/dist/aontu.js.map +1 -1
  10. package/dist/aontumodel.d.ts +4 -0
  11. package/dist/aontumodel.js +27 -0
  12. package/dist/aontumodel.js.map +1 -0
  13. package/dist/casing.d.ts +5 -0
  14. package/dist/casing.js +90 -0
  15. package/dist/casing.js.map +1 -0
  16. package/dist/cli.d.ts +2 -2
  17. package/dist/cli.js +228 -935
  18. package/dist/cli.js.map +1 -1
  19. package/dist/ctx.js +0 -48
  20. package/dist/ctx.js.map +1 -1
  21. package/dist/diff.js +0 -32
  22. package/dist/diff.js.map +1 -1
  23. package/dist/err.js +0 -40
  24. package/dist/err.js.map +1 -1
  25. package/dist/escape.js +0 -45
  26. package/dist/escape.js.map +1 -1
  27. package/dist/exactjson.d.ts +0 -35
  28. package/dist/exactjson.js +0 -131
  29. package/dist/exactjson.js.map +1 -1
  30. package/dist/format.js +13 -203
  31. package/dist/format.js.map +1 -1
  32. package/dist/grammar.d.ts +9 -0
  33. package/dist/grammar.js +54 -0
  34. package/dist/grammar.js.map +1 -0
  35. package/dist/graph.js +0 -26
  36. package/dist/graph.js.map +1 -1
  37. package/dist/hcanon.js +0 -82
  38. package/dist/hcanon.js.map +1 -1
  39. package/dist/helpdoc.js +2 -2
  40. package/dist/helpdoc.js.map +1 -1
  41. package/dist/hints.d.ts +0 -6
  42. package/dist/hints.js +57 -55
  43. package/dist/hints.js.map +1 -1
  44. package/dist/jsonschema.js +0 -114
  45. package/dist/jsonschema.js.map +1 -1
  46. package/dist/keyorder.d.ts +0 -7
  47. package/dist/keyorder.js +0 -41
  48. package/dist/keyorder.js.map +1 -1
  49. package/dist/lang.js +17 -915
  50. package/dist/lang.js.map +1 -1
  51. package/dist/lsp-server.js +0 -16
  52. package/dist/lsp-server.js.map +1 -1
  53. package/dist/lsp.d.ts +1 -1
  54. package/dist/lsp.js +12 -159
  55. package/dist/lsp.js.map +1 -1
  56. package/dist/mcp-server.js +0 -26
  57. package/dist/mcp-server.js.map +1 -1
  58. package/dist/mcp.js +0 -149
  59. package/dist/mcp.js.map +1 -1
  60. package/dist/mod-tool.js +16 -131
  61. package/dist/mod-tool.js.map +1 -1
  62. package/dist/mod.js +0 -162
  63. package/dist/mod.js.map +1 -1
  64. package/dist/patch.js +0 -217
  65. package/dist/patch.js.map +1 -1
  66. package/dist/profile.d.ts +9 -0
  67. package/dist/profile.js +28 -0
  68. package/dist/profile.js.map +1 -0
  69. package/dist/provenance.js +0 -140
  70. package/dist/provenance.js.map +1 -1
  71. package/dist/query.js +0 -75
  72. package/dist/query.js.map +1 -1
  73. package/dist/reach.js +0 -43
  74. package/dist/reach.js.map +1 -1
  75. package/dist/relation.js +0 -61
  76. package/dist/relation.js.map +1 -1
  77. package/dist/report-sarif.d.ts +0 -11
  78. package/dist/report-sarif.js +0 -28
  79. package/dist/report-sarif.js.map +1 -1
  80. package/dist/sig.js +0 -35
  81. package/dist/sig.js.map +1 -1
  82. package/dist/sigdecl.js +1 -1
  83. package/dist/sigdecl.js.map +1 -1
  84. package/dist/siggate.js +0 -4
  85. package/dist/siggate.js.map +1 -1
  86. package/dist/site.js +3 -29
  87. package/dist/site.js.map +1 -1
  88. package/dist/subsume.d.ts +0 -10
  89. package/dist/subsume.js +0 -137
  90. package/dist/subsume.js.map +1 -1
  91. package/dist/template.d.ts +2 -1
  92. package/dist/template.js +58 -138
  93. package/dist/template.js.map +1 -1
  94. package/dist/trace.d.ts +21 -0
  95. package/dist/trace.js +107 -0
  96. package/dist/trace.js.map +1 -0
  97. package/dist/trim.js +0 -41
  98. package/dist/trim.js.map +1 -1
  99. package/dist/tsconfig.tsbuildinfo +1 -1
  100. package/dist/type.js.map +1 -1
  101. package/dist/unify.js +13 -248
  102. package/dist/unify.js.map +1 -1
  103. package/dist/utility.js +0 -22
  104. package/dist/utility.js.map +1 -1
  105. package/dist/val/AbnfFuncVal.d.ts +18 -0
  106. package/dist/val/AbnfFuncVal.js +132 -0
  107. package/dist/val/AbnfFuncVal.js.map +1 -0
  108. package/dist/val/AbsentVal.d.ts +11 -0
  109. package/dist/val/AbsentVal.js +30 -0
  110. package/dist/val/AbsentVal.js.map +1 -0
  111. package/dist/val/AggFuncVal.d.ts +10 -1
  112. package/dist/val/AggFuncVal.js +104 -116
  113. package/dist/val/AggFuncVal.js.map +1 -1
  114. package/dist/val/ArithFuncVal.js +0 -12
  115. package/dist/val/ArithFuncVal.js.map +1 -1
  116. package/dist/val/BagVal.js +1 -78
  117. package/dist/val/BagVal.js.map +1 -1
  118. package/dist/val/BigDecimalVal.js +0 -16
  119. package/dist/val/BigDecimalVal.js.map +1 -1
  120. package/dist/val/BigIntegerVal.js +0 -16
  121. package/dist/val/BigIntegerVal.js.map +1 -1
  122. package/dist/val/CloseFuncVal.js +0 -9
  123. package/dist/val/CloseFuncVal.js.map +1 -1
  124. package/dist/val/CmpFuncVal.d.ts +2 -0
  125. package/dist/val/CmpFuncVal.js +49 -72
  126. package/dist/val/CmpFuncVal.js.map +1 -1
  127. package/dist/val/ConjunctVal.js +0 -29
  128. package/dist/val/ConjunctVal.js.map +1 -1
  129. package/dist/val/ConstraintVal.js +0 -500
  130. package/dist/val/ConstraintVal.js.map +1 -1
  131. package/dist/val/ContainerKindVal.js +0 -2
  132. package/dist/val/ContainerKindVal.js.map +1 -1
  133. package/dist/val/CopyFuncVal.js +0 -3
  134. package/dist/val/CopyFuncVal.js.map +1 -1
  135. package/dist/val/Decimal.js +0 -179
  136. package/dist/val/Decimal.js.map +1 -1
  137. package/dist/val/DeprecateFuncVal.js.map +1 -1
  138. package/dist/val/DisjunctVal.js +0 -152
  139. package/dist/val/DisjunctVal.js.map +1 -1
  140. package/dist/val/EachFuncVal.js +0 -3
  141. package/dist/val/EachFuncVal.js.map +1 -1
  142. package/dist/val/EmitFuncVal.d.ts +1 -1
  143. package/dist/val/EmitFuncVal.js +6 -119
  144. package/dist/val/EmitFuncVal.js.map +1 -1
  145. package/dist/val/ExpectVal.js +0 -62
  146. package/dist/val/ExpectVal.js.map +1 -1
  147. package/dist/val/FilterFuncVal.js +0 -25
  148. package/dist/val/FilterFuncVal.js.map +1 -1
  149. package/dist/val/FuncBaseVal.d.ts +1 -0
  150. package/dist/val/FuncBaseVal.js +7 -127
  151. package/dist/val/FuncBaseVal.js.map +1 -1
  152. package/dist/val/GraphAtomVal.js +0 -15
  153. package/dist/val/GraphAtomVal.js.map +1 -1
  154. package/dist/val/HideFuncVal.js +0 -13
  155. package/dist/val/HideFuncVal.js.map +1 -1
  156. package/dist/val/IntegerVal.js +0 -61
  157. package/dist/val/IntegerVal.js.map +1 -1
  158. package/dist/val/JunctionVal.js +0 -20
  159. package/dist/val/JunctionVal.js.map +1 -1
  160. package/dist/val/KeyFuncVal.js +0 -46
  161. package/dist/val/KeyFuncVal.js.map +1 -1
  162. package/dist/val/ListVal.js +0 -57
  163. package/dist/val/ListVal.js.map +1 -1
  164. package/dist/val/LowerFuncVal.js +0 -11
  165. package/dist/val/LowerFuncVal.js.map +1 -1
  166. package/dist/val/MapVal.js +0 -151
  167. package/dist/val/MapVal.js.map +1 -1
  168. package/dist/val/MatchFuncVal.js +0 -27
  169. package/dist/val/MatchFuncVal.js.map +1 -1
  170. package/dist/val/{FormFuncVal.d.ts → MaybeFuncVal.d.ts} +5 -5
  171. package/dist/val/MaybeFuncVal.js +50 -0
  172. package/dist/val/MaybeFuncVal.js.map +1 -0
  173. package/dist/val/MoveFuncVal.js +0 -18
  174. package/dist/val/MoveFuncVal.js.map +1 -1
  175. package/dist/val/NilVal.js +0 -60
  176. package/dist/val/NilVal.js.map +1 -1
  177. package/dist/val/NomFuncVal.js +18 -54
  178. package/dist/val/NomFuncVal.js.map +1 -1
  179. package/dist/val/NumberVal.js +0 -15
  180. package/dist/val/NumberVal.js.map +1 -1
  181. package/dist/val/OpBaseVal.d.ts +1 -0
  182. package/dist/val/OpBaseVal.js +3 -15
  183. package/dist/val/OpBaseVal.js.map +1 -1
  184. package/dist/val/PackFuncVal.js +0 -34
  185. package/dist/val/PackFuncVal.js.map +1 -1
  186. package/dist/val/PathFuncVal.js +0 -6
  187. package/dist/val/PathFuncVal.js.map +1 -1
  188. package/dist/val/PathVal.js +0 -41
  189. package/dist/val/PathVal.js.map +1 -1
  190. package/dist/val/PlaceVal.js +0 -25
  191. package/dist/val/PlaceVal.js.map +1 -1
  192. package/dist/val/PlusOpVal.d.ts +1 -7
  193. package/dist/val/PlusOpVal.js +13 -74
  194. package/dist/val/PlusOpVal.js.map +1 -1
  195. package/dist/val/PrefFuncVal.js +0 -1
  196. package/dist/val/PrefFuncVal.js.map +1 -1
  197. package/dist/val/PrefVal.js +0 -167
  198. package/dist/val/PrefVal.js.map +1 -1
  199. package/dist/val/RecurseVal.js +0 -55
  200. package/dist/val/RecurseVal.js.map +1 -1
  201. package/dist/val/RefVal.js +0 -282
  202. package/dist/val/RefVal.js.map +1 -1
  203. package/dist/val/ReferFuncVal.js +3 -232
  204. package/dist/val/ReferFuncVal.js.map +1 -1
  205. package/dist/val/ScalarKindVal.js +0 -49
  206. package/dist/val/ScalarKindVal.js.map +1 -1
  207. package/dist/val/ScalarVal.js +0 -11
  208. package/dist/val/ScalarVal.js.map +1 -1
  209. package/dist/val/StrFuncVal.js +0 -18
  210. package/dist/val/StrFuncVal.js.map +1 -1
  211. package/dist/val/SuperFuncVal.js +0 -32
  212. package/dist/val/SuperFuncVal.js.map +1 -1
  213. package/dist/val/TopVal.js +0 -1
  214. package/dist/val/TopVal.js.map +1 -1
  215. package/dist/val/TranslateFuncVal.js +1 -3
  216. package/dist/val/TranslateFuncVal.js.map +1 -1
  217. package/dist/val/UpperFuncVal.js +0 -11
  218. package/dist/val/UpperFuncVal.js.map +1 -1
  219. package/dist/val/Val.d.ts +1 -0
  220. package/dist/val/Val.js +2 -133
  221. package/dist/val/Val.js.map +1 -1
  222. package/dist/val/VarVal.js +0 -12
  223. package/dist/val/VarVal.js.map +1 -1
  224. package/dist/val/arith.js +0 -37
  225. package/dist/val/arith.js.map +1 -1
  226. package/dist/val/caserange.js +0 -61
  227. package/dist/val/caserange.js.map +1 -1
  228. package/dist/val/members.js +0 -6
  229. package/dist/val/members.js.map +1 -1
  230. package/dist/val/numcmp.js +0 -11
  231. package/dist/val/numcmp.js.map +1 -1
  232. package/dist/val/numkind.js +0 -145
  233. package/dist/val/numkind.js.map +1 -1
  234. package/dist/val/valutil.js +0 -16
  235. package/dist/val/valutil.js.map +1 -1
  236. package/dist/vet.js +0 -461
  237. package/dist/vet.js.map +1 -1
  238. package/dist/view.js +0 -414
  239. package/dist/view.js.map +1 -1
  240. package/dist/walk.js +0 -41
  241. package/dist/walk.js.map +1 -1
  242. package/grammar/aontu.abnf +8 -6
  243. package/grammar/aontu.gbnf +4 -4
  244. package/grammar/aontu.lark +4 -4
  245. package/grammar/aontu.tmLanguage.json +1 -1
  246. package/package.json +4 -2
  247. package/skill/tasks.md +9 -7
  248. package/src/agentsmd.ts +0 -35
  249. package/src/alias.ts +0 -39
  250. package/src/allow.ts +1 -96
  251. package/src/aontu.ts +4 -116
  252. package/src/aontumodel.ts +26 -0
  253. package/src/casing.ts +95 -0
  254. package/src/cli.ts +258 -1024
  255. package/src/ctx.ts +0 -103
  256. package/src/diff.ts +0 -40
  257. package/src/err.ts +0 -40
  258. package/src/escape.ts +0 -46
  259. package/src/exactjson.ts +0 -131
  260. package/src/format.ts +14 -257
  261. package/src/grammar.ts +72 -0
  262. package/src/graph.ts +0 -61
  263. package/src/hcanon.ts +0 -82
  264. package/src/helpdoc.ts +2 -2
  265. package/src/hints.ts +69 -57
  266. package/src/jsonschema.ts +0 -123
  267. package/src/keyorder.ts +0 -42
  268. package/src/lang.ts +19 -931
  269. package/src/lsp-server.ts +0 -16
  270. package/src/lsp.ts +12 -180
  271. package/src/mcp-server.ts +0 -31
  272. package/src/mcp.ts +0 -169
  273. package/src/mod-tool.ts +18 -159
  274. package/src/mod.ts +0 -178
  275. package/src/patch.ts +0 -232
  276. package/src/profile.ts +42 -0
  277. package/src/provenance.ts +0 -183
  278. package/src/query.ts +0 -84
  279. package/src/reach.ts +0 -53
  280. package/src/relation.ts +0 -84
  281. package/src/report-sarif.ts +0 -48
  282. package/src/sig.ts +0 -35
  283. package/src/sigdecl.ts +1 -1
  284. package/src/siggate.ts +0 -30
  285. package/src/site.ts +3 -29
  286. package/src/subsume.ts +1 -161
  287. package/src/template.ts +69 -140
  288. package/src/trace.ts +157 -0
  289. package/src/trim.ts +0 -53
  290. package/src/type.ts +2 -45
  291. package/src/unify.ts +14 -257
  292. package/src/utility.ts +0 -31
  293. package/src/val/AbnfFuncVal.ts +181 -0
  294. package/src/val/AbsentVal.ts +54 -0
  295. package/src/val/AggFuncVal.ts +152 -188
  296. package/src/val/ArithFuncVal.ts +0 -20
  297. package/src/val/BagVal.ts +1 -78
  298. package/src/val/BigDecimalVal.ts +0 -16
  299. package/src/val/BigIntegerVal.ts +0 -16
  300. package/src/val/CloseFuncVal.ts +0 -9
  301. package/src/val/CmpFuncVal.ts +68 -184
  302. package/src/val/ConjunctVal.ts +0 -33
  303. package/src/val/ConstraintVal.ts +2 -537
  304. package/src/val/ContainerKindVal.ts +0 -18
  305. package/src/val/CopyFuncVal.ts +0 -5
  306. package/src/val/Decimal.ts +1 -185
  307. package/src/val/DeprecateFuncVal.ts +0 -10
  308. package/src/val/DisjunctVal.ts +0 -157
  309. package/src/val/EachFuncVal.ts +0 -40
  310. package/src/val/EmitFuncVal.ts +8 -208
  311. package/src/val/ExpectVal.ts +0 -62
  312. package/src/val/FilterFuncVal.ts +0 -55
  313. package/src/val/FuncBaseVal.ts +9 -130
  314. package/src/val/GraphAtomVal.ts +0 -42
  315. package/src/val/HideFuncVal.ts +0 -15
  316. package/src/val/IntegerVal.ts +0 -61
  317. package/src/val/JunctionVal.ts +0 -20
  318. package/src/val/KeyFuncVal.ts +0 -48
  319. package/src/val/ListVal.ts +0 -59
  320. package/src/val/LowerFuncVal.ts +0 -12
  321. package/src/val/MapVal.ts +0 -151
  322. package/src/val/MatchFuncVal.ts +0 -59
  323. package/src/val/MaybeFuncVal.ts +86 -0
  324. package/src/val/MoveFuncVal.ts +0 -20
  325. package/src/val/NilVal.ts +0 -60
  326. package/src/val/NomFuncVal.ts +10 -99
  327. package/src/val/NumberVal.ts +0 -16
  328. package/src/val/OpBaseVal.ts +4 -17
  329. package/src/val/PackFuncVal.ts +0 -63
  330. package/src/val/PathFuncVal.ts +0 -32
  331. package/src/val/PathVal.ts +0 -66
  332. package/src/val/PlaceVal.ts +0 -45
  333. package/src/val/PlusOpVal.ts +18 -75
  334. package/src/val/PrefFuncVal.ts +0 -1
  335. package/src/val/PrefVal.ts +0 -179
  336. package/src/val/RecurseVal.ts +0 -81
  337. package/src/val/RefVal.ts +1 -285
  338. package/src/val/ReferFuncVal.ts +4 -255
  339. package/src/val/ScalarKindVal.ts +0 -50
  340. package/src/val/ScalarVal.ts +0 -12
  341. package/src/val/StrFuncVal.ts +0 -44
  342. package/src/val/SuperFuncVal.ts +0 -42
  343. package/src/val/TopVal.ts +0 -1
  344. package/src/val/TranslateFuncVal.ts +1 -51
  345. package/src/val/UpperFuncVal.ts +0 -12
  346. package/src/val/Val.ts +3 -192
  347. package/src/val/VarVal.ts +0 -15
  348. package/src/val/arith.ts +0 -92
  349. package/src/val/caserange.ts +0 -62
  350. package/src/val/members.ts +0 -23
  351. package/src/val/numcmp.ts +1 -27
  352. package/src/val/numkind.ts +0 -149
  353. package/src/val/valutil.ts +0 -16
  354. package/src/vet.ts +1 -582
  355. package/src/view.ts +0 -507
  356. package/src/walk.ts +0 -41
  357. package/dist/lower.d.ts +0 -23
  358. package/dist/lower.js +0 -578
  359. package/dist/lower.js.map +0 -1
  360. package/dist/render.d.ts +0 -53
  361. package/dist/render.js +0 -547
  362. package/dist/render.js.map +0 -1
  363. package/dist/std.d.ts +0 -3
  364. package/dist/std.js +0 -672
  365. package/dist/std.js.map +0 -1
  366. package/dist/val/FormFuncVal.js +0 -55
  367. package/dist/val/FormFuncVal.js.map +0 -1
  368. package/dist/val/NamerFuncVal.d.ts +0 -12
  369. package/dist/val/NamerFuncVal.js +0 -176
  370. package/dist/val/NamerFuncVal.js.map +0 -1
  371. package/src/lower.ts +0 -636
  372. package/src/render.ts +0 -732
  373. package/src/std.ts +0 -683
@@ -18,15 +18,6 @@ class BagVal extends FeatureVal_1.FeatureVal {
18
18
  this.isGenable = true;
19
19
  this.closed = false;
20
20
  this.optionalKeys = [];
21
- // ALIAS DECLARATIONS, by key. `%uint8 = …` binds a name for this file
22
- // and is not a field of the document: it does not generate and does
23
- // not appear in canon, so a document using aliases and its expanded
24
- // twin are the SAME document and hash identically
25
- // (docs/design/ALIASES.0.md §4).
26
- //
27
- // Keyed on the map rather than marked on the value, because a
28
- // reference copies the value it resolves to -- a mark riding the
29
- // value would erase the referring field along with the declaration.
30
21
  this.aliasKeys = [];
31
22
  this.spread = {
32
23
  cj: undefined,
@@ -38,49 +29,14 @@ class BagVal extends FeatureVal_1.FeatureVal {
38
29
  return bag;
39
30
  }
40
31
  handleExpectedVal(key, val, parent, ctx) {
41
- // A MARKED value is carried, never expected (ADR-005 era, BUGS.md
42
- // §12's include form): a type()/hide()-marked child legitimately
43
- // participates in unification without ever generating — that is
44
- // the marks contract — so wrapping one as an expectation turned a
45
- // schema field arriving through an include's map meet into a
46
- // bogus `mapval_spread_required` naming a spread that exists in
47
- // neither file. The bag's gen already skips marked children.
48
- //
49
- // An OPERATOR is carried too (BUGS.md §36): an expression is a
50
- // computation that resolves by itself once its operands do — the
51
- // bag's own-key loop drives it every pass — so `m:{y:.x+1}`
52
- // arriving as a peer key must keep computing exactly as it does
53
- // written inline. Wrapping it froze the op (an expectation only
54
- // advances when a peer arrives) and the residue then reported the
55
- // phantom `mapval_spread_required` naming a spread that exists
56
- // nowhere. An op that truly never resolves is honest *_no_gen
57
- // residue naming the expression itself.
58
32
  if (val.isGenable || val.isOp || val.mark.type || val.mark.hide) {
59
33
  return val;
60
34
  }
61
- // An expectation baked into a combined spread template (the
62
- // 'map-self' meet of two unequal templates) is re-wrapped FRESH, so
63
- // key/parent name THIS bag and the template's own node is never
64
- // stored at a destination.
65
35
  const expectVal = new ExpectVal_1.ExpectVal({ peg: val.isExpect ? val.peg : val }, ctx);
66
36
  expectVal.key = key;
67
37
  expectVal.parent = parent;
68
38
  return expectVal;
69
39
  }
70
- // TWO BAGS ARE THE SAME VALUE WHEN THEY HAVE THE SAME SHAPE. Val.same
71
- // falls back to object IDENTITY, which no two separately built maps
72
- // share -- so `x:*{a:1}|{a:number}` met by `x:{a:2}` left
73
- // `{"a":2}|{"a":2}`, a disjunction of one value spelled twice, past
74
- // the DisjunctVal dedup. Generation's old member FOLD hid that
75
- // (folding a value with itself is that value); ADR-007 does not, and
76
- // a disjunction whose alternatives are all the SAME value is
77
- // resolved, not ambiguous. Canon prints the collapse too, which is
78
- // the more honest text.
79
- //
80
- // Structural, and deliberately strict: container kind, closedness,
81
- // the marks, the optional keys and the key set must all agree before
82
- // the children are compared pairwise. Recursion terminates because a
83
- // reference is not a bag -- RefVal keeps the identity comparison.
84
40
  same(peer) {
85
41
  if (this === peer) {
86
42
  return true;
@@ -94,11 +50,6 @@ class BagVal extends FeatureVal_1.FeatureVal {
94
50
  this.mark.hide !== peer.mark.hide) {
95
51
  return false;
96
52
  }
97
- // The SPREAD is part of the shape (BUGS.md §52 regime 4): `[]`
98
- // and `[&: T]` share an empty key set, and calling them the same
99
- // value collapsed the disjunction to its first arm before any
100
- // data could pick -- the vacuous-schema hole. Two spreads are the
101
- // same when their canons are.
102
53
  const scj = this.spread?.cj;
103
54
  const pcj = peer.spread?.cj;
104
55
  if ((null == scj) !== (null == pcj) ||
@@ -127,12 +78,6 @@ class BagVal extends FeatureVal_1.FeatureVal {
127
78
  if ((this.mark.type || this.mark.hide) && true !== ctx?.probe) {
128
79
  return undefined;
129
80
  }
130
- // Maps emit their keys in CODE POINT order so the generated output
131
- // is independent of insertion/unification order and matches the Go
132
- // port. Lists keep their numeric index order.
133
- //
134
- // The keys are String()-coerced because a list entry carries a
135
- // numeric index here; the coercion is a no-op for every map key.
136
81
  let entries = (0, utility_1.items)(this.peg);
137
82
  if (this.isMap) {
138
83
  entries = entries
@@ -173,22 +118,7 @@ class BagVal extends FeatureVal_1.FeatureVal {
173
118
  }
174
119
  put(cval);
175
120
  }
176
- // A CONJUNCT IS GENERABLE WHEN IT IS A SETTLED SIZING RESIDUE
177
- // (the review's finding C, use-cases/BUGS.md §16). `length` and
178
- // `unique` over a container keep the readings more members could
179
- // still change, so `a: length(3) a:[1,2,3]` is a conjunct of the
180
- // atom and the list right up to generation -- which is where the
181
- // atom decides, in ConjunctVal.gen. Any OTHER conjunct is
182
- // unresolved and falls through to the residue error below,
183
- // exactly as before.
184
121
  else if (bagGenable(child)) {
185
- // An optional child is generated in an isolated collect context so an
186
- // unresolved inner value (a bare type that survived unification, e.g.
187
- // an absent optional sub-map's `field: string`) is dropped rather than
188
- // raised: the optional subtree is simply omitted. Without isolation
189
- // such inner errors pollute the shared ctx.err and make generate()
190
- // throw even though the key is skipped below. Mirrors the
191
- // optional-disjunct path above.
192
122
  const cctx = optional ? ctx.clone({ err: [], collect: true }) : ctx;
193
123
  let cval = child.gen(cctx);
194
124
  if (optional && (undefined === cval || (0, Val_1.empty)(cval))) {
@@ -223,7 +153,6 @@ class BagVal extends FeatureVal_1.FeatureVal {
223
153
  (0, err_1.makeNilErr)(ctx, code, va, vb, undefined, details);
224
154
  break;
225
155
  }
226
- // else optional so we can ignore it
227
156
  }
228
157
  return out;
229
158
  }
@@ -245,13 +174,6 @@ function sizingResidue(v) {
245
174
  return undefined !== con && (true === bag?.isMap || true === bag?.isList) ?
246
175
  { con, bag } : undefined;
247
176
  }
248
- // bagGenable is the bag's generability whitelist. A graph atom
249
- // (RELATIONS P2) is exactly as generable as the value it carries: the
250
- // atom is transparent at generation, so wrapping a field's value in
251
- // acyclic() must not change whether the bag accepts it -- an unmet
252
- // rel() refuses required generation with or without the atom, and a
253
- // BARE atom generates nothing and is dropped, exactly as an unmet
254
- // rel() under an optional key is.
255
177
  function bagGenable(child) {
256
178
  if (true === child.isGraphAtom) {
257
179
  return undefined === child.held || bagGenable(child.held);
@@ -263,6 +185,7 @@ function bagGenable(child) {
263
185
  return true;
264
186
  }
265
187
  return true === child.isScalar
188
+ || true === child.isAbsent
266
189
  || true === child.isMap
267
190
  || true === child.isList
268
191
  || true === child.isPref
@@ -1 +1 @@
1
- {"version":3,"file":"BagVal.js","sourceRoot":"","sources":["../../src/val/BagVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BagVal.js","sourceRoot":"","sources":["../../src/val/BagVal.ts"],"names":[],"mappings":"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"}
@@ -7,21 +7,8 @@ const ScalarVal_1 = require("./ScalarVal");
7
7
  const ScalarKindVal_1 = require("./ScalarKindVal");
8
8
  const Decimal_1 = require("./Decimal");
9
9
  const utility_1 = require("../utility");
10
- // The exact base-10 decimal leaf of the number tower, reached only by a
11
- // `0d` literal carrying a `.` or an exponent (`0d1.5`, `0d1e3`) or by
12
- // direct construction.
13
- //
14
- // Its peg is a Decimal -- an OBJECT, so unlike every other scalar leaf
15
- // its identity cannot be `===` on the peg. Two bigdecimals are the same
16
- // value when their NUMBERS are equal (D2), which normalisation at
17
- // construction reduces to a two-field comparison; `samePeg` and `unify`
18
- // below are the two places that must not forget it.
19
10
  class BigDecimalVal extends ScalarVal_1.ScalarVal {
20
11
  constructor(spec, ctx) {
21
- // Exact-input construction (D8): a Decimal, or a decimal literal as
22
- // text (`'1.5'`, `'0d1e3'`). A JS `number` is deliberately NOT
23
- // accepted -- binary64 has already rounded it, so `0.1` could never
24
- // arrive exact.
25
12
  let peg = spec.peg;
26
13
  if ('string' === typeof peg) {
27
14
  try {
@@ -50,9 +37,6 @@ class BigDecimalVal extends ScalarVal_1.ScalarVal {
50
37
  else if (peer.isScalar &&
51
38
  peer.kind === this.kind &&
52
39
  this.peg.equals(peer.peg)) {
53
- // Same kind and equal NUMBER. Never `peer.peg === this.peg`:
54
- // that is object identity, and `0d0.10 & 0d0.1` (two Decimals
55
- // holding one value) has to succeed.
56
40
  out = this;
57
41
  }
58
42
  else if (peer.isTop) {
@@ -1 +1 @@
1
- {"version":3,"file":"BigDecimalVal.js","sourceRoot":"","sources":["../../src/val/BigDecimalVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BigDecimalVal.js","sourceRoot":"","sources":["../../src/val/BigDecimalVal.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAWpD,gCAA+C;AAE/C,2CAAuC;AACvC,mDAA4C;AAC5C,uCAAmC;AAEnC,wCAImB;AAGnB,MAAM,aAAc,SAAQ,qBAAS;IAKnC,YACE,IAAa,EACb,GAAkB;QAElB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QAClB,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,GAAG,GAAG,iBAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;YAC/B,CAAC;YACD,MAAM,CAAC;gBACL,8DAA8D;gBAC9D,2DAA2D;gBAC3D,UAAU;gBACV,MAAM,IAAI,gBAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;YACrD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,CAAC,GAAG,YAAY,iBAAO,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,gBAAU,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAA;QAChD,CAAC;QAED,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,0BAAU,EAAE,EAAE,GAAG,CAAC,CAAA;QAxBhD,iBAAY,GAAG,IAAI,CAAA;IAyBnB,CAAC;IAGD,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,IAAI,IAAA,qBAAW,EAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAEjF,IAAI,GAAG,GAAQ,IAAI,CAAA;QAEnB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,YAAY,IAAK,IAAY,CAAC,YAAY,EAAE,CAAC;gBACpD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YAC1E,CAAC;iBACI,IACH,IAAI,CAAC,QAAQ;gBACb,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;gBACvB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EACzB,CAAC;gBACD,GAAG,GAAG,IAAI,CAAA;YACZ,CAAC;iBACI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpB,GAAG,GAAG,IAAI,CAAA;YACZ,CAAC;iBACI,CAAC;gBACJ,GAAG,GAAG,IAAA,gBAAU,EAAC,GAAG,EAAE,SAAS;oBAC7B,CAAE,IAAY,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YACtE,CAAC;QACH,CAAC;aACI,CAAC;YACJ,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC9B,CAAC;QAED,IAAA,sBAAY,EAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAErB,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,OAAO,CAAC,GAAQ;QACd,OAAO,GAAG,YAAY,iBAAO,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACvD,CAAC;IAGD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAC,iCAAiC;QAIjC,aAAa"}
@@ -6,24 +6,8 @@ const err_1 = require("../err");
6
6
  const ScalarVal_1 = require("./ScalarVal");
7
7
  const ScalarKindVal_1 = require("./ScalarKindVal");
8
8
  const utility_1 = require("../utility");
9
- // The unbounded exact integer leaf of the number tower, reached only by
10
- // a `0d` literal with no fraction and no exponent (`0d5`, `-0d5`,
11
- // `0d123456789012345678901234567890`) or by direct construction.
12
- //
13
- // Its peg is a native bigint: exact at any magnitude, immutable, and
14
- // compared by VALUE with `===` (D2 -- two separately built bigints
15
- // holding the same number are `===`, which is exactly the property the
16
- // Go port has to reproduce by hand for `*big.Int`).
17
- //
18
- // `biginteger` is DISJOINT from `integer`: `5 & 0d5` is an error, since
19
- // a successful meet would have to pick one of the two kinds and either
20
- // choice makes `&` asymmetric in kind.
21
9
  class BigIntegerVal extends ScalarVal_1.ScalarVal {
22
10
  constructor(spec, ctx) {
23
- // Exact-input construction (D8): a bigint, or the digits as text. A
24
- // JS `number` is deliberately NOT accepted -- it has already been
25
- // rounded before this library could inspect it, so an exact value
26
- // above 2^53 could never arrive that way intact.
27
11
  let peg = spec.peg;
28
12
  if ('string' === typeof peg) {
29
13
  if (!/^[-+]?[0-9]+$/.test(peg)) {
@@ -1 +1 @@
1
- {"version":3,"file":"BigIntegerVal.js","sourceRoot":"","sources":["../../src/val/BigIntegerVal.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAWpD,gCAA+C;AAE/C,2CAAuC;AACvC,mDAA4C;AAE5C,wCAImB;AAGnB,wEAAwE;AACxE,kEAAkE;AAClE,iEAAiE;AACjE,EAAE;AACF,qEAAqE;AACrE,mEAAmE;AACnE,uEAAuE;AACvE,oDAAoD;AACpD,EAAE;AACF,wEAAwE;AACxE,uEAAuE;AACvE,uCAAuC;AACvC,MAAM,aAAc,SAAQ,qBAAS;IAKnC,YACE,IAAa,EACb,GAAkB;QAElB,oEAAoE;QACpE,kEAAkE;QAClE,kEAAkE;QAClE,iDAAiD;QACjD,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QAClB,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,gBAAU,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAA;YAChD,CAAC;YACD,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;QACD,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,gBAAU,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAA;QAChD,CAAC;QAED,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,0BAAU,EAAE,EAAE,GAAG,CAAC,CAAA;QAvBhD,iBAAY,GAAG,IAAI,CAAA;IAwBnB,CAAC;IAGD,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,IAAI,IAAA,qBAAW,EAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAEjF,IAAI,GAAG,GAAQ,IAAI,CAAA;QAEnB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,YAAY,IAAK,IAAY,CAAC,YAAY,EAAE,CAAC;gBACpD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YAC1E,CAAC;iBACI,IACH,IAAI,CAAC,QAAQ;gBACb,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;gBACvB,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,EACrB,CAAC;gBACD,+DAA+D;gBAC/D,GAAG,GAAG,IAAI,CAAA;YACZ,CAAC;iBACI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpB,GAAG,GAAG,IAAI,CAAA;YACZ,CAAC;iBACI,CAAC;gBACJ,GAAG,GAAG,IAAA,gBAAU,EAAC,GAAG,EAAE,SAAS;oBAC7B,CAAE,IAAY,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YACtE,CAAC;QACH,CAAC;aACI,CAAC;YACJ,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC9B,CAAC;QAED,IAAA,sBAAY,EAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAErB,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,uEAAuE;IACvE,uDAAuD;IACvD,IAAI,KAAK;QACP,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;QACzB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;IACvE,CAAC;CACF,CAAC,iCAAiC;QAIjC,aAAa"}
1
+ {"version":3,"file":"BigIntegerVal.js","sourceRoot":"","sources":["../../src/val/BigIntegerVal.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAWpD,gCAA+C;AAE/C,2CAAuC;AACvC,mDAA4C;AAE5C,wCAImB;AAGnB,MAAM,aAAc,SAAQ,qBAAS;IAKnC,YACE,IAAa,EACb,GAAkB;QAElB,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;QAClB,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,gBAAU,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAA;YAChD,CAAC;YACD,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;QACD,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,gBAAU,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAA;QAChD,CAAC;QAED,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,0BAAU,EAAE,EAAE,GAAG,CAAC,CAAA;QAnBhD,iBAAY,GAAG,IAAI,CAAA;IAoBnB,CAAC;IAGD,KAAK,CAAC,IAAS,EAAE,GAAiB;QAChC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,IAAI,IAAA,qBAAW,EAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAEjF,IAAI,GAAG,GAAQ,IAAI,CAAA;QAEnB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,YAAY,IAAK,IAAY,CAAC,YAAY,EAAE,CAAC;gBACpD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YAC1E,CAAC;iBACI,IACH,IAAI,CAAC,QAAQ;gBACb,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;gBACvB,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,EACrB,CAAC;gBACD,+DAA+D;gBAC/D,GAAG,GAAG,IAAI,CAAA;YACZ,CAAC;iBACI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpB,GAAG,GAAG,IAAI,CAAA;YACZ,CAAC;iBACI,CAAC;gBACJ,GAAG,GAAG,IAAA,gBAAU,EAAC,GAAG,EAAE,SAAS;oBAC7B,CAAE,IAAY,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YACtE,CAAC;QACH,CAAC;aACI,CAAC;YACJ,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC9B,CAAC;QAED,IAAA,sBAAY,EAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAErB,OAAO,GAAG,CAAA;IACZ,CAAC;IAGD,uEAAuE;IACvE,uDAAuD;IACvD,IAAI,KAAK;QACP,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;QACzB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAA;IACvE,CAAC;CACF,CAAC,iCAAiC;QAIjC,aAAa"}
@@ -22,16 +22,7 @@ class CloseFuncVal extends FuncBaseVal_1.FuncBaseVal {
22
22
  return (0, err_1.makeNilErr)(ctx, 'no_first_arg', this, undefined, 'close');
23
23
  }
24
24
  if (argval.isMap || argval.isList) {
25
- // The in-place write is safe BECAUSE of the per-destination
26
- // instantiation rule (ADR-005): everywhere a close() call is
27
- // multiplied — a pack/each template, a spread constraint — the
28
- // clone now owns its argument (`dup`), so `closed` lands on that
29
- // instance alone. Cloning the bag here instead was tried and
30
- // rejected: the re-path it implies corrupts the source
31
- // attribution of children inside nested spread templates (the
32
- // 06-k8s use case's env findings named the wrong path).
33
25
  argval.closed = true;
34
- // console.log('CLOSED', argval.canon)
35
26
  }
36
27
  return argval;
37
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CloseFuncVal.js","sourceRoot":"","sources":["../../src/val/CloseFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAGnC,+CAA2C;AAI3C,MAAM,YAAa,SAAQ,yBAAW;IAGpC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,gBAAW,GAAG,IAAI,CAAA;QAOhB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAChC,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED,QAAQ;QACN,OAAO,OAAO,CAAA;IAChB,CAAC;IAGD,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,IAAI,MAAM,GAAQ,IAAI,CAAC,CAAC,CAAC,CAAA;QAEzB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACnB,OAAO,IAAA,gBAAU,EAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;QAClE,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,4DAA4D;YAC5D,6DAA6D;YAC7D,+DAA+D;YAC/D,iEAAiE;YACjE,6DAA6D;YAC7D,uDAAuD;YACvD,8DAA8D;YAC9D,wDAAwD;YACvD,MAAiB,CAAC,MAAM,GAAG,IAAI,CAAA;YAChC,sCAAsC;QACxC,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CAEF,CAAC,iCAAiC;QAIjC,YAAY"}
1
+ {"version":3,"file":"CloseFuncVal.js","sourceRoot":"","sources":["../../src/val/CloseFuncVal.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAYzD,gCAAmC;AAGnC,+CAA2C;AAI3C,MAAM,YAAa,SAAQ,yBAAW;IAGpC,YACE,IAAa,EACb,GAAkB;QAElB,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QANlB,gBAAW,GAAG,IAAI,CAAA;QAOhB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAChC,CAAC;IAGD,IAAI,CAAC,IAAkB,EAAE,IAAa;QACpC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED,QAAQ;QACN,OAAO,OAAO,CAAA;IAChB,CAAC;IAGD,OAAO,CAAC,GAAiB,EAAE,IAAW;QACpC,IAAI,MAAM,GAAQ,IAAI,CAAC,CAAC,CAAC,CAAA;QAEzB,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACnB,OAAO,IAAA,gBAAU,EAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;QAClE,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACjC,MAAiB,CAAC,MAAM,GAAG,IAAI,CAAA;QAClC,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CAEF,CAAC,iCAAiC;QAIjC,YAAY"}
@@ -6,7 +6,9 @@ type CmpDef = {
6
6
  children: string[];
7
7
  text?: string;
8
8
  req: boolean;
9
+ span?: boolean;
9
10
  bag?: string;
11
+ props: string[];
10
12
  };
11
13
  declare const CMP_DEF: Record<string, CmpDef>;
12
14
  declare class CmpFuncVal extends FuncBaseVal {
@@ -7,84 +7,67 @@ const MapVal_1 = require("./MapVal");
7
7
  const ListVal_1 = require("./ListVal");
8
8
  const StringVal_1 = require("./StringVal");
9
9
  const FuncBaseVal_1 = require("./FuncBaseVal");
10
- // EIGHT OF JOSTRACA'S TEN COMPONENTS. `Copy` and `List` are missing and
11
- // cannot be added under these rules: `copy` and `list` are already
12
- // aontu builtins with settled, unrelated meanings -- `copy(v)` copies a
13
- // VALUE and `list()` is the list container kind, both declared in
14
- // test/spec/signature.tsv and implemented in both ports. Lower-casing
15
- // jostraca's names onto them would either shadow landed language
16
- // surface or make one name mean two things by arity, and neither is a
17
- // trade a spike gets to make. See docs/design/JOSTRACA.0.md.
10
+ const SPAN_PROPS = ['arg', 'src', 'name', 'indent', 'extra', 'replace', 'raw'];
18
11
  const CMP_DEF = {
19
12
  // The output root. Its `folder` is refused an absolute path or a
20
- // `..` segment on the jostraca side, where the tree is data.
13
+ // `..` segment on the Jostraca side, where the tree is data.
21
14
  project: {
22
15
  cmp: 'Project', text: 'folder', req: false,
23
16
  children: ['project', 'folder', 'file', 'copyfiles'],
17
+ props: ['name', 'folder'],
24
18
  },
25
19
  folder: {
26
20
  cmp: 'Folder', text: 'name', req: true,
27
21
  children: ['folder', 'file', 'copyfiles'],
22
+ props: ['name'],
28
23
  },
29
24
  file: {
30
25
  cmp: 'File', text: 'name', req: true,
31
26
  children: ['content', 'line', 'fragment', 'inject', 'listitems', 'copyfiles'],
27
+ props: ['name', 'exclude', 'mode'],
32
28
  },
33
- // A span of text, exactly as written. `FileOp` joins a file's spans
34
- // with the empty string, so a `content` carries its own terminator.
35
29
  content: {
36
- cmp: 'Content', text: 'src', req: true,
30
+ cmp: 'Content', text: 'src', req: true, span: true,
37
31
  children: [],
32
+ props: SPAN_PROPS,
38
33
  },
39
34
  // A span with a newline added, which is the whole difference.
40
35
  line: {
41
- cmp: 'Line', text: 'src', req: true,
36
+ cmp: 'Line', text: 'src', req: true, span: true,
42
37
  children: [],
38
+ props: SPAN_PROPS,
43
39
  },
44
40
  // A file read from disk with its `<[SLOT]>` markers filled.
45
41
  fragment: {
46
42
  cmp: 'Fragment', text: 'from', req: true,
47
43
  children: ['slot', 'content', 'line', 'listitems'],
44
+ props: ['from', 'indent', 'replace', 'eject'],
48
45
  },
49
46
  slot: {
50
47
  cmp: 'Slot', text: 'name', req: true,
51
48
  children: ['content', 'line', 'fragment', 'listitems'],
49
+ props: ['name'],
52
50
  },
53
51
  // A body written between markers in a file that already exists.
54
52
  inject: {
55
53
  cmp: 'Inject', text: 'name', req: true,
56
54
  children: ['content', 'line', 'listitems'],
55
+ props: ['name', 'markers', 'exclude'],
57
56
  },
58
57
  // `Copy` under a name aontu has free: `copy` is taken by the builtin
59
58
  // that copies a VALUE, and a file copy is a different verb.
60
59
  copyfiles: {
61
60
  cmp: 'CopyFiles', text: 'from', req: true,
62
61
  children: [],
62
+ props: ['from', 'to', 'replace', 'exclude'],
63
63
  },
64
- // `List` under a name that says what it does: it renders its children
65
- // ONCE PER ELEMENT of `item`, binding jostraca's `{item}` and
66
- // `{item.path}` macros, and adds a trailing blank line unless
67
- // `line: false`.
68
- //
69
- // IT IS THE ONE COMPONENT THE AONTU SIDE ALREADY SUBSUMES, and a
70
- // generator should reach for `each()` first. `each($.rows, content(...))`
71
- // repeats in the MODEL, so the repetition is finished before the tree
72
- // exists and every produced node is data a document can reference,
73
- // vet and diff. `listitems` defers it into jostraca's define phase behind
74
- // a string macro aontu cannot see into -- which is the layer this
75
- // spike exists to remove. It is here so the component set is
76
- // complete, not because it is the better spelling.
77
64
  listitems: {
78
65
  cmp: 'ListItems', req: true, bag: 'item',
79
66
  children: ['content', 'line', 'fragment'],
67
+ props: ['item', 'line', 'indent'],
80
68
  },
81
69
  };
82
70
  exports.CMP_DEF = CMP_DEF;
83
- // The component name a value carries, when the value is a node this
84
- // vocabulary built. Read structurally rather than by class, because a
85
- // node reaches a children list as a MAP -- through a reference, a
86
- // `each()` instance, a spread -- long after the call that made it has
87
- // resolved away.
88
71
  const BY_CMP = {};
89
72
  for (const fname of Object.keys(CMP_DEF)) {
90
73
  BY_CMP[CMP_DEF[fname].cmp] = fname;
@@ -100,7 +83,21 @@ function nodeCmp(v) {
100
83
  // names, so read it back through the one table.
101
84
  return (undefined === name) ? undefined : BY_CMP[name];
102
85
  }
103
- // A prop's text, when the prop is a concrete string.
86
+ function cmpNode(cmp, props, children, ctx) {
87
+ const node = new MapVal_1.MapVal({ peg: { cmp: new StringVal_1.StringVal({ peg: cmp }, ctx), props, children } }, ctx);
88
+ node.closed = true;
89
+ return node;
90
+ }
91
+ // A bare string child is a LINE: `Content` writes no newline, and the
92
+ // emit mark rides across or `aontu trace` loses the line's rule.
93
+ function lineNode(from, src, ctx) {
94
+ const node = cmpNode(CMP_DEF.line.cmp, new MapVal_1.MapVal({ peg: { src: new StringVal_1.StringVal({ peg: src }, ctx) } }, ctx), new ListVal_1.ListVal({ peg: [] }, ctx), ctx);
95
+ if (null != from?.emitted) {
96
+ ;
97
+ node.emitted = from.emitted;
98
+ }
99
+ return node;
100
+ }
104
101
  function propText(props, key) {
105
102
  const v = props?.peg?.[key];
106
103
  return (true === v?.isScalar && 'string' === typeof v.peg) ? v.peg : undefined;
@@ -116,22 +113,7 @@ class CmpFuncVal extends FuncBaseVal_1.FuncBaseVal {
116
113
  }
117
114
  resolve(ctx, args) {
118
115
  const def = CMP_DEF[this.cmp];
119
- const leaf = 0 === def.children.length;
120
- // ARITY, refused here (see the spike-scope note above): a leaf
121
- // takes its spec alone, a container takes a spec and an optional
122
- // children list.
123
- // A component whose text prop is OPTIONAL may be called with
124
- // nothing at all: `project()` is the defaulted root, as
125
- // `project({})` is on the other side. Everything else needs its
126
- // spec.
127
- if (args.length < (def.req ? 1 : 0) || args.length > (leaf ? 1 : 2)) {
128
- return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this, undefined, 'arity');
129
- }
130
- // THE SPEC IS A STRING OR A PROPS MAP. The string spelling fills
131
- // the one prop the component cannot work without, so the common
132
- // case reads as the component does -- `file("main.ts", ...)` --
133
- // and the map spelling is there the moment a second prop is
134
- // wanted: `file({name: "run.sh", mode: 0o755}, ...)`.
116
+ // Arity is checked at parse (funcArity); args[0] can be undefined.
135
117
  const spec = args[0];
136
118
  let props;
137
119
  if (undefined === spec) {
@@ -149,15 +131,20 @@ class CmpFuncVal extends FuncBaseVal_1.FuncBaseVal {
149
131
  else {
150
132
  return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this, spec, 'spec');
151
133
  }
152
- // The one prop that is not the component's own business: without
153
- // it there is no file to write and no content to write into one.
134
+ // An unknown prop is a silently dropped `indent` or `mode`.
135
+ for (const key of Object.keys(props.peg)) {
136
+ if (!def.props.includes(key)) {
137
+ return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this, props, key);
138
+ }
139
+ }
154
140
  if (undefined !== def.text) {
155
141
  const text = propText(props, def.text);
156
- if (def.req && (undefined === text || '' === text)) {
142
+ if (def.req &&
143
+ (undefined === text || ('' === text && true !== def.span))) {
157
144
  return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this, props, def.text);
158
145
  }
159
146
  if (!def.req && undefined !== props.peg?.[def.text] &&
160
- undefined === text) {
147
+ (undefined === text || ('' === text && true !== def.span))) {
161
148
  return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this, props, def.text);
162
149
  }
163
150
  }
@@ -170,10 +157,6 @@ class CmpFuncVal extends FuncBaseVal_1.FuncBaseVal {
170
157
  return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this, props, def.bag);
171
158
  }
172
159
  }
173
- // THE CHILDREN, flattened, then the containment grammar. Absent
174
- // is empty -- an empty folder and a file with no content are both
175
- // things a model may legitimately say -- and every node that
176
- // survives the flattening must be one this component admits.
177
160
  const kids = args[1];
178
161
  let children;
179
162
  if (undefined === kids) {
@@ -190,6 +173,15 @@ class CmpFuncVal extends FuncBaseVal_1.FuncBaseVal {
190
173
  }
191
174
  continue;
192
175
  }
176
+ const text = (true === kid?.isScalar &&
177
+ 'string' === typeof kid.peg) ? kid.peg : undefined;
178
+ if (undefined !== text) {
179
+ if (!def.children.includes('line')) {
180
+ return kid;
181
+ }
182
+ flat.push(lineNode(kid, text, ctx));
183
+ continue;
184
+ }
193
185
  const kcmp = nodeCmp(kid);
194
186
  if (undefined === kcmp || !def.children.includes(kcmp)) {
195
187
  return kid;
@@ -207,25 +199,10 @@ class CmpFuncVal extends FuncBaseVal_1.FuncBaseVal {
207
199
  else {
208
200
  return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this, kids, 'children');
209
201
  }
210
- const node = new MapVal_1.MapVal({
211
- peg: {
212
- cmp: new StringVal_1.StringVal({ peg: def.cmp }, ctx),
213
- props,
214
- children,
215
- }
216
- }, ctx);
217
- // Closed: the three keys ARE the node vocabulary (see the note
218
- // above). `props` is left open on purpose.
219
- node.closed = true;
220
- return this.place(node);
202
+ return this.place(cmpNode(def.cmp, props, children, ctx));
221
203
  }
222
204
  } /* node:coverage ignore next 3 */
223
205
  exports.CmpFuncVal = CmpFuncVal;
224
- // ONE CLASS PER COMPONENT, generated from the table, because the
225
- // registry constructs by `new funcval({peg: args})` and so needs a
226
- // constructor per name. Written as a factory rather than eight
227
- // near-identical subclasses: the table is the single statement of what
228
- // exists, and a ninth component is a row in it and nothing else.
229
206
  function cmpFuncClass(fname) {
230
207
  class Cmp extends CmpFuncVal {
231
208
  constructor(spec, ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"CmpFuncVal.js","sourceRoot":"","sources":["../../src/val/CmpFuncVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CmpFuncVal.js","sourceRoot":"","sources":["../../src/val/CmpFuncVal.ts"],"names":[],"mappings":"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"}