jtlt 0.6.0 → 0.7.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/CHANGES.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # jtlt CHANGES
2
2
 
3
+ ## 0.7.1
4
+
5
+ - fix: ensure context methods available within callbacks
6
+
7
+ ## 0.7.0
8
+
9
+ - feat: `stripSpace` and `preserveSpace`
10
+
3
11
  ## 0.6.0
4
12
 
5
13
  - feat: add `map` and `mapEntry` aliases to `object` and `propValue`
@@ -22,6 +22,8 @@ declare class DOMJoiningTransformer extends AbstractJoiningTransformer<"dom"> {
22
22
  */
23
23
  constructor(o: DocumentFragment | Element, cfg: import("./AbstractJoiningTransformer.js").DOMJoiningTransformerConfig);
24
24
  _dom: Element | DocumentFragment;
25
+ /** @type {any} */
26
+ _context: any;
25
27
  /** @type {XMLDocument[]} */
26
28
  _docs: XMLDocument[];
27
29
  /** @type {Array<{href: string, document: XMLDocument, format?: string}>} */
@@ -37,6 +39,12 @@ declare class DOMJoiningTransformer extends AbstractJoiningTransformer<"dom"> {
37
39
  * @returns {void}
38
40
  */
39
41
  rawAppend(item: Node): void;
42
+ /**
43
+ * Set the transformer context for callback invocations.
44
+ * @param {any} context - The transformer context object
45
+ * @returns {DOMJoiningTransformer}
46
+ */
47
+ setContext(context: any): DOMJoiningTransformer;
40
48
  /**
41
49
  * @param {string|Node} item - Item to append
42
50
  * @returns {void}
@@ -1 +1 @@
1
- {"version":3,"file":"DOMJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/DOMJoiningTransformer.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DOMJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/DOMJoiningTransformer.js"],"names":[],"mappings":"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"}
@@ -66,6 +66,8 @@ declare class JSONJoiningTransformer extends AbstractJoiningTransformer<"json">
66
66
  constructor(o?: any[] | Record<string, unknown>, cfg?: import("./AbstractJoiningTransformer.js").JSONJoiningTransformerConfig);
67
67
  /** @type {any[]|Record<string, unknown>} */
68
68
  _obj: any[] | Record<string, unknown>;
69
+ /** @type {any} */
70
+ _context: any;
69
71
  /** @type {boolean | undefined} */
70
72
  _objPropState: boolean | undefined;
71
73
  /** @type {boolean | undefined} */
@@ -88,6 +90,12 @@ declare class JSONJoiningTransformer extends AbstractJoiningTransformer<"json">
88
90
  * @returns {void}
89
91
  */
90
92
  rawAppend(item: any): void;
93
+ /**
94
+ * Set the transformer context for callback invocations.
95
+ * @param {any} context - The transformer context object
96
+ * @returns {JSONJoiningTransformer}
97
+ */
98
+ setContext(context: any): JSONJoiningTransformer;
91
99
  /**
92
100
  * Appends an item to the current object or array.
93
101
  * @param {any} item - Item to append
@@ -1 +1 @@
1
- {"version":3,"file":"JSONJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/JSONJoiningTransformer.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JSONJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/JSONJoiningTransformer.js"],"names":[],"mappings":"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"}
@@ -212,11 +212,21 @@ declare class JSONPathTransformerContext<T = "json"> {
212
212
  _currPath: string | undefined;
213
213
  /** @type {Record<string, any> | undefined} */
214
214
  _params: Record<string, any> | undefined;
215
+ /** @type {string[]} */
216
+ _preserveSpaceElements: string[];
217
+ /** @type {string[]} */
218
+ _stripSpaceElements: string[];
215
219
  /**
216
220
  * Triggers an error if equal priority templates are found.
217
221
  * @returns {void}
218
222
  */
219
223
  _triggerEqualPriorityError(): void;
224
+ /**
225
+ * Check if whitespace should be stripped for a given element name.
226
+ * @param {string} elementName - The element name to check
227
+ * @returns {boolean}
228
+ */
229
+ _shouldStripSpace(elementName: string): boolean;
220
230
  /**
221
231
  * Gets the joining transformer from config.
222
232
  * @returns {T extends "json" ? import('./JSONJoiningTransformer.js').
@@ -460,6 +470,20 @@ declare class JSONPathTransformerContext<T = "json"> {
460
470
  * @returns {this}
461
471
  */
462
472
  mapEntry(prop: string, val: any): this;
473
+ /**
474
+ * Declare elements for which whitespace-only text nodes should be preserved.
475
+ * Equivalent to xsl:preserve-space.
476
+ * @param {string|string[]} elements - Element name(s) or patterns
477
+ * @returns {this}
478
+ */
479
+ preserveSpace(elements: string | string[]): this;
480
+ /**
481
+ * Declare elements for which whitespace-only text nodes should be stripped.
482
+ * Equivalent to xsl:strip-space.
483
+ * @param {string|string[]} elements - Element name(s) or patterns
484
+ * @returns {this}
485
+ */
486
+ stripSpace(elements: string | string[]): this;
463
487
  /**
464
488
  * Build an object. Mirrors the joining transformer API. All joiners now
465
489
  * support both signatures: (obj, cb, usePropertySets, propSets) with seed
@@ -536,9 +560,11 @@ declare class JSONPathTransformerContext<T = "json"> {
536
560
  * transformer API so templates can call `this.attribute()`.
537
561
  * @param {string} name - Attribute name
538
562
  * @param {string|Record<string, unknown>} val - Attribute value
563
+ * @param {boolean} [avoid] - Avoid attribute escaping
564
+ * (StringJoiningTransformer only)
539
565
  * @returns {this}
540
566
  */
541
- attribute(name: string, val: string | Record<string, unknown>): this;
567
+ attribute(name: string, val: string | Record<string, unknown>, avoid?: boolean): this;
542
568
  /**
543
569
  * Append text content. Mirrors the joining transformer API so templates can
544
570
  * call `this.text()`.
@@ -1 +1 @@
1
- {"version":3,"file":"JSONPathTransformerContext.d.ts","sourceRoot":"","sources":["../src/JSONPathTransformerContext.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JSONPathTransformerContext.d.ts","sourceRoot":"","sources":["../src/JSONPathTransformerContext.js"],"names":[],"mappings":"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"}
@@ -69,6 +69,8 @@ declare class StringJoiningTransformer extends AbstractJoiningTransformer<"strin
69
69
  constructor(s: string, cfg?: import("./AbstractJoiningTransformer.js").StringJoiningTransformerConfig);
70
70
  _str: string;
71
71
  /** @type {any} */
72
+ _context: any;
73
+ /** @type {any} */
72
74
  _objPropTemp: any;
73
75
  /** @type {boolean | undefined} */
74
76
  propOnlyState: boolean | undefined;
@@ -94,6 +96,12 @@ declare class StringJoiningTransformer extends AbstractJoiningTransformer<"strin
94
96
  document: string;
95
97
  format?: string;
96
98
  }>;
99
+ /**
100
+ * Set the transformer context for callback invocations.
101
+ * @param {any} context - The transformer context object
102
+ * @returns {StringJoiningTransformer}
103
+ */
104
+ setContext(context: any): StringJoiningTransformer;
97
105
  /**
98
106
  * @param {string|any} s - String or value to append
99
107
  * @returns {StringJoiningTransformer}
@@ -1 +1 @@
1
- {"version":3,"file":"StringJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/StringJoiningTransformer.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StringJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/StringJoiningTransformer.js"],"names":[],"mappings":"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"}
@@ -109,8 +109,31 @@ declare class XPathTransformerContext {
109
109
  _currPath: string | undefined;
110
110
  /** @type {Record<string, any> | undefined} */
111
111
  _params: Record<string, any> | undefined;
112
+ /** @type {string[]} */
113
+ _preserveSpaceElements: string[];
114
+ /** @type {string[]} */
115
+ _stripSpaceElements: string[];
112
116
  /** @returns {import('./index.js').JoiningTransformer} */
113
117
  _getJoiningTransformer(): import("./index.js").JoiningTransformer;
118
+ /**
119
+ * Check if whitespace should be stripped for a given element.
120
+ * @param {Node} node - The node to check
121
+ * @returns {boolean}
122
+ */
123
+ _shouldStripSpace(node: Node): boolean;
124
+ /**
125
+ * Clone the DOM and strip whitespace-only text nodes from elements
126
+ * marked for stripping.
127
+ * @param {Node} node - The node to clone
128
+ * @returns {Node} The cloned node with whitespace stripped
129
+ */
130
+ _cloneAndStripWhitespace(node: Node): Node;
131
+ /**
132
+ * Apply whitespace stripping to the context node based on strip-space
133
+ * declarations. This clones the DOM and updates the context.
134
+ * @returns {this}
135
+ */
136
+ applyWhitespaceStripping(): this;
114
137
  /**
115
138
  * Evaluate an XPath expression against the current context node.
116
139
  * @param {string} expr - XPath expression
@@ -327,6 +350,21 @@ declare class XPathTransformerContext {
327
350
  * @returns {XPathTransformerContext}
328
351
  */
329
352
  mapEntry(prop: string, val: any): XPathTransformerContext;
353
+ /**
354
+ * Declare elements for which whitespace-only text nodes should be preserved.
355
+ * Equivalent to xsl:preserve-space.
356
+ * @param {string|string[]} elements - Element name(s) or patterns
357
+ * @returns {XPathTransformerContext}
358
+ */
359
+ preserveSpace(elements: string | string[]): XPathTransformerContext;
360
+ /**
361
+ * Declare elements for which whitespace-only text nodes should be stripped.
362
+ * Equivalent to xsl:strip-space.
363
+ * This automatically clones the DOM and removes whitespace-only text nodes.
364
+ * @param {string|string[]} elements - Element name(s) or patterns
365
+ * @returns {XPathTransformerContext}
366
+ */
367
+ stripSpace(elements: string | string[]): XPathTransformerContext;
330
368
  /**
331
369
  * Append object.
332
370
  * @param {Record<string, unknown>|
@@ -1 +1 @@
1
- {"version":3,"file":"XPathTransformerContext.d.ts","sourceRoot":"","sources":["../src/XPathTransformerContext.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XPathTransformerContext.d.ts","sourceRoot":"","sources":["../src/XPathTransformerContext.js"],"names":[],"mappings":"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"}
package/docs/TO-DO.md CHANGED
@@ -121,10 +121,8 @@
121
121
  xsl:package
122
122
  "xsl:param",
123
123
  "xsl:perform-sort",
124
- "xsl:preserve-space",
125
124
  "xsl:sequence",
126
125
  xsl:source-document
127
- "xsl:strip-space",
128
126
  xsl:try
129
127
  xsl:use-package
130
128
  xsl:where-populated
@@ -157,9 +155,11 @@
157
155
  ~~"xsl:otherwise",~~
158
156
  ~~"xsl:output",~~
159
157
  ~~"xsl:output-character",~~
158
+ ~~"xsl:preserve-space",~~
160
159
  ~~"xsl:processing-instruction",~~
161
160
  ~~"xsl:result-document",~~
162
161
  ~~"xsl:sort",~~
162
+ ~~"xsl:strip-space",~~
163
163
  ~~"xsl:stylesheet",~~
164
164
  ~~"xsl:template",~~
165
165
  ~~"xsl:text",~~
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jtlt",
3
- "version": "0.6.0",
3
+ "version": "0.7.1",
4
4
  "type": "module",
5
5
  "author": "Brett Zamir",
6
6
  "contributors": [],
@@ -25,6 +25,8 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
25
25
  constructor (o, cfg) {
26
26
  super(cfg);
27
27
  this._dom = o || cfg.document.createDocumentFragment();
28
+ /** @type {any} */
29
+ this._context = undefined;
28
30
  /** @type {XMLDocument[]} */
29
31
  this._docs = [];
30
32
  /** @type {Array<{href: string, document: XMLDocument, format?: string}>} */
@@ -41,6 +43,16 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
41
43
  this._dom.append(item);
42
44
  }
