@e-mc/document 0.5.4 → 0.5.6
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/LICENSE +1 -1
- package/index.js +49 -36
- package/package.json +4 -4
- package/parse/dom.js +3 -2
- package/parse/index.js +24 -16
- package/transform/index.js +2 -1
package/LICENSE
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Copyright
|
|
1
|
+
Copyright 2024 An Pham
|
|
2
2
|
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
4
4
|
|
package/index.js
CHANGED
|
@@ -235,7 +235,7 @@ class Document extends core_1.Client {
|
|
|
235
235
|
let match;
|
|
236
236
|
while (match = pattern.exec(source)) {
|
|
237
237
|
const preceding = source.substring(lastIndex, match.index);
|
|
238
|
-
let opening = 0, closing =
|
|
238
|
+
let opening = 0, closing = 0;
|
|
239
239
|
for (let j = 0, q = preceding.length; j < q; ++j) {
|
|
240
240
|
switch (preceding[j]) {
|
|
241
241
|
case '{':
|
|
@@ -246,8 +246,11 @@ class Document extends core_1.Client {
|
|
|
246
246
|
break;
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
|
-
if (opening === closing
|
|
250
|
-
|
|
249
|
+
if (opening === closing) {
|
|
250
|
+
if (!multiple || match[1] && sanitizeValue(match[1]) === sanitizeValue(local[3])) {
|
|
251
|
+
return upgrade ? parse_1.XmlWriter.replaceMatch(match, source, value, pattern) : source;
|
|
252
|
+
}
|
|
253
|
+
lastIndex = match.index + match[0].length;
|
|
251
254
|
}
|
|
252
255
|
}
|
|
253
256
|
return spliceSource(source, lastIndex, lastIndex, ident.repeat(length) + value + newline);
|
|
@@ -268,6 +271,7 @@ class Document extends core_1.Client {
|
|
|
268
271
|
return lastIndex > 0 ? spliceSource(source, lastIndex, lastIndex, content) : source + newline + content;
|
|
269
272
|
}
|
|
270
273
|
static generateLintTable(messages, options) {
|
|
274
|
+
var _a, _b, _c;
|
|
271
275
|
const { leadingText, trailingText, pathname, filename, ruleWidth = 30, messageWidth = 60 } = options;
|
|
272
276
|
const result = [];
|
|
273
277
|
const truncate = (value, width) => value.length > width ? value.substring(0, width - 3) + '...' : value.padStart(width);
|
|
@@ -313,9 +317,9 @@ class Document extends core_1.Client {
|
|
|
313
317
|
maxWidth += maxLine + maxColumn;
|
|
314
318
|
const title = (leadingText || '') + (pathname || filename ? (leadingText ? ': ' : '') + (pathname && filename ? path.join(pathname, filename) : pathname || filename) : '');
|
|
315
319
|
const divider = { type: types_1.STATUS_TYPE.INFO, value: '-'.repeat(maxWidth), timeStamp };
|
|
316
|
-
errorCount = (options.errorCount
|
|
317
|
-
warningCount = (options.warningCount
|
|
318
|
-
fatalErrorCount = (options.fatalErrorCount
|
|
320
|
+
errorCount = ((_a = options.errorCount) !== null && _a !== void 0 ? _a : errorCount).toString();
|
|
321
|
+
warningCount = ((_b = options.warningCount) !== null && _b !== void 0 ? _b : warningCount).toString();
|
|
322
|
+
fatalErrorCount = ((_c = options.fatalErrorCount) !== null && _c !== void 0 ? _c : fatalErrorCount).toString();
|
|
319
323
|
const hasFatal = fatalErrorCount !== '0';
|
|
320
324
|
result.unshift(divider, { type: types_1.STATUS_TYPE.INFO, value: title + ' '.repeat(maxWidth - title.length - (hasFatal ? fatalErrorCount.length + 9 : 0)) + (hasFatal ? `fatal(${chalk.bold.bgRed.white(` ${fatalErrorCount} `)})` : ''), timeStamp, duration: currentTime - timeStamp }, divider);
|
|
321
325
|
result.push(divider);
|
|
@@ -340,7 +344,8 @@ class Document extends core_1.Client {
|
|
|
340
344
|
}
|
|
341
345
|
restart() { }
|
|
342
346
|
init(assets, config) {
|
|
343
|
-
var _a;
|
|
347
|
+
var _a, _b, _c;
|
|
348
|
+
var _d;
|
|
344
349
|
let ignoreModules;
|
|
345
350
|
if (config) {
|
|
346
351
|
const { baseUrl, ignoreExtensions } = config;
|
|
@@ -354,10 +359,10 @@ class Document extends core_1.Client {
|
|
|
354
359
|
this._extensions = ignoreExtensions.includes(this.moduleName) ? [] : this._extensions.filter(value => !ignoreExtensions.includes(value));
|
|
355
360
|
}
|
|
356
361
|
if (baseUrl) {
|
|
357
|
-
const username = this.host
|
|
362
|
+
const username = (_a = this.host) === null || _a === void 0 ? void 0 : _a.username;
|
|
358
363
|
let pages = this.settings.pages;
|
|
359
364
|
if (username) {
|
|
360
|
-
const users = this.settings.users
|
|
365
|
+
const users = (_c = (_b = this.settings.users) === null || _b === void 0 ? void 0 : _b[username]) === null || _c === void 0 ? void 0 : _c.pages;
|
|
361
366
|
if ((0, types_1.isPlainObject)(users)) {
|
|
362
367
|
pages = (0, types_1.isPlainObject)(pages) ? { ...pages, ...users } : users;
|
|
363
368
|
}
|
|
@@ -405,8 +410,8 @@ class Document extends core_1.Client {
|
|
|
405
410
|
}
|
|
406
411
|
ignoreModules = config.ignoreModules;
|
|
407
412
|
}
|
|
408
|
-
if (this.dataSource.length && !ignoreModules
|
|
409
|
-
const db = (
|
|
413
|
+
if (this.dataSource.length && !(ignoreModules === null || ignoreModules === void 0 ? void 0 : ignoreModules.includes('db'))) {
|
|
414
|
+
const db = (_d = this.module).db || (_d.db = {});
|
|
410
415
|
const handler = db.handler;
|
|
411
416
|
const database = this.dataSource.filter(this.forDb.bind(this));
|
|
412
417
|
let instance;
|
|
@@ -468,7 +473,7 @@ class Document extends core_1.Client {
|
|
|
468
473
|
this._transformConfig = null;
|
|
469
474
|
return;
|
|
470
475
|
}
|
|
471
|
-
switch (algorithm = algorithm
|
|
476
|
+
switch (algorithm = algorithm === null || algorithm === void 0 ? void 0 : algorithm.toLowerCase()) {
|
|
472
477
|
case 'md5':
|
|
473
478
|
case 'sha1':
|
|
474
479
|
case 'sha224':
|
|
@@ -586,11 +591,12 @@ class Document extends core_1.Client {
|
|
|
586
591
|
delete data[name];
|
|
587
592
|
}
|
|
588
593
|
resolveDir(name, ...paths) {
|
|
589
|
-
|
|
594
|
+
var _a, _b;
|
|
595
|
+
let baseDir = (_a = this.settings.directory) === null || _a === void 0 ? void 0 : _a[name];
|
|
590
596
|
if (baseDir) {
|
|
591
597
|
try {
|
|
592
598
|
baseDir = path.resolve(baseDir);
|
|
593
|
-
const username = this.host
|
|
599
|
+
const username = (_b = this.host) === null || _b === void 0 ? void 0 : _b.username;
|
|
594
600
|
let result;
|
|
595
601
|
if (username) {
|
|
596
602
|
const leading = path.join(baseDir, 'users', username);
|
|
@@ -666,6 +672,7 @@ class Document extends core_1.Client {
|
|
|
666
672
|
return null;
|
|
667
673
|
}
|
|
668
674
|
findVersion(name, fallback = '') {
|
|
675
|
+
var _a;
|
|
669
676
|
let result;
|
|
670
677
|
const versions = this.module.versions;
|
|
671
678
|
if (versions) {
|
|
@@ -677,7 +684,7 @@ class Document extends core_1.Client {
|
|
|
677
684
|
}
|
|
678
685
|
}
|
|
679
686
|
else {
|
|
680
|
-
result = this.module.versions
|
|
687
|
+
result = (_a = this.module.versions) === null || _a === void 0 ? void 0 : _a[name];
|
|
681
688
|
}
|
|
682
689
|
}
|
|
683
690
|
return result || fallback;
|
|
@@ -707,6 +714,7 @@ class Document extends core_1.Client {
|
|
|
707
714
|
}
|
|
708
715
|
locateSourceFiles(file, code, bundleContent) {
|
|
709
716
|
return (imports = this.imports) => {
|
|
717
|
+
var _a;
|
|
710
718
|
const href = file.uri;
|
|
711
719
|
const sourceFile = [];
|
|
712
720
|
let mainFile, invalid;
|
|
@@ -749,7 +757,7 @@ class Document extends core_1.Client {
|
|
|
749
757
|
invalid = true;
|
|
750
758
|
break;
|
|
751
759
|
}
|
|
752
|
-
sourceFile.push(['', this.resolveImports
|
|
760
|
+
sourceFile.push(['', ((_a = this.resolveImports) === null || _a === void 0 ? void 0 : _a.call(this, item, source, localFile)) || source, localFile]);
|
|
753
761
|
}
|
|
754
762
|
}
|
|
755
763
|
}
|
|
@@ -760,10 +768,11 @@ class Document extends core_1.Client {
|
|
|
760
768
|
}
|
|
761
769
|
resolveSourceFile(file) {
|
|
762
770
|
return (code, imports = this.imports) => {
|
|
771
|
+
var _a;
|
|
763
772
|
const uri = file.uri;
|
|
764
773
|
let source, sourceFile;
|
|
765
774
|
if (code && imports && Object.keys(imports).length) {
|
|
766
|
-
const output = this.resolveImports
|
|
775
|
+
const output = (_a = this.resolveImports) === null || _a === void 0 ? void 0 : _a.call(this, file, code, uri && this.findSourceRoot(uri, imports));
|
|
767
776
|
if (output) {
|
|
768
777
|
source = output;
|
|
769
778
|
}
|
|
@@ -804,20 +813,23 @@ class Document extends core_1.Client {
|
|
|
804
813
|
return item.source !== 'cloud';
|
|
805
814
|
}
|
|
806
815
|
hasEval(name) {
|
|
807
|
-
|
|
816
|
+
var _a;
|
|
817
|
+
return !!((_a = this.module.eval) === null || _a === void 0 ? void 0 : _a[name]);
|
|
808
818
|
}
|
|
809
819
|
settingsOf(name, option) {
|
|
810
|
-
|
|
820
|
+
var _a;
|
|
821
|
+
const options = (_a = this.settings.options) === null || _a === void 0 ? void 0 : _a[name];
|
|
811
822
|
if ((0, types_1.isObject)(options)) {
|
|
812
823
|
return options[option];
|
|
813
824
|
}
|
|
814
825
|
}
|
|
815
826
|
async parseTemplate(viewEngine, template, data) {
|
|
827
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
816
828
|
let target, stored;
|
|
817
829
|
if (typeof viewEngine === 'string') {
|
|
818
|
-
target = this.settings.view_engine
|
|
819
|
-
const username = this.host
|
|
820
|
-
const userConfig = username && this.settings.users
|
|
830
|
+
target = (_a = this.settings.view_engine) === null || _a === void 0 ? void 0 : _a[viewEngine];
|
|
831
|
+
const username = (_b = this.host) === null || _b === void 0 ? void 0 : _b.username;
|
|
832
|
+
const userConfig = username && ((_e = (_d = (_c = this.settings.users) === null || _c === void 0 ? void 0 : _c[username]) === null || _d === void 0 ? void 0 : _d.view_engine) === null || _e === void 0 ? void 0 : _e[viewEngine]);
|
|
821
833
|
if ((0, types_1.isPlainObject)(userConfig)) {
|
|
822
834
|
if ((0, types_1.isPlainObject)(target)) {
|
|
823
835
|
(0, types_1.cloneObject)(userConfig, { target, deep: true, preserve: true });
|
|
@@ -857,7 +869,7 @@ class Document extends core_1.Client {
|
|
|
857
869
|
(0, types_1.coerceObject)(output, stored);
|
|
858
870
|
}
|
|
859
871
|
}
|
|
860
|
-
const username = this.host
|
|
872
|
+
const username = ((_f = this.host) === null || _f === void 0 ? void 0 : _f.username) || '';
|
|
861
873
|
const cache = CACHE_TEMPLATE[name] || (CACHE_TEMPLATE[name] = {});
|
|
862
874
|
const cacheKey = username + core_1.Client.asHash(template + (compile ? core_1.Client.asString(compile) : ''));
|
|
863
875
|
let result = '', render, valid;
|
|
@@ -870,7 +882,7 @@ class Document extends core_1.Client {
|
|
|
870
882
|
}
|
|
871
883
|
for (let i = 0, j = 0, row; i < length; ++i) {
|
|
872
884
|
if ((0, types_1.isPlainObject)(row = data[i])) {
|
|
873
|
-
row.__index__
|
|
885
|
+
(_g = row.__index__) !== null && _g !== void 0 ? _g : (row.__index__ = ++j);
|
|
874
886
|
if (output) {
|
|
875
887
|
row = { ...output, ...row };
|
|
876
888
|
}
|
|
@@ -887,7 +899,7 @@ class Document extends core_1.Client {
|
|
|
887
899
|
}
|
|
888
900
|
}
|
|
889
901
|
}
|
|
890
|
-
return singleRow ? render.call(context, data)
|
|
902
|
+
return singleRow ? (_h = render.call(context, data)) !== null && _h !== void 0 ? _h : null : valid ? result : null;
|
|
891
903
|
}
|
|
892
904
|
catch (err) {
|
|
893
905
|
this.abort('view_engine');
|
|
@@ -896,15 +908,16 @@ class Document extends core_1.Client {
|
|
|
896
908
|
return null;
|
|
897
909
|
}
|
|
898
910
|
async transform(type, code, format, options = {}) {
|
|
899
|
-
var _a;
|
|
911
|
+
var _a, _b, _c, _d;
|
|
912
|
+
var _e;
|
|
900
913
|
let transform = this.settings.transform;
|
|
901
|
-
const data = transform
|
|
914
|
+
const data = transform === null || transform === void 0 ? void 0 : transform[type];
|
|
902
915
|
if (!(0, types_1.isObject)(data)) {
|
|
903
916
|
return;
|
|
904
917
|
}
|
|
905
918
|
format = typeof format === 'string' ? format.trim().split(/\s*\+\s*/) : format.map(item => typeof item === 'string' ? item.trim() : '');
|
|
906
919
|
const moduleName = this.moduleName;
|
|
907
|
-
const username = this.host
|
|
920
|
+
const username = ((_a = this.host) === null || _a === void 0 ? void 0 : _a.username) || '';
|
|
908
921
|
const config = this._transformConfig;
|
|
909
922
|
const cacheData = config && options.cacheData;
|
|
910
923
|
const cacheType = username && core_1.Client.enabled("memory.settings.users", username) ? true : this.cacheDir || core_1.Client.enabled("memory.settings.users");
|
|
@@ -982,7 +995,7 @@ class Document extends core_1.Client {
|
|
|
982
995
|
}
|
|
983
996
|
}
|
|
984
997
|
if (result) {
|
|
985
|
-
result.storedLog
|
|
998
|
+
(_b = result.storedLog) === null || _b === void 0 ? void 0 : _b.forEach(log => this.addLog(log));
|
|
986
999
|
this.formatMessage(4, type, [joinString(cacheName, format.filter(value => value).join(' | '), options.filename), 'cache'], uri, { ...core_1.Client.LOG_STYLE_NOTICE, hintBold: true });
|
|
987
1000
|
return result;
|
|
988
1001
|
}
|
|
@@ -990,11 +1003,11 @@ class Document extends core_1.Client {
|
|
|
990
1003
|
if (cacheData) {
|
|
991
1004
|
delete options.cacheData;
|
|
992
1005
|
}
|
|
993
|
-
const imports = (
|
|
1006
|
+
const imports = (_e = transform).imports || (_e.imports = {});
|
|
994
1007
|
const series = new transform_1.TransformSeries(type, code, options);
|
|
995
1008
|
series.init(this, __dirname);
|
|
996
1009
|
let valid, excluded, userData, userImports, ignoreCache, storedLog, sourceFiles;
|
|
997
|
-
if (username && (transform = this.settings.users
|
|
1010
|
+
if (username && (transform = (_d = (_c = this.settings.users) === null || _c === void 0 ? void 0 : _c[username]) === null || _d === void 0 ? void 0 : _d.transform)) {
|
|
998
1011
|
userData = transform[type];
|
|
999
1012
|
userImports = transform.imports;
|
|
1000
1013
|
}
|
|
@@ -1003,12 +1016,12 @@ class Document extends core_1.Client {
|
|
|
1003
1016
|
this.abort('transform');
|
|
1004
1017
|
};
|
|
1005
1018
|
const includes = (name) => {
|
|
1006
|
-
const include = config
|
|
1007
|
-
if (include === true || include
|
|
1019
|
+
const include = config === null || config === void 0 ? void 0 : config.include[type];
|
|
1020
|
+
if (include === true || (include === null || include === void 0 ? void 0 : include.includes(name))) {
|
|
1008
1021
|
const exclude = config.exclude[type];
|
|
1009
1022
|
return !exclude || exclude === true && include !== true || Array.isArray(exclude) && !exclude.includes(name);
|
|
1010
1023
|
}
|
|
1011
|
-
return cacheData
|
|
1024
|
+
return (cacheData === null || cacheData === void 0 ? void 0 : cacheData.override) === true;
|
|
1012
1025
|
};
|
|
1013
1026
|
for (let i = 0, length = format.length, name; i < length; ++i) {
|
|
1014
1027
|
if (this.aborted) {
|
|
@@ -1127,7 +1140,7 @@ class Document extends core_1.Client {
|
|
|
1127
1140
|
let transformer = CACHE_PACKAGE[plugin + username];
|
|
1128
1141
|
if (!transformer) {
|
|
1129
1142
|
try {
|
|
1130
|
-
let pkg = this.resolveDir('package', plugin + '.js') || userImports
|
|
1143
|
+
let pkg = this.resolveDir('package', plugin + '.js') || (userImports === null || userImports === void 0 ? void 0 : userImports[plugin]) || imports[plugin] || PIR_PLUGINS[plugin];
|
|
1131
1144
|
if (pkg) {
|
|
1132
1145
|
const match = /^(@?\S+)@(\d+(?:\.\d+(?:\.\S+)?)?|[a-z]+)$/.exec(pkg);
|
|
1133
1146
|
if (match) {
|
|
@@ -1195,7 +1208,7 @@ class Document extends core_1.Client {
|
|
|
1195
1208
|
output.map = sourceMap.map;
|
|
1196
1209
|
}
|
|
1197
1210
|
if ((0, types_1.isArray)(series.supplementChunks)) {
|
|
1198
|
-
output.chunks = series.supplementChunks.map(item => ({ code: item.code, map: output.map && item.sourceMap
|
|
1211
|
+
output.chunks = series.supplementChunks.map(item => { var _a; return ({ code: item.code, map: output.map && ((_a = item.sourceMap) === null || _a === void 0 ? void 0 : _a.map), entryPoint: item.entryPoint, filename: item.filename }); });
|
|
1199
1212
|
}
|
|
1200
1213
|
if (sourceFiles) {
|
|
1201
1214
|
output.sourceFiles = sourceFiles;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@e-mc/document",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.6",
|
|
4
4
|
"description": "Document constructor for E-mc.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"homepage": "https://github.com/anpham6/e-mc#readme",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@e-mc/core": "0.5.
|
|
24
|
-
"@e-mc/db": "0.5.
|
|
25
|
-
"@e-mc/types": "0.5.
|
|
23
|
+
"@e-mc/core": "0.5.6",
|
|
24
|
+
"@e-mc/db": "0.5.6",
|
|
25
|
+
"@e-mc/types": "0.5.6",
|
|
26
26
|
"chalk": "4.1.2",
|
|
27
27
|
"htmlparser2": "^9.0.0",
|
|
28
28
|
"js-yaml": "^4.1.0",
|
package/parse/dom.js
CHANGED
|
@@ -34,7 +34,7 @@ class DomWriter extends index_1.XmlWriter {
|
|
|
34
34
|
tagGroup.push(new RegExp('^' + (0, types_1.escapePattern)(start)));
|
|
35
35
|
}
|
|
36
36
|
const end = ignoreTagGroup[i + 1];
|
|
37
|
-
if (end
|
|
37
|
+
if ((end === null || end === void 0 ? void 0 : end[end.length - 1]) === '>') {
|
|
38
38
|
tagGroup.push(new RegExp((0, types_1.escapePattern)(start) + '$'));
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -226,7 +226,8 @@ class HtmlElement extends index_1.XmlElement {
|
|
|
226
226
|
this._documentType = "HTML";
|
|
227
227
|
}
|
|
228
228
|
getTagOffset(source) {
|
|
229
|
-
|
|
229
|
+
var _a;
|
|
230
|
+
switch (((_a = this.node.append) === null || _a === void 0 ? void 0 : _a.tagName) || this.tagName) {
|
|
230
231
|
case 'html':
|
|
231
232
|
case 'title':
|
|
232
233
|
case 'style':
|
package/parse/index.js
CHANGED
|
@@ -235,7 +235,7 @@ class XmlWriter {
|
|
|
235
235
|
return result;
|
|
236
236
|
}
|
|
237
237
|
const nodes = domutils.getElementsByTagName(node.tagName, outDom, true);
|
|
238
|
-
if (!parser
|
|
238
|
+
if (!(parser === null || parser === void 0 ? void 0 : parser.xmlMode)) {
|
|
239
239
|
nodes.filter(item => item.next && item.next.startIndex <= item.endIndex).forEach(item => {
|
|
240
240
|
for (let i = 0, length = nodes.length; i < length; ++i) {
|
|
241
241
|
const element = nodes[i];
|
|
@@ -262,7 +262,7 @@ class XmlWriter {
|
|
|
262
262
|
const locator = node.locator;
|
|
263
263
|
if (locator && locatorAttr) {
|
|
264
264
|
const { element } = this.locateElement(source, locator, locatorAttr, { parser, outDom });
|
|
265
|
-
if (element
|
|
265
|
+
if ((element === null || element === void 0 ? void 0 : element.tagName) === node.tagName) {
|
|
266
266
|
result.element = element;
|
|
267
267
|
index = nodes.findIndex(item => item === element);
|
|
268
268
|
}
|
|
@@ -346,10 +346,12 @@ class XmlWriter {
|
|
|
346
346
|
CACHE_TAGVOID[type] = values;
|
|
347
347
|
}
|
|
348
348
|
static isTagVoid(type, tagName) {
|
|
349
|
-
|
|
349
|
+
var _a;
|
|
350
|
+
return !!((_a = CACHE_TAGVOID[type]) === null || _a === void 0 ? void 0 : _a.includes(tagName));
|
|
350
351
|
}
|
|
351
352
|
static getNodeId(node, document) {
|
|
352
|
-
|
|
353
|
+
var _a;
|
|
354
|
+
return ((_a = node.id) === null || _a === void 0 ? void 0 : _a[document]) || '';
|
|
353
355
|
}
|
|
354
356
|
static getNameOfId(document) {
|
|
355
357
|
return `data-${document}-id`;
|
|
@@ -424,7 +426,7 @@ class XmlWriter {
|
|
|
424
426
|
if ((ignoreCase ? tagName.toLowerCase() === other.tagName.toLowerCase() : tagName === other.tagName) && (index === other.index && isIndex(index) || tagIndex === other.tagIndex && tagCount === other.tagCount && isIndex(tagIndex) && isCount(tagCount))) {
|
|
425
427
|
return true;
|
|
426
428
|
}
|
|
427
|
-
return document && other.id && id
|
|
429
|
+
return document && other.id && (id === null || id === void 0 ? void 0 : id[document]) ? id[document] === other.id[document] : false;
|
|
428
430
|
}
|
|
429
431
|
static isIndex(value) {
|
|
430
432
|
return isIndex(value);
|
|
@@ -450,7 +452,7 @@ class XmlWriter {
|
|
|
450
452
|
this._patternIgnore = null;
|
|
451
453
|
this._writeStartIndex = -1;
|
|
452
454
|
this._source = source;
|
|
453
|
-
this.parser = options
|
|
455
|
+
this.parser = options === null || options === void 0 ? void 0 : options.parser;
|
|
454
456
|
}
|
|
455
457
|
init(offsetMap) {
|
|
456
458
|
const appending = [];
|
|
@@ -461,7 +463,7 @@ class XmlWriter {
|
|
|
461
463
|
}
|
|
462
464
|
if (isCount(item.tagCount)) {
|
|
463
465
|
const tagName = item.tagName;
|
|
464
|
-
item.tagCount += offsetMap
|
|
466
|
+
item.tagCount += (offsetMap === null || offsetMap === void 0 ? void 0 : offsetMap[tagName]) || 0;
|
|
465
467
|
this._tagCount[tagName] = item.tagCount;
|
|
466
468
|
}
|
|
467
469
|
deletePosition(item, rootName);
|
|
@@ -550,6 +552,7 @@ class XmlWriter {
|
|
|
550
552
|
return null;
|
|
551
553
|
}
|
|
552
554
|
write(element) {
|
|
555
|
+
var _a;
|
|
553
556
|
if (!element.modified) {
|
|
554
557
|
return true;
|
|
555
558
|
}
|
|
@@ -580,7 +583,7 @@ class XmlWriter {
|
|
|
580
583
|
if (append) {
|
|
581
584
|
const { tagName, id, textContent = '', prepend, nextSibling } = append;
|
|
582
585
|
if (!prepend) {
|
|
583
|
-
node.index = nextSibling
|
|
586
|
+
node.index = nextSibling !== null && nextSibling !== void 0 ? nextSibling : -1;
|
|
584
587
|
}
|
|
585
588
|
(node.id || (node.id = {}))[this.documentName] = id;
|
|
586
589
|
element.id = id;
|
|
@@ -603,7 +606,7 @@ class XmlWriter {
|
|
|
603
606
|
this.renameTag(node, element.tagName);
|
|
604
607
|
}
|
|
605
608
|
this.update(node, outerXml, append, element.tagOffset);
|
|
606
|
-
if (element.innerXml && !element.remove && (element.hasModifiedContent() || this.patternIgnore
|
|
609
|
+
if (element.innerXml && !element.remove && (element.hasModifiedContent() || ((_a = this.patternIgnore) === null || _a === void 0 ? void 0 : _a.test(element.tagName)))) {
|
|
607
610
|
this._hasInvalidContent = true;
|
|
608
611
|
this._writeStartIndex = -1;
|
|
609
612
|
}
|
|
@@ -802,6 +805,7 @@ class XmlWriter {
|
|
|
802
805
|
}
|
|
803
806
|
}
|
|
804
807
|
indexTag(tagName, append, offset = 0) {
|
|
808
|
+
var _a;
|
|
805
809
|
if (tagName in this._tagCount) {
|
|
806
810
|
const elements = [];
|
|
807
811
|
const revised = [];
|
|
@@ -871,7 +875,7 @@ class XmlWriter {
|
|
|
871
875
|
return;
|
|
872
876
|
}
|
|
873
877
|
}
|
|
874
|
-
const id = append ? append.id : revised[0].id
|
|
878
|
+
const id = append ? append.id : (_a = revised[0].id) === null || _a === void 0 ? void 0 : _a[this.documentName];
|
|
875
879
|
if (id) {
|
|
876
880
|
const element = XmlWriter.findElement(this.source, (append || revised[0]), { document: this.documentName, id, tagCount: nextCount, parser: this.parser });
|
|
877
881
|
if (element) {
|
|
@@ -893,7 +897,7 @@ class XmlWriter {
|
|
|
893
897
|
item.index = -1;
|
|
894
898
|
}
|
|
895
899
|
const append = item.append;
|
|
896
|
-
if (append
|
|
900
|
+
if ((append === null || append === void 0 ? void 0 : append.tagName) === tagName) {
|
|
897
901
|
delete append.tagCount;
|
|
898
902
|
const nextSibling = append.nextSibling;
|
|
899
903
|
if (isIndex(nextSibling)) {
|
|
@@ -954,6 +958,7 @@ class XmlWriter {
|
|
|
954
958
|
}
|
|
955
959
|
getElementsByTagName(tagName, ignoreCase = false, options) {
|
|
956
960
|
var _a;
|
|
961
|
+
var _b;
|
|
957
962
|
let tagVoid;
|
|
958
963
|
if (options) {
|
|
959
964
|
({ tagVoid } = options);
|
|
@@ -963,14 +968,14 @@ class XmlWriter {
|
|
|
963
968
|
const result = [];
|
|
964
969
|
const patternId = XmlWriter.getPatternId(this.nameOfId);
|
|
965
970
|
const flags = ignoreCase ? 'gi' : 'g';
|
|
966
|
-
const pattern = CACHE_TAGNAME[
|
|
971
|
+
const pattern = CACHE_TAGNAME[_b = tagName + flags + '3'] || (CACHE_TAGNAME[_b] = new RegExp(`<${escapeTagName(tagName) + PATTERN_TAGOPEN}*>`, flags));
|
|
967
972
|
pattern.lastIndex = 0;
|
|
968
973
|
let match;
|
|
969
974
|
while (match = pattern.exec(source)) {
|
|
970
975
|
const startIndex = match.index;
|
|
971
976
|
let outerXml = match[0], endIndex = startIndex + outerXml.length - 1;
|
|
972
977
|
if (!invalid || isValidIndex(invalid, startIndex, endIndex)) {
|
|
973
|
-
const id = patternId.exec(outerXml)
|
|
978
|
+
const id = (_a = patternId.exec(outerXml)) === null || _a === void 0 ? void 0 : _a[1];
|
|
974
979
|
if (!tagVoid) {
|
|
975
980
|
const [index, closeTag] = findCloseIndex(source, tagName, endIndex + 1, ignoreCase);
|
|
976
981
|
if (index !== -1) {
|
|
@@ -1152,6 +1157,7 @@ class XmlElement {
|
|
|
1152
1157
|
}
|
|
1153
1158
|
}
|
|
1154
1159
|
getAttribute(name) {
|
|
1160
|
+
var _a;
|
|
1155
1161
|
let result = this._attributes.get(this._ignoreCase ? name = name.toLowerCase() : name);
|
|
1156
1162
|
if (result) {
|
|
1157
1163
|
return result;
|
|
@@ -1164,7 +1170,7 @@ class XmlElement {
|
|
|
1164
1170
|
if (outerXml) {
|
|
1165
1171
|
const index = XmlWriter.findCloseTag(outerXml);
|
|
1166
1172
|
if (index !== -1) {
|
|
1167
|
-
return XmlWriter.getPatternId(this.nameOfId).exec(outerXml.substring(0, index))
|
|
1173
|
+
return ((_a = XmlWriter.getPatternId(this.nameOfId).exec(outerXml.substring(0, index))) === null || _a === void 0 ? void 0 : _a[1]) || '';
|
|
1168
1174
|
}
|
|
1169
1175
|
}
|
|
1170
1176
|
}
|
|
@@ -1376,7 +1382,8 @@ class XmlElement {
|
|
|
1376
1382
|
return [this.tagName, attributes, this.innerXml];
|
|
1377
1383
|
}
|
|
1378
1384
|
getInnerOffset(tagName) {
|
|
1379
|
-
|
|
1385
|
+
var _a;
|
|
1386
|
+
return ((_a = this._tagOffset) === null || _a === void 0 ? void 0 : _a[tagName]) || 0;
|
|
1380
1387
|
}
|
|
1381
1388
|
hasPosition() {
|
|
1382
1389
|
return isIndex(this.node.startIndex) && isIndex(this.node.endIndex);
|
|
@@ -1412,7 +1419,8 @@ class XmlElement {
|
|
|
1412
1419
|
return this._documentType || this.documentName;
|
|
1413
1420
|
}
|
|
1414
1421
|
get tagVoid() {
|
|
1415
|
-
|
|
1422
|
+
var _a;
|
|
1423
|
+
return (_a = this._tagVoid) !== null && _a !== void 0 ? _a : XmlWriter.isTagVoid(this.documentType, this.tagName);
|
|
1416
1424
|
}
|
|
1417
1425
|
set innerXml(value) {
|
|
1418
1426
|
if (!this.tagVoid && value !== this._innerXml) {
|
package/transform/index.js
CHANGED
|
@@ -136,8 +136,9 @@ class TransformSeries extends core_1.Module {
|
|
|
136
136
|
return context;
|
|
137
137
|
}
|
|
138
138
|
close(instance) {
|
|
139
|
+
var _e;
|
|
139
140
|
core_1.AbortComponent.detach(instance, this.signal);
|
|
140
|
-
this.host
|
|
141
|
+
(_e = this.host) === null || _e === void 0 ? void 0 : _e.release(this);
|
|
141
142
|
}
|
|
142
143
|
set code(value) {
|
|
143
144
|
this[kCode] = value;
|