@e-mc/document 0.5.3 → 0.5.4

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 CHANGED
@@ -1,11 +1,7 @@
1
- Copyright 2023 An Pham
2
-
3
- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
4
-
5
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
6
-
7
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
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 Mile Square Park
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
@@ -1,5 +1,5 @@
1
- ### @e-mc/document
1
+ # @e-mc/document
2
2
 
3
- ### LICENSE
3
+ ## LICENSE
4
4
 
5
- BSD 3-Clause
5
+ MIT
package/asset.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import type { ExternalAsset } from '../types/lib/asset';
2
-
3
- declare namespace asset {
4
- function isEqual(item: ExternalAsset, other: ExternalAsset): boolean;
5
- function setInitialValue(file: ExternalAsset, cacheable?: boolean): void;
6
- }
7
-
1
+ import type { ExternalAsset } from '../types/lib/asset';
2
+
3
+ declare namespace asset {
4
+ function isEqual(item: ExternalAsset, other: ExternalAsset): boolean;
5
+ function setInitialValue(file: ExternalAsset, cacheable?: boolean): void;
6
+ }
7
+
8
8
  export = asset;
package/asset.js CHANGED
@@ -6,6 +6,6 @@ function isEqual(item, other) {
6
6
  }
7
7
  exports.isEqual = isEqual;
8
8
  function setInitialValue(file, cacheable = true) {
9
- file.initialValue || (file.initialValue = { pathname: file.pathname, filename: file.filename, mimeType: file.mimeType, localUri: file.localUri, inlineFilename: file.inlineFilename, cacheable });
9
+ return file.initialValue || (file.initialValue = { pathname: file.pathname, filename: file.filename, mimeType: file.mimeType, localUri: file.localUri, inlineFilename: file.inlineFilename, cacheable });
10
10
  }
