@malloydata/malloy-tag 0.0.353 → 0.0.355

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/parser.js CHANGED
@@ -58,12 +58,13 @@ function resolveLocation(loc, origins) {
58
58
  };
59
59
  }
60
60
  /**
61
- * Convert a MOTLYPropertyValue (node or ref) into a Tag tree with parent links.
62
- * Env references (@env.NAME) are resolved from process.env during hydration.
61
+ * Convert a MOTLYNode (node or ref) into a Tag tree with parent links.
62
+ * Refs are dropped (skipped). Env references (@env.NAME) are resolved
63
+ * from process.env during hydration.
63
64
  */
64
65
  function hydrate(pv, parent, origins) {
65
66
  if ((0, motly_ts_parser_1.isRef)(pv)) {
66
- return new tags_1.RefTag(pv.linkUps, pv.linkTo, parent);
67
+ return new tags_1.Tag({ deleted: true }, parent);
67
68
  }
68
69
  const tag = new tags_1.Tag({}, parent);
69
70
  if (pv.location && origins) {
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
package/dist/tags.d.ts CHANGED
@@ -30,16 +30,13 @@ export interface TagInterface {
30
30
  deleted?: boolean;
31
31
  prefix?: string;
32
32
  }
33
- export interface TagLink {
34
- linkTo: string;
35
- }
36
- export interface TagJSONInterface {
33
+ export interface TagJSON {
37
34
  eq?: TagScalar | TagJSON[];
38
35
  properties?: Record<string, TagJSON>;
39
36
  deleted?: boolean;
40
37
  prefix?: string;
38
+ location?: TagLocation;
41
39
  }
42
- export type TagJSON = TagJSONInterface | TagLink;
43
40
  export interface TagParse {
44
41
  tag: Tag;
45
42
  log: TagError[];
@@ -65,7 +62,6 @@ export type TagSetValue = string | number | boolean | Date | string[] | number[]
65
62
  * tag.has(p?) => boolean "tag contains tag.p"
66
63
  * tag.bare(p?) => tag.p exists and has no properties
67
64
  * tag.dict => Record<string,Tag> of tag properties
68
- * tag.toObject() => Plain JS object representation
69
65
  * ```
70
66
  */
71
67
  export declare class Tag {
@@ -75,7 +71,7 @@ export declare class Tag {
75
71
  deleted?: boolean;
76
72
  location?: TagLocation;
77
73
  private _parent?;
78
- private _read;
74
+ protected _read: boolean;
79
75
  protected _clonedFrom?: Tag;
80
76
  /**
81
77
  * Get the parent tag, if this tag is part of a tree.
@@ -101,11 +97,8 @@ export declare class Tag {
101
97
  isFalse(...at: Path): boolean;
102
98
  date(...at: Path): Date | undefined;
103
99
  bare(...at: Path): boolean | undefined;
104
- /** Virtual accessor for eq - overridden in RefTag to resolve */
105
100
  getEq(): TagValue | undefined;
106
- /** Virtual accessor for a property - overridden in RefTag to resolve */
107
101
  getProperty(name: string): Tag | undefined;
108
- /** Virtual accessor for an array element - overridden in RefTag to resolve */
109
102
  getArrayElement(index: number): Tag | undefined;
110
103
  get dict(): Record<string, Tag>;
111
104
  /** Iterate over [name, Tag] pairs for each property */
@@ -119,20 +112,6 @@ export declare class Tag {
119
112
  numericArray(...at: Path): number[] | undefined;
120
113
  getProperties(): Record<string, Tag>;
121
114
  clone(newParent?: Tag): Tag;
122
- private static scalarToObject;
123
- private static tagToObject;
124
- /**
125
- * Convert to a plain JS object. References are resolved to actual
126
- * object pointers (which may be circular in JS - that's fine).
127
- * @param resolving - RefTags currently being resolved (for cycle detection)
128
- */
129
- toObject(resolving?: Set<RefTag>): Record<string, unknown>;
130
- /**
131
- * Convert this tag's value to a plain JS object.
132
- * Override in RefTag to resolve references.
133
- * @param resolving - RefTags currently being resolved (for cycle detection)
134
- */
135
- toObjectValue(resolving: Set<RefTag>): unknown;
136
115
  /**
137
116
  * Custom JSON serialization that excludes _parent to avoid circular references.
138
117
  * This is called automatically by JSON.stringify().
@@ -163,6 +142,15 @@ export declare class Tag {
163
142
  * Returns true if this tag was accessed via find/has/text/etc.
164
143
  */
165
144
  get wasRead(): boolean;
145
+ /**
146
+ * Walk the tag tree, yielding each descendant tag with its path.
147
+ * Covers named properties and array element values. Pre-order traversal.
148
+ * Skips deleted properties.
149
+ */
150
+ walk(prefix?: string[]): Generator<{
151
+ path: string[];
152
+ tag: Tag;
153
+ }>;
166
154
  /**
167
155
  * Recursively reset read tracking on this tag and all descendants.
168
156
  */
@@ -178,56 +166,6 @@ export declare class Tag {
178
166
  unset(...path: Path): Tag;
179
167
  private remove;
180
168
  }
181
- /**
182
- * A tag that references another location in the tag tree.
183
- * When accessed, it dereferences to the target tag.
184
- *
185
- * Reference syntax:
186
- * $path.to.thing - absolute from root
187
- * $^thing - up one level, then 'thing'
188
- * $^^thing - up two levels, then 'thing'
189
- * $items[0].name - with array indexing
190
- */
191
- export declare class RefTag extends Tag {
192
- readonly ups: number;
193
- readonly refPath: Path;
194
- constructor(ups: number, refPath: Path, parent?: Tag);
195
- /**
196
- * Resolve this reference to the target tag.
197
- * Returns undefined if the reference cannot be resolved.
198
- */
199
- resolve(): Tag | undefined;
200
- /**
201
- * Quote an identifier if it contains special characters.
202
- */
203
- private quoteSegment;
204
- /**
205
- * Convert this reference to its string representation.
206
- */
207
- toRefString(): string;
208
- getEq(): TagValue | undefined;
209
- getProperty(name: string): Tag | undefined;
210
- getArrayElement(index: number): Tag | undefined;
211
- hasProperties(): boolean;
212
- /**
213
- * For toObject, resolve the reference and return the target's object value.
214
- * This creates actual object pointers (circular references are allowed).
215
- * Detects cycles in the reference chain to prevent infinite recursion.
216
- */
217
- toObjectValue(resolving: Set<RefTag>): unknown;
218
- /**
219
- * For JSON serialization, return a marker object instead of resolving.
220
- */
221
- toJSON(): TagJSON;
222
- /**
223
- * Check if this reference resolves, add error if not.
224
- */
225
- collectReferenceErrors(errors: string[], path: string[]): void;
226
- /**
227
- * Clone this RefTag, preserving the reference information.
228
- */
229
- clone(newParent?: Tag): RefTag;
230
- }
231
169
  /**
232
170
  * Convert a Tag to a plain TagInterface without internal fields like _parent.
233
171
  * Useful for test comparisons.
package/dist/tags.js CHANGED
@@ -22,7 +22,7 @@
22
22
  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
23
  */
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.RefTag = exports.Tag = void 0;
25
+ exports.Tag = void 0;
26
26
  exports.interfaceFromTag = interfaceFromTag;
27
27
  exports.interfaceFromDict = interfaceFromDict;
28
28
  /**
@@ -43,7 +43,6 @@ exports.interfaceFromDict = interfaceFromDict;
43
43
  * tag.has(p?) => boolean "tag contains tag.p"
44
44
  * tag.bare(p?) => tag.p exists and has no properties
45
45
  * tag.dict => Record<string,Tag> of tag properties
46
- * tag.toObject() => Plain JS object representation
47
46
  * ```
48
47
  */
49
48
  class Tag {
@@ -200,16 +199,13 @@ class Tag {
200
199
  }
201
200
  return !p.hasProperties();
202
201
  }
203
- /** Virtual accessor for eq - overridden in RefTag to resolve */
204
202
  getEq() {
205
203
  return this.eq;
206
204
  }
207
- /** Virtual accessor for a property - overridden in RefTag to resolve */
208
205
  getProperty(name) {
209
206
  var _a;
210
207
  return (_a = this.properties) === null || _a === void 0 ? void 0 : _a[name];
211
208
  }
212
- /** Virtual accessor for an array element - overridden in RefTag to resolve */
213
209
  getArrayElement(index) {
214
210
  if (Array.isArray(this.eq) && index < this.eq.length) {
215
211
  return this.eq[index];
@@ -304,6 +300,8 @@ class Tag {
304
300
  return this.properties;
305
301
  }
306
302
  clone(newParent) {
303
+ // Mark the source as read — cloning consumes the original.
304
+ this._read = true;
307
305
  const cloned = new Tag({}, newParent);
308
306
  cloned.prefix = this.prefix;
309
307
  cloned.deleted = this.deleted;
@@ -326,97 +324,6 @@ class Tag {
326
324
  }
327
325
  return cloned;
328
326
  }
329
- static scalarToObject(val) {
330
- return val;
331
- }
332
- static tagToObject(tag) {
333
- const hasProps = tag.properties !== undefined && Object.keys(tag.properties).length > 0;
334
- const hasValue = tag.eq !== undefined;
335
- // Bare tag (no value, no properties)
336
- if (!hasValue && !hasProps) {
337
- return true;
338
- }
339
- // Properties only
340
- if (!hasValue && hasProps) {
341
- const result = {};
342
- for (const [key, val] of Object.entries(tag.properties)) {
343
- if (!val.deleted) {
344
- result[key] = Tag.tagToObject(val);
345
- }
346
- }
347
- return result;
348
- }
349
- // Value only
350
- if (hasValue && !hasProps) {
351
- if (Array.isArray(tag.eq)) {
352
- return tag.eq.map(el => Tag.tagToObject(el));
353
- }
354
- return Tag.scalarToObject(tag.eq);
355
- }
356
- // Both value and properties
357
- const result = {};
358
- if (Array.isArray(tag.eq)) {
359
- result['='] = tag.eq.map(el => Tag.tagToObject(el));
360
- }
361
- else {
362
- result['='] = Tag.scalarToObject(tag.eq);
363
- }
364
- for (const [key, val] of Object.entries(tag.properties)) {
365
- if (!val.deleted) {
366
- result[key] = Tag.tagToObject(val);
367
- }
368
- }
369
- return result;
370
- }
371
- /**
372
- * Convert to a plain JS object. References are resolved to actual
373
- * object pointers (which may be circular in JS - that's fine).
374
- * @param resolving - RefTags currently being resolved (for cycle detection)
375
- */
376
- toObject(resolving = new Set()) {
377
- const result = {};
378
- if (this.properties) {
379
- for (const [key, prop] of Object.entries(this.properties)) {
380
- if (!prop.deleted) {
381
- result[key] = prop.toObjectValue(resolving);
382
- }
383
- }
384
- }
385
- return result;
386
- }
387
- /**
388
- * Convert this tag's value to a plain JS object.
389
- * Override in RefTag to resolve references.
390
- * @param resolving - RefTags currently being resolved (for cycle detection)
391
- */
392
- toObjectValue(resolving) {
393
- const hasProps = this.properties !== undefined && Object.keys(this.properties).length > 0;
394
- const hasValue = this.eq !== undefined;
395
- // Bare tag (no value, no properties)
396
- if (!hasValue && !hasProps) {
397
- return true;
398
- }
399
- // Properties only
400
- if (!hasValue && hasProps) {
401
- return this.toObject(resolving);
402
- }
403
- // Value only
404
- if (hasValue && !hasProps) {
405
- if (Array.isArray(this.eq)) {
406
- return this.eq.map(el => el.toObjectValue(resolving));
407
- }
408
- return this.eq;
409
- }
410
- // Both value and properties
411
- const result = this.toObject(resolving);
412
- if (Array.isArray(this.eq)) {
413
- result['='] = this.eq.map(el => el.toObjectValue(resolving));
414
- }
415
- else {
416
- result['='] = this.eq;
417
- }
418
- return result;
419
- }
420
327
  /**
421
328
  * Custom JSON serialization that excludes _parent to avoid circular references.
422
329
  * This is called automatically by JSON.stringify().
@@ -443,6 +350,9 @@ class Tag {
443
350
  if (this.prefix) {
444
351
  result.prefix = this.prefix;
445
352
  }
353
+ if (this.location) {
354
+ result.location = this.location;
355
+ }
446
356
  return result;
447
357
  }
448
358
  /**
@@ -597,21 +507,37 @@ class Tag {
597
507
  return this._read;
598
508
  }
599
509
  /**
600
- * Recursively reset read tracking on this tag and all descendants.
510
+ * Walk the tag tree, yielding each descendant tag with its path.
511
+ * Covers named properties and array element values. Pre-order traversal.
512
+ * Skips deleted properties.
601
513
  */
602
- resetReadTracking() {
603
- this._read = false;
514
+ *walk(prefix = []) {
604
515
  if (this.properties) {
605
- for (const prop of Object.values(this.properties)) {
606
- prop.resetReadTracking();
516
+ for (const [key, prop] of Object.entries(this.properties)) {
517
+ if (prop.deleted)
518
+ continue;
519
+ const path = [...prefix, key];
520
+ yield { path, tag: prop };
521
+ yield* prop.walk(path);
607
522
  }
608
523
  }
609
524
  if (Array.isArray(this.eq)) {
610
- for (const el of this.eq) {
611
- el.resetReadTracking();
525
+ for (let i = 0; i < this.eq.length; i++) {
526
+ const path = [...prefix, i.toString()];
527
+ yield { path, tag: this.eq[i] };
528
+ yield* this.eq[i].walk(path);
612
529
  }
613
530
  }
614
531
  }
532
+ /**
533
+ * Recursively reset read tracking on this tag and all descendants.
534
+ */
535
+ resetReadTracking() {
536
+ this._read = false;
537
+ for (const { tag } of this.walk()) {
538
+ tag._read = false;
539
+ }
540
+ }
615
541
  /**
616
542
  * Collect all unread, non-deleted property names in this tag tree.
617
543
  * Returns paths like ['viz', 'yy'] for nested unread properties.
@@ -769,138 +695,6 @@ exports.Tag = Tag;
769
695
  // --- Just for debugging ---
770
696
  Tag.ids = new Map();
771
697
  Tag.nextTagId = 1000;
772
- /**
773
- * A tag that references another location in the tag tree.
774
- * When accessed, it dereferences to the target tag.
775
- *
776
- * Reference syntax:
777
- * $path.to.thing - absolute from root
778
- * $^thing - up one level, then 'thing'
779
- * $^^thing - up two levels, then 'thing'
780
- * $items[0].name - with array indexing
781
- */
782
- class RefTag extends Tag {
783
- constructor(ups, refPath, parent) {
784
- super({}, parent);
785
- this.ups = ups;
786
- this.refPath = refPath;
787
- }
788
- /**
789
- * Resolve this reference to the target tag.
790
- * Returns undefined if the reference cannot be resolved.
791
- */
792
- resolve() {
793
- // Start from the appropriate point based on ups
794
- let current;
795
- if (this.ups === 0) {
796
- // Absolute reference from root
797
- current = this.root;
798
- }
799
- else {
800
- // Relative reference - go up 'ups' levels from parent
801
- // $^ means go up 1 level from the containing scope
802
- current = this.parent;
803
- for (let i = 0; i < this.ups && current !== undefined; i++) {
804
- current = current.parent;
805
- }
806
- }
807
- if (current === undefined) {
808
- return undefined;
809
- }
810
- // Follow the path
811
- return current.find(this.refPath);
812
- }
813
- /**
814
- * Quote an identifier if it contains special characters.
815
- */
816
- quoteSegment(seg) {
817
- // Match bareString from peggy grammar: [0-9A-Za-z_\u00C0-\u024F\u1E00-\u1EFF]+
818
- if (/^[0-9A-Za-z_\u00C0-\u024F\u1E00-\u1EFF]+$/.test(seg)) {
819
- return seg;
820
- }
821
- // Otherwise, backquote it (escaping backslashes and backquotes)
822
- return '`' + seg.replace(/\\/g, '\\\\').replace(/`/g, '\\`') + '`';
823
- }
824
- /**
825
- * Convert this reference to its string representation.
826
- */
827
- toRefString() {
828
- const prefix = '$' + '^'.repeat(this.ups);
829
- const pathStr = this.refPath
830
- .map((seg, i) => {
831
- if (typeof seg === 'number') {
832
- return `[${seg}]`;
833
- }
834
- const quoted = this.quoteSegment(seg);
835
- return i === 0 ? quoted : `.${quoted}`;
836
- })
837
- .join('');
838
- return prefix + pathStr;
839
- }
840
- // Override virtual accessors to resolve the reference
841
- getEq() {
842
- var _a;
843
- return (_a = this.resolve()) === null || _a === void 0 ? void 0 : _a.getEq();
844
- }
845
- getProperty(name) {
846
- var _a;
847
- return (_a = this.resolve()) === null || _a === void 0 ? void 0 : _a.getProperty(name);
848
- }
849
- getArrayElement(index) {
850
- var _a;
851
- return (_a = this.resolve()) === null || _a === void 0 ? void 0 : _a.getArrayElement(index);
852
- }
853
- hasProperties() {
854
- var _a, _b;
855
- return (_b = (_a = this.resolve()) === null || _a === void 0 ? void 0 : _a.hasProperties()) !== null && _b !== void 0 ? _b : false;
856
- }
857
- /**
858
- * For toObject, resolve the reference and return the target's object value.
859
- * This creates actual object pointers (circular references are allowed).
860
- * Detects cycles in the reference chain to prevent infinite recursion.
861
- */
862
- toObjectValue(resolving) {
863
- // Check for cycle in reference chain
864
- if (resolving.has(this)) {
865
- // We're in a cycle - return undefined to break it
866
- // (The cycle will be completed when the outer resolution finishes)
867
- return undefined;
868
- }
869
- const resolved = this.resolve();
870
- if (resolved === undefined) {
871
- return undefined;
872
- }
873
- // Track that we're resolving this RefTag
874
- resolving.add(this);
875
- const result = resolved.toObjectValue(resolving);
876
- resolving.delete(this);
877
- return result;
878
- }
879
- /**
880
- * For JSON serialization, return a marker object instead of resolving.
881
- */
882
- toJSON() {
883
- return { linkTo: this.toRefString() };
884
- }
885
- /**
886
- * Check if this reference resolves, add error if not.
887
- */
888
- collectReferenceErrors(errors, path) {
889
- if (this.resolve() === undefined) {
890
- const location = path.length > 0 ? path.join('.') : 'root';
891
- errors.push(`Unresolved reference at ${location}: ${this.toRefString()}`);
892
- }
893
- }
894
- /**
895
- * Clone this RefTag, preserving the reference information.
896
- */
897
- clone(newParent) {
898
- const cloned = new RefTag(this.ups, [...this.refPath], newParent);
899
- cloned._clonedFrom = this;
900
- return cloned;
901
- }
902
- }
903
- exports.RefTag = RefTag;
904
698
  /**
905
699
  * Convert a Tag to a plain TagInterface without internal fields like _parent.
906
700
  * Useful for test comparisons.
package/dist/tags.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tags.js","sourceRoot":"","sources":["../src/tags.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../src/tags.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@malloydata/malloy-tag",
3
- "version": "0.0.353",
3
+ "version": "0.0.355",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -29,7 +29,7 @@
29
29
  "generate-flow": "node ../../scripts/femto-build.js flow"
30
30
  },
31
31
  "dependencies": {
32
- "@malloydata/motly-ts-parser": "^0.6.0",
32
+ "@malloydata/motly-ts-parser": "^0.7.1",
33
33
  "assert": "^2.0.0"
34
34
  },
35
35
  "devDependencies": {
package/src/parser.ts CHANGED
@@ -6,10 +6,10 @@
6
6
  import type {
7
7
  MOTLYError,
8
8
  MOTLYLocation,
9
- MOTLYPropertyValue,
9
+ MOTLYNode,
10
10
  } from '@malloydata/motly-ts-parser';
11
11
  import {MOTLYSession, isRef, isEnvRef} from '@malloydata/motly-ts-parser';
12
- import {Tag, RefTag} from './tags';
12
+ import {Tag} from './tags';
13
13
  import type {TagParse, TagError, TagLocation} from './tags';
14
14
 
15
15
  /**
@@ -80,16 +80,17 @@ function resolveLocation(
80
80
  }
81
81
 
82
82
  /**
83
- * Convert a MOTLYPropertyValue (node or ref) into a Tag tree with parent links.
84
- * Env references (@env.NAME) are resolved from process.env during hydration.
83
+ * Convert a MOTLYNode (node or ref) into a Tag tree with parent links.
84
+ * Refs are dropped (skipped). Env references (@env.NAME) are resolved
85
+ * from process.env during hydration.
85
86
  */
86
87
  function hydrate(
87
- pv: MOTLYPropertyValue,
88
+ pv: MOTLYNode,
88
89
  parent?: Tag,
89
90
  origins?: Map<number, SourceOrigin>
90
91
  ): Tag {
91
92
  if (isRef(pv)) {
92
- return new RefTag(pv.linkUps, pv.linkTo, parent);
93
+ return new Tag({deleted: true}, parent);
93
94
  }
94
95
 
95
96
  const tag = new Tag({}, parent);
package/src/tags.ts CHANGED
@@ -55,22 +55,14 @@ export interface TagInterface {
55
55
  prefix?: string;
56
56
  }
57
57
 
58
- // Output format - for toJSON (can contain links)
59
- // This format is round-trippable: a Tag.fromJSON(TagJSON) could reconstruct
60
- // the original Tag tree, including RefTags from TagLink.linkTo strings.
61
- export interface TagLink {
62
- linkTo: string;
63
- }
64
-
65
- export interface TagJSONInterface {
58
+ export interface TagJSON {
66
59
  eq?: TagScalar | TagJSON[];
67
60
  properties?: Record<string, TagJSON>;
68
61
  deleted?: boolean;
69
62
  prefix?: string;
63
+ location?: TagLocation;
70
64
  }
71
65
 
72
- export type TagJSON = TagJSONInterface | TagLink;
73
-
74
66
  export interface TagParse {
75
67
  tag: Tag;
76
68
  log: TagError[];
@@ -107,7 +99,6 @@ export type TagSetValue =
107
99
  * tag.has(p?) => boolean "tag contains tag.p"
108
100
  * tag.bare(p?) => tag.p exists and has no properties
109
101
  * tag.dict => Record<string,Tag> of tag properties
110
- * tag.toObject() => Plain JS object representation
111
102
  * ```
112
103
  */
113
104
  export class Tag {
@@ -117,7 +108,7 @@ export class Tag {
117
108
  deleted?: boolean;
118
109
  location?: TagLocation;
119
110
  private _parent?: Tag;
120
- private _read = false;
111
+ protected _read = false;
121
112
  protected _clonedFrom?: Tag;
122
113
 
123
114
  /**
@@ -285,17 +276,14 @@ export class Tag {
285
276
  return !p.hasProperties();
286
277
  }
287
278
 
288
- /** Virtual accessor for eq - overridden in RefTag to resolve */
289
279
  getEq(): TagValue | undefined {
290
280
  return this.eq;
291
281
  }
292
282
 
293
- /** Virtual accessor for a property - overridden in RefTag to resolve */
294
283
  getProperty(name: string): Tag | undefined {
295
284
  return this.properties?.[name];
296
285
  }
297
286
 
298
- /** Virtual accessor for an array element - overridden in RefTag to resolve */
299
287
  getArrayElement(index: number): Tag | undefined {
300
288
  if (Array.isArray(this.eq) && index < this.eq.length) {
301
289
  return this.eq[index];
@@ -400,6 +388,8 @@ export class Tag {
400
388
  }
401
389
 
402
390
  clone(newParent?: Tag): Tag {
391
+ // Mark the source as read — cloning consumes the original.
392
+ this._read = true;
403
393
  const cloned = new Tag({}, newParent);
404
394
  cloned.prefix = this.prefix;
405
395
  cloned.deleted = this.deleted;
@@ -425,117 +415,12 @@ export class Tag {
425
415
  return cloned;
426
416
  }
427
417
 
428
- private static scalarToObject(
429
- val: TagScalar
430
- ): string | number | boolean | Date {
431
- return val;
432
- }
433
-
434
- private static tagToObject(tag: TagInterface): unknown {
435
- const hasProps =
436
- tag.properties !== undefined && Object.keys(tag.properties).length > 0;
437
- const hasValue = tag.eq !== undefined;
438
-
439
- // Bare tag (no value, no properties)
440
- if (!hasValue && !hasProps) {
441
- return true;
442
- }
443
-
444
- // Properties only
445
- if (!hasValue && hasProps) {
446
- const result: Record<string, unknown> = {};
447
- for (const [key, val] of Object.entries(tag.properties!)) {
448
- if (!val.deleted) {
449
- result[key] = Tag.tagToObject(val);
450
- }
451
- }
452
- return result;
453
- }
454
-
455
- // Value only
456
- if (hasValue && !hasProps) {
457
- if (Array.isArray(tag.eq)) {
458
- return tag.eq.map(el => Tag.tagToObject(el));
459
- }
460
- return Tag.scalarToObject(tag.eq!);
461
- }
462
-
463
- // Both value and properties
464
- const result: Record<string, unknown> = {};
465
- if (Array.isArray(tag.eq)) {
466
- result['='] = tag.eq.map(el => Tag.tagToObject(el));
467
- } else {
468
- result['='] = Tag.scalarToObject(tag.eq!);
469
- }
470
- for (const [key, val] of Object.entries(tag.properties!)) {
471
- if (!val.deleted) {
472
- result[key] = Tag.tagToObject(val);
473
- }
474
- }
475
- return result;
476
- }
477
-
478
- /**
479
- * Convert to a plain JS object. References are resolved to actual
480
- * object pointers (which may be circular in JS - that's fine).
481
- * @param resolving - RefTags currently being resolved (for cycle detection)
482
- */
483
- toObject(resolving: Set<RefTag> = new Set()): Record<string, unknown> {
484
- const result: Record<string, unknown> = {};
485
- if (this.properties) {
486
- for (const [key, prop] of Object.entries(this.properties)) {
487
- if (!prop.deleted) {
488
- result[key] = prop.toObjectValue(resolving);
489
- }
490
- }
491
- }
492
- return result;
493
- }
494
-
495
- /**
496
- * Convert this tag's value to a plain JS object.
497
- * Override in RefTag to resolve references.
498
- * @param resolving - RefTags currently being resolved (for cycle detection)
499
- */
500
- toObjectValue(resolving: Set<RefTag>): unknown {
501
- const hasProps =
502
- this.properties !== undefined && Object.keys(this.properties).length > 0;
503
- const hasValue = this.eq !== undefined;
504
-
505
- // Bare tag (no value, no properties)
506
- if (!hasValue && !hasProps) {
507
- return true;
508
- }
509
-
510
- // Properties only
511
- if (!hasValue && hasProps) {
512
- return this.toObject(resolving);
513
- }
514
-
515
- // Value only
516
- if (hasValue && !hasProps) {
517
- if (Array.isArray(this.eq)) {
518
- return this.eq.map(el => el.toObjectValue(resolving));
519
- }
520
- return this.eq;
521
- }
522
-
523
- // Both value and properties
524
- const result: Record<string, unknown> = this.toObject(resolving);
525
- if (Array.isArray(this.eq)) {
526
- result['='] = this.eq.map(el => el.toObjectValue(resolving));
527
- } else {
528
- result['='] = this.eq;
529
- }
530
- return result;
531
- }
532
-
533
418
  /**
534
419
  * Custom JSON serialization that excludes _parent to avoid circular references.
535
420
  * This is called automatically by JSON.stringify().
536
421
  */
537
422
  toJSON(): TagJSON {
538
- const result: TagJSONInterface = {};
423
+ const result: TagJSON = {};
539
424
  if (this.eq !== undefined) {
540
425
  if (Array.isArray(this.eq)) {
541
426
  result.eq = this.eq.map(el => el.toJSON());
@@ -555,6 +440,9 @@ export class Tag {
555
440
  if (this.prefix) {
556
441
  result.prefix = this.prefix;
557
442
  }
443
+ if (this.location) {
444
+ result.location = this.location;
445
+ }
558
446
  return result;
559
447
  }
560
448
 
@@ -712,22 +600,38 @@ export class Tag {
712
600
  }
713
601
 
714
602
  /**
715
- * Recursively reset read tracking on this tag and all descendants.
603
+ * Walk the tag tree, yielding each descendant tag with its path.
604
+ * Covers named properties and array element values. Pre-order traversal.
605
+ * Skips deleted properties.
716
606
  */
717
- resetReadTracking(): void {
718
- this._read = false;
607
+ *walk(prefix: string[] = []): Generator<{path: string[]; tag: Tag}> {
719
608
  if (this.properties) {
720
- for (const prop of Object.values(this.properties)) {
721
- prop.resetReadTracking();
609
+ for (const [key, prop] of Object.entries(this.properties)) {
610
+ if (prop.deleted) continue;
611
+ const path = [...prefix, key];
612
+ yield {path, tag: prop};
613
+ yield* prop.walk(path);
722
614
  }
723
615
  }
724
616
  if (Array.isArray(this.eq)) {
725
- for (const el of this.eq) {
726
- el.resetReadTracking();
617
+ for (let i = 0; i < this.eq.length; i++) {
618
+ const path = [...prefix, i.toString()];
619
+ yield {path, tag: this.eq[i]};
620
+ yield* this.eq[i].walk(path);
727
621
  }
728
622
  }
729
623
  }
730
624
 
625
+ /**
626
+ * Recursively reset read tracking on this tag and all descendants.
627
+ */
628
+ resetReadTracking(): void {
629
+ this._read = false;
630
+ for (const {tag} of this.walk()) {
631
+ tag._read = false;
632
+ }
633
+ }
634
+
731
635
  /**
732
636
  * Collect all unread, non-deleted property names in this tag tree.
733
637
  * Returns paths like ['viz', 'yy'] for nested unread properties.
@@ -878,152 +782,6 @@ export class Tag {
878
782
  }
879
783
  }
880
784
 
881
- /**
882
- * A tag that references another location in the tag tree.
883
- * When accessed, it dereferences to the target tag.
884
- *
885
- * Reference syntax:
886
- * $path.to.thing - absolute from root
887
- * $^thing - up one level, then 'thing'
888
- * $^^thing - up two levels, then 'thing'
889
- * $items[0].name - with array indexing
890
- */
891
- export class RefTag extends Tag {
892
- readonly ups: number;
893
- readonly refPath: Path;
894
-
895
- constructor(ups: number, refPath: Path, parent?: Tag) {
896
- super({}, parent);
897
- this.ups = ups;
898
- this.refPath = refPath;
899
- }
900
-
901
- /**
902
- * Resolve this reference to the target tag.
903
- * Returns undefined if the reference cannot be resolved.
904
- */
905
- resolve(): Tag | undefined {
906
- // Start from the appropriate point based on ups
907
- let current: Tag | undefined;
908
- if (this.ups === 0) {
909
- // Absolute reference from root
910
- current = this.root;
911
- } else {
912
- // Relative reference - go up 'ups' levels from parent
913
- // $^ means go up 1 level from the containing scope
914
- current = this.parent;
915
- for (let i = 0; i < this.ups && current !== undefined; i++) {
916
- current = current.parent;
917
- }
918
- }
919
-
920
- if (current === undefined) {
921
- return undefined;
922
- }
923
-
924
- // Follow the path
925
- return current.find(this.refPath);
926
- }
927
-
928
- /**
929
- * Quote an identifier if it contains special characters.
930
- */
931
- private quoteSegment(seg: string): string {
932
- // Match bareString from peggy grammar: [0-9A-Za-z_\u00C0-\u024F\u1E00-\u1EFF]+
933
- if (/^[0-9A-Za-z_\u00C0-\u024F\u1E00-\u1EFF]+$/.test(seg)) {
934
- return seg;
935
- }
936
- // Otherwise, backquote it (escaping backslashes and backquotes)
937
- return '`' + seg.replace(/\\/g, '\\\\').replace(/`/g, '\\`') + '`';
938
- }
939
-
940
- /**
941
- * Convert this reference to its string representation.
942
- */
943
- toRefString(): string {
944
- const prefix = '$' + '^'.repeat(this.ups);
945
- const pathStr = this.refPath
946
- .map((seg, i) => {
947
- if (typeof seg === 'number') {
948
- return `[${seg}]`;
949
- }
950
- const quoted = this.quoteSegment(seg);
951
- return i === 0 ? quoted : `.${quoted}`;
952
- })
953
- .join('');
954
- return prefix + pathStr;
955
- }
956
-
957
- // Override virtual accessors to resolve the reference
958
- override getEq(): TagValue | undefined {
959
- return this.resolve()?.getEq();
960
- }
961
-
962
- override getProperty(name: string): Tag | undefined {
963
- return this.resolve()?.getProperty(name);
964
- }
965
-
966
- override getArrayElement(index: number): Tag | undefined {
967
- return this.resolve()?.getArrayElement(index);
968
- }
969
-
970
- override hasProperties(): boolean {
971
- return this.resolve()?.hasProperties() ?? false;
972
- }
973
-
974
- /**
975
- * For toObject, resolve the reference and return the target's object value.
976
- * This creates actual object pointers (circular references are allowed).
977
- * Detects cycles in the reference chain to prevent infinite recursion.
978
- */
979
- override toObjectValue(resolving: Set<RefTag>): unknown {
980
- // Check for cycle in reference chain
981
- if (resolving.has(this)) {
982
- // We're in a cycle - return undefined to break it
983
- // (The cycle will be completed when the outer resolution finishes)
984
- return undefined;
985
- }
986
-
987
- const resolved = this.resolve();
988
- if (resolved === undefined) {
989
- return undefined;
990
- }
991
-
992
- // Track that we're resolving this RefTag
993
- resolving.add(this);
994
- const result = resolved.toObjectValue(resolving);
995
- resolving.delete(this);
996
-
997
- return result;
998
- }
999
-
1000
- /**
1001
- * For JSON serialization, return a marker object instead of resolving.
1002
- */
1003
- override toJSON(): TagJSON {
1004
- return {linkTo: this.toRefString()};
1005
- }
1006
-
1007
- /**
1008
- * Check if this reference resolves, add error if not.
1009
- */
1010
- override collectReferenceErrors(errors: string[], path: string[]): void {
1011
- if (this.resolve() === undefined) {
1012
- const location = path.length > 0 ? path.join('.') : 'root';
1013
- errors.push(`Unresolved reference at ${location}: ${this.toRefString()}`);
1014
- }
1015
- }
1016
-
1017
- /**
1018
- * Clone this RefTag, preserving the reference information.
1019
- */
1020
- override clone(newParent?: Tag): RefTag {
1021
- const cloned = new RefTag(this.ups, [...this.refPath], newParent);
1022
- cloned._clonedFrom = this;
1023
- return cloned;
1024
- }
1025
- }
1026
-
1027
785
  /**
1028
786
  * Convert a Tag to a plain TagInterface without internal fields like _parent.
1029
787
  * Useful for test comparisons.