@dsillman2000/yaml-reference-ts 1.2.3 → 1.3.1

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/README.md CHANGED
@@ -1,20 +1,22 @@
1
1
  # YAML Reference Resolver (TypeScript)
2
2
 
3
- A Node.js TypeScript library for resolving YAML documents containing `!reference` and `!reference-all` tags. The library uses the `eemeli/yaml` package to parse YAML with custom tags and resolve references to external YAML files.
3
+ A Node.js TypeScript library for resolving YAML documents containing `!reference`, `!reference-all`, `!flatten`, and `!merge` tags. The library uses the `eemeli/yaml` package to parse YAML with custom tags and resolve references to external YAML files.
4
4
 
5
5
  ## Features
6
6
 
7
- - **Custom YAML Tags**: Support for `!reference`, `!reference-all`, and `!flatten` tags
7
+ - **Custom YAML Tags**: Support for `!reference`, `!reference-all`, `!flatten`, and `!merge` tags
8
8
  - **Recursive Resolution**: Automatically resolves nested references
9
9
  - **Sequence Flattening**: `!flatten` tag for flattening nested arrays
10
+ - **Object Merging**: `!merge` tag for merging sequences of objects with last-write-wins semantics
10
11
  - **Circular Reference Detection**: Prevents infinite loops with proper error messages
11
12
  - **Glob Pattern Support**: `!reference-all` supports glob patterns for multiple files
12
13
  - **CLI Interface**: Command-line tool for resolving YAML files
13
14
  - **TypeScript Support**: Full type definitions included
14
15
 
15
16
  ## Spec
