jtlt 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGES.md +9 -0
  2. package/demo/index.css +4 -0
  3. package/demo/index.html +4 -4
  4. package/demo/index.js +6 -2
  5. package/demo/vendor/fontoxpath/dist/fontoxpath.esm.js +600 -0
  6. package/demo/vendor/prsc/dist/prsc.esm.js +2 -0
  7. package/demo/vendor/whynot/dist/whynot.esm.js +2 -0
  8. package/demo/vendor/xspattern/dist/xspattern.esm.js +2 -0
  9. package/dist/AbstractJoiningTransformer.d.ts +27 -0
  10. package/dist/AbstractJoiningTransformer.d.ts.map +1 -1
  11. package/dist/DOMJoiningTransformer.d.ts +60 -8
  12. package/dist/DOMJoiningTransformer.d.ts.map +1 -1
  13. package/dist/JSONJoiningTransformer.d.ts +8 -9
  14. package/dist/JSONJoiningTransformer.d.ts.map +1 -1
  15. package/dist/JSONPathTransformer.d.ts.map +1 -1
  16. package/dist/JSONPathTransformerContext.d.ts +137 -2
  17. package/dist/JSONPathTransformerContext.d.ts.map +1 -1
  18. package/dist/StringJoiningTransformer.d.ts +7 -7
  19. package/dist/StringJoiningTransformer.d.ts.map +1 -1
  20. package/dist/XPathTransformer.d.ts.map +1 -1
  21. package/dist/XPathTransformerContext.d.ts +69 -0
  22. package/dist/XPathTransformerContext.d.ts.map +1 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/docs/TO-DO.md +8 -6
  25. package/package.json +6 -2
  26. package/src/AbstractJoiningTransformer.js +42 -0
  27. package/src/DOMJoiningTransformer.js +115 -23
  28. package/src/JSONJoiningTransformer.js +50 -26
  29. package/src/JSONPathTransformer.js +2 -0
  30. package/src/JSONPathTransformerContext.js +520 -7
  31. package/src/StringJoiningTransformer.js +25 -21
  32. package/src/XPathTransformer.js +2 -0
  33. package/src/XPathTransformerContext.js +426 -8
  34. package/src/index.js +7 -1
@@ -98,6 +98,11 @@ declare class XPathTransformerContext {
98
98
  match: string;
99
99
  use: string;
100
100
  }>;
101
+ /**
102
+ * @type {Record<string,
103
+ * import('./JSONPathTransformerContext.js').DecimalFormatSymbols>}
104
+ */
105
+ decimalFormats: Record<string, import("./JSONPathTransformerContext.js").DecimalFormatSymbols>;
101
106
  /** @type {boolean|undefined} */
102
107
  _initialized: boolean | undefined;
103
108
  /** @type {string|undefined} */
