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.
Files changed (70) hide show
  1. package/CHANGES.md +27 -0
  2. package/README.md +61 -164
  3. package/demo/calltemplate-params-demo.js +138 -0
  4. package/demo/codemirror.esm.js +28242 -0
  5. package/demo/codemirror.js +94 -0
  6. package/demo/index.css +7 -0
  7. package/demo/index.html +28 -0
  8. package/demo/index.js +210 -0
  9. package/demo/vendor/jamilih/dist/jml.mjs +2341 -0
  10. package/demo/vendor/jhtml/src/SAJJ/SAJJ.ObjectArrayDelegator.js +356 -0
  11. package/demo/vendor/jhtml/src/SAJJ/SAJJ.Stringifier.js +186 -0
  12. package/demo/vendor/jhtml/src/SAJJ/SAJJ.js +746 -0
  13. package/demo/vendor/jhtml/src/SAJJ/testing/SAJJ.html +33 -0
  14. package/demo/vendor/jhtml/src/SAJJ/testing/SAJJ.testing.js +25 -0
  15. package/demo/vendor/jhtml/src/jhtml-browser.js +5 -0
  16. package/demo/vendor/jhtml/src/jhtml-node.cts +3 -0
  17. package/demo/vendor/jhtml/src/jhtml-node.js +8 -0
  18. package/demo/vendor/jhtml/src/jhtml-node.mts +1 -0
  19. package/demo/vendor/jhtml/src/jhtml.cts +3 -0
  20. package/demo/vendor/jhtml/src/jhtml.js +602 -0
  21. package/demo/vendor/jhtml/src/jhtml.mts +1 -0
  22. package/demo/vendor/jsonpath-plus/dist/index-browser-esm.js +2158 -0
  23. package/demo/vendor/simple-get-json/dist/index-es.js +151 -0
  24. package/demo/xpath2-placeholder.js +1 -0
  25. package/dist/AbstractJoiningTransformer.d.ts +83 -9
  26. package/dist/AbstractJoiningTransformer.d.ts.map +1 -1
  27. package/dist/DOMJoiningTransformer.d.ts +85 -25
  28. package/dist/DOMJoiningTransformer.d.ts.map +1 -1
  29. package/dist/JSONJoiningTransformer.d.ts +159 -51
  30. package/dist/JSONJoiningTransformer.d.ts.map +1 -1
  31. package/dist/JSONPathTransformer.d.ts +37 -38
  32. package/dist/JSONPathTransformer.d.ts.map +1 -1
  33. package/dist/JSONPathTransformerContext.d.ts +334 -124
  34. package/dist/JSONPathTransformerContext.d.ts.map +1 -1
  35. package/dist/StringJoiningTransformer.d.ts +132 -41
  36. package/dist/StringJoiningTransformer.d.ts.map +1 -1
  37. package/dist/XPathTransformer.d.ts +35 -20
  38. package/dist/XPathTransformer.d.ts.map +1 -1
  39. package/dist/XPathTransformerContext.d.ts +281 -105
  40. package/dist/XPathTransformerContext.d.ts.map +1 -1
  41. package/dist/index-browser.d.ts +4 -0
  42. package/dist/index-browser.d.ts.map +1 -0
  43. package/dist/index-node.d.ts +4 -0
  44. package/dist/index-node.d.ts.map +1 -0
  45. package/dist/index.d.ts +330 -57
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/types.d.ts +204 -0
  48. package/dist/types.d.ts.map +1 -0
  49. package/docs/API.expanded.md +172 -5
  50. package/docs/API.md +92 -2
  51. package/docs/TO-DO.md +168 -0
  52. package/docs/calltemplate-params.md +251 -0
  53. package/eslint.config.js +11 -5
  54. package/package.json +35 -9
  55. package/pnpm-workspace.yaml +1 -0
  56. package/rollup.config.js +13 -0
  57. package/src/AbstractJoiningTransformer.js +54 -15
  58. package/src/DOMJoiningTransformer.js +275 -28
  59. package/src/JSONJoiningTransformer.js +351 -70
  60. package/src/JSONPathTransformer.js +48 -30
  61. package/src/JSONPathTransformerContext.js +729 -107
  62. package/src/StringJoiningTransformer.js +311 -57
  63. package/src/XPathTransformer.js +27 -12
  64. package/src/XPathTransformerContext.js +928 -99
  65. package/src/index-browser.js +5 -0
  66. package/src/index-node.js +7 -0
  67. package/src/index.js +502 -98
  68. package/tsconfig.json +5 -2
  69. package/typings/xpath2-js.d.ts +40 -1
  70. package/src/types/xpath2-js.d.ts +0 -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
