jtlt 0.3.0 → 0.5.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 +18 -0
- package/README.md +46 -78
- package/demo/codemirror.esm.js +28242 -0
- package/demo/codemirror.js +94 -0
- package/demo/index.css +11 -0
- package/demo/index.html +11 -14
- package/demo/index.js +210 -26
- package/demo/vendor/fontoxpath/dist/fontoxpath.esm.js +600 -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/prsc/dist/prsc.esm.js +2 -0
- package/demo/vendor/simple-get-json/dist/index-es.js +151 -0
- package/demo/vendor/whynot/dist/whynot.esm.js +2 -0
- package/demo/vendor/xspattern/dist/xspattern.esm.js +2 -0
- package/dist/AbstractJoiningTransformer.d.ts +27 -0
- package/dist/AbstractJoiningTransformer.d.ts.map +1 -1
- package/dist/DOMJoiningTransformer.d.ts +60 -8
- package/dist/DOMJoiningTransformer.d.ts.map +1 -1
- package/dist/JSONJoiningTransformer.d.ts +8 -9
- package/dist/JSONJoiningTransformer.d.ts.map +1 -1
- package/dist/JSONPathTransformer.d.ts.map +1 -1
- package/dist/JSONPathTransformerContext.d.ts +223 -4
- package/dist/JSONPathTransformerContext.d.ts.map +1 -1
- package/dist/StringJoiningTransformer.d.ts +7 -7
- package/dist/StringJoiningTransformer.d.ts.map +1 -1
- package/dist/XPathTransformer.d.ts +2 -2
- package/dist/XPathTransformer.d.ts.map +1 -1
- package/dist/XPathTransformerContext.d.ts +161 -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 +62 -36
- package/eslint.config.js +3 -1
- package/package.json +28 -4
- package/rollup.config.js +13 -0
- package/src/AbstractJoiningTransformer.js +42 -0
- package/src/DOMJoiningTransformer.js +115 -23
- package/src/JSONJoiningTransformer.js +50 -26
- package/src/JSONPathTransformer.js +2 -0
- package/src/JSONPathTransformerContext.js +936 -5
- package/src/StringJoiningTransformer.js +25 -21
- package/src/XPathTransformer.js +3 -1
- package/src/XPathTransformerContext.js +884 -15
- package/src/index.js +16 -7
- package/tsconfig.json +5 -2
|
@@ -13,7 +13,8 @@ import AbstractJoiningTransformer from './AbstractJoiningTransformer.js';
|
|
|
13
13
|
* mediaType?: string,
|
|
14
14
|
* version?: string,
|
|
15
15
|
* standalone?: boolean,
|
|
16
|
-
* method?: "xml"|"html"|"text"|"json"|"xhtml"
|
|
16
|
+
* method?: "xml"|"html"|"text"|"json"|"xhtml",
|
|
17
|
+
* useCharacterMaps?: string[]
|
|
17
18
|
* }} OutputConfig
|
|
18
19
|
*/
|
|
19
20
|
|
|
@@ -434,20 +435,6 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
434
435
|
return this;
|
|
435
436
|
}
|
|
436
437
|
|
|
437
|
-
/**
|
|
438
|
-
* @param {OutputConfig} cfg
|
|
439
|
-
* @returns {StringJoiningTransformer}
|
|
440
|
-
*/
|
|
441
|
-
output (cfg) {
|
|
442
|
-
// We wait until first element is set in `element()` to add
|
|
443
|
-
// XML declaration and DOCTYPE as latter depends on root element
|
|
444
|
-
this._outputConfig = cfg;
|
|
445
|
-
|
|
446
|
-
// Use for file extension if making downloadable?
|
|
447
|
-
this.mediaType = cfg.mediaType;
|
|
448
|
-
return this;
|
|
449
|
-
}
|
|
450
|
-
|
|
451
438
|
/**
|
|
452
439
|
* @param {string|Element} elName - Element name or element object
|
|
453
440
|
* @param {ElementAttributes} [atts] - Element attributes
|
|
@@ -570,7 +557,9 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
570
557
|
}
|
|
571
558
|
if (childNodes && childNodes.length) {
|
|
572
559
|
this._openTagState = false;
|
|
573
|
-
this.append(
|
|
560
|
+
this.append(this._replaceCharacterMaps(
|
|
561
|
+
jml[method]({'#': childNodes})
|
|
562
|
+
));
|
|
574
563
|
}
|
|
575
564
|
cb.call(this);
|
|
576
565
|
|
|
@@ -585,6 +574,17 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
585
574
|
return this;
|
|
586
575
|
}
|
|
587
576
|
|
|
577
|
+
/**
|
|
578
|
+
* @param {string} prefix
|
|
579
|
+
* @param {string} namespaceURI
|
|
580
|
+
* @returns {StringJoiningTransformer}
|
|
581
|
+
*/
|
|
582
|
+
namespace (prefix, namespaceURI) {
|
|
583
|
+
this.append(' xmlns:' + prefix + '="' +
|
|
584
|
+
this._replaceCharacterMaps(namespaceURI) + '"');
|
|
585
|
+
return this;
|
|
586
|
+
}
|
|
587
|
+
|
|
588
588
|
/**
|
|
589
589
|
* @param {string} name - Attribute name
|
|
590
590
|
* @param {string|Record<string, unknown>|
|
|
@@ -648,7 +648,7 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
648
648
|
val = (this._cfg.preEscapedAttributes || avoidAttEscape)
|
|
649
649
|
? valStr
|
|
650
650
|
: valStr.replaceAll('&', '&').replaceAll('"', '"');
|
|
651
|
-
this.append(' ' + name + '="' + val + '"');
|
|
651
|
+
this.append(' ' + name + '="' + this._replaceCharacterMaps(val) + '"');
|
|
652
652
|
return this;
|
|
653
653
|
}
|
|
654
654
|
|
|
@@ -663,7 +663,11 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
663
663
|
this.append('>');
|
|
664
664
|
this._openTagState = false;
|
|
665
665
|
}
|
|
666
|
-
this.append(
|
|
666
|
+
this.append(
|
|
667
|
+
this._replaceCharacterMaps(
|
|
668
|
+
txt
|
|
669
|
+
).replaceAll('&', '&').replaceAll('<', '<')
|
|
670
|
+
);
|
|
667
671
|
return this;
|
|
668
672
|
}
|
|
669
673
|
|
|
@@ -734,7 +738,7 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
734
738
|
// Save current state
|
|
735
739
|
/** @type {any} */
|
|
736
740
|
const oldRoot = this.root;
|
|
737
|
-
/** @type {
|
|
741
|
+
/** @type {OutputConfig|undefined} */
|
|
738
742
|
const oldOutputConfig = this._outputConfig;
|
|
739
743
|
const oldStr = this._str;
|
|
740
744
|
/** @type {any} */
|
|
@@ -742,7 +746,7 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
742
746
|
|
|
743
747
|
// Reset state for new document
|
|
744
748
|
this.root = undefined;
|
|
745
|
-
/** @type {
|
|
749
|
+
/** @type {OutputConfig} */
|
|
746
750
|
this._outputConfig = cfg;
|
|
747
751
|
this._str = '';
|
|
748
752
|
this._openTagState = false;
|
|
@@ -795,7 +799,7 @@ class StringJoiningTransformer extends AbstractJoiningTransformer {
|
|
|
795
799
|
|
|
796
800
|
// Reset state for new document
|
|
797
801
|
this.root = undefined;
|
|
798
|
-
/** @type {
|
|
802
|
+
/** @type {OutputConfig} */
|
|
799
803
|
this._outputConfig = cfg;
|
|
800
804
|
this._str = '';
|
|
801
805
|
this._openTagState = false;
|
package/src/XPathTransformer.js
CHANGED
|
@@ -6,7 +6,7 @@ import XPathTransformerContext from './XPathTransformerContext.js';
|
|
|
6
6
|
* @property {boolean} [errorOnEqualPriority] Throw on equal priority
|
|
7
7
|
* @property {import('./index.js').
|
|
8
8
|
* XPathTemplateArray<T>} templates Template objects
|
|
9
|
-
* @property {number} [xpathVersion] XPath version (1|2)
|
|
9
|
+
* @property {number} [xpathVersion] XPath version (1|2|3.1)
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
/**
|
|
@@ -83,6 +83,8 @@ class XPathTransformer {
|
|
|
83
83
|
if (len > 1) {
|
|
84
84
|
this._triggerEqualPriorityError();
|
|
85
85
|
}
|
|
86
|
+
// Set up parameter context for valueOf() access in root template
|
|
87
|
+
xte._params = {0: xte._contextNode};
|
|
86
88
|
const ret = templateObj.template.call(xte, undefined, {mode});
|
|
87
89
|
if (typeof ret !== 'undefined') {
|
|
88
90
|
/** @type {any} */ (xte)._getJoiningTransformer().append(ret);
|