@@ -162,6 +167,39 @@ declare class XPathTransformerContext {
162
167
  * @returns {XPathTransformerContext}
163
168
  */
164
169
  forEach(select: string, cb: (this: XPathTransformerContext, node: Node) => void): XPathTransformerContext;
170
+ /**
171
+ * Groups items and executes callback for each group.
172
+ * Equivalent to XSLT's xsl:for-each-group.
173
+ * @param {string} select - XPath selector for items to group
174
+ * @param {object} options - Grouping options
175
+ * @param {string} [options.groupBy] - XPath expression to group by value
176
+ * @param {string} [options.groupAdjacent] - Groups adjacent items with
177
+ * same value
178
+ * @param {string} [options.groupStartingWith] - Starts new group when
179
+ * expression matches
180
+ * @param {string} [options.groupEndingWith] - Ends group when expression
181
+ * matches
182
+ * @param {(
183
+ * this: XPathTransformerContext, key: any, items: Node[], ctx: any
184
+ * ) => void} cb - Callback receives (groupingKey, groupItems, context)
185
+ * @returns {this}
186
+ */
187
+ forEachGroup(select: string, options: {
188
+ groupBy?: string | undefined;
189
+ groupAdjacent?: string | undefined;
190
+ groupStartingWith?: string | undefined;
191
+ groupEndingWith?: string | undefined;
192
+ }, cb: (this: XPathTransformerContext, key: any, items: Node[], ctx: any) => void): this;
193
+ /**
194
+ * Returns the current group (for use within forEachGroup callback).
195
+ * @returns {Node[]|undefined}
196
+ */
197
+ currentGroup(): Node[] | undefined;
198
+ /**
199
+ * Returns the current grouping key (for use within forEachGroup callback).
200
+ * @returns {any}
201
+ */
202
+ currentGroupingKey(): any;
165
203
  /**
166
204
  * Append the value from an XPath expression or the context node text.
167
205
  * @param {string|object} [select]
@@ -210,6 +248,7 @@ declare class XPathTransformerContext {
210
248
  * level?: 'single'|'multiple'|'any',
211
249
  * from?: string,
212
250
  * format?: string,
251
+ * decimalFormat?: string,
213
252
  * groupingSeparator?: string,
214
253
  * groupingSize?: number
215
254
  * }} num - Number value, "position()" string, or options object
@@ -221,6 +260,7 @@ declare class XPathTransformerContext {
221
260
  level?: "single" | "multiple" | "any";
222
261
  from?: string;
223
262
  format?: string;
263
+ decimalFormat?: string;
224
264
  groupingSeparator?: string;
225
265
  groupingSize?: number;
226
266
  }): XPathTransformerContext;
@@ -246,6 +286,7 @@ declare class XPathTransformerContext {
246
286
  * @param {string} format - Format string (1, a, A, i, I, 01, etc.)
247
287
  * @param {string} [groupingSeparator] - Separator for grouping (e.g., ',')
248
288
  * @param {number} [groupingSize] - Size of groups (e.g., 3 for 1,000)
289
+ * @param {string} [decimalFormatName] - Named decimal format to use
249
290
  * @param {string} [locale]
250
291
  * @returns {string}
251
292
  * @private
@@ -307,6 +348,13 @@ declare class XPathTransformerContext {
307
348
  * @returns {XPathTransformerContext}
308
349
  */
309
350
  output(cfg: import("./StringJoiningTransformer.js").OutputConfig): XPathTransformerContext;
351
+ /**
352
+ * @param {string} name
353
+ * @param {import('./AbstractJoiningTransformer.js').
354
+ * OutputCharacters} outputCharacters
355
+ * @returns {this}
356
+ */
357
+ characterMap(name: string, outputCharacters: import("./AbstractJoiningTransformer.js").OutputCharacters): this;
310
358
  /**
311
359
  * Append element.
312
360
  * @param {string} name Tag name
@@ -318,6 +366,27 @@ declare class XPathTransformerContext {
318
366
  * @returns {XPathTransformerContext}
319
367
  */
320
368
  element(name: string, atts?: Record<string, string> | any[] | ((this: XPathTransformerContext) => void), children?: any[] | ((this: XPathTransformerContext) => void), cb?: (this: XPathTransformerContext) => void): XPathTransformerContext;
369
+ /**
370
+ * Adds a prefixed namespace declaration to the most recently opened
371
+ * element. Mirrors the joining
372
+ * transformer API so templates can call `this.attribute()`.
373
+ * @param {string} prefix - Prefix
374
+ * @param {string} namespaceURI - Namespace
375
+ * @returns {this}
376
+ */
377
+ namespace(prefix: string, namespaceURI: string): this;
378
+ /**
379
+ * Define a decimal format with custom symbols for number formatting.
380
+ * Equivalent to xsl:decimal-format. If no name is provided, defines
381
+ * the default format.
382
+ * @param {string|import('./JSONPathTransformerContext.js').
383
+ * DecimalFormatSymbols} nameOrSymbols - Format name or symbols object
384
+ * if defining default
385
+ * @param {import('./JSONPathTransformerContext.js').
386
+ * DecimalFormatSymbols} [symbols] - Format symbols
387
+ * @returns {this}
388
+ */
389
+ decimalFormat(nameOrSymbols: string | import("./JSONPathTransformerContext.js").DecimalFormatSymbols, symbols?: import("./JSONPathTransformerContext.js").DecimalFormatSymbols): this;
321
390
  /**
322
391
  * Append attribute.
323
392
  * @param {string} name Attribute name
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"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"}
package/docs/TO-DO.md CHANGED
@@ -84,7 +84,9 @@
84
84
 
85
85
  7. See code for other possible to-dos
86
86
 
87
- 8. Consider implementing the following elements from <https://www.w3.org/TR/xslt-30/>
87
+ 8. Promise-based templates
88
+
89
+ 9. Consider implementing the following elements from <https://www.w3.org/TR/xslt-30/>
88
90
  which are not yet implemented.
89
91
 
90
92
  xsl:accept
@@ -99,20 +101,20 @@
99
101
  xsl:break
100
102
  ~~"xsl:call-template",~~
101
103
  xsl:catch
102
- "xsl:character-map",
104
+ ~~"xsl:character-map",~~
103
105
  ~~"xsl:choose",~~
104
106
  ~~"xsl:comment",~~
105
107
  xsl:context-item
106
108
  ~~"xsl:copy",~~
107
109
  ~~"xsl:copy-of",~~
108
- "xsl:decimal-format",
110
+ ~~"xsl:decimal-format",~~
109
111
  ~~"xsl:document",~~
110
112
  ~~"xsl:element",~~
111
113
  xsl:evaluate
112
114
  xsl:expose
113
115
  "xsl:fallback",
114
116
  ~~"xsl:for-each",~~
115
- "xsl:for-each-group",
117
+ ~~"xsl:for-each-group",~~
116
118
  xsl:fork
117
119
  "xsl:function",
118
120
  xsl:global-context-item
@@ -131,7 +133,7 @@
131
133
  xsl:merge-source
132
134
  ~~"xsl:message",~~
133
135
  xsl:mode
134
- "xsl:namespace",
136
+ ~~"xsl:namespace",~~
135
137
  "xsl:namespace-alias",
136
138
  xsl:next-iteration
137
139
  "xsl:next-match",
@@ -142,7 +144,7 @@
142
144
  xsl:on-non-empty
143
145
  ~~"xsl:otherwise",~~
144
146
  ~~"xsl:output",~~
145
- "xsl:output-character",
147
+ ~~"xsl:output-character",~~
146
148
  xsl:override
147
149
  xsl:package
148
150
  "xsl:param",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jtlt",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "author": "Brett Zamir",
6
6
  "contributors": [],
@@ -77,7 +77,11 @@
77
77
  "copy-jhtml": "cp -Rf node_modules/jhtml/src demo/vendor/jhtml",
78
78
  "copy-jamilih": "cp node_modules/jamilih/dist/jml.mjs demo/vendor/jamilih/dist/jml.mjs",
79
79
  "copy-jsonpath-plus": "cp node_modules/jsonpath-plus/dist/index-browser-esm.js demo/vendor/jsonpath-plus/dist/index-browser-esm.js",
80
- "copy": "npm run copy-simple-get-json && npm run copy-jhtml && npm run copy-jamilih && npm run copy-jsonpath-plus",
80
+ "copy-fontoxpath": "cp node_modules/fontoxpath/dist/fontoxpath.esm.js demo/vendor/fontoxpath/dist/fontoxpath.esm.js",
81
+ "copy-xspattern": "cp node_modules/xspattern/dist/xspattern.esm.js demo/vendor/xspattern/dist/xspattern.esm.js",
82
+ "copy-prsc": "cp node_modules/prsc/dist/prsc.esm.js demo/vendor/prsc/dist/prsc.esm.js",
83
+ "copy-whynot": "cp node_modules/whynot/dist/whynot.esm.js demo/vendor/whynot/dist/whynot.esm.js",
84
+ "copy": "pnpm copy-simple-get-json && pnpm copy-jhtml && pnpm copy-jamilih && pnpm copy-jsonpath-plus && pnpm copy-fontoxpath && pnpm copy-xspattern && pnpm copy-prsc && pnpm copy-whynot",
81
85
  "lint": "eslint .",
82
86
  "mocha": "mocha",
83
87
  "test:browser": "open http://localhost:8020/test/browser/ && static -p 8020",
@@ -2,6 +2,10 @@
2
2
  // mid-transformation (e.g., building strings with
3
3
  // string transformer but adding as text node in a DOM transformer)
4
4
 
5
+ /**
6
+ * @typedef {{character: string, string: string}[]} OutputCharacters
7
+ */
8
+
5
9
  /**
6
10
  * @typedef {{
7
11
  * requireSameChildren?: boolean,
@@ -66,6 +70,8 @@ class AbstractJoiningTransformer {
66
70
  constructor (cfg) {
67
71
  // Todo: Might set some reasonable defaults across all classes
68
72
  this._cfg = cfg ?? /** @type {JoiningTransformerConfig<T>} */ ({});
73
+ /** @type {Record<string, OutputCharacters>} */
74
+ this._characterMap = {};
69
75
  }