@@ -0,0 +1 @@
1
+ export default {};
@@ -1,4 +1,76 @@
1
1
  export default AbstractJoiningTransformer;
2
+ export type BaseTransformerConfig = {
3
+ requireSameChildren?: boolean;
4
+ JHTMLForJSON?: boolean;
5
+ mode?: "JSON" | "JavaScript";
6
+ };
7
+ /**
8
+ * When exposeDocuments is true, get() returns an array of XMLDocument
9
+ * objects (one per root element) instead of a DocumentFragment.
10
+ */
11
+ export type DOMJoiningTransformerConfig = BaseTransformerConfig & {
12
+ document: Document;
13
+ exposeDocuments?: boolean;
14
+ };
15
+ export type JSONJoiningTransformerConfig = {
16
+ requireSameChildren?: boolean | undefined;
17
+ unwrapSingleResult?: boolean | undefined;
18
+ /**
19
+ * - When true, get() returns an array
20
+ * of document wrapper objects (one per root element) instead of the raw array.
21
+ */
22
+ exposeDocuments?: boolean | undefined;
23
+ mode?: "JSON" | "JavaScript" | undefined;
24
+ };
25
+ /**
26
+ * When exposeDocuments is true, get() returns an array of document
27
+ * strings (one per root element) instead of a single concatenated string.
28
+ */
29
+ export type StringJoiningTransformerConfig = BaseTransformerConfig & {
30
+ xmlElements?: boolean;
31
+ preEscapedAttributes?: boolean;
32
+ exposeDocuments?: boolean;
33
+ };
34
+ export type JoiningTransformerConfig<T> = T extends "string" ? StringJoiningTransformerConfig : T extends "dom" ? DOMJoiningTransformerConfig : T extends "json" ? JSONJoiningTransformerConfig : never;
35
+ /**
36
+ * @typedef {{
37
+ * requireSameChildren?: boolean,
38
+ * JHTMLForJSON?: boolean,
39
+ * mode?: "JSON"|"JavaScript"
40
+ * }} BaseTransformerConfig
41
+ */
42
+ /**
43
+ * @typedef {BaseTransformerConfig & {
44
+ * document: Document,
45
+ * exposeDocuments?: boolean
46
+ * }} DOMJoiningTransformerConfig
47
+ * When exposeDocuments is true, get() returns an array of XMLDocument
48
+ * objects (one per root element) instead of a DocumentFragment.
49
+ */
50
+ /**
51
+ * @typedef {object} JSONJoiningTransformerConfig
52
+ * @property {boolean} [requireSameChildren]
53
+ * @property {boolean} [unwrapSingleResult]
54
+ * @property {boolean} [exposeDocuments] - When true, get() returns an array
55
+ * of document wrapper objects (one per root element) instead of the raw array.
56
+ * @property {"JSON"|"JavaScript"} [mode]
57
+ */
58
+ /**
59
+ * @typedef {BaseTransformerConfig & {
60
+ * xmlElements?: boolean,
61
+ * preEscapedAttributes?: boolean,
62
+ * exposeDocuments?: boolean
63
+ * }} StringJoiningTransformerConfig
64
+ * When exposeDocuments is true, get() returns an array of document
65
+ * strings (one per root element) instead of a single concatenated string.
66
+ */
67
+ /**
68
+ * @template T
69
+ * @typedef {T extends "string" ? StringJoiningTransformerConfig :
70
+ * T extends "dom" ? DOMJoiningTransformerConfig :
71
+ * T extends "json" ? JSONJoiningTransformerConfig : never
72
+ * } JoiningTransformerConfig
73
+ */
2
74
  /**
3
75
  * Base class for joining transformers.
4
76
  *
@@ -13,18 +85,19 @@ export default AbstractJoiningTransformer;
13
85
  * based on the current state.
14
86
  * - get(): returns the accumulated result.
15
87
  * - config(): temporarily tweak a config flag for the duration of a callback.
88
+ * @template T
16
89
  */
