jtlt 0.10.0 → 0.12.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 +8 -0
- package/dist/AbstractJoiningTransformer.d.ts +50 -0
- package/dist/AbstractJoiningTransformer.d.ts.map +1 -1
- package/dist/DOMJoiningTransformer.d.ts +1 -1
- package/dist/DOMJoiningTransformer.d.ts.map +1 -1
- package/dist/JSONJoiningTransformer.d.ts +1 -1
- package/dist/JSONJoiningTransformer.d.ts.map +1 -1
- package/dist/JSONPathTransformerContext.d.ts +28 -0
- package/dist/JSONPathTransformerContext.d.ts.map +1 -1
- package/dist/StringJoiningTransformer.d.ts +1 -1
- package/dist/StringJoiningTransformer.d.ts.map +1 -1
- package/dist/XPathTransformerContext.d.ts +28 -0
- package/dist/XPathTransformerContext.d.ts.map +1 -1
- package/docs/TO-DO.md +2 -2
- package/package.json +1 -1
- package/src/AbstractJoiningTransformer.js +102 -0
- package/src/DOMJoiningTransformer.js +2 -2
- package/src/JSONJoiningTransformer.js +2 -2
- package/src/JSONPathTransformerContext.js +112 -0
- package/src/StringJoiningTransformer.js +2 -2
- package/src/XPathTransformerContext.js +293 -1
package/CHANGES.md
CHANGED
|
@@ -146,6 +146,27 @@ declare class AbstractJoiningTransformer<T> {
|
|
|
146
146
|
prefix: string;
|
|
147
147
|
namespaceURI: string;
|
|
148
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
|
+
* sequence?: string,
|
|
157
|
+
* returnType?: string
|
|
158
|
+
* }>}
|
|
159
|
+
*/
|
|
160
|
+
_registeredFunctions: Map<string, {
|
|
161
|
+
name: string;
|
|
162
|
+
params: Array<{
|
|
163
|
+
name: string;
|
|
164
|
+
as?: string;
|
|
165
|
+
}>;
|
|
166
|
+
body?: (...args: any[]) => any;
|
|
167
|
+
sequence?: string;
|
|
168
|
+
returnType?: string;
|
|
169
|
+
}>;
|
|
149
170
|
/**
|
|
150
171
|
* @param {JoiningTransformerConfig<T>} cfg - Configuration object
|
|
151
172
|
* @returns {void}
|
|
@@ -197,6 +218,35 @@ declare class AbstractJoiningTransformer<T> {
|
|
|
197
218
|
transform(cfg: {
|
|
198
219
|
excludeResultPrefixes?: string[];
|
|
199
220
|
}): this;
|
|
221
|
+
/**
|
|
222
|
+
* Register a stylesheet function (similar to xsl:function).
|
|
223
|
+
* Functions must have namespaced names and are invoked positionally.
|
|
224
|
+
* @param {{
|
|
225
|
+
* name: string,
|
|
226
|
+
* params?: Array<{name: string, as?: string}>,
|
|
227
|
+
* as?: string,
|
|
228
|
+
* body?: (...args: any[]) => any,
|
|
229
|
+
* sequence?: string
|
|
230
|
+
* }} cfg - Function configuration
|
|
231
|
+
* @returns {this}
|
|
232
|
+
*/
|
|
233
|
+
function(cfg: {
|
|
234
|
+
name: string;
|
|
235
|
+
params?: Array<{
|
|
236
|
+
name: string;
|
|
237
|
+
as?: string;
|
|
238
|
+
}>;
|
|
239
|
+
as?: string;
|
|
240
|
+
body?: (...args: any[]) => any;
|
|
241
|
+
sequence?: string;
|
|
242
|
+
}): this;
|
|
243
|
+
/**
|
|
244
|
+
* Invoke a registered stylesheet function with positional arguments.
|
|
245
|
+
* @param {string} name - Function name (with namespace)
|
|
246
|
+
* @param {any[]} args - Positional arguments
|
|
247
|
+
* @returns {any} Function return value
|
|
248
|
+
*/
|
|
249
|
+
invokeFunctionByArity(name: string, args?: any[]): any;
|
|
200
250
|
/**
|
|
201
251
|
* @param {string} name
|
|
202
252
|
* @param {OutputCharacters} outputCharacters
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/AbstractJoiningTransformer.js"],"names":[],"mappings":";+BAKa;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,EAAE;oCAIrC;IACR,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAC,YAAY,CAAA;CAC3B;;;;;0CAIS,qBAAqB,GAAG;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;;;;;;;;;;;;;;;6CAaS,qBAAqB,GAAG;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;qCAKS,CAAC,IACD,CAAC,SAAS,QAAQ,GAAG,8BAA8B,GAC3D,CAAC,SAAS,KAAK,GAAG,2BAA2B,GAC7C,CAAC,SAAS,MAAM,GAAG,4BAA4B,GAAG,KAAK;AAzC5D;;GAEG;AAEH;;;;;;GAMG;AAEH;;;;;;;GAOG;AACH;;;;;;;GAOG;AACH;;;;;;;;GAQG;AACH;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,yCAFa,CAAC;IAGZ;;OAEG;IACH,kBAFW,wBAAwB,CAAC,CAAC,CAAC,
|
|
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
|
-
|
|
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":";8DAMa,IAAI;AAHjB;;;;GAIG;AAEH;;;;;;;;GAQG;AACH;IACE;;;;OAIG;IACH,eAJW,gBAAgB,GAAC,OAAO,OACxB,OAAO,iCAAiC,EAC9C,2BAA2B,EAa/B;IATC,iCAAsD;IACtD,kBAAkB;IAClB,UADW,GAAG,CACW;IACzB,4BAA4B;IAC5B,OADW,WAAW,EAAE,CACT;IACf,4EAA4E;IAC5E,kBADW,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,WAAW,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC,CAC9C;IAC1B,sCAAsC;IACtC,cADW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACZ;IAGxB;;;OAGG;IACH,gBAHW,IAAI,GACF,IAAI,CAIhB;IAED;;;;OAIG;IACH,oBAHW,GAAG,GACD,qBAAqB,CAKjC;IAED;;;OAGG;IACH,aAHW,MAAM,GAAC,IAAI,GACT,IAAI,CAIhB;IAED;;OAEG;IACH,OAFa,gBAAgB,GAAC,OAAO,GAAC,WAAW,EAAE,CAOlD;IAED;;;;OAIG;IACH,gBAJW,MAAM,OACN,GAAG,GACD,IAAI,CAKhB;IAED;;;;;OAKG;IACH,eAJW,MAAM,OACN,GAAG,GACD,IAAI,CAIhB;IAED;;;;;;OAMG;IACH,YANW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OACvB,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,oBACrC,GAAG,EAAE,aACL,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrB,qBAAqB,CAuBjC;IAED;;;;;;;OAOG;IACH,SANW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OACvB,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,oBACrC,GAAG,EAAE,aACL,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrB,qBAAqB,CAIjC;IAED;;;;OAIG;IACH,WAJW,GAAG,EAAE,GAAC,OAAO,OACb,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,GACnC,qBAAqB,CAWjC;IAED;;;;;OAKG;IACH,YALW,MAAM,OACN,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,GAEnC,qBAAqB,CAMjC;IAED;;;OAGG;IACH,YAHW,MAAM,GACJ,qBAAqB,CAKjC;IAED;;;OAGG;IACH,cAHW,OAAO,GACL,qBAAqB,CAKjC;IAED;;OAEG;IACH,QAFa,qBAAqB,CAKjC;IAED;;OAEG;IACH,aAFa,qBAAqB,CAUjC;IAED;;;OAGG;IACH,qBAHW,MAAM,GACJ,qBAAqB,CAUjC;IAED;;;OAGG;IACH,
|
|
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
|
-
|
|
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":";iEAeW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACrB,IAAI;gEAKN,GAAG,EAAE,KACH,IAAI;2BAGH,CAAC,wLAKF,IAAI;;;;;gCAMJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;CACxB;0BAIS;IACR,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,WAAW,EAAE,OAAO,EAAE,CAAA;CACvB;AAlCJ;;;;;GAKG;AACH;;;;;GAKG;AACH;;;;;;;GAOG;AAEH;;;;;;;GAOG;AAEH;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH;IACE;;;;OAIG;IACH,gBAJW,GAAG,EAAE,GAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAC7B,OAAO,iCAAiC,EAC9C,4BAA4B,EAoBhC;IAhBC,4CAA4C;IAC5C,MADW,GAAG,EAAE,GAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACrB;IACnB,kBAAkB;IAClB,UADW,GAAG,CACW;IACzB,kCAAkC;IAClC,eADW,OAAO,GAAG,SAAS,CACA;IAC9B,kCAAkC;IAClC,eADW,OAAO,GAAG,SAAS,CACA;IAC9B,4BAA4B;IAC5B,eADW,WAAW,EAAE,CACD;IACvB,sCAAsC;IACtC,cADW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACZ;IACtB,oBAAoB;IACpB,OADW,GAAG,EAAE,CACD;IACf,oEAAoE;IACpE,kBADW,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,GAAG,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC,CACtC;IAG5B;;;;OAIG;IACH,gBAHW,GAAG,GACD,IAAI,CAIhB;IAED;;;;OAIG;IACH,oBAHW,GAAG,GACD,sBAAsB,CAKlC;IAED;;;;OAIG;IACH,aAHW,GAAG,GACD,sBAAsB,CAalC;IAED;;;;;OAKG;IACH,OAFa,GAAG,EAAE,GAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAC,GAAG,CAc7C;IAED;;;;;OAKG;IACH,gBAJW,MAAM,OACN,GAAG,GACD,IAAI,CAShB;IAED;;;;;OAKG;IACH,eAJW,MAAM,OACN,GAAG,GACD,IAAI,CAIhB;IAGD;;;;;;;;OAQG;IACH,iBARW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAC,cAAc,wBAEtC,cAAc,GAAC,GAAG,EAAE,8BACpB,GAAG,EAAE,GAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,aAE7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrB,sBAAsB,CAuDlC;IAED;;;;;;;;;OASG;IACH,cARW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAC,cAAc,wBAEtC,cAAc,GAAC,GAAG,EAAE,8BACpB,GAAG,EAAE,GAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,aAE7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrB,sBAAsB,CAMlC;IAED;;;;;OAKG;IACH,gBAJW,GAAG,EAAE,GAAC,aAAa,OACnB,aAAa,GACX,sBAAsB,CA+BlC;IAED;;;;;OAKG;IACH,YAJW,MAAM,OACN,cAAc,GACZ,sBAAsB,CAMlC;IAED;;;;OAIG;IACH,YAHW,MAAM,GACJ,sBAAsB,CAKlC;IAED;;;;OAIG;IACH,cAHW,OAAO,GACL,sBAAsB,CAKlC;IAED;;;OAGG;IACH,QAFa,sBAAsB,CAKlC;IAED;;;OAGG;IACH,aAFa,sBAAsB,CAUlC;IAED;;;;OAIG;IACH,qBAHW,MAAM,GACJ,sBAAsB,CAUlC;IAED;;;;OAIG;IACH,
|
|
1
|
+
{"version":3,"file":"JSONJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/JSONJoiningTransformer.js"],"names":[],"mappings":"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"}
|
|
@@ -569,6 +569,34 @@ declare class JSONPathTransformerContext<T = "json"> {
|
|
|
569
569
|
transform(cfg: {
|
|
570
570
|
excludeResultPrefixes?: string[];
|
|
571
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
|
+
* sequence?: string
|
|
580
|
+
* }} cfg - Function configuration
|
|
581
|
+
* @returns {this}
|
|
582
|
+
*/
|
|
583
|
+
function(cfg: {
|
|
584
|
+
name: string;
|
|
585
|
+
params?: Array<{
|
|
586
|
+
name: string;
|
|
587
|
+
as?: string;
|
|
588
|
+
}>;
|
|
589
|
+
as?: string;
|
|
590
|
+
body?: (...args: any[]) => any;
|
|
591
|
+
sequence?: string;
|
|
592
|
+
}): this;
|
|
593
|
+
/**
|
|
594
|
+
* Invoke a registered stylesheet function with positional arguments.
|
|
595
|
+
* @param {string} name - Function name (with namespace)
|
|
596
|
+
* @param {any[]} args - Positional arguments
|
|
597
|
+
* @returns {any} Function return value
|
|
598
|
+
*/
|
|
599
|
+
invokeFunctionByArity(name: string, args?: any[]): any;
|
|
572
600
|
/**
|
|
573
601
|
* Create an element. Mirrors the joining transformer API so templates can
|
|
574
602
|
* 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":"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"}
|
|
@@ -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
|
-
|
|
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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"}
|
|
@@ -464,6 +464,34 @@ declare class XPathTransformerContext {
|
|
|
464
464
|
transform(cfg: {
|
|
465
465
|
excludeResultPrefixes?: string[];
|
|
466
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
|
+
* sequence?: string
|
|
475
|
+
* }} cfg - Function configuration
|
|
476
|
+
* @returns {this}
|
|
477
|
+
*/
|
|
478
|
+
function(cfg: {
|
|
479
|
+
name: string;
|
|
480
|
+
params?: Array<{
|
|
481
|
+
name: string;
|
|
482
|
+
as?: string;
|
|
483
|
+
}>;
|
|
484
|
+
as?: string;
|
|
485
|
+
body?: (...args: any[]) => any;
|
|
486
|
+
sequence?: string;
|
|
487
|
+
}): this;
|
|
488
|
+
/**
|
|
489
|
+
* Invoke a registered stylesheet function with positional arguments.
|
|
490
|
+
* @param {string} name - Function name (with namespace)
|
|
491
|
+
* @param {any[]} args - Positional arguments
|
|
492
|
+
* @returns {any} Function return value
|
|
493
|
+
*/
|
|
494
|
+
invokeFunctionByArity(name: string, args?: any[]): any;
|
|
467
495
|
/**
|
|
468
496
|
* Append element.
|
|
469
497
|
* @param {string} name Tag name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XPathTransformerContext.d.ts","sourceRoot":"","sources":["../src/XPathTransformerContext.js"],"names":[],"mappings":";;;;;WAOc,OAAO;;;;;;;;wBAEP,OAAO,YAAY,EAC5B,kBAAkB;;0CAEF,MAAM,KAAK,MAAM;;AAPtC;;;;;;;;GAQG;AAEH;;;;;;;;;;;;GAYG;AACH;
|
|
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
|
@@ -110,6 +110,19 @@ class AbstractJoiningTransformer {
|
|
|
110
110
|
* @type {Map<string, {prefix: string, namespaceURI: string}>}
|
|
111
111
|
*/
|
|
112
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
|
+
* sequence?: string,
|
|
122
|
+
* returnType?: string
|
|
123
|
+
* }>}
|
|
124
|
+
*/
|
|
125
|
+
this._registeredFunctions = new Map();
|
|
113
126
|
}
|
|
114
127
|
|
|
115
128
|
/**
|
|
@@ -180,6 +193,95 @@ class AbstractJoiningTransformer {
|
|
|
180
193
|
return this.stylesheet(cfg);
|
|
181
194
|
}
|
|
182
195
|
|
|
196
|
+
/**
|
|
197
|
+
* Register a stylesheet function (similar to xsl:function).
|
|
198
|
+
* Functions must have namespaced names and are invoked positionally.
|
|
199
|
+
* @param {{
|
|
200
|
+
* name: string,
|
|
201
|
+
* params?: Array<{name: string, as?: string}>,
|
|
202
|
+
* as?: string,
|
|
203
|
+
* body?: (...args: any[]) => any,
|
|
204
|
+
* sequence?: string
|
|
205
|
+
* }} cfg - Function configuration
|
|
206
|
+
* @returns {this}
|
|
207
|
+
*/
|
|
208
|
+
function (cfg) {
|
|
209
|
+
const {name, params = [], as: returnType, body, sequence} = cfg;
|
|
210
|
+
|
|
211
|
+
// Validate name has namespace
|
|
212
|
+
if (!name.includes(':') && !name.startsWith('Q{')) {
|
|
213
|
+
throw new Error(
|
|
214
|
+
`Function name "${name}" must be in a namespace ` +
|
|
215
|
+
`(use prefix:name or Q{uri}name)`
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// Validate that either body or sequence is provided, but not both
|
|
220
|
+
/* c8 ignore start -- Defensive validation; child contexts validate first */
|
|
221
|
+
if (body && sequence) {
|
|
222
|
+
throw new Error(
|
|
223
|
+
`Function "${name}" cannot have both 'body' and 'sequence' attributes`
|
|
224
|
+
);
|
|
225
|
+
}
|
|
226
|
+
if (!body && !sequence) {
|
|
227
|
+
throw new Error(
|
|
228
|
+
`Function "${name}" must have either 'body' or 'sequence' attribute`
|
|
229
|
+
);
|
|
230
|
+
}
|
|
231
|
+
/* c8 ignore stop */
|
|
232
|
+
|
|
233
|
+
// Create function key with arity
|
|
234
|
+
const arity = params.length;
|
|
235
|
+
const functionKey = `${name}#${arity}`;
|
|
236
|
+
|
|
237
|
+
// Check for duplicates
|
|
238
|
+
if (this._registeredFunctions.has(functionKey)) {
|
|
239
|
+
throw new Error(
|
|
240
|
+
`Function "${name}" with arity ${arity} is already registered`
|
|
241
|
+
);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// Store function definition
|
|
245
|
+
this._registeredFunctions.set(functionKey, {
|
|
246
|
+
name,
|
|
247
|
+
params,
|
|
248
|
+
body,
|
|
249
|
+
sequence,
|
|
250
|
+
returnType
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
return this;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Invoke a registered stylesheet function with positional arguments.
|
|
258
|
+
* @param {string} name - Function name (with namespace)
|
|
259
|
+
* @param {any[]} args - Positional arguments
|
|
260
|
+
* @returns {any} Function return value
|
|
261
|
+
*/
|
|
262
|
+
invokeFunctionByArity (name, args = []) {
|
|
263
|
+
const arity = args.length;
|
|
264
|
+
const functionKey = `${name}#${arity}`;
|
|
265
|
+
|
|
266
|
+
const functionDef = this._registeredFunctions.get(functionKey);
|
|
267
|
+
if (!functionDef) {
|
|
268
|
+
throw new Error(
|
|
269
|
+
`Function "${name}" with arity ${arity} not found`
|
|
270
|
+
);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
// Invoke function body with arguments
|
|
274
|
+
/* c8 ignore start -- Defensive check; actualBody always set */
|
|
275
|
+
if (!functionDef.body) {
|
|
276
|
+
throw new Error(
|
|
277
|
+
`Function '${name}' has no body (sequence may not be ` +
|
|
278
|
+
`supported in this context)`
|
|
279
|
+
);
|
|
280
|
+
}
|
|
281
|
+
/* c8 ignore stop */
|
|
282
|
+
return functionDef.body(...args);
|
|
283
|
+
}
|
|
284
|
+
|
|
183
285
|
/**
|
|
184
286
|
* @param {string} name
|
|
185
287
|
* @param {OutputCharacters} outputCharacters
|
|
@@ -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
|
-
|
|
221
|
+
outputFunction (func) {
|
|
222
222
|
if (this._cfg.mode !== 'JavaScript') {
|
|
223
223
|
throw new Error(
|
|
224
|
-
'
|
|
224
|
+
'outputFunction is not allowed unless added in JavaScript mode'
|
|
225
225
|
);
|
|
226
226
|
}
|
|
227
227
|
this.append(func.toString());
|
|
@@ -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
|
-
|
|
360
|
+
outputFunction (func) {
|
|
361
361
|
if (this._cfg.mode !== 'JavaScript') {
|
|
362
362
|
throw new Error(
|
|
363
|
-
'
|
|
363
|
+
'outputFunction is not allowed unless added in JavaScript mode'
|
|
364
364
|
);
|
|
365
365
|
}
|
|
366
366
|
this.append(func);
|
|
@@ -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);
|
|
@@ -1927,6 +1967,78 @@ class JSONPathTransformerContext {
|
|
|
1927
1967
|
return this.stylesheet(cfg);
|
|
1928
1968
|
}
|
|
1929
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
|
+
* sequence?: string
|
|
1978
|
+
* }} cfg - Function configuration
|
|
1979
|
+
* @returns {this}
|
|
1980
|
+
*/
|
|
1981
|
+
function (cfg) {
|
|
1982
|
+
const {name, params = [], as: returnType, body, sequence} = cfg;
|
|
1983
|
+
|
|
1984
|
+
// Validate body/sequence mutual exclusion
|
|
1985
|
+
if (body && sequence) {
|
|
1986
|
+
throw new Error(
|
|
1987
|
+
`Function '${name}' cannot have both 'body' and 'sequence' attributes`
|
|
1988
|
+
);
|
|
1989
|
+
}
|
|
1990
|
+
if (!body && !sequence) {
|
|
1991
|
+
throw new Error(
|
|
1992
|
+
`Function '${name}' must have either 'body' or 'sequence' attribute`
|
|
1993
|
+
);
|
|
1994
|
+
}
|
|
1995
|
+
|
|
1996
|
+
// If sequence is provided, create a body function that evaluates it
|
|
1997
|
+
let actualBody = body;
|
|
1998
|
+
if (sequence) {
|
|
1999
|
+
actualBody = (...args) => {
|
|
2000
|
+
// Build variables object from parameters
|
|
2001
|
+
/** @type {Record<string, any>} */
|
|
2002
|
+
const variables = {};
|
|
2003
|
+
params.forEach((param, index) => {
|
|
2004
|
+
if (index < args.length) {
|
|
2005
|
+
variables[param.name] = args[index];
|
|
2006
|
+
}
|
|
2007
|
+
});
|
|
2008
|
+
|
|
2009
|
+
// Evaluate the JSONPath expression with bound variables
|
|
2010
|
+
// Temporarily set _params so expressions can access them
|
|
2011
|
+
const oldParams = this._params;
|
|
2012
|
+
this._params = variables;
|
|
2013
|
+
try {
|
|
2014
|
+
return this.get(sequence, false);
|
|
2015
|
+
} finally {
|
|
2016
|
+
this._params = oldParams;
|
|
2017
|
+
}
|
|
2018
|
+
};
|
|
2019
|
+
}
|
|
2020
|
+
|
|
2021
|
+
// Register with the modified config
|
|
2022
|
+
const modifiedCfg = {
|
|
2023
|
+
name,
|
|
2024
|
+
params,
|
|
2025
|
+
as: returnType,
|
|
2026
|
+
body: actualBody
|
|
2027
|
+
};
|
|
2028
|
+
/** @type {any} */ (this._getJoiningTransformer()).function(modifiedCfg);
|
|
2029
|
+
return this;
|
|
2030
|
+
}
|
|
2031
|
+
|
|
2032
|
+
/**
|
|
2033
|
+
* Invoke a registered stylesheet function with positional arguments.
|
|
2034
|
+
* @param {string} name - Function name (with namespace)
|
|
2035
|
+
* @param {any[]} args - Positional arguments
|
|
2036
|
+
* @returns {any} Function return value
|
|
2037
|
+
*/
|
|
2038
|
+
invokeFunctionByArity (name, args = []) {
|
|
2039
|
+
return this._getJoiningTransformer().invokeFunctionByArity(name, args);
|
|
2040
|
+
}
|
|
2041
|
+
|
|
1930
2042
|
/**
|
|
1931
2043
|
* Create an element. Mirrors the joining transformer API so templates can
|
|
1932
2044
|
* 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
|
-
|
|
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
|
-
'
|
|
461
|
+
'outputFunction is not allowed unless added in JavaScript mode'
|
|
462
462
|
);
|
|
463
463
|
}
|
|
464
464
|
if (_isElement(func)) {
|
|
@@ -877,6 +877,111 @@ 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
|
+
// Handle arrays from XPath sequences - join with spaces
|
|
971
|
+
const resultToAppend = Array.isArray(result)
|
|
972
|
+
? result.join(' ')
|
|
973
|
+
: result;
|
|
974
|
+
jt.append(resultToAppend);
|
|
975
|
+
return this;
|
|
976
|
+
}
|
|
977
|
+
/* c8 ignore start -- Error handler for malformed function calls */
|
|
978
|
+
} catch (err) {
|
|
979
|
+
// Fall through to normal XPath evaluation
|
|
980
|
+
// This allows fontoxpath registered functions to work natively
|
|
981
|
+
}
|
|
982
|
+
/* c8 ignore stop */
|
|
983
|
+
}
|
|
984
|
+
|
|
880
985
|
// Check for format-number() function call
|
|
881
986
|
if (selectStr && selectStr.includes('format-number(')) {
|
|
882
987
|
const match = (/format-number\((?<value>[^,\)]+)(?:,\s*["'](?<format>[^"']+)["'])?(?:,\s*["'](?<decimalFormat>[^"']*)["'])?\)/v).exec(selectStr);
|
|
@@ -971,8 +1076,13 @@ class XPathTransformerContext {
|
|
|
971
1076
|
}
|
|
972
1077
|
// Ensure val is not null before appending
|
|
973
1078
|
if (val !== null) {
|
|
1079
|
+
// Handle arrays from XPath sequences - join with spaces
|
|
1080
|
+
/* c8 ignore next 2 -- valueOf only returns first value, not arrays */
|
|
1081
|
+
const stringVal = Array.isArray(val)
|
|
1082
|
+
? val.join(' ')
|
|
1083
|
+
: String(val);
|
|
974
1084
|
// Use text() method to properly close open tags and escape HTML
|
|
975
|
-
jt.text(
|
|
1085
|
+
jt.text(stringVal);
|
|
976
1086
|
}
|
|
977
1087
|
return this;
|
|
978
1088
|
}
|
|
@@ -1624,6 +1734,188 @@ class XPathTransformerContext {
|
|
|
1624
1734
|
return this.stylesheet(cfg);
|
|
1625
1735
|
}
|
|
1626
1736
|
|
|
1737
|
+
/**
|
|
1738
|
+
* Register a stylesheet function (similar to xsl:function).
|
|
1739
|
+
* @param {{
|
|
1740
|
+
* name: string,
|
|
1741
|
+
* params?: Array<{name: string, as?: string}>,
|
|
1742
|
+
* as?: string,
|
|
1743
|
+
* body?: (...args: any[]) => any,
|
|
1744
|
+
* sequence?: string
|
|
1745
|
+
* }} cfg - Function configuration
|
|
1746
|
+
* @returns {this}
|
|
1747
|
+
*/
|
|
1748
|
+
function (cfg) {
|
|
1749
|
+
const {name, params = [], as: returnType, body, sequence} = cfg;
|
|
1750
|
+
|
|
1751
|
+
// Validate body/sequence mutual exclusion
|
|
1752
|
+
if (body && sequence) {
|
|
1753
|
+
throw new Error(
|
|
1754
|
+
`Function '${name}' cannot have both 'body' and 'sequence' attributes`
|
|
1755
|
+
);
|
|
1756
|
+
}
|
|
1757
|
+
/* c8 ignore start -- Defensive; always has body or sequence from above */
|
|
1758
|
+
if (!body && !sequence) {
|
|
1759
|
+
throw new Error(
|
|
1760
|
+
`Function '${name}' must have either 'body' or 'sequence' attribute`
|
|
1761
|
+
);
|
|
1762
|
+
}
|
|
1763
|
+
/* c8 ignore stop */
|
|
1764
|
+
|
|
1765
|
+
// If sequence is provided, create a body function that evaluates it
|
|
1766
|
+
let actualBody = body;
|
|
1767
|
+
if (sequence) {
|
|
1768
|
+
actualBody = (...args) => {
|
|
1769
|
+
// Build variables object from parameters
|
|
1770
|
+
/** @type {Record<string, any>} */
|
|
1771
|
+
const variables = {};
|
|
1772
|
+
params.forEach((param, index) => {
|
|
1773
|
+
if (index < args.length) {
|
|
1774
|
+
let value = args[index];
|
|
1775
|
+
// Convert numbers to integers if they're whole numbers
|
|
1776
|
+
// to avoid xs:double vs xs:integer type mismatches in XPath
|
|
1777
|
+
if (typeof value === 'number' && Number.isInteger(value)) {
|
|
1778
|
+
value = Math.floor(value);
|
|
1779
|
+
}
|
|
1780
|
+
variables[param.name] = value;
|
|
1781
|
+
}
|
|
1782
|
+
});
|
|
1783
|
+
|
|
1784
|
+
// Evaluate the XPath expression with bound variables
|
|
1785
|
+
const version = this._config.xpathVersion /* c8 ignore next */ ?? 1;
|
|
1786
|
+
if (version === 3.1) {
|
|
1787
|
+
// Use fontoxpath for XPath 3.1
|
|
1788
|
+
// Create namespace resolver for function prefixes
|
|
1789
|
+
/** @param {string} prefix */
|
|
1790
|
+
const namespaceResolver = (prefix) => {
|
|
1791
|
+
// Map common prefixes to URN namespaces
|
|
1792
|
+
if (prefix) {
|
|
1793
|
+
return `urn:${prefix}`;
|
|
1794
|
+
}
|
|
1795
|
+
return null;
|
|
1796
|
+
};
|
|
1797
|
+
// eslint-disable-next-line import/no-named-as-default-member -- OK
|
|
1798
|
+
const result = fontoxpath.evaluateXPath(
|
|
1799
|
+
sequence,
|
|
1800
|
+
null,
|
|
1801
|
+
null,
|
|
1802
|
+
variables,
|
|
1803
|
+
// eslint-disable-next-line @stylistic/max-len -- Long
|
|
1804
|
+
// eslint-disable-next-line import/no-named-as-default-member -- Only as default
|
|
1805
|
+
fontoxpath.evaluateXPath.ALL_RESULTS_TYPE,
|
|
1806
|
+
{namespaceResolver}
|
|
1807
|
+
);
|
|
1808
|
+
// Fontoxpath expects item()* returns to be arrays
|
|
1809
|
+
// Return result as-is (already an array from fontoxpath)
|
|
1810
|
+
return result;
|
|
1811
|
+
}
|
|
1812
|
+
// For XPath 1.0/2.0, temporarily set _params and use _evalXPath
|
|
1813
|
+
const prevParams = this._params;
|
|
1814
|
+
this._params = variables;
|
|
1815
|
+
try {
|
|
1816
|
+
const result = this._evalXPath(sequence, false);
|
|
1817
|
+
return result;
|
|
1818
|
+
} finally {
|
|
1819
|
+
this._params = prevParams;
|
|
1820
|
+
}
|
|
1821
|
+
};
|
|
1822
|
+
}
|
|
1823
|
+
|
|
1824
|
+
// Register with the modified config
|
|
1825
|
+
const modifiedCfg = {
|
|
1826
|
+
name,
|
|
1827
|
+
params,
|
|
1828
|
+
as: returnType,
|
|
1829
|
+
body: actualBody
|
|
1830
|
+
};
|
|
1831
|
+
/** @type {any} */ (this._getJoiningTransformer()).function(modifiedCfg);
|
|
1832
|
+
|
|
1833
|
+
// Register with fontoxpath for native XPath 3.1 support
|
|
1834
|
+
const version = this._config.xpathVersion ?? 1;
|
|
1835
|
+
if (version === 3.1) {
|
|
1836
|
+
try {
|
|
1837
|
+
// Parse namespace from name
|
|
1838
|
+
let namespaceURI, localName;
|
|
1839
|
+
if (name.startsWith('Q{')) {
|
|
1840
|
+
// Q{uri}name format - extract manually
|
|
1841
|
+
const closeBrace = name.indexOf('}', 2);
|
|
1842
|
+
if (closeBrace > 2) {
|
|
1843
|
+
namespaceURI = name.slice(2, closeBrace);
|
|
1844
|
+
localName = name.slice(closeBrace + 1);
|
|
1845
|
+
}
|
|
1846
|
+
} else if (name.includes(':')) {
|
|
1847
|
+
// prefix:name format - use prefix as pseudo-namespace
|
|
1848
|
+
// (caller should use proper namespace resolver in XPath)
|
|
1849
|
+
const parts = name.split(':');
|
|
1850
|
+
namespaceURI = `urn:${parts[0]}`;
|
|
1851
|
+
localName = parts[1];
|
|
1852
|
+
}
|
|
1853
|
+
|
|
1854
|
+
if (namespaceURI && localName) {
|
|
1855
|
+
// Map XSLT type names to XPath type names for signature
|
|
1856
|
+
const signature = params.map((p) => p.as || 'item()*');
|
|
1857
|
+
const returnTypeStr = returnType || 'item()*';
|
|
1858
|
+
|
|
1859
|
+
// Check if return type expects a sequence (ends with * or +)
|
|
1860
|
+
const returnsSequence = (/[*+]$/v).test(returnTypeStr);
|
|
1861
|
+
|
|
1862
|
+
// eslint-disable-next-line import/no-named-as-default-member -- OK
|
|
1863
|
+
fontoxpath.registerCustomXPathFunction(
|
|
1864
|
+
{namespaceURI, localName},
|
|
1865
|
+
signature,
|
|
1866
|
+
returnTypeStr,
|
|
1867
|
+
(dynamicContext, ...args) => {
|
|
1868
|
+
/* c8 ignore start -- Defensive; actualBody always set */
|
|
1869
|
+
if (!actualBody) {
|
|
1870
|
+
throw new Error(`Function body not defined for ${name}`);
|
|
1871
|
+
}
|
|
1872
|
+
/* c8 ignore stop */
|
|
1873
|
+
// For sequence functions, unwrap/wrap arrays as needed
|
|
1874
|
+
// For regular body functions, pass through as-is
|
|
1875
|
+
if (sequence) {
|
|
1876
|
+
/* c8 ignore start -- Callback tested but may not be invoked
|
|
1877
|
+
by fontoxpath in test environment */
|
|
1878
|
+
// Unwrap single-item arrays from fontoxpath for sequence params
|
|
1879
|
+
const unwrappedArgs = args.map((arg) => {
|
|
1880
|
+
return Array.isArray(arg) && arg.length === 1
|
|
1881
|
+
? arg[0]
|
|
1882
|
+
: arg;
|
|
1883
|
+
});
|
|
1884
|
+
const result = actualBody(...unwrappedArgs);
|
|
1885
|
+
// Fontoxpath expects sequences (item()*) to be arrays
|
|
1886
|
+
// But scalar types (xs:integer, xs:string) should be scalars
|
|
1887
|
+
if (returnsSequence && !Array.isArray(result)) {
|
|
1888
|
+
return [result];
|
|
1889
|
+
}
|
|
1890
|
+
return result;
|
|
1891
|
+
/* c8 ignore stop */
|
|
1892
|
+
}
|
|
1893
|
+
// Regular body function - pass through
|
|
1894
|
+
return actualBody(...args);
|
|
1895
|
+
}
|
|
1896
|
+
);
|
|
1897
|
+
}
|
|
1898
|
+
/* c8 ignore start -- Error handler for fontoxpath failures */
|
|
1899
|
+
} catch (err) {
|
|
1900
|
+
// Ignore fontoxpath registration errors (e.g., if duplicate)
|
|
1901
|
+
// Function still available via invokeFunctionByArity
|
|
1902
|
+
}
|
|
1903
|
+
/* c8 ignore stop */
|
|
1904
|
+
}
|
|
1905
|
+
|
|
1906
|
+
return this;
|
|
1907
|
+
}
|
|
1908
|
+
|
|
1909
|
+
/**
|
|
1910
|
+
* Invoke a registered stylesheet function with positional arguments.
|
|
1911
|
+
* @param {string} name - Function name (with namespace)
|
|
1912
|
+
* @param {any[]} args - Positional arguments
|
|
1913
|
+
* @returns {any} Function return value
|
|
1914
|
+
*/
|
|
1915
|
+
invokeFunctionByArity (name, args = []) {
|
|
1916
|
+
return this._getJoiningTransformer().invokeFunctionByArity(name, args);
|
|
1917
|
+
}
|
|
1918
|
+
|
|
1627
1919
|
/**
|
|
1628
1920
|
* Append element.
|
|
1629
1921
|
* @param {string} name Tag name
|