70
76
 
71
77
  /**
@@ -76,6 +82,42 @@ class AbstractJoiningTransformer {
76
82
  this._cfg = cfg;
77
83
  }
78
84
 
85
+ /**
86
+ * @param {import('./StringJoiningTransformer.js').OutputConfig} cfg
87
+ * @returns {this}
88
+ */
89
+ output (cfg) {
90
+ // We wait until first element is set in `element()` to add
91
+ // XML declaration and DOCTYPE as latter depends on root element
92
+ this._outputConfig = cfg;
93
+
94
+ // Use for file extension if making downloadable?
95
+ this.mediaType = cfg.mediaType;
96
+ return this;
97
+ }
98
+
99
+ /**
100
+ * @param {string} name
101
+ * @param {OutputCharacters} outputCharacters
102
+ * @returns {void}
103
+ */
104
+ characterMap (name, outputCharacters) {
105
+ this._characterMap[name] = outputCharacters;
106
+ }
107
+
108
+ /**
109
+ * @param {string} str
110
+ * @returns {string}
111
+ */
112
+ _replaceCharacterMaps (str) {
113
+ this._outputConfig?.useCharacterMaps?.forEach((name) => {
114
+ this._characterMap[name].forEach(({character, string}) => {
115
+ str = str.replaceAll(character, string);
116
+ });
117
+ });
118
+ return str;
119
+ }
120
+
79
121
  /**
80
122
  * @param {string} type - Type name
81
123
  * @param {string} embedType - Embed type name
@@ -182,31 +182,84 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
182
182
  }
183
183
 
184
184
  /**
185
- * @param {import('./StringJoiningTransformer.js').OutputConfig} cfg
185
+ * @overload
186
+ * @param {Element|string} elName
187
+ * @param {Record<string, string>} atts
188
+ * @param {(Node|string)[]} childNodes
189
+ * @param {(this: DOMJoiningTransformer) => void} cb
190
+ * @returns {DOMJoiningTransformer}
191
+ */
192
+ /**
193
+ * @overload
194
+ * @param {Element|string} elName
195
+ * @param {Record<string, string>} atts
196
+ * @param {(Node|string)[]} childNodes
197
+ * @returns {DOMJoiningTransformer}
198
+ */
199
+ /**
200
+ * @overload
201
+ * @param {Element|string} elName
202
+ * @param {Record<string, string>} atts
203
+ * @param {(this: DOMJoiningTransformer) => void} cb
204
+ * @returns {DOMJoiningTransformer}
205
+ */
206
+ /**
207
+ * @overload
208
+ * @param {Element|string} elName
209
+ * @param {Record<string, string>} atts
210
+ * @returns {DOMJoiningTransformer}
211
+ */
212
+ /**
213
+ * @overload
214
+ * @param {Element|string} elName
215
+ * @param {(Node|string)[]} childNodes
216
+ * @param {(this: DOMJoiningTransformer) => void} cb
217
+ * @returns {DOMJoiningTransformer}
218
+ */
219
+ /**
220
+ * @overload
221
+ * @param {Element|string} elName
222
+ * @param {(Node|string)[]} childNodes
223
+ * @returns {DOMJoiningTransformer}
224
+ */
225
+ /**
226
+ * @overload
227
+ * @param {Element|string} elName
228
+ * @param {(this: DOMJoiningTransformer) => void} cb
229
+ * @returns {DOMJoiningTransformer}
230
+ */
231
+ /**
232
+ * @overload
233
+ * @param {Element|string} elName
186
234
  * @returns {DOMJoiningTransformer}
187
235
  */