17
- declare class AbstractJoiningTransformer {
90
+ declare class AbstractJoiningTransformer<T> {
18
91
  /**
19
- * @param {object} [cfg] - Configuration object
92
+ * @param {JoiningTransformerConfig<T>} [cfg] - Configuration object
20
93
  */
21
- constructor(cfg?: object);
94
+ constructor(cfg?: JoiningTransformerConfig<T>);
95
+ _cfg: JoiningTransformerConfig<T>;
22
96
  /**
23
- * @param {any} [cfg] - Configuration object
97
+ * @param {JoiningTransformerConfig<T>} cfg - Configuration object
24
98
  * @returns {void}
25
99
  */
26
- setConfig(cfg?: any): void;
27
- _cfg: any;
100
+ setConfig(cfg: JoiningTransformerConfig<T>): void;
28
101
  /**
29
102
  * @param {string} type - Type name
30
103
  * @param {string} embedType - Embed type name
@@ -33,10 +106,11 @@ declare class AbstractJoiningTransformer {
33
106
  _requireSameChildren(type: string, embedType: string): void;
34
107
  /**
35
108
  * @param {string} prop - Configuration property name
36
- * @param {*} val - Configuration property value
37
- * @param {Function} [cb] - Callback function
109
+ * @param {any} val - Configuration property value
110
+ * @param {(this: AbstractJoiningTransformer<T>) => void} [cb]
111
+ * Optional callback invoked with this instance
38
112
  * @returns {void}
39
113
  */
40
- config(prop: string, val: any, cb?: Function): void;
114
+ config(prop: string, val: any, cb?: (this: AbstractJoiningTransformer<T>) => void): void;
41
115
  }
42
116
  //# sourceMappingURL=AbstractJoiningTransformer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/AbstractJoiningTransformer.js"],"names":[],"mappings":";AAIA;;;;;;;;;;;;;;GAcG;AACH;IACE;;OAEG;IACH,kBAFW,MAAM,EAKhB;IAED;;;OAGG;IACH,gBAHW,GAAG,GACD,IAAI,CAIhB;IADC,UAAe;IAGjB;;;;OAIG;IACH,2BAJW,MAAM,aACN,MAAM,GACJ,IAAI,CAUhB;IAED;;;;;OAKG;IACH,aALW,MAAM,OACN,GAAC,kBAEC,IAAI,CAchB;CACF"}
1
+ {"version":3,"file":"AbstractJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/AbstractJoiningTransformer.js"],"names":[],"mappings":";oCAKa;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;AArC5D;;;;;;GAMG;AAEH;;;;;;;GAOG;AACH;;;;;;;GAOG;AACH;;;;;;;;GAQG;AACH;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,yCAFa,CAAC;IAGZ;;OAEG;IACH,kBAFW,wBAAwB,CAAC,CAAC,CAAC,EAKrC;IADC,kCAAkE;IAGpE;;;OAGG;IACH,eAHW,wBAAwB,CAAC,CAAC,CAAC,GACzB,IAAI,CAIhB;IAED;;;;OAIG;IACH,2BAJW,MAAM,aACN,MAAM,GACJ,IAAI,CAUhB;IAED;;;;;;OAMG;IACH,aANW,MAAM,OACN,GAAG,OACH,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC,KAAK,IAAI,GAE3C,IAAI,CAUhB;CACF"}
@@ -1,4 +1,10 @@
1
1
  export default DOMJoiningTransformer;
2
+ export type SimpleCallback = (this: DOMJoiningTransformer) => void;
3
+ /**
4
+ * @callback SimpleCallback
5
+ * @this {DOMJoiningTransformer}
6
+ * @returns {void}
7
+ */
2
8
  /**
3
9
  * Joining transformer that accumulates into a DOM tree.
4
10
  *
@@ -6,17 +12,24 @@ export default DOMJoiningTransformer;
6
12
  * It expects templates to build DOM nodes explicitly (e.g., via element(),
7
13
  * attribute(), and text()), though string/number/boolean will append text
8
14
  * nodes for convenience.
15
+ * @extends {AbstractJoiningTransformer<"dom">}
9
16
  */
