jtlt 0.9.0 → 0.11.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.
package/CHANGES.md CHANGED
@@ -1,6 +1,14 @@
1
1
  # jtlt CHANGES
2
2
 
3
- ## 0.9.0 (unreleased)
3
+ ## 0.11.0
4
+
5
+ - feat: change `this.function` to `outputFunction` and add new `this.function`
6
+
7
+ ## 0.10.0
8
+
9
+ - feat: add `stylesheet` (and `transform` alias)
10
+
11
+ ## 0.9.0
4
12
 
5
13
  - feat: add `match` as alias to our `path`
6
14
  - feat: `mode()` (`onMultipleMatch`, `warningOnMultipleMatch`,
package/README.md CHANGED
@@ -421,10 +421,8 @@ equivalence with XSLT (to the extent JTLT and JSONPath implement
421
421
  what could possibly be transferred to JSON-based transformations
422
422
  from XSLT):
423
423
 
424
- 1. Although the option is given for throwing errors upon finding
425
- templates of equal priority, the default behavior is to give
426
- preference to the last template (unlike XSLT which makes it an
427
- error by default).
424
+ 1. The method `this.stylesheet()` (or `this.transform()`) is used similarly to XSLT for configuration, but it does not call for including the templates within it as nested content.
425
+ 2. JTLT adds `path` as an alias for `match` on templates.
428
426
 
429
427
  ## To-dos
430
428
 
@@ -121,6 +121,50 @@ declare class AbstractJoiningTransformer<T> {
121
121
  onNoMatch?: "shallow-copy" | "deep-copy" | "fail" | "apply-templates" | "shallow-skip" | "deep-skip" | "text-only-copy";
122
122
  warningOnNoMatch?: boolean;
123
123
  } | undefined;
124
+ /** @type {Set<string>} */
125
+ _excludeResultPrefixes: Set<string>;
126
+ /** @type {Set<string>} */
127
+ _usedNamespacePrefixes: Set<string>;
128
+ /**
129
+ * Pending namespace declarations that may be excluded.
130
+ * @type {Array<{
131
+ * prefix: string,
132
+ * namespaceURI: string,
133
+ * callback: () => void
134
+ * }>}
135
+ */
136
+ _pendingNamespaces: Array<{
137
+ prefix: string;
138
+ namespaceURI: string;
139
+ callback: () => void;
140
+ }>;
141
+ /**
142
+ * Track which prefixes have pending namespace declarations.
143
+ * @type {Map<string, {prefix: string, namespaceURI: string}>}
144
+ */
145
+ _pendingNamespaceMap: Map<string, {
146
+ prefix: string;
147
+ namespaceURI: string;
148
+ }>;
149
+ /**
150
+ * Registered stylesheet functions (similar to xsl:function).
151
+ * Key format: "namespace:localName#arity".
152
+ * @type {Map<string, {
153
+ * name: string,
154
+ * params: Array<{name: string, as?: string}>,
155
+ * body: (...args: any[]) => any,
156
+ * returnType?: string
157
+ * }>}
158
+ */
159
+ _registeredFunctions: Map<string, {
160
+ name: string;
161
+ params: Array<{
162
+ name: string;
163
+ as?: string;
164
+ }>;
165
+ body: (...args: any[]) => any;
166
+ returnType?: string;
167
+ }>;
124
168
  /**
125
169
  * @param {JoiningTransformerConfig<T>} cfg - Configuration object
126
170
  * @returns {void}
@@ -150,6 +194,55 @@ declare class AbstractJoiningTransformer<T> {
150
194
  onNoMatch?: "shallow-copy" | "deep-copy" | "fail" | "apply-templates" | "shallow-skip" | "deep-skip" | "text-only-copy";
151
195
  warningOnNoMatch?: boolean;
152
196
  }): this;
197
+ /**
198
+ * Configure stylesheet behavior (similar to xsl:stylesheet).
199
+ * Unlike xsl:stylesheet, this is a directive method and does not contain
200
+ * nested content.
201
+ * @param {{
202
+ * excludeResultPrefixes?: string[]
203
+ * }} cfg - Stylesheet configuration
204
+ * @returns {this}
205
+ */
206
+ stylesheet(cfg: {
207
+ excludeResultPrefixes?: string[];
208
+ }): this;
209
+ /**
210
+ * Alias for stylesheet() method (XSLT compatibility).
211
+ * @param {{
212
+ * excludeResultPrefixes?: string[]
213
+ * }} cfg - Stylesheet configuration
214
+ * @returns {this}
215
+ */
216
+ transform(cfg: {
217
+ excludeResultPrefixes?: string[];
218
+ }): this;
219
+ /**
220
+ * Register a stylesheet function (similar to xsl:function).
221
+ * Functions must have namespaced names and are invoked positionally.
222
+ * @param {{
223
+ * name: string,
224
+ * params?: Array<{name: string, as?: string}>,
225
+ * as?: string,
226
+ * body: (...args: any[]) => any
227
+ * }} cfg - Function configuration
228
+ * @returns {this}
229
+ */
230
+ function(cfg: {
231
+ name: string;
232
+ params?: Array<{
233
+ name: string;
234
+ as?: string;
235
+ }>;
236
+ as?: string;
237
+ body: (...args: any[]) => any;
238
+ }): this;
239
+ /**
240
+ * Invoke a registered stylesheet function with positional arguments.
241
+ * @param {string} name - Function name (with namespace)
242
+ * @param {any[]} args - Positional arguments
243
+ * @returns {any} Function return value
244
+ */
245
+ invokeFunctionByArity(name: string, args?: any[]): any;
153
246
  /**
154
247
  * @param {string} name
155
248
  * @param {OutputCharacters} outputCharacters
@@ -183,6 +276,19 @@ declare class AbstractJoiningTransformer<T> {
183
276
  * @returns {string}
184
277
  */
185
278
  _replaceNamespaceAliasInElement(elemName: string): string;
279
+ /**
280
+ * Output a pending namespace declaration if it exists.
281
+ * This method should be overridden by subclasses.
282
+ * @param {string} _prefix
283
+ * @returns {void}
284
+ */
285
+ _flushPendingNamespace(_prefix: string): void;
286
+ /**
287
+ * Track attribute name prefix usage.
288
+ * @param {string} attrName
289
+ * @returns {void}
290
+ */
291
+ _trackAttributePrefix(attrName: string): void;
186
292
  /**
187
293
  * @param {string} str
188
294
  * @returns {string}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/AbstractJoiningTransformer.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/AbstractJoiningTransformer.js"],"names":[],"mappings":"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"}
@@ -124,7 +124,7 @@ declare class DOMJoiningTransformer extends AbstractJoiningTransformer<"dom"> {
124
124
  * @param {(...args: any[]) => any} func - Function to stringify
125
125
  * @returns {DOMJoiningTransformer}
126
126
  */
127
- function(func: (...args: any[]) => any): DOMJoiningTransformer;
127
+ outputFunction(func: (...args: any[]) => any): DOMJoiningTransformer;
128
128
  /**
129
129
  * @overload
130
130
  * @param {Element|string} elName
@@ -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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"}
@@ -191,7 +191,7 @@ declare class JSONJoiningTransformer extends AbstractJoiningTransformer<"json">
191
191
  * @param {(...args: any[]) => any} func Function to append.
192
192
  * @returns {JSONJoiningTransformer}
193
193
  */
194
- function(func: (...args: any[]) => any): JSONJoiningTransformer;
194
+ outputFunction(func: (...args: any[]) => any): JSONJoiningTransformer;
195
195
  /**
196
196
  * Build a Jamilih-style element JSON array and append to current container.
197
197
  * Result form: ['tag', {attr: 'val'}, child1, child2, ...]
@@ -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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"}
@@ -547,6 +547,54 @@ declare class JSONPathTransformerContext<T = "json"> {
547
547
  * @returns {this}
548
548
  */
549
549
  namespaceAlias(stylesheetPrefix: string, resultPrefix: string): this;
550
+ /**
551
+ * Configure stylesheet behavior (similar to xsl:stylesheet).
552
+ * Unlike xsl:stylesheet, this is a directive method and does not contain
553
+ * nested content.
554
+ * @param {{
555
+ * excludeResultPrefixes?: string[]
556
+ * }} cfg - Stylesheet configuration
557
+ * @returns {this}
558
+ */
559
+ stylesheet(cfg: {
560
+ excludeResultPrefixes?: string[];
561
+ }): this;
562
+ /**
563
+ * Alias for stylesheet() method (XSLT compatibility).
564
+ * @param {{
565
+ * excludeResultPrefixes?: string[]
566
+ * }} cfg - Stylesheet configuration
567
+ * @returns {this}
568
+ */
569
+ transform(cfg: {
570
+ excludeResultPrefixes?: string[];
571
+ }): this;
572
+ /**
573
+ * Register a stylesheet function (similar to xsl:function).
574
+ * @param {{
575
+ * name: string,
576
+ * params?: Array<{name: string, as?: string}>,
577
+ * as?: string,
578
+ * body: (...args: any[]) => any
579
+ * }} cfg - Function configuration
580
+ * @returns {this}
581
+ */
582
+ function(cfg: {
583
+ name: string;
584
+ params?: Array<{
585
+ name: string;
586
+ as?: string;
587
+ }>;
588
+ as?: string;
589
+ body: (...args: any[]) => any;
590
+ }): this;
591
+ /**
592
+ * Invoke a registered stylesheet function with positional arguments.
593
+ * @param {string} name - Function name (with namespace)
594
+ * @param {any[]} args - Positional arguments
595
+ * @returns {any} Function return value
596
+ */
597
+ invokeFunctionByArity(name: string, args?: any[]): any;
550
598
  /**
551
599
  * Create an element. Mirrors the joining transformer API so templates can
552
600
  * call `this.element()`.
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAoBa,MAAM,GAAC,MAAM,GAAC;IACtB,KAAK,CAAC,EAAE,MAAM,GAAC,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;;;;yBAKS;IACR,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,GAAC,QAAQ,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;;;;6BACS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAC/B,GAAG,EAAE,0BAA0B,KAC5B,MAAM;;;;uBACD,MAAM,GAAG,UAAU,GAAG,cAAc,GAC5C,KAAK,CAAC,MAAM,GAAC,UAAU,CAAC;6CAIf,CAAC;;;;UAED,IAAI,GAAC,OAAO,GAAC,MAAM,GAAC,MAAM,GAAC,MAAM;;;;;;;;;;;;;;;;;wBAKjC,CAAC,SAAS,MAAM,GAAG,OAAO,6BAA6B,EAChE,OAAO,GAAG,CAAC,SAAS,QAAQ,GAAG,OAAO,+BAA+B,EACrE,OAAO,GAAG,OAAO,4BAA4B,EAC7C,OAAO;;;;;;;;;0CAGS,MAAM,KAAK,MAAM;;;AA3DtC;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;GAQG;AACH,yCAFc,CAAC;IAQb;;;;OAIG;IACH,oBAJW,gCAAgC,CAAC,CAAC,CAAC,aACnC,OAAO,YAAY,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,EA+B1D;IAtCD;;;OAGG;IACH,gBAFU;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAEzB;IAOb,6CAAqB;IACrB,6DAA2B;IAC3B,uDAA8C;IAA3B,oDAA2B;IAC9C,gBAA4C;IAC5C,wBAAsD;IAKtD,sCAAsC;IACtC,MADW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACpB;IACd,sDAAsD;IACtD,cADW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAC5B;IACtB,2DAA2D;IAC3D,MADW,MAAM,CAAC,MAAM,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,CAAC,CACzC;IACd,mDAAmD;IACnD,gBADW,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CACvB;IACxB,kCAAkC;IAClC,cADW,OAAO,GAAG,SAAS,CACD;IAC7B,iCAAiC;IACjC,WADW,MAAM,GAAG,SAAS,CACH;IAC1B,8CAA8C;IAC9C,SADW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAClB;IACxB,uBAAuB;IACvB,wBADW,MAAM,EAAE,CACa;IAChC,uBAAuB;IACvB,qBADW,MAAM,EAAE,CACU;IAG/B;;;OAGG;IACH,8BAFa,IAAI,CAShB;IAED;;;;OAIG;IACH,+BAHW,MAAM,GACJ,OAAO,CAanB;IAED;;;;;;OAMG;IACH,0BALa,CAAC,SAAS,MAAM,GAAG,OAAO,6BAA6B,EAC/D,OAAO,GAAG,CAAC,SAAS,QAAQ,GAAG,OAAO,+BAA+B,EACrE,OAAO,GAAG,OAAO,4BAA4B,EAC7C,OAAO,CAIX;IAED;;;OAGG;IACH,mBAHW,MAAM,GAAG,IAAI,GACX,IAAI,CAKhB;IAED;;;OAGG;IACH,aAFa,GAAG,CAIf;IAED;;;;;;;OAOG;IACH,YAJW,MAAM,QACN,OAAO,GACL,GAAG,CAWf;IAED;;;OAGG;IACH,OAHW,GAAG,GACD,IAAI,CAOhB;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,wBAPW,MAAM,GAAC,IAAI,GACrB;QAAK,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,SAE1B,MAAM,SACN,QAAQ,GACN,IAAI,CA4WhB;IAED;;;;;;OAMG;IACH,mBANW,MAAM,GAChB;QAAK,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAA;KAAC,eAE3B,GAAG,EAAE,GACH,IAAI,CAgDhB;IAED;;;;;;;;;;OAUG;IACH,gBAPW,MAAM,MACN,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,EAC1C,KAAK,EAAE,GAAG,KACP,IAAI,SACD,QAAQ,GACN,IAAI,CAgIhB;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,qBAfW,MAAM,WAEd;QAAyB,OAAO;QACP,aAAa;QAEb,iBAAiB;QAEjB,eAAe;QAElB,IAAI,GAAlB,GAAG;KACX,MAAQ,CACN,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,KAClE,IAAI,GACC,IAAI,CA6NhB;IAED;;;;;;OAMG;IACH,yBA8EC;IAED;;;OAGG;IACH,gBAFa,GAAG,EAAE,GAAC,SAAS,CAI3B;IAED;;;OAGG;IACH,sBAFa,GAAG,CAIf;IAED;;;OAGG;IACH,iBAHW,MAAM,GAAC,MAAM,GACX,IAAI,CAgHhB;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,mBAjBW,MAAM,SACN,MAAM,GAAC,MAAM,YACb;QACN,iBAAiB,CAAC,EAAE,CAClB,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,EACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EAAE,EAChB,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,KAC9B,IAAI,CAAC;QACV,oBAAoB,CAAC,EAAE,CACrB,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,EACnC,SAAS,EAAE,MAAM,KACd,IAAI,CAAC;QACV,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,GACS,IAAI,CAuHhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GACJ,IAAI,CA2ChB;IAED;;;;OAIG;IACH,oBAHW,MAAM,EAAE,GACN,IAAI,CAsBhB;IAED;;;;OAIG;IACH,eAJW,MAAM,UACN,MAAM,GACJ,IAAI,CAKhB;IAED;;;OAGG;IAEH,cAJW,OAAO,GACL,IAAI,CAMhB;IAED;;;;;;OAMG;IACH,YANW,MAAM,OACN,OAAO,6BAA6B,EAC1C,cAAc,CAAC,CAAC,CAAC,GAET,IAAI,CAKhB;IAED;;;;;OAKG;IACH,YAJW,WAAW,GAET,IAAI,CAiHhB;IAED;;;;OAIG;IACH,0BAHW,MAAM,GACJ,MAAM,CA8BlB;IAED;;;;;;;;;OASG;IACH,mBARW,MAAM,UACN,MAAM,sBACN,MAAM,iBACN,MAAM,sBACN,MAAM,WACN,MAAM,GACJ,MAAM,CA6FlB;IAED;;;;;OAKG;IAEH,iBAkBC;IAED;;;;;;OAMG;IAEH,sBAeC;IAED;;;;;;OAMG;IACH,eAHW,MAAM,GACJ,IAAI,CAKhB;IAED;;;;;;OAMG;IACH,gBAJW,MAAM,OACN,GAAG,GACD,IAAI,CAKhB;IAED;;;;;OAKG;IACH,eAJW,MAAM,OACN,GAAG,GACD,IAAI,CAIhB;IAED;;;;;OAKG;IACH,wBAHW,MAAM,GAAC,MAAM,EAAE,GACb,IAAI,CAMhB;IAED;;;;;OAKG;IACH,qBAHW,MAAM,GAAC,MAAM,EAAE,GACb,IAAI,CAMhB;IAED;;;;;;OAMG;IACH,gBAHc,GAAG,EAAA,GACJ,IAAI,CAKhB;IAED;;;;OAIG;IACH,aAHc,GAAG,EAAA,GACJ,IAAI,CAIhB;IAED;;;;;OAKG;IACH,eAHc,GAAG,EAAA,GACJ,IAAI,CAKhB;IAED;;;;OAIG;IACH,YAHW,OAAO,+BAA+B,EAAE,YAAY,GAClD,IAAI,CAKhB;IAED;;;;;;;;;;OAUG;IACH,UATW;QACN,eAAe,CAAC,EAAE,UAAU,GAAC,MAAM,CAAC;QACpC,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,SAAS,CAAC,EAAE,cAAc,GAAC,WAAW,GAAC,MAAM,GAAC,iBAAiB,GACnE,cAAoB,GAAC,WAAW,GAAC,gBAAgB,CAAC;QAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAC3B,GACS,IAAI,CAKhB;IAED;;;;;OAKG;IACH,mBALW,MAAM,oBACN,OAAO,iCAAiC,EAC9C,gBAAgB,GACR,IAAI,CAKhB;IAED;;;;OAIG;IACH,mBAJW,MAAM,cACN,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpB,IAAI,CAKhB;IAED;;;;OAIG;IACH,iCAJW,MAAM,gBACN,MAAM,GACJ,IAAI,CAOhB;IAED;;;;;;;;OAQG;IACH,gBALW;QACN,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAA;KACjC,GACS,IAAI,CAKhB;IAED;;;;;;OAMG;IACH,eALW;QACN,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAA;KACjC,GACS,IAAI,CAIhB;IAED;;;;;;;;;OASG;IACH,cARW;QACN,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,KAAK,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,EAAE,CAAC,EAAE,MAAM,CAAA;SAAC,CAAC,CAAC;QAC5C,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;KAC9B,GACS,IAAI,CAKhB;IAED;;;;;OAKG;IACH,4BAJW,MAAM,SACN,GAAG,EAAE,GACH,GAAG,CAIf;IAED;;;;;;;;;;;;;;OAcG;IACH,cAZW,MAAM,SACN,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAC,GAAG,EAAE,GACtC,CAAK,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,aAEzC,GAAG,EAAE,GACf,CAAK,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAEzC,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,KAAK,IAAI,qBAE7C,MAAM,EAAE,GACN,IAAI,CAOhB;IAED;;;;;;;OAOG;IACH,kBAJW,MAAM,gBACN,MAAM,GACJ,IAAI,CAOhB;IAED;;;;;;;;OAQG;IACH,6BALW,MAAM,GAAC,oBAAoB,YAE3B,oBAAoB,GAClB,IAAI,CAWhB;IAED;;;;;;;;OAQG;IACH,gBANW,MAAM,OACN,MAAM,GAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAC9B,OAAO,GAEL,IAAI,CAWhB;IAED;;;;;OAKG;IACH,UAHW,MAAM,GACJ,IAAI,CAKhB;IAED;;;;;OAKG;IACH,cAHW,MAAM,GACJ,IAAI,CAOhB;IAED;;;;;;;OAOG;IACH,8BAJW,MAAM,QACN,MAAM,GACJ,IAAI,CAOhB;IAED;;;;;OAKG;IACH,kBALW,MAAM,kBACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,oBACvB,GAAG,EAAE,GACH,IAAI,CAchB;IAED;;;;OAIG;IACH,sBAJW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QACvB,MAAM,GACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAInC;IAED;;;;OAIG;IACH,aAJW,MAAM,SACN,GAAG,GACD,GAAG,CAYf;IAED;;;;;OAKG;IACH,UALW,MAAM,SACN,MAAM,OACN,MAAM,GACJ,IAAI,CAKhB;IAED;;;;;;;;;;;;;;;OAeG;IACH,WALW,MAAM,MACN,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,KACvC,IAAI,GACC,IAAI,CAQhB;IAED;;;;;;OAMG;IACH,kBAHW,MAAM,GACJ,OAAO,CAyBnB;IAED;;;;;;;;;OASG;IACH,eAPW,MAAM,UACN,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,KACvC,IAAI,gBACD,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,KACvC,IAAI,GACC,IAAI,CAYhB;IAED;;;;;;;;OAQG;IACH,aALW,MAAM,YACN,MAAM,GACJ,IAAI,CAYhB;CACF"}
@@ -189,7 +189,7 @@ declare class StringJoiningTransformer extends AbstractJoiningTransformer<"strin
189
189
  * @param {((...args: any[]) => any)|Element} func - Function to stringify
190
190
  * @returns {StringJoiningTransformer}
191
191
  */
192
- function(func: ((...args: any[]) => any) | Element): StringJoiningTransformer;
192
+ outputFunction(func: ((...args: any[]) => any) | Element): StringJoiningTransformer;
193
193
  /**
194
194
  * @param {string|Element} elem - Element name or element object
195
195
  * @param {ElementAttributes} [atts] - Element attributes
@@ -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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"}
@@ -442,6 +442,54 @@ declare class XPathTransformerContext {
442
442
  * @returns {this}
443
443
  */
444
444
  namespaceAlias(stylesheetPrefix: string, resultPrefix: string): this;
445
+ /**
446
+ * Configure stylesheet behavior (similar to xsl:stylesheet).
447
+ * Unlike xsl:stylesheet, this is a directive method and does not contain
448
+ * nested content.
449
+ * @param {{
450
+ * excludeResultPrefixes?: string[]
451
+ * }} cfg - Stylesheet configuration
452
+ * @returns {this}
453
+ */
454
+ stylesheet(cfg: {
455
+ excludeResultPrefixes?: string[];
456
+ }): this;
457
+ /**
458
+ * Alias for stylesheet() method (XSLT compatibility).
459
+ * @param {{
460
+ * excludeResultPrefixes?: string[]
461
+ * }} cfg - Stylesheet configuration
462
+ * @returns {this}
463
+ */
464
+ transform(cfg: {
465
+ excludeResultPrefixes?: string[];
466
+ }): this;
467
+ /**
468
+ * Register a stylesheet function (similar to xsl:function).
469
+ * @param {{
470
+ * name: string,
471
+ * params?: Array<{name: string, as?: string}>,
472
+ * as?: string,
473
+ * body: (...args: any[]) => any
474
+ * }} cfg - Function configuration
475
+ * @returns {this}
476
+ */
477
+ function(cfg: {
478
+ name: string;
479
+ params?: Array<{
480
+ name: string;
481
+ as?: string;
482
+ }>;
483
+ as?: string;
484
+ body: (...args: any[]) => any;
485
+ }): this;
486
+ /**
487
+ * Invoke a registered stylesheet function with positional arguments.
488
+ * @param {string} name - Function name (with namespace)
489
+ * @param {any[]} args - Positional arguments
490
+ * @returns {any} Function return value
491
+ */
492
+ invokeFunctionByArity(name: string, args?: any[]): any;
445
493
  /**
446
494
  * Append element.
447
495
  * @param {string} name Tag 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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"}
package/docs/TO-DO.md CHANGED
@@ -100,7 +100,6 @@
100
100
  xsl:expose
101
101
  "xsl:fallback",
102
102
  xsl:fork
103
- "xsl:function",
104
103
  xsl:global-context-item
105
104
  "xsl:import",
106
105
  "xsl:import-schema",
@@ -117,7 +116,6 @@
117
116
  xsl:on-non-empty
118
117
  xsl:override
119
118
  xsl:package
120
- "xsl:param",
121
119
  "xsl:perform-sort",
122
120
  "xsl:sequence",
123
121
  xsl:source-document
@@ -141,6 +139,7 @@
141
139
  ~~"xsl:element",~~
142
140
  ~~"xsl:for-each",~~
143
141
  ~~"xsl:for-each-group",~~
142
+ ~~"xsl:function",~~
144
143
  ~~"xsl:if",~~
145
144
  ~~"xsl:key",~~
146
145
  ~~xsl:map~~
@@ -155,6 +154,7 @@
155
154
  ~~"xsl:otherwise",~~
156
155
  ~~"xsl:output",~~
157
156
  ~~"xsl:output-character",~~
157
+ ~~"xsl:param",~~
158
158
  ~~"xsl:preserve-space",~~
159
159
  ~~"xsl:processing-instruction",~~
160
160
  ~~"xsl:result-document",~~
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jtlt",
3
- "version": "0.9.0",
3
+ "version": "0.11.0",
4
4
  "type": "module",
5
5
  "author": "Brett Zamir",
6
6
  "contributors": [],
@@ -88,6 +88,40 @@ class AbstractJoiningTransformer {
88
88
  * }|undefined}
89
89
  */
90
90
  this._modeConfig = undefined;
91
+
92
+ /** @type {Set<string>} */
93
+ this._excludeResultPrefixes = new Set();
94
+
95
+ /** @type {Set<string>} */
96
+ this._usedNamespacePrefixes = new Set();
97
+
98
+ /**
99
+ * Pending namespace declarations that may be excluded.
100
+ * @type {Array<{
101
+ * prefix: string,
102
+ * namespaceURI: string,
103
+ * callback: () => void
104
+ * }>}
105
+ */
106
+ this._pendingNamespaces = [];
107
+
108
+ /**
109
+ * Track which prefixes have pending namespace declarations.
110
+ * @type {Map<string, {prefix: string, namespaceURI: string}>}
111
+ */
112
+ this._pendingNamespaceMap = new Map();
113
+
114
+ /**
115
+ * Registered stylesheet functions (similar to xsl:function).
116
+ * Key format: "namespace:localName#arity".
117
+ * @type {Map<string, {
118
+ * name: string,
119
+ * params: Array<{name: string, as?: string}>,
120
+ * body: (...args: any[]) => any,
121
+ * returnType?: string
122
+ * }>}
123
+ */
124
+ this._registeredFunctions = new Map();
91
125
  }