43
45
 
46
+ /**
47
+ * Set the transformer context for callback invocations.
48
+ * @param {any} context - The transformer context object
49
+ * @returns {DOMJoiningTransformer}
50
+ */
51
+ setContext (context) {
52
+ this._context = context;
53
+ return this;
54
+ }
55
+
44
56
  /**
45
57
  * @param {string|Node} item - Item to append
46
58
  * @returns {void}
@@ -400,7 +412,7 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
400
412
  }
401
413
 
402
414
  if (cb) {
403
- cb.call(this);
415
+ cb.call(this._context || this);
404
416
  }
405
417
  this._dom = oldDOM;
406
418
 
@@ -452,7 +464,7 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
452
464
  }
453
465
 
454
466
  if (cb) {
455
- cb.call(this);
467
+ cb.call(this._context || this);
456
468
  }
457
469
  this._dom = oldDOM;
458
470
 
@@ -572,7 +584,7 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
572
584
  this._dom = fragment;
573
585
 
574
586
  // Execute callback to build document content
575
- cb.call(this);
587
+ cb.call(this._context || this);
576
588
 
577
589
  // Restore previous state
578
590
  this.root = oldRoot;
@@ -613,7 +625,7 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
613
625
  this._dom = fragment;
614
626
 
615
627
  // Execute callback to build document content
616
- cb.call(this);
628
+ cb.call(this._context || this);
617
629
 
618
630
  // Get the created document from _docs (document() will have pushed it)
619
631
  // or extract from the current DOM state
@@ -66,6 +66,8 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
66
66
  super(cfg);
67
67
  /** @type {any[]|Record<string, unknown>} */
