jtlt 0.12.0 → 0.13.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 +5 -0
- package/README.md +9 -5
- package/demo/calltemplate-params-demo.js +19 -15
- package/demo/codemirror.esm.js +140 -70
- package/demo/codemirror.js +9 -5
- package/demo/index.js +2 -1
- package/demo/vendor/fontoxpath/dist/fontoxpath.esm.js +508 -499
- package/demo/vendor/jamilih/dist/jml.mjs +516 -225
- package/demo/vendor/jsonpath-plus/dist/index-browser-esm.js +11 -5
- package/dist/AbstractJoiningTransformer.d.ts +12 -20
- package/dist/AbstractJoiningTransformer.d.ts.map +1 -1
- package/dist/DOMJoiningTransformer.d.ts +502 -19
- package/dist/DOMJoiningTransformer.d.ts.map +1 -1
- package/dist/JSONJoiningTransformer.d.ts +41 -25
- package/dist/JSONJoiningTransformer.d.ts.map +1 -1
- package/dist/JSONPathTransformer.d.ts +20 -20
- package/dist/JSONPathTransformer.d.ts.map +1 -1
- package/dist/JSONPathTransformerContext.d.ts +103 -80
- package/dist/JSONPathTransformerContext.d.ts.map +1 -1
- package/dist/StringJoiningTransformer.d.ts +42 -28
- package/dist/StringJoiningTransformer.d.ts.map +1 -1
- package/dist/XPathTransformer.d.ts +11 -11
- package/dist/XPathTransformer.d.ts.map +1 -1
- package/dist/XPathTransformerContext.d.ts +47 -45
- package/dist/XPathTransformerContext.d.ts.map +1 -1
- package/dist/XSLTStyleJSONPathResolver.d.ts +1 -1
- package/dist/XSLTStyleJSONPathResolver.d.ts.map +1 -1
- package/dist/index-browser.d.ts +2 -2
- package/dist/index-browser.d.ts.map +1 -1
- package/dist/index-node.d.ts +2 -2
- package/dist/index-node.d.ts.map +1 -1
- package/dist/index.d.ts +126 -167
- package/dist/index.d.ts.map +1 -1
- package/docs/API.expanded.md +6 -4
- package/docs/API.md +1 -1
- package/docs/TO-DO.md +4 -2
- package/eslint.config.js +17 -1
- package/package.json +23 -22
- package/pnpm-workspace.yaml +32 -4
- package/rollup.config.js +42 -0
- package/src/AbstractJoiningTransformer.js +8 -1
- package/src/DOMJoiningTransformer.js +56 -27
- package/src/JSONJoiningTransformer.js +64 -44
- package/src/JSONPathTransformer.js +86 -85
- package/src/JSONPathTransformerContext.js +95 -48
- package/src/StringJoiningTransformer.js +48 -23
- package/src/XPathTransformer.js +18 -14
- package/src/XPathTransformerContext.js +173 -123
- package/src/index-browser.js +1 -0
- package/src/index-node.js +2 -0
- package/src/index.js +125 -68
- package/test.html +17 -0
- package/test.js +45 -0
- package/tsconfig-prod.json +1 -0
- package/tsconfig.json +3 -2
- package/dist/types.d.ts +0 -204
- package/dist/types.d.ts.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,213 +1,156 @@
|
|
|
1
|
+
import DOMJoiningTransformer from './DOMJoiningTransformer.js';
|
|
2
|
+
import JSONJoiningTransformer from './JSONJoiningTransformer.js';
|
|
3
|
+
import StringJoiningTransformer from './StringJoiningTransformer.js';
|
|
1
4
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Overloads help TypeScript select the correct constructor signature.
|
|
5
|
-
* @overload
|
|
6
|
-
* @param {Omit<JSONPathJTLTOptions<"json">, "success">} cfg
|
|
7
|
-
* @returns {Promise<ResultType<"json">>}
|
|
8
|
-
*/
|
|
9
|
-
export function jtlt(cfg: Omit<JSONPathJTLTOptions<"json">, "success">): Promise<ResultType<"json">>;
|
|
10
|
-
/**
|
|
11
|
-
* @overload
|
|
12
|
-
* @param {Omit<JSONPathJTLTOptions<"string">, "success">} cfg
|
|
13
|
-
* @returns {Promise<ResultType<"string">>}
|
|
14
|
-
*/
|
|
15
|
-
export function jtlt(cfg: Omit<JSONPathJTLTOptions<"string">, "success">): Promise<ResultType<"string">>;
|
|
16
|
-
/**
|
|
17
|
-
* @overload
|
|
18
|
-
* @param {Omit<JSONPathJTLTOptions<"dom">, "success">} cfg
|
|
19
|
-
* @returns {Promise<ResultType<"dom">>}
|
|
20
|
-
*/
|
|
21
|
-
export function jtlt(cfg: Omit<JSONPathJTLTOptions<"dom">, "success">): Promise<ResultType<"dom">>;
|
|
22
|
-
/**
|
|
23
|
-
* @overload
|
|
24
|
-
* @param {Omit<XPathJTLTOptions<"json">, "success">} cfg
|
|
25
|
-
* @returns {Promise<ResultType<"json">>}
|
|
26
|
-
*/
|
|
27
|
-
export function jtlt(cfg: Omit<XPathJTLTOptions<"json">, "success">): Promise<ResultType<"json">>;
|
|
28
|
-
/**
|
|
29
|
-
* @overload
|
|
30
|
-
* @param {Omit<XPathJTLTOptions<"dom">, "success">} cfg
|
|
31
|
-
* @returns {Promise<ResultType<"dom">>}
|
|
32
|
-
*/
|
|
33
|
-
export function jtlt(cfg: Omit<XPathJTLTOptions<"dom">, "success">): Promise<ResultType<"dom">>;
|
|
34
|
-
/**
|
|
35
|
-
* @overload
|
|
36
|
-
* @param {Omit<XPathJTLTOptions<"string">, "success">} cfg
|
|
37
|
-
* @returns {Promise<ResultType<"string">>}
|
|
38
|
-
*/
|
|
39
|
-
export function jtlt(cfg: Omit<XPathJTLTOptions<"string">, "success">): Promise<ResultType<"string">>;
|
|
40
|
-
export function setWindow(win: import("jsdom").DOMWindow | typeof globalThis): void;
|
|
41
|
-
export { default as AbstractJoiningTransformer } from "./AbstractJoiningTransformer.js";
|
|
42
|
-
export { default as StringJoiningTransformer } from "./StringJoiningTransformer.js";
|
|
43
|
-
export { default as DOMJoiningTransformer } from "./DOMJoiningTransformer.js";
|
|
44
|
-
export { default as JSONJoiningTransformer } from "./JSONJoiningTransformer.js";
|
|
45
|
-
export { default as XSLTStyleJSONPathResolver } from "./XSLTStyleJSONPathResolver.js";
|
|
46
|
-
export { default as JSONPathTransformerContext } from "./JSONPathTransformerContext.js";
|
|
47
|
-
export { default as JSONPathTransformer } from "./JSONPathTransformer.js";
|
|
48
|
-
export { default as XPathTransformerContext } from "./XPathTransformerContext.js";
|
|
49
|
-
export { default as XPathTransformer } from "./XPathTransformer.js";
|
|
50
|
-
export default JTLT;
|
|
51
|
-
/**
|
|
52
|
-
* Internal options extension adding private runtime state flags.
|
|
53
|
-
* Not part of the public API surface but used for narrowing casts.
|
|
5
|
+
* @param {import('jsdom').DOMWindow | typeof globalThis} win
|
|
54
6
|
*/
|
|
7
|
+
export declare const setWindow: (win: import('jsdom').DOMWindow | typeof globalThis) => void;
|
|
55
8
|
export type InternalJTLTOptions = JTLTOptions & {
|
|
56
9
|
_customJoiningTransformer?: boolean;
|
|
57
10
|
};
|
|
58
|
-
/**
|
|
59
|
-
* A template declaration whose `template` executes with `this` bound
|
|
60
|
-
* to the engine-specific context type `TCtx`.
|
|
61
|
-
* Either `path` must be provided (for pattern matching), or `name` must be
|
|
62
|
-
* provided (for named templates callable via callTemplate), or both.
|
|
63
|
-
*/
|
|
64
11
|
export type TemplateObject<T, U, TCtx> = {
|
|
65
12
|
/**
|
|
66
13
|
* - JSONPath or XPath selector for matching nodes
|
|
67
14
|
*/
|
|
68
|
-
path?: string
|
|
15
|
+
path?: string;
|
|
69
16
|
/**
|
|
70
17
|
* - Alias for 'path' (XSLT compatibility)
|
|
71
18
|
*/
|
|
72
|
-
match?: string
|
|
19
|
+
match?: string;
|
|
73
20
|
/**
|
|
74
21
|
* - Optional name for calling via callTemplate
|
|
75
22
|
*/
|
|
76
|
-
name?: string
|
|
23
|
+
name?: string;
|
|
77
24
|
/**
|
|
78
25
|
* - Optional mode for template matching
|
|
79
26
|
*/
|
|
80
|
-
mode?: string
|
|
27
|
+
mode?: string;
|
|
81
28
|
/**
|
|
82
29
|
* - Priority for template selection
|
|
83
30
|
*/
|
|
84
|
-
priority?: number
|
|
31
|
+
priority?: number;
|
|
85
32
|
/**
|
|
86
33
|
* - Template function
|
|
87
34
|
*/
|
|
88
35
|
template: TemplateFunction<T, U, TCtx>;
|
|
89
36
|
};
|
|
90
|
-
/**
|
|
91
|
-
* A callable template function with an engine-specific `this`.
|
|
92
|
-
*/
|
|
93
37
|
export type TemplateFunction<T, U, TCtx> = (this: TCtx, value: ResultType<U>, cfg?: {
|
|
94
38
|
mode?: string;
|
|
95
39
|
}) => ResultType<T> | void;
|
|
96
|
-
export type JSONPathTemplateObject<T> = TemplateObject<T, "json", import(
|
|
97
|
-
export type XPathTemplateObject<T> = TemplateObject<T, "dom", import(
|
|
98
|
-
export type XPathTemplateArray<T> = (XPathTemplateObject<T> | [
|
|
99
|
-
|
|
40
|
+
export type JSONPathTemplateObject<T extends "json" | "string" | "dom"> = TemplateObject<T, "json", import('./JSONPathTransformerContext.js').default<T>>;
|
|
41
|
+
export type XPathTemplateObject<T> = TemplateObject<T, "dom", import('./XPathTransformerContext.js').default>;
|
|
42
|
+
export type XPathTemplateArray<T> = (XPathTemplateObject<T> | [
|
|
43
|
+
string,
|
|
44
|
+
TemplateFunction<T, "dom", import('./XPathTransformerContext.js').default>
|
|
45
|
+
])[];
|
|
46
|
+
export type JSONPathTemplateArray<T extends "json" | "string" | "dom"> = JSONPathTemplateObject<T> | [
|
|
47
|
+
string,
|
|
48
|
+
TemplateFunction<T, "json", import('./JSONPathTransformerContext.js').default>
|
|
49
|
+
];
|
|
100
50
|
export type JoiningTransformer = (StringJoiningTransformer | DOMJoiningTransformer | JSONJoiningTransformer);
|
|
101
51
|
export type joiningTypes = "json" | "string" | "dom";
|
|
102
|
-
export type ResultType<T> = T extends "json" ? unknown : T extends "string" ? string : DocumentFragment | Element;
|
|
103
|
-
|
|
104
|
-
* Options common to both engines.
|
|
105
|
-
*/
|
|
106
|
-
export type BaseJTLTOptions<T> = {
|
|
52
|
+
export type ResultType<T, E extends boolean | undefined = false> = T extends "json" ? (E extends true ? any[] : unknown) : T extends "string" ? (E extends true ? string[] : string) : (E extends true ? XMLDocument[] : DocumentFragment | Element);
|
|
53
|
+
export type BaseJTLTOptions<T, E extends boolean | undefined = false> = {
|
|
107
54
|
/**
|
|
108
55
|
* A callback supplied
|
|
109
56
|
* with a single argument that is the result of this instance's
|
|
110
57
|
* transform() method. When used in TypeScript, this can be made
|
|
111
58
|
* generic as `success<T>(result: T): void`.
|
|
112
59
|
*/
|
|
113
|
-
success: (result: ResultType<T>) => void;
|
|
60
|
+
success: (result: ResultType<T, E>) => ResultType<T, E> | void;
|
|
114
61
|
/**
|
|
115
62
|
* A JSON
|
|
116
63
|
* object or DOM document (XPath)
|
|
117
64
|
*/
|
|
118
|
-
data?:
|
|
65
|
+
data?: null | boolean | number | string | object;
|
|
119
66
|
/**
|
|
120
67
|
* URL of a JSON file to retrieve for
|
|
121
68
|
* evaluation
|
|
122
69
|
*/
|
|
123
|
-
ajaxData?: string
|
|
70
|
+
ajaxData?: string;
|
|
124
71
|
/**
|
|
125
72
|
* Whether or not to
|
|
126
73
|
* report an error when equal priority templates are found
|
|
127
74
|
*/
|
|
128
|
-
errorOnEqualPriority?: boolean
|
|
75
|
+
errorOnEqualPriority?: boolean;
|
|
129
76
|
/**
|
|
130
77
|
* Whether to begin transform()
|
|
131
78
|
* immediately.
|
|
132
79
|
*/
|
|
133
|
-
autostart?: boolean
|
|
80
|
+
autostart?: boolean;
|
|
134
81
|
/**
|
|
135
82
|
* Whether to prevent
|
|
136
83
|
* parenthetical evaluations in JSONPath. Safer if relying on user
|
|
137
84
|
* input, but reduces capabilities of JSONPath.
|
|
138
85
|
*/
|
|
139
|
-
preventEval?: boolean
|
|
86
|
+
preventEval?: boolean;
|
|
140
87
|
/**
|
|
141
88
|
* For JSON output, whether to
|
|
142
89
|
* unwrap single-element root arrays to return just the element
|
|
143
90
|
*/
|
|
144
|
-
unwrapSingleResult?: boolean
|
|
91
|
+
unwrapSingleResult?: boolean;
|
|
145
92
|
/**
|
|
146
93
|
* When true, joiners return an array
|
|
147
94
|
* of complete documents: XMLDocument[] for DOM, document wrapper objects[]
|
|
148
95
|
* for JSON, and string[] for string joiners. Each array element corresponds
|
|
149
96
|
* to a root element built during transformation.
|
|
150
97
|
*/
|
|
151
|
-
exposeDocuments?:
|
|
98
|
+
exposeDocuments?: E;
|
|
152
99
|
/**
|
|
153
100
|
* The mode in which to begin the transform.
|
|
154
101
|
*/
|
|
155
|
-
mode?: string
|
|
102
|
+
mode?: string;
|
|
156
103
|
/**
|
|
157
104
|
* Will be based on the
|
|
158
105
|
* same config as passed to this instance. Defaults to a transforming
|
|
159
106
|
* function based on JSONPath and with its own set of priorities for
|
|
160
107
|
* processing templates.
|
|
161
108
|
*/
|
|
162
|
-
engine?: (
|
|
109
|
+
engine?: (opts: JTLTOptions & Required<Pick<JTLTOptions, "joiningTransformer">>) => ResultType<T, E>;
|
|
163
110
|
/**
|
|
164
111
|
* Callback for getting the priority by specificity
|
|
165
112
|
*/
|
|
166
|
-
specificityPriorityResolver?: ((path: string) => 0 | 0.5 | -0.5)
|
|
113
|
+
specificityPriorityResolver?: null | ((path: string) => 0 | 0.5 | -0.5);
|
|
167
114
|
/**
|
|
168
115
|
* A concrete joining transformer instance (or custom subclass) responsible
|
|
169
116
|
* for accumulating output. When omitted, one is created automatically based
|
|
170
117
|
* on `outputType`.
|
|
171
118
|
*/
|
|
172
|
-
joiningTransformer?: JoiningTransformer
|
|
119
|
+
joiningTransformer?: JoiningTransformer;
|
|
173
120
|
/**
|
|
174
121
|
* Config for the joining
|
|
175
122
|
* transformer.
|
|
176
123
|
*/
|
|
177
|
-
joiningConfig?: import(
|
|
124
|
+
joiningConfig?: import('./AbstractJoiningTransformer.js').JoiningTransformerConfig<T> & {
|
|
125
|
+
exposeDocuments?: E;
|
|
126
|
+
};
|
|
178
127
|
/**
|
|
179
128
|
* Parent object for context
|
|
180
129
|
*/
|
|
181
|
-
parent?: object
|
|
130
|
+
parent?: object;
|
|
182
131
|
/**
|
|
183
132
|
* Parent property name for context
|
|
184
133
|
*/
|
|
185
|
-
parentProperty?: string
|
|
134
|
+
parentProperty?: string;
|
|
186
135
|
};
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
query?: TemplateFunction<T, "json", import("./JSONPathTransformerContext.js").default>;
|
|
194
|
-
forQuery?: [string, TemplateFunction<T, "json", import("./XPathTransformerContext.js").default>];
|
|
195
|
-
engineType?: "jsonpath";
|
|
136
|
+
export type JSONPathJTLTOptions<T extends "json" | "string" | "dom" = "json", E extends boolean | undefined = false> = BaseJTLTOptions<T, E> & {
|
|
137
|
+
templates?: JSONPathTemplateArray<T>[] | TemplateFunction<T, "json", import('./JSONPathTransformerContext.js').default<T>>;
|
|
138
|
+
template?: JSONPathTemplateObject<T> | TemplateFunction<T, "json", import('./JSONPathTransformerContext.js').default>;
|
|
139
|
+
query?: TemplateFunction<T, "json", import('./JSONPathTransformerContext.js').default>;
|
|
140
|
+
forQuery?: [string, TemplateFunction<T, "json", import('./XPathTransformerContext.js').default>];
|
|
141
|
+
engineType?: 'jsonpath';
|
|
196
142
|
outputType?: T;
|
|
197
143
|
};
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
query?: TemplateFunction<T, "dom", import("./XPathTransformerContext.js").default>;
|
|
205
|
-
forQuery?: [string, TemplateFunction<T, "dom", import("./JSONPathTransformerContext.js").default>];
|
|
206
|
-
engineType: "xpath";
|
|
144
|
+
export type XPathJTLTOptions<T extends "json" | "string" | "dom", E extends boolean | undefined = false> = BaseJTLTOptions<T, E> & {
|
|
145
|
+
templates?: XPathTemplateArray<T> | TemplateFunction<T, "dom", import('./XPathTransformerContext.js').default<T>>;
|
|
146
|
+
template?: XPathTemplateObject<T> | TemplateFunction<T, "dom", import('./XPathTransformerContext.js').default>;
|
|
147
|
+
query?: TemplateFunction<T, "dom", import('./XPathTransformerContext.js').default>;
|
|
148
|
+
forQuery?: [string, TemplateFunction<T, "dom", import('./JSONPathTransformerContext.js').default>];
|
|
149
|
+
engineType: 'xpath';
|
|
207
150
|
xpathVersion?: 1 | 2 | 3.1;
|
|
208
151
|
outputType?: T;
|
|
209
152
|
};
|
|
210
|
-
export type JTLTOptions = JSONPathJTLTOptions | JSONPathJTLTOptions<"string"> | JSONPathJTLTOptions<"dom"> | XPathJTLTOptions<"json"> | XPathJTLTOptions<"string"> | XPathJTLTOptions<"dom">;
|
|
153
|
+
export type JTLTOptions<E extends boolean | undefined = any> = JSONPathJTLTOptions<"json", E> | JSONPathJTLTOptions<"string", E> | JSONPathJTLTOptions<"dom", E> | XPathJTLTOptions<"json", E> | XPathJTLTOptions<"string", E> | XPathJTLTOptions<"dom", E>;
|
|
211
154
|
/**
|
|
212
155
|
* Internal options extension adding private runtime state flags.
|
|
213
156
|
* Not part of the public API surface but used for narrowing casts.
|
|
@@ -242,7 +185,7 @@ export type JTLTOptions = JSONPathJTLTOptions | JSONPathJTLTOptions<"string"> |
|
|
|
242
185
|
* ) => ResultType<T>|void} TemplateFunction
|
|
243
186
|
*/
|
|
244
187
|
/**
|
|
245
|
-
* @template T
|
|
188
|
+
* @template {"json"|"string"|"dom"} T
|
|
246
189
|
* @typedef {TemplateObject<T, "json",
|
|
247
190
|
* import('./JSONPathTransformerContext.js').default<T>
|
|
248
191
|
* >} JSONPathTemplateObject
|
|
@@ -260,7 +203,7 @@ export type JTLTOptions = JSONPathJTLTOptions | JSONPathJTLTOptions<"string"> |
|
|
|
260
203
|
* >])[]} XPathTemplateArray
|
|
261
204
|
*/
|
|
262
205
|
/**
|
|
263
|
-
* @template T
|
|
206
|
+
* @template {"json"|"string"|"dom"} T
|
|
264
207
|
* @typedef {JSONPathTemplateObject<T> | [string, TemplateFunction<T, "json",
|
|
265
208
|
* import('./JSONPathTransformerContext.js').default
|
|
266
209
|
* >]} JSONPathTemplateArray
|
|
@@ -277,16 +220,22 @@ export type JTLTOptions = JSONPathJTLTOptions | JSONPathJTLTOptions<"string"> |
|
|
|
277
220
|
*/
|
|
278
221
|
/**
|
|
279
222
|
* @template T
|
|
280
|
-
* @
|
|
281
|
-
*
|
|
223
|
+
* @template {boolean|undefined} [E=false]
|
|
224
|
+
* @typedef {T extends "json" ?
|
|
225
|
+
* (E extends true ? any[] : unknown) :
|
|
226
|
+
* T extends "string" ?
|
|
227
|
+
* (E extends true ? string[] : string) :
|
|
228
|
+
* (E extends true ? XMLDocument[] :
|
|
229
|
+
* DocumentFragment|Element)} ResultType
|
|
282
230
|
*/
|
|
283
231
|
/**
|
|
284
232
|
* Options common to both engines.
|
|
285
233
|
* @template T
|
|
234
|
+
* @template {boolean|undefined} [E=false]
|
|
286
235
|
* @typedef {object} BaseJTLTOptions
|
|
287
236
|
* @property {(
|
|
288
|
-
* result: ResultType<T>
|
|
289
|
-
* ) => void} success A callback supplied
|
|
237
|
+
* result: ResultType<T, E>
|
|
238
|
+
* ) => ResultType<T, E>|void} success A callback supplied
|
|
290
239
|
* with a single argument that is the result of this instance's
|
|
291
240
|
* transform() method. When used in TypeScript, this can be made
|
|
292
241
|
* generic as `success<T>(result: T): void`.
|
|
@@ -303,34 +252,40 @@ export type JTLTOptions = JSONPathJTLTOptions | JSONPathJTLTOptions<"string"> |
|
|
|
303
252
|
* input, but reduces capabilities of JSONPath.
|
|
304
253
|
* @property {boolean} [unwrapSingleResult] For JSON output, whether to
|
|
305
254
|
* unwrap single-element root arrays to return just the element
|
|
306
|
-
* @property {
|
|
255
|
+
* @property {E} [exposeDocuments] When true, joiners return an array
|
|
307
256
|
* of complete documents: XMLDocument[] for DOM, document wrapper objects[]
|
|
308
257
|
* for JSON, and string[] for string joiners. Each array element corresponds
|
|
309
258
|
* to a root element built during transformation.
|
|
310
259
|
* @property {string} [mode] The mode in which to begin the transform.
|
|
311
260
|
* @property {(opts: JTLTOptions &
|
|
312
261
|
* Required<Pick<JTLTOptions, "joiningTransformer">>
|
|
313
|
-
* ) => ResultType<T>} [engine] Will be based on the
|
|
262
|
+
* ) => ResultType<T, E>} [engine] Will be based on the
|
|
314
263
|
* same config as passed to this instance. Defaults to a transforming
|
|
315
264
|
* function based on JSONPath and with its own set of priorities for
|
|
316
265
|
* processing templates.
|
|
317
|
-
* @property {(
|
|
266
|
+
* @property {null|(
|
|
267
|
+
* (path: string) => 0 | 0.5 | -0.5
|
|
268
|
+
* )} [specificityPriorityResolver]
|
|
318
269
|
* Callback for getting the priority by specificity
|
|
319
270
|
* @property {JoiningTransformer} [joiningTransformer]
|
|
320
271
|
* A concrete joining transformer instance (or custom subclass) responsible
|
|
321
272
|
* for accumulating output. When omitted, one is created automatically based
|
|
322
273
|
* on `outputType`.
|
|
323
274
|
* @property {import('./AbstractJoiningTransformer.js').
|
|
324
|
-
* JoiningTransformerConfig<T>
|
|
275
|
+
* JoiningTransformerConfig<T> &
|
|
276
|
+
* {exposeDocuments?: E}} [joiningConfig] Config for the joining
|
|
325
277
|
* transformer.
|
|
326
278
|
* @property {object} [parent] Parent object for context
|
|
327
279
|
* @property {string} [parentProperty] Parent property name for context
|
|
328
280
|
*/
|
|
329
281
|
/**
|
|
330
282
|
* JSONPath engine options with context-aware template typing.
|
|
331
|
-
* @template [T = "json"]
|
|
332
|
-
* @
|
|
333
|
-
*
|
|
283
|
+
* @template {"json"|"string"|"dom"} [T = "json"]
|
|
284
|
+
* @template {boolean|undefined} [E=false]
|
|
285
|
+
* @typedef {BaseJTLTOptions<T, E> & {
|
|
286
|
+
* templates?: JSONPathTemplateArray<T>[] |
|
|
287
|
+
* TemplateFunction<T, "json",
|
|
288
|
+
* import('./JSONPathTransformerContext.js').default<T>>,
|
|
334
289
|
* template?: JSONPathTemplateObject<T> | TemplateFunction<T, "json",
|
|
335
290
|
* import('./JSONPathTransformerContext.js').default
|
|
336
291
|
* >,
|
|
@@ -346,9 +301,12 @@ export type JTLTOptions = JSONPathJTLTOptions | JSONPathJTLTOptions<"string"> |
|
|
|
346
301
|
*/
|
|
347
302
|
/**
|
|
348
303
|
* XPath engine options with context-aware template typing.
|
|
349
|
-
* @template T
|
|
350
|
-
* @
|
|
351
|
-
*
|
|
304
|
+
* @template {"json"|"string"|"dom"} T
|
|
305
|
+
* @template {boolean|undefined} [E=false]
|
|
306
|
+
* @typedef {BaseJTLTOptions<T, E> & {
|
|
307
|
+
* templates?: XPathTemplateArray<T> |
|
|
308
|
+
* TemplateFunction<T, "dom",
|
|
309
|
+
* import('./XPathTransformerContext.js').default<T>>,
|
|
352
310
|
* template?: XPathTemplateObject<T> | TemplateFunction<T, "dom",
|
|
353
311
|
* import('./XPathTransformerContext.js').default
|
|
354
312
|
* >,
|
|
@@ -364,12 +322,13 @@ export type JTLTOptions = JSONPathJTLTOptions | JSONPathJTLTOptions<"string"> |
|
|
|
364
322
|
* }} XPathJTLTOptions
|
|
365
323
|
*/
|
|
366
324
|
/**
|
|
367
|
-
* @
|
|
368
|
-
*
|
|
369
|
-
* JSONPathJTLTOptions<"
|
|
370
|
-
*
|
|
371
|
-
* XPathJTLTOptions<"
|
|
372
|
-
* XPathJTLTOptions<"
|
|
325
|
+
* @template {boolean|undefined} [E=any]
|
|
326
|
+
* @typedef {JSONPathJTLTOptions<"json", E> |
|
|
327
|
+
* JSONPathJTLTOptions<"string", E> |
|
|
328
|
+
* JSONPathJTLTOptions<"dom", E> |
|
|
329
|
+
* XPathJTLTOptions<"json", E>|
|
|
330
|
+
* XPathJTLTOptions<"string", E>|
|
|
331
|
+
* XPathJTLTOptions<"dom", E>} JTLTOptions
|
|
373
332
|
*/
|
|
374
333
|
/**
|
|
375
334
|
* High-level façade for running a JTLT transform.
|
|
@@ -378,44 +337,25 @@ export type JTLTOptions = JSONPathJTLTOptions | JSONPathJTLTOptions<"string"> |
|
|
|
378
337
|
* transformer based on `outputType`, and invokes the JSONPath-based engine.
|
|
379
338
|
* The result is returned to the required `success` callback and also returned
|
|
380
339
|
* from transform().
|
|
340
|
+
* @template {"json"|"string"|"dom"} [T="json"]
|
|
341
|
+
* @template {boolean|undefined} [E=false]
|
|
381
342
|
*/
|
|
382
|
-
declare class JTLT {
|
|
343
|
+
declare class JTLT<T extends "json" | "string" | "dom" = "json", E extends boolean | undefined = false> {
|
|
344
|
+
/** @type {any} */
|
|
345
|
+
config: any;
|
|
383
346
|
/**
|
|
384
|
-
*
|
|
385
|
-
*
|
|
386
|
-
*
|
|
387
|
-
*
|
|
388
|
-
* @overload
|
|
389
|
-
* @param {JSONPathJTLTOptions} config Options for JSONPath engine
|
|
347
|
+
* @template {"json"|"string"|"dom"} [T="json"]
|
|
348
|
+
* @template {boolean|undefined} [E=false]
|
|
349
|
+
* @param {JSONPathJTLTOptions<T, E> | XPathJTLTOptions<T, E>} config
|
|
350
|
+
* @returns {JTLT<T, E>}
|
|
390
351
|
*/
|
|
352
|
+
static create<T extends "json" | "string" | "dom" = "json", E extends boolean | undefined = false>(config: JSONPathJTLTOptions<T, E> | XPathJTLTOptions<T, E>): JTLT<T, E>;
|
|
391
353
|
constructor(config: JSONPathJTLTOptions);
|
|
392
|
-
/**
|
|
393
|
-
* @overload
|
|
394
|
-
* @param {JSONPathJTLTOptions<"string">} config Options for JSONPath engine
|
|
395
|
-
*/
|
|
396
354
|
constructor(config: JSONPathJTLTOptions<"string">);
|
|
397
|
-
/**
|
|
398
|
-
* @overload
|
|
399
|
-
* @param {JSONPathJTLTOptions<"dom">} config Options for JSONPath engine
|
|
400
|
-
*/
|
|
401
355
|
constructor(config: JSONPathJTLTOptions<"dom">);
|
|
402
|
-
/**
|
|
403
|
-
* @overload
|
|
404
|
-
* @param {XPathJTLTOptions<"json">} config Options for XPath engine
|
|
405
|
-
*/
|
|
406
356
|
constructor(config: XPathJTLTOptions<"json">);
|
|
407
|
-
/**
|
|
408
|
-
* @overload
|
|
409
|
-
* @param {XPathJTLTOptions<"string">} config Options for XPath engine
|
|
410
|
-
*/
|
|
411
357
|
constructor(config: XPathJTLTOptions<"string">);
|
|
412
|
-
/**
|
|
413
|
-
* @overload
|
|
414
|
-
* @param {XPathJTLTOptions<"dom">} config Options for XPath engine
|
|
415
|
-
*/
|
|
416
358
|
constructor(config: XPathJTLTOptions<"dom">);
|
|
417
|
-
/** @type {JTLTOptions} */
|
|
418
|
-
config: JTLTOptions;
|
|
419
359
|
/**
|
|
420
360
|
* @returns {DOMJoiningTransformer|JSONJoiningTransformer|
|
|
421
361
|
* StringJoiningTransformer}
|
|
@@ -427,20 +367,39 @@ declare class JTLT {
|
|
|
427
367
|
*/
|
|
428
368
|
_autoStart(mode: string | undefined): void;
|
|
429
369
|
/**
|
|
430
|
-
* @param {JTLTOptions} config
|
|
370
|
+
* @param {null|JTLTOptions} config
|
|
431
371
|
* @returns {JTLT}
|
|
432
372
|
*/
|
|
433
|
-
setDefaults(config: JTLTOptions): JTLT;
|
|
373
|
+
setDefaults(config: null | JTLTOptions): JTLT;
|
|
434
374
|
/**
|
|
435
375
|
* @param {string} [mode] The mode of the transformation
|
|
436
|
-
* @returns {
|
|
376
|
+
* @returns {ResultType<T, E>}
|
|
437
377
|
* @todo Allow for a success callback in case the jsonpath code is modified
|
|
438
378
|
* to work asynchronously (as with queries to access remote JSON
|
|
439
379
|
* stores)
|
|
440
380
|
*/
|
|
441
|
-
transform(mode?: string):
|
|
381
|
+
transform(mode?: string): ResultType<T, E>;
|
|
442
382
|
}
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
383
|
+
export declare function jtlt(cfg: Omit<JSONPathJTLTOptions<"json", false>, "success">): Promise<ResultType<"json", false>>;
|
|
384
|
+
export declare function jtlt(cfg: Omit<JSONPathJTLTOptions<"json", true>, "success">): Promise<ResultType<"json", true>>;
|
|
385
|
+
export declare function jtlt(cfg: Omit<JSONPathJTLTOptions<"string", false>, "success">): Promise<ResultType<"string", false>>;
|
|
386
|
+
export declare function jtlt(cfg: Omit<JSONPathJTLTOptions<"string", true>, "success">): Promise<ResultType<"string", true>>;
|
|
387
|
+
export declare function jtlt(cfg: Omit<JSONPathJTLTOptions<"dom", false>, "success">): Promise<ResultType<"dom", false>>;
|
|
388
|
+
export declare function jtlt(cfg: Omit<JSONPathJTLTOptions<"dom", true>, "success">): Promise<ResultType<"dom", true>>;
|
|
389
|
+
export declare function jtlt(cfg: Omit<XPathJTLTOptions<"json", false>, "success">): Promise<ResultType<"json", false>>;
|
|
390
|
+
export declare function jtlt(cfg: Omit<XPathJTLTOptions<"json", true>, "success">): Promise<ResultType<"json", true>>;
|
|
391
|
+
export declare function jtlt(cfg: Omit<XPathJTLTOptions<"dom", false>, "success">): Promise<ResultType<"dom", false>>;
|
|
392
|
+
export declare function jtlt(cfg: Omit<XPathJTLTOptions<"dom", true>, "success">): Promise<ResultType<"dom", true>>;
|
|
393
|
+
export declare function jtlt(cfg: Omit<XPathJTLTOptions<"string", false>, "success">): Promise<ResultType<"string", false>>;
|
|
394
|
+
export declare function jtlt(cfg: Omit<XPathJTLTOptions<"string", true>, "success">): Promise<ResultType<"string", true>>;
|
|
395
|
+
export { default as AbstractJoiningTransformer } from './AbstractJoiningTransformer.js';
|
|
396
|
+
export { default as StringJoiningTransformer } from './StringJoiningTransformer.js';
|
|
397
|
+
export { default as DOMJoiningTransformer } from './DOMJoiningTransformer.js';
|
|
398
|
+
export { default as JSONJoiningTransformer } from './JSONJoiningTransformer.js';
|
|
399
|
+
export { default as XSLTStyleJSONPathResolver } from './XSLTStyleJSONPathResolver.js';
|
|
400
|
+
export { default as JSONPathTransformerContext } from './JSONPathTransformerContext.js';
|
|
401
|
+
export { default as JSONPathTransformer } from './JSONPathTransformer.js';
|
|
402
|
+
export { default as XPathTransformerContext } from './XPathTransformerContext.js';
|
|
403
|
+
export { default as XPathTransformer } from './XPathTransformer.js';
|
|
404
|
+
export default JTLT;
|
|
446
405
|
//# sourceMappingURL=index.d.ts.map
|
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
|
@@ -11,7 +11,7 @@ High-level entry point for running a transform over JSON data using JSONPath.
|
|
|
11
11
|
```js
|
|
12
12
|
import JTLT from 'jtlt';
|
|
13
13
|
|
|
14
|
-
const out =
|
|
14
|
+
const out = JTLT.create({
|
|
15
15
|
data: {title: 'Hello'},
|
|
16
16
|
outputType: 'string',
|
|
17
17
|
templates: [
|
|
@@ -27,7 +27,7 @@ const out = new JTLT({
|
|
|
27
27
|
}).transform('');
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
### `new JTLT(config)` options
|
|
30
|
+
### `new JTLT(config)` or `JTLT.create(config)` options
|
|
31
31
|
|
|
32
32
|
| Option | Type | Description |
|
|
33
33
|
| ------ | ---- | ----------- |
|
|
@@ -57,7 +57,7 @@ interface TemplateObject {
|
|
|
57
57
|
path?: string; // JSONPath or XPath expression (required for pattern-matching)
|
|
58
58
|
mode?: string; // Optional mode segregation
|
|
59
59
|
priority?: number; // Numeric priority (higher wins); fallback uses specificity resolver
|
|
60
|
-
template(nodeValue, cfg): any; // Executed with `this` bound to context
|
|
60
|
+
template(nodeValue: any, cfg?: {mode?: string}): any; // Executed with `this` bound to context
|
|
61
61
|
}
|
|
62
62
|
```
|
|
63
63
|
|
|
@@ -96,7 +96,7 @@ Config additions:
|
|
|
96
96
|
```js
|
|
97
97
|
import {XPathTransformer, StringJoiningTransformer} from 'jtlt';
|
|
98
98
|
// Assume `doc` is an XML Document
|
|
99
|
-
const joiner =
|
|
99
|
+
const joiner = StringJoiningTransformer.create('');
|
|
100
100
|
const templates = [
|
|
101
101
|
{
|
|
102
102
|
name: 'root',
|
|
@@ -283,6 +283,7 @@ joiner.document(() => {
|
|
|
283
283
|
version: '1.0',
|
|
284
284
|
encoding: 'utf8',
|
|
285
285
|
doctypePublic: '-//W3C//DTD XHTML 1.0//EN',
|
|
286
|
+
// eslint-disable-next-line unicorn/prefer-https -- Early namespace
|
|
286
287
|
doctypeSystem: 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'
|
|
287
288
|
});
|
|
288
289
|
joiner.element('html', {xmlns: 'http://www.w3.org/1999/xhtml'}, () => {
|
|
@@ -351,6 +352,7 @@ pages.forEach((page) => {
|
|
|
351
352
|
joiner.output({
|
|
352
353
|
method: 'html',
|
|
353
354
|
doctypePublic: '-//W3C//DTD XHTML 1.0 Strict//EN',
|
|
355
|
+
// eslint-disable-next-line unicorn/prefer-https -- Early namespace
|
|
354
356
|
doctypeSystem: 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'
|
|
355
357
|
});
|
|
356
358
|
joiner.element('html', {xmlns: 'http://www.w3.org/1999/xhtml'}, () => {
|
package/docs/API.md
CHANGED
package/docs/TO-DO.md
CHANGED
|
@@ -55,7 +55,9 @@
|
|
|
55
55
|
JSON file in full, but also for providing schema paths or other identifiers
|
|
56
56
|
so that a transformed/queried subset of a file (or joining of multiple
|
|
57
57
|
files) could point the way for edited contents to be saved back to the
|
|
58
|
-
correct JSON file and position in the JSON file.
|
|
58
|
+
correct JSON file and position in the JSON file. Also work with zodexy
|
|
59
|
+
and extend path expressions in jsonpath-plus to include its types like
|
|
60
|
+
`@bigint()`.
|
|
59
61
|
|
|
60
62
|
2. ~~Add a [non-eval PR for JSONPath](https://github.com/s3u/JSONPath/pull/4).~~
|
|
61
63
|
The OR condition (outside of filters) is another important feature as
|
|
@@ -84,7 +86,7 @@
|
|
|
84
86
|
|
|
85
87
|
7. See code for other possible to-dos
|
|
86
88
|
|
|
87
|
-
8. Promise-based templates
|
|
89
|
+
8. Promise-based templates; jtlt as templating engine (including zodexy-aware path expressions like @blob() for jsonpath-plus with `copyOf`/`valueOf` `document(...url...)` or our own indexeddb path db/store/key equivalent); work on **schema-driven** search forms too
|
|
88
90
|
|
|
89
91
|
9. Consider implementing the following elements from <https://www.w3.org/TR/xslt-30/>
|
|
90
92
|
which are not yet implemented.
|