@schukai/monster 3.5.0 → 3.8.0
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +1 -1
- package/source/constants.mjs +4 -9
- package/source/constraints/abstract.mjs +4 -6
- package/source/constraints/abstractoperator.mjs +6 -12
- package/source/constraints/andoperator.mjs +3 -6
- package/source/constraints/invalid.mjs +3 -6
- package/source/constraints/isarray.mjs +6 -9
- package/source/constraints/isobject.mjs +4 -7
- package/source/constraints/namespace.mjs +1 -3
- package/source/constraints/oroperator.mjs +26 -25
- package/source/constraints/valid.mjs +3 -6
- package/source/data/buildmap.mjs +20 -36
- package/source/data/buildtree.mjs +29 -29
- package/source/data/datasource/namespace.mjs +1 -1
- package/source/data/datasource/server/restapi/writeerror.mjs +6 -6
- package/source/data/datasource/server/restapi.mjs +51 -65
- package/source/data/datasource/server/webconnect.mjs +26 -35
- package/source/data/datasource/server.mjs +16 -20
- package/source/data/datasource/storage/localstorage.mjs +8 -11
- package/source/data/datasource/storage/sessionstorage.mjs +8 -10
- package/source/data/datasource/storage.mjs +18 -22
- package/source/data/datasource.mjs +27 -43
- package/source/data/diff.mjs +20 -32
- package/source/data/extend.mjs +20 -14
- package/source/data/namespace.mjs +1 -3
- package/source/data/pathfinder.mjs +105 -87
- package/source/data/pipe.mjs +6 -10
- package/source/data/transformer.mjs +141 -157
- package/source/dom/assembler.mjs +6 -9
- package/source/dom/attributes.mjs +36 -48
- package/source/dom/constants.mjs +55 -71
- package/source/dom/customcontrol.mjs +16 -21
- package/source/dom/customelement.mjs +140 -164
- package/source/dom/events.mjs +17 -24
- package/source/dom/focusmanager.mjs +31 -49
- package/source/dom/locale.mjs +18 -20
- package/source/dom/namespace.mjs +1 -1
- package/source/dom/ready.mjs +7 -10
- package/source/dom/resource/data.mjs +38 -46
- package/source/dom/resource/link/namespace.mjs +1 -3
- package/source/dom/resource/link/stylesheet.mjs +7 -11
- package/source/dom/resource/link.mjs +36 -17
- package/source/dom/resource/namespace.mjs +1 -1
- package/source/dom/resource/script.mjs +23 -13
- package/source/dom/resource.mjs +47 -60
- package/source/dom/resourcemanager.mjs +36 -43
- package/source/dom/template.mjs +17 -24
- package/source/dom/theme.mjs +8 -12
- package/source/dom/updater.mjs +150 -196
- package/source/dom/util.mjs +11 -12
- package/source/dom/worker/factory.mjs +21 -25
- package/source/dom/worker/namespace.mjs +1 -1
- package/source/i18n/formatter.mjs +20 -24
- package/source/i18n/locale.mjs +42 -55
- package/source/i18n/namespace.mjs +1 -1
- package/source/i18n/provider.mjs +4 -7
- package/source/i18n/providers/embed.mjs +16 -26
- package/source/i18n/providers/fetch.mjs +30 -36
- package/source/i18n/translations.mjs +17 -24
- package/source/logging/handler/console.mjs +6 -10
- package/source/logging/handler.mjs +15 -18
- package/source/logging/logentry.mjs +8 -9
- package/source/logging/logger.mjs +73 -55
- package/source/logging/namespace.mjs +1 -1
- package/source/math/namespace.mjs +1 -1
- package/source/math/random.mjs +13 -14
- package/source/monster.mjs +132 -100
- package/source/net/namespace.mjs +1 -3
- package/source/net/webconnect/message.mjs +6 -8
- package/source/net/webconnect/namespace.mjs +1 -3
- package/source/net/webconnect.mjs +28 -39
- package/source/text/formatter.mjs +44 -55
- package/source/types/base.mjs +16 -26
- package/source/types/basewithoptions.mjs +8 -14
- package/source/types/binary.mjs +4 -5
- package/source/types/dataurl.mjs +19 -27
- package/source/types/global.mjs +14 -26
- package/source/types/id.mjs +4 -6
- package/source/types/is.mjs +11 -16
- package/source/types/mediatype.mjs +29 -44
- package/source/types/namespace.mjs +0 -1
- package/source/types/node.mjs +16 -22
- package/source/types/nodelist.mjs +10 -14
- package/source/types/noderecursiveiterator.mjs +11 -14
- package/source/types/observablequeue.mjs +13 -16
- package/source/types/observer.mjs +16 -23
- package/source/types/observerlist.mjs +18 -21
- package/source/types/proxyobserver.mjs +24 -37
- package/source/types/queue.mjs +8 -13
- package/source/types/randomid.mjs +10 -10
- package/source/types/regex.mjs +3 -5
- package/source/types/stack.mjs +4 -8
- package/source/types/tokenlist.mjs +24 -31
- package/source/types/typeof.mjs +5 -7
- package/source/types/uniquequeue.mjs +8 -13
- package/source/types/uuid.mjs +18 -25
- package/source/types/validate.mjs +26 -27
- package/source/types/version.mjs +17 -25
- package/source/util/clone.mjs +23 -32
- package/source/util/comparator.mjs +7 -15
- package/source/util/deadmansswitch.mjs +16 -23
- package/source/util/freeze.mjs +5 -7
- package/source/util/namespace.mjs +1 -1
- package/source/util/processing.mjs +33 -39
- package/source/util/trimspaces.mjs +17 -24
- package/test/cases/monster.mjs +1 -1
@@ -5,11 +5,11 @@
|
|
5
5
|
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
6
6
|
*/
|
7
7
|
|
8
|
-
import {isIterable, isString} from
|
9
|
-
import {validateFunction, validateString} from
|
10
|
-
import {Base} from
|
8
|
+
import { isIterable, isString } from "../types/is.mjs";
|
9
|
+
import { validateFunction, validateString } from "../types/validate.mjs";
|
10
|
+
import { Base } from "./base.mjs";
|
11
11
|
|
12
|
-
export {TokenList}
|
12
|
+
export { TokenList };
|
13
13
|
|
14
14
|
/**
|
15
15
|
* A `TokenList` allows you to manage tokens (individual character strings such as css classes in an attribute string).
|
@@ -25,7 +25,6 @@ export {TokenList}
|
|
25
25
|
* @memberOf Monster.Types
|
26
26
|
*/
|
27
27
|
class TokenList extends Base {
|
28
|
-
|
29
28
|
/**
|
30
29
|
*
|
31
30
|
* @param {array|string|iteratable} init
|
@@ -37,7 +36,6 @@ class TokenList extends Base {
|
|
37
36
|
if (typeof init !== "undefined") {
|
38
37
|
this.add(init);
|
39
38
|
}
|
40
|
-
|
41
39
|
}
|
42
40
|
|
43
41
|
/**
|
@@ -59,17 +57,17 @@ class TokenList extends Base {
|
|
59
57
|
// iterations over the iterable safe for non-trivial cases,
|
60
58
|
// such as use of break or nested looping over the same iterable.
|
61
59
|
let index = 0;
|
62
|
-
let entries = this.entries()
|
60
|
+
let entries = this.entries();
|
63
61
|
|
64
62
|
return {
|
65
63
|
next: () => {
|
66
64
|
if (index < entries.length) {
|
67
|
-
return {value: entries?.[index++], done: false}
|
65
|
+
return { value: entries?.[index++], done: false };
|
68
66
|
} else {
|
69
|
-
return {done: true}
|
67
|
+
return { done: true };
|
70
68
|
}
|
71
|
-
}
|
72
|
-
}
|
69
|
+
},
|
70
|
+
};
|
73
71
|
}
|
74
72
|
|
75
73
|
/**
|
@@ -81,12 +79,12 @@ class TokenList extends Base {
|
|
81
79
|
*/
|
82
80
|
contains(value) {
|
83
81
|
if (isString(value)) {
|
84
|
-
value = value.trim()
|
82
|
+
value = value.trim();
|
85
83
|
let counter = 0;
|
86
|
-
value.split(" ").forEach(token => {
|
84
|
+
value.split(" ").forEach((token) => {
|
87
85
|
if (this.tokens.has(token.trim()) === false) return false;
|
88
|
-
counter
|
89
|
-
})
|
86
|
+
counter++;
|
87
|
+
});
|
90
88
|
return counter > 0 ? true : false;
|
91
89
|
}
|
92
90
|
|
@@ -95,7 +93,7 @@ class TokenList extends Base {
|
|
95
93
|
for (let token of value) {
|
96
94
|
validateString(token);
|
97
95
|
if (this.tokens.has(token.trim()) === false) return false;
|
98
|
-
counter
|
96
|
+
counter++;
|
99
97
|
}
|
100
98
|
return counter > 0 ? true : false;
|
101
99
|
}
|
@@ -113,9 +111,9 @@ class TokenList extends Base {
|
|
113
111
|
*/
|
114
112
|
add(value) {
|
115
113
|
if (isString(value)) {
|
116
|
-
value.split(" ").forEach(token => {
|
114
|
+
value.split(" ").forEach((token) => {
|
117
115
|
this.tokens.add(token.trim());
|
118
|
-
})
|
116
|
+
});
|
119
117
|
} else if (isIterable(value)) {
|
120
118
|
for (let token of value) {
|
121
119
|
validateString(token);
|
@@ -148,9 +146,9 @@ class TokenList extends Base {
|
|
148
146
|
*/
|
149
147
|
remove(value) {
|
150
148
|
if (isString(value)) {
|
151
|
-
value.split(" ").forEach(token => {
|
149
|
+
value.split(" ").forEach((token) => {
|
152
150
|
this.tokens.delete(token.trim());
|
153
|
-
})
|
151
|
+
});
|
154
152
|
} else if (isIterable(value)) {
|
155
153
|
for (let token of value) {
|
156
154
|
validateString(token);
|
@@ -180,7 +178,7 @@ class TokenList extends Base {
|
|
180
178
|
return this;
|
181
179
|
}
|
182
180
|
|
183
|
-
let a = Array.from(this.tokens)
|
181
|
+
let a = Array.from(this.tokens);
|
184
182
|
let i = a.indexOf(token);
|
185
183
|
if (i === -1) return this;
|
186
184
|
|
@@ -189,8 +187,6 @@ class TokenList extends Base {
|
|
189
187
|
this.add(a);
|
190
188
|
|
191
189
|
return this;
|
192
|
-
|
193
|
-
|
194
190
|
}
|
195
191
|
|
196
192
|
/**
|
@@ -202,11 +198,10 @@ class TokenList extends Base {
|
|
202
198
|
* @throws {TypeError} unsupported value
|
203
199
|
*/
|
204
200
|
toggle(value) {
|
205
|
-
|
206
201
|
if (isString(value)) {
|
207
|
-
value.split(" ").forEach(token => {
|
202
|
+
value.split(" ").forEach((token) => {
|
208
203
|
toggleValue.call(this, token);
|
209
|
-
})
|
204
|
+
});
|
210
205
|
} else if (isIterable(value)) {
|
211
206
|
for (let token of value) {
|
212
207
|
toggleValue.call(this, token);
|
@@ -216,7 +211,6 @@ class TokenList extends Base {
|
|
216
211
|
}
|
217
212
|
|
218
213
|
return this;
|
219
|
-
|
220
214
|
}
|
221
215
|
|
222
216
|
/**
|
@@ -225,7 +219,7 @@ class TokenList extends Base {
|
|
225
219
|
* @returns {array}
|
226
220
|
*/
|
227
221
|
entries() {
|
228
|
-
return Array.from(this.tokens)
|
222
|
+
return Array.from(this.tokens);
|
229
223
|
}
|
230
224
|
|
231
225
|
/**
|
@@ -246,9 +240,8 @@ class TokenList extends Base {
|
|
246
240
|
* @returns {string}
|
247
241
|
*/
|
248
242
|
toString() {
|
249
|
-
return this.entries().join(
|
243
|
+
return this.entries().join(" ");
|
250
244
|
}
|
251
|
-
|
252
245
|
}
|
253
246
|
|
254
247
|
/**
|
@@ -258,7 +251,7 @@ class TokenList extends Base {
|
|
258
251
|
* @throws {Error} must be called with TokenList.call
|
259
252
|
*/
|
260
253
|
function toggleValue(token) {
|
261
|
-
if (!(this instanceof TokenList)) throw Error("must be called with TokenList.call")
|
254
|
+
if (!(this instanceof TokenList)) throw Error("must be called with TokenList.call");
|
262
255
|
validateString(token);
|
263
256
|
token = token.trim();
|
264
257
|
if (this.contains(token)) {
|
package/source/types/typeof.mjs
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
6
6
|
*/
|
7
7
|
|
8
|
-
export {typeOf}
|
8
|
+
export { typeOf };
|
9
9
|
|
10
10
|
/**
|
11
11
|
* The built-in typeof method is known to have some historical weaknesses. This function tries to provide a better and more accurate result.
|
@@ -20,18 +20,16 @@ export {typeOf}
|
|
20
20
|
* @throws {TypeError} value is not a primitive
|
21
21
|
*/
|
22
22
|
function typeOf(value) {
|
23
|
-
let type =
|
24
|
-
if (
|
25
|
-
|
23
|
+
let type = {}.toString.call(value).match(/\s([a-zA-Z]+)/)[1];
|
24
|
+
if ("Object" === type) {
|
26
25
|
const name = value.constructor.name;
|
27
26
|
if (name) {
|
28
27
|
return name.toLowerCase();
|
29
28
|
}
|
30
29
|
|
31
|
-
const results =
|
32
|
-
type =
|
30
|
+
const results = /^(class|function)\s+(\w+)/.exec(value.constructor.toString());
|
31
|
+
type = results && results.length > 2 ? results[2] : "";
|
33
32
|
}
|
34
33
|
|
35
34
|
return type.toLowerCase();
|
36
35
|
}
|
37
|
-
|
@@ -5,11 +5,11 @@
|
|
5
5
|
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
6
6
|
*/
|
7
7
|
|
8
|
-
import {Queue} from "./queue.mjs";
|
9
|
-
import {internalSymbol} from "../constants.mjs";
|
10
|
-
import {validateObject} from "./validate.mjs";
|
8
|
+
import { Queue } from "./queue.mjs";
|
9
|
+
import { internalSymbol } from "../constants.mjs";
|
10
|
+
import { validateObject } from "./validate.mjs";
|
11
11
|
|
12
|
-
export {UniqueQueue}
|
12
|
+
export { UniqueQueue };
|
13
13
|
|
14
14
|
/**
|
15
15
|
* An UniqueQueue is a queue that contains items only once.
|
@@ -20,15 +20,14 @@ export {UniqueQueue}
|
|
20
20
|
* @memberOf Monster.Types
|
21
21
|
* @summary A queue for unique values
|
22
22
|
*/
|
23
|
-
|
24
|
-
|
23
|
+
class UniqueQueue extends Queue {
|
25
24
|
/**
|
26
25
|
*
|
27
26
|
*/
|
28
27
|
constructor() {
|
29
28
|
super();
|
30
|
-
this[internalSymbol]={
|
31
|
-
unique
|
29
|
+
this[internalSymbol] = {
|
30
|
+
unique: new WeakSet(),
|
32
31
|
};
|
33
32
|
}
|
34
33
|
|
@@ -40,7 +39,6 @@ export {UniqueQueue}
|
|
40
39
|
* @throws {TypeError} value is not a object
|
41
40
|
*/
|
42
41
|
add(value) {
|
43
|
-
|
44
42
|
validateObject(value);
|
45
43
|
|
46
44
|
if (!this[internalSymbol].unique.has(value)) {
|
@@ -58,7 +56,7 @@ export {UniqueQueue}
|
|
58
56
|
*/
|
59
57
|
clear() {
|
60
58
|
super.clear();
|
61
|
-
this[internalSymbol].unique = new WeakSet;
|
59
|
+
this[internalSymbol].unique = new WeakSet();
|
62
60
|
return this;
|
63
61
|
}
|
64
62
|
|
@@ -69,7 +67,6 @@ export {UniqueQueue}
|
|
69
67
|
* @return {object}
|
70
68
|
*/
|
71
69
|
poll() {
|
72
|
-
|
73
70
|
if (this.isEmpty()) {
|
74
71
|
return undefined;
|
75
72
|
}
|
@@ -77,6 +74,4 @@ export {UniqueQueue}
|
|
77
74
|
this[internalSymbol].unique.delete(value);
|
78
75
|
return value;
|
79
76
|
}
|
80
|
-
|
81
|
-
|
82
77
|
}
|
package/source/types/uuid.mjs
CHANGED
@@ -5,25 +5,24 @@
|
|
5
5
|
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
6
6
|
*/
|
7
7
|
|
8
|
-
import {internalSymbol} from "../constants.mjs";
|
9
|
-
import {random} from "../math/random.mjs";
|
10
|
-
import {isObject} from
|
11
|
-
import {Base} from "./base.mjs";
|
12
|
-
import {getGlobalObject} from "./global.mjs";
|
8
|
+
import { internalSymbol } from "../constants.mjs";
|
9
|
+
import { random } from "../math/random.mjs";
|
10
|
+
import { isObject } from "../types/is.mjs";
|
11
|
+
import { Base } from "./base.mjs";
|
12
|
+
import { getGlobalObject } from "./global.mjs";
|
13
13
|
|
14
|
-
export {UUID}
|
14
|
+
export { UUID };
|
15
15
|
|
16
16
|
/**
|
17
17
|
* The UUID class makes it possible to get a unique UUID for an object.
|
18
|
-
*
|
18
|
+
*
|
19
19
|
* @license AGPLv3
|
20
20
|
* @since 1.25.0
|
21
21
|
* @copyright schukai GmbH
|
22
22
|
* @memberOf Monster.Types
|
23
23
|
* @throws {Error} unsupported
|
24
24
|
*/
|
25
|
-
|
26
|
-
|
25
|
+
class UUID extends Base {
|
27
26
|
/**
|
28
27
|
*
|
29
28
|
*/
|
@@ -36,15 +35,13 @@ export {UUID}
|
|
36
35
|
uuid = createWithRandom();
|
37
36
|
}
|
38
37
|
|
39
|
-
|
40
38
|
if (uuid === undefined) {
|
41
|
-
throw new Error(
|
39
|
+
throw new Error("unsupported");
|
42
40
|
}
|
43
41
|
|
44
42
|
this[internalSymbol] = {
|
45
|
-
value: uuid
|
46
|
-
}
|
47
|
-
|
43
|
+
value: uuid,
|
44
|
+
};
|
48
45
|
}
|
49
46
|
|
50
47
|
/**
|
@@ -52,10 +49,8 @@ export {UUID}
|
|
52
49
|
* @return {string}
|
53
50
|
*/
|
54
51
|
toString() {
|
55
|
-
return this[internalSymbol][
|
52
|
+
return this[internalSymbol]["value"];
|
56
53
|
}
|
57
|
-
|
58
|
-
|
59
54
|
}
|
60
55
|
|
61
56
|
/**
|
@@ -63,22 +58,20 @@ export {UUID}
|
|
63
58
|
* @return {string|undefined}
|
64
59
|
*/
|
65
60
|
function createWithRandom() {
|
66
|
-
return
|
67
|
-
|
68
|
-
|
61
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
|
62
|
+
const r = (random(0, 65000) * 16) | 0;
|
63
|
+
const v = c === "x" ? r : (r & 0x3) | 0x8;
|
69
64
|
return v.toString(16)[0];
|
70
|
-
})
|
65
|
+
});
|
71
66
|
}
|
72
67
|
|
73
|
-
|
74
68
|
/**
|
75
69
|
* @private
|
76
70
|
* @return {string|undefined}
|
77
71
|
*/
|
78
72
|
function createWithCrypto() {
|
79
|
-
const crypt = getGlobalObject(
|
73
|
+
const crypt = getGlobalObject("crypto");
|
80
74
|
if (!isObject(crypt)) return;
|
81
|
-
if (typeof crypt?.[
|
75
|
+
if (typeof crypt?.["randomUUID"]) return;
|
82
76
|
return crypt.randomUUID();
|
83
77
|
}
|
84
|
-
|
@@ -15,8 +15,8 @@ import {
|
|
15
15
|
isObject,
|
16
16
|
isPrimitive,
|
17
17
|
isString,
|
18
|
-
isSymbol
|
19
|
-
} from
|
18
|
+
isSymbol,
|
19
|
+
} from "./is.mjs";
|
20
20
|
|
21
21
|
export {
|
22
22
|
validateIterable,
|
@@ -28,8 +28,8 @@ export {
|
|
28
28
|
validateArray,
|
29
29
|
validateSymbol,
|
30
30
|
validateFunction,
|
31
|
-
validateInteger
|
32
|
-
}
|
31
|
+
validateInteger,
|
32
|
+
};
|
33
33
|
|
34
34
|
/**
|
35
35
|
* This method checks if the type matches the primitive type. this function is identical to isPrimitive() except that a TypeError is thrown.
|
@@ -55,9 +55,9 @@ export {
|
|
55
55
|
*/
|
56
56
|
function validateIterable(value) {
|
57
57
|
if (!isIterable(value)) {
|
58
|
-
throw new TypeError(
|
58
|
+
throw new TypeError("value is not iterable");
|
59
59
|
}
|
60
|
-
return value
|
60
|
+
return value;
|
61
61
|
}
|
62
62
|
|
63
63
|
/**
|
@@ -84,9 +84,9 @@ function validateIterable(value) {
|
|
84
84
|
*/
|
85
85
|
function validatePrimitive(value) {
|
86
86
|
if (!isPrimitive(value)) {
|
87
|
-
throw new TypeError(
|
87
|
+
throw new TypeError("value is not a primitive");
|
88
88
|
}
|
89
|
-
return value
|
89
|
+
return value;
|
90
90
|
}
|
91
91
|
|
92
92
|
/**
|
@@ -112,9 +112,9 @@ function validatePrimitive(value) {
|
|
112
112
|
*/
|
113
113
|
function validateBoolean(value) {
|
114
114
|
if (!isBoolean(value)) {
|
115
|
-
throw new TypeError(
|
115
|
+
throw new TypeError("value is not a boolean");
|
116
116
|
}
|
117
|
-
return value
|
117
|
+
return value;
|
118
118
|
}
|
119
119
|
|
120
120
|
/**
|
@@ -138,12 +138,11 @@ function validateBoolean(value) {
|
|
138
138
|
*/
|
139
139
|
function validateString(value) {
|
140
140
|
if (!isString(value)) {
|
141
|
-
throw new TypeError(
|
141
|
+
throw new TypeError("value is not a string");
|
142
142
|
}
|
143
|
-
return value
|
143
|
+
return value;
|
144
144
|
}
|
145
145
|
|
146
|
-
|
147
146
|
/**
|
148
147
|
* This method checks if the type matches the object type. this function is identical to isObject() except that a TypeError is thrown.
|
149
148
|
*
|
@@ -166,9 +165,9 @@ function validateString(value) {
|
|
166
165
|
*/
|
167
166
|
function validateObject(value) {
|
168
167
|
if (!isObject(value)) {
|
169
|
-
throw new TypeError(
|
168
|
+
throw new TypeError("value is not a object");
|
170
169
|
}
|
171
|
-
return value
|
170
|
+
return value;
|
172
171
|
}
|
173
172
|
|
174
173
|
/**
|
@@ -195,16 +194,16 @@ function validateInstance(value, instance) {
|
|
195
194
|
if (!isInstance(value, instance)) {
|
196
195
|
let n = "";
|
197
196
|
if (isObject(instance) || isFunction(instance)) {
|
198
|
-
n = instance?.[
|
197
|
+
n = instance?.["name"];
|
199
198
|
}
|
200
199
|
|
201
200
|
if (n) {
|
202
|
-
n =
|
201
|
+
n = ` ${n}`;
|
203
202
|
}
|
204
203
|
|
205
|
-
throw new TypeError(
|
204
|
+
throw new TypeError(`value is not an instance of${n}`);
|
206
205
|
}
|
207
|
-
return value
|
206
|
+
return value;
|
208
207
|
}
|
209
208
|
|
210
209
|
/**
|
@@ -228,9 +227,9 @@ function validateInstance(value, instance) {
|
|
228
227
|
*/
|
229
228
|
function validateArray(value) {
|
230
229
|
if (!isArray(value)) {
|
231
|
-
throw new TypeError(
|
230
|
+
throw new TypeError("value is not an array");
|
232
231
|
}
|
233
|
-
return value
|
232
|
+
return value;
|
234
233
|
}
|
235
234
|
|
236
235
|
/**
|
@@ -254,9 +253,9 @@ function validateArray(value) {
|
|
254
253
|
*/
|
255
254
|
function validateSymbol(value) {
|
256
255
|
if (!isSymbol(value)) {
|
257
|
-
throw new TypeError(
|
256
|
+
throw new TypeError("value is not an symbol");
|
258
257
|
}
|
259
|
-
return value
|
258
|
+
return value;
|
260
259
|
}
|
261
260
|
|
262
261
|
/**
|
@@ -281,9 +280,9 @@ function validateSymbol(value) {
|
|
281
280
|
*/
|
282
281
|
function validateFunction(value) {
|
283
282
|
if (!isFunction(value)) {
|
284
|
-
throw new TypeError(
|
283
|
+
throw new TypeError("value is not a function");
|
285
284
|
}
|
286
|
-
return value
|
285
|
+
return value;
|
287
286
|
}
|
288
287
|
|
289
288
|
/**
|
@@ -308,7 +307,7 @@ function validateFunction(value) {
|
|
308
307
|
*/
|
309
308
|
function validateInteger(value) {
|
310
309
|
if (!isInteger(value)) {
|
311
|
-
throw new TypeError(
|
310
|
+
throw new TypeError("value is not an integer");
|
312
311
|
}
|
313
|
-
return value
|
312
|
+
return value;
|
314
313
|
}
|
package/source/types/version.mjs
CHANGED
@@ -5,11 +5,10 @@
|
|
5
5
|
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
|
6
6
|
*/
|
7
7
|
|
8
|
-
import {Base} from
|
9
|
-
import {instanceSymbol} from
|
10
|
-
|
11
|
-
export {Version, getMonsterVersion}
|
8
|
+
import { Base } from "./base.mjs";
|
9
|
+
import { instanceSymbol } from "../constants.mjs";
|
12
10
|
|
11
|
+
export { Version, getMonsterVersion };
|
13
12
|
|
14
13
|
/**
|
15
14
|
* The version object contains a semantic version number
|
@@ -23,7 +22,6 @@ export {Version, getMonsterVersion}
|
|
23
22
|
* @summary The version object contains a sematic version number
|
24
23
|
*/
|
25
24
|
class Version extends Base {
|
26
|
-
|
27
25
|
/**
|
28
26
|
*
|
29
27
|
* @param major
|
@@ -36,16 +34,15 @@ class Version extends Base {
|
|
36
34
|
constructor(major, minor, patch) {
|
37
35
|
super();
|
38
36
|
|
39
|
-
if (typeof major ===
|
40
|
-
|
41
|
-
let parts = major.toString().split('.');
|
37
|
+
if (typeof major === "string" && minor === undefined && patch === undefined) {
|
38
|
+
let parts = major.toString().split(".");
|
42
39
|
major = parseInt(parts[0] || 0);
|
43
40
|
minor = parseInt(parts[1] || 0);
|
44
41
|
patch = parseInt(parts[2] || 0);
|
45
42
|
}
|
46
43
|
|
47
44
|
if (major === undefined) {
|
48
|
-
throw
|
45
|
+
throw new Error("major version is undefined");
|
49
46
|
}
|
50
47
|
|
51
48
|
if (minor === undefined) {
|
@@ -61,17 +58,16 @@ class Version extends Base {
|
|
61
58
|
this.patch = parseInt(patch);
|
62
59
|
|
63
60
|
if (isNaN(this.major)) {
|
64
|
-
throw
|
61
|
+
throw new Error("major is not a number");
|
65
62
|
}
|
66
63
|
|
67
64
|
if (isNaN(this.minor)) {
|
68
|
-
throw
|
65
|
+
throw new Error("minor is not a number");
|
69
66
|
}
|
70
67
|
|
71
68
|
if (isNaN(this.patch)) {
|
72
|
-
throw
|
69
|
+
throw new Error("patch is not a number");
|
73
70
|
}
|
74
|
-
|
75
71
|
}
|
76
72
|
|
77
73
|
/**
|
@@ -83,13 +79,12 @@ class Version extends Base {
|
|
83
79
|
return Symbol.for("@schukai/monster/types/version");
|
84
80
|
}
|
85
81
|
|
86
|
-
|
87
82
|
/**
|
88
83
|
*
|
89
84
|
* @returns {string}
|
90
85
|
*/
|
91
86
|
toString() {
|
92
|
-
return this.major
|
87
|
+
return `${this.major}.${this.minor}.${this.patch}`;
|
93
88
|
}
|
94
89
|
|
95
90
|
/**
|
@@ -100,13 +95,12 @@ class Version extends Base {
|
|
100
95
|
* @returns {number}
|
101
96
|
*/
|
102
97
|
compareTo(version) {
|
103
|
-
|
104
98
|
if (version instanceof Version) {
|
105
99
|
version = version.toString();
|
106
100
|
}
|
107
101
|
|
108
|
-
if (typeof version !==
|
109
|
-
throw
|
102
|
+
if (typeof version !== "string") {
|
103
|
+
throw new Error("type exception");
|
110
104
|
}
|
111
105
|
|
112
106
|
if (version === this.toString()) {
|
@@ -114,20 +108,19 @@ class Version extends Base {
|
|
114
108
|
}
|
115
109
|
|
116
110
|
let a = [this.major, this.minor, this.patch];
|
117
|
-
let b = version.split(
|
111
|
+
let b = version.split(".");
|
118
112
|
let len = Math.max(a.length, b.length);
|
119
113
|
|
120
114
|
for (let i = 0; i < len; i += 1) {
|
121
|
-
if ((a[i] && !b[i] && parseInt(a[i]) > 0) ||
|
115
|
+
if ((a[i] && !b[i] && parseInt(a[i]) > 0) || parseInt(a[i]) > parseInt(b[i])) {
|
122
116
|
return 1;
|
123
|
-
} else if ((b[i] && !a[i] && parseInt(b[i]) > 0) ||
|
117
|
+
} else if ((b[i] && !a[i] && parseInt(b[i]) > 0) || parseInt(a[i]) < parseInt(b[i])) {
|
124
118
|
return -1;
|
125
119
|
}
|
126
120
|
}
|
127
121
|
|
128
122
|
return 0;
|
129
|
-
}
|
130
|
-
|
123
|
+
}
|
131
124
|
}
|
132
125
|
|
133
126
|
let monsterVersion;
|
@@ -149,8 +142,7 @@ function getMonsterVersion() {
|
|
149
142
|
}
|
150
143
|
|
151
144
|
/** don't touch, replaced by make with package.json version */
|
152
|
-
monsterVersion = new Version(
|
145
|
+
monsterVersion = new Version("3.8.0");
|
153
146
|
|
154
147
|
return monsterVersion;
|
155
|
-
|
156
148
|
}
|