68
68
  this._obj = o || [];
69
+ /** @type {any} */
70
+ this._context = undefined;
69
71
  /** @type {boolean | undefined} */
70
72
  this._objPropState = undefined;
71
73
  /** @type {boolean | undefined} */
@@ -89,6 +91,16 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
89
91
  /** @type {any[]} */ (this._obj).push(item);
90
92
  }
91
93
 
94
+ /**
95
+ * Set the transformer context for callback invocations.
96
+ * @param {any} context - The transformer context object
97
+ * @returns {JSONJoiningTransformer}
98
+ */
99
+ setContext (context) {
100
+ this._context = context;
101
+ return this;
102
+ }
103
+
92
104
  /**
93
105
  * Appends an item to the current object or array.
94
106
  * @param {any} item - Item to append
@@ -460,7 +472,7 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
460
472
  if (cb) {
461
473
  // Push current state onto a stack
462
474
  this._elementStack.push({attsObj, jmlChildren});
463
- cb.call(this);
475
+ cb.call(this._context || this);
464
476
  const state = /** @type {ElementInfo} */ (this._elementStack.pop());
465
477
  ({attsObj} = state);
466
478
  // Children may have been mutated by nested element()/text();
@@ -686,7 +698,7 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
686
698
  this._elementStack = [];