92
126
 
93
127
  /**
@@ -128,6 +162,101 @@ class AbstractJoiningTransformer {
128
162
  return this;
129
163
  }
130
164
 
165
+ /**
166
+ * Configure stylesheet behavior (similar to xsl:stylesheet).
167
+ * Unlike xsl:stylesheet, this is a directive method and does not contain
168
+ * nested content.
169
+ * @param {{
170
+ * excludeResultPrefixes?: string[]
171
+ * }} cfg - Stylesheet configuration
172
+ * @returns {this}
173
+ */
174
+ stylesheet (cfg) {
175
+ if (cfg.excludeResultPrefixes) {
176
+ for (const prefix of cfg.excludeResultPrefixes) {
177
+ // Normalize empty string to internal #default representation
178
+ this._excludeResultPrefixes.add(prefix === '' ? '#default' : prefix);
179
+ }
180
+ }
181
+ return this;
182
+ }
183
+
184
+ /**
185
+ * Alias for stylesheet() method (XSLT compatibility).
186
+ * @param {{
187
+ * excludeResultPrefixes?: string[]
188
+ * }} cfg - Stylesheet configuration
189
+ * @returns {this}
190
+ */
191
+ transform (cfg) {
192
+ return this.stylesheet(cfg);
193
+ }
194
+
195
+ /**
196
+ * Register a stylesheet function (similar to xsl:function).
197
+ * Functions must have namespaced names and are invoked positionally.
198
+ * @param {{
199
+ * name: string,
200
+ * params?: Array<{name: string, as?: string}>,
201
+ * as?: string,
202
+ * body: (...args: any[]) => any
203
+ * }} cfg - Function configuration
204
+ * @returns {this}
205
+ */
206
+ function (cfg) {
207
+ const {name, params = [], as: returnType, body} = cfg;
208
+
209
+ // Validate name has namespace
210
+ if (!name.includes(':') && !name.startsWith('Q{')) {
211
+ throw new Error(
212
+ `Function name "${name}" must be in a namespace ` +
213
+ `(use prefix:name or Q{uri}name)`
214
+ );
215
+ }
216
+
217
+ // Create function key with arity
218
+ const arity = params.length;
219
+ const functionKey = `${name}#${arity}`;
220
+
221
+ // Check for duplicates
222
+ if (this._registeredFunctions.has(functionKey)) {
223
+ throw new Error(
224
+ `Function "${name}" with arity ${arity} is already registered`
225
+ );
226
+ }
227
+
228
+ // Store function definition
229
+ this._registeredFunctions.set(functionKey, {
230
+ name,
231
+ params,
232
+ body,
233
+ returnType
234
+ });
235
+
236
+ return this;
237
+ }
238
+
239
+ /**
240
+ * Invoke a registered stylesheet function with positional arguments.
241
+ * @param {string} name - Function name (with namespace)
242
+ * @param {any[]} args - Positional arguments
243
+ * @returns {any} Function return value
244
+ */
245
+ invokeFunctionByArity (name, args = []) {
246
+ const arity = args.length;
247
+ const functionKey = `${name}#${arity}`;
248
+
249
+ const functionDef = this._registeredFunctions.get(functionKey);
250
+ if (!functionDef) {
251
+ throw new Error(
252
+ `Function "${name}" with arity ${arity} not found`
253
+ );
254
+ }
255
+
256
+ // Invoke function body with arguments
257
+ return functionDef.body(...args);
258
+ }
259
+
131
260
  /**
132
261
  * @param {string} name
133
262
  * @param {OutputCharacters} outputCharacters
@@ -198,6 +327,12 @@ class AbstractJoiningTransformer {
198
327
  const prefix = colonIdx === -1 ? '#default' : elemName.slice(0, colonIdx);
199
328
  const alias = this._getNamespaceAlias(prefix);
200
329
 
330
+ // Track that this prefix (after aliasing) is actually used
331
+ this._usedNamespacePrefixes.add(alias);
332
+
333
+ // If this prefix was buffered, output it now
334
+ this._flushPendingNamespace(alias);
335
+
201
336
  if (colonIdx === -1) {
202
337
  if (alias === '#default') {
203
338
  return elemName;
@@ -211,6 +346,34 @@ class AbstractJoiningTransformer {
211
346
  ) + elemName.slice(colonIdx + 1);
212
347
  }
213
348
 
349
+ /**
350
+ * Output a pending namespace declaration if it exists.
351
+ * This method should be overridden by subclasses.
352
+ * @param {string} _prefix
353
+ * @returns {void}
354
+ */
355
+ // eslint-disable-next-line class-methods-use-this -- Abstract
356
+ _flushPendingNamespace (_prefix) {
357
+ // Default implementation does nothing - subclasses override
358
+ // Using _prefix to indicate unused parameter
359
+ }
360
+
361
+ /**
362
+ * Track attribute name prefix usage.
363
+ * @param {string} attrName
364
+ * @returns {void}
365
+ */
366
+ _trackAttributePrefix (attrName) {
367
+ const colonIdx = attrName.indexOf(':');
368
+ if (colonIdx !== -1 && !attrName.startsWith('xmlns')) {
369
+ const prefix = attrName.slice(0, colonIdx);
370
+ this._usedNamespacePrefixes.add(prefix);
371
+
372
+ // If this prefix was buffered, output it now
373
+ this._flushPendingNamespace(prefix);
374
+ }
375
+ }
376
+
214
377
  /**
215
378
  * @param {string} str
216
379
  * @returns {string}
@@ -218,10 +218,10 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
218
218
  * @param {(...args: any[]) => any} func - Function to stringify
219
219
  * @returns {DOMJoiningTransformer}
220
220
  */
