aontu 0.56.0 → 0.58.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 (138) hide show
  1. package/README.md +2 -2
  2. package/dist/agentsmd.js +1 -1
  3. package/dist/alias.d.ts +3 -0
  4. package/dist/alias.js +59 -0
  5. package/dist/alias.js.map +1 -0
  6. package/dist/aontu.d.ts +5 -2
  7. package/dist/aontu.js +11 -3
  8. package/dist/aontu.js.map +1 -1
  9. package/dist/cli.d.ts +8 -2
  10. package/dist/cli.js +564 -21
  11. package/dist/cli.js.map +1 -1
  12. package/dist/ctx.d.ts +2 -0
  13. package/dist/ctx.js +1 -0
  14. package/dist/ctx.js.map +1 -1
  15. package/dist/escape.d.ts +5 -0
  16. package/dist/escape.js +455 -0
  17. package/dist/escape.js.map +1 -0
  18. package/dist/format.d.ts +9 -0
  19. package/dist/format.js +550 -55
  20. package/dist/format.js.map +1 -1
  21. package/dist/hints.js +74 -9
  22. package/dist/hints.js.map +1 -1
  23. package/dist/lang.js +374 -58
  24. package/dist/lang.js.map +1 -1
  25. package/dist/lower.d.ts +20 -0
  26. package/dist/lower.js +575 -0
  27. package/dist/lower.js.map +1 -0
  28. package/dist/lsp.d.ts +1 -1
  29. package/dist/lsp.js +4 -4
  30. package/dist/lsp.js.map +1 -1
  31. package/dist/mcp-server.js +2 -2
  32. package/dist/mcp-server.js.map +1 -1
  33. package/dist/mcp.d.ts +1 -0
  34. package/dist/mcp.js +40 -3
  35. package/dist/mcp.js.map +1 -1
  36. package/dist/mod-tool.js +8 -7
  37. package/dist/mod-tool.js.map +1 -1
  38. package/dist/mod.js +6 -6
  39. package/dist/mod.js.map +1 -1
  40. package/dist/render.d.ts +53 -0
  41. package/dist/render.js +542 -0
  42. package/dist/render.js.map +1 -0
  43. package/dist/sigdecl.js +1 -1
  44. package/dist/sigdecl.js.map +1 -1
  45. package/dist/std.d.ts +2 -0
  46. package/dist/std.js +498 -2
  47. package/dist/std.js.map +1 -1
  48. package/dist/template.d.ts +5 -0
  49. package/dist/template.js +257 -0
  50. package/dist/template.js.map +1 -0
  51. package/dist/tsconfig.tsbuildinfo +1 -1
  52. package/dist/unify.js +43 -0
  53. package/dist/unify.js.map +1 -1
  54. package/dist/val/AggFuncVal.d.ts +1 -1
  55. package/dist/val/AggFuncVal.js +10 -21
  56. package/dist/val/AggFuncVal.js.map +1 -1
  57. package/dist/val/BagVal.js +1 -1
  58. package/dist/val/BagVal.js.map +1 -1
  59. package/dist/val/ConstraintVal.js +1 -1
  60. package/dist/val/EachFuncVal.d.ts +1 -1
  61. package/dist/val/EachFuncVal.js +9 -15
  62. package/dist/val/EachFuncVal.js.map +1 -1
  63. package/dist/val/EmitFuncVal.d.ts +42 -0
  64. package/dist/val/EmitFuncVal.js +531 -0
  65. package/dist/val/EmitFuncVal.js.map +1 -0
  66. package/dist/val/FilterFuncVal.js +9 -6
  67. package/dist/val/FilterFuncVal.js.map +1 -1
  68. package/dist/val/FormFuncVal.d.ts +14 -0
  69. package/dist/val/FormFuncVal.js +55 -0
  70. package/dist/val/FormFuncVal.js.map +1 -0
  71. package/dist/val/FuncBaseVal.d.ts +1 -0
  72. package/dist/val/FuncBaseVal.js +16 -0
  73. package/dist/val/FuncBaseVal.js.map +1 -1
  74. package/dist/val/MapVal.d.ts +2 -1
  75. package/dist/val/MapVal.js +2 -1
  76. package/dist/val/MapVal.js.map +1 -1
  77. package/dist/val/PackFuncVal.d.ts +1 -1
  78. package/dist/val/PackFuncVal.js +23 -20
  79. package/dist/val/PackFuncVal.js.map +1 -1
  80. package/dist/val/PlaceVal.d.ts +3 -1
  81. package/dist/val/PlaceVal.js +9 -6
  82. package/dist/val/PlaceVal.js.map +1 -1
  83. package/dist/val/RefVal.d.ts +3 -0
  84. package/dist/val/RefVal.js +156 -17
  85. package/dist/val/RefVal.js.map +1 -1
  86. package/dist/val/StrFuncVal.d.ts +32 -0
  87. package/dist/val/StrFuncVal.js +292 -0
  88. package/dist/val/StrFuncVal.js.map +1 -0
  89. package/dist/val/Val.d.ts +7 -1
  90. package/dist/val/Val.js +12 -1
  91. package/dist/val/Val.js.map +1 -1
  92. package/dist/val/members.d.ts +9 -0
  93. package/dist/val/members.js +52 -0
  94. package/dist/val/members.js.map +1 -0
  95. package/grammar/aontu.abnf +4 -3
  96. package/grammar/aontu.gbnf +4 -3
  97. package/grammar/aontu.lark +4 -3
  98. package/grammar/aontu.tmLanguage.json +1 -1
  99. package/package.json +1 -1
  100. package/skill/SKILL.md +4 -4
  101. package/skill/error-codes.md +1 -1
  102. package/skill/examples.md +1 -1
  103. package/skill/grammar-card.md +1 -1
  104. package/src/agentsmd.ts +1 -1
  105. package/src/alias.ts +112 -0
  106. package/src/aontu.ts +20 -2
  107. package/src/cli.ts +630 -23
  108. package/src/ctx.ts +13 -0
  109. package/src/escape.ts +371 -0
  110. package/src/format.ts +648 -56
  111. package/src/hints.ts +94 -9
  112. package/src/lang.ts +430 -63
  113. package/src/lower.ts +636 -0
  114. package/src/lsp.ts +4 -4
  115. package/src/mcp-server.ts +3 -2
  116. package/src/mcp.ts +43 -4
  117. package/src/mod-tool.ts +9 -8
  118. package/src/mod.ts +6 -6
  119. package/src/render.ts +727 -0
  120. package/src/sigdecl.ts +1 -1
  121. package/src/std.ts +506 -1
  122. package/src/template.ts +291 -0
  123. package/src/unify.ts +47 -0
  124. package/src/val/AggFuncVal.ts +10 -21
  125. package/src/val/BagVal.ts +1 -1
  126. package/src/val/ConstraintVal.ts +1 -1
  127. package/src/val/EachFuncVal.ts +9 -19
  128. package/src/val/EmitFuncVal.ts +738 -0
  129. package/src/val/FilterFuncVal.ts +12 -7
  130. package/src/val/FormFuncVal.ts +119 -0
  131. package/src/val/FuncBaseVal.ts +18 -0
  132. package/src/val/MapVal.ts +3 -2
  133. package/src/val/PackFuncVal.ts +24 -22
  134. package/src/val/PlaceVal.ts +9 -6
  135. package/src/val/RefVal.ts +167 -18
  136. package/src/val/StrFuncVal.ts +334 -0
  137. package/src/val/Val.ts +42 -1
  138. package/src/val/members.ts +86 -0
