@e-mc/core 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 +7 -11
- package/README.md +5 -3
- package/index.d.ts +12 -12
- package/index.js +48 -49
- package/package.json +5 -5
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 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
package/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type { HostConstructor, ModuleConstructor } from '../types/lib';
|
|
2
|
-
import type { AbortComponentConstructor, ClientConstructor, ClientDbConstructor, PermissionConstructor } from '../types/lib/core';
|
|
3
|
-
|
|
4
|
-
declare namespace core {
|
|
5
|
-
const Module: ModuleConstructor;
|
|
6
|
-
const Host: HostConstructor;
|
|
7
|
-
const Client: ClientConstructor;
|
|
8
|
-
const ClientDb: ClientDbConstructor;
|
|
9
|
-
const AbortComponent: AbortComponentConstructor;
|
|
10
|
-
const Permission: PermissionConstructor;
|
|
11
|
-
}
|
|
12
|
-
|
|
1
|
+
import type { HostConstructor, ModuleConstructor } from '../types/lib';
|
|
2
|
+
import type { AbortComponentConstructor, ClientConstructor, ClientDbConstructor, PermissionConstructor } from '../types/lib/core';
|
|
3
|
+
|
|
4
|
+
declare namespace core {
|
|
5
|
+
const Module: ModuleConstructor;
|
|
6
|
+
const Host: HostConstructor;
|
|
7
|
+
const Client: ClientConstructor;
|
|
8
|
+
const ClientDb: ClientDbConstructor;
|
|
9
|
+
const AbortComponent: AbortComponentConstructor;
|
|
10
|
+
const Permission: PermissionConstructor;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
13
|
export = core;
|
package/index.js
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a, _b, _c, _d, _e, _f, _g, _h
|
|
2
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.Module = exports.Permission = exports.AbortComponent = exports.ClientDb = exports.Client = exports.Host = void 0;
|
|
5
5
|
const path = require("path");
|
|
6
6
|
const fs = require("fs");
|
|
7
7
|
const pm = require("picomatch");
|
|
8
|
-
const types_1 = require("
|
|
9
|
-
const module_1 = require("
|
|
8
|
+
const types_1 = require("@e-mc/types");
|
|
9
|
+
const module_1 = require("@e-mc/module");
|
|
10
10
|
exports.Module = module_1.default;
|
|
11
11
|
const kConfig = Symbol('config');
|
|
12
12
|
const kQueued = Symbol('queued');
|
|
13
|
-
const kUsername = Symbol('username');
|
|
14
13
|
const kAbortHandler = Symbol('abortHandler');
|
|
15
14
|
const kFreeze = Symbol('freeze');
|
|
16
15
|
const kDone = Symbol('done');
|
|
@@ -27,7 +26,7 @@ const HOST = {
|
|
|
27
26
|
DONE: new Map(),
|
|
28
27
|
QUEUE: [],
|
|
29
28
|
QUEUE_LIMIT: Infinity,
|
|
30
|
-
QUEUE_EXPIRES: 86400000
|
|
29
|
+
QUEUE_EXPIRES: 86400000,
|
|
31
30
|
PID: 1,
|
|
32
31
|
CLOSED: 0,
|
|
33
32
|
QUEUED: 0,
|
|
@@ -39,12 +38,13 @@ const HOST = {
|
|
|
39
38
|
ADMIN_USERS: [],
|
|
40
39
|
ADMIN_PRIVATE: false,
|
|
41
40
|
THREAD_LIMIT: Infinity,
|
|
42
|
-
THREAD_EXPIRES: 86400000
|
|
41
|
+
THREAD_EXPIRES: 86400000,
|
|
43
42
|
PRIORITY_MIN: 0,
|
|
44
43
|
PRIORITY_MAX: 100,
|
|
45
44
|
PRIORITY_BYPASS: undefined
|
|
46
45
|
};
|
|
47
46
|
const PLATFORM_WIN32 = process.platform === 'win32';
|
|
47
|
+
const HOST_USERNAME = new WeakMap();
|
|
48
48
|
let STORE_RESULT_COUNT = 0;
|
|
49
49
|
let PICOMATCH_OPTIONS = { nocase: PLATFORM_WIN32 };
|
|
50
50
|
let MINIMATCH_OPTIONS = { matchBase: true, nocase: PLATFORM_WIN32 };
|
|
@@ -92,7 +92,7 @@ function callResumeThread(item, aborted) {
|
|
|
92
92
|
if (item.joined) {
|
|
93
93
|
const { instance, args = [], startTime } = item;
|
|
94
94
|
if (!aborted) {
|
|
95
|
-
instance.writeTimeElapsed('JOIN', ['Thread restarting...', HOST.THREAD_LIMIT > 1 ? 'Availability: ' + HOST.DONE.size + ' / ' + HOST.THREAD_LIMIT : ''], startTime, { type: 2
|
|
95
|
+
instance.writeTimeElapsed('JOIN', ['Thread restarting...', HOST.THREAD_LIMIT > 1 ? 'Availability: ' + HOST.DONE.size + ' / ' + HOST.THREAD_LIMIT : ''], startTime, { type: 2, ...module_1.default.LOG_STYLE_WARN });
|
|
96
96
|
}
|
|
97
97
|
queueMicrotask(() => {
|
|
98
98
|
try {
|
|
@@ -104,7 +104,7 @@ function callResumeThread(item, aborted) {
|
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
function cancelThread(host, hint, rejected) {
|
|
107
|
-
host.writeFail(["Transaction was cancelled"
|
|
107
|
+
host.writeFail(["Transaction was cancelled", host.username], (0, types_1.errorValue)("Thread was killed", hint), { type: 2, fatal: true });
|
|
108
108
|
host.abort();
|
|
109
109
|
if (rejected) {
|
|
110
110
|
++HOST.REJECTED;
|
|
@@ -227,7 +227,7 @@ function resumeHostQueue(host) {
|
|
|
227
227
|
}
|
|
228
228
|
function updateHostQueue(host, position, priority, broadcast) {
|
|
229
229
|
if (!broadcast || host.broadcastId) {
|
|
230
|
-
host.formatMessage(2
|
|
230
|
+
host.formatMessage(2, 'QUEUE', ["Thread limit exceeded" + ` (position #${position + 1})`, host.username], 'Priority: ' + priority, { type: 2, ...module_1.default.LOG_STYLE_WARN });
|
|
231
231
|
}
|
|
232
232
|
}
|
|
233
233
|
function asPosix(value) {
|
|
@@ -235,8 +235,8 @@ function asPosix(value) {
|
|
|
235
235
|
return PLATFORM_WIN32 ? value.replace(/\\/g, '/') : value;
|
|
236
236
|
}
|
|
237
237
|
const readable = (value) => (0, types_1.isString)(value) || (0, types_1.isArray)(value);
|
|
238
|
-
const expireTime = (value) => Date.now() + value * 1000
|
|
239
|
-
const convertSeconds = (value) => typeof value === 'string' && Math.ceil((0, types_1.parseTime)(value) / 1000
|
|
238
|
+
const expireTime = (value) => Date.now() + value * 1000;
|
|
239
|
+
const convertSeconds = (value) => typeof value === 'string' && Math.ceil((0, types_1.parseTime)(value) / 1000) || 0;
|
|
240
240
|
class Host extends module_1.default {
|
|
241
241
|
static purgeMemory(percent = 1, limit = 0, parent) {
|
|
242
242
|
return parent ? super.purgeMemory(percent, limit) : Promise.resolve(0);
|
|
@@ -395,7 +395,7 @@ class Host extends module_1.default {
|
|
|
395
395
|
closeThread(host);
|
|
396
396
|
}
|
|
397
397
|
else if (host.startTime + HOST.THREAD_EXPIRES >= current) {
|
|
398
|
-
host.writeFail(["Transaction was cancelled"
|
|
398
|
+
host.writeFail(["Transaction was cancelled", host.username], (0, types_1.errorValue)("Timeout was exceeded", (0, types_1.formatTime)(HOST.THREAD_EXPIRES)), { fatal: true });
|
|
399
399
|
host.abort();
|
|
400
400
|
closeThread(host);
|
|
401
401
|
}
|
|
@@ -451,10 +451,9 @@ class Host extends module_1.default {
|
|
|
451
451
|
this._usingObjects = new Set();
|
|
452
452
|
this[_a] = false;
|
|
453
453
|
this[_b] = false;
|
|
454
|
-
this[_c] = '';
|
|
455
454
|
const { broadcastId, log, username, priority } = config;
|
|
456
455
|
if ((0, types_1.isString)(username)) {
|
|
457
|
-
this
|
|
456
|
+
HOST_USERNAME.set(this, username);
|
|
458
457
|
}
|
|
459
458
|
if (broadcastId) {
|
|
460
459
|
this.broadcastId = broadcastId;
|
|
@@ -645,7 +644,7 @@ class Host extends module_1.default {
|
|
|
645
644
|
return this[kConfig];
|
|
646
645
|
}
|
|
647
646
|
get username() {
|
|
648
|
-
return this
|
|
647
|
+
return HOST_USERNAME.get(this) || '';
|
|
649
648
|
}
|
|
650
649
|
set done(value) {
|
|
651
650
|
if (value) {
|
|
@@ -664,7 +663,7 @@ class Host extends module_1.default {
|
|
|
664
663
|
}
|
|
665
664
|
}
|
|
666
665
|
exports.Host = Host;
|
|
667
|
-
_a = kDone, _b = kQueued
|
|
666
|
+
_a = kDone, _b = kQueued;
|
|
668
667
|
class Client extends module_1.default {
|
|
669
668
|
static purgeMemory(percent = 1, limit = 0, parent) {
|
|
670
669
|
return parent ? super.purgeMemory(percent, limit) : Promise.resolve(0);
|
|
@@ -672,7 +671,7 @@ class Client extends module_1.default {
|
|
|
672
671
|
constructor(data) {
|
|
673
672
|
super();
|
|
674
673
|
this._extensions = null;
|
|
675
|
-
this[
|
|
674
|
+
this[_c] = '';
|
|
676
675
|
this.module = (0, types_1.isPlainObject)(data) ? data : {};
|
|
677
676
|
}
|
|
678
677
|
init(...args) {
|
|
@@ -701,8 +700,8 @@ class Client extends module_1.default {
|
|
|
701
700
|
return this[kCacheDir];
|
|
702
701
|
}
|
|
703
702
|
get settings() {
|
|
704
|
-
var
|
|
705
|
-
return ((
|
|
703
|
+
var _j;
|
|
704
|
+
return ((_j = this.module).settings || (_j.settings = {}));
|
|
706
705
|
}
|
|
707
706
|
set extensions(values) {
|
|
708
707
|
if (Array.isArray(values)) {
|
|
@@ -715,14 +714,14 @@ class Client extends module_1.default {
|
|
|
715
714
|
}
|
|
716
715
|
}
|
|
717
716
|
exports.Client = Client;
|
|
718
|
-
|
|
717
|
+
_c = kCacheDir;
|
|
719
718
|
class ClientDb extends Client {
|
|
720
|
-
static get TRANSACTION_ACTIVE() { return 1
|
|
721
|
-
static get TRANSACTION_PARTIAL() { return 2
|
|
722
|
-
static get TRANSACTION_COMMIT() { return 4
|
|
723
|
-
static get TRANSACTION_TERMINATE() { return 8
|
|
724
|
-
static get TRANSACTION_ABORT() { return 16
|
|
725
|
-
static get TRANSACTION_FAIL() { return 32
|
|
719
|
+
static get TRANSACTION_ACTIVE() { return 1; }
|
|
720
|
+
static get TRANSACTION_PARTIAL() { return 2; }
|
|
721
|
+
static get TRANSACTION_COMMIT() { return 4; }
|
|
722
|
+
static get TRANSACTION_TERMINATE() { return 8; }
|
|
723
|
+
static get TRANSACTION_ABORT() { return 16; }
|
|
724
|
+
static get TRANSACTION_FAIL() { return 32; }
|
|
726
725
|
static loadSettings(settings, password) {
|
|
727
726
|
if (super.loadSettings({ process: settings.process }, password)) {
|
|
728
727
|
const memory = settings.memory;
|
|
@@ -787,7 +786,7 @@ class ClientDb extends Client {
|
|
|
787
786
|
let result = 0;
|
|
788
787
|
switch (typeof value) {
|
|
789
788
|
case 'number':
|
|
790
|
-
result = value * 1000
|
|
789
|
+
result = value * 1000;
|
|
791
790
|
break;
|
|
792
791
|
case 'string':
|
|
793
792
|
result = (0, types_1.parseTime)(value);
|
|
@@ -838,7 +837,7 @@ class ClientDb extends Client {
|
|
|
838
837
|
}
|
|
839
838
|
}
|
|
840
839
|
static storeResult(source, credential, queryString, result, options, sessionKey, sessionExpires) {
|
|
841
|
-
var
|
|
840
|
+
var _j, _k;
|
|
842
841
|
let cache, cacheDir;
|
|
843
842
|
if ((0, types_1.isObject)(sessionKey)) {
|
|
844
843
|
({ cacheDir, sessionKey, sessionExpires } = sessionKey);
|
|
@@ -881,7 +880,7 @@ class ClientDb extends Client {
|
|
|
881
880
|
queryString = this.asHash(queryString);
|
|
882
881
|
if (timeout > 0) {
|
|
883
882
|
const item = [expireTime(timeout), result, Date.now(), 0];
|
|
884
|
-
((
|
|
883
|
+
((_j = (CACHE_USER[source] || (CACHE_USER[source] = {})))[userKey] || (_j[userKey] = {}))[queryString] = item;
|
|
885
884
|
addSourceResult(source, item);
|
|
886
885
|
if (cacheDir) {
|
|
887
886
|
if (partition) {
|
|
@@ -900,17 +899,17 @@ class ClientDb extends Client {
|
|
|
900
899
|
}
|
|
901
900
|
else if (typeof sessionKey === 'string' && sessionExpires && sessionExpires > 0) {
|
|
902
901
|
const dbKey = userKey + sessionKey;
|
|
903
|
-
((
|
|
904
|
-
setTimeout(() => delete CACHE_SESSION[dbKey], sessionExpires * 1000
|
|
902
|
+
((_k = (CACHE_SESSION[source] || (CACHE_SESSION[source] = {})))[dbKey] || (_k[dbKey] = {}))[queryString] = result;
|
|
903
|
+
setTimeout(() => delete CACHE_SESSION[dbKey], sessionExpires * 1000);
|
|
905
904
|
}
|
|
906
905
|
}
|
|
907
906
|
return result;
|
|
908
907
|
}
|
|
909
|
-
static purgeResult(prefix) {
|
|
908
|
+
static async purgeResult(prefix) {
|
|
910
909
|
const current = Date.now();
|
|
911
910
|
const providers = new Map();
|
|
912
911
|
if (prefix) {
|
|
913
|
-
if (prefix.
|
|
912
|
+
if (!prefix.includes('_')) {
|
|
914
913
|
prefix += '_';
|
|
915
914
|
for (const key in CACHE_USER) {
|
|
916
915
|
if (key.startsWith(prefix)) {
|
|
@@ -971,7 +970,7 @@ class ClientDb extends Client {
|
|
|
971
970
|
constructor(data, database = []) {
|
|
972
971
|
super(data);
|
|
973
972
|
this.database = database;
|
|
974
|
-
this.cacheExpires = 600000
|
|
973
|
+
this.cacheExpires = 600000;
|
|
975
974
|
}
|
|
976
975
|
init(config) {
|
|
977
976
|
let { cache_dir, session_expires: expires } = this.settings;
|
|
@@ -1065,7 +1064,7 @@ class ClientDb extends Client {
|
|
|
1065
1064
|
}
|
|
1066
1065
|
const uuidKey = ClientDb.extractUUID(credential);
|
|
1067
1066
|
let options;
|
|
1068
|
-
if (ClientDb.enabled("memory.settings.users"
|
|
1067
|
+
if (ClientDb.enabled("memory.settings.users", this.host?.username)) {
|
|
1069
1068
|
let value;
|
|
1070
1069
|
if ((0, types_1.isObject)(sessionKey)) {
|
|
1071
1070
|
({ value, sessionKey } = sessionKey);
|
|
@@ -1085,13 +1084,13 @@ class ClientDb extends Client {
|
|
|
1085
1084
|
}
|
|
1086
1085
|
applyState(items, value, as) {
|
|
1087
1086
|
for (const item of Array.isArray(items) ? items : [items]) {
|
|
1088
|
-
if ((0, types_1.hasBit)(value, 8
|
|
1087
|
+
if ((0, types_1.hasBit)(value, 8)) {
|
|
1089
1088
|
const state = item.transactionState || (item.transactionState = 0);
|
|
1090
|
-
if ((0, types_1.hasBit)(state, 4
|
|
1089
|
+
if ((0, types_1.hasBit)(state, 4) || (0, types_1.hasBit)(state, 32)) {
|
|
1091
1090
|
item.transactionState |= value;
|
|
1092
1091
|
}
|
|
1093
1092
|
}
|
|
1094
|
-
else if ((0, types_1.hasBit)(value, 16
|
|
1093
|
+
else if ((0, types_1.hasBit)(value, 16)) {
|
|
1095
1094
|
item.transactionState || (item.transactionState = value);
|
|
1096
1095
|
}
|
|
1097
1096
|
else if (as) {
|
|
@@ -1115,8 +1114,8 @@ class ClientDb extends Client {
|
|
|
1115
1114
|
}
|
|
1116
1115
|
}
|
|
1117
1116
|
settingsKey(uuidKey, name, component) {
|
|
1118
|
-
var
|
|
1119
|
-
const data = ((
|
|
1117
|
+
var _j;
|
|
1118
|
+
const data = ((_j = this.settings).user_key || (_j.user_key = {}))[uuidKey];
|
|
1120
1119
|
if ((0, types_1.isObject)(data)) {
|
|
1121
1120
|
return getSettingsValue(data, name, component);
|
|
1122
1121
|
}
|
|
@@ -1124,22 +1123,22 @@ class ClientDb extends Client {
|
|
|
1124
1123
|
get pending() {
|
|
1125
1124
|
return this.database.filter(item => {
|
|
1126
1125
|
const state = item.transactionState || 0;
|
|
1127
|
-
return state === 0 || state === 16
|
|
1126
|
+
return state === 0 || state === 16;
|
|
1128
1127
|
});
|
|
1129
1128
|
}
|
|
1130
1129
|
get committed() {
|
|
1131
|
-
return this.database.filter(item => (item.transactionState & 4
|
|
1130
|
+
return this.database.filter(item => (item.transactionState & 4) === 4);
|
|
1132
1131
|
}
|
|
1133
1132
|
get failed() {
|
|
1134
|
-
return this.database.filter(item => (item.transactionState & 32
|
|
1133
|
+
return this.database.filter(item => (item.transactionState & 32) === 32);
|
|
1135
1134
|
}
|
|
1136
1135
|
}
|
|
1137
|
-
ClientDb.STORE_RESULT_PARTITION_SIZE = 16
|
|
1138
|
-
ClientDb.STORE_RESULT_PARTITION_MULT = 2
|
|
1136
|
+
ClientDb.STORE_RESULT_PARTITION_SIZE = 16;
|
|
1137
|
+
ClientDb.STORE_RESULT_PARTITION_MULT = 2;
|
|
1139
1138
|
exports.ClientDb = ClientDb;
|
|
1140
1139
|
class AbortComponent {
|
|
1141
1140
|
constructor() {
|
|
1142
|
-
this[
|
|
1141
|
+
this[_d] = new AbortController();
|
|
1143
1142
|
}
|
|
1144
1143
|
static attach(instance, signal, options) {
|
|
1145
1144
|
let map = ABORT_LISTENER.get(instance);
|
|
@@ -1179,7 +1178,7 @@ class AbortComponent {
|
|
|
1179
1178
|
}
|
|
1180
1179
|
}
|
|
1181
1180
|
exports.AbortComponent = AbortComponent;
|
|
1182
|
-
|
|
1181
|
+
_d = kAbortHandler;
|
|
1183
1182
|
class Permission {
|
|
1184
1183
|
static create(settings, parent, freeze) {
|
|
1185
1184
|
if (this.validate(settings)) {
|
|
@@ -1254,10 +1253,10 @@ class Permission {
|
|
|
1254
1253
|
return pm.isMatch(pathname, pattern, PICOMATCH_OPTIONS);
|
|
1255
1254
|
}
|
|
1256
1255
|
constructor(freeze = false) {
|
|
1256
|
+
this[_e] = { enabled: null, value: '' };
|
|
1257
1257
|
this[_f] = { enabled: null, value: '' };
|
|
1258
1258
|
this[_g] = { enabled: null, value: '' };
|
|
1259
1259
|
this[_h] = { enabled: null, value: '' };
|
|
1260
|
-
this[_j] = { enabled: null, value: '' };
|
|
1261
1260
|
this[kFreeze] = freeze;
|
|
1262
1261
|
}
|
|
1263
1262
|
setDiskRead(pathname = '', enabled = true) {
|
|
@@ -1310,5 +1309,5 @@ class Permission {
|
|
|
1310
1309
|
}
|
|
1311
1310
|
}
|
|
1312
1311
|
exports.Permission = Permission;
|
|
1313
|
-
|
|
1312
|
+
_e = kDiskRead, _f = kDiskWrite, _g = kUncRead, _h = kUncWrite;
|
|
1314
1313
|
PERMISSION = Host.createPermission(true, true);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@e-mc/core",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.4",
|
|
4
4
|
"description": "Core modules 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/core"
|
|
14
14
|
},
|
|
15
15
|
"keywords": [
|
|
@@ -17,11 +17,11 @@
|
|
|
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/module": "0.5.
|
|
24
|
-
"@e-mc/types": "0.5.
|
|
23
|
+
"@e-mc/module": "0.5.4",
|
|
24
|
+
"@e-mc/types": "0.5.4",
|
|
25
25
|
"picomatch": "^2.3.1"
|
|
26
26
|
}
|
|
27
27
|
}
|