jtlt 0.3.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 +9 -0
- package/README.md +46 -78
- package/demo/codemirror.esm.js +28242 -0
- package/demo/codemirror.js +94 -0
- package/demo/index.css +7 -0
- package/demo/index.html +11 -14
- package/demo/index.js +206 -26
- 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/dist/JSONPathTransformerContext.d.ts +88 -4
- package/dist/JSONPathTransformerContext.d.ts.map +1 -1
- package/dist/XPathTransformer.d.ts +2 -2
- package/dist/XPathTransformerContext.d.ts +92 -8
- package/dist/XPathTransformerContext.d.ts.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/docs/API.expanded.md +5 -3
- package/docs/API.md +1 -1
- package/docs/TO-DO.md +55 -31
- package/eslint.config.js +3 -1
- package/package.json +24 -4
- package/rollup.config.js +13 -0
- package/src/JSONPathTransformerContext.js +422 -4
- package/src/XPathTransformer.js +1 -1
- package/src/XPathTransformerContext.js +462 -11
- package/src/index.js +9 -6
- package/tsconfig.json +5 -2
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
function _arrayLikeToArray(r, a) {
|
|
2
|
+
(null == a || a > r.length) && (a = r.length);
|
|
3
|
+
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
|
|
4
|
+
return n;
|
|
5
|
+
}
|
|
6
|
+
function _arrayWithoutHoles(r) {
|
|
7
|
+
if (Array.isArray(r)) return _arrayLikeToArray(r);
|
|
8
|
+
}
|
|
9
|
+
function _iterableToArray(r) {
|
|
10
|
+
if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
|
|
11
|
+
}
|
|
12
|
+
function _nonIterableSpread() {
|
|
13
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
14
|
+
}
|
|
15
|
+
function _toConsumableArray(r) {
|
|
16
|
+
return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
|
|
17
|
+
}
|
|
18
|
+
function _unsupportedIterableToArray(r, a) {
|
|
19
|
+
if (r) {
|
|
20
|
+
if ("string" == typeof r) return _arrayLikeToArray(r, a);
|
|
21
|
+
var t = {}.toString.call(r).slice(8, -1);
|
|
22
|
+
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @typedef {JSONValue[]} JSONArray
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* @typedef {null|boolean|number|string|JSONArray|{[key: string]: JSONValue}} JSONValue
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @callback SimpleJSONCallback
|
|
35
|
+
* @param {...JSONValue} json
|
|
36
|
+
* @returns {void}
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @callback SimpleJSONErrback
|
|
41
|
+
* @param {Error} err
|
|
42
|
+
* @param {string|string[]} jsonURL
|
|
43
|
+
* @returns {JSONValue}
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @typedef {((
|
|
48
|
+
* jsonURL: string|string[],
|
|
49
|
+
* cb?: SimpleJSONCallback,
|
|
50
|
+
* errBack?: SimpleJSONErrback
|
|
51
|
+
* ) => Promise<JSONValue>) & {
|
|
52
|
+
* _fetch?: import('./index-polyglot.js').SimpleFetch,
|
|
53
|
+
* hasURLBasePath?: boolean,
|
|
54
|
+
* basePath?: string|false
|
|
55
|
+
* }} getJSONCallback
|
|
56
|
+
*/
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @param {object} [cfg]
|
|
60
|
+
* @param {import('./index-polyglot.js').SimpleFetch} [cfg.fetch]
|
|
61
|
+
* @returns {getJSONCallback}
|
|
62
|
+
*/
|
|
63
|
+
|
|
64
|
+
function _await(value, then, direct) {
|
|
65
|
+
if (!value || !value.then) {
|
|
66
|
+
value = Promise.resolve(value);
|
|
67
|
+
}
|
|
68
|
+
return then ? value.then(then) : value;
|
|
69
|
+
}
|
|
70
|
+
function _invoke(body, then) {
|
|
71
|
+
var result = body();
|
|
72
|
+
if (result && result.then) {
|
|
73
|
+
return result.then(then);
|
|
74
|
+
}
|
|
75
|
+
return then(result);
|
|
76
|
+
}
|
|
77
|
+
function _catch(body, recover) {
|
|
78
|
+
try {
|
|
79
|
+
var result = body();
|
|
80
|
+
} catch (e) {
|
|
81
|
+
return recover(e);
|
|
82
|
+
}
|
|
83
|
+
if (result && result.then) {
|
|
84
|
+
return result.then(void 0, recover);
|
|
85
|
+
}
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
function buildGetJSONWithFetch() {
|
|
89
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
90
|
+
_ref$fetch = _ref.fetch,
|
|
91
|
+
fetch = _ref$fetch === void 0 ? typeof window !== 'undefined' ? window.fetch : self.fetch : _ref$fetch;
|
|
92
|
+
/**
|
|
93
|
+
* @type {getJSONCallback}
|
|
94
|
+
*/
|
|
95
|
+
return function getJSON(jsonURL, cb, errBack) {
|
|
96
|
+
try {
|
|
97
|
+
var _exit = false;
|
|
98
|
+
return _await(_catch(function () {
|
|
99
|
+
return _invoke(function () {
|
|
100
|
+
if (Array.isArray(jsonURL)) {
|
|
101
|
+
return _await(Promise.all(jsonURL.map(function (url) {
|
|
102
|
+
return /** @type {getJSONCallback} */getJSON(url);
|
|
103
|
+
})), function (arrResult) {
|
|
104
|
+
if (cb) {
|
|
105
|
+
// eslint-disable-next-line promise/prefer-await-to-callbacks -- Old-style API
|
|
106
|
+
cb.apply(void 0, _toConsumableArray(arrResult));
|
|
107
|
+
}
|
|
108
|
+
_exit = true;
|
|
109
|
+
return arrResult;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}, function (_result) {
|
|
113
|
+
return _exit ? _result : _await(fetch(jsonURL), function (resp) {
|
|
114
|
+
return _await(resp.json(), function (result) {
|
|
115
|
+
return typeof cb === 'function'
|
|
116
|
+
// eslint-disable-next-line promise/prefer-await-to-callbacks -- Old-style API
|
|
117
|
+
? cb(result) : result;
|
|
118
|
+
// https://github.com/bcoe/c8/issues/135
|
|
119
|
+
/* c8 ignore next */
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
}, function (err) {
|
|
124
|
+
var e = /** @type {Error} */err;
|
|
125
|
+
e.message += " (File: ".concat(jsonURL, ")");
|
|
126
|
+
if (errBack) {
|
|
127
|
+
return errBack(e, jsonURL);
|
|
128
|
+
}
|
|
129
|
+
throw e;
|
|
130
|
+
// https://github.com/bcoe/c8/issues/135
|
|
131
|
+
/* c8 ignore next */
|
|
132
|
+
}));
|
|
133
|
+
/* c8 ignore next */
|
|
134
|
+
} catch (e) {
|
|
135
|
+
return Promise.reject(e);
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
var getJSON = buildGetJSONWithFetch();
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* For polymorphism with Node.
|
|
144
|
+
* @returns {getJSON}
|
|
145
|
+
*/
|
|
146
|
+
var buildGetJSON = function buildGetJSON() {
|
|
147
|
+
return getJSON;
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
export { buildGetJSON, getJSON };
|
|
151
|
+
//# sourceMappingURL=index-es.js.map
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
export default JSONPathTransformerContext;
|
|
2
|
+
export type NumberValue = number | string | {
|
|
3
|
+
value?: number | string;
|
|
4
|
+
count?: string;
|
|
5
|
+
format?: string;
|
|
6
|
+
groupingSeparator?: string;
|
|
7
|
+
groupingSize?: number;
|
|
8
|
+
lang?: string;
|
|
9
|
+
letterValue?: string;
|
|
10
|
+
};
|
|
2
11
|
/**
|
|
3
12
|
* Sort spec types used by applyTemplates() and forEach().
|
|
4
13
|
*/
|
|
@@ -50,6 +59,17 @@ export type JSONPathTransformerContextConfig<T = "json"> = {
|
|
|
50
59
|
specificityPriorityResolver?: ((path: string) => number) | undefined;
|
|
51
60
|
templates: import("./index.js").JSONPathTemplateObject<T>[];
|
|
52
61
|
};
|
|
62
|
+
/**
|
|
63
|
+
* @typedef {number|string|{
|
|
64
|
+
* value?: number|string,
|
|
65
|
+
* count?: string,
|
|
66
|
+
* format?: string,
|
|
67
|
+
* groupingSeparator?: string,
|
|
68
|
+
* groupingSize?: number,
|
|
69
|
+
* lang?: string,
|
|
70
|
+
* letterValue?: string
|
|
71
|
+
* }} NumberValue
|
|
72
|
+
*/
|
|
53
73
|
/**
|
|
54
74
|
* Sort spec types used by applyTemplates() and forEach().
|
|
55
75
|
* @typedef {{
|
|
@@ -99,6 +119,13 @@ declare class JSONPathTransformerContext<T = "json"> {
|
|
|
99
119
|
* of template objects
|
|
100
120
|
*/
|
|
101
121
|
constructor(config: JSONPathTransformerContextConfig<T>, templates: import("./index.js").JSONPathTemplateObject<T>[]);
|
|
122
|
+
/**
|
|
123
|
+
* Holds the current iteration state (for position calculations).
|
|
124
|
+
* @type {{ index?: number } | undefined}
|
|
125
|
+
*/
|
|
126
|
+
iterationState: {
|
|
127
|
+
index?: number;
|
|
128
|
+
} | undefined;
|
|
102
129
|
_config: JSONPathTransformerContextConfig<T>;
|
|
103
130
|
_templates: import("./index.js").JSONPathTemplateObject<T>[];
|
|
104
131
|
_contextObj: string | number | boolean | object | null;
|
|
@@ -206,6 +233,32 @@ declare class JSONPathTransformerContext<T = "json"> {
|
|
|
206
233
|
* @returns {this}
|
|
207
234
|
*/
|
|
208
235
|
valueOf(select?: string | object): this;
|
|
236
|
+
/**
|
|
237
|
+
* Analyze a string with a regular expression, equivalent to
|
|
238
|
+
* xsl:analyze-string. Processes matching and non-matching substrings
|
|
239
|
+
* with separate callbacks.
|
|
240
|
+
* @param {string} str - The string to analyze
|
|
241
|
+
* @param {string|RegExp} regex - Regular expression to match against
|
|
242
|
+
* @param {{
|
|
243
|
+
* matchingSubstring?: (
|
|
244
|
+
* this: JSONPathTransformerContext<T>,
|
|
245
|
+
* substring: string,
|
|
246
|
+
* groups: string[],
|
|
247
|
+
* regexGroup: (n: number) => string
|
|
248
|
+
* ) => void,
|
|
249
|
+
* nonMatchingSubstring?: (
|
|
250
|
+
* this: JSONPathTransformerContext<T>,
|
|
251
|
+
* substring: string
|
|
252
|
+
* ) => void,
|
|
253
|
+
* flags?: string
|
|
254
|
+
* }} options - Options object
|
|
255
|
+
* @returns {this}
|
|
256
|
+
*/
|
|
257
|
+
analyzeString(str: string, regex: string | RegExp, options?: {
|
|
258
|
+
matchingSubstring?: (this: JSONPathTransformerContext<T>, substring: string, groups: string[], regexGroup: (n: number) => string) => void;
|
|
259
|
+
nonMatchingSubstring?: (this: JSONPathTransformerContext<T>, substring: string) => void;
|
|
260
|
+
flags?: string;
|
|
261
|
+
}): this;
|
|
209
262
|
/**
|
|
210
263
|
* Deep copy selection or current context when omitted.
|
|
211
264
|
* @param {string} [select] - JSONPath selector
|
|
@@ -238,12 +291,43 @@ declare class JSONPathTransformerContext<T = "json"> {
|
|
|
238
291
|
*/
|
|
239
292
|
string(str: string, cb?: import("./JSONJoiningTransformer.js").SimpleCallback<T>): this;
|
|
240
293
|
/**
|
|
241
|
-
* Append a number to JSON output
|
|
242
|
-
*
|
|
243
|
-
*
|
|
294
|
+
* Append a number to JSON output with xsl:number-like formatting.
|
|
295
|
+
* @param {NumberValue} num - Number value, "position()" string, or
|
|
296
|
+
* options object
|
|
244
297
|
* @returns {this}
|
|
245
298
|
*/
|
|
246
|
-
number(num:
|
|
299
|
+
number(num: NumberValue): this;
|
|
300
|
+
/**
|
|
301
|
+
* Calculate position in current iteration context.
|
|
302
|
+
* @param {string} [count] - JSONPath expression to match
|
|
303
|
+
* @returns {number}
|
|
304
|
+
*/
|
|
305
|
+
calculatePosition(count?: string): number;
|
|
306
|
+
/**
|
|
307
|
+
* Format a number according to format string.
|
|
308
|
+
* @param {number} num - Number to format
|
|
309
|
+
* @param {string} format - Format string (1, a, A, i, I, 01, etc.)
|
|
310
|
+
* @param {string} [groupingSeparator] - Separator for grouping
|
|
311
|
+
* @param {number} [groupingSize] - Size of groups
|
|
312
|
+
* @param {string} [locale]
|
|
313
|
+
* @returns {string}
|
|
314
|
+
*/
|
|
315
|
+
_formatNumber(num: number, format: string, groupingSeparator?: string, groupingSize?: number, locale?: string): string;
|
|
316
|
+
/**
|
|
317
|
+
* Convert number to Roman numerals.
|
|
318
|
+
* @param {number} num - Number to convert (1-3999)
|
|
319
|
+
* @returns {string}
|
|
320
|
+
* @private
|
|
321
|
+
*/
|
|
322
|
+
private _toRoman;
|
|
323
|
+
/**
|
|
324
|
+
* Convert number to alphabetic sequence.
|
|
325
|
+
* @param {number} num - Number to convert
|
|
326
|
+
* @param {boolean} uppercase - Use uppercase letters
|
|
327
|
+
* @returns {string}
|
|
328
|
+
* @private
|
|
329
|
+
*/
|
|
330
|
+
private _toAlphabetic;
|
|
247
331
|
/**
|
|
248
332
|
* Append plain text directly to the output without escaping or JSON
|
|
249
333
|
* stringification. Mirrors the joining transformer API so templates can
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSONPathTransformerContext.d.ts","sourceRoot":"","sources":["../src/JSONPathTransformerContext.js"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"JSONPathTransformerContext.d.ts","sourceRoot":"","sources":["../src/JSONPathTransformerContext.js"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ export type XPathTransformerConfig<T> = {
|
|
|
9
9
|
*/
|
|
10
10
|
templates: import("./index.js").XPathTemplateArray<T>;
|
|
11
11
|
/**
|
|
12
|
-
* XPath version (1|2)
|
|
12
|
+
* XPath version (1|2|3.1)
|
|
13
13
|
*/
|
|
14
14
|
xpathVersion?: number | undefined;
|
|
15
15
|
};
|
|
@@ -19,7 +19,7 @@ export type XPathTransformerConfig<T> = {
|
|
|
19
19
|
* @property {boolean} [errorOnEqualPriority] Throw on equal priority
|
|
20
20
|
* @property {import('./index.js').
|
|
21
21
|
* XPathTemplateArray<T>} templates Template objects
|
|
22
|
-
* @property {number} [xpathVersion] XPath version (1|2)
|
|
22
|
+
* @property {number} [xpathVersion] XPath version (1|2|3.1)
|
|
23
23
|
*/
|
|
24
24
|
/**
|
|
25
25
|
* Applies named XPath-driven templates to XML/HTML DOM data.
|
|
@@ -5,7 +5,7 @@ export type XPathTransformerContextConfig = {
|
|
|
5
5
|
*/
|
|
6
6
|
data?: unknown;
|
|
7
7
|
/**
|
|
8
|
-
* - 1
|
|
8
|
+
* - 1, 2, 3.1 (default 1)
|
|
9
9
|
*/
|
|
10
10
|
xpathVersion?: number | undefined;
|
|
11
11
|
/**
|
|
@@ -18,7 +18,7 @@ export type XPathTransformerContextConfig = {
|
|
|
18
18
|
/**
|
|
19
19
|
* @typedef {object} XPathTransformerContextConfig
|
|
20
20
|
* @property {unknown} [data] - XML/DOM root to transform
|
|
21
|
-
* @property {number} [xpathVersion] - 1
|
|
21
|
+
* @property {number} [xpathVersion] - 1, 2, 3.1 (default 1)
|
|
22
22
|
* @property {import('./index.js').
|
|
23
23
|
* JoiningTransformer} joiningTransformer Joiner
|
|
24
24
|
* @property {boolean} [errorOnEqualPriority]
|
|
@@ -28,13 +28,13 @@ export type XPathTransformerContextConfig = {
|
|
|
28
28
|
* Execution context for XPath-driven template application.
|
|
29
29
|
*
|
|
30
30
|
* Similar to JSONPathTransformerContext but uses XPath expressions on a
|
|
31
|
-
* DOM/XML-like tree. Supports XPath 1.0 (default)
|
|
32
|
-
* `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`.
|
|
33
33
|
*
|
|
34
34
|
* Expected config:
|
|
35
35
|
* - data: A Document, Element, or XML-like root node.
|
|
36
36
|
* - joiningTransformer: joiner with append(), string(), object(), array(), etc.
|
|
37
|
-
* - xpathVersion: 1|2 (default 1)
|
|
37
|
+
* - xpathVersion: 1|2|3.1 (default 1)
|
|
38
38
|
* - errorOnEqualPriority, specificityPriorityResolver (same semantics).
|
|
39
39
|
*/
|
|
40
40
|
declare class XPathTransformerContext {
|
|
@@ -203,11 +203,69 @@ declare class XPathTransformerContext {
|
|
|
203
203
|
*/
|
|
204
204
|
string(str: string, cb?: (this: XPathTransformerContext) => void): XPathTransformerContext;
|
|
205
205
|
/**
|
|
206
|
-
* Append number.
|
|
207
|
-
* @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
|
|
208
216
|
* @returns {XPathTransformerContext}
|
|
209
217
|
*/
|
|
210
|
-
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;
|
|
211
269
|
/**
|
|
212
270
|
* Append plain text (no escaping changes).
|
|
213
271
|
* @param {string} str Text
|
|
@@ -348,5 +406,31 @@ declare class XPathTransformerContext {
|
|
|
348
406
|
* @returns {XPathTransformerContext}
|
|
349
407
|
*/
|
|
350
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;
|
|
351
435
|
}
|
|
352
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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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -200,8 +200,8 @@ export type XPathJTLTOptions<T> = BaseJTLTOptions<T> & {
|
|
|
200
200
|
query?: TemplateFunction<T, "dom", import("./XPathTransformerContext.js").default>;
|
|
201
201
|
forQuery?: [string, TemplateFunction<T, "dom", import("./JSONPathTransformerContext.js").default>];
|
|
202
202
|
engineType: "xpath";
|
|
203
|
-
xpathVersion?: 1 | 2;
|
|
204
|
-
outputType?:
|
|
203
|
+
xpathVersion?: 1 | 2 | 3.1;
|
|
204
|
+
outputType?: T;
|
|
205
205
|
};
|
|
206
206
|
export type JTLTOptions = JSONPathJTLTOptions | JSONPathJTLTOptions<"string"> | JSONPathJTLTOptions<"dom"> | XPathJTLTOptions<"json"> | XPathJTLTOptions<"string"> | XPathJTLTOptions<"dom">;
|
|
207
207
|
/**
|
|
@@ -354,8 +354,8 @@ export type JTLTOptions = JSONPathJTLTOptions | JSONPathJTLTOptions<"string"> |
|
|
|
354
354
|
* import('./JSONPathTransformerContext.js').default
|
|
355
355
|
* >],
|
|
356
356
|
* engineType: 'xpath',
|
|
357
|
-
* xpathVersion?: 1|2,
|
|
358
|
-
* outputType?:
|
|
357
|
+
* xpathVersion?: 1|2|3.1,
|
|
358
|
+
* outputType?: T
|
|
359
359
|
* }} XPathJTLTOptions
|
|
360
360
|
*/
|
|
361
361
|
/**
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"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"}
|
package/docs/API.expanded.md
CHANGED
|
@@ -85,12 +85,13 @@ Responsibilities:
|
|
|
85
85
|
- Sorts by priority (numeric or specificity resolver).
|
|
86
86
|
- Invokes winning template; falls back to default rules when no match.
|
|
87
87
|
|
|
88
|
-
### `XPathTransformer`
|
|
88
|
+
### `XPathTransformer`
|
|
89
89
|
|
|
90
90
|
Same pattern for XML/HTML DOM data using XPath selectors.
|
|
91
91
|
|
|
92
92
|
Config additions:
|
|
93
|
-
- `xpathVersion`: `1` (native `XPathEvaluator`), `2` (`xpath2.js`).
|
|
93
|
+
- `xpathVersion`: `1` (native `XPathEvaluator`), `2` (`xpath2.js`), `3.1` (`fontoxpath`).
|
|
94
|
+
Default `1`.
|
|
94
95
|
|
|
95
96
|
```js
|
|
96
97
|
import {XPathTransformer, StringJoiningTransformer} from 'jtlt';
|
|
@@ -122,7 +123,8 @@ const out = engine.transform('');
|
|
|
122
123
|
```
|
|
123
124
|
|
|
124
125
|
Limitations:
|
|
125
|
-
-
|
|
126
|
+
- Versions 2 and 3 (`xpath2.js` and `fontoxpath`) may lack some XPath functions;
|
|
127
|
+
stick to basic location paths and simple predicates.
|
|
126
128
|
- Namespace resolution not yet exposed (future `namespaceResolver` option).
|
|
127
129
|
|
|
128
130
|
## Contexts
|
package/docs/API.md
CHANGED
|
@@ -25,7 +25,7 @@ new JTLT({
|
|
|
25
25
|
- JSONPathTransformer: on JSON with JSONPath selectors; resolves
|
|
26
26
|
priority and falls back to defaults when no template matches.
|
|
27
27
|
- XPathTransformer (experimental): on XML/HTML DOM. Choose
|
|
28
|
-
`engineType: 'xpath'` on JTLT and set `xpathVersion: 1 | 2`.
|
|
28
|
+
`engineType: 'xpath'` on JTLT and set `xpathVersion: 1 | 2 | 3.1`.
|
|
29
29
|
|
|
30
30
|
## Context basics
|
|
31
31
|
|