jtlt 0.2.0 → 0.4.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 +27 -0
- package/README.md +61 -164
- package/demo/calltemplate-params-demo.js +138 -0
- package/demo/codemirror.esm.js +28242 -0
- package/demo/codemirror.js +94 -0
- package/demo/index.css +7 -0
- package/demo/index.html +28 -0
- package/demo/index.js +210 -0
- package/demo/vendor/jamilih/dist/jml.mjs +2341 -0
- package/demo/vendor/jhtml/src/SAJJ/SAJJ.ObjectArrayDelegator.js +356 -0
- package/demo/vendor/jhtml/src/SAJJ/SAJJ.Stringifier.js +186 -0
- package/demo/vendor/jhtml/src/SAJJ/SAJJ.js +746 -0
- package/demo/vendor/jhtml/src/SAJJ/testing/SAJJ.html +33 -0
- package/demo/vendor/jhtml/src/SAJJ/testing/SAJJ.testing.js +25 -0
- package/demo/vendor/jhtml/src/jhtml-browser.js +5 -0
- package/demo/vendor/jhtml/src/jhtml-node.cts +3 -0
- package/demo/vendor/jhtml/src/jhtml-node.js +8 -0
- package/demo/vendor/jhtml/src/jhtml-node.mts +1 -0
- package/demo/vendor/jhtml/src/jhtml.cts +3 -0
- package/demo/vendor/jhtml/src/jhtml.js +602 -0
- package/demo/vendor/jhtml/src/jhtml.mts +1 -0
- package/demo/vendor/jsonpath-plus/dist/index-browser-esm.js +2158 -0
- package/demo/vendor/simple-get-json/dist/index-es.js +151 -0
- package/demo/xpath2-placeholder.js +1 -0
- package/dist/AbstractJoiningTransformer.d.ts +83 -9
- package/dist/AbstractJoiningTransformer.d.ts.map +1 -1
- package/dist/DOMJoiningTransformer.d.ts +85 -25
- package/dist/DOMJoiningTransformer.d.ts.map +1 -1
- package/dist/JSONJoiningTransformer.d.ts +159 -51
- package/dist/JSONJoiningTransformer.d.ts.map +1 -1
- package/dist/JSONPathTransformer.d.ts +37 -38
- package/dist/JSONPathTransformer.d.ts.map +1 -1
- package/dist/JSONPathTransformerContext.d.ts +334 -124
- package/dist/JSONPathTransformerContext.d.ts.map +1 -1
- package/dist/StringJoiningTransformer.d.ts +132 -41
- package/dist/StringJoiningTransformer.d.ts.map +1 -1
- package/dist/XPathTransformer.d.ts +35 -20
- package/dist/XPathTransformer.d.ts.map +1 -1
- package/dist/XPathTransformerContext.d.ts +281 -105
- package/dist/XPathTransformerContext.d.ts.map +1 -1
- package/dist/index-browser.d.ts +4 -0
- package/dist/index-browser.d.ts.map +1 -0
- package/dist/index-node.d.ts +4 -0
- package/dist/index-node.d.ts.map +1 -0
- package/dist/index.d.ts +330 -57
- package/dist/index.d.ts.map +1 -1
- package/dist/types.d.ts +204 -0
- package/dist/types.d.ts.map +1 -0
- package/docs/API.expanded.md +172 -5
- package/docs/API.md +92 -2
- package/docs/TO-DO.md +168 -0
- package/docs/calltemplate-params.md +251 -0
- package/eslint.config.js +11 -5
- package/package.json +35 -9
- package/pnpm-workspace.yaml +1 -0
- package/rollup.config.js +13 -0
- package/src/AbstractJoiningTransformer.js +54 -15
- package/src/DOMJoiningTransformer.js +275 -28
- package/src/JSONJoiningTransformer.js +351 -70
- package/src/JSONPathTransformer.js +48 -30
- package/src/JSONPathTransformerContext.js +729 -107
- package/src/StringJoiningTransformer.js +311 -57
- package/src/XPathTransformer.js +27 -12
- package/src/XPathTransformerContext.js +928 -99
- package/src/index-browser.js +5 -0
- package/src/index-node.js +7 -0
- package/src/index.js +502 -98
- package/tsconfig.json +5 -2
- package/typings/xpath2-js.d.ts +40 -1
- package/src/types/xpath2-js.d.ts +0 -2
|
@@ -1,43 +1,64 @@
|
|
|
1
1
|
export default XPathTransformerContext;
|
|
2
|
+
export type XPathTransformerContextConfig = {
|
|
3
|
+
/**
|
|
4
|
+
* - XML/DOM root to transform
|
|
5
|
+
*/
|
|
6
|
+
data?: unknown;
|
|
7
|
+
/**
|
|
8
|
+
* - 1, 2, 3.1 (default 1)
|
|
9
|
+
*/
|
|
10
|
+
xpathVersion?: number | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* Joiner
|
|
13
|
+
*/
|
|
14
|
+
joiningTransformer: import("./index.js").JoiningTransformer;
|
|
15
|
+
errorOnEqualPriority?: boolean | undefined;
|
|
16
|
+
specificityPriorityResolver?: ((path: string) => number) | undefined;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* @typedef {object} XPathTransformerContextConfig
|
|
20
|
+
* @property {unknown} [data] - XML/DOM root to transform
|
|
21
|
+
* @property {number} [xpathVersion] - 1, 2, 3.1 (default 1)
|
|
22
|
+
* @property {import('./index.js').
|
|
23
|
+
* JoiningTransformer} joiningTransformer Joiner
|
|
24
|
+
* @property {boolean} [errorOnEqualPriority]
|
|
25
|
+
* @property {(path: string) => number} [specificityPriorityResolver]
|
|
26
|
+
*/
|
|
2
27
|
/**
|
|
3
28
|
* Execution context for XPath-driven template application.
|
|
4
29
|
*
|
|
5
30
|
* Similar to JSONPathTransformerContext but uses XPath expressions on a
|
|
6
|
-
* DOM/XML-like tree. Supports XPath 1.0 (default)
|
|
7
|
-
* `xpathVersion: 2`.
|
|
31
|
+
* DOM/XML-like tree. Supports XPath 1.0 (default), 2.0 when
|
|
32
|
+
* `xpathVersion: 2`, or 3.1 when `xpathVersion: 3.1`.
|
|
8
33
|
*
|
|
9
34
|
* Expected config:
|
|
10
35
|
* - data: A Document, Element, or XML-like root node.
|
|
11
36
|
* - joiningTransformer: joiner with append(), string(), object(), array(), etc.
|
|
12
|
-
* - xpathVersion: 1|2 (default 1)
|
|
37
|
+
* - xpathVersion: 1|2|3.1 (default 1)
|
|
13
38
|
* - errorOnEqualPriority, specificityPriorityResolver (same semantics).
|
|
14
39
|
*/
|
|
15
40
|
declare class XPathTransformerContext {
|
|
16
|
-
/**
|
|
17
|
-
* Log a message (for debugging).
|
|
18
|
-
* @param {*} json Any value
|
|
19
|
-
* @returns {void}
|
|
20
|
-
*/
|
|
21
|
-
static message(json: any): void;
|
|
22
41
|
static DefaultTemplateRules: {
|
|
23
42
|
transformRoot: {
|
|
24
43
|
/**
|
|
25
|
-
* @
|
|
44
|
+
* @this {XPathTransformerContext}
|
|
45
|
+
* @param {unknown} node Root node
|
|
26
46
|
* @param {{mode:string}} cfg Config
|
|
27
47
|
* @returns {void}
|
|
28
48
|
*/
|
|
29
|
-
template(node:
|
|
49
|
+
template(this: XPathTransformerContext, node: unknown, cfg: {
|
|
30
50
|
mode: string;
|
|
31
51
|
}): void;
|
|
32
52
|
};
|
|
33
53
|
transformElements: {
|
|
34
54
|
/**
|
|
35
|
-
* @
|
|
36
|
-
* @param {
|
|
55
|
+
* @this {XPathTransformerContext}
|
|
56
|
+
* @param {unknown} node Element node
|
|
57
|
+
* @param {{mode?:string}} cfg Config
|
|
37
58
|
* @returns {void}
|
|
38
59
|
*/
|
|
39
|
-
template(node:
|
|
40
|
-
mode
|
|
60
|
+
template(this: XPathTransformerContext, node: unknown, cfg: {
|
|
61
|
+
mode?: string;
|
|
41
62
|
}): void;
|
|
42
63
|
};
|
|
43
64
|
transformTextNodes: {
|
|
@@ -50,114 +71,117 @@ declare class XPathTransformerContext {
|
|
|
50
71
|
}): string;
|
|
51
72
|
};
|
|
52
73
|
transformScalars: {
|
|
53
|
-
/**
|
|
54
|
-
|
|
74
|
+
/**
|
|
75
|
+
* @this {XPathTransformerContext}
|
|
76
|
+
* @returns {XPathTransformerContext}
|
|
77
|
+
*/
|
|
78
|
+
template(this: XPathTransformerContext): XPathTransformerContext;
|
|
55
79
|
};
|
|
56
80
|
};
|
|
57
81
|
/**
|
|
58
|
-
* @param {
|
|
59
|
-
* @param {
|
|
60
|
-
*
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
string: Function;
|
|
78
|
-
object: Function;
|
|
79
|
-
array: Function;
|
|
80
|
-
};
|
|
81
|
-
errorOnEqualPriority?: boolean | undefined;
|
|
82
|
-
specificityPriorityResolver?: Function | undefined;
|
|
83
|
-
}, templates: any[]);
|
|
84
|
-
_config: {
|
|
85
|
-
data: Document | Element | any;
|
|
86
|
-
xpathVersion?: number | undefined;
|
|
87
|
-
joiningTransformer: {
|
|
88
|
-
append: Function;
|
|
89
|
-
get: Function;
|
|
90
|
-
string: Function;
|
|
91
|
-
object: Function;
|
|
92
|
-
array: Function;
|
|
93
|
-
};
|
|
94
|
-
errorOnEqualPriority?: boolean | undefined;
|
|
95
|
-
specificityPriorityResolver?: Function | undefined;
|
|
96
|
-
};
|
|
97
|
-
_templates: any[];
|
|
98
|
-
_contextNode: any;
|
|
99
|
-
_origNode: any;
|
|
100
|
-
/** @type {Record<string, any>} */
|
|
101
|
-
vars: Record<string, any>;
|
|
102
|
-
/** @type {Record<string, any>} */
|
|
103
|
-
propertySets: Record<string, any>;
|
|
104
|
-
/** @type {Record<string, any>} */
|
|
105
|
-
keys: Record<string, any>;
|
|
82
|
+
* @param {XPathTransformerContextConfig} config
|
|
83
|
+
* @param {import('./index.js').
|
|
84
|
+
* XPathTemplateObject<any>[]} templates - Template objects
|
|
85
|
+
*/
|
|
86
|
+
constructor(config: XPathTransformerContextConfig, templates: import("./index.js").XPathTemplateObject<any>[]);
|
|
87
|
+
_config: XPathTransformerContextConfig;
|
|
88
|
+
_templates: import("./index.js").XPathTemplateObject<any>[];
|
|
89
|
+
/** @type {Document|Element|Node} */
|
|
90
|
+
_contextNode: Document | Element | Node;
|
|
91
|
+
_origNode: Document | Element | Node;
|
|
92
|
+
/** @type {Record<string, unknown>} */
|
|
93
|
+
vars: Record<string, unknown>;
|
|
94
|
+
/** @type {Record<string, Record<string, unknown>>} */
|
|
95
|
+
propertySets: Record<string, Record<string, unknown>>;
|
|
96
|
+
/** @type {Record<string, {match: string, use: string}>} */
|
|
97
|
+
keys: Record<string, {
|
|
98
|
+
match: string;
|
|
99
|
+
use: string;
|
|
100
|
+
}>;
|
|
106
101
|
/** @type {boolean|undefined} */
|
|
107
102
|
_initialized: boolean | undefined;
|
|
108
103
|
/** @type {string|undefined} */
|
|
109
104
|
_currPath: string | undefined;
|
|
110
|
-
/** @
|
|
111
|
-
|
|
105
|
+
/** @type {Record<string, any> | undefined} */
|
|
106
|
+
_params: Record<string, any> | undefined;
|
|
107
|
+
/** @returns {import('./index.js').JoiningTransformer} */
|
|
108
|
+
_getJoiningTransformer(): import("./index.js").JoiningTransformer;
|
|
112
109
|
/**
|
|
113
110
|
* Evaluate an XPath expression against the current context node.
|
|
114
111
|
* @param {string} expr - XPath expression
|
|
115
|
-
|
|
116
|
-
* @returns {
|
|
112
|
+
* @param {boolean} [asNodes] Return nodes (array) instead of scalar
|
|
113
|
+
* @returns {unknown}
|
|
117
114
|
*/
|
|
118
|
-
_evalXPath(expr: string, asNodes?: boolean):
|
|
115
|
+
_evalXPath(expr: string, asNodes?: boolean): unknown;
|
|
119
116
|
/**
|
|
120
117
|
* Append raw item to output.
|
|
121
|
-
* @param {
|
|
118
|
+
* @param {unknown} item
|
|
122
119
|
* @returns {XPathTransformerContext}
|
|
123
120
|
*/
|
|
124
|
-
appendOutput(item:
|
|
125
|
-
/** @returns {
|
|
126
|
-
getOutput():
|
|
121
|
+
appendOutput(item: unknown): XPathTransformerContext;
|
|
122
|
+
/** @returns {unknown} */
|
|
123
|
+
getOutput(): unknown;
|
|
127
124
|
/**
|
|
128
125
|
* Get value(s) by XPath relative to current context.
|
|
129
126
|
* @param {string} select - XPath expression
|
|
130
127
|
* @param {boolean} [asNodes]
|
|
131
|
-
* @returns {
|
|
128
|
+
* @returns {Node[]}
|
|
132
129
|
*/
|
|
133
|
-
get(select: string, asNodes?: boolean):
|
|
130
|
+
get(select: string, asNodes?: boolean): Node[];
|
|
134
131
|
/**
|
|
135
132
|
* Set current context's parent property (for parity with JSONPath context).
|
|
136
133
|
* Mostly placeholder for object-mirroring behavior.
|
|
137
|
-
* @param {
|
|
134
|
+
* @param {Document|Element|Node} v
|
|
138
135
|
* @returns {XPathTransformerContext}
|
|
139
136
|
*/
|
|
140
|
-
set(v:
|
|
137
|
+
set(v: Document | Element | Node): XPathTransformerContext;
|
|
141
138
|
/**
|
|
142
139
|
* Apply templates to nodes matched by an XPath expression.
|
|
143
|
-
* @param {string} select - XPath expression (default '.')
|
|
140
|
+
* @param {string} [select] - XPath expression (default '.')
|
|
144
141
|
* @param {string} [mode]
|
|
145
142
|
* @returns {XPathTransformerContext}
|
|
146
143
|
*/
|
|
147
|
-
applyTemplates(select
|
|
144
|
+
applyTemplates(select?: string, mode?: string): XPathTransformerContext;
|
|
145
|
+
/**
|
|
146
|
+
* @param {string|
|
|
147
|
+
* {name: string, withParam?: any[]}} name - Template name or
|
|
148
|
+
* options object
|
|
149
|
+
* @param {any[]} [withParams] - Parameters to pass to template
|
|
150
|
+
* @returns {this}
|
|
151
|
+
*/
|
|
152
|
+
callTemplate(name: string | {
|
|
153
|
+
name: string;
|
|
154
|
+
withParam?: any[];
|
|
155
|
+
}, withParams?: any[]): this;
|
|
148
156
|
/**
|
|
149
157
|
* Iterate over nodes selected by XPath.
|
|
150
158
|
* @param {string} select - XPath expression
|
|
151
|
-
* @param {
|
|
159
|
+
* @param {(this: XPathTransformerContext,
|
|
160
|
+
* node: Node
|
|
161
|
+
* )=>void} cb - Callback invoked per node
|
|
152
162
|
* @returns {XPathTransformerContext}
|
|
153
163
|
*/
|
|
154
|
-
forEach(select: string, cb:
|
|
164
|
+
forEach(select: string, cb: (this: XPathTransformerContext, node: Node) => void): XPathTransformerContext;
|
|
155
165
|
/**
|
|
156
166
|
* Append the value from an XPath expression or the context node text.
|
|
157
167
|
* @param {string|object} [select]
|
|
158
168
|
* @returns {XPathTransformerContext}
|
|
159
169
|
*/
|
|
160
170
|
valueOf(select?: string | object): XPathTransformerContext;
|
|
171
|
+
/**
|
|
172
|
+
* Deep copy selection or current context when omitted.
|
|
173
|
+
* For DOM nodes uses cloneNode(true); for scalars copies the value.
|
|
174
|
+
* @param {string} [select] XPath expression selecting nodes (optional)
|
|
175
|
+
* @returns {XPathTransformerContext}
|
|
176
|
+
*/
|
|
177
|
+
copyOf(select?: string): XPathTransformerContext;
|
|
178
|
+
/**
|
|
179
|
+
* Shallow copy current context node (cloneNode(false)); scalars copied
|
|
180
|
+
* directly. Provided for parity with JSONPath copy().
|
|
181
|
+
* @param {string[]} [_propertySets] Ignored in XPath variant (parity only)
|
|
182
|
+
* @returns {XPathTransformerContext}
|
|
183
|
+
*/
|
|
184
|
+
copy(_propertySets?: string[]): XPathTransformerContext;
|
|
161
185
|
/**
|
|
162
186
|
* Define a variable by XPath selection (stores node array if nodes).
|
|
163
187
|
* @param {string} name Variable name
|
|
@@ -165,19 +189,83 @@ declare class XPathTransformerContext {
|
|
|
165
189
|
* @returns {XPathTransformerContext}
|
|
166
190
|
*/
|
|
167
191
|
variable(name: string, select: string): XPathTransformerContext;
|
|
192
|
+
/**
|
|
193
|
+
* Log a message (for debugging).
|
|
194
|
+
* @param {unknown} json Any value
|
|
195
|
+
* @returns {void}
|
|
196
|
+
*/
|
|
197
|
+
message(json: unknown): void;
|
|
168
198
|
/**
|
|
169
199
|
* Append string.
|
|
170
200
|
* @param {string} str String to append
|
|
171
|
-
* @param {
|
|
201
|
+
* @param {(this: XPathTransformerContext) => void} [cb] Callback
|
|
172
202
|
* @returns {XPathTransformerContext}
|
|
173
203
|
*/
|
|
174
|
-
string(str: string, cb?:
|
|
204
|
+
string(str: string, cb?: (this: XPathTransformerContext) => void): XPathTransformerContext;
|
|
175
205
|
/**
|
|
176
|
-
* Append number.
|
|
177
|
-
* @param {number
|
|
206
|
+
* Append number with xsl:number-like formatting.
|
|
207
|
+
* @param {number|string|{
|
|
208
|
+
* value?: number|string,
|
|
209
|
+
* count?: string,
|
|
210
|
+
* level?: 'single'|'multiple'|'any',
|
|
211
|
+
* from?: string,
|
|
212
|
+
* format?: string,
|
|
213
|
+
* groupingSeparator?: string,
|
|
214
|
+
* groupingSize?: number
|
|
215
|
+
* }} num - Number value, "position()" string, or options object
|
|
178
216
|
* @returns {XPathTransformerContext}
|
|
179
217
|
*/
|
|
180
|
-
number(num: number
|
|
218
|
+
number(num: number | string | {
|
|
219
|
+
value?: number | string;
|
|
220
|
+
count?: string;
|
|
221
|
+
level?: "single" | "multiple" | "any";
|
|
222
|
+
from?: string;
|
|
223
|
+
format?: string;
|
|
224
|
+
groupingSeparator?: string;
|
|
225
|
+
groupingSize?: number;
|
|
226
|
+
}): XPathTransformerContext;
|
|
227
|
+
/**
|
|
228
|
+
* Calculate position of current node.
|
|
229
|
+
* @param {string} [count] - XPath pattern to match
|
|
230
|
+
* @param {string} [from] - XPath pattern for ancestor
|
|
231
|
+
* @returns {number}
|
|
232
|
+
* @private
|
|
233
|
+
*/
|
|
234
|
+
private _calculatePosition;
|
|
235
|
+
/**
|
|
236
|
+
* Calculate position counting all ancestors (level=any).
|
|
237
|
+
* @param {string} [count] - XPath pattern to match
|
|
238
|
+
* @param {string} [from] - XPath pattern for ancestor
|
|
239
|
+
* @returns {number}
|
|
240
|
+
* @private
|
|
241
|
+
*/
|
|
242
|
+
private _calculatePositionAny;
|
|
243
|
+
/**
|
|
244
|
+
* Format a number according to format string.
|
|
245
|
+
* @param {number} num - Number to format
|
|
246
|
+
* @param {string} format - Format string (1, a, A, i, I, 01, etc.)
|
|
247
|
+
* @param {string} [groupingSeparator] - Separator for grouping (e.g., ',')
|
|
248
|
+
* @param {number} [groupingSize] - Size of groups (e.g., 3 for 1,000)
|
|
249
|
+
* @param {string} [locale]
|
|
250
|
+
* @returns {string}
|
|
251
|
+
* @private
|
|
252
|
+
*/
|
|
253
|
+
private _formatNumber;
|
|
254
|
+
/**
|
|
255
|
+
* Convert number to Roman numerals.
|
|
256
|
+
* @param {number} num - Number to convert (1-3999)
|
|
257
|
+
* @returns {string}
|
|
258
|
+
* @private
|
|
259
|
+
*/
|
|
260
|
+
private _toRoman;
|
|
261
|
+
/**
|
|
262
|
+
* Convert number to alphabetic sequence.
|
|
263
|
+
* @param {number} num - Number to convert
|
|
264
|
+
* @param {boolean} uppercase - Use uppercase letters
|
|
265
|
+
* @returns {string}
|
|
266
|
+
* @private
|
|
267
|
+
*/
|
|
268
|
+
private _toAlphabetic;
|
|
181
269
|
/**
|
|
182
270
|
* Append plain text (no escaping changes).
|
|
183
271
|
* @param {string} str Text
|
|
@@ -187,65 +275,96 @@ declare class XPathTransformerContext {
|
|
|
187
275
|
/**
|
|
188
276
|
* Append property/value pair.
|
|
189
277
|
* @param {string} prop Property name
|
|
190
|
-
* @param {
|
|
278
|
+
* @param {any} val Value
|
|
191
279
|
* @returns {XPathTransformerContext}
|
|
192
280
|
*/
|
|
193
281
|
propValue(prop: string, val: any): XPathTransformerContext;
|
|
194
282
|
/**
|
|
195
283
|
* Append object.
|
|
196
|
-
* @param {
|
|
284
|
+
* @param {Record<string, unknown>|
|
|
285
|
+
* ((this: XPathTransformerContext) => void)} objOrCb Object or callback
|
|
286
|
+
* @param {((this: XPathTransformerContext) => void)|
|
|
287
|
+
* any[]} [cbOrUsePropertySets] Callback or property sets
|
|
288
|
+
* @param {any[]|
|
|
289
|
+
* Record<string, unknown>} [usePropertySetsOrPropSets]
|
|
290
|
+
* Property sets or props
|
|
291
|
+
* @param {Record<string, unknown>} [propSets] Additional property sets
|
|
197
292
|
* @returns {XPathTransformerContext}
|
|
198
293
|
*/
|
|
199
|
-
object(
|
|
294
|
+
object(objOrCb: Record<string, unknown> | ((this: XPathTransformerContext) => void), cbOrUsePropertySets?: ((this: XPathTransformerContext) => void) | any[], usePropertySetsOrPropSets?: any[] | Record<string, unknown>, propSets?: Record<string, unknown>): XPathTransformerContext;
|
|
200
295
|
/**
|
|
201
296
|
* Append array.
|
|
202
|
-
* @param {
|
|
297
|
+
* @param {any[]|
|
|
298
|
+
* ((this: XPathTransformerContext) => void)} [arrOrCb]
|
|
299
|
+
* Array or callback
|
|
300
|
+
* @param {(this: XPathTransformerContext) => void} [cb] Callback
|
|
203
301
|
* @returns {XPathTransformerContext}
|
|
204
302
|
*/
|
|
205
|
-
array(
|
|
303
|
+
array(arrOrCb?: any[] | ((this: XPathTransformerContext) => void), cb?: (this: XPathTransformerContext) => void): XPathTransformerContext;
|
|
304
|
+
/**
|
|
305
|
+
* Append text node content.
|
|
306
|
+
* @param {import('./StringJoiningTransformer.js').OutputConfig} cfg Text
|
|
307
|
+
* @returns {XPathTransformerContext}
|
|
308
|
+
*/
|
|
309
|
+
output(cfg: import("./StringJoiningTransformer.js").OutputConfig): XPathTransformerContext;
|
|
206
310
|
/**
|
|
207
311
|
* Append element.
|
|
208
312
|
* @param {string} name Tag name
|
|
209
|
-
* @param {
|
|
210
|
-
*
|
|
211
|
-
* @param {
|
|
313
|
+
* @param {Record<string, string>|any[]|
|
|
314
|
+
* ((this: XPathTransformerContext)=>void)} [atts] Attributes
|
|
315
|
+
* @param {any[]|((this: XPathTransformerContext)=>void)} [children]
|
|
316
|
+
* Children
|
|
317
|
+
* @param {(this: XPathTransformerContext)=>void} [cb] Callback
|
|
212
318
|
* @returns {XPathTransformerContext}
|
|
213
319
|
*/
|
|
214
|
-
element(name: string, atts?:
|
|
320
|
+
element(name: string, atts?: Record<string, string> | any[] | ((this: XPathTransformerContext) => void), children?: any[] | ((this: XPathTransformerContext) => void), cb?: (this: XPathTransformerContext) => void): XPathTransformerContext;
|
|
215
321
|
/**
|
|
216
322
|
* Append attribute.
|
|
217
323
|
* @param {string} name Attribute name
|
|
218
|
-
* @param {string|
|
|
324
|
+
* @param {string|Record<string, unknown>} val Value
|
|
219
325
|
* @param {boolean} [avoid] Avoid duplicates
|
|
220
326
|
* @returns {XPathTransformerContext}
|
|
221
327
|
*/
|
|
222
|
-
attribute(name: string, val: string |
|
|
328
|
+
attribute(name: string, val: string | Record<string, unknown>, avoid?: boolean): XPathTransformerContext;
|
|
223
329
|
/**
|
|
224
330
|
* Append text node content.
|
|
225
331
|
* @param {string} txt Text
|
|
226
332
|
* @returns {XPathTransformerContext}
|
|
227
333
|
*/
|
|
228
334
|
text(txt: string): XPathTransformerContext;
|
|
335
|
+
/**
|
|
336
|
+
* Append a comment.
|
|
337
|
+
* @param {string} text - Comment text
|
|
338
|
+
* @returns {XPathTransformerContext}
|
|
339
|
+
*/
|
|
340
|
+
comment(text: string): XPathTransformerContext;
|
|
341
|
+
/**
|
|
342
|
+
* Append a processing instruction.
|
|
343
|
+
* @param {string} target - Processing instruction target
|
|
344
|
+
* @param {string} data - Processing instruction data
|
|
345
|
+
* @returns {XPathTransformerContext}
|
|
346
|
+
*/
|
|
347
|
+
processingInstruction(target: string, data: string): XPathTransformerContext;
|
|
229
348
|
/**
|
|
230
349
|
* Define a property set (optionally composed from other sets).
|
|
231
350
|
* @param {string} name Property set name
|
|
232
|
-
* @param {
|
|
351
|
+
* @param {Record<string, unknown>} obj Base properties
|
|
233
352
|
* @param {string[]} [use] Property set names to merge
|
|
234
353
|
* @returns {XPathTransformerContext}
|
|
235
354
|
*/
|
|
236
|
-
propertySet(name: string, obj:
|
|
355
|
+
propertySet(name: string, obj: Record<string, unknown>, use?: string[]): XPathTransformerContext;
|
|
237
356
|
/**
|
|
238
357
|
* Merge properties from a named property set into obj.
|
|
239
|
-
* @param {
|
|
358
|
+
* @param {Record<string, unknown>} obj Target object
|
|
240
359
|
* @param {string} name Property set name
|
|
241
|
-
* @returns {
|
|
360
|
+
* @returns {Record<string, unknown>}
|
|
242
361
|
*/
|
|
243
|
-
_usePropertySets(obj:
|
|
362
|
+
_usePropertySets(obj: Record<string, unknown>, name: string): Record<string, unknown>;
|
|
244
363
|
/**
|
|
245
364
|
* Retrieve a key-mapped node matching a value or return context.
|
|
246
365
|
* @param {string} name Key name
|
|
247
|
-
* @param {
|
|
248
|
-
* @returns {
|
|
366
|
+
* @param {any} value Value to match
|
|
367
|
+
* @returns {any}
|
|
249
368
|
*/
|
|
250
369
|
getKey(name: string, value: any): any;
|
|
251
370
|
/**
|
|
@@ -256,5 +375,62 @@ declare class XPathTransformerContext {
|
|
|
256
375
|
* @returns {XPathTransformerContext}
|
|
257
376
|
*/
|
|
258
377
|
key(name: string, match: string, use: string): XPathTransformerContext;
|
|
378
|
+
/**
|
|
379
|
+
* Conditionally execute a callback when an XPath evaluates to a truthy
|
|
380
|
+
* scalar or a non-empty node set (akin to xsl:if semantics).
|
|
381
|
+
*
|
|
382
|
+
* Truthiness rules:
|
|
383
|
+
* - Node set: length > 0 passes.
|
|
384
|
+
* - Scalar: Boolean(value) must be true.
|
|
385
|
+
*
|
|
386
|
+
* @param {string} select XPath expression
|
|
387
|
+
* @param {(this: XPathTransformerContext)
|
|
388
|
+
* => void} cb Callback invoked if condition passes
|
|
389
|
+
* @returns {XPathTransformerContext}
|
|
390
|
+
*/
|
|
391
|
+
if(select: string, cb: (this: XPathTransformerContext) => void): XPathTransformerContext;
|
|
392
|
+
/**
|
|
393
|
+
* Internal helper: evaluate XPath truthiness like if().
|
|
394
|
+
* @param {string} select
|
|
395
|
+
* @returns {boolean}
|
|
396
|
+
*/
|
|
397
|
+
_passesIf(select: string): boolean;
|
|
398
|
+
/**
|
|
399
|
+
* Conditional with optional fallback (like choose/otherwise).
|
|
400
|
+
* Truthiness same as `if()`.
|
|
401
|
+
* @param {string} select XPath expression
|
|
402
|
+
* @param {(this: XPathTransformerContext)
|
|
403
|
+
* => void} whenCb Callback when condition passes
|
|
404
|
+
* @param {(this: XPathTransformerContext)
|
|
405
|
+
* => void} [otherwiseCb] Callback when condition fails
|
|
406
|
+
* @returns {XPathTransformerContext}
|
|
407
|
+
*/
|
|
408
|
+
choose(select: string, whenCb: (this: XPathTransformerContext) => void, otherwiseCb?: (this: XPathTransformerContext) => void): XPathTransformerContext;
|
|
409
|
+
/**
|
|
410
|
+
* Analyze a string with a regular expression, equivalent to
|
|
411
|
+
* xsl:analyze-string. Processes matching and non-matching substrings
|
|
412
|
+
* with separate callbacks.
|
|
413
|
+
* @param {string} str - The string to analyze
|
|
414
|
+
* @param {string|RegExp} regex - Regular expression to match against
|
|
415
|
+
* @param {{
|
|
416
|
+
* matchingSubstring?: (
|
|
417
|
+
* this: XPathTransformerContext,
|
|
418
|
+
* substring: string,
|
|
419
|
+
* groups: string[],
|
|
420
|
+
* regexGroup: (n: number) => string
|
|
421
|
+
* ) => void,
|
|
422
|
+
* nonMatchingSubstring?: (
|
|
423
|
+
* this: XPathTransformerContext,
|
|
424
|
+
* substring: string
|
|
425
|
+
* ) => void,
|
|
426
|
+
* flags?: string
|
|
427
|
+
* }} options - Options object
|
|
428
|
+
* @returns {XPathTransformerContext}
|
|
429
|
+
*/
|
|
430
|
+
analyzeString(str: string, regex: string | RegExp, options?: {
|
|
431
|
+
matchingSubstring?: (this: XPathTransformerContext, substring: string, groups: string[], regexGroup: (n: number) => string) => void;
|
|
432
|
+
nonMatchingSubstring?: (this: XPathTransformerContext, substring: string) => void;
|
|
433
|
+
flags?: string;
|
|
434
|
+
}): XPathTransformerContext;
|
|
259
435
|
}
|
|
260
436
|
//# sourceMappingURL=XPathTransformerContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XPathTransformerContext.d.ts","sourceRoot":"","sources":["../src/XPathTransformerContext.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"XPathTransformerContext.d.ts","sourceRoot":"","sources":["../src/XPathTransformerContext.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-browser.d.ts","sourceRoot":"","sources":["../src/index-browser.js"],"names":[],"mappings":";;iBAA8B,YAAY"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-node.d.ts","sourceRoot":"","sources":["../src/index-node.js"],"names":[],"mappings":";;iBAC8B,YAAY"}
|