687
699
 
688
700
  // Execute callback to build document content
689
- cb.call(this);
701
+ cb.call(this._context || this);
690
702
 
691
703
  // Restore previous state
692
704
  this.root = oldRoot;
@@ -727,7 +739,7 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
727
739
  this._elementStack = [];
728
740
 
729
741
  // Execute callback to build document content
730
- cb.call(this);
742
+ cb.call(this._context || this);
731
743
 
732
744
  // Get the created document from _docs or construct from current state
733
745
  let resultDoc;
@@ -91,6 +91,10 @@ class JSONPathTransformerContext {
91
91
  this._contextObj = this._origObj = config.data;
92
92
  this._parent = config.parent || this._config;
93
93
  this._parentProperty = config.parentProperty || 'data';
94
+ // Set this context on the joining transformer for callback invocations
95
+ if (config.joiningTransformer && config.joiningTransformer.setContext) {
96
+ config.joiningTransformer.setContext(this);
97
+ }
94
98
  /** @type {Record<string, unknown>} */
95
99
  this.vars = {};
96
100
  /** @type {Record<string, Record<string, unknown>>} */
@@ -105,6 +109,10 @@ class JSONPathTransformerContext {
105
109
  this._currPath = undefined;
106
110
  /** @type {Record<string, any> | undefined} */
107
111
  this._params = undefined;
112
+ /** @type {string[]} */
113
+ this._preserveSpaceElements = [];
114
+ /** @type {string[]} */
115
+ this._stripSpaceElements = [];
108
116
  }
109
117
 
110
118
  /**
@@ -120,6 +128,24 @@ class JSONPathTransformerContext {
120
128
  }
121
129
  }
122
130
 
131
+ /**
132
+ * Check if whitespace should be stripped for a given element name.
133
+ * @param {string} elementName - The element name to check
134
+ * @returns {boolean}
135
+ */
136
+ _shouldStripSpace (elementName) {
137
+ // Check if in preserve list (takes precedence)
138
+ if (this._preserveSpaceElements.some((pattern) => {
139
+ return pattern === '*' || pattern === elementName;
140
+ })) {
141
+ return false;
142
+ }
143
+ // Check if in strip list
144
+ return this._stripSpaceElements.some((pattern) => {
145
+ return pattern === '*' || pattern === elementName;
146
+ });
147
+ }
148
+
123
149
  /**
124
150
  * Gets the joining transformer from config.
125
151
  * @returns {T extends "json" ? import('./JSONJoiningTransformer.js').
@@ -1664,6 +1690,30 @@ class JSONPathTransformerContext {
1664
1690
  return this.propValue(prop, val);
1665
1691
  }
1666
1692
 
1693
+ /**
1694
+ * Declare elements for which whitespace-only text nodes should be preserved.
1695
+ * Equivalent to xsl:preserve-space.
1696
+ * @param {string|string[]} elements - Element name(s) or patterns
1697
+ * @returns {this}
1698
+ */
1699
+ preserveSpace (elements) {
1700
+ const elemArray = Array.isArray(elements) ? elements : [elements];
1701
+ this._preserveSpaceElements.push(...elemArray);
1702
+ return this;
1703
+ }
1704
+
1705
+ /**
1706
+ * Declare elements for which whitespace-only text nodes should be stripped.
1707
+ * Equivalent to xsl:strip-space.
1708
+ * @param {string|string[]} elements - Element name(s) or patterns
1709
+ * @returns {this}
1710
+ */
1711
+ stripSpace (elements) {
1712
+ const elemArray = Array.isArray(elements) ? elements : [elements];
1713
+ this._stripSpaceElements.push(...elemArray);
1714
+ return this;
1715
+ }
1716
+
1667
1717
  /**
1668
1718
  * Build an object. Mirrors the joining transformer API. All joiners now
1669
1719
  * support both signatures: (obj, cb, usePropertySets, propSets) with seed
@@ -1785,12 +1835,18 @@ class JSONPathTransformerContext {
1785
1835
  * transformer API so templates can call `this.attribute()`.
1786
1836
  * @param {string} name - Attribute name
1787
1837
  * @param {string|Record<string, unknown>} val - Attribute value
1838
+ * @param {boolean} [avoid] - Avoid attribute escaping
1839
+ * (StringJoiningTransformer only)
1788
1840
  * @returns {this}
1789
1841
  */
1790
- attribute (name, val) {
1791
- /** @type {any} */ (this._getJoiningTransformer()).attribute(
1792
- name, val
1793
- );
1842
+ attribute (name, val, avoid) {
1843
+ const jt = this._getJoiningTransformer();
1844
+ // Only StringJoiningTransformer supports the third parameter
1845
+ if (typeof avoid !== 'undefined') {
1846
+ /** @type {any} */ (jt).attribute(name, val, avoid);
1847
+ } else {
1848
+ /** @type {any} */ (jt).attribute(name, val);
1849
+ }
1794
1850
  return this;
1795
1851
  }
1796
1852
 
@@ -94,6 +94,8 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
94
94
 
95
95
  this._str = s || '';
96
96
  /** @type {any} */
97
+ this._context = undefined;
98
+ /** @type {any} */
97
99
  this._objPropTemp = undefined;
98
100
  /** @type {boolean | undefined} */
99
101
  this.propOnlyState = undefined;
@@ -117,6 +119,16 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
117
119
  this._resultDocuments = [];
118
120
  }
119
121
 
122
+ /**
123
+ * Set the transformer context for callback invocations.
124
+ * @param {any} context - The transformer context object
125
+ * @returns {StringJoiningTransformer}
126
+ */
127
+ setContext (context) {
128
+ this._context = context;
129
+ return this;
130
+ }
131
+
120
132
  /**
121
133
  * @param {string|any} s - String or value to append
122
134
  * @returns {StringJoiningTransformer}
@@ -203,7 +215,7 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
203
215
  /** @type {any} */
204
216
  const oldPropTemp = this._objPropTemp;
205
217
  this._objPropTemp = prop;
206
- cb.call(this);
218
+ cb.call(this._context || this);
207
219
  this._objPropTemp = oldPropTemp;
208
220
  if (this.propOnlyState) {
209
221
  throw new Error('propOnly() must be followed up with setting a value.');
@@ -248,7 +260,7 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
248
260
 
249
261
  if (cb) {
250
262
  this._objPropState = true;
251
- cb.call(this);
263
+ cb.call(this._context || this);
252
264
  this._objPropState = oldObjPropState;
253
265
  }
254
266
 
@@ -305,7 +317,7 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
305
317
  const oldObjPropState = this._objPropState;
306
318
  this._objPropState = false;
307
319
  this._arrItemState = true;
308
- cb.call(this);
320
+ cb.call(this._context || this);
309
321
  this._arrItemState = oldArrItemState;
310
322
  this._objPropState = oldObjPropState;
311
323
  }
@@ -349,7 +361,8 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
349
361
  const _oldStrTemp = this._strTemp;
350
362
  if (cb) {
351
363
  this._strTemp = '';
352
- cb.call(this);
364
+ /* c8 ignore next -- Guard */
365
+ cb.call(this._context || this);
353
366
  tmpStr = this._strTemp;
354
367
  this._strTemp = _oldStrTemp;
355
368
  }
@@ -595,7 +608,7 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
595
608
  jml[method]({'#': childNodes})
596
609
  ));