188
- output (cfg) {
189
- // We wait until first element is set in `element()` to add
190
- // XML declaration and DOCTYPE as latter depends on root element
191
- this._outputConfig = cfg;
192
-
193
- // Use for file extension if making downloadable?
194
- this.mediaType = cfg.mediaType;
195
- return this;
196
- }
197
-
198
236
  /**
199
237
  * @param {Element|string} elName - Element name
200
- * @param {Record<string, string>} [atts] - Attributes object
201
- * @param {(this: DOMJoiningTransformer) => void} [cb] - Callback function
238
+ * @param {Record<string, string>|(Node|string)[
239
+ * ]|((this: DOMJoiningTransformer) => void)} [atts] - Attributes,
240
+ * childNodes, or callback
241
+ * @param {(Node|string)[]|((this: DOMJoiningTransformer) => void)
242
+ * } [childNodes] - Child nodes or callback
243
+ * @param {(this: DOMJoiningTransformer) => void} [cb] - Callback
202
244
  * @returns {DOMJoiningTransformer}
203
245
  */
204
- element (elName, atts, cb) {
205
- // Todo: allow third argument to be array following Jamilih (also let
206
- // "atts" follow Jamilih)
207
- // Todo: allow for cfg to produce Jamilih DOM output or hXML
208
- // Todo: allow separate XML DOM one with XML String and hXML conversions
209
- // (HTML to XHTML is inevitably safe?)
246
+ element (elName, atts, childNodes, cb) {
247
+ // Handle argument overloading like other transformers
248
+ if (Array.isArray(atts)) {
249
+ cb = /** @type {(this: DOMJoiningTransformer) => void} */ (
250
+ /** @type {unknown} */ (childNodes)
251
+ );
252
+ childNodes = atts;
253
+ atts = {};
254
+ } else if (typeof atts === 'function') {
255
+ cb = /** @type {(this: DOMJoiningTransformer) => void} */ (atts);
256
+ childNodes = [];
257
+ atts = {};
258
+ }
259
+ if (typeof childNodes === 'function') {
260
+ cb = /** @type {(this: DOMJoiningTransformer) => void} */ (childNodes);
261
+ childNodes = [];
262
+ }
210
263
 
211
264
  if (!this.root && this._outputConfig) {
212
265
  this.root = elName;
@@ -277,13 +330,24 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
277
330
 
278
331
  for (const att in atts) {
279
332
  if (Object.hasOwn(atts, att)) {
280
- el.setAttribute(att, atts[att]);
333
+ el.setAttribute(att, this._replaceCharacterMaps(atts[att]));
281
334
  }
282
335
  }
283
336
 
284
337
  const oldDOM = this._dom;
285
338
  this._dom = el;
286
339
 
340
+ // Add childNodes if provided
341
+ if (childNodes && childNodes.length) {
342
+ for (const child of childNodes) {
343
+ if (typeof child === 'string') {
344
+ el.append(this._replaceCharacterMaps(child));
345
+ } else {
346
+ el.append(child);
347
+ }
348
+ }
349
+ }
350
+
287
351
  if (cb) {
288
352
  cb.call(this);
289
353
  }
@@ -301,7 +365,7 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
301
365
 
302
366
  for (const att in atts) {
303
367
  if (Object.hasOwn(atts, att)) {
304
- el.setAttribute(att, atts[att]);
368
+ el.setAttribute(att, this._replaceCharacterMaps(atts[att]));
305
369
  }
306
370
  }
307
371
  this.append(el);
@@ -310,6 +374,17 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
310
374
 
311
375
  this._dom = el;
312
376
 
377
+ // Add childNodes if provided
378
+ if (childNodes && childNodes.length) {
379
+ for (const child of childNodes) {
380
+ if (typeof child === 'string') {
381
+ el.append(this._replaceCharacterMaps(child));
382
+ } else {
383
+ el.append(child);
384
+ }
385
+ }
386
+ }
387
+
313
388
  if (cb) {
314
389
  cb.call(this);
315
390
  }
@@ -318,6 +393,21 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
318
393
  return this;
319
394
  }
320
395
 
396
+ /**
397
+ * @param {string} prefix
398
+ * @param {string} namespaceURI
399
+ * @returns {DOMJoiningTransformer}
400
+ */
401
+ namespace (prefix, namespaceURI) {
402
+ /** @type {Element} */
403
+ (this._dom).setAttributeNS(
404
+ 'http://www.w3.org/2000/xmlns/',
405
+ 'xmlns:' + prefix,
406
+ this._replaceCharacterMaps(namespaceURI)
407
+ );
408
+ return this;
409
+ }
410
+
321
411
  /**
322
412
  * @param {string} name
323
413
  * @param {string} val
@@ -328,7 +418,9 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
328
418
  this._dom.nodeType !== 1) {
329
419
  throw new Error('You may only set an attribute on an element');
330
420
  }
331
- (/** @type {Element} */ (this._dom)).setAttribute(name, val);
421
+ (/** @type {Element} */ (this._dom)).setAttribute(
422
+ name, this._replaceCharacterMaps(val)
423
+ );
332
424
  return this;
333
425
  }