@@ -44,6 +44,25 @@ function pendingMarkWrapper(v) {
44
44
  }
45
45
  return false;
46
46
  }
47
+ // The child a term of the walk can supply for one path segment, or
48
+ // undefined when it has none. A map or a list answers from its own
49
+ // members; a PENDING type()/hide() answers from its argument's, because
50
+ // the wrapper only marks and its argument is the structure the path
51
+ // names (see the call sites in `find`).
52
+ function markedChild(v, part) {
53
+ if (true === v?.isMap || true === v?.isList) {
54
+ return v.peg[part];
55
+ }
56
+ if (true === v?.isFunc
57
+ && (true === v.isHideFunc || true === v.isTypeFunc)
58
+ && (true === v.peg?.[0]?.isMap || true === v.peg?.[0]?.isList)) {
59
+ return v.peg[0].peg[part];
60
+ }
61
+ return undefined;
62
+ }
63
+ // An alias name, whole: the sigil and an identifier (the lexer's
64
+ // ALIAS_RE, anchored at both ends, for the canon spelling above).
65
+ const ALIAS_NAME_RE = /^%[A-Za-z_][A-Za-z0-9_]*$/;
47
66
  class RefVal extends FeatureVal_1.FeatureVal {
48
67
  constructor(spec, ctx) {
49
68
  super(spec, ctx);
@@ -51,6 +70,10 @@ class RefVal extends FeatureVal_1.FeatureVal {
51
70
  this.isGenable = true;
52
71
  this.cjo = 32500;
53
72
  this.absolute = false;
73
+ // The value an alias reference canons as, attached by expandAliases
74
+ // after unification (see `canon` below). Not a ValSpec field: it is
75
+ // a rendering of the settled tree, never a parse-time property.
76
+ this.expansion = undefined;
54
77
  this.prefix = false;
55
78
  this.peg = [];
56
79
  // The field initialiser (absolute = false) has just run, so only
@@ -156,7 +179,8 @@ class RefVal extends FeatureVal_1.FeatureVal {
156
179
  out = (0, err_1.makeNilErr)(ctx, 'ref[' + this.peg + ']', this, peer);
157
180
  }
158
181
  // same path
159
- else if (this.canon === peer.canon) {
182
+ else if (this.spelling ===
183
+ (true === peer.isRef ? peer.spelling : peer.canon)) {
160
184
  out = this;
161
185
  }
162
186
  else {
@@ -326,6 +350,44 @@ class RefVal extends FeatureVal_1.FeatureVal {
326
350
  || true === node.peg?.[0]?.isList)) {
327
351
  node = node.peg[0].peg[part];
328
352
  }
353
+ // AND SO IS A CONJUNCT THAT STILL CARRIES ONE (issue #164).
354
+ // Two statements for one key meet, so a key written as
355
+ // `T: type({...})` twice is a CONJUNCT of two wrappers -- and
356
+ // one written once beside a plain `T: {...}` is a conjunct
357
+ // too. The arm above sees a wrapper only when it is the whole
358
+ // node, so a reference into such a key walked into the
359
+ // conjunct and stopped: the wrapper waited for its argument,
360
+ // the argument waited for the reference, and neither moved.
361
+ // The first referring child of every consumer stayed
362
+ // unresolved and generation reported mapval_no_gen at a path
363
+ // that names none of this, which is how a five-file schema
364
+ // spent its evening being bisected.
365
+ //
366
+ // The answer at a segment is the MEET of what each term
367
+ // supplies, so terms that have no such member are skipped and
368
+ // the rest are conjoined -- one term answers as itself, and
369
+ // the ordinary map arm answers once the fold has happened.
370
+ // Restricted to a conjunct that still holds a pending
371
+ // wrapper: every other conjunct folds on its own, and this
372
+ // walk exists only to break the wrapper's deadlock.
373
+ else if (true === node.isConjunct
374
+ && Array.isArray(node.peg)
375
+ && pendingMarkWrapper(node)) {
376
+ const kids = [];
377
+ for (const term of node.peg) {
378
+ const kid = markedChild(term, part);
379
+ if (undefined !== kid && null !== kid) {
380
+ kids.push(kid);
381
+ }
382
+ }
383
+ // No term has it YET. Not a miss: the conjunct is still
384
+ // folding, and the member may arrive with the fold.
385
+ if (0 === kids.length) {
386
+ break;
387
+ }
388
+ node = 1 === kids.length ?
389
+ kids[0] : new ConjunctVal_1.ConjunctVal({ peg: kids }, ctx);
390
+ }
329
391
  else if (node.done) {
330
392
  nopath = true;
331
393
  break;
@@ -379,6 +441,31 @@ class RefVal extends FeatureVal_1.FeatureVal {
379
441
  }
380
442
  else if (pI === refpath.length) {
381
443
  out = node;
444
+ // THE READ IS RECORDED, AND THE VALUE STAMPED WITH WHERE IT
445
+ // WAS FOUND (RENDER.0.md P7). A resolved reference clones its
446
+ // target into the referring position, so without the stamp a
447
+ // value that arrived by reference knows only where it came to
448
+ // rest -- and `render --coverage` has nothing to measure the
449
+ // model against. Off unless the run is instrumented; the first
450
+ // address wins, and every reference to one node names the same
451
+ // address anyway.
452
+ if (undefined !== ctx.reads && null != node) {
453
+ // The root's own address is `$`, as the coverage walk spells
454
+ // it: a dot with nothing after it would match no path there.
455
+ const addr = '$' + refpath.map((seg) => '.' + seg).join('');
456
+ // AN ALIAS IS NOT A PATH. `%wire` names a value the document
457
+ // holds unevaluated and the tree never carries, so it is an
458
+ // address a rule can be reported AT and never a path coverage
459
+ // could call dead: it is stamped, and it is not in the set
460
+ // the model is measured against.
461
+ if (!refpath[0]?.startsWith('%')) {
462
+ ctx.reads.add(addr);
463
+ }
464
+ if (null == node.origin) {
465
+ ;
466
+ node.origin = addr;
467
+ }
468
+ }
382
469
  // A reference landing on another reference -- or on a FUNCTION,
383
470
  // whose arguments the chase now follows (issue #35) -- may be a
384
471
  // PROVEN mutual cycle (a: $.b, b: $.a; a: $.b, b: upper($.a)).
@@ -453,20 +540,36 @@ class RefVal extends FeatureVal_1.FeatureVal {
453
540
  out.mark.hide = true;
454
541
  }
455
542
  // console.log('FOUND-B', out)
543
+ // A REFERENCE LIFTS: the copy is concrete, its type and hide
544
+ // marks cleared to the leaves -- a marked target is what the
545
+ // author hid or typed, and a reference to it is the author
546
+ // asking for it in the open. EXCEPT the snapshot a staged
547
+ // verb takes of its data (`argsnap`: each, emit, filter,
548
+ // pack, pick, join, the aggregates), when the target itself
549
+ // is not marked: a member marked inside an unmarked bag was
550
+ // hidden IN ITS OWN RIGHT, and the verb's enumeration
551
+ // (ts/src/val/members.ts, BUGS.md §79) needs to see that
552
+ // mark to leave the member out, as generation does. A marked
553
+ // target lifts even there, or `each($.schema.entities, _)`
554
+ // under `schema: hide({...})` would see every entity as
555
+ // hidden, since hide() marks to the leaves.
556
+ const lifted = true !== ctx.argsnap
557
+ || true === out.mark.type || true === out.mark.hide;
456
558
  out = out.clone(ctx);
457
- // if (this.mark.type || this.mark.hide) {
458
- (0, utility_1.walk)(out, (_key, val) => {
459
- val.mark.type = false;
460
- val.mark.hide = false;
461
- // THE LINK IS NOT CLEARED (G4 phase 3): a link says what a
462
- // value POINTS AT, and a copy of a link points at the same
463
- // thing. An ABSOLUTE address still names the same node from
464
- // the copy; a RELATIVE one is read from the copy's own
465
- // position, which is what makes a referenced model resolve
466
- // its internal links inside the copy (ADR-014).
467
- return val;
468
- });
469
- //}
559
+ if (lifted) {
560
+ (0, utility_1.walk)(out, (_key, val) => {
561
+ val.mark.type = false;
562
+ val.mark.hide = false;
563
+ // THE LINK IS NOT CLEARED (G4 phase 3): a link says what
564
+ // a value POINTS AT, and a copy of a link points at the
565
+ // same thing. An ABSOLUTE address still names the same
566
+ // node from the copy; a RELATIVE one is read from the
567
+ // copy's own position, which is what makes a referenced
568
+ // model resolve its internal links inside the copy
569
+ // (ADR-014).
570
+ return val;
571
+ });
572
+ }
470
573
  // onsole.log('FOUND-C', out)
471
574
  }
472
575
  }
@@ -587,16 +690,52 @@ class RefVal extends FeatureVal_1.FeatureVal {
587
690
  absolute: this.absolute,
588
691
  ...(spec || {})
589
692
  });
693
+ out.expansion = this.expansion;
590
694
  return out;
591
695
  }
592
- get canon() {
593
- let str = (this.absolute ? '$' : '') +
696
+ // THE NAME OF THE ALIAS THIS REFERENCE NAMES, or undefined for a
697
+ // path reference. `%u` is spelled internally as the root reference
698
+ // `$.%u` (docs/design/ALIASES.0.md: the name is a path into the
699
+ // declaration), so an alias reference is an absolute reference of
700
+ // one segment that is an alias name.
701
+ get aliasName() {
702
+ return this.absolute && 1 === this.peg.length &&
703
+ 'string' === typeof this.peg[0] && ALIAS_NAME_RE.test(this.peg[0]) ?
704
+ this.peg[0] : undefined;
705
+ }
706
+ // THE REFERENCE'S OWN SPELLING: the alias name, or the path. This is
707
+ // the reference's identity (the snapshot key of a ref spread, the
708
+ // same-path test in unify), which `canon` below is not once an
709
+ // expansion is attached.
710
+ get spelling() {
711
+ const name = this.aliasName;
712
+ if (undefined !== name) {
713
+ return name;
714
+ }
715
+ return (this.absolute ? '$' : '') +
594
716
  (0 < this.peg.length ? '.' : '') +
595
717
  // this.peg.join(this.sep)
596
718
  this.peg.map((p) => '.' === p ? '' :
597
719
  (p.isVal ? p.canon : '' + p))
598
720
  .join('.');
599
- return str;
721
+ }
722
+ get canon() {
723
+ // AN ALIAS REFERENCE CANONS AS THE VALUE IT NAMES. A reference left
724
+ // standing after unification is one inside a spread template
725
+ // (`[&: %u]`, `{&: {a: %u}}`): the template applies to children
726
+ // that have not arrived, so it is not resolved in place. Canon
727
+ // erases the declaration (an alias is a name for a value, and
728
+ // nothing more -- ALIASES.0.md §4), so the name alone would not
729
+ // reparse, and the hash of `t: {&: %u}` would differ from the hash
730
+ // of `t: {&: integer}`, which is the same document. The expansion
731
+ // is attached by expandAliases (ts/src/alias.ts) once the tree has
732
+ // settled; without one -- a parse-only tree, an unresolved name, or
733
+ // the KNOT of a recursive alias inside its own template -- the
734
+ // reference spells its name. Twin of RefVal.Canon in go/ref.go.
735
+ if (undefined !== this.expansion) {
736
+ return this.expansion.canon;
737
+ }
738
+ return this.spelling;
600
739
  }
601
740
  gen(ctx) {
602
741
  // Unresolved ref cannot be generated, so always an error.
@@ -1 +1 @@
1
- {"version":3,"file":"RefVal.js","sourceRoot":"","sources":["../../src/val/RefVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RefVal.js","sourceRoot":"","sources":["../../src/val/RefVal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { Val, ValSpec } from '../type';
2
+ import { AontuContext } from '../ctx';
3
+ import { FuncBaseVal } from './FuncBaseVal';
4
+ declare class EscFuncVal extends FuncBaseVal {
5
+ isEscFunc: boolean;
6
+ constructor(spec: ValSpec, ctx?: AontuContext);
7
+ make(_ctx: AontuContext, spec: ValSpec): Val;
8
+ funcname(): string;
9
+ resolve(ctx: AontuContext, args: Val[]): import("./NilVal").NilVal | Val;
10
+ }
11
+ declare class UscFuncVal extends FuncBaseVal {
12
+ isUscFunc: boolean;
13
+ constructor(spec: ValSpec, ctx?: AontuContext);
14
+ make(_ctx: AontuContext, spec: ValSpec): Val;
15
+ funcname(): string;
16
+ resolve(ctx: AontuContext, args: Val[]): import("./NilVal").NilVal | Val;
17
+ }
18
+ declare class RepFuncVal extends FuncBaseVal {
19
+ isRepFunc: boolean;
20
+ constructor(spec: ValSpec, ctx?: AontuContext);
21
+ make(_ctx: AontuContext, spec: ValSpec): Val;
22
+ funcname(): string;
23
+ resolve(ctx: AontuContext, args: Val[]): import("./NilVal").NilVal | Val;
24
+ }
25
+ declare class SplitFuncVal extends FuncBaseVal {
26
+ isSplitFunc: boolean;
27
+ constructor(spec: ValSpec, ctx?: AontuContext);
28
+ make(_ctx: AontuContext, spec: ValSpec): Val;
29
+ funcname(): string;
30
+ resolve(ctx: AontuContext, args: Val[]): import("./NilVal").NilVal | Val;
31
+ }
32
+ export { EscFuncVal, UscFuncVal, RepFuncVal, SplitFuncVal, };
@@ -0,0 +1,292 @@
1
+ "use strict";
2
+ /* Copyright (c) 2025 Richard Rodger, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.SplitFuncVal = exports.RepFuncVal = exports.UscFuncVal = exports.EscFuncVal = void 0;
5
+ const err_1 = require("../err");
6
+ const escape_1 = require("../escape");
7
+ const StringVal_1 = require("./StringVal");
8
+ const ListVal_1 = require("./ListVal");
9
+ const FuncBaseVal_1 = require("./FuncBaseVal");
10
+ const ConstraintVal_1 = require("./ConstraintVal");
11
+ // The string a value carries, or undefined when it is not a string.
12
+ // Mirrors `stringLeaf` in ConstraintVal: a path is a string too, so a
13
+ // spelled address may be escaped and split like any other text.
14
+ function textOf(v) {
15
+ const s = v;
16
+ return true === s?.isScalar && 'string' === typeof s.peg ? s.peg : undefined;
17
+ }
18
+ // The variant an optional second argument names: '' for the absent
19
+ // argument (the C/JSON convention), or undefined when it is not a
20
+ // variant name.
21
+ function variantOf(v) {
22
+ if (null == v) {
23
+ return '';
24
+ }
25
+ const s = textOf(v);
26
+ return undefined !== s && (0, escape_1.isEscVariant)(s) ? s : undefined;
27
+ }
28
+ // The number of CAPTURING groups in a normalised pattern. Counted by
29
+ // scanning rather than by asking either host, because the count decides
30
+ // whether a substitution is refused and the two ports must refuse the
31
+ // same ones. The subset admits no named groups, so a capturing group is
32
+ // exactly `(` that is not `(?`.
33
+ function reGroupCount(norm) {
34
+ let count = 0;
35
+ let inClass = false;
36
+ for (let i = 0; i < norm.length; i++) {
37
+ const c = norm[i];
38
+ if ('\\' === c) {
39
+ i++;
40
+ continue;
41
+ }
42
+ if (inClass) {
43
+ if (']' === c) {
44
+ inClass = false;
45
+ }
46
+ continue;
47
+ }
48
+ if ('[' === c) {
49
+ inClass = true;
50
+ continue;
51
+ }
52
+ if ('(' === c && '?' !== norm[i + 1]) {
53
+ count++;
54
+ }
55
+ }
56
+ return count;
57
+ }
58
+ // One code point at `at`, as a count of UTF-16 units: the "advance by
59
+ // one rune" Go's matching loop performs after an empty match.
60
+ function stepAt(src, at) {
61
+ const c = src.codePointAt(at);
62
+ return undefined === c ? 1 : (0xFFFF < c ? 2 : 1);
63
+ }
64
+ // Every match of `re` in `src`, as [start, end, ...group pairs], under
65
+ // Go's rule: scanning resumes at the end of each match, and an empty
66
+ // match ADJACENT to the previous match's end is skipped rather than
67
+ // delivered. Written out because JavaScript has no equivalent and the
68
+ // difference is visible in `rep("aa", "a*", "-")`.
69
+ function allMatches(src, re) {
70
+ const out = [];
71
+ // Its own scanner, so `lastIndex` is this walk's to move: the caller's
72
+ // regexp is shared with whatever else holds it.
73
+ const scan = new RegExp(re.source, re.flags);
74
+ let pos = 0;
75
+ let prevEnd = -1;
76
+ while (pos <= src.length) {
77
+ scan.lastIndex = pos;
78
+ const m = scan.exec(src);
79
+ if (null === m) {
80
+ break;
81
+ }
82
+ const start = m.index;
83
+ const end = start + m[0].length;
84
+ let accept = true;
85
+ if (end === pos) {
86
+ if (start === prevEnd) {
87
+ accept = false;
88
+ }
89
+ pos += stepAt(src, pos);
90
+ }
91
+ else {
92
+ pos = end;
93
+ }
94
+ prevEnd = end;
95
+ if (accept) {
96
+ out.push(m);
97
+ }
98
+ }
99
+ return out;
100
+ }
101
+ // A substitution template expanded against one match. `$1`..`$9` are
102
+ // the numbered groups, `$&` the whole match and `$$` a literal `$`;
103
+ // anything else after a `$` names nothing, and naming nothing is a
104
+ // REFUSAL rather than a silent literal. A group the pattern does not
105
+ // have is the same refusal -- a generator that expands it to the empty
106
+ // string writes a file with a hole in it and says nothing.
107
+ function expandSub(sub, m, groups) {
108
+ let out = '';
109
+ for (let i = 0; i < sub.length; i++) {
110
+ if ('$' !== sub[i]) {
111
+ out += sub[i];
112
+ continue;
113
+ }
114
+ const n = sub[i + 1];
115
+ if ('$' === n) {
116
+ out += '$';
117
+ i++;
118
+ continue;
119
+ }
120
+ if ('&' === n) {
121
+ out += m[0];
122
+ i++;
123
+ continue;
124
+ }
125
+ if (undefined === n || '1' > n || '9' < n) {
126
+ return undefined;
127
+ }
128
+ const g = n.charCodeAt(0) - 0x30;
129
+ if (groups < g) {
130
+ return undefined;
131
+ }
132
+ out += m[g] ?? '';
133
+ i++;
134
+ }
135
+ return out;
136
+ }
137
+ // The fields `re` cuts `src` into, under Go's Split: an empty match at
138
+ // the very start opens no field, and a match ending at the end of the
139
+ // input closes none.
140
+ function splitRe(src, re) {
141
+ const out = [];
142
+ let beg = 0;
143
+ let end = 0;
144
+ for (const m of allMatches(src, re)) {
145
+ end = m.index;
146
+ if (0 !== m.index + m[0].length) {
147
+ out.push(src.slice(beg, end));
148
+ }
149
+ beg = m.index + m[0].length;
150
+ }
151
+ if (end !== src.length) {
152
+ out.push(src.slice(beg));
153
+ }
154
+ return out;
155
+ }
156
+ // An EMPTY separator yields the CODE POINTS, not the UTF-16 units a
157
+ // host split would give: `split("é", "")` is one field in both ports.
158
+ function splitLiteral(src, sep) {
159
+ if ('' === sep) {
160
+ return [...src];
161
+ }
162
+ return src.split(sep);
163
+ }
164
+ // The compiled form of a pattern argument, or the code naming what is
165
+ // wrong with it.
166
+ function compileRe(src) {
167
+ const [norm, why] = (0, ConstraintVal_1.normaliseRe)(src);
168
+ if ('' !== why) {
169
+ return 'rep_pattern';
170
+ }
171
+ try {
172
+ // The `u` flag is REQUIRED for parity, exactly as it is for `re()`:
173
+ // without it JavaScript counts UTF-16 units where Go counts code
174
+ // points.
175
+ return new RegExp(norm, 'gu');
176
+ }
177
+ catch (e) {
178
+ return 'rep_pattern';
179
+ }
180
+ }
181
+ class EscFuncVal extends FuncBaseVal_1.FuncBaseVal {
182
+ constructor(spec, ctx) {
183
+ super(spec, ctx);
184
+ this.isEscFunc = true;
185
+ }
186
+ make(_ctx, spec) { return new EscFuncVal(spec); }
187
+ funcname() { return 'esc'; }
188
+ resolve(ctx, args) {
189
+ const src = textOf(args?.[0]);
190
+ if (undefined === src) {
191
+ return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this);
192
+ }
193
+ const variant = variantOf(args?.[1]);
194
+ if (undefined === variant) {
195
+ return (0, err_1.makeNilErr)(ctx, 'esc_variant', this);
196
+ }
197
+ return this.place(new StringVal_1.StringVal({ peg: (0, escape_1.escapeText)(src, variant) }, ctx));
198
+ }
199
+ } /* node:coverage ignore next 2 */
200
+ exports.EscFuncVal = EscFuncVal;
201
+ class UscFuncVal extends FuncBaseVal_1.FuncBaseVal {
202
+ constructor(spec, ctx) {
203
+ super(spec, ctx);
204
+ this.isUscFunc = true;
205
+ }
206
+ make(_ctx, spec) { return new UscFuncVal(spec); }
207
+ funcname() { return 'usc'; }
208
+ resolve(ctx, args) {
209
+ const src = textOf(args?.[0]);
210
+ if (undefined === src) {
211
+ return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this);
212
+ }
213
+ const variant = variantOf(args?.[1]);
214
+ if (undefined === variant) {
215
+ return (0, err_1.makeNilErr)(ctx, 'esc_variant', this);
216
+ }
217
+ const [out, ok] = (0, escape_1.unescapeText)(src, variant);
218
+ if (!ok) {
219
+ return (0, err_1.makeNilErr)(ctx, 'usc_malformed', this);
220
+ }
221
+ return this.place(new StringVal_1.StringVal({ peg: out }, ctx));
222
+ }
223
+ } /* node:coverage ignore next 2 */
224
+ exports.UscFuncVal = UscFuncVal;
225
+ class RepFuncVal extends FuncBaseVal_1.FuncBaseVal {
226
+ constructor(spec, ctx) {
227
+ super(spec, ctx);
228
+ this.isRepFunc = true;
229
+ }
230
+ make(_ctx, spec) { return new RepFuncVal(spec); }
231
+ funcname() { return 'rep'; }
232
+ resolve(ctx, args) {
233
+ const src = textOf(args?.[0]);
234
+ const pat = textOf(args?.[1]);
235
+ const sub = textOf(args?.[2]);
236
+ if (undefined === src || undefined === pat || undefined === sub) {
237
+ return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this);
238
+ }
239
+ const re = compileRe(pat);
240
+ if ('string' === typeof re) {
241
+ return (0, err_1.makeNilErr)(ctx, re, this);
242
+ }
243
+ const groups = reGroupCount(re.source);
244
+ let out = '';
245
+ let at = 0;
246
+ for (const m of allMatches(src, re)) {
247
+ const piece = expandSub(sub, m, groups);
248
+ if (undefined === piece) {
249
+ return (0, err_1.makeNilErr)(ctx, 'rep_sub', this);
250
+ }
251
+ out += src.slice(at, m.index) + piece;
252
+ at = m.index + m[0].length;
253
+ }
254
+ out += src.slice(at);
255
+ return this.place(new StringVal_1.StringVal({ peg: out }, ctx));
256
+ }
257
+ } /* node:coverage ignore next 2 */
258
+ exports.RepFuncVal = RepFuncVal;
259
+ class SplitFuncVal extends FuncBaseVal_1.FuncBaseVal {
260
+ constructor(spec, ctx) {
261
+ super(spec, ctx);
262
+ this.isSplitFunc = true;
263
+ }
264
+ make(_ctx, spec) { return new SplitFuncVal(spec); }
265
+ funcname() { return 'split'; }
266
+ resolve(ctx, args) {
267
+ const src = textOf(args?.[0]);
268
+ if (undefined === src) {
269
+ return (0, err_1.makeNilErr)(ctx, 'invalid-arg', this);
270
+ }
271
+ // A PLAIN STRING IS A LITERAL and an `re(…)` is a pattern. The
272
+ // asymmetry with `rep` is deliberate: splitting is usually on a
273
+ // literal, replacing is usually by pattern, and it removes the trap
274
+ // where `split(v, ".")` silently cuts between every character.
275
+ const sep = args?.[1];
276
+ const lit = textOf(sep);
277
+ let fields;
278
+ if (undefined !== lit) {
279
+ fields = splitLiteral(src, lit);
280
+ }
281
+ else if (true === sep?.isConstraint && 1 === sep.res?.length) {
282
+ fields = splitRe(src, new RegExp(sep.res[0].re.source, 'gu'));
283
+ }
284
+ else {
285
+ return (0, err_1.makeNilErr)(ctx, 'split_sep', this);
286
+ }
287
+ const peg = fields.map((f, i) => new StringVal_1.StringVal({ peg: f }, ctx.descend(String(i))));
288
+ return this.place(new ListVal_1.ListVal({ peg }, ctx));
289
+ }
290
+ } /* node:coverage ignore next 8 */
291
+ exports.SplitFuncVal = SplitFuncVal;
292
+ //# sourceMappingURL=StrFuncVal.js.map