@e-mc/document 0.6.0 → 0.6.1
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 +7 -11
- package/README.md +5 -3
- package/asset.d.ts +7 -7
- package/index.d.ts +4 -4
- package/index.js +58 -64
- package/package.json +5 -5
- package/parse/dom.d.ts +8 -8
- package/parse/dom.js +13 -13
- package/parse/index.d.ts +8 -8
- package/parse/index.js +6 -6
- package/transform/index.d.ts +7 -7
- package/transform/index.js +3 -7
- package/util.js +1 -1
package/LICENSE
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
Copyright 2023
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
|
10
|
-
|
|
11
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
1
|
+
Copyright 2023 Studio Trigger
|
|
2
|
+
|
|
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
|
+
|
|
5
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
6
|
+
|
|
7
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
CHANGED
package/asset.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { ExternalAsset, InitialValue } from '../types/lib/asset';
|
|
2
|
-
|
|
3
|
-
declare namespace asset {
|
|
4
|
-
function isEqual(item: ExternalAsset, other: ExternalAsset): boolean;
|
|
5
|
-
function setInitialValue(file: ExternalAsset, cacheable?: boolean): InitialValue;
|
|
6
|
-
}
|
|
7
|
-
|
|
1
|
+
import type { ExternalAsset, InitialValue } from '../types/lib/asset';
|
|
2
|
+
|
|
3
|
+
declare namespace asset {
|
|
4
|
+
function isEqual(item: ExternalAsset, other: ExternalAsset): boolean;
|
|
5
|
+
function setInitialValue(file: ExternalAsset, cacheable?: boolean): InitialValue;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
8
|
export = asset;
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { DocumentConstructor, IFileManager } from '../types/lib';
|
|
2
|
-
|
|
3
|
-
declare const Document: DocumentConstructor<IFileManager>;
|
|
4
|
-
|
|
1
|
+
import type { DocumentConstructor, IFileManager } from '../types/lib';
|
|
2
|
+
|
|
3
|
+
declare const Document: DocumentConstructor<IFileManager>;
|
|
4
|
+
|
|
5
5
|
export = Document;
|
package/index.js
CHANGED
|
@@ -5,12 +5,12 @@ const fs = require("fs");
|
|
|
5
5
|
const pm = require("picomatch");
|
|
6
6
|
const yaml = require("js-yaml");
|
|
7
7
|
const chalk = require("chalk");
|
|
8
|
-
const types_1 = require("
|
|
9
|
-
const core_1 = require("
|
|
10
|
-
const db_1 = require("
|
|
11
|
-
const util_1 = require("
|
|
12
|
-
const transform_1 = require("
|
|
13
|
-
const parse_1 = require("
|
|
8
|
+
const types_1 = require("@e-mc/types");
|
|
9
|
+
const core_1 = require("@e-mc/core");
|
|
10
|
+
const db_1 = require("@e-mc/db");
|
|
11
|
+
const util_1 = require("@e-mc/document/util");
|
|
12
|
+
const transform_1 = require("@e-mc/document/transform");
|
|
13
|
+
const parse_1 = require("@e-mc/document/parse");
|
|
14
14
|
const CACHE_PACKAGE = {};
|
|
15
15
|
const CACHE_REQUIRE = {};
|
|
16
16
|
const CACHE_ETAG = {};
|
|
@@ -34,7 +34,7 @@ function deleteTransform(map, key, timeout) {
|
|
|
34
34
|
--CACHE_TOTAL;
|
|
35
35
|
}
|
|
36
36
|
function getSourceMappingURL(value, css) {
|
|
37
|
-
if (value.
|
|
37
|
+
if (value.includes(' ')) {
|
|
38
38
|
value = encodeURIComponent(value);
|
|
39
39
|
}
|
|
40
40
|
return css ? `\n/*# sourceMappingURL=${value} */\n` : `\n//# sourceMappingURL=${value}\n`;
|
|
@@ -94,17 +94,16 @@ class Document extends core_1.Client {
|
|
|
94
94
|
}
|
|
95
95
|
try {
|
|
96
96
|
const args = [instance];
|
|
97
|
-
|
|
98
|
-
if (ext["__cjs__" /* INTERNAL.CJS */]) {
|
|
97
|
+
if (ext["__cjs__"]) {
|
|
99
98
|
args.push(__dirname);
|
|
100
99
|
}
|
|
101
|
-
else if (core_1.Client.enabled("node.require.inline"
|
|
100
|
+
else if (core_1.Client.enabled("node.require.inline")) {
|
|
102
101
|
args.push(require);
|
|
103
102
|
}
|
|
104
103
|
await ext.apply(this, args);
|
|
105
104
|
}
|
|
106
105
|
catch (err) {
|
|
107
|
-
instance.writeFail(["Unknown"
|
|
106
|
+
instance.writeFail(["Unknown", this.moduleName], err);
|
|
108
107
|
}
|
|
109
108
|
}
|
|
110
109
|
}
|
|
@@ -126,7 +125,7 @@ class Document extends core_1.Client {
|
|
|
126
125
|
map.sources = [""];
|
|
127
126
|
}
|
|
128
127
|
try {
|
|
129
|
-
let css = mimeType === 'text/css', flags = 0
|
|
128
|
+
let css = mimeType === 'text/css', flags = 0;
|
|
130
129
|
const output = JSON.stringify(map);
|
|
131
130
|
const toBase64 = () => 'data:application/json;base64,' + Buffer.from(output).toString('base64');
|
|
132
131
|
if (!inlineMap) {
|
|
@@ -147,24 +146,24 @@ class Document extends core_1.Client {
|
|
|
147
146
|
}
|
|
148
147
|
}
|
|
149
148
|
let code = data.code.replace(transform_1.SourceMap.RE_SOURCE_MAPPING_URL, (...capture) => {
|
|
150
|
-
flags |= 1
|
|
149
|
+
flags |= 1;
|
|
151
150
|
if (capture[2] && capture[5]) {
|
|
152
151
|
css = true;
|
|
153
152
|
}
|
|
154
153
|
if (inlineMap || capture[3]) {
|
|
155
|
-
flags |= 2
|
|
154
|
+
flags |= 2;
|
|
156
155
|
return getSourceMappingURL(toBase64(), css);
|
|
157
156
|
}
|
|
158
157
|
return capture[1] || css ? getSourceMappingURL(sourceMappingURL, css) : capture[0];
|
|
159
158
|
});
|
|
160
|
-
if (inlineMap || flags & 2
|
|
161
|
-
if (flags === 0
|
|
159
|
+
if (inlineMap || flags & 2) {
|
|
160
|
+
if (flags === 0) {
|
|
162
161
|
code += getSourceMappingURL(toBase64(), css);
|
|
163
162
|
}
|
|
164
163
|
data.code = code;
|
|
165
164
|
}
|
|
166
165
|
else {
|
|
167
|
-
if (flags === 0
|
|
166
|
+
if (flags === 0) {
|
|
168
167
|
code += getSourceMappingURL(sourceMappingURL, css);
|
|
169
168
|
}
|
|
170
169
|
const result = path.join(path.dirname(uri), sourceMappingURL);
|
|
@@ -275,7 +274,7 @@ class Document extends core_1.Client {
|
|
|
275
274
|
for (const { severity, line, column, ruleId, message, fatal } of messages) {
|
|
276
275
|
let error;
|
|
277
276
|
if (severity) {
|
|
278
|
-
if (error = severity === 2
|
|
277
|
+
if (error = severity === 2 || severity === "error") {
|
|
279
278
|
++errorCount;
|
|
280
279
|
}
|
|
281
280
|
else {
|
|
@@ -356,20 +355,18 @@ class Document extends core_1.Client {
|
|
|
356
355
|
for (const pattern in pages) {
|
|
357
356
|
const item = pages[pattern];
|
|
358
357
|
if ((0, types_1.isPlainObject)(item)) {
|
|
359
|
-
|
|
360
|
-
if (!(isMatch = CACHE_PICOMATCH.get(pattern)) && (0, types_1.hasGlob)(pattern)) {
|
|
361
|
-
isMatch = pm(pattern, { matchBase: true });
|
|
362
|
-
CACHE_PICOMATCH.set(pattern, isMatch);
|
|
363
|
-
}
|
|
364
|
-
else {
|
|
365
|
-
continue;
|
|
366
|
-
}
|
|
367
|
-
if (isMatch(baseUrl)) {
|
|
358
|
+
if (pattern === baseUrl) {
|
|
368
359
|
items.push(item);
|
|
369
360
|
}
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
361
|
+
else if ((0, types_1.hasGlob)(pattern)) {
|
|
362
|
+
let isMatch = CACHE_PICOMATCH.get(pattern);
|
|
363
|
+
if (!isMatch) {
|
|
364
|
+
CACHE_PICOMATCH.set(pattern, isMatch = pm(pattern, { matchBase: true }));
|
|
365
|
+
}
|
|
366
|
+
if (isMatch(baseUrl)) {
|
|
367
|
+
items.push(item);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
373
370
|
}
|
|
374
371
|
}
|
|
375
372
|
if (items.length > 1) {
|
|
@@ -399,19 +396,18 @@ class Document extends core_1.Client {
|
|
|
399
396
|
const handler = db.handler;
|
|
400
397
|
const database = this.dataSource.filter(this.forDb.bind(this));
|
|
401
398
|
let instance;
|
|
402
|
-
if ((0, types_1.isString)(handler) && handler !== "@e-mc/db"
|
|
399
|
+
if ((0, types_1.isString)(handler) && handler !== "@e-mc/db") {
|
|
403
400
|
try {
|
|
404
401
|
const Handler = require(handler);
|
|
405
402
|
if (isFunction(Handler) && Handler.prototype instanceof core_1.ClientDb) {
|
|
406
|
-
// @ts-ignore
|
|
407
403
|
instance = new Handler(db, database);
|
|
408
404
|
}
|
|
409
405
|
else {
|
|
410
|
-
throw (0, types_1.errorMessage)(this.moduleName, "Not a Db constructor"
|
|
406
|
+
throw (0, types_1.errorMessage)(this.moduleName, "Not a Db constructor", handler);
|
|
411
407
|
}
|
|
412
408
|
}
|
|
413
409
|
catch (err) {
|
|
414
|
-
this.checkPackage(err, handler, ["Unable to load handler"
|
|
410
|
+
this.checkPackage(err, handler, ["Unable to load handler", this.moduleName], 65536);
|
|
415
411
|
}
|
|
416
412
|
}
|
|
417
413
|
else {
|
|
@@ -568,7 +564,7 @@ class Document extends core_1.Client {
|
|
|
568
564
|
return getObject(result, false);
|
|
569
565
|
}
|
|
570
566
|
else {
|
|
571
|
-
warning(path.isAbsolute(value) ? "Unsupported access"
|
|
567
|
+
warning(path.isAbsolute(value) ? "Unsupported access" + ` (${value})` : "Unknown");
|
|
572
568
|
}
|
|
573
569
|
break;
|
|
574
570
|
}
|
|
@@ -611,7 +607,7 @@ class Document extends core_1.Client {
|
|
|
611
607
|
result = CACHE_REQUIRE[pkgName];
|
|
612
608
|
}
|
|
613
609
|
if (!result) {
|
|
614
|
-
if (!core_1.Client.enabled("node.require.npm"
|
|
610
|
+
if (!core_1.Client.enabled("node.require.npm")) {
|
|
615
611
|
return null;
|
|
616
612
|
}
|
|
617
613
|
try {
|
|
@@ -623,11 +619,11 @@ class Document extends core_1.Client {
|
|
|
623
619
|
CACHE_REQUIRE[pkgName] = result;
|
|
624
620
|
}
|
|
625
621
|
if (typeof result === 'function') {
|
|
626
|
-
return Object.defineProperty(result, "__cjs__"
|
|
622
|
+
return Object.defineProperty(result, "__cjs__", { value: true });
|
|
627
623
|
}
|
|
628
624
|
}
|
|
629
625
|
catch (err) {
|
|
630
|
-
this.checkPackage(err, pkgName, "Unknown"
|
|
626
|
+
this.checkPackage(err, pkgName, "Unknown");
|
|
631
627
|
}
|
|
632
628
|
if (!result) {
|
|
633
629
|
return null;
|
|
@@ -646,13 +642,12 @@ class Document extends core_1.Client {
|
|
|
646
642
|
catch {
|
|
647
643
|
}
|
|
648
644
|
}
|
|
649
|
-
|
|
650
|
-
if ((0, types_1.isObject)(result) || typeof result === 'function' && (result["__cjs__" /* INTERNAL.CJS */] || this.hasEval('function'))) {
|
|
645
|
+
if ((0, types_1.isObject)(result) || typeof result === 'function' && (result["__cjs__"] || this.hasEval('function'))) {
|
|
651
646
|
return result;
|
|
652
647
|
}
|
|
653
648
|
}
|
|
654
649
|
catch (err) {
|
|
655
|
-
this.writeFail(["Unable to read file"
|
|
650
|
+
this.writeFail(["Unable to read file", path.basename(value)], err, 8192);
|
|
656
651
|
}
|
|
657
652
|
return null;
|
|
658
653
|
}
|
|
@@ -677,7 +672,7 @@ class Document extends core_1.Client {
|
|
|
677
672
|
if (imports) {
|
|
678
673
|
const normalizeDir = (value) => {
|
|
679
674
|
const sep = value.includes('\\') && !value.includes('/') ? '\\' : '/';
|
|
680
|
-
return value + (value
|
|
675
|
+
return value + (!value.endsWith(sep) ? sep : '');
|
|
681
676
|
};
|
|
682
677
|
for (const url in imports) {
|
|
683
678
|
if (uri === url || normalizeDir(uri) === normalizeDir(url)) {
|
|
@@ -730,7 +725,7 @@ class Document extends core_1.Client {
|
|
|
730
725
|
}
|
|
731
726
|
}
|
|
732
727
|
catch (err) {
|
|
733
|
-
this.writeFail(["Unable to read file"
|
|
728
|
+
this.writeFail(["Unable to read file", localUri && path.basename(localUri)], 32);
|
|
734
729
|
}
|
|
735
730
|
}
|
|
736
731
|
else if (bundleContent) {
|
|
@@ -786,7 +781,7 @@ class Document extends core_1.Client {
|
|
|
786
781
|
catch (err) {
|
|
787
782
|
const name = (0, util_1.getModuleName)(err);
|
|
788
783
|
if (name) {
|
|
789
|
-
this.checkPackage(err, (0, util_1.getModuleName)(err), "Unknown"
|
|
784
|
+
this.checkPackage(err, (0, util_1.getModuleName)(err), "Unknown");
|
|
790
785
|
}
|
|
791
786
|
throw err;
|
|
792
787
|
}
|
|
@@ -825,7 +820,7 @@ class Document extends core_1.Client {
|
|
|
825
820
|
if (!((0, types_1.isPlainObject)(target) && target.name)) {
|
|
826
821
|
this.abort('view_engine');
|
|
827
822
|
const from = typeof viewEngine === 'string' ? viewEngine : this.moduleName;
|
|
828
|
-
this.writeFail(["Unable to load configuration"
|
|
823
|
+
this.writeFail(["Unable to load configuration", from], (0, types_1.errorMessage)('view-engine', from, "Unknown"));
|
|
829
824
|
return null;
|
|
830
825
|
}
|
|
831
826
|
const length = data.length;
|
|
@@ -853,10 +848,10 @@ class Document extends core_1.Client {
|
|
|
853
848
|
const cacheKey = username + core_1.Client.asHash(template + (compile ? core_1.Client.asString(compile) : ''));
|
|
854
849
|
let result = '', render, valid;
|
|
855
850
|
if (!(render = cache[cacheKey])) {
|
|
856
|
-
render = await context.compile(template, compile);
|
|
851
|
+
render = await context.compile(template, compile);
|
|
857
852
|
cache[cacheKey] = render;
|
|
858
|
-
if (!core_1.Client.enabled("memory.settings.users"
|
|
859
|
-
setTimeout(() => delete cache[cacheKey], 60000
|
|
853
|
+
if (!core_1.Client.enabled("memory.settings.users", username)) {
|
|
854
|
+
setTimeout(() => delete cache[cacheKey], 60000);
|
|
860
855
|
}
|
|
861
856
|
}
|
|
862
857
|
for (let i = 0, j = 0, row; i < length; ++i) {
|
|
@@ -867,11 +862,11 @@ class Document extends core_1.Client {
|
|
|
867
862
|
}
|
|
868
863
|
}
|
|
869
864
|
else if (!(0, types_1.isObject)(row)) {
|
|
870
|
-
this.addLog(types_1.STATUS_TYPE.WARN, joinString(`view engine[${name}]`, `row #${i + 1}`, core_1.Client.asString(row) || "Unknown"
|
|
865
|
+
this.addLog(types_1.STATUS_TYPE.WARN, joinString(`view engine[${name}]`, `row #${i + 1}`, core_1.Client.asString(row) || "Unknown"));
|
|
871
866
|
continue;
|
|
872
867
|
}
|
|
873
868
|
if (!singleRow) {
|
|
874
|
-
const content = await render.call(context, row);
|
|
869
|
+
const content = await render.call(context, row);
|
|
875
870
|
if (content !== undefined && content !== null) {
|
|
876
871
|
result += content;
|
|
877
872
|
valid = true;
|
|
@@ -882,7 +877,7 @@ class Document extends core_1.Client {
|
|
|
882
877
|
}
|
|
883
878
|
catch (err) {
|
|
884
879
|
this.abort('view_engine');
|
|
885
|
-
this.checkPackage(err, name, "Unknown"
|
|
880
|
+
this.checkPackage(err, name, "Unknown", 4);
|
|
886
881
|
}
|
|
887
882
|
return null;
|
|
888
883
|
}
|
|
@@ -896,7 +891,7 @@ class Document extends core_1.Client {
|
|
|
896
891
|
const username = this.host?.username || '';
|
|
897
892
|
const config = this._transformConfig;
|
|
898
893
|
const cacheData = config && options.cacheData;
|
|
899
|
-
const cacheType = username && core_1.Client.enabled("memory.settings.users"
|
|
894
|
+
const cacheType = username && core_1.Client.enabled("memory.settings.users", username) ? true : this.cacheDir || core_1.Client.enabled("memory.settings.users");
|
|
900
895
|
let formatKey, hashKey, excludeKey;
|
|
901
896
|
if (cacheData && cacheType && !CACHE_EXTERNAL[excludeKey = moduleName + '_' + type + '_' + format] && (!config.exclude[type] || Array.isArray(config.exclude[type]) && !format.some(value => config.exclude[type].includes(value)) || Array.isArray(config.include[type]) && format.every(value => config.include[type].includes(value)))) {
|
|
902
897
|
const { uri, etag } = cacheData;
|
|
@@ -972,7 +967,7 @@ class Document extends core_1.Client {
|
|
|
972
967
|
}
|
|
973
968
|
if (result) {
|
|
974
969
|
result.storedLog?.forEach(log => this.addLog(log));
|
|
975
|
-
this.formatMessage(4
|
|
970
|
+
this.formatMessage(4, type, [joinString(cacheName, format.filter(value => value).join(' | '), options.filename), 'cache'], uri, { ...core_1.Client.LOG_STYLE_NOTICE, hintBold: true });
|
|
976
971
|
return result;
|
|
977
972
|
}
|
|
978
973
|
}
|
|
@@ -1050,7 +1045,7 @@ class Document extends core_1.Client {
|
|
|
1050
1045
|
if (typeof value !== 'string' || (0, types_1.isArray)(out.sourceFiles) && this.hasOwnPermission() && out.sourceFiles.some(item => !this.canRead(item, { ownPermissionOnly: true }))) {
|
|
1051
1046
|
failed = true;
|
|
1052
1047
|
ignoreCache = true;
|
|
1053
|
-
this.writeFail(["Unable to transform document"
|
|
1048
|
+
this.writeFail(["Unable to transform document", plugin], (0, types_1.errorMessage)(plugin, name, typeof value === 'string' ? "Unsupported access" : 'Empty'), { type: 4, startTime });
|
|
1054
1049
|
}
|
|
1055
1050
|
else if (source !== value) {
|
|
1056
1051
|
series.code = value;
|
|
@@ -1082,19 +1077,18 @@ class Document extends core_1.Client {
|
|
|
1082
1077
|
}
|
|
1083
1078
|
this.writeTimeProcess(failed ? 'CHECK' : type, joinString(hint, options.filename) + (series.out.messageAppend || ''), startTime, { failed, bypassLog });
|
|
1084
1079
|
};
|
|
1085
|
-
this.formatMessage(4
|
|
1080
|
+
this.formatMessage(4, type, ['Transforming source...', hint], options.filename, { hintColor: 'cyan' });
|
|
1086
1081
|
try {
|
|
1087
1082
|
let context = require(plugin);
|
|
1088
1083
|
series.packageName = plugin;
|
|
1089
1084
|
if (typeof baseConfig === 'function') {
|
|
1090
1085
|
series.baseConfig = outputConfig;
|
|
1091
|
-
|
|
1092
|
-
if (baseConfig["__cjs__" /* INTERNAL.CJS */]) {
|
|
1086
|
+
if (baseConfig["__cjs__"]) {
|
|
1093
1087
|
next(await baseConfig(context, source, series));
|
|
1094
1088
|
}
|
|
1095
1089
|
else {
|
|
1096
|
-
const thisArg = core_1.Client.enabled("node.process.inline"
|
|
1097
|
-
const inline = core_1.Client.enabled("node.require.inline"
|
|
1090
|
+
const thisArg = core_1.Client.enabled("node.process.inline") ? process : null;
|
|
1091
|
+
const inline = core_1.Client.enabled("node.require.inline");
|
|
1098
1092
|
const args = [context, source, series];
|
|
1099
1093
|
if (baseConfig.toString().startsWith('async')) {
|
|
1100
1094
|
if (inline) {
|
|
@@ -1128,7 +1122,7 @@ class Document extends core_1.Client {
|
|
|
1128
1122
|
}
|
|
1129
1123
|
else {
|
|
1130
1124
|
transformer = context;
|
|
1131
|
-
context = this;
|
|
1125
|
+
context = this;
|
|
1132
1126
|
pkg = undefined;
|
|
1133
1127
|
}
|
|
1134
1128
|
if (transformer && typeof transformer !== 'function') {
|
|
@@ -1143,7 +1137,7 @@ class Document extends core_1.Client {
|
|
|
1143
1137
|
}
|
|
1144
1138
|
catch (err) {
|
|
1145
1139
|
abort();
|
|
1146
|
-
this.writeFail(["Unknown"
|
|
1140
|
+
this.writeFail(["Unknown", username ? plugin + ':' + username : hint], err, { type: 4, startTime });
|
|
1147
1141
|
continue;
|
|
1148
1142
|
}
|
|
1149
1143
|
}
|
|
@@ -1153,7 +1147,7 @@ class Document extends core_1.Client {
|
|
|
1153
1147
|
}
|
|
1154
1148
|
catch (err) {
|
|
1155
1149
|
abort();
|
|
1156
|
-
this.checkPackage(err, (0, util_1.getModuleName)(err), ["Unable to transform document"
|
|
1150
|
+
this.checkPackage(err, (0, util_1.getModuleName)(err), ["Unable to transform document", hint], { type: 4, startTime });
|
|
1157
1151
|
if (i < length - 1) {
|
|
1158
1152
|
series.reset();
|
|
1159
1153
|
}
|
|
@@ -1162,10 +1156,10 @@ class Document extends core_1.Client {
|
|
|
1162
1156
|
else {
|
|
1163
1157
|
abort();
|
|
1164
1158
|
if (plugin) {
|
|
1165
|
-
this.writeFail("Unable to load configuration"
|
|
1159
|
+
this.writeFail("Unable to load configuration", (0, types_1.errorMessage)(plugin, name, 'Invalid config'), 4);
|
|
1166
1160
|
}
|
|
1167
1161
|
else {
|
|
1168
|
-
this.writeFail('Format method was not found', (0, types_1.errorValue)(name, "Unknown"
|
|
1162
|
+
this.writeFail('Format method was not found', (0, types_1.errorValue)(name, "Unknown"), 4);
|
|
1169
1163
|
}
|
|
1170
1164
|
}
|
|
1171
1165
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@e-mc/document",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"description": "Document constructor for E-mc.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -17,12 +17,12 @@
|
|
|
17
17
|
"squared-functions"
|
|
18
18
|
],
|
|
19
19
|
"author": "An Pham <anpham6@gmail.com>",
|
|
20
|
-
"license": "
|
|
20
|
+
"license": "MIT",
|
|
21
21
|
"homepage": "https://github.com/anpham6/e-mc#readme",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@e-mc/core": "0.6.
|
|
24
|
-
"@e-mc/db": "0.6.
|
|
25
|
-
"@e-mc/types": "0.6.
|
|
23
|
+
"@e-mc/core": "0.6.1",
|
|
24
|
+
"@e-mc/db": "0.6.1",
|
|
25
|
+
"@e-mc/types": "0.6.1",
|
|
26
26
|
"chalk": "4.1.2",
|
|
27
27
|
"htmlparser2": "^9.0.0",
|
|
28
28
|
"js-yaml": "^4.1.0",
|
package/parse/dom.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { IGNORE_FLAG, DomWriterConstructor, HtmlElementConstructor } from './types';
|
|
2
|
-
|
|
3
|
-
declare namespace dom {
|
|
4
|
-
const IGNORE_FLAG: IGNORE_FLAG;
|
|
5
|
-
const DomWriter: DomWriterConstructor;
|
|
6
|
-
const HtmlElement: HtmlElementConstructor;
|
|
7
|
-
}
|
|
8
|
-
|
|
1
|
+
import type { IGNORE_FLAG, DomWriterConstructor, HtmlElementConstructor } from './types';
|
|
2
|
+
|
|
3
|
+
declare namespace dom {
|
|
4
|
+
const IGNORE_FLAG: IGNORE_FLAG;
|
|
5
|
+
const DomWriter: DomWriterConstructor;
|
|
6
|
+
const HtmlElement: HtmlElementConstructor;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
9
|
export = dom;
|
package/parse/dom.js
CHANGED
|
@@ -4,9 +4,9 @@ exports.IGNORE_FLAG = exports.HtmlElement = exports.DomWriter = void 0;
|
|
|
4
4
|
const htmlparser2 = require("htmlparser2");
|
|
5
5
|
const domhandler = require("domhandler");
|
|
6
6
|
const domutils = require("domutils");
|
|
7
|
-
const types_1 = require("
|
|
8
|
-
const util_1 = require("
|
|
9
|
-
const index_1 = require("
|
|
7
|
+
const types_1 = require("@e-mc/types");
|
|
8
|
+
const util_1 = require("@e-mc/document/util");
|
|
9
|
+
const index_1 = require("@e-mc/document/parse");
|
|
10
10
|
Object.defineProperty(exports, "IGNORE_FLAG", { enumerable: true, get: function () { return index_1.IGNORE_FLAG; } });
|
|
11
11
|
const Parser = htmlparser2.Parser;
|
|
12
12
|
const DomHandler = domhandler.DomHandler;
|
|
@@ -30,7 +30,7 @@ class DomWriter extends index_1.XmlWriter {
|
|
|
30
30
|
if (ignoreTagGroup) {
|
|
31
31
|
for (let i = 0, length = ignoreTagGroup.length; i < length; i += 2) {
|
|
32
32
|
const start = ignoreTagGroup[i];
|
|
33
|
-
if (start
|
|
33
|
+
if (start.startsWith('<')) {
|
|
34
34
|
tagGroup.push(new RegExp('^' + (0, types_1.escapePattern)(start)));
|
|
35
35
|
}
|
|
36
36
|
const end = ignoreTagGroup[i + 1];
|
|
@@ -89,7 +89,7 @@ class DomWriter extends index_1.XmlWriter {
|
|
|
89
89
|
const result = { element: null, error: null };
|
|
90
90
|
new Parser(new DomHandler((err, dom) => {
|
|
91
91
|
if (!err) {
|
|
92
|
-
result.element = domutils.findOne(elem => elem.tagName === "html"
|
|
92
|
+
result.element = domutils.findOne(elem => elem.tagName === "html", dom);
|
|
93
93
|
}
|
|
94
94
|
else {
|
|
95
95
|
result.error = err;
|
|
@@ -111,8 +111,8 @@ class DomWriter extends index_1.XmlWriter {
|
|
|
111
111
|
parser || (parser = { ...PARSER_OPTIONS });
|
|
112
112
|
super(documentName, source, elements, { parser });
|
|
113
113
|
this.documentElement = null;
|
|
114
|
-
this.ignoreTagName = "title|style|script"
|
|
115
|
-
this.rootName = "html"
|
|
114
|
+
this.ignoreTagName = "title|style|script";
|
|
115
|
+
this.rootName = "html";
|
|
116
116
|
this.ignoreCaseTagName = true;
|
|
117
117
|
const items = [];
|
|
118
118
|
let outerXml = '', documentElement, offsetMap, startIndex = -1;
|
|
@@ -121,7 +121,7 @@ class DomWriter extends index_1.XmlWriter {
|
|
|
121
121
|
item.tagName = item.tagName.toLowerCase();
|
|
122
122
|
item.ignoreCase = true;
|
|
123
123
|
}
|
|
124
|
-
if (item.tagName === "html"
|
|
124
|
+
if (item.tagName === "html") {
|
|
125
125
|
items.push(item);
|
|
126
126
|
if (!documentElement && item.innerXml) {
|
|
127
127
|
documentElement = item;
|
|
@@ -198,7 +198,7 @@ class DomWriter extends index_1.XmlWriter {
|
|
|
198
198
|
if (this.modified && this.documentElement) {
|
|
199
199
|
let innerXml;
|
|
200
200
|
for (const item of this.elements) {
|
|
201
|
-
if (item.tagName === "html"
|
|
201
|
+
if (item.tagName === "html") {
|
|
202
202
|
if (!innerXml && index_1.XmlWriter.isIndex(item.endIndex)) {
|
|
203
203
|
innerXml = this.source.substring(item.endIndex + 1, this.source.length - 7).trim();
|
|
204
204
|
}
|
|
@@ -223,7 +223,7 @@ class HtmlElement extends index_1.XmlElement {
|
|
|
223
223
|
constructor(documentName, node, attributes, options = {}) {
|
|
224
224
|
options.parser || (options.parser = { ...PARSER_OPTIONS });
|
|
225
225
|
super(documentName, node, attributes, { ...options, tagVoid: TAG_VOID.includes(node.tagName) });
|
|
226
|
-
this._documentType = "HTML"
|
|
226
|
+
this._documentType = "HTML";
|
|
227
227
|
}
|
|
228
228
|
getTagOffset(source) {
|
|
229
229
|
switch (this.node.append?.tagName || this.tagName) {
|
|
@@ -233,7 +233,7 @@ class HtmlElement extends index_1.XmlElement {
|
|
|
233
233
|
case 'script':
|
|
234
234
|
return;
|
|
235
235
|
default:
|
|
236
|
-
return super.getTagOffset(source, { ignoreCase: this.ignoreCase, ignoreTagName: "title|style|script"
|
|
236
|
+
return super.getTagOffset(source, { ignoreCase: this.ignoreCase, ignoreTagName: "title|style|script", parser: this.parser });
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
239
|
findIndexOf(source) {
|
|
@@ -244,8 +244,8 @@ class HtmlElement extends index_1.XmlElement {
|
|
|
244
244
|
}
|
|
245
245
|
get outerXml() {
|
|
246
246
|
const [tagName, items, innerXml] = this.getOuterContent();
|
|
247
|
-
return '<' + tagName + HtmlElement.writeAttributes(items) + '>' + (DomWriter.hasInnerXml(tagName) && tagName !== "html"
|
|
247
|
+
return '<' + tagName + HtmlElement.writeAttributes(items) + '>' + (DomWriter.hasInnerXml(tagName) && tagName !== "html" ? (tagName === 'title' ? index_1.XmlWriter.escapeXmlString(innerXml) : innerXml) + `</${tagName}>` : '');
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
250
|
exports.HtmlElement = HtmlElement;
|
|
251
|
-
index_1.XmlWriter.namesOfTagVoid("HTML"
|
|
251
|
+
index_1.XmlWriter.namesOfTagVoid("HTML", TAG_VOID);
|
package/parse/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { IGNORE_FLAG, XmlWriterConstructor, XmlElementConstructor } from './types';
|
|
2
|
-
|
|
3
|
-
declare namespace parse {
|
|
4
|
-
const IGNORE_FLAG: IGNORE_FLAG;
|
|
5
|
-
const XmlWriter: XmlWriterConstructor;
|
|
6
|
-
const XmlElement: XmlElementConstructor;
|
|
7
|
-
}
|
|
8
|
-
|
|
1
|
+
import type { IGNORE_FLAG, XmlWriterConstructor, XmlElementConstructor } from './types';
|
|
2
|
+
|
|
3
|
+
declare namespace parse {
|
|
4
|
+
const IGNORE_FLAG: IGNORE_FLAG;
|
|
5
|
+
const XmlWriter: XmlWriterConstructor;
|
|
6
|
+
const XmlElement: XmlElementConstructor;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
9
|
export = parse;
|
package/parse/index.js
CHANGED
|
@@ -4,8 +4,8 @@ exports.XmlElement = exports.XmlWriter = exports.IGNORE_FLAG = void 0;
|
|
|
4
4
|
const htmlparser2 = require("htmlparser2");
|
|
5
5
|
const domhandler = require("domhandler");
|
|
6
6
|
const domutils = require("domutils");
|
|
7
|
-
const types_1 = require("
|
|
8
|
-
const module_1 = require("
|
|
7
|
+
const types_1 = require("@e-mc/types");
|
|
8
|
+
const module_1 = require("@e-mc/module");
|
|
9
9
|
var IGNORE_FLAG;
|
|
10
10
|
(function (IGNORE_FLAG) {
|
|
11
11
|
IGNORE_FLAG[IGNORE_FLAG["NONE"] = 0] = "NONE";
|
|
@@ -174,7 +174,7 @@ class XmlWriter {
|
|
|
174
174
|
}
|
|
175
175
|
static getNewlineString(leading, trailing, newline) {
|
|
176
176
|
const value = leading + trailing;
|
|
177
|
-
return getNewlineCount(value) > 1 ? newline || (value.
|
|
177
|
+
return getNewlineCount(value) > 1 ? newline || (value.includes('\r') ? '\r\n' : '\n') : '';
|
|
178
178
|
}
|
|
179
179
|
static findCloseTag(source, startIndex = 0) {
|
|
180
180
|
const length = source.length;
|
|
@@ -910,11 +910,11 @@ class XmlWriter {
|
|
|
910
910
|
}
|
|
911
911
|
let tagName = this.ignoreTagName || '';
|
|
912
912
|
if (tagName) {
|
|
913
|
-
if (value
|
|
913
|
+
if (!value.startsWith('|') && !tagName.endsWith('|')) {
|
|
914
914
|
tagName += '|';
|
|
915
915
|
}
|
|
916
916
|
}
|
|
917
|
-
else if (value
|
|
917
|
+
else if (value.startsWith('|')) {
|
|
918
918
|
value = value.substring(1);
|
|
919
919
|
}
|
|
920
920
|
this.ignoreTagName = tagName + value;
|
|
@@ -1260,7 +1260,7 @@ class XmlElement {
|
|
|
1260
1260
|
const { tagName, tagIndex = -1, tagCount = Infinity, ignoreCase } = node;
|
|
1261
1261
|
const id = this.id;
|
|
1262
1262
|
const flags = ignoreCase ? 'gi' : 'g';
|
|
1263
|
-
const hasId = (startIndex, endIndex) => source.substring(startIndex, endIndex).
|
|
1263
|
+
const hasId = (startIndex, endIndex) => source.substring(startIndex, endIndex).includes(id);
|
|
1264
1264
|
const errorResult = () => ['', '', (0, types_1.errorValue)('Element was not found', tagName.toUpperCase() + (isIndex(tagIndex) ? ' @ ' + tagIndex : ''))];
|
|
1265
1265
|
let position;
|
|
1266
1266
|
if (XmlWriter.isTagVoid(this.documentType, tagName)) {
|
package/transform/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { SourceMapConstructor, TransformSeriesConstructor } from '../../types/lib/document';
|
|
2
|
-
|
|
3
|
-
declare namespace transform {
|
|
4
|
-
const TransformSeries: TransformSeriesConstructor;
|
|
5
|
-
const SourceMap: SourceMapConstructor;
|
|
6
|
-
}
|
|
7
|
-
|
|
1
|
+
import type { SourceMapConstructor, TransformSeriesConstructor } from '../../types/lib/document';
|
|
2
|
+
|
|
3
|
+
declare namespace transform {
|
|
4
|
+
const TransformSeries: TransformSeriesConstructor;
|
|
5
|
+
const SourceMap: SourceMapConstructor;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
8
|
export = transform;
|
package/transform/index.js
CHANGED
|
@@ -3,8 +3,8 @@ var _a, _b, _c, _d;
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.SourceMap = exports.TransformSeries = void 0;
|
|
5
5
|
const path = require("path");
|
|
6
|
-
const types_1 = require("
|
|
7
|
-
const core_1 = require("
|
|
6
|
+
const types_1 = require("@e-mc/types");
|
|
7
|
+
const core_1 = require("@e-mc/core");
|
|
8
8
|
const kCode = Symbol('code');
|
|
9
9
|
const kMap = Symbol('map');
|
|
10
10
|
const kOut = Symbol('out');
|
|
@@ -16,7 +16,7 @@ const kUsername = Symbol('username');
|
|
|
16
16
|
const kProductionRelease = Symbol('productionRelease');
|
|
17
17
|
function parseMap(data, value) {
|
|
18
18
|
let [mimeType, encoding] = data.split(';');
|
|
19
|
-
if (!encoding && mimeType.
|
|
19
|
+
if (!encoding && !mimeType.includes('/')) {
|
|
20
20
|
encoding = mimeType;
|
|
21
21
|
}
|
|
22
22
|
return encoding.includes('base64') ? Buffer.from(value, 'base64').toString() : value;
|
|
@@ -185,20 +185,16 @@ class TransformSeries extends core_1.Module {
|
|
|
185
185
|
return this.options.external;
|
|
186
186
|
}
|
|
187
187
|
set version(value) {
|
|
188
|
-
// @ts-ignore
|
|
189
188
|
this.metadata.__version__ = value;
|
|
190
189
|
}
|
|
191
190
|
get version() {
|
|
192
|
-
// @ts-ignore
|
|
193
191
|
return this.metadata.__version__ || '';
|
|
194
192
|
}
|
|
195
193
|
set packageName(value) {
|
|
196
|
-
// @ts-ignore
|
|
197
194
|
this.metadata.__packagename__ = value;
|
|
198
195
|
this.version = 'latest';
|
|
199
196
|
}
|
|
200
197
|
get packageName() {
|
|
201
|
-
// @ts-ignore
|
|
202
198
|
return this.metadata.__packagename__ || '';
|
|
203
199
|
}
|
|
204
200
|
get packageVersion() {
|
package/util.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isObject = exports.removeInternalProperties = exports.getModuleName = exports.hasValue = exports.getHashData = exports.getNewline = exports.getIndent = exports.appendSuffix = exports.splitEnclosing = exports.concatString = exports.replaceAll = exports.loadPlugins = exports.IMPORTS = void 0;
|
|
4
4
|
const path = require("path");
|
|
5
|
-
const types_1 = require("
|
|
5
|
+
const types_1 = require("@e-mc/types");
|
|
6
6
|
Object.defineProperty(exports, "isObject", { enumerable: true, get: function () { return types_1.isObject; } });
|
|
7
7
|
exports.IMPORTS = {
|
|
8
8
|
"@babel/core": "@pi-r/babel",
|