334
426
 
@@ -337,7 +429,7 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
337
429
  * @returns {DOMJoiningTransformer}
338
430
  */
339
431
  text (txt) {
340
- this.append(txt);
432
+ this.append(this._replaceCharacterMaps(txt));
341
433
  return this;
342
434
  }
343
435
 
@@ -36,7 +36,7 @@ function _makeDatasetAttribute (n0) {
36
36
  * plus special helpers: dataset (object) and $a (ordered attribute array).
37
37
  * @typedef {Record<string, unknown> & {
38
38
  * dataset?: Record<string, string>,
39
- * $a?: Array<[string, string]>
39
+ * $a?: [string, string][]
40
40
  * }} ElementAttributes
41
41
  */
42
42
 
@@ -329,20 +329,6 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
329
329
  return this;
330
330
  }
331
331
 
332
- /**
333
- * @param {import('./StringJoiningTransformer.js').OutputConfig} cfg
334
- * @returns {JSONJoiningTransformer}
335
- */
336
- output (cfg) {
337
- // We wait until first element is set in `element()` to add
338
- // XML declaration and DOCTYPE as latter depends on root element
339
- this._outputConfig = cfg;
340
-
341
- // Use for file extension if making downloadable?
342
- this.mediaType = cfg.mediaType;
343
- return this;
344
- }
345
-
346
332
  /**
347
333
  * Build a Jamilih-style element JSON array and append to current container.
348
334
  * Result form: ['tag', {attr: 'val'}, child1, child2, ...]
@@ -401,23 +387,35 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
401
387
  for (const k in ds) {
402
388
  if (Object.hasOwn(ds, k)) {
403
389
  const dashed = k.replaceAll(camelCase, _makeDatasetAttribute);
404
- attsObj['data-' + dashed] = ds[k];
390
+ attsObj['data-' + dashed] = this._replaceCharacterMaps(ds[k]);
405
391
  }
406
392
  }
407
393
  delete attsObj.dataset;
408
394
  }
409
395
  if (Array.isArray(attsObj.$a)) {
410
- (/** @type {unknown[][]} */ (attsObj.$a)).forEach((pair) => {
396
+ attsObj.$a.forEach((pair) => {
411
397
  if (Array.isArray(pair) && pair.length > 1) {
412
- attsObj[String(pair[0])] = pair[1];
398
+ attsObj[String(pair[0])] = this._replaceCharacterMaps(pair[1]);
413
399
  }
414
400
  });
415
401
  delete attsObj.$a;
416
402
  }
417
403
 
404
+ // Apply character maps to all regular attribute values
405
+ for (const key in attsObj) {
406
+ if (Object.hasOwn(attsObj, key) && typeof attsObj[key] === 'string') {
407
+ attsObj[key] = this._replaceCharacterMaps(attsObj[key]);
408
+ }
409
+ }
410
+
418
411
  // If children provided as array, copy (may be primitives or nested JML)
419
412
  if (Array.isArray(childNodes) && childNodes.length) {
420
- jmlChildren.push(...childNodes);
413
+ jmlChildren.push(...childNodes.map((childNode) => {
414
+ if (typeof childNode === 'string') {
415
+ return this._replaceCharacterMaps(childNode);
416
+ }
417
+ return childNode;
418
+ }));
421
419
  }
422
420
 
423
421
  // Callback-driven building (attribute/text/nested element mutate stack)
@@ -435,9 +433,10 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
435
433
  /** @type {any[]} */
436
434
  const jmlEl = [elementName];
437
435
  if (Object.keys(attsObj).length) {
438
- jmlEl.push(attsObj);
436
+ jmlEl.push(attsObj, jmlChildren);
437
+ } else {
438
+ jmlEl.push(jmlChildren);
439
439
  }
440
- jmlEl.push(...jmlChildren);
441
440
 
442
441
  if (isRoot) {
443
442
  // todo: indent, cdataSectionElements
@@ -490,6 +489,29 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
490
489
  return this;
491
490
  }
492
491
 
492
+ /**
493
+ * @param {string} prefix
494
+ * @param {string} namespaceURI
495
+ * @returns {JSONJoiningTransformer}
496
+ */
497
+ namespace (prefix, namespaceURI) {
498
+ if (!this._elementStack.length) {
499
+ // No-op outside an element() callback (JSON joiner semantics)
500
+ return this;
501
+ }
502
+ const top = /** @type {ElementInfo} */ (this._elementStack.at(-1));
503
+ const {attsObj} = top;
504
+
505
+ if (!attsObj.xmlns) {
506
+ attsObj.xmlns = {};
507
+ }
508
+
509
+ /** @type {Record<string, string>} */
510
+ (attsObj.xmlns)[prefix] = this._replaceCharacterMaps(namespaceURI);
511
+
512
+ return this;
513
+ }
514
+
493
515
  /**
494
516
  * Adds/updates an attribute for the most recently open element built via
495
517
  * a callback-driven element(). When not in an element callback context,
@@ -513,20 +535,22 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
513
535
  for (const k in datasetObj) {
514
536
  if (Object.hasOwn(datasetObj, k)) {
515
537
  const dashed = k.replaceAll(camelCase, _makeDatasetAttribute);
516
- attsObj['data-' + dashed] = datasetObj[k];
538
+ attsObj['data-' + dashed] = this._replaceCharacterMaps(
539
+ /** @type {string} */ (datasetObj[k])
540
+ );
517
541
  }