597
610
  }
598
- cb.call(this);
611
+ cb.call(this._context || this);
599
612
 
600
613
  // Todo: Depending on an this._cfg.xmlElements option, allow for
601
614
  // XML self-closing when empty or as per the tag, HTML
@@ -787,7 +800,7 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
787
800
  this._insideDocument = true;
788
801
 
789
802
  // Execute callback to build document content
790
- cb.call(this);
803
+ cb.call(this._context || this);
791
804
 
792
805
  // Save the newly created document string
793
806
  const newDoc = this._str;
@@ -840,7 +853,7 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
840
853
  this._insideDocument = true;
841
854
 
842
855
  // Execute callback to build document content
843
- cb.call(this);
856
+ cb.call(this._context || this);
844
857
 
845
858
  // Save the newly created document string with metadata
846
859
  const resultDoc = this._str;
@@ -42,6 +42,10 @@ class XPathTransformerContext {
42
42
  this._contextNode = this._origNode = /** @type {Document|Element|Node} */ (
43
43
  config.data
44
44
  );
45
+ // Set this context on the joining transformer for callback invocations
46
+ if (config.joiningTransformer && config.joiningTransformer.setContext) {
47
+ config.joiningTransformer.setContext(this);
48
+ }
45
49
  /** @type {Record<string, unknown>} */
46
50
  this.vars = {};
47
51
  /** @type {Record<string, Record<string, unknown>>} */
@@ -59,6 +63,10 @@ class XPathTransformerContext {
59
63
  this._currPath = undefined; // XPath string of current context
60
64
  /** @type {Record<string, any> | undefined} */
61
65
  this._params = undefined;
66
+ /** @type {string[]} */
67
+ this._preserveSpaceElements = [];
68
+ /** @type {string[]} */
69
+ this._stripSpaceElements = [];
62
70
  }
63
71
 
64
72
  /** @returns {import('./index.js').JoiningTransformer} */
@@ -66,6 +74,92 @@ class XPathTransformerContext {
66
74
  return this._config.joiningTransformer;
67
75
  }
68
76
 
77
+ /**
78
+ * Check if whitespace should be stripped for a given element.
79
+ * @param {Node} node - The node to check
80
+ * @returns {boolean}
81
+ */
82
+ _shouldStripSpace (node) {
83
+ if (node.nodeType !== 1) {
84
+ return false; // Only elements
85
+ }
86
+ const elementName = /** @type {Element} */ (node).localName;
87
+ // Check if in preserve list (takes precedence)
88
+ if (this._preserveSpaceElements.some((pattern) => {
89
+ return pattern === '*' || pattern === elementName;
90
+ })) {
91
+ return false;
92
+ }
93
+ // Check if in strip list
94
+ return this._stripSpaceElements.some((pattern) => {
95
+ return pattern === '*' || pattern === elementName;
96
+ });
97
+ }
98
+
99
+ /**
100
+ * Clone the DOM and strip whitespace-only text nodes from elements
101
+ * marked for stripping.
102
+ * @param {Node} node - The node to clone
103
+ * @returns {Node} The cloned node with whitespace stripped
104
+ */
105
+ _cloneAndStripWhitespace (node) {
106
+ // Deep clone the node
107
+ const cloned = node.cloneNode(true);
108
+
109
+ // Only process if we have strip-space declarations
110
+ if (this._stripSpaceElements.length === 0) {
111
+ return cloned;
112
+ }
113
+
114
+ // Recursively strip whitespace-only text nodes
115
+ const stripWhitespace = (/** @type {Node} */ n) => {
116
+ if (n.nodeType === 1) { // Element node
117
+ if (this._shouldStripSpace(n)) {
118
+ // Remove whitespace-only text node children
119
+ const childNodes = [...n.childNodes];
120
+ for (const child of childNodes) {
121
+ if (child.nodeType === 3) { // Text node
122
+ /* c8 ignore next 2 -- Branch inside loop already tested by
123
+ integration tests; c8 artifact */
124
+ const text = child.nodeValue || '';
125
+ // Check if text is whitespace-only
126
+ if (text.trim() === '') {
127
+ child.remove();
128
+ }
129
+ }
130
+ }
131
+ }
132
+ // Recurse into child elements
133
+ const children = [...n.childNodes];
134
+ for (const child of children) {
135
+ stripWhitespace(child);
136
+ }
137
+ } else if (n.nodeType === 9) { // Document node
138
+ // Process document's children (typically documentElement)
139
+ const children = [...n.childNodes];
140
+ for (const child of children) {
141
+ stripWhitespace(child);
142
+ }
143
+ }
144
+ };
145
+
146
+ stripWhitespace(cloned);
147
+ return cloned;
148
+ }
149
+
150
+ /**
151
+ * Apply whitespace stripping to the context node based on strip-space
152
+ * declarations. This clones the DOM and updates the context.
153
+ * @returns {this}
154
+ */
155
+ applyWhitespaceStripping () {
156
+ if (this._stripSpaceElements.length > 0) {
157
+ const stripped = this._cloneAndStripWhitespace(this._origNode);
158
+ this._contextNode = stripped;
159
+ }
160
+ return this;
161
+ }
162
+
69
163
  /**
70
164
  * Evaluate an XPath expression against the current context node.
71
165
  * @param {string} expr - XPath expression
@@ -76,12 +170,16 @@ class XPathTransformerContext {
76
170
  if (!expr) {
77
171
  return this._contextNode;
78
172
  }
173
+
174
+ // Ensure we're using the stripped DOM if strip-space is declared
175
+ const contextNode = this._contextNode;
176
+
79
177
  const version = this._config.xpathVersion ?? 1;
80
178
  if (version === 1) {
81
179
  // Use native XPath (browser-like); rely on DOM doc if available.
82
- const doc = this._contextNode && this._contextNode.ownerDocument
83
- ? this._contextNode.ownerDocument
84
- : (this._contextNode.nodeType === 9 ? this._contextNode : undefined);
180
+ const doc = contextNode && contextNode.ownerDocument
181
+ ? contextNode.ownerDocument
182
+ : (contextNode.nodeType === 9 ? contextNode : undefined);
85
183
  if (!doc || doc.nodeType !== 9) {
86
184
  throw new Error(
87
185
  'Native XPath unavailable for xpathVersion=1'
@@ -105,7 +203,7 @@ class XPathTransformerContext {
105
203
  );
106
204
  /* c8 ignore stop */
107
205
  const resultObj = docTyped.evaluate(
108
- expr, this._contextNode, resolver, type, null
206
+ expr, contextNode, resolver, type, null
109
207
  );
110
208
  if (asNodes) {
111
209
  /** @type {Node[]} */
@@ -150,7 +248,7 @@ class XPathTransformerContext {
150
248
  }
151
249
  if (version === 2) {
152
250
  // Version 2: xpath2.js
153
- const result = xpath2.evaluate(expr, this._contextNode);
251
+ const result = xpath2.evaluate(expr, contextNode);
154
252
  if (asNodes) {
155
253
  // eslint-disable-next-line @stylistic/max-len -- Long
156
254
  /* c8 ignore next -- array wrap/identity branch counted in other tests */
@@ -163,7 +261,7 @@ class XPathTransformerContext {
163
261
  // eslint-disable-next-line @stylistic/max-len -- Long
164
262
  // eslint-disable-next-line import/no-named-as-default-member -- Only as default
165
263
  const result = fontoxpath.evaluateXPath(
166
- expr, this._contextNode, undefined, undefined,
264
+ expr, contextNode, undefined, undefined,
167
265
  // Non-deprecated, predictable all results
168
266
  14 // ReturnType.ALL_RESULTS
169
267
  );
@@ -1242,6 +1340,34 @@ class XPathTransformerContext {
1242
1340
  mapEntry (prop, val) {
1243
1341
  return this.propValue(prop, val);
1244
1342
  }
1343
+ /**
1344
+ * Declare elements for which whitespace-only text nodes should be preserved.
1345
+ * Equivalent to xsl:preserve-space.
1346
+ * @param {string|string[]} elements - Element name(s) or patterns
1347
+ * @returns {XPathTransformerContext}
1348
+ */
1349
+ preserveSpace (elements) {
1350
+ const elemArray = Array.isArray(elements) ? elements : [elements];
1351
+ this._preserveSpaceElements.push(...elemArray);
1352
+ return this;
1353
+ }
1354
+ /**
1355
+ * Declare elements for which whitespace-only text nodes should be stripped.
1356
+ * Equivalent to xsl:strip-space.
1357
+ * This automatically clones the DOM and removes whitespace-only text nodes.
1358
+ * @param {string|string[]} elements - Element name(s) or patterns
1359
+ * @returns {XPathTransformerContext}
1360
+ */
1361
+ stripSpace (elements) {
1362
+ const elemArray = Array.isArray(elements) ? elements : [elements];
1363
+ const wasEmpty = this._stripSpaceElements.length === 0;
1364
+ this._stripSpaceElements.push(...elemArray);
1365
+ // Apply stripping if this is the first strip-space declaration
1366
+ if (wasEmpty && this._stripSpaceElements.length > 0) {
1367
+ this.applyWhitespaceStripping();
1368
+ }
1369
+ return this;
1370
+ }
1245
1371
  /**
1246
1372
  * Append object.
1247
1373
  * @param {Record<string, unknown>|