11
11
  exports.setInitialValue = setInitialValue;
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("../types");
9
- const core_1 = require("../core");
10
- const db_1 = require("../db");
11
- const util_1 = require("./util");
12
- const transform_1 = require("./transform");
13
- const parse_1 = require("./parse");
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 PIR_PLUGINS = Object.freeze({
15
15
  "@babel/core": "@pi-r/babel",
16
16
  "clean-css": "@pi-r/clean-css",
@@ -52,7 +52,7 @@ function deleteTransform(map, key, timeout) {
52
52
  --CACHE_TOTAL;
53
53
  }
54
54
  function getSourceMappingURL(value, css) {
55
- if (value.indexOf(' ') !== -1) {
55
+ if (value.includes(' ')) {
56
56
  value = encodeURIComponent(value);
57
57
  }
58
58
  return css ? `\n/*# sourceMappingURL=${value} */\n` : `\n//# sourceMappingURL=${value}\n`;
@@ -112,17 +112,16 @@ class Document extends core_1.Client {
112
112
  }
113
113
  try {
114
114
  const args = [instance];
115
- // @ts-ignore
116
- if (ext["__cjs__" /* INTERNAL.CJS */]) {
115
+ if (ext["__cjs__"]) {
117
116
  args.push(__dirname);
118
117
  }
119
- else if (core_1.Client.enabled("node.require.inline" /* KEY_NAME.NODE_REQUIRE_INLINE */)) {
118
+ else if (core_1.Client.enabled("node.require.inline")) {
120
119
  args.push(require);
121
120
  }
122
121
  await ext.apply(this, args);
123
122
  }
124
123
  catch (err) {
125
- instance.writeFail(["Unknown" /* ERR_MESSAGE.UNKNOWN */, this.moduleName], err);
124
+ instance.writeFail(["Unknown", this.moduleName], err);
126
125
  }
127
126
  }
128
127
  }
@@ -144,7 +143,7 @@ class Document extends core_1.Client {
144
143
  map.sources = [""];
145
144
  }
146
145
  try {
147
- let css = mimeType === 'text/css', flags = 0 /* SOURCEMAP.NONE */;
146
+ let css = mimeType === 'text/css', flags = 0;
148
147
  const output = JSON.stringify(map);
149
148
  const toBase64 = () => 'data:application/json;base64,' + Buffer.from(output).toString('base64');
150
149
  if (!inlineMap) {
@@ -165,24 +164,24 @@ class Document extends core_1.Client {
165
164
  }
166
165
  }
167
166
  let code = data.code.replace(transform_1.SourceMap.RE_SOURCE_MAPPING_URL, (...capture) => {
168
- flags |= 1 /* SOURCEMAP.FOUND */;
167
+ flags |= 1;
169
168
  if (capture[2] && capture[5]) {
170
169
  css = true;
171
170
  }
172
171
  if (inlineMap || capture[3]) {
173
- flags |= 2 /* SOURCEMAP.INLINE */;
172
+ flags |= 2;
174
173
  return getSourceMappingURL(toBase64(), css);
175
174
  }
176
175
  return capture[1] || css ? getSourceMappingURL(sourceMappingURL, css) : capture[0];
177
176
  });
178
- if (inlineMap || flags & 2 /* SOURCEMAP.INLINE */) {
179
- if (flags === 0 /* SOURCEMAP.NONE */) {
177
+ if (inlineMap || flags & 2) {
178
+ if (flags === 0) {
180
179
  code += getSourceMappingURL(toBase64(), css);
181
180
  }
182
181
  data.code = code;
183
182
  }
184
183
  else {
185
- if (flags === 0 /* SOURCEMAP.NONE */) {
184
+ if (flags === 0) {
186
185
  code += getSourceMappingURL(sourceMappingURL, css);
187
186
  }
188
187
  const result = path.join(path.dirname(uri), sourceMappingURL);
@@ -293,7 +292,7 @@ class Document extends core_1.Client {
293
292
  for (const { severity, line, column, ruleId, message, fatal } of messages) {
294
293
  let error;
295
294
  if (severity) {
296
- if (error = severity === 2 /* LINT_SEVERITY.ERROR */ || severity === "error" /* LINT_SEVERITY.ERROR_TEXT */) {
295
+ if (error = severity === 2 || severity === "error") {
297
296
  ++errorCount;
298
297
  }
299
298
  else {
@@ -370,20 +369,18 @@ class Document extends core_1.Client {
370
369
  for (const pattern in pages) {
371
370
  const item = pages[pattern];
372
371
  if ((0, types_1.isPlainObject)(item)) {
373
- let isMatch;
374
- if (!(isMatch = CACHE_PICOMATCH.get(pattern)) && (0, types_1.hasGlob)(pattern)) {
375
- isMatch = pm(pattern, { matchBase: true });
376
- CACHE_PICOMATCH.set(pattern, isMatch);
377
- }
378
- else {
379
- continue;
380
- }
381
- if (isMatch(baseUrl)) {
372
+ if (pattern === baseUrl) {
382
373
  items.push(item);
383
374
  }
384
- }
385
- else {
386
- delete pages[pattern];
375
+ else if ((0, types_1.hasGlob)(pattern)) {
376
+ let isMatch = CACHE_PICOMATCH.get(pattern);
377
+ if (!isMatch) {
378
+ CACHE_PICOMATCH.set(pattern, isMatch = pm(pattern, { matchBase: true }));
379
+ }
380
+ if (isMatch(baseUrl)) {
381
+ items.push(item);
382
+ }
383
+ }
387
384
  }
388
385
  }
389
386
  if (items.length > 1) {
@@ -413,18 +410,18 @@ class Document extends core_1.Client {
413
410
  const handler = db.handler;
414
411
  const database = this.dataSource.filter(this.forDb.bind(this));
415
412
  let instance;
416
- if ((0, types_1.isString)(handler) && handler !== "@e-mc/db" /* PACKAGE_NAME.DB */) {
413
+ if ((0, types_1.isString)(handler) && handler !== "@e-mc/db") {
417
414
  try {
418
415
  const Handler = require(handler);
419
416
  if (isFunction(Handler) && Handler.prototype instanceof core_1.ClientDb) {
420
417
  instance = new Handler(db, database);
421
418
  }
422
419
  else {
423
- throw (0, types_1.errorMessage)(this.moduleName, "Not a Db constructor" /* ERR_DB.CONSTRUCTOR */, handler);
420
+ throw (0, types_1.errorMessage)(this.moduleName, "Not a Db constructor", handler);
424
421
  }
425
422
  }
426
423
  catch (err) {
427
- this.checkPackage(err, handler, ["Unable to load handler" /* ERR_MESSAGE.LOAD_HANDLER */, this.moduleName], 65536 /* LOG_TYPE.DB */);
424
+ this.checkPackage(err, handler, ["Unable to load handler", this.moduleName], 65536);
428
425
  }
429
426
  }
430
427
  else {
@@ -581,7 +578,7 @@ class Document extends core_1.Client {
581
578
  return getObject(result, false);
582
579
  }
583
580
  else {
584
- warning(path.isAbsolute(value) ? "Unsupported access" /* ERR_MESSAGE.UNSUPPORTED_ACCESS */ + ` (${value})` : "Unknown" /* ERR_MESSAGE.UNKNOWN */);
581
+ warning(path.isAbsolute(value) ? "Unsupported access" + ` (${value})` : "Unknown");
585
582
  }
586
583
  break;
587
584
  }
@@ -624,7 +621,7 @@ class Document extends core_1.Client {
624
621
  result = CACHE_REQUIRE[pkgName];
625
622
  }
626
623
  if (!result) {
627
- if (!core_1.Client.enabled("node.require.npm" /* KEY_NAME.NODE_REQUIRE_NPM */)) {
624
+ if (!core_1.Client.enabled("node.require.npm")) {
628
625
  return null;
629
626
  }
630
627
  try {
@@ -636,11 +633,11 @@ class Document extends core_1.Client {
636
633
  CACHE_REQUIRE[pkgName] = result;
637
634
  }
638
635
  if (typeof result === 'function') {
639
- return Object.defineProperty(result, "__cjs__" /* INTERNAL.CJS */, { value: true });
636
+ return Object.defineProperty(result, "__cjs__", { value: true });
640
637
  }
641
638
  }
642
639
  catch (err) {
643
- this.checkPackage(err, pkgName, "Unknown" /* ERR_MESSAGE.UNKNOWN */);
640
+ this.checkPackage(err, pkgName, "Unknown");
644
641
  }
645
642
  if (!result) {
646
643
  return null;
@@ -659,13 +656,12 @@ class Document extends core_1.Client {
659
656
  catch {
660
657
  }
661
658
  }
662
- // @ts-ignore
663
- if ((0, types_1.isObject)(result) || typeof result === 'function' && (result["__cjs__" /* INTERNAL.CJS */] || this.hasEval('function'))) {
659
+ if ((0, types_1.isObject)(result) || typeof result === 'function' && (result["__cjs__"] || this.hasEval('function'))) {
664
660
  return result;
665
661
  }
666
662
  }
667
663
  catch (err) {
668
- this.writeFail(["Unable to read file" /* ERR_MESSAGE.READ_FILE */, path.basename(value)], err, 8192 /* LOG_TYPE.PERMISSION */);
664
+ this.writeFail(["Unable to read file", path.basename(value)], err, 8192);
669
665
  }
670
666
  return null;
671
667
  }
@@ -690,7 +686,7 @@ class Document extends core_1.Client {
690
686
  if (imports) {
691
687
  const normalizeDir = (value) => {
692
688
  const sep = value.includes('\\') && !value.includes('/') ? '\\' : '/';
693
- return value + (value[value.length - 1] !== sep ? sep : '');
689
+ return value + (!value.endsWith(sep) ? sep : '');
694
690
  };
695
691
  for (const url in imports) {
696
692
  if (uri === url || normalizeDir(uri) === normalizeDir(url)) {
@@ -743,7 +739,7 @@ class Document extends core_1.Client {
743
739
  }
744
740
  }
745
741
  catch (err) {
746
- this.writeFail(["Unable to read file" /* ERR_MESSAGE.READ_FILE */, localUri && path.basename(localUri)], 32 /* LOG_TYPE.FILE */);
742
+ this.writeFail(["Unable to read file", localUri && path.basename(localUri)], 32);
747
743
  }
748
744
  }
749
745
  else if (bundleContent) {
@@ -799,7 +795,7 @@ class Document extends core_1.Client {
799
795
  catch (err) {
800
796
  const name = (0, util_1.getModuleName)(err);
801
797
  if (name) {
802
- this.checkPackage(err, (0, util_1.getModuleName)(err), "Unknown" /* ERR_MESSAGE.UNKNOWN */);
798
+ this.checkPackage(err, (0, util_1.getModuleName)(err), "Unknown");
803
799
  }
804
800
  throw err;
805
801
  }
@@ -838,7 +834,7 @@ class Document extends core_1.Client {
838
834
  if (!((0, types_1.isPlainObject)(target) && target.name)) {
839
835
  this.abort('view_engine');
840
836
  const from = typeof viewEngine === 'string' ? viewEngine : this.moduleName;
841
- this.writeFail(["Unable to load configuration" /* ERR_MESSAGE.LOAD_CONFIG */, from], (0, types_1.errorMessage)('view-engine', from, "Unknown" /* ERR_MESSAGE.UNKNOWN */));
837
+ this.writeFail(["Unable to load configuration", from], (0, types_1.errorMessage)('view-engine', from, "Unknown"));
842
838
  return null;
843
839
  }
844
840
  const length = data.length;
@@ -866,25 +862,25 @@ class Document extends core_1.Client {
866
862
  const cacheKey = username + core_1.Client.asHash(template + (compile ? core_1.Client.asString(compile) : ''));
867
863
  let result = '', render, valid;
868
864
  if (!(render = cache[cacheKey])) {
869
- render = await context.compile(template, compile); // eslint-disable-line @typescript-eslint/await-thenable
865
+ render = await context.compile(template, compile);
870
866
  cache[cacheKey] = render;
871
- if (!core_1.Client.enabled("memory.settings.users" /* KEY_NAME.MEMORY_SETTINGS_USERS */, username)) {
872
- setTimeout(() => delete cache[cacheKey], 60000 /* VALUES.TEMPLATE_EXPIRES */);
867
+ if (!core_1.Client.enabled("memory.settings.users", username)) {
868
+ setTimeout(() => delete cache[cacheKey], 60000);
873
869
  }
874
870
  }
875
871
  for (let i = 0, j = 0, row; i < length; ++i) {
876
872
  if ((0, types_1.isPlainObject)(row = data[i])) {
877
- row['__index__'] ?? (row['__index__'] = ++j);
873
+ row.__index__ ?? (row.__index__ = ++j);
878
874
  if (output) {
879
875
  row = { ...output, ...row };
880
876
  }
881
877
  }
882
878
  else if (!(0, types_1.isObject)(row)) {
883
- this.addLog(types_1.STATUS_TYPE.WARN, joinString(`view engine[${name}]`, `row #${i + 1}`, core_1.Client.asString(row) || "Unknown" /* ERR_MESSAGE.UNKNOWN */));
879
+ this.addLog(types_1.STATUS_TYPE.WARN, joinString(`view engine[${name}]`, `row #${i + 1}`, core_1.Client.asString(row) || "Unknown"));
884
880
  continue;
885
881
  }
886
882
  if (!singleRow) {
887
- const content = await render.call(context, row); // eslint-disable-line @typescript-eslint/await-thenable
883
+ const content = await render.call(context, row);
888
884
  if (content !== undefined && content !== null) {
889
885
  result += content;
890
886
  valid = true;
@@ -895,7 +891,7 @@ class Document extends core_1.Client {
895
891
  }
896
892
  catch (err) {
897
893
  this.abort('view_engine');
898
- this.checkPackage(err, name, "Unknown" /* ERR_MESSAGE.UNKNOWN */, 4 /* LOG_TYPE.PROCESS */);
894
+ this.checkPackage(err, name, "Unknown", 4);
899
895
  }
900
896
  return null;
901
897
  }
@@ -911,7 +907,7 @@ class Document extends core_1.Client {
911
907
  const username = this.host?.username || '';
912
908
  const config = this._transformConfig;
913
909
  const cacheData = config && options.cacheData;
914
- const cacheType = username && core_1.Client.enabled("memory.settings.users" /* KEY_NAME.MEMORY_SETTINGS_USERS */, username) ? true : this.cacheDir || core_1.Client.enabled("memory.settings.users" /* KEY_NAME.MEMORY_SETTINGS_USERS */);
910
+ const cacheType = username && core_1.Client.enabled("memory.settings.users", username) ? true : this.cacheDir || core_1.Client.enabled("memory.settings.users");
915
911
  let formatKey, hashKey, excludeKey;
916
912
  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)))) {
917
913
  const { uri, etag } = cacheData;
@@ -987,7 +983,7 @@ class Document extends core_1.Client {
987
983
  }
988
984
  if (result) {
989
985
  result.storedLog?.forEach(log => this.addLog(log));
990
- this.formatMessage(4 /* LOG_TYPE.PROCESS */, type, [joinString(cacheName, format.filter(value => value).join(' | '), options.filename), 'cache'], uri, { ...core_1.Client.LOG_STYLE_NOTICE, hintBold: true });
986
+ this.formatMessage(4, type, [joinString(cacheName, format.filter(value => value).join(' | '), options.filename), 'cache'], uri, { ...core_1.Client.LOG_STYLE_NOTICE, hintBold: true });
991
987
  return result;
992
988
  }
993
989
  }
@@ -1065,7 +1061,7 @@ class Document extends core_1.Client {
1065
1061
  if (typeof value !== 'string' || (0, types_1.isArray)(out.sourceFiles) && this.hasOwnPermission() && out.sourceFiles.some(item => !this.canRead(item, { ownPermissionOnly: true }))) {
1066
1062
  failed = true;
1067
1063
  ignoreCache = true;
1068
- this.writeFail(["Unable to transform document" /* ERR_MESSAGE.TRANSFORM_DOCUMENT */, plugin], (0, types_1.errorMessage)(plugin, name, typeof value === 'string' ? "Unsupported access" /* ERR_MESSAGE.UNSUPPORTED_ACCESS */ : 'Empty'), { type: 4 /* LOG_TYPE.PROCESS */, startTime });
1064
+ this.writeFail(["Unable to transform document", plugin], (0, types_1.errorMessage)(plugin, name, typeof value === 'string' ? "Unsupported access" : 'Empty'), { type: 4, startTime });
1069
1065
  }
1070
1066
  else if (source !== value) {
1071
1067
  series.code = value;
@@ -1097,19 +1093,18 @@ class Document extends core_1.Client {
1097
1093
  }
1098
1094
  this.writeTimeProcess(failed ? 'CHECK' : type, joinString(hint, options.filename) + (series.out.messageAppend || ''), startTime, { failed, bypassLog });
1099
1095
  };
1100
- this.formatMessage(4 /* LOG_TYPE.PROCESS */, type, ['Transforming source...', hint], options.filename, { hintColor: 'cyan' });
1096
+ this.formatMessage(4, type, ['Transforming source...', hint], options.filename, { hintColor: 'cyan' });
1101
1097
  try {
1102
1098
  let context = require(plugin);
1103
1099
  series.packageName = plugin;
1104
1100
  if (typeof baseConfig === 'function') {
1105
1101
  series.baseConfig = outputConfig;
1106
- // @ts-ignore
1107
- if (baseConfig["__cjs__" /* INTERNAL.CJS */]) {
1102
+ if (baseConfig["__cjs__"]) {
1108
1103
  next(await baseConfig(context, source, series));
1109
1104
  }
1110
1105
  else {
1111
- const thisArg = core_1.Client.enabled("node.process.inline" /* KEY_NAME.NODE_PROCESS_INLINE */) ? process : null;
1112
- const inline = core_1.Client.enabled("node.require.inline" /* KEY_NAME.NODE_REQUIRE_INLINE */);
1106
+ const thisArg = core_1.Client.enabled("node.process.inline") ? process : null;
1107
+ const inline = core_1.Client.enabled("node.require.inline");
1113
1108
  const args = [context, source, series];
1114
1109
  if (baseConfig.toString().startsWith('async')) {
1115
1110
  if (inline) {
@@ -1133,7 +1128,7 @@ class Document extends core_1.Client {
1133
1128
  if (!transformer) {
1134
1129
  try {
1135
1130
  let pkg = this.resolveDir('package', plugin + '.js') || userImports?.[plugin] || imports[plugin] || PIR_PLUGINS[plugin];
1136
- if ((0, types_1.isString)(pkg)) {
1131
+ if (pkg) {
1137
1132
  const match = /^(@?\S+)@(\d+(?:\.\d+(?:\.\S+)?)?|[a-z]+)$/.exec(pkg);
1138
1133
  if (match) {
1139
1134
  pkg = match[1];
@@ -1144,10 +1139,12 @@ class Document extends core_1.Client {
1144
1139
  else {
1145
1140
  transformer = context;
1146
1141
  context = this;
1147
- pkg = undefined;
1148
1142
  }
1149
- if (typeof transformer !== 'function' && typeof (transformer = transformer?.['default']) !== 'function') {
1150
- throw (0, types_1.errorMessage)(plugin, pkg || name, 'Invalid function');
1143
+ if (typeof transformer !== 'function') {
1144
+ transformer && (transformer = transformer.default);
1145
+ if (typeof transformer !== 'function') {
1146
+ throw (0, types_1.errorMessage)(plugin, pkg || name, 'Invalid function');
1147
+ }
1151
1148
  }
1152
1149
  if (pkg) {
1153
1150
  CACHE_PACKAGE[plugin + username] = transformer;
@@ -1155,7 +1152,7 @@ class Document extends core_1.Client {
1155
1152
  }
1156
1153
  catch (err) {
1157
1154
  abort();
1158
- this.writeFail(["Unknown" /* ERR_MESSAGE.UNKNOWN */, username ? plugin + ':' + username : hint], err, { type: 4 /* LOG_TYPE.PROCESS */, startTime });
1155
+ this.writeFail(["Unknown", username ? plugin + ':' + username : hint], err, { type: 4, startTime });
1159
1156
  continue;
1160
1157
  }
1161
1158
  }
@@ -1165,7 +1162,7 @@ class Document extends core_1.Client {
1165
1162
  }
1166
1163
  catch (err) {
1167
1164
  abort();
1168
- this.checkPackage(err, (0, util_1.getModuleName)(err), ["Unable to transform document" /* ERR_MESSAGE.TRANSFORM_DOCUMENT */, hint], { type: 4 /* LOG_TYPE.PROCESS */, startTime });
1165
+ this.checkPackage(err, (0, util_1.getModuleName)(err), ["Unable to transform document", hint], { type: 4, startTime });
1169
1166
  if (i < length - 1) {
1170
1167
  series.reset();
1171
1168
  }
@@ -1174,10 +1171,10 @@ class Document extends core_1.Client {
1174
1171
  else {
1175
1172
  abort();
1176
1173
  if (plugin) {
1177
- this.writeFail("Unable to load configuration" /* ERR_MESSAGE.LOAD_CONFIG */, (0, types_1.errorMessage)(plugin, name, 'Invalid config'), 4 /* LOG_TYPE.PROCESS */);
1174
+ this.writeFail("Unable to load configuration", (0, types_1.errorMessage)(plugin, name, 'Invalid config'), 4);
1178
1175
  }
1179
1176
  else {
1180
- this.writeFail('Format method was not found', (0, types_1.errorValue)(name, "Unknown" /* ERR_MESSAGE.UNKNOWN */), 4 /* LOG_TYPE.PROCESS */);
1177
+ this.writeFail('Format method was not found', (0, types_1.errorValue)(name, "Unknown"), 4);
1181
1178
  }
1182
1179
  }
1183
1180
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e-mc/document",
3
- "version": "0.5.3",
3
+ "version": "0.5.4",
4
4
  "description": "Document constructor for E-mc.",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "repository": {
11
11
  "type": "git",
12
- "url": "https://github.com/anpham6/e-mc.git",
12
+ "url": "git+https://github.com/anpham6/e-mc.git",
13
13
  "directory": "src/document"
14
14
  },
15
15
  "keywords": [
@@ -17,12 +17,12 @@
17
17
  "squared-functions"
18
18
  ],
19
19
  "author": "An Pham <anpham6@gmail.com>",
20
- "license": "BSD 3-Clause",
20
+ "license": "MIT",
21
21
  "homepage": "https://github.com/anpham6/e-mc#readme",
22
22
  "dependencies": {
23
- "@e-mc/core": "0.5.3",
24
- "@e-mc/db": "0.5.3",
25
- "@e-mc/types": "0.5.3",
23
+ "@e-mc/core": "0.5.4",
24
+ "@e-mc/db": "0.5.4",
25
+ "@e-mc/types": "0.5.4",
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("../../types");
8
- const util_1 = require("../util");
9
- const index_1 = require("./index");
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[0] === '<') {
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" /* VALUES.ROOT */, dom);
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" /* VALUES.IGNORE_TAGNAME */;
115
- this.rootName = "html" /* VALUES.ROOT */;
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" /* VALUES.ROOT */) {
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" /* VALUES.ROOT */) {
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" /* VALUES.DOCUMENT_TYPE */;
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" /* VALUES.IGNORE_TAGNAME */, parser: this.parser });
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" /* VALUES.ROOT */ ? (tagName === 'title' ? index_1.XmlWriter.escapeXmlString(innerXml) : innerXml) + `</${tagName}>` : '');
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" /* VALUES.DOCUMENT_TYPE */, TAG_VOID);
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("../../types");
8
- const module_1 = require("../../module");
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.indexOf('\r') !== -1 ? '\r\n' : '\n') : '';
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[0] !== '|' && tagName[tagName.length - 1] !== '|') {
913
+ if (!value.startsWith('|') && !tagName.endsWith('|')) {
914
914
  tagName += '|';
915
915
  }
916
916
  }
917
- else if (value[0] === '|') {
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).indexOf(id) !== -1;
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)) {
@@ -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;
@@ -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("../../types");
7
- const core_1 = require("../../core");
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.indexOf('/') === -1) {
19
+ if (!encoding && !mimeType.includes('/')) {
20
20
  encoding = mimeType;
21
21
  }
22
22
  return encoding.includes('base64') ? Buffer.from(value, 'base64').toString() : value;
@@ -185,21 +185,17 @@ class TransformSeries extends core_1.Module {
185
185
  return this.options.external;
186
186
  }
187
187
  set version(value) {
188
- // @ts-ignore
189
- this.metadata['__version__'] = value;
188
+ this.metadata.__version__ = value;
190
189
  }
191
190
  get version() {
192
- // @ts-ignore
193
- return this.metadata['__version__'] || '';
191
+ return this.metadata.__version__ || '';
194
192
  }
195
193
  set packageName(value) {
196
- // @ts-ignore
197
- this.metadata['__packagename__'] = value;
194
+ this.metadata.__packagename__ = value;
198
195
  this.version = 'latest';
199
196
  }
200
197
  get packageName() {
201
- // @ts-ignore
202
- return this.metadata['__packagename__'] || '';
198
+ return this.metadata.__packagename__ || '';
203
199
  }
204
200
  get packageVersion() {
205
201
  const packageName = this.packageName;
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 = void 0;
4
4
  const path = require("path");
5
- const types_1 = require("../types");
5
+ const types_1 = require("@e-mc/types");
6
6
  Object.defineProperty(exports, "isObject", { enumerable: true, get: function () { return types_1.isObject; } });
7
7
  function loadPlugins(name, plugins = []) {
8
8
  if (Array.isArray(name)) {