518
542
  }
519
543
  return this;
520
544
  }
521
545
  if (name === '$a' && Array.isArray(val)) {
522
- (/** @type {unknown[][]} */ (val)).forEach((pair) => {
546
+ val.forEach((pair) => {
523
547
  if (Array.isArray(pair) && pair.length > 1) {
524
- attsObj[String(pair[0])] = pair[1];
548
+ attsObj[String(pair[0])] = this._replaceCharacterMaps(pair[1]);
525
549
  }
526
550
  });
527
551
  return this;
528
552
  }
529
- attsObj[name] = val;
553
+ attsObj[name] = this._replaceCharacterMaps(/** @type {string} */ (val));
530
554
  return this;
531
555
  }
532
556
 
@@ -578,7 +602,7 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
578
602
  if (this._elementStack.length) {
579
603
  const top = /** @type {ElementInfo} */ (this._elementStack.at(-1));
580
604
  const {jmlChildren} = top;
581
- jmlChildren.push(['!', txt]);
605
+ jmlChildren.push(this._replaceCharacterMaps(txt));
582
606
  return this;
583
607
  }
584
608
  // No-op outside element context in JSON joiner
@@ -70,6 +70,8 @@ class JSONPathTransformer {
70
70
  if (len > 1) {
71
71
  this._triggerEqualPriorityError();
72
72
  }
73
+ // Set up parameter context for valueOf() access in root template
74
+ jte._params = {0: jte._contextObj};
73
75
  const ret = /** @type {import('./index.js').JSONPathTemplateObject<T>} */ (
74
76
  templateObj
75
77
  ).template.call(jte, undefined, {mode});