221
- function (func) {
221
+ outputFunction (func) {
222
222
  if (this._cfg.mode !== 'JavaScript') {
223
223
  throw new Error(
224
- 'function is not allowed unless added in JavaScript mode'
224
+ 'outputFunction is not allowed unless added in JavaScript mode'
225
225
  );
226
226
  }
227
227
  this.append(func.toString());
@@ -479,7 +479,24 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
479
479
  * @returns {DOMJoiningTransformer}
480
480
  */
481
481
  namespace (prefix, namespaceURI) {
482
- const alias = this._getNamespaceAlias(prefix);
482
+ let alias = this._getNamespaceAlias(prefix);
483
+
484
+ // Normalize empty string or undefined/null to #default
485
+ if (!alias) {
486
+ alias = '#default';
487
+ }
488
+ const normalizedPrefix = alias;
489
+
490
+ // If this prefix is excluded, buffer it instead of outputting immediately
491
+ if (this._excludeResultPrefixes.has(normalizedPrefix)) {
492
+ this._pendingNamespaceMap.set(normalizedPrefix, {
493
+ prefix: alias,
494
+ namespaceURI
495
+ });
496
+ return this;
497
+ }
498
+
499
+ // Not excluded, output immediately
483
500
  /** @type {Element} */
484
501
  (this._dom).setAttributeNS(
485
502
  'http://www.w3.org/2000/xmlns/',
@@ -489,6 +506,23 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
489
506
  return this;
490
507
  }
491
508
 
509
+ /**
510
+ * @param {string} prefix
511
+ * @returns {void}
512
+ * @override
513
+ */
514
+ _flushPendingNamespace (prefix) {
515
+ const pending = this._pendingNamespaceMap.get(prefix);
516
+ if (pending) {
517
+ /** @type {Element} */
518
+ (this._dom).setAttributeNS(
519
+ 'http://www.w3.org/2000/xmlns/',
520
+ pending.prefix === '#default' ? 'xmlns' : 'xmlns:' + pending.prefix,
521
+ this._replaceCharacterMaps(pending.namespaceURI)
522
+ );
523
+ this._pendingNamespaceMap.delete(prefix);
524
+ }
525
+ }
492
526
  /**
493
527
  * @param {string} name
494
528
  * @param {string} val
@@ -499,6 +533,10 @@ class DOMJoiningTransformer extends AbstractJoiningTransformer {
499
533
  this._dom.nodeType !== 1) {
500
534
  throw new Error('You may only set an attribute on an element');
501
535
  }
536
+
537
+ // Track attribute prefix usage for namespace exclusion
538
+ this._trackAttributePrefix(name);
539
+
502
540
  (/** @type {Element} */ (this._dom)).setAttribute(
503
541
  this._replaceNamespaceAliasInNamespaceDeclaration(name),
504
542
  this._replaceCharacterMaps(val)
@@ -357,10 +357,10 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
357
357
  * @param {(...args: any[]) => any} func Function to append.
358
358
  * @returns {JSONJoiningTransformer}
359
359
  */
360
- function (func) {
360
+ outputFunction (func) {
361
361
  if (this._cfg.mode !== 'JavaScript') {
362
362
  throw new Error(
363
- 'function is not allowed unless added in JavaScript mode'
363
+ 'outputFunction is not allowed unless added in JavaScript mode'
364
364
  );
365
365
  }
366
366
  this.append(func);
@@ -551,6 +551,25 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
551
551
  // No-op outside an element() callback (JSON joiner semantics)
552
552
  return this;
553
553
  }
554
+
555
+ let alias = this._getNamespaceAlias(prefix);
556
+
557
+ // Normalize empty string or undefined/null to #default
558
+ if (!alias) {
559
+ alias = '#default';
560
+ }
561
+ const normalizedPrefix = alias;
562
+
563
+ // If this prefix is excluded, buffer it instead of outputting immediately
564
+ if (this._excludeResultPrefixes.has(normalizedPrefix)) {
565
+ this._pendingNamespaceMap.set(normalizedPrefix, {
566
+ prefix: alias,
567
+ namespaceURI
568
+ });
569
+ return this;
570
+ }
571
+
572
+ // Not excluded, output immediately
554
573
  const top = /** @type {ElementInfo} */ (this._elementStack.at(-1));
555
574
  const {attsObj} = top;
556
575
 
@@ -558,7 +577,6 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
558
577
  attsObj.xmlns = {};
559
578
  }
560
579
 
561
- const alias = this._getNamespaceAlias(prefix);
562
580
  /** @type {Record<string, string>} */
563
581
  (attsObj.xmlns)[alias === '#default' ? '' : alias] =
564
582
  this._replaceCharacterMaps(namespaceURI);
@@ -566,6 +584,32 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
566
584
  return this;
567
585
  }
568
586
 
587
+ /**
588
+ * @param {string} prefix
589
+ * @returns {void}
590
+ * @override
591
+ */
592
+ _flushPendingNamespace (prefix) {
593
+ if (!this._elementStack.length) {
594
+ return;
595
+ }
596
+
597
+ const pending = this._pendingNamespaceMap.get(prefix);
598
+ if (pending) {
599
+ const top = /** @type {ElementInfo} */ (this._elementStack.at(-1));
600
+ const {attsObj} = top;
601
+
602
+ if (!attsObj.xmlns) {
603
+ attsObj.xmlns = {};
604
+ }
605
+
606
+ /** @type {Record<string, string>} */
607
+ (attsObj.xmlns)[pending.prefix === '#default' ? '' : pending.prefix] =
608
+ this._replaceCharacterMaps(pending.namespaceURI);
609
+
610
+ this._pendingNamespaceMap.delete(prefix);
611
+ }
612
+ }
569
613
  /**
570
614
  * Adds/updates an attribute for the most recently open element built via
571
615
  * a callback-driven element(). When not in an element callback context,
@@ -599,11 +643,18 @@ class JSONJoiningTransformer extends AbstractJoiningTransformer {
599
643
  if (name === '$a' && Array.isArray(val)) {
600
644
  val.forEach((pair) => {
601
645
  if (Array.isArray(pair) && pair.length > 1) {
602
- attsObj[String(pair[0])] = this._replaceCharacterMaps(pair[1]);
646
+ const attrName = String(pair[0]);
647
+ // Track each ordered attribute
648
+ this._trackAttributePrefix(attrName);
649
+ attsObj[attrName] = this._replaceCharacterMaps(pair[1]);
603
650
  }
604
651
  });
605
652
  return this;
606
653
  }
654
+
655
+ // Track attribute prefix usage for namespace exclusion
656
+ this._trackAttributePrefix(name);
657
+
607
658
  attsObj[this._replaceNamespaceAliasInNamespaceDeclaration(name)] =
608
659
  this._replaceCharacterMaps(/** @type {string} */ (val));
609
660
  return this;
@@ -1139,6 +1139,46 @@ class JSONPathTransformerContext {
1139
1139
  ? /** @type {{select?: string}} */ (select).select
1140
1140
  : select;
1141
1141
 
1142
+ // Check for custom stylesheet function calls (namespace:name(...))
1143
+ if (selectStr && (/^[^:]+:[^\(]+\(/v).test(selectStr)) {
1144
+ const match = (/^(?<name>[^:]+:[^\(]+)\((?<args>.*)\)$/v).exec(
1145
+ selectStr
1146
+ );
1147
+ if (match && match.groups) {
1148
+ const {name, args: argsStr} = match.groups;
1149
+ // Parse arguments - simple comma-separated values
1150
+ const args = argsStr
1151
+ ? argsStr.split(',').map((arg) => {
1152
+ const trimmed = arg.trim();
1153
+ // Check if it's a parameter reference ($param, not $.jsonpath)
1154
+ if (trimmed.startsWith('$') && !trimmed.startsWith('$.')) {
1155
+ const paramName = trimmed.slice(1);
1156
+ return this._params && paramName in this._params
1157
+ ? this._params[paramName]
1158
+ : undefined;
1159
+ }
1160
+ // Check if it's a string literal
1161
+ if ((trimmed.startsWith("'") && trimmed.endsWith("'")) ||
1162
+ (trimmed.startsWith('"') && trimmed.endsWith('"'))) {
1163
+ return trimmed.slice(1, -1);
1164
+ }
1165
+ // Try to parse as number
1166
+ const num = Number(trimmed);
1167
+ if (!Number.isNaN(num)) {
1168
+ return num;
1169
+ }
1170
+ // Otherwise evaluate as JSONPath
1171
+ return this.get(trimmed, false);
1172
+ })
1173
+ : [];
1174
+
1175
+ // Call the function via invokeFunctionByArity
1176
+ result = this.invokeFunctionByArity(name, args);
1177
+ /** @type {any} */ (results).text(String(result));
1178
+ return this;
1179
+ }
1180
+ }
1181
+
1142
1182
  // Check for format-number() function call
1143
1183
  if (selectStr && selectStr.includes('format-number(')) {
1144
1184
  const match = (/format-number\((?<value>[^,\)]+)(?:,\s*["'](?<format>[^"']+)["'])?(?:,\s*["'](?<decimalFormat>[^"']*)["'])?\)/v).exec(selectStr);
@@ -1902,6 +1942,56 @@ class JSONPathTransformerContext {
1902
1942
  return this;
1903
1943
  }
1904
1944
 
1945
+ /**
1946
+ * Configure stylesheet behavior (similar to xsl:stylesheet).
1947
+ * Unlike xsl:stylesheet, this is a directive method and does not contain
1948
+ * nested content.
1949
+ * @param {{
1950
+ * excludeResultPrefixes?: string[]
1951
+ * }} cfg - Stylesheet configuration
1952
+ * @returns {this}
1953
+ */
1954
+ stylesheet (cfg) {
1955
+ this._getJoiningTransformer().stylesheet(cfg);
1956
+ return this;
1957
+ }
1958
+
1959
+ /**
1960
+ * Alias for stylesheet() method (XSLT compatibility).
1961
+ * @param {{
1962
+ * excludeResultPrefixes?: string[]
1963
+ * }} cfg - Stylesheet configuration
1964
+ * @returns {this}
1965
+ */
1966
+ transform (cfg) {
1967
+ return this.stylesheet(cfg);
1968
+ }
1969
+
1970
+ /**
1971
+ * Register a stylesheet function (similar to xsl:function).
1972
+ * @param {{
1973
+ * name: string,
1974
+ * params?: Array<{name: string, as?: string}>,
1975
+ * as?: string,
1976
+ * body: (...args: any[]) => any
1977
+ * }} cfg - Function configuration
1978
+ * @returns {this}
1979
+ */
1980
+ function (cfg) {
1981
+ /** @type {any} */ (this._getJoiningTransformer()).function(cfg);
1982
+ return this;
1983
+ }
1984
+
1985
+ /**
1986
+ * Invoke a registered stylesheet function with positional arguments.
1987
+ * @param {string} name - Function name (with namespace)
1988
+ * @param {any[]} args - Positional arguments
1989
+ * @returns {any} Function return value
1990
+ */
1991
+ invokeFunctionByArity (name, args = []) {
1992
+ return this._getJoiningTransformer().invokeFunctionByArity(name, args);
1993
+ }
1994
+
1905
1995
  /**
1906
1996
  * Create an element. Mirrors the joining transformer API so templates can
1907
1997
  * call `this.element()`.
@@ -454,11 +454,11 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
454
454
  * @param {((...args: any[]) => any)|Element} func - Function to stringify
455
455
  * @returns {StringJoiningTransformer}
456
456
  */
457
- function (func) {
457
+ outputFunction (func) {
458
458
  // Appends function source (only in JavaScript mode).
459
459
  if (this._cfg.mode !== 'JavaScript') {
460
460
  throw new Error(
461
- 'function is not allowed unless added in JavaScript mode'
461
+ 'outputFunction is not allowed unless added in JavaScript mode'
462
462
  );
463
463
  }
464
464
  if (_isElement(func)) {
@@ -633,7 +633,24 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
633
633
  * @returns {StringJoiningTransformer}
634
634
  */
635
635
  namespace (prefix, namespaceURI) {
636
- const alias = this._getNamespaceAlias(prefix);
636
+ let alias = this._getNamespaceAlias(prefix);
637
+
638
+ // Normalize empty string or undefined/null to #default
639
+ if (!alias) {
640
+ alias = '#default';
641
+ }
642
+ const normalizedPrefix = alias;
643
+
644
+ // If this prefix is excluded, buffer it instead of outputting immediately
645
+ if (this._excludeResultPrefixes.has(normalizedPrefix)) {
646
+ this._pendingNamespaceMap.set(normalizedPrefix, {
647
+ prefix: alias,
648
+ namespaceURI
649
+ });
650
+ return this;
651
+ }
652
+
653
+ // Not excluded, output immediately
637
654
  this.append(' ' + (
638
655
  alias === '#default' ? 'xmlns' : 'xmlns:' + alias
639
656
  ) + '="' +
@@ -641,6 +658,22 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
641
658
  return this;
642
659
  }
643
660
 
661
+ /**
662
+ * @param {string} prefix
663
+ * @returns {void}
664
+ * @override
665
+ */
666
+ _flushPendingNamespace (prefix) {
667
+ const pending = this._pendingNamespaceMap.get(prefix);
668
+ if (pending) {
669
+ this.append(' ' + (
670
+ pending.prefix === '#default' ? 'xmlns' : 'xmlns:' + pending.prefix
671
+ ) + '="' +
672
+ this._replaceCharacterMaps(pending.namespaceURI) + '"');
673
+ this._pendingNamespaceMap.delete(prefix);
674
+ }
675
+ }
676
+
644
677
  /**
645
678
  * @param {string} name - Attribute name
646
679
  * @param {string|Record<string, unknown>|
@@ -703,6 +736,10 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
703
736
  val = (this._cfg.preEscapedAttributes || avoidAttEscape)
704
737
  ? valStr
705
738
  : valStr.replaceAll('&', '&amp;').replaceAll('"', '&quot;');
739
+
740
+ // Track attribute prefix usage for namespace exclusion
741
+ this._trackAttributePrefix(name);
742
+
706
743
  this.append(
707
744
  ' ' + this._replaceNamespaceAliasInNamespaceDeclaration(name) + '="' +
708
745
  this._replaceCharacterMaps(val) + '"'
@@ -877,6 +877,107 @@ class XPathTransformerContext {
877
877
  ? /** @type {{select?: string}} */ (select).select
878
878
  : select;
879
879
 
880
+ // Check if select is a custom function call: prefix:name(...)
881
+ // Try to parse and invoke registered function
882
+ if (selectStr && (/^[^:]+:[^\(]+\(/v).test(selectStr)) {
883
+ try {
884
+ // Extract function name and arguments
885
+ const match = (/^(?<func>[^:]+:[^\(]+)\((?<args>.*)\)$/sv).exec(
886
+ selectStr.trim()
887
+ );
888
+ if (match?.groups) {
889
+ const funcName = match.groups.func;
890
+ const argsStr = match.groups.args;
891
+
892
+ // Parse arguments - supports $params, 'strings', numbers, XPath
893
+ const args = [];
894
+ if (argsStr.trim()) {
895
+ // Simple argument parser
896
+ let current = '';
897
+ let inString = false;
898
+ let stringChar = null;
899
+ let depth = 0;
900
+
901
+ for (let i = 0; i < argsStr.length; i++) {
902
+ const char = argsStr[i];
903
+ if (!inString) {
904
+ switch (char) {
905
+ case '"':
906
+ case "'":
907
+ inString = true;
908
+ stringChar = char;
909
+ current += char;
910
+ break;
911
+ case '(':
912
+ case '[':
913
+ depth++;
914
+ current += char;
915
+ break;
916
+ case ')':
917
+ case ']':
918
+ depth--;
919
+ current += char;
920
+ break;
921
+ case ',':
922
+ if (depth === 0) {
923
+ args.push(current.trim());
924
+ current = '';
925
+ } else {
926
+ current += char;
927
+ }
928
+ break;
929
+ default:
930
+ current += char;
931
+ }
932
+ } else {
933
+ current += char;
934
+ if (char === stringChar && argsStr[i - 1] !== '\\') {
935
+ inString = false;
936
+ stringChar = null;
937
+ }
938
+ }
939
+ }
940
+ if (current.trim()) {
941
+ args.push(current.trim());
942
+ }
943
+ }
944
+
945
+ // Evaluate each argument
946
+ const evaluatedArgs = args.map((arg) => {
947
+ // String literal
948
+ if ((/^["'].*["']$/v).test(arg)) {
949
+ return arg.slice(1, -1);
950
+ }
951
+ // Number
952
+ if ((/^-?\d+(?:\.\d+)?$/v).test(arg)) {
953
+ return Number(arg);
954
+ }
955
+ // Parameter reference
956
+ if (arg.startsWith('$')) {
957
+ const paramName = arg.slice(1);
958
+ return this._params && paramName in this._params
959
+ ? this._params[paramName]
960
+ : undefined;
961
+ }
962
+ // XPath expression - evaluate it
963
+ return this._evalXPath(arg, false);
964
+ });
965
+
966
+ // Invoke the function
967
+ const result = jt.invokeFunctionByArity(funcName, evaluatedArgs);
968
+
969
+ // Append result to output
970
+ jt.append(result);
971
+ return this;
972
+ }
973
+ /* c8 ignore start -- Error handler for malformed function calls */
974
+ } catch (err) {
975
+ // Fall through to normal XPath evaluation
976
+ // This allows fontoxpath registered functions to work natively
977
+ }
978
+ /* c8 ignore stop */
979
+ }
980
+
880
981
  // Check for format-number() function call
881
982
  if (selectStr && selectStr.includes('format-number(')) {
882
983
  const match = (/format-number\((?<value>[^,\)]+)(?:,\s*["'](?<format>[^"']+)["'])?(?:,\s*["'](?<decimalFormat>[^"']*)["'])?\)/v).exec(selectStr);
@@ -1599,6 +1700,100 @@ class XPathTransformerContext {
1599
1700
  return this;
1600
1701
  }
1601
1702
 
1703
+ /**
1704
+ * Configure stylesheet behavior (similar to xsl:stylesheet).
1705
+ * Unlike xsl:stylesheet, this is a directive method and does not contain
1706
+ * nested content.
1707
+ * @param {{
1708
+ * excludeResultPrefixes?: string[]
1709
+ * }} cfg - Stylesheet configuration
1710
+ * @returns {this}
1711
+ */
1712
+ stylesheet (cfg) {
1713
+ this._getJoiningTransformer().stylesheet(cfg);
1714
+ return this;
1715
+ }
1716
+
1717
+ /**
1718
+ * Alias for stylesheet() method (XSLT compatibility).
1719
+ * @param {{
1720
+ * excludeResultPrefixes?: string[]
1721
+ * }} cfg - Stylesheet configuration
1722
+ * @returns {this}
1723
+ */
1724
+ transform (cfg) {
1725
+ return this.stylesheet(cfg);
1726
+ }
1727
+
1728
+ /**
1729
+ * Register a stylesheet function (similar to xsl:function).
1730
+ * @param {{
1731
+ * name: string,
1732
+ * params?: Array<{name: string, as?: string}>,
1733
+ * as?: string,
1734
+ * body: (...args: any[]) => any
1735
+ * }} cfg - Function configuration
1736
+ * @returns {this}
1737
+ */
1738
+ function (cfg) {
1739
+ const {name, params = [], as: returnType, body} = cfg;
1740
+ /** @type {any} */ (this._getJoiningTransformer()).function(cfg);
1741
+
1742
+ // Register with fontoxpath for native XPath 3.1 support
1743
+ const version = this._config.xpathVersion ?? 1;
1744
+ if (version === 3.1) {
1745
+ try {
1746
+ // Parse namespace from name
1747
+ let namespaceURI, localName;
1748
+ if (name.startsWith('Q{')) {
1749
+ // Q{uri}name format - extract manually
1750
+ const closeBrace = name.indexOf('}', 2);
1751
+ if (closeBrace > 2) {
1752
+ namespaceURI = name.slice(2, closeBrace);
1753
+ localName = name.slice(closeBrace + 1);
1754
+ }
1755
+ } else if (name.includes(':')) {
1756
+ // prefix:name format - use prefix as pseudo-namespace
1757
+ // (caller should use proper namespace resolver in XPath)
1758
+ const parts = name.split(':');
1759
+ namespaceURI = `urn:${parts[0]}`;
1760
+ localName = parts[1];
1761
+ }
1762
+
1763
+ if (namespaceURI && localName) {
1764
+ // Map XSLT type names to XPath type names for signature
1765
+ const signature = params.map((p) => p.as || 'item()*');
1766
+ const returnTypeStr = returnType || 'item()*';
1767
+
1768
+ // eslint-disable-next-line import/no-named-as-default-member -- OK
1769
+ fontoxpath.registerCustomXPathFunction(
1770
+ {namespaceURI, localName},
1771
+ signature,
1772
+ returnTypeStr,
1773
+ (dynamicContext, ...args) => body(...args)
1774
+ );
1775
+ }
1776
+ /* c8 ignore start -- Error handler for fontoxpath failures */
1777
+ } catch (err) {
1778
+ // Ignore fontoxpath registration errors (e.g., if duplicate)
1779
+ // Function still available via invokeFunctionByArity
1780
+ }
1781
+ /* c8 ignore stop */
1782
+ }
1783
+
1784
+ return this;
1785
+ }
1786
+
1787
+ /**
1788
+ * Invoke a registered stylesheet function with positional arguments.
1789
+ * @param {string} name - Function name (with namespace)
1790
+ * @param {any[]} args - Positional arguments
1791
+ * @returns {any} Function return value
1792
+ */
1793
+ invokeFunctionByArity (name, args = []) {
1794
+ return this._getJoiningTransformer().invokeFunctionByArity(name, args);
1795
+ }
1796
+
1602
1797
  /**
1603
1798
  * Append element.
1604
1799
  * @param {string} name Tag name