10
- declare class DOMJoiningTransformer extends AbstractJoiningTransformer {
17
+ declare class DOMJoiningTransformer extends AbstractJoiningTransformer<"dom"> {
11
18
  /**
12
19
  * @param {DocumentFragment|Element} o - Initial DOM node
13
- * @param {object} cfg - Configuration object
14
- * @param {object} [cfg.document] - Document object
15
- */
16
- constructor(o: DocumentFragment | Element, cfg: {
17
- document?: object | undefined;
18
- });
19
- _dom: DocumentFragment | Element;
20
+ * @param {import('./AbstractJoiningTransformer.js').
21
+ * DOMJoiningTransformerConfig} cfg - Configuration object
22
+ */
23
+ constructor(o: DocumentFragment | Element, cfg: import("./AbstractJoiningTransformer.js").DOMJoiningTransformerConfig);
24
+ _dom: Element | DocumentFragment;
25
+ /** @type {XMLDocument[]} */
26
+ _docs: XMLDocument[];
27
+ /** @type {Array<{href: string, document: XMLDocument, format?: string}>} */
28
+ _resultDocuments: Array<{
29
+ href: string;
30
+ document: XMLDocument;
31
+ format?: string;
32
+ }>;
20
33
  /**
21
34
  * @param {Node} item
22
35
  * @returns {void}
@@ -28,35 +41,36 @@ declare class DOMJoiningTransformer extends AbstractJoiningTransformer {
28
41
  */
29
42
  append(item: string | Node): void;
30
43
  /**
31
- * @returns {DocumentFragment|Element}
44
+ * @returns {DocumentFragment|Element|XMLDocument[]}
32
45
  */
33
- get(): DocumentFragment | Element;
46
+ get(): DocumentFragment | Element | XMLDocument[];
34
47
  /**
35
48
  * @param {string} prop - Property name
36
- * @param {*} val - Property value
49
+ * @param {any} val - Property value
37
50
  * @returns {void}
38
51
  */
39
52
  propValue(prop: string, val: any): void;
40
53
  /**
41
- * @param {object} obj - Object to serialize
42
- * @param {Function} [cb] - Callback function.
54
+ * @param {Record<string, unknown>} obj - Object to serialize
55
+ * @param {(this: DOMJoiningTransformer) => void} [cb] - Callback function.
43
56
  * @param {any[]} [usePropertySets] - Property sets to use
44
- * @param {object} [propSets] - Additional property sets
57
+ * @param {Record<string, unknown>} [propSets] - Additional property sets
45
58
  * @returns {DOMJoiningTransformer}
46
59
  */
47
- object(obj: object, cb?: Function, usePropertySets?: any[], propSets?: object): DOMJoiningTransformer;
60
+ object(obj: Record<string, unknown>, cb?: (this: DOMJoiningTransformer) => void, usePropertySets?: any[], propSets?: Record<string, unknown>): DOMJoiningTransformer;
48
61
  /**
49
62
  * @param {any[]|Element} arr
50
- * @param {Function} [cb] - Callback function
63
+ * @param {(this: DOMJoiningTransformer) => void} [cb] - Callback function
51
64
  * @returns {DOMJoiningTransformer}
52
65
  */
53
- array(arr: any[] | Element, cb?: Function): DOMJoiningTransformer;
66
+ array(arr: any[] | Element, cb?: (this: DOMJoiningTransformer) => void): DOMJoiningTransformer;
54
67
  /**
55
68
  * @param {string} str - String value
56
- * @param {Function} cb - Callback function (unused)
69
+ * @param {(this: DOMJoiningTransformer) => void} [cb] - Callback
70
+ * function (unused)
57
71
  * @returns {DOMJoiningTransformer}
58
72
  */
59
- string(str: string, cb: Function): DOMJoiningTransformer;
73
+ string(str: string, cb?: (this: DOMJoiningTransformer) => void): DOMJoiningTransformer;
60
74
  /**
61
75
  * @param {number} num - Number value
62
76
  * @returns {DOMJoiningTransformer}
@@ -81,17 +95,25 @@ declare class DOMJoiningTransformer extends AbstractJoiningTransformer {
81
95
  */
82
96
  nonfiniteNumber(num: number): DOMJoiningTransformer;
83
97
  /**
84
- * @param {Function} func - Function to stringify
98
+ * @param {(...args: any[]) => any} func - Function to stringify
99
+ * @returns {DOMJoiningTransformer}
100
+ */
101
+ function(func: (...args: any[]) => any): DOMJoiningTransformer;
102
+ /**
103
+ * @param {import('./StringJoiningTransformer.js').OutputConfig} cfg
85
104
  * @returns {DOMJoiningTransformer}
86
105
  */
87
- function(func: Function): DOMJoiningTransformer;
106
+ output(cfg: import("./StringJoiningTransformer.js").OutputConfig): DOMJoiningTransformer;
107
+ _outputConfig: any;
108
+ mediaType: string | undefined;
88
109
  /**
89
- * @param {string} elName - Element name
90
- * @param {object} [atts] - Attributes object
91
- * @param {Function} [cb] - Callback function
110
+ * @param {Element|string} elName - Element name
111
+ * @param {Record<string, string>} [atts] - Attributes object
112
+ * @param {(this: DOMJoiningTransformer) => void} [cb] - Callback function
92
113
  * @returns {DOMJoiningTransformer}
93
114
  */
94
- element(elName: string, atts?: object, cb?: Function): DOMJoiningTransformer;
115
+ element(elName: Element | string, atts?: Record<string, string>, cb?: (this: DOMJoiningTransformer) => void): DOMJoiningTransformer;
116
+ root: any;
95
117
  /**
96
118
  * @param {string} name
97
119
  * @param {string} val
@@ -103,11 +125,49 @@ declare class DOMJoiningTransformer extends AbstractJoiningTransformer {
103
125
  * @returns {DOMJoiningTransformer}
104
126
  */
105
127
  text(txt: string): DOMJoiningTransformer;
128
+ /**
129
+ * @param {string} text
130
+ * @returns {DOMJoiningTransformer}}
131
+ */
132
+ comment(text: string): DOMJoiningTransformer;
133
+ /**
134
+ * @param {string} target
135
+ * @param {string} data
136
+ * @returns {DOMJoiningTransformer}}
137
+ */
138
+ processingInstruction(target: string, data: string): DOMJoiningTransformer;
106
139
  /**
107
140
  * @param {string} str
108
141
  * @returns {DOMJoiningTransformer}
109
142
  */
110
143
  plainText(str: string): DOMJoiningTransformer;
144
+ /**
145
+ * Creates a new XML document and executes a callback in its context.
146
+ * Similar to XSLT's xsl:document, this allows templates to generate
147
+ * multiple output documents. The created document is pushed to this._docs
148
+ * and will be included in the result when exposeDocuments is true.
149
+ *
150
+ * @param {(this: DOMJoiningTransformer) => void} cb
151
+ * Callback that builds the document content
152
+ * @param {import('./StringJoiningTransformer.js').OutputConfig} [cfg]
153
+ * Output configuration for the document (encoding, doctype, etc.)
154
+ * @returns {DOMJoiningTransformer}
155
+ */
156
+ document(cb: (this: DOMJoiningTransformer) => void, cfg?: import("./StringJoiningTransformer.js").OutputConfig): DOMJoiningTransformer;
157
+ /**
158
+ * Creates a new result document with metadata (href, format).
159
+ * Similar to XSLT's xsl:result-document, this allows templates to generate
160
+ * multiple output documents with associated metadata like URIs. The created
161
+ * document is stored in this._resultDocuments with the provided href.
162
+ *
163
+ * @param {string} href - URI/path for the result document
164
+ * @param {(this: DOMJoiningTransformer) => void} cb
165
+ * Callback that builds the document content
166
+ * @param {import('./StringJoiningTransformer.js').OutputConfig} [cfg]
167
+ * Output configuration for the document (encoding, doctype, format, etc.)
168
+ * @returns {DOMJoiningTransformer}
169
+ */
170
+ resultDocument(href: string, cb: (this: DOMJoiningTransformer) => void, cfg?: import("./StringJoiningTransformer.js").OutputConfig): DOMJoiningTransformer;
111
171
  }
112
172
  import AbstractJoiningTransformer from './AbstractJoiningTransformer.js';
113
173
  //# sourceMappingURL=DOMJoiningTransformer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DOMJoiningTransformer.d.ts","sourceRoot":"","sources":["../src/DOMJoiningTransformer.js"],"names":[],"mappings":";AAGA;;;;;;;GAOG;AACH;IACE;;;;OAIG;IACH,eAJW,gBAAgB,GAAC,OAAO,OAEhC;QAAqB,QAAQ;KAC/B,EAKA;IAFC,iCAC0D;IAG5D;;;OAGG;IACH,gBAHW,IAAI,GACF,IAAI,CAIhB;IAED;;;OAGG;IACH,aAHW,MAAM,GAAC,IAAI,GACT,IAAI,CAIhB;IAED;;OAEG;IACH,OAFa,gBAAgB,GAAC,OAAO,CAIpC;IAED;;;;OAIG;IAEH,gBALW,MAAM,OACN,GAAC,GACC,IAAI,CAKhB;IAED;;;;;;OAMG;IACH,YANW,MAAM,mCAEN,GAAG,EAAE,aACL,MAAM,GACJ,qBAAqB,CAWjC;IAED;;;;OAIG;IACH,WAJW,GAAG,EAAE,GAAC,OAAO,kBAEX,qBAAqB,CAWjC;IAED;;;;OAIG;IACH,YAJW,MAAM,iBAEJ,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,0BAFa,qBAAqB,CAUjC;IAED;;;;;OAKG;IACH,gBALW,MAAM,SACN,MAAM,kBAEJ,qBAAqB,CA6BjC;IAED;;;;OAIG;IACH,gBAJW,MAAM,OACN,MAAM,GACJ,qBAAqB,CASjC;IAED;;;OAGG;IACH,UAHW,MAAM,GACJ,qBAAqB,CAKjC;IAED;;;OAGG;IACH,eAHW,MAAM,GACJ,qBAAqB,CAKjC;CACF;uCAzOsC,iCAAiC"}
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,EAS/B;IALC,iCAAsD;IACtD,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;IAG5B;;;OAGG;IACH,gBAHW,IAAI,GACF,IAAI,CAIhB;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;;;;;;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,CAYjC;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,eAHW,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GACrB,qBAAqB,CAUjC;IAED;;;OAGG;IACH,YAHW,OAAO,+BAA+B,EAAE,YAAY,GAClD,qBAAqB,CAUjC;IALC,mBAAwB;IAGxB,8BAA8B;IAIhC;;;;;OAKG;IACH,gBALW,OAAO,GAAC,MAAM,SACd,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OACtB,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,GACnC,qBAAqB,CAqHjC;IA3GG,UAAkB;IA6GtB;;;;OAIG;IACH,gBAJW,MAAM,OACN,MAAM,GACJ,qBAAqB,CASjC;IAED;;;OAGG;IACH,UAHW,MAAM,GACJ,qBAAqB,CAKjC;IAED;;;OAGG;IACH,cAHW,MAAM,GACJ,qBAAqB,CAWjC;IAED;;;;OAIG;IACH,8BAJW,MAAM,QACN,MAAM,GACJ,qBAAqB,CAcjC;IAED;;;OAGG;IACH,eAHW,MAAM,GACJ,qBAAqB,CAKjC;IAED;;;;;;;;;;;OAWG;IACH,aANW,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,QAErC,OAAO,+BAA+B,EAAE,YAAY,GAElD,qBAAqB,CA4BjC;IAED;;;;;;;;;;;;OAYG;IACH,qBAPW,MAAM,MACN,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,QAErC,OAAO,+BAA+B,EAAE,YAAY,GAElD,qBAAqB,CA2CjC;CACF;uCAhesC,iCAAiC"}