17
+ ![Spec Status](https://img.shields.io/badge/spec%20v0.a.b--c-passing-brightgreen?link=https%3A%2F%2Fgithub.com%2Fdsillman2000%2Fyaml-reference-specs%2Ftree%2Fv0.a.b-c)
16
18
 
17
- This Node.js TypeScript library implements the YAML specification for cross-file references in YAML files using tags `!reference`, `!reference-all` and `!flatten` tags as defined in the [yaml-reference-specs project](https://github.com/dsillman2000/yaml-reference-specs).
19
+ This Node.js TypeScript library implements the YAML specification for cross-file references in YAML files using tags `!reference`, `!reference-all`, `!flatten` and `!merge` tags as defined in the [yaml-reference-specs project](https://github.com/dsillman2000/yaml-reference-specs).
18
20
 
19
21
  ## Installation
20
22
 
@@ -66,7 +68,24 @@ data: !flatten
66
68
  simple: !flatten [1, 2, 3]
67
69
  ```
68
70
 
69
- **Note**: For `!reference` and `!reference-all` tags, only mapping syntax is supported. Be sure to conform to the API (`!reference {path: <path>}` or `!reference-all {glob: <glob>}`). For `!flatten` tags, only sequence syntax is supported.
71
+ ### Object Merging
72
+
73
+ ```yaml
74
+ # Block sequence syntax
75
+ config: !merge
76
+ - {host: localhost, port: 3000}
77
+ - {port: 8080, debug: true}
78
+
79
+ # Inline sequence syntax
80
+ settings: !merge [{a: 1, b: 2}, {b: 3, c: 4}]
81
+
82
+ # With references
83
+ merged: !merge
84
+ - !reference {path: ./defaults.yaml}
85
+ - {override: true}
86
+ ```
87
+
88
+ **Note**: For `!reference` and `!reference-all` tags, only mapping syntax is supported. Be sure to conform to the API (`!reference {path: <path>}` or `!reference-all {glob: <glob>}`). For `!flatten` and `!merge` tags, only sequence syntax is supported.
70
89
 
71
90
  **Deterministic Ordering**: The `!reference-all` tag resolves files in alphabetical order to ensure consistent, predictable results across different systems and runs.
72
91
 
@@ -90,13 +109,13 @@ async function loadConfig() {
90
109
  ### API Reference
91
110
 
92
111
  #### `loadYamlWithReferences(filePath: string, allowPaths?: string[]): Promise<any>`
93
- Loads a YAML file and resolves all `!reference`, `!reference-all`, and `!flatten` tags, returning the fully resolved object. The optional `allowPaths` parameter restricts which directories can be referenced (see Path Restrictions section).
112
+ Loads a YAML file and resolves all `!reference`, `!reference-all`, `!flatten`, and `!merge` tags, returning the fully resolved object. The optional `allowPaths` parameter restricts which directories can be referenced (see Path Restrictions section).
94
113
 
95
114
  #### `parseYamlWithReferences(content: string, filePath: string): Promise<any>`
96
115
  Parses YAML content with custom tags, setting `_location` on Reference and parsing Flatten objects.
97
116
 
98
117
  #### `loadYamlWithReferencesSync(filePath: string, allowPaths?: string[]): any`
99
- Loads a YAML file and resolves all `!reference`, `!reference-all`, and `!flatten` tags, returning the fully resolved object synchronously. The optional `allowPaths` parameter restricts which directories can be referenced (see Path Restrictions section).
118
+ Loads a YAML file and resolves all `!reference`, `!reference-all`, `!flatten`, and `!merge` tags, returning the fully resolved object synchronously. The optional `allowPaths` parameter restricts which directories can be referenced (see Path Restrictions section).
100
119
 
101
120
  #### `parseYamlWithReferencesSync(content: string, filePath: string): any`
102
121
  Parses YAML content with custom tags, setting `_location` on Reference and parsing Flatten objects synchronously.
@@ -115,6 +134,10 @@ Represents a `!reference-all` tag with properties:
115
134
  Represents a `!flatten` tag with properties:
116
135
  - `sequence`: The sequence to be flattened (can contain nested arrays, Reference, and ReferenceAll objects)
117
136
 
137
+ #### `Merge` Class
138
+ Represents a `!merge` tag with properties:
139
+ - `sequence`: The sequence of objects to be merged using last-write-wins semantics (can contain Reference and ReferenceAll objects)
140
+
118
141
  ## CLI Usage
119
142
 
120
143
  The package includes a CLI tool called `yaml-reference-cli`:
@@ -264,10 +287,19 @@ const resolved = await loadYamlWithReferences('./config/main.yaml', [
264
287
  - Other values are preserved as-is
265
288
  4. The `Flatten` object is replaced with the flattened array. No elements of the resulting array are themselves arrays.
266
289
 
290
+ ### For `!merge` tags:
291
+ 1. The sequence is parsed from the YAML (must be a sequence/array)
292
+ 2. `Reference` and `ReferenceAll` objects within the sequence are resolved first
293
+ 3. The sequence is flattened (nested arrays from `!reference-all` or `!flatten` are expanded)
294
+ 4. Each item in the flattened sequence is validated to be an object (not null, not an array, not a scalar)
295
+ 5. The objects are merged using last-write-wins (spread) semantics
296
+ 6. The merge is shallow: nested objects are replaced entirely, not deeply merged
297
+ 7. The `Merge` object is replaced with the resulting merged object
298
+
267
299
  **Deterministic Behavior**: The library ensures predictable output by:
268
300
  - Sorting `!reference-all` file matches alphabetically before resolution
269
301
  - Rejecting scalar syntax for `!reference` and `!reference-all` tags (only mapping syntax is allowed)
270
- - Rejecting mapping syntax for `!flatten` tags (only sequence syntax is allowed)
302
+ - Rejecting mapping syntax for `!flatten` and `!merge` tags (only sequence syntax is allowed)
271
303
  - Using consistent error messages for validation failures
272
304
  - Enforcing path restrictions to prevent unauthorized file access
273
305
 
@@ -282,6 +314,7 @@ The library throws descriptive errors for:
282
314
  - Absolute paths in `!reference` or `!reference-all` tags (only relative paths are allowed)
283
315
  - References to files outside allowed paths
284
316
  - `!flatten` tag applied to non-sequence values
317
+ - `!merge` tag applied to a sequence of values that are not mappings
285
318
 
286
319
  ## Development
287
320
 
@@ -293,6 +326,7 @@ yaml-reference-ts/
293
326
  │ ├── index.ts # Main exports
294
327
  │ ├── Reference.ts # Reference class
295
328
  │ ├── ReferenceAll.ts # ReferenceAll class
329
+ │ ├── Merge.ts # Merge class
296
330
  │ ├── resolver.ts # loadAndResolve implementation
297
331
  │ ├── parser.ts # YAML parser with custom tags
298
332
  │ └── cli/
@@ -356,3 +390,4 @@ npm run lint
356
390
  Author(s):
357
391
 
358
392
  - David Sillman <dsillman2000@gmail.com>
393
+ - Ryan Johnson <github@ryodine.com>
package/dist/Flatten.d.ts CHANGED
@@ -12,7 +12,6 @@ export declare class Flatten {
12
12
  /**
13
13
  * Creates a new Flatten instance
14
14
  * @param sequence - The sequence to be flattened
15
- * @param location - Absolute path to the file containing this flatten tag (optional, will be set later)
16
15
  */
17
16
  constructor(sequence: any[]);
18
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Flatten.d.ts","sourceRoot":"","sources":["../src/Flatten.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,OAAO;IAClB;;;OAGG;IACH,QAAQ,EAAE,GAAG,EAAE,CAAC;IAEhB;;;;OAIG;gBACS,QAAQ,EAAE,GAAG,EAAE;IAI3B;;OAEG;IACH,QAAQ,IAAI,MAAM;CAUnB"}
1
+ {"version":3,"file":"Flatten.d.ts","sourceRoot":"","sources":["../src/Flatten.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,OAAO;IAClB;;;OAGG;IACH,QAAQ,EAAE,GAAG,EAAE,CAAC;IAEhB;;;OAGG;gBACS,QAAQ,EAAE,GAAG,EAAE;IAI3B;;OAEG;IACH,QAAQ,IAAI,MAAM;CAUnB"}
package/dist/Flatten.js CHANGED
@@ -10,7 +10,6 @@ class Flatten {
10
10
  /**
11
11
  * Creates a new Flatten instance
12
12
  * @param sequence - The sequence to be flattened
13
- * @param location - Absolute path to the file containing this flatten tag (optional, will be set later)
14
13
  */
15
14
  constructor(sequence) {
16
15
  this.sequence = sequence;
@@ -1 +1 @@
1
- {"version":3,"file":"Flatten.js","sourceRoot":"","sources":["../src/Flatten.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,MAAa,OAAO;IAOlB;;;;OAIG;IACH,YAAY,QAAe;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,uBAAuB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CACF;AA7BD,0BA6BC"}
1
+ {"version":3,"file":"Flatten.js","sourceRoot":"","sources":["../src/Flatten.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,MAAa,OAAO;IAOlB;;;OAGG;IACH,YAAY,QAAe;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,uBAAuB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CACF;AA5BD,0BA4BC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Merge class representing a !merge tag in YAML
3
+ * This class is instantiated when the YAML parser encounters a !merge tag
4
+ * The !merge tag should be applied to Sequence nodes to merge a sequence of objects
5
+ * using last-write-wins semantics (like JS spread)
6
+ */
7
+ export declare class Merge {
8
+ /**
9
+ * The sequence of objects to be merged
10
+ * This contains the raw parsed YAML document sequence
11
+ */
12
+ sequence: any[];
13
+ /**
14
+ * Creates a new Merge instance
15
+ * @param sequence - The sequence of objects to be merged
16
+ */
17
+ constructor(sequence: any[]);
18
+ /**
19
+ * Returns a string representation of the Merge
20
+ */
21
+ toString(): string;
22
+ }
23
+ //# sourceMappingURL=Merge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Merge.d.ts","sourceRoot":"","sources":["../src/Merge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,KAAK;IAChB;;;OAGG;IACH,QAAQ,EAAE,GAAG,EAAE,CAAC;IAEhB;;;OAGG;gBACS,QAAQ,EAAE,GAAG,EAAE;IAI3B;;OAEG;IACH,QAAQ,IAAI,MAAM;CAUnB"}
package/dist/Merge.js ADDED
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Merge = void 0;
4
+ /**
5
+ * Merge class representing a !merge tag in YAML
6
+ * This class is instantiated when the YAML parser encounters a !merge tag
7
+ * The !merge tag should be applied to Sequence nodes to merge a sequence of objects
8
+ * using last-write-wins semantics (like JS spread)
9
+ */
10
+ class Merge {
11
+ /**
12
+ * Creates a new Merge instance
13
+ * @param sequence - The sequence of objects to be merged
14
+ */
15
+ constructor(sequence) {
16
+ this.sequence = sequence;
17
+ }
18
+ /**
19
+ * Returns a string representation of the Merge
20
+ */
21
+ toString() {
22
+ return `Merge { sequence: ${JSON.stringify(this.sequence)} }`;
23
+ }
24
+ /**
25
+ * Custom inspection method for Node.js console
26
+ */
27
+ [Symbol.for("nodejs.util.inspect.custom")]() {
28
+ return this.toString();
29
+ }
30
+ }
31
+ exports.Merge = Merge;
32
+ //# sourceMappingURL=Merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Merge.js","sourceRoot":"","sources":["../src/Merge.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,MAAa,KAAK;IAOhB;;;OAGG;IACH,YAAY,QAAe;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,qBAAqB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;CACF;AA5BD,sBA4BC"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@
4
4
  export { Reference } from "./Reference";
5
5
  export { ReferenceAll } from "./ReferenceAll";
6
6
  export { Flatten } from "./Flatten";
7
+ export { Merge } from "./Merge";
7
8
  export { parseYamlWithReferencesSync, parseYamlWithReferences } from "./parser";
8
9
  /**
9
10
  * Convenience alias for loadAndResolve
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEhF;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,GAAG,CAAC,CAEd;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,GAAG,CAEL"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEhF;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,GAAG,CAAC,CAEd;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,GAAG,CAEL"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Main exports for yaml-reference-ts library
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.parseYamlWithReferences = exports.parseYamlWithReferencesSync = exports.Flatten = exports.ReferenceAll = exports.Reference = void 0;
6
+ exports.parseYamlWithReferences = exports.parseYamlWithReferencesSync = exports.Merge = exports.Flatten = exports.ReferenceAll = exports.Reference = void 0;
7
7
  exports.loadYamlWithReferences = loadYamlWithReferences;
8
8
  exports.loadYamlWithReferencesSync = loadYamlWithReferencesSync;
9
9
  var Reference_1 = require("./Reference");
@@ -12,6 +12,8 @@ var ReferenceAll_1 = require("./ReferenceAll");
12
12
  Object.defineProperty(exports, "ReferenceAll", { enumerable: true, get: function () { return ReferenceAll_1.ReferenceAll; } });
13
13
  var Flatten_1 = require("./Flatten");
14
14
  Object.defineProperty(exports, "Flatten", { enumerable: true, get: function () { return Flatten_1.Flatten; } });
15
+ var Merge_1 = require("./Merge");
16
+ Object.defineProperty(exports, "Merge", { enumerable: true, get: function () { return Merge_1.Merge; } });
15
17
  const resolver_1 = require("./resolver");
16
18
  var parser_1 = require("./parser");
17
19
  Object.defineProperty(exports, "parseYamlWithReferencesSync", { enumerable: true, get: function () { return parser_1.parseYamlWithReferencesSync; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAaH,wDAKC;AAOD,gEAKC;AA5BD,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,yCAAgE;AAChE,mCAAgF;AAAvE,qHAAA,2BAA2B,OAAA;AAAE,iHAAA,uBAAuB,OAAA;AAE7D;;;;GAIG;AACI,KAAK,UAAU,sBAAsB,CAC1C,QAAgB,EAChB,UAAqB;IAErB,OAAO,MAAM,IAAA,yBAAc,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,SAAgB,0BAA0B,CACxC,QAAgB,EAChB,UAAqB;IAErB,OAAO,IAAA,6BAAkB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAcH,wDAKC;AAOD,gEAKC;AA7BD,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,yCAAgE;AAChE,mCAAgF;AAAvE,qHAAA,2BAA2B,OAAA;AAAE,iHAAA,uBAAuB,OAAA;AAE7D;;;;GAIG;AACI,KAAK,UAAU,sBAAsB,CAC1C,QAAgB,EAChB,UAAqB;IAErB,OAAO,MAAM,IAAA,yBAAc,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,SAAgB,0BAA0B,CACxC,QAAgB,EAChB,UAAqB;IAErB,OAAO,IAAA,6BAAkB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAClD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkGH;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAgBjE;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAgB5E"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8HH;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAgBjE;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAgB5E"}
package/dist/parser.js CHANGED
@@ -43,6 +43,7 @@ const yaml_1 = require("yaml");
43
43
  const Reference_1 = require("./Reference");
44
44
  const ReferenceAll_1 = require("./ReferenceAll");
45
45
  const Flatten_1 = require("./Flatten");
46
+ const Merge_1 = require("./Merge");
46
47
  const path = __importStar(require("path"));
47
48
  const fs = __importStar(require("fs/promises"));
48
49
  const fsSync = __importStar(require("fs"));
@@ -88,7 +89,31 @@ const referenceAllTag = {
88
89
  return new ReferenceAll_1.ReferenceAll(globValue);
89
90
  },
90
91
  };
91
- const referentialTags = [referenceTag, referenceAllTag];
92
+ /**
93
+ * Custom tag for !merge
94
+ */
95
+ const mergeTag = {
96
+ identify: (value) => value instanceof Merge_1.Merge,
97
+ tag: "!merge",
98
+ collection: "seq",
99
+ resolve: (value, _) => {
100
+ const sequence = new yaml_1.Document(value, {
101
+ customTags,
102
+ }).toJS();
103
+ return new Merge_1.Merge(sequence);
104
+ },
105
+ };
106
+ /**
107
+ * Dummy illegal flag when merge is used on a mapping.
108
+ */
109
+ const illegalMergeOnMapping = {
110
+ identify: (value) => value instanceof Merge_1.Merge,
111
+ tag: "!merge",
112
+ collection: "map",
113
+ resolve: (_, onError) => {
114
+ return onError("!merge tag cannot be used on a mapping");
115
+ },
116
+ };
92
117
  /**
93
118
  * Custom tag for !flatten
94
119
  */
@@ -98,7 +123,7 @@ const flattenTag = {
98
123
  collection: "seq",
99
124
  resolve: (value, _) => {
100
125
  const sequence = new yaml_1.Document(value, {
101
- customTags: referentialTags,
126
+ customTags,
102
127
  }).toJS();
103
128
  return new Flatten_1.Flatten(sequence);
104
129
  },
@@ -120,6 +145,8 @@ const customTags = [
120
145
  referenceAllTag,
121
146
  flattenTag,
122
147
  illegalFlattenOnMapping,
148
+ mergeTag,
149
+ illegalMergeOnMapping,
123
150
  ];
124
151
  /**
125
152
  * Parse YAML content with custom !reference and !reference-all tags
@@ -170,9 +197,13 @@ function processParsedDocument(obj, filePath) {
170
197
  return obj;
171
198
  }
172
199
  if (obj instanceof Flatten_1.Flatten) {
173
- let processed = obj.sequence.map((item) => processParsedDocument(item, filePath));
200
+ const processed = obj.sequence.map((item) => processParsedDocument(item, filePath));
174
201
  return new Flatten_1.Flatten(processed);
175
202
  }
203
+ if (obj instanceof Merge_1.Merge) {
204
+ const processed = obj.sequence.map((item) => processParsedDocument(item, filePath));
205
+ return new Merge_1.Merge(processed);
206
+ }
176
207
  if (Array.isArray(obj)) {
177
208
  return obj.map((item) => processParsedDocument(item, filePath));
178
209
  }
@@ -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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"}
@@ -3,11 +3,17 @@
3
3
  * Handles recursive resolution of references with proper path tracking
4
4
  */
5
5
  /**
6
- * Recursively flatten all arrays in an object
7
- * @param obj - Object that may contain nested arrays
8
- * @returns Object with all arrays flattened
6
+ * Recursively process an object tree, resolving tags that transform data - such
7
+ * as !flatten and !merge tags.
8
+ *
9
+ * @precondition - all references have already been resolved, so the tree should
10
+ * not contain any Reference or ReferenceAll instances. The only tags remaining
11
+ * should be !flatten or !merge tags
12
+ *
13
+ * @param obj - Object that may contain Flatten or Merge instances
14
+ * @returns Object with all Flatten/Merge instances resolved
9
15
  */
10
- export declare function flattenSequences(obj: any): any;
16
+ export declare function resolveTransformTagsRecursive(obj: any): any;
11
17
  /**
12
18
  * Load a YAML file containing references and resolve all references. (async)
13
19
  * @param filePath - Path to YAML file containing references
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsDH;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CA4B9C;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,GAAG,CAAC,CASd;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,GAAG,CASL;AAED;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,GAAG,EACR,YAAY,GAAE,GAAG,CAAC,MAAM,CAAa,EACrC,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,GAAG,CAAC,CA2Cd;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,GAAG,EACR,YAAY,GAAE,GAAG,CAAC,MAAM,CAAa,EACrC,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,GAAG,CA2CL"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoHH;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAwB3D;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,GAAG,CAAC,CASd;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,GAAG,CASL;AAED;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,GAAG,EACR,YAAY,GAAE,GAAG,CAAC,MAAM,CAAa,EACrC,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,GAAG,CAAC,CAsDd;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,GAAG,EACR,YAAY,GAAE,GAAG,CAAC,MAAM,CAAa,EACrC,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,GAAG,CAsDL"}
package/dist/resolver.js CHANGED
@@ -37,7 +37,7 @@ var __importStar = (this && this.__importStar) || (function () {
37
37
  };
38
38
  })();
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.flattenSequences = flattenSequences;
40
+ exports.resolveTransformTagsRecursive = resolveTransformTagsRecursive;
41
41
  exports.loadAndResolve = loadAndResolve;
42
42
  exports.loadAndResolveSync = loadAndResolveSync;
43
43
  exports._recursivelyResolveReferences = _recursivelyResolveReferences;
@@ -49,6 +49,7 @@ const glob_1 = require("glob");
49
49
  const Reference_1 = require("./Reference");
50
50
  const ReferenceAll_1 = require("./ReferenceAll");
51
51
  const Flatten_1 = require("./Flatten");
52
+ const Merge_1 = require("./Merge");
52
53
  const parser_1 = require("./parser");
53
54
  /**
54
55
  * Check if childPath is equal to or nested within parentPath,
@@ -86,32 +87,87 @@ function normalizeAllowPaths(filePath, allowPaths) {
86
87
  return Array.from(seen);
87
88
  }
88
89
  /**
89
- * Recursively flatten all arrays in an object
90
- * @param obj - Object that may contain nested arrays
91
- * @returns Object with all arrays flattened
90
+ * Recursively flatten an array, spreading nested arrays and processing
91
+ * any Flatten/Merge instances found within. Helper function used by !flatten
92
+ * and !merge handlers.
93
+ * @param arr - Array to deeply flatten
94
+ * @returns Flat array with all nested arrays expanded
92
95
  */
93
- function flattenSequences(obj) {
94
- if (Array.isArray(obj)) {
95
- const flattened = [];
96
- for (const item of obj) {
97
- const flattenedItem = flattenSequences(item);
98
- if (Array.isArray(flattenedItem)) {
99
- flattened.push(...flattenedItem);
100
- }
101
- else {
102
- flattened.push(flattenedItem);
103
- }
96
+ function flattenArray(arr) {
97
+ const result = [];
98
+ for (const item of arr) {
99
+ // pre-process the item to resolve any nested transforming tags (!flatten,
100
+ // !merge) before flattening the result
101
+ const processed = resolveTransformTagsRecursive(item);
102
+ if (Array.isArray(processed)) {
103
+ result.push(...flattenArray(processed));
104
+ }
105
+ else {
106
+ result.push(processed);
104
107
  }
105
- return flattened;
106
108
  }
109
+ return result;
110
+ }
111
+ /**
112
+ * Resolves a !merge tag by merging the sequence of objects it contains.
113
+ * @param obj - Merge instance containing the sequence to merge
114
+ * @returns Merged object
115
+ * @throws Error if any item in the sequence is not an object after flattening
116
+ */
117
+ function resolveMerge(obj) {
118
+ // Flatten nested arrays (only within this merge context)
119
+ const flattened = flattenArray(obj.sequence);
120
+ // Validate all items are objects (not null, not array, not scalar)
121
+ for (let i = 0; i < flattened.length; i++) {
122
+ const item = flattened[i];
123
+ if (item === null ||
124
+ item === undefined ||
125
+ typeof item !== "object" ||
126
+ Array.isArray(item)) {
127
+ const itemType = item === null ? "null" : Array.isArray(item) ? "array" : typeof item;
128
+ throw new Error(`!merge: all items must be objects after flattening, but found ${itemType} at index ${i}`);
129
+ }
130
+ }
131
+ // Spread-merge with last-write-wins
132
+ return Object.assign({}, ...flattened);
133
+ }
134
+ /**
135
+ * Resolves a !flatten tag by flattening the sequence it contains.
136
+ * @param obj - Flatten instance containing the sequence to flatten
137
+ * @returns Flattened array
138
+ */
139
+ function resolveFlatten(obj) {
140
+ // Flatten the sequence inside the Flatten object
141
+ return flattenArray(obj.sequence);
142
+ }
143
+ /**
144
+ * Recursively process an object tree, resolving tags that transform data - such
145
+ * as !flatten and !merge tags.
146
+ *
147
+ * @precondition - all references have already been resolved, so the tree should
148
+ * not contain any Reference or ReferenceAll instances. The only tags remaining
149
+ * should be !flatten or !merge tags
150
+ *
151
+ * @param obj - Object that may contain Flatten or Merge instances
152
+ * @returns Object with all Flatten/Merge instances resolved
153
+ */
154
+ function resolveTransformTagsRecursive(obj) {
155
+ // If we are in a sequence, continue recursion until we reach a leaf node
156
+ if (Array.isArray(obj)) {
157
+ return obj.map((item) => resolveTransformTagsRecursive(item));
158
+ }
159
+ // On leaf nodes, check for tags, or traverse objects
107
160
  if (obj && typeof obj === "object") {
108
161
  if (obj instanceof Flatten_1.Flatten) {
109
- // Flatten the sequence inside the Flatten object
110
- return flattenSequences(obj.sequence);
162
+ return resolveFlatten(obj);
163
+ }
164
+ if (obj instanceof Merge_1.Merge) {
165
+ return resolveMerge(obj);
111
166
  }
167
+ // Not one of our tags, but still an object - continue recursion
112
168
  const result = {};
113
169
  for (const [key, value] of Object.entries(obj)) {
114
- result[key] = flattenSequences(value);
170
+ result[key] = resolveTransformTagsRecursive(value);
115
171
  }
116
172
  return result;
117
173
  }
@@ -127,7 +183,7 @@ async function loadAndResolve(filePath, allowPaths) {
127
183
  const parsed = await (0, parser_1.parseYamlWithReferences)(filePath);
128
184
  const normalizedAllowPaths = normalizeAllowPaths(filePath, allowPaths);
129
185
  const resolved = await _recursivelyResolveReferences(parsed, new Set(), normalizedAllowPaths);
130
- return flattenSequences(resolved);
186
+ return resolveTransformTagsRecursive(resolved);
131
187
  }
132
188
  /**
133
189
  * Load a YAML file containing references and resolve all references.
@@ -139,7 +195,7 @@ function loadAndResolveSync(filePath, allowPaths) {
139
195
  const parsed = (0, parser_1.parseYamlWithReferencesSync)(filePath);
140
196
  const normalizedAllowPaths = normalizeAllowPaths(filePath, allowPaths);
141
197
  const resolved = _recursivelyResolveReferencesSync(parsed, new Set(), normalizedAllowPaths);
142
- return flattenSequences(resolved);
198
+ return resolveTransformTagsRecursive(resolved);
143
199
  }
144
200
  /**
145
201
  * Recursively resolve all references in an object (async)
@@ -163,6 +219,14 @@ async function _recursivelyResolveReferences(obj, visitedPaths = new Set(), allo
163
219
  }
164
220
  return new Flatten_1.Flatten(resolvedSequence);
165
221
  }
222
+ if (obj instanceof Merge_1.Merge) {
223
+ // Resolve references within the sequence first, then merge will be applied later
224
+ const resolvedSequence = [];
225
+ for (const item of obj.sequence) {
226
+ resolvedSequence.push(await _recursivelyResolveReferences(item, visitedPaths, allowPaths));
227
+ }
228
+ return new Merge_1.Merge(resolvedSequence);
229
+ }
166
230
  if (Array.isArray(obj)) {
167
231
  const resolvedArray = [];
168
232
  for (const item of obj) {
@@ -201,6 +265,14 @@ function _recursivelyResolveReferencesSync(obj, visitedPaths = new Set(), allowP
201
265
  }
202
266
  return new Flatten_1.Flatten(resolvedSequence);
203
267
  }
268
+ if (obj instanceof Merge_1.Merge) {
269
+ // Resolve references within the sequence first, then merge will be applied later
270
+ const resolvedSequence = [];
271
+ for (const item of obj.sequence) {
272
+ resolvedSequence.push(_recursivelyResolveReferencesSync(item, visitedPaths, allowPaths));
273
+ }
274
+ return new Merge_1.Merge(resolvedSequence);
275
+ }
204
276
  if (Array.isArray(obj)) {
205
277
  const resolvedArray = [];
206
278
  for (const item of obj) {
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dsillman2000/yaml-reference-ts",
3
- "version": "1.2.3",
3
+ "version": "1.3.1",
4
4
  "description": "A Node.js TypeScript library for resolving YAML documents containing !reference and !reference-all tags",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,7 +21,7 @@
21
21
  "test": "jest",
22
22
  "test:watch": "jest --watch",
23
23
  "test:coverage": "jest --coverage",
24
- "test:specs": "chmod +x $PWD/dist/cli/index.js && YAML_REFERENCE_CLI_EXECUTABLE=$PWD/dist/cli/index.js go run github.com/dsillman2000/yaml-reference-specs@latest",
24
+ "test:specs": "chmod +x $PWD/dist/cli/index.js && curl -sL https://api.github.com/repos/dsillman2000/yaml-reference-specs/releases/latest | jq -r .tag_name | YAML_REFERENCE_CLI_EXECUTABLE=$PWD/dist/cli/index.js xargs -I {} go run github.com/dsillman2000/yaml-reference-specs@{}",
25
25
  "format": "prettier --write .",
26
26
  "format:check": "prettier --check .",
27
27
  "lint": "eslint --config .eslintrc.js src/**/*.ts",