@powfix/core-js 0.22.2 → 0.23.0
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/dist/browser/index.cjs +1 -0
- package/dist/browser/index.d.ts +2 -0
- package/dist/browser/index.js +0 -0
- package/dist/chunk-ETV4XYOV.cjs +18 -0
- package/dist/chunk-PKBMQBKP.js +17 -0
- package/dist/index.browser.cjs +16 -1726
- package/dist/index.browser.d.ts +57 -484
- package/dist/index.browser.js +2 -1644
- package/dist/index.cjs +8 -1727
- package/dist/index.d.ts +52 -1
- package/dist/index.js +1 -1644
- package/dist/index.node.cjs +15 -2123
- package/dist/index.node.d.ts +77 -164
- package/dist/index.node.js +2 -2034
- package/dist/nodejs/constants/TransactionManagerLogLevel.cjs +11 -0
- package/dist/nodejs/constants/TransactionManagerLogLevel.d.ts +9 -0
- package/dist/nodejs/constants/TransactionManagerLogLevel.js +10 -0
- package/dist/nodejs/constants/TransactionManagerTimeoutAction.cjs +8 -0
- package/dist/nodejs/constants/TransactionManagerTimeoutAction.d.ts +6 -0
- package/dist/nodejs/constants/TransactionManagerTimeoutAction.js +7 -0
- package/dist/nodejs/constants/index.cjs +19 -0
- package/dist/nodejs/constants/index.d.ts +2 -0
- package/dist/nodejs/constants/index.js +2 -0
- package/dist/nodejs/index.cjs +55 -0
- package/dist/nodejs/index.d.ts +25 -0
- package/dist/nodejs/index.js +6 -0
- package/dist/nodejs/interfaces/db/index.cjs +10 -0
- package/dist/nodejs/interfaces/db/index.d.ts +10 -0
- package/dist/nodejs/interfaces/db/index.js +1 -0
- package/dist/nodejs/interfaces/db/sequelize/Hook.cjs +1 -0
- package/dist/nodejs/interfaces/db/sequelize/Hook.d.ts +13 -0
- package/dist/nodejs/interfaces/db/sequelize/Hook.js +0 -0
- package/dist/nodejs/interfaces/db/sequelize/HookFn.cjs +1 -0
- package/dist/nodejs/interfaces/db/sequelize/HookFn.d.ts +7 -0
- package/dist/nodejs/interfaces/db/sequelize/HookFn.js +0 -0
- package/dist/nodejs/interfaces/db/sequelize/HookType.cjs +1 -0
- package/dist/nodejs/interfaces/db/sequelize/HookType.d.ts +6 -0
- package/dist/nodejs/interfaces/db/sequelize/HookType.js +0 -0
- package/dist/nodejs/interfaces/db/sequelize/ReloadOption.cjs +1 -0
- package/dist/nodejs/interfaces/db/sequelize/ReloadOption.d.ts +5 -0
- package/dist/nodejs/interfaces/db/sequelize/ReloadOption.js +0 -0
- package/dist/nodejs/interfaces/db/sequelize/TransactionOption.cjs +1 -0
- package/dist/nodejs/interfaces/db/sequelize/TransactionOption.d.ts +7 -0
- package/dist/nodejs/interfaces/db/sequelize/TransactionOption.js +0 -0
- package/dist/nodejs/interfaces/db/sequelize/UpsertOptions.cjs +1 -0
- package/dist/nodejs/interfaces/db/sequelize/UpsertOptions.d.ts +8 -0
- package/dist/nodejs/interfaces/db/sequelize/UpsertOptions.js +0 -0
- package/dist/nodejs/interfaces/db/sequelize/index.cjs +55 -0
- package/dist/nodejs/interfaces/db/sequelize/index.d.ts +10 -0
- package/dist/nodejs/interfaces/db/sequelize/index.js +6 -0
- package/dist/nodejs/interfaces/index.cjs +10 -0
- package/dist/nodejs/interfaces/index.d.ts +10 -0
- package/dist/nodejs/interfaces/index.js +1 -0
- package/dist/nodejs/managers/TransactionManager.cjs +463 -0
- package/dist/nodejs/managers/TransactionManager.d.ts +31 -0
- package/dist/nodejs/managers/TransactionManager.js +457 -0
- package/dist/nodejs/managers/TransactionManager.types.cjs +1 -0
- package/dist/nodejs/managers/TransactionManager.types.d.ts +12 -0
- package/dist/nodejs/managers/TransactionManager.types.js +0 -0
- package/dist/nodejs/managers/index.cjs +19 -0
- package/dist/nodejs/managers/index.d.ts +6 -0
- package/dist/nodejs/managers/index.js +2 -0
- package/dist/nodejs/services/index.cjs +10 -0
- package/dist/nodejs/services/index.d.ts +5 -0
- package/dist/nodejs/services/index.js +1 -0
- package/dist/nodejs/services/redis/RedisClient.cjs +250 -0
- package/dist/nodejs/services/redis/RedisClient.d.ts +24 -0
- package/dist/nodejs/services/redis/RedisClient.js +250 -0
- package/dist/nodejs/services/redis/RedisPublisher.cjs +323 -0
- package/dist/nodejs/services/redis/RedisPublisher.d.ts +17 -0
- package/dist/nodejs/services/redis/RedisPublisher.js +323 -0
- package/dist/nodejs/services/redis/RedisSubscriber.cjs +502 -0
- package/dist/nodejs/services/redis/RedisSubscriber.d.ts +15 -0
- package/dist/nodejs/services/redis/RedisSubscriber.js +502 -0
- package/dist/nodejs/services/redis/index.cjs +28 -0
- package/dist/nodejs/services/redis/index.d.ts +5 -0
- package/dist/nodejs/services/redis/index.js +3 -0
- package/dist/nodejs/types/UpsertResult.cjs +1 -0
- package/dist/nodejs/types/UpsertResult.d.ts +5 -0
- package/dist/nodejs/types/UpsertResult.js +0 -0
- package/dist/nodejs/types/index.cjs +19 -0
- package/dist/nodejs/types/index.d.ts +9 -0
- package/dist/nodejs/types/index.js +2 -0
- package/dist/nodejs/types/mariaDb.cjs +1 -0
- package/dist/nodejs/types/mariaDb.d.ts +15 -0
- package/dist/nodejs/types/mariaDb.js +0 -0
- package/dist/nodejs/utils/HookUtils.cjs +87 -0
- package/dist/nodejs/utils/HookUtils.d.ts +20 -0
- package/dist/nodejs/utils/HookUtils.js +87 -0
- package/dist/nodejs/utils/index.cjs +19 -0
- package/dist/nodejs/utils/index.d.ts +10 -0
- package/dist/nodejs/utils/index.js +2 -0
- package/dist/nodejs/utils/sequelize-utils/SequelizeUtils.cjs +165 -0
- package/dist/nodejs/utils/sequelize-utils/SequelizeUtils.d.ts +12 -0
- package/dist/nodejs/utils/sequelize-utils/SequelizeUtils.js +165 -0
- package/dist/nodejs/utils/sequelize-utils/index.cjs +19 -0
- package/dist/nodejs/utils/sequelize-utils/index.d.ts +3 -0
- package/dist/nodejs/utils/sequelize-utils/index.js +2 -0
- package/dist/nodejs/utils/sequelize-utils/types.cjs +1 -0
- package/dist/nodejs/utils/sequelize-utils/types.d.ts +19 -0
- package/dist/nodejs/utils/sequelize-utils/types.js +0 -0
- package/dist/shared/constants/COORDINATE.cjs +15 -0
- package/dist/shared/constants/COORDINATE.d.ts +9 -0
- package/dist/shared/constants/COORDINATE.js +15 -0
- package/dist/shared/constants/CRUD.cjs +26 -0
- package/dist/shared/constants/CRUD.d.ts +11 -0
- package/dist/shared/constants/CRUD.js +26 -0
- package/dist/shared/constants/DATE.cjs +34 -0
- package/dist/shared/constants/DATE.d.ts +15 -0
- package/dist/shared/constants/DATE.js +34 -0
- package/dist/shared/constants/DISTANCE.cjs +22 -0
- package/dist/shared/constants/DISTANCE.d.ts +15 -0
- package/dist/shared/constants/DISTANCE.js +22 -0
- package/dist/shared/constants/DURATION.cjs +25 -0
- package/dist/shared/constants/DURATION.d.ts +18 -0
- package/dist/shared/constants/DURATION.js +25 -0
- package/dist/shared/constants/NOT_NULL.cjs +4 -0
- package/dist/shared/constants/NOT_NULL.d.ts +3 -0
- package/dist/shared/constants/NOT_NULL.js +3 -0
- package/dist/shared/constants/index.cjs +55 -0
- package/dist/shared/constants/index.d.ts +6 -0
- package/dist/shared/constants/index.js +6 -0
- package/dist/shared/exports/Uint8Array.cjs +9 -0
- package/dist/shared/exports/Uint8Array.d.ts +6 -0
- package/dist/shared/exports/Uint8Array.js +8 -0
- package/dist/shared/exports/atob.cjs +3 -0
- package/dist/shared/exports/atob.d.ts +2 -0
- package/dist/shared/exports/atob.js +2 -0
- package/dist/shared/exports/btoa.cjs +3 -0
- package/dist/shared/exports/btoa.d.ts +2 -0
- package/dist/shared/exports/btoa.js +2 -0
- package/dist/shared/index.cjs +64 -0
- package/dist/shared/index.d.ts +57 -0
- package/dist/shared/index.js +7 -0
- package/dist/shared/interfaces/Coordinate.cjs +1 -0
- package/dist/shared/interfaces/Coordinate.d.ts +10 -0
- package/dist/shared/interfaces/Coordinate.js +0 -0
- package/dist/shared/interfaces/Point2.cjs +1 -0
- package/dist/shared/interfaces/Point2.d.ts +6 -0
- package/dist/shared/interfaces/Point2.js +0 -0
- package/dist/shared/interfaces/Point3.cjs +1 -0
- package/dist/shared/interfaces/Point3.d.ts +7 -0
- package/dist/shared/interfaces/Point3.js +0 -0
- package/dist/shared/interfaces/StorageProvider.cjs +1 -0
- package/dist/shared/interfaces/StorageProvider.d.ts +9 -0
- package/dist/shared/interfaces/StorageProvider.js +0 -0
- package/dist/shared/interfaces/index.cjs +37 -0
- package/dist/shared/interfaces/index.d.ts +4 -0
- package/dist/shared/interfaces/index.js +4 -0
- package/dist/shared/managers/SessionManager.cjs +498 -0
- package/dist/shared/managers/SessionManager.d.ts +18 -0
- package/dist/shared/managers/SessionManager.js +491 -0
- package/dist/shared/managers/SessionManager.type.cjs +1 -0
- package/dist/shared/managers/SessionManager.type.d.ts +12 -0
- package/dist/shared/managers/SessionManager.type.js +0 -0
- package/dist/shared/managers/index.cjs +19 -0
- package/dist/shared/managers/index.d.ts +5 -0
- package/dist/shared/managers/index.js +2 -0
- package/dist/shared/scripts/base64Polyfill.cjs +20 -0
- package/dist/shared/scripts/base64Polyfill.d.ts +3 -0
- package/dist/shared/scripts/base64Polyfill.js +13 -0
- package/dist/shared/scripts/index.cjs +10 -0
- package/dist/shared/scripts/index.d.ts +1 -0
- package/dist/shared/scripts/index.js +1 -0
- package/dist/shared/services/index.cjs +10 -0
- package/dist/shared/services/index.d.ts +3 -0
- package/dist/shared/services/index.js +1 -0
- package/dist/shared/services/time/TimeService.cjs +487 -0
- package/dist/shared/services/time/TimeService.d.ts +34 -0
- package/dist/shared/services/time/TimeService.js +481 -0
- package/dist/shared/services/time/TimeService.type.cjs +1 -0
- package/dist/shared/services/time/TimeService.type.d.ts +23 -0
- package/dist/shared/services/time/TimeService.type.js +0 -0
- package/dist/shared/services/time/index.cjs +19 -0
- package/dist/shared/services/time/index.d.ts +3 -0
- package/dist/shared/services/time/index.js +2 -0
- package/dist/shared/types/IntRage.cjs +1 -0
- package/dist/shared/types/IntRage.d.ts +4 -0
- package/dist/shared/types/IntRage.js +0 -0
- package/dist/shared/types/PartialExcept.cjs +1 -0
- package/dist/shared/types/PartialExcept.d.ts +3 -0
- package/dist/shared/types/PartialExcept.js +0 -0
- package/dist/shared/types/index.cjs +19 -0
- package/dist/shared/types/index.d.ts +2 -0
- package/dist/shared/types/index.js +2 -0
- package/dist/shared/utils/ArrayUtils.cjs +104 -0
- package/dist/shared/utils/ArrayUtils.d.ts +14 -0
- package/dist/shared/utils/ArrayUtils.js +104 -0
- package/dist/shared/utils/AxiosUtils.cjs +113 -0
- package/dist/shared/utils/AxiosUtils.d.ts +8 -0
- package/dist/shared/utils/AxiosUtils.js +113 -0
- package/dist/shared/utils/BooleanUtils.cjs +7 -0
- package/dist/shared/utils/BooleanUtils.d.ts +3 -0
- package/dist/shared/utils/BooleanUtils.js +6 -0
- package/dist/shared/utils/Calc.cjs +62 -0
- package/dist/shared/utils/Calc.d.ts +6 -0
- package/dist/shared/utils/Calc.js +62 -0
- package/dist/shared/utils/CoordinateUtils.cjs +85 -0
- package/dist/shared/utils/CoordinateUtils.d.ts +11 -0
- package/dist/shared/utils/CoordinateUtils.js +85 -0
- package/dist/shared/utils/DateUtils.cjs +656 -0
- package/dist/shared/utils/DateUtils.d.ts +27 -0
- package/dist/shared/utils/DateUtils.js +651 -0
- package/dist/shared/utils/Enum.cjs +142 -0
- package/dist/shared/utils/Enum.d.ts +19 -0
- package/dist/shared/utils/Enum.js +142 -0
- package/dist/shared/utils/Enum.types.cjs +1 -0
- package/dist/shared/utils/Enum.types.d.ts +7 -0
- package/dist/shared/utils/Enum.types.js +0 -0
- package/dist/shared/utils/I18nUtils.cjs +48 -0
- package/dist/shared/utils/I18nUtils.d.ts +7 -0
- package/dist/shared/utils/I18nUtils.js +42 -0
- package/dist/shared/utils/JuminNumberUtils.cjs +71 -0
- package/dist/shared/utils/JuminNumberUtils.d.ts +6 -0
- package/dist/shared/utils/JuminNumberUtils.js +71 -0
- package/dist/shared/utils/NumberUtils.cjs +80 -0
- package/dist/shared/utils/NumberUtils.d.ts +6 -0
- package/dist/shared/utils/NumberUtils.js +80 -0
- package/dist/shared/utils/ObjectIdUtils.cjs +65 -0
- package/dist/shared/utils/ObjectIdUtils.d.ts +6 -0
- package/dist/shared/utils/ObjectIdUtils.js +65 -0
- package/dist/shared/utils/Point3Utils.cjs +39 -0
- package/dist/shared/utils/Point3Utils.d.ts +8 -0
- package/dist/shared/utils/Point3Utils.js +39 -0
- package/dist/shared/utils/RandomUtils.cjs +103 -0
- package/dist/shared/utils/RandomUtils.d.ts +10 -0
- package/dist/shared/utils/RandomUtils.js +103 -0
- package/dist/shared/utils/Sequencer.cjs +476 -0
- package/dist/shared/utils/Sequencer.d.ts +41 -0
- package/dist/shared/utils/Sequencer.js +467 -0
- package/dist/shared/utils/StringUtils.cjs +71 -0
- package/dist/shared/utils/StringUtils.d.ts +7 -0
- package/dist/shared/utils/StringUtils.js +71 -0
- package/dist/shared/utils/Uint8ArrayUtils.cjs +48 -0
- package/dist/shared/utils/Uint8ArrayUtils.d.ts +6 -0
- package/dist/shared/utils/Uint8ArrayUtils.js +48 -0
- package/dist/shared/utils/UuidUtils.cjs +95 -0
- package/dist/shared/utils/UuidUtils.d.ts +16 -0
- package/dist/shared/utils/UuidUtils.js +75 -0
- package/dist/shared/utils/Validator.cjs +135 -0
- package/dist/shared/utils/Validator.d.ts +50 -0
- package/dist/shared/utils/Validator.js +135 -0
- package/dist/shared/utils/global/atob.cjs +12 -0
- package/dist/shared/utils/global/atob.d.ts +5 -0
- package/dist/shared/utils/global/atob.js +5 -0
- package/dist/shared/utils/global/base64.cjs +42 -0
- package/dist/shared/utils/global/base64.d.ts +4 -0
- package/dist/shared/utils/global/base64.js +40 -0
- package/dist/shared/utils/global/between.cjs +6 -0
- package/dist/shared/utils/global/between.d.ts +3 -0
- package/dist/shared/utils/global/between.js +5 -0
- package/dist/shared/utils/global/btoa.cjs +12 -0
- package/dist/shared/utils/global/btoa.d.ts +5 -0
- package/dist/shared/utils/global/btoa.js +5 -0
- package/dist/shared/utils/global/castArray.cjs +8 -0
- package/dist/shared/utils/global/castArray.d.ts +3 -0
- package/dist/shared/utils/global/castArray.js +7 -0
- package/dist/shared/utils/global/circularDistance.cjs +13 -0
- package/dist/shared/utils/global/circularDistance.d.ts +3 -0
- package/dist/shared/utils/global/circularDistance.js +12 -0
- package/dist/shared/utils/global/fallbackIfMatch.cjs +13 -0
- package/dist/shared/utils/global/fallbackIfMatch.d.ts +3 -0
- package/dist/shared/utils/global/fallbackIfMatch.js +12 -0
- package/dist/shared/utils/global/fallbackIfNull.cjs +7 -0
- package/dist/shared/utils/global/fallbackIfNull.d.ts +3 -0
- package/dist/shared/utils/global/fallbackIfNull.js +6 -0
- package/dist/shared/utils/global/fallbackIfNullish.cjs +9 -0
- package/dist/shared/utils/global/fallbackIfNullish.d.ts +3 -0
- package/dist/shared/utils/global/fallbackIfNullish.js +8 -0
- package/dist/shared/utils/global/fallbackIfUndefined.cjs +7 -0
- package/dist/shared/utils/global/fallbackIfUndefined.d.ts +3 -0
- package/dist/shared/utils/global/fallbackIfUndefined.js +6 -0
- package/dist/shared/utils/global/firstNonNullish.cjs +40 -0
- package/dist/shared/utils/global/firstNonNullish.d.ts +3 -0
- package/dist/shared/utils/global/firstNonNullish.js +39 -0
- package/dist/shared/utils/global/flat.cjs +102 -0
- package/dist/shared/utils/global/flat.d.ts +16 -0
- package/dist/shared/utils/global/flat.js +100 -0
- package/dist/shared/utils/global/index.cjs +136 -0
- package/dist/shared/utils/global/index.d.ts +16 -0
- package/dist/shared/utils/global/index.js +15 -0
- package/dist/shared/utils/global/processFirstNonNullish.cjs +40 -0
- package/dist/shared/utils/global/processFirstNonNullish.d.ts +3 -0
- package/dist/shared/utils/global/processFirstNonNullish.js +38 -0
- package/dist/shared/utils/global/pureEnum.cjs +69 -0
- package/dist/shared/utils/global/pureEnum.d.ts +18 -0
- package/dist/shared/utils/global/pureEnum.js +66 -0
- package/dist/shared/utils/global/sleep.cjs +8 -0
- package/dist/shared/utils/global/sleep.d.ts +3 -0
- package/dist/shared/utils/global/sleep.js +7 -0
- package/dist/shared/utils/index.cjs +190 -0
- package/dist/shared/utils/index.d.ts +44 -0
- package/dist/shared/utils/index.js +21 -0
- package/dist/shared/utils/try-catch/TryCatch.cjs +237 -0
- package/dist/shared/utils/try-catch/TryCatch.d.ts +26 -0
- package/dist/shared/utils/try-catch/TryCatch.js +237 -0
- package/dist/shared/utils/try-catch/index.cjs +10 -0
- package/dist/shared/utils/try-catch/index.d.ts +1 -0
- package/dist/shared/utils/try-catch/index.js +1 -0
- package/package.json +6 -7
- package/dist/index.browser.d.cts +0 -484
- package/dist/index.d.cts +0 -6
- package/dist/index.node.d.cts +0 -168
package/dist/index.node.js
CHANGED
|
@@ -1,2034 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
static LATITUDE_MIN_LENGTH = 1;
|
|
4
|
-
static LATITUDE_MAX_LENGTH = 10;
|
|
5
|
-
static LONGITUDE_MIN_LENGTH = 1;
|
|
6
|
-
static LONGITUDE_MAX_LENGTH = 11;
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
// src/shared/constants/CRUD.ts
|
|
10
|
-
var CRUD = /* @__PURE__ */ ((CRUD2) => {
|
|
11
|
-
CRUD2[CRUD2["CREATE"] = 1] = "CREATE";
|
|
12
|
-
CRUD2[CRUD2["READ"] = 2] = "READ";
|
|
13
|
-
CRUD2[CRUD2["UPDATE"] = 3] = "UPDATE";
|
|
14
|
-
CRUD2[CRUD2["DELETE"] = 4] = "DELETE";
|
|
15
|
-
return CRUD2;
|
|
16
|
-
})(CRUD || {});
|
|
17
|
-
((CRUD2) => {
|
|
18
|
-
function toString(crud) {
|
|
19
|
-
switch (crud) {
|
|
20
|
-
case 1 /* CREATE */:
|
|
21
|
-
return "Create";
|
|
22
|
-
case 2 /* READ */:
|
|
23
|
-
return "Read";
|
|
24
|
-
case 3 /* UPDATE */:
|
|
25
|
-
return "Update";
|
|
26
|
-
case 4 /* DELETE */:
|
|
27
|
-
return "Delete";
|
|
28
|
-
default:
|
|
29
|
-
throw new Error("Unknown crud: " + crud);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
CRUD2.toString = toString;
|
|
33
|
-
})(CRUD || (CRUD = {}));
|
|
34
|
-
|
|
35
|
-
// src/shared/constants/DATE.ts
|
|
36
|
-
var DATE = class {
|
|
37
|
-
};
|
|
38
|
-
((DATE2) => {
|
|
39
|
-
let FORMAT;
|
|
40
|
-
((FORMAT2) => {
|
|
41
|
-
FORMAT2[FORMAT2["UNIX"] = 1] = "UNIX";
|
|
42
|
-
FORMAT2[FORMAT2["SECONDS"] = 2] = "SECONDS";
|
|
43
|
-
FORMAT2[FORMAT2["MILLISECONDS"] = 3] = "MILLISECONDS";
|
|
44
|
-
FORMAT2[FORMAT2["ISO_8601"] = 4] = "ISO_8601";
|
|
45
|
-
})(FORMAT = DATE2.FORMAT || (DATE2.FORMAT = {}));
|
|
46
|
-
((FORMAT2) => {
|
|
47
|
-
function toString(format) {
|
|
48
|
-
switch (format) {
|
|
49
|
-
case 1 /* UNIX */:
|
|
50
|
-
return "UNIX";
|
|
51
|
-
case 2 /* SECONDS */:
|
|
52
|
-
return "SECONDS";
|
|
53
|
-
case 3 /* MILLISECONDS */:
|
|
54
|
-
return "MILLISECONDS";
|
|
55
|
-
case 4 /* ISO_8601 */:
|
|
56
|
-
return "ISO_8601";
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
FORMAT2.toString = toString;
|
|
60
|
-
})(FORMAT = DATE2.FORMAT || (DATE2.FORMAT = {}));
|
|
61
|
-
})(DATE || (DATE = {}));
|
|
62
|
-
|
|
63
|
-
// src/shared/constants/DISTANCE.ts
|
|
64
|
-
var DISTANCE = class {
|
|
65
|
-
};
|
|
66
|
-
((DISTANCE2) => {
|
|
67
|
-
let UNIT;
|
|
68
|
-
((UNIT2) => {
|
|
69
|
-
UNIT2["FEET"] = "FEET";
|
|
70
|
-
UNIT2["KILOMETERS"] = "KILOMETERS";
|
|
71
|
-
UNIT2["MILLIMETERS"] = "MILLIMETERS";
|
|
72
|
-
UNIT2["CENTIMETERS"] = "CENTIMETERS";
|
|
73
|
-
UNIT2["METERS"] = "METERS";
|
|
74
|
-
UNIT2["MILES"] = "MILES";
|
|
75
|
-
UNIT2["YARDS"] = "YARDS";
|
|
76
|
-
})(UNIT = DISTANCE2.UNIT || (DISTANCE2.UNIT = {}));
|
|
77
|
-
})(DISTANCE || (DISTANCE = {}));
|
|
78
|
-
|
|
79
|
-
// src/shared/constants/DURATION.ts
|
|
80
|
-
var DURATION = class {
|
|
81
|
-
};
|
|
82
|
-
((DURATION2) => {
|
|
83
|
-
let UNIT;
|
|
84
|
-
((UNIT2) => {
|
|
85
|
-
UNIT2["NANOSECONDS"] = "NANOSECONDS";
|
|
86
|
-
UNIT2["MICROSECONDS"] = "MICROSECONDS";
|
|
87
|
-
UNIT2["MILLISECONDS"] = "MILLISECONDS";
|
|
88
|
-
UNIT2["SECONDS"] = "SECONDS";
|
|
89
|
-
UNIT2["MINUTES"] = "MINUTES";
|
|
90
|
-
UNIT2["HOURS"] = "HOURS";
|
|
91
|
-
UNIT2["DAYS"] = "DAYS";
|
|
92
|
-
UNIT2["YEARS"] = "YEARS";
|
|
93
|
-
UNIT2["DECADES"] = "DECADES";
|
|
94
|
-
UNIT2["CENTURIES"] = "CENTURIES";
|
|
95
|
-
})(UNIT = DURATION2.UNIT || (DURATION2.UNIT = {}));
|
|
96
|
-
})(DURATION || (DURATION = {}));
|
|
97
|
-
|
|
98
|
-
// src/shared/constants/NOT_NULL.ts
|
|
99
|
-
var NOT_NULL = Symbol("!null");
|
|
100
|
-
|
|
101
|
-
// src/shared/managers/SessionManager.ts
|
|
102
|
-
import { jwtDecode } from "jwt-decode";
|
|
103
|
-
import moment from "moment";
|
|
104
|
-
import EventEmitter from "eventemitter3";
|
|
105
|
-
var SessionManager = class _SessionManager extends EventEmitter {
|
|
106
|
-
static DEFAULT_AUTHORIZATION_STORAGE_KEY = "AUTHORIZATION";
|
|
107
|
-
// Service parameters
|
|
108
|
-
api;
|
|
109
|
-
storageProvider;
|
|
110
|
-
constructor(options) {
|
|
111
|
-
super();
|
|
112
|
-
this.api = options.api;
|
|
113
|
-
this.storageProvider = options.storageProvider;
|
|
114
|
-
console.log("SessionManager initialized", Date.now(), options.api);
|
|
115
|
-
}
|
|
116
|
-
get key() {
|
|
117
|
-
try {
|
|
118
|
-
if (this.storageProvider.key) {
|
|
119
|
-
return this.storageProvider.key();
|
|
120
|
-
}
|
|
121
|
-
} catch (e) {
|
|
122
|
-
console.error(e);
|
|
123
|
-
}
|
|
124
|
-
return _SessionManager.DEFAULT_AUTHORIZATION_STORAGE_KEY;
|
|
125
|
-
}
|
|
126
|
-
async hasAuthorization() {
|
|
127
|
-
return !!await this.getAuthorization();
|
|
128
|
-
}
|
|
129
|
-
async getAuthorization() {
|
|
130
|
-
return this.storageProvider.get(this.key);
|
|
131
|
-
}
|
|
132
|
-
async setAuthorization(authorization) {
|
|
133
|
-
if (authorization === null) {
|
|
134
|
-
await this.removeAuthorization();
|
|
135
|
-
return null;
|
|
136
|
-
}
|
|
137
|
-
let nextAuthorization = await (async () => {
|
|
138
|
-
if (authorization === void 0) {
|
|
139
|
-
return await this.getAuthorization();
|
|
140
|
-
}
|
|
141
|
-
return authorization;
|
|
142
|
-
})();
|
|
143
|
-
if (!nextAuthorization) {
|
|
144
|
-
console.log("nextAuthorization is null or undefined");
|
|
145
|
-
return null;
|
|
146
|
-
}
|
|
147
|
-
try {
|
|
148
|
-
nextAuthorization = nextAuthorization.replace(/^Bearer\s+/, "");
|
|
149
|
-
const decoded = jwtDecode(nextAuthorization);
|
|
150
|
-
if (!decoded) {
|
|
151
|
-
console.warn("JWT decode failed");
|
|
152
|
-
return null;
|
|
153
|
-
}
|
|
154
|
-
console.log("Session:JWT decoded");
|
|
155
|
-
(() => {
|
|
156
|
-
console.log(" - User", decoded.uuid);
|
|
157
|
-
console.log(" - IAT", ...(() => {
|
|
158
|
-
if (!decoded.iat) {
|
|
159
|
-
return [decoded.iat];
|
|
160
|
-
}
|
|
161
|
-
const iat = moment.unix(decoded.iat);
|
|
162
|
-
if (!iat.isValid()) {
|
|
163
|
-
return [decoded.iat];
|
|
164
|
-
}
|
|
165
|
-
return [decoded.iat, iat.format(), iat.diff(Date.now(), "days"), "days left"];
|
|
166
|
-
})());
|
|
167
|
-
console.log(" - NBF", ...(() => {
|
|
168
|
-
if (!decoded.nbf) {
|
|
169
|
-
return [decoded.nbf];
|
|
170
|
-
}
|
|
171
|
-
const nbf = moment.unix(decoded.nbf);
|
|
172
|
-
if (!nbf.isValid()) {
|
|
173
|
-
return [decoded.nbf];
|
|
174
|
-
}
|
|
175
|
-
return [decoded.nbf, nbf.format(), nbf.diff(Date.now(), "days"), "days left"];
|
|
176
|
-
})());
|
|
177
|
-
console.log(" - EXP", ...(() => {
|
|
178
|
-
if (!decoded.exp) {
|
|
179
|
-
return [decoded.exp];
|
|
180
|
-
}
|
|
181
|
-
const exp = moment.unix(decoded.exp);
|
|
182
|
-
if (!exp.isValid()) {
|
|
183
|
-
return [decoded.exp];
|
|
184
|
-
}
|
|
185
|
-
return [decoded.exp, exp.format(), exp.diff(Date.now(), "days"), "days left"];
|
|
186
|
-
})());
|
|
187
|
-
})();
|
|
188
|
-
await this.storageProvider.set(this.key, nextAuthorization);
|
|
189
|
-
this.api.defaults.headers.common.Authorization = `Bearer ${nextAuthorization}`;
|
|
190
|
-
this.emit("AUTHORIZATION_CHANGED", nextAuthorization);
|
|
191
|
-
return nextAuthorization;
|
|
192
|
-
} catch (e) {
|
|
193
|
-
console.error(e);
|
|
194
|
-
}
|
|
195
|
-
return null;
|
|
196
|
-
}
|
|
197
|
-
async removeAuthorization() {
|
|
198
|
-
delete this.api.defaults.headers.common.Authorization;
|
|
199
|
-
await this.storageProvider.remove(this.key);
|
|
200
|
-
this.emit("AUTHORIZATION_CHANGED", null);
|
|
201
|
-
}
|
|
202
|
-
};
|
|
203
|
-
|
|
204
|
-
// src/shared/scripts/base64Polyfill.ts
|
|
205
|
-
import base64 from "base-64";
|
|
206
|
-
var { decode, encode } = base64;
|
|
207
|
-
var base64Polyfill = () => {
|
|
208
|
-
if (!global.btoa) {
|
|
209
|
-
global.btoa = encode;
|
|
210
|
-
}
|
|
211
|
-
if (!global.atob) {
|
|
212
|
-
global.atob = decode;
|
|
213
|
-
}
|
|
214
|
-
console.log("base64-polyfill initialized", Date.now());
|
|
215
|
-
};
|
|
216
|
-
|
|
217
|
-
// src/shared/services/time/TimeService.ts
|
|
218
|
-
import EventEmitter2 from "eventemitter3";
|
|
219
|
-
var LOG_TAG = "TimeService";
|
|
220
|
-
var TimeService = class _TimeService extends EventEmitter2 {
|
|
221
|
-
// Internal
|
|
222
|
-
syncHandler;
|
|
223
|
-
offset;
|
|
224
|
-
syncedAt;
|
|
225
|
-
// Members
|
|
226
|
-
syncInterval;
|
|
227
|
-
clientTimeProvider;
|
|
228
|
-
serverTimeProvider;
|
|
229
|
-
static calculateNTPResultOffset(ntpResult) {
|
|
230
|
-
const { t1, t2, t3, t4 } = ntpResult;
|
|
231
|
-
return (t2 - t1 + (t3 - t4)) / 2;
|
|
232
|
-
}
|
|
233
|
-
constructor(options) {
|
|
234
|
-
super();
|
|
235
|
-
this.syncInterval = options?.syncInterval;
|
|
236
|
-
this.clientTimeProvider = options?.clientTimeProvider;
|
|
237
|
-
this.serverTimeProvider = options?.serverTimeProvider;
|
|
238
|
-
this.sync = this.sync.bind(this);
|
|
239
|
-
this.fetchServerNTPResult = this.fetchServerNTPResult.bind(this);
|
|
240
|
-
}
|
|
241
|
-
getOffset(defaultValue) {
|
|
242
|
-
if (this.offset !== void 0) {
|
|
243
|
-
return this.offset;
|
|
244
|
-
}
|
|
245
|
-
if (defaultValue !== void 0) {
|
|
246
|
-
return defaultValue;
|
|
247
|
-
}
|
|
248
|
-
return void 0;
|
|
249
|
-
}
|
|
250
|
-
setOffset(offset) {
|
|
251
|
-
return this.offset = offset;
|
|
252
|
-
}
|
|
253
|
-
getSyncedAt() {
|
|
254
|
-
return this.syncedAt;
|
|
255
|
-
}
|
|
256
|
-
setSyncedAt(syncedAt) {
|
|
257
|
-
return this.syncedAt = syncedAt;
|
|
258
|
-
}
|
|
259
|
-
getSyncInterval() {
|
|
260
|
-
return this.syncInterval;
|
|
261
|
-
}
|
|
262
|
-
setSyncInterval(interval) {
|
|
263
|
-
this.syncInterval = interval;
|
|
264
|
-
this.emit("SYNC_INTERVAL_CHANGED", interval);
|
|
265
|
-
if (this.syncHandler !== void 0) {
|
|
266
|
-
this.stopSync();
|
|
267
|
-
this.startSync();
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
getClientTimeProvider() {
|
|
271
|
-
return this.clientTimeProvider;
|
|
272
|
-
}
|
|
273
|
-
setClientTimeProvider(provider) {
|
|
274
|
-
this.clientTimeProvider = provider ?? void 0;
|
|
275
|
-
}
|
|
276
|
-
getClientTime() {
|
|
277
|
-
return this.getClientTimeProvider()?.();
|
|
278
|
-
}
|
|
279
|
-
getServerTimeProvider() {
|
|
280
|
-
return this.serverTimeProvider;
|
|
281
|
-
}
|
|
282
|
-
setServerTimeProvider(provider) {
|
|
283
|
-
this.serverTimeProvider = provider ?? void 0;
|
|
284
|
-
}
|
|
285
|
-
getServerTime() {
|
|
286
|
-
const offset = this.getOffset();
|
|
287
|
-
if (offset == null) {
|
|
288
|
-
return offset;
|
|
289
|
-
}
|
|
290
|
-
const clientTime = this.getClientTime();
|
|
291
|
-
if (clientTime == null) {
|
|
292
|
-
return clientTime;
|
|
293
|
-
}
|
|
294
|
-
return clientTime + offset;
|
|
295
|
-
}
|
|
296
|
-
getTime() {
|
|
297
|
-
return this.getServerTime() ?? this.getClientTime() ?? Date.now();
|
|
298
|
-
}
|
|
299
|
-
async fetchServerNTPResult(t1) {
|
|
300
|
-
try {
|
|
301
|
-
const provider = this.getServerTimeProvider();
|
|
302
|
-
if (typeof provider === "function") {
|
|
303
|
-
return await provider(t1);
|
|
304
|
-
}
|
|
305
|
-
} catch (e) {
|
|
306
|
-
console.error(e);
|
|
307
|
-
}
|
|
308
|
-
return null;
|
|
309
|
-
}
|
|
310
|
-
async sync() {
|
|
311
|
-
try {
|
|
312
|
-
const requestedAt = Date.now();
|
|
313
|
-
const serverNtpResult = await this.fetchServerNTPResult(requestedAt);
|
|
314
|
-
if (serverNtpResult === null) {
|
|
315
|
-
console.warn(LOG_TAG, "Failed to get server time");
|
|
316
|
-
return null;
|
|
317
|
-
}
|
|
318
|
-
const { t2 } = serverNtpResult;
|
|
319
|
-
if (isNaN(Number(t2))) {
|
|
320
|
-
console.error(LOG_TAG, "invalid server time(t2), not a number", t2);
|
|
321
|
-
return null;
|
|
322
|
-
}
|
|
323
|
-
const { t3 } = serverNtpResult;
|
|
324
|
-
if (isNaN(Number(t3))) {
|
|
325
|
-
console.error(LOG_TAG, "invalid server time(t2), not a number", t2);
|
|
326
|
-
return null;
|
|
327
|
-
}
|
|
328
|
-
const receivedAt = Date.now();
|
|
329
|
-
const ntpResult = {
|
|
330
|
-
t1: requestedAt,
|
|
331
|
-
t2,
|
|
332
|
-
t3,
|
|
333
|
-
t4: receivedAt
|
|
334
|
-
};
|
|
335
|
-
const offset = _TimeService.calculateNTPResultOffset(ntpResult);
|
|
336
|
-
this.setOffset(offset);
|
|
337
|
-
const syncedAt = Date.now();
|
|
338
|
-
this.setSyncedAt(syncedAt);
|
|
339
|
-
this.emit("SYNCED", offset, syncedAt);
|
|
340
|
-
} catch (e) {
|
|
341
|
-
console.error(e);
|
|
342
|
-
}
|
|
343
|
-
return null;
|
|
344
|
-
}
|
|
345
|
-
startSync() {
|
|
346
|
-
if (this.syncHandler != null) {
|
|
347
|
-
console.warn("sync is already started");
|
|
348
|
-
return;
|
|
349
|
-
}
|
|
350
|
-
const syncInterval = this.getSyncInterval();
|
|
351
|
-
if (syncInterval == null || syncInterval <= 0) {
|
|
352
|
-
console.warn("sync is not started", "syncInterval", syncInterval);
|
|
353
|
-
return;
|
|
354
|
-
}
|
|
355
|
-
this.syncHandler = setInterval(this.sync.bind(this), syncInterval);
|
|
356
|
-
}
|
|
357
|
-
stopSync() {
|
|
358
|
-
if (this.syncHandler != null) {
|
|
359
|
-
clearInterval(this.syncHandler);
|
|
360
|
-
this.syncHandler = void 0;
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
};
|
|
364
|
-
|
|
365
|
-
// src/shared/utils/global/atob.ts
|
|
366
|
-
import base642 from "base-64";
|
|
367
|
-
var { decode: decode2 } = base642;
|
|
368
|
-
var atob = decode2;
|
|
369
|
-
|
|
370
|
-
// src/shared/utils/global/btoa.ts
|
|
371
|
-
import base643 from "base-64";
|
|
372
|
-
var { decode: decode3, encode: encode2 } = base643;
|
|
373
|
-
var btoa = encode2;
|
|
374
|
-
|
|
375
|
-
// src/shared/utils/global/base64.ts
|
|
376
|
-
function encodeBase64(str) {
|
|
377
|
-
const encoder = new TextEncoder();
|
|
378
|
-
const bytes = encoder.encode(str);
|
|
379
|
-
let binary = "";
|
|
380
|
-
for (const byte of bytes) {
|
|
381
|
-
binary += String.fromCharCode(byte);
|
|
382
|
-
}
|
|
383
|
-
return btoa(binary);
|
|
384
|
-
}
|
|
385
|
-
function decodeBase64(base644) {
|
|
386
|
-
const binary = atob(base644);
|
|
387
|
-
const binaryLength = binary.length;
|
|
388
|
-
const bytes = new Uint8Array(binaryLength);
|
|
389
|
-
for (let i = 0; i < binaryLength; ++i) {
|
|
390
|
-
bytes[i] = binary.charCodeAt(i);
|
|
391
|
-
}
|
|
392
|
-
const decoder = new TextDecoder("utf-8");
|
|
393
|
-
return decoder.decode(bytes);
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
// src/shared/utils/global/between.ts
|
|
397
|
-
var between = (value, from, to) => {
|
|
398
|
-
return value >= from && value <= to;
|
|
399
|
-
};
|
|
400
|
-
|
|
401
|
-
// src/shared/utils/global/castArray.ts
|
|
402
|
-
function castArray(value) {
|
|
403
|
-
return Array.isArray(value) ? value : [value];
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
// src/shared/utils/global/circularDistance.ts
|
|
407
|
-
function circularDistance(value, target, min, max) {
|
|
408
|
-
const range = max - min;
|
|
409
|
-
const from = value - min;
|
|
410
|
-
const to = target - min;
|
|
411
|
-
if (to >= from) {
|
|
412
|
-
return to - from;
|
|
413
|
-
} else {
|
|
414
|
-
return range - from + to;
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
// src/shared/utils/global/sleep.ts
|
|
419
|
-
var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
420
|
-
|
|
421
|
-
// src/shared/utils/global/fallbackIfMatch.ts
|
|
422
|
-
function fallbackIfMatch(value, condition, fallback) {
|
|
423
|
-
if (typeof value === typeof condition && value === condition) {
|
|
424
|
-
return fallback;
|
|
425
|
-
}
|
|
426
|
-
return value;
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
// src/shared/utils/global/fallbackIfNull.ts
|
|
430
|
-
function fallbackIfNull(value, fallback) {
|
|
431
|
-
return fallbackIfMatch(value, null, fallback);
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
// src/shared/utils/global/fallbackIfNullish.ts
|
|
435
|
-
function fallbackIfNullish(value, fallback) {
|
|
436
|
-
if (value == null) {
|
|
437
|
-
return fallback;
|
|
438
|
-
}
|
|
439
|
-
return value;
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
// src/shared/utils/global/fallbackIfUndefined.ts
|
|
443
|
-
function fallbackIfUndefined(value, fallback) {
|
|
444
|
-
return fallbackIfMatch(value, void 0, fallback);
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
// src/shared/utils/global/firstNonNullish.ts
|
|
448
|
-
function firstNonNullish(...args) {
|
|
449
|
-
if (args == null || !Array.isArray(args) || args.length === 0) {
|
|
450
|
-
return void 0;
|
|
451
|
-
}
|
|
452
|
-
if (args[0] != null) {
|
|
453
|
-
return args[0];
|
|
454
|
-
}
|
|
455
|
-
return firstNonNullish(...args.slice(1));
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
// src/shared/utils/global/flat.ts
|
|
459
|
-
function isBuffer(obj) {
|
|
460
|
-
return !!(obj && obj.constructor && typeof obj.constructor.isBuffer === "function" && obj.constructor.isBuffer(obj));
|
|
461
|
-
}
|
|
462
|
-
function keyIdentity(key) {
|
|
463
|
-
return key;
|
|
464
|
-
}
|
|
465
|
-
function flatten(target, opts = {}) {
|
|
466
|
-
const delimiter = opts.delimiter || ".";
|
|
467
|
-
const maxDepth = opts.maxDepth;
|
|
468
|
-
const transformKey = opts.transformKey || keyIdentity;
|
|
469
|
-
const output = {};
|
|
470
|
-
function step(object, prev, currentDepth = 1) {
|
|
471
|
-
Object.keys(object).forEach((key) => {
|
|
472
|
-
const value = object[key];
|
|
473
|
-
const isarray = opts.safe && Array.isArray(value);
|
|
474
|
-
const type = Object.prototype.toString.call(value);
|
|
475
|
-
const isbuffer = isBuffer(value);
|
|
476
|
-
const isobject = type === "[object Object]" || type === "[object Array]";
|
|
477
|
-
const newKey = prev ? `${prev}${delimiter}${transformKey(key)}` : transformKey(key);
|
|
478
|
-
if (!isarray && !isbuffer && isobject && Object.keys(value).length && (!maxDepth || currentDepth < maxDepth)) {
|
|
479
|
-
return step(value, newKey, currentDepth + 1);
|
|
480
|
-
}
|
|
481
|
-
output[newKey] = value;
|
|
482
|
-
});
|
|
483
|
-
}
|
|
484
|
-
step(target);
|
|
485
|
-
return output;
|
|
486
|
-
}
|
|
487
|
-
function unflatten(target, opts = {}) {
|
|
488
|
-
const delimiter = opts.delimiter || ".";
|
|
489
|
-
const overwrite = opts.overwrite || false;
|
|
490
|
-
const transformKey = opts.transformKey || keyIdentity;
|
|
491
|
-
const result = {};
|
|
492
|
-
if (isBuffer(target) || Object.prototype.toString.call(target) !== "[object Object]") {
|
|
493
|
-
return target;
|
|
494
|
-
}
|
|
495
|
-
function getkey(key) {
|
|
496
|
-
const parsedKey = Number(key);
|
|
497
|
-
return isNaN(parsedKey) || key.indexOf(".") !== -1 || opts.object ? key : parsedKey;
|
|
498
|
-
}
|
|
499
|
-
function addKeys(keyPrefix, recipient, target3) {
|
|
500
|
-
return Object.keys(target3).reduce((res, key) => {
|
|
501
|
-
res[`${keyPrefix}${delimiter}${key}`] = target3[key];
|
|
502
|
-
return res;
|
|
503
|
-
}, recipient);
|
|
504
|
-
}
|
|
505
|
-
function isEmpty(val) {
|
|
506
|
-
const type = Object.prototype.toString.call(val);
|
|
507
|
-
const isArray = type === "[object Array]";
|
|
508
|
-
const isObject = type === "[object Object]";
|
|
509
|
-
if (!val) {
|
|
510
|
-
return true;
|
|
511
|
-
} else if (isArray) {
|
|
512
|
-
return !val.length;
|
|
513
|
-
} else if (isObject) {
|
|
514
|
-
return !Object.keys(val).length;
|
|
515
|
-
}
|
|
516
|
-
return false;
|
|
517
|
-
}
|
|
518
|
-
const target2 = Object.keys(target).reduce((res, key) => {
|
|
519
|
-
const value = target[key];
|
|
520
|
-
const type = Object.prototype.toString.call(value);
|
|
521
|
-
const isObject = type === "[object Object]" || type === "[object Array]";
|
|
522
|
-
if (!isObject || isEmpty(value)) {
|
|
523
|
-
res[key] = value;
|
|
524
|
-
return res;
|
|
525
|
-
} else {
|
|
526
|
-
return addKeys(key, res, flatten(value, opts));
|
|
527
|
-
}
|
|
528
|
-
}, {});
|
|
529
|
-
Object.keys(target2).forEach((key) => {
|
|
530
|
-
const split = key.split(delimiter).map(transformKey);
|
|
531
|
-
let key1 = getkey(split.shift());
|
|
532
|
-
let key2 = getkey(split[0]);
|
|
533
|
-
let recipient = result;
|
|
534
|
-
while (key2 !== void 0) {
|
|
535
|
-
if (key1 === "__proto__") return;
|
|
536
|
-
const type = Object.prototype.toString.call(recipient[key1]);
|
|
537
|
-
const isobject = type === "[object Object]" || type === "[object Array]";
|
|
538
|
-
if (!overwrite && !isobject && typeof recipient[key1] !== "undefined") {
|
|
539
|
-
return;
|
|
540
|
-
}
|
|
541
|
-
if (overwrite && !isobject || !overwrite && recipient[key1] == null) {
|
|
542
|
-
recipient[key1] = typeof key2 === "number" && !opts.object ? [] : {};
|
|
543
|
-
}
|
|
544
|
-
recipient = recipient[key1];
|
|
545
|
-
if (split.length > 0) {
|
|
546
|
-
key1 = getkey(split.shift());
|
|
547
|
-
key2 = getkey(split[0]);
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
recipient[key1] = unflatten(target2[key], opts);
|
|
551
|
-
});
|
|
552
|
-
return result;
|
|
553
|
-
}
|
|
554
|
-
|
|
555
|
-
// src/shared/utils/global/processFirstNonNullish.ts
|
|
556
|
-
function processFirstNonNullish(processor, ...args) {
|
|
557
|
-
const fallback = firstNonNullish(...args);
|
|
558
|
-
if (fallback == null) {
|
|
559
|
-
return void 0;
|
|
560
|
-
}
|
|
561
|
-
return processor(fallback);
|
|
562
|
-
}
|
|
563
|
-
|
|
564
|
-
// src/shared/utils/global/pureEnum.ts
|
|
565
|
-
function pureEnum(e) {
|
|
566
|
-
return Object.entries(e).filter(([key, value]) => !/^-?\d+$/g.test(key) && typeof value !== "function");
|
|
567
|
-
}
|
|
568
|
-
function pureEnumKeys(e) {
|
|
569
|
-
return pureEnum(e).map(([key]) => key);
|
|
570
|
-
}
|
|
571
|
-
function pureEnumValues(e) {
|
|
572
|
-
return pureEnum(e).map(([, value]) => value);
|
|
573
|
-
}
|
|
574
|
-
|
|
575
|
-
// src/shared/utils/ArrayUtils.ts
|
|
576
|
-
var ArrayUtils = class {
|
|
577
|
-
static castArray(value) {
|
|
578
|
-
return castArray(value);
|
|
579
|
-
}
|
|
580
|
-
/**
|
|
581
|
-
* 객체를 요소로 가지는 배열에서 가장 큰 값(Property)를 가지는 객체를 반환한다
|
|
582
|
-
* @param e 객체 배열
|
|
583
|
-
* @param key 값을 비교할 Property 키
|
|
584
|
-
*/
|
|
585
|
-
static getGreatestObject(e, key) {
|
|
586
|
-
return e.reduce((prev, current) => prev[key] > current[key] ? prev : current);
|
|
587
|
-
}
|
|
588
|
-
static removeDuplicate(arr) {
|
|
589
|
-
return [...new Set(arr)];
|
|
590
|
-
}
|
|
591
|
-
static removeObjectDuplicate(arr, key) {
|
|
592
|
-
return arr.filter((v, i, self) => i === self.findIndex((e) => e[key] === v[key]));
|
|
593
|
-
}
|
|
594
|
-
static allValuesEqual(...values) {
|
|
595
|
-
if (values.length === 0) {
|
|
596
|
-
return true;
|
|
597
|
-
}
|
|
598
|
-
return values.every((value) => value === values[0]);
|
|
599
|
-
}
|
|
600
|
-
};
|
|
601
|
-
|
|
602
|
-
// src/shared/utils/AxiosUtils.ts
|
|
603
|
-
var AxiosUtils = class {
|
|
604
|
-
static headerValue2String(value) {
|
|
605
|
-
if (value === void 0) {
|
|
606
|
-
return null;
|
|
607
|
-
}
|
|
608
|
-
if (value === null || typeof value === "string") {
|
|
609
|
-
return value;
|
|
610
|
-
}
|
|
611
|
-
if (Array.isArray(value)) {
|
|
612
|
-
if (value.length > 0) {
|
|
613
|
-
for (const e of value) {
|
|
614
|
-
if (typeof e === "string") {
|
|
615
|
-
return e;
|
|
616
|
-
}
|
|
617
|
-
}
|
|
618
|
-
return null;
|
|
619
|
-
} else {
|
|
620
|
-
return null;
|
|
621
|
-
}
|
|
622
|
-
}
|
|
623
|
-
return String(value);
|
|
624
|
-
}
|
|
625
|
-
static headerValue2Number(value) {
|
|
626
|
-
if (value === void 0) {
|
|
627
|
-
return null;
|
|
628
|
-
}
|
|
629
|
-
if (value === null || typeof value === "number") {
|
|
630
|
-
return value;
|
|
631
|
-
}
|
|
632
|
-
if (Array.isArray(value)) {
|
|
633
|
-
if (value.length > 0) {
|
|
634
|
-
for (const e of value) {
|
|
635
|
-
if (typeof e === "number") {
|
|
636
|
-
return e;
|
|
637
|
-
}
|
|
638
|
-
}
|
|
639
|
-
return null;
|
|
640
|
-
} else {
|
|
641
|
-
return null;
|
|
642
|
-
}
|
|
643
|
-
}
|
|
644
|
-
const result = Number(value);
|
|
645
|
-
return isNaN(result) ? null : result;
|
|
646
|
-
}
|
|
647
|
-
};
|
|
648
|
-
|
|
649
|
-
// src/shared/utils/StringUtils.ts
|
|
650
|
-
var StringUtils = class {
|
|
651
|
-
static numberWithCommas(x) {
|
|
652
|
-
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
653
|
-
}
|
|
654
|
-
static getByte(s) {
|
|
655
|
-
const getByteLength = (decimal) => {
|
|
656
|
-
const LINE_FEED = 10;
|
|
657
|
-
return decimal >> 7 || LINE_FEED === decimal ? 2 : 1;
|
|
658
|
-
};
|
|
659
|
-
return s.split("").map((s2) => s2.charCodeAt(0)).reduce((prev, unicodeDecimalValue) => prev + getByteLength(unicodeDecimalValue), 0);
|
|
660
|
-
}
|
|
661
|
-
static levenshteinDistance = (str1 = "", str2 = "") => {
|
|
662
|
-
const track = Array(str2.length + 1).fill(null).map(() => Array(str1.length + 1).fill(null));
|
|
663
|
-
for (let i = 0; i <= str1.length; i += 1) {
|
|
664
|
-
track[0][i] = i;
|
|
665
|
-
}
|
|
666
|
-
for (let j = 0; j <= str2.length; j += 1) {
|
|
667
|
-
track[j][0] = j;
|
|
668
|
-
}
|
|
669
|
-
for (let j = 1; j <= str2.length; j += 1) {
|
|
670
|
-
for (let i = 1; i <= str1.length; i += 1) {
|
|
671
|
-
const indicator = str1[i - 1] === str2[j - 1] ? 0 : 1;
|
|
672
|
-
track[j][i] = Math.min(
|
|
673
|
-
track[j][i - 1] + 1,
|
|
674
|
-
// deletion
|
|
675
|
-
track[j - 1][i] + 1,
|
|
676
|
-
// insertion
|
|
677
|
-
track[j - 1][i - 1] + indicator
|
|
678
|
-
// substitution
|
|
679
|
-
);
|
|
680
|
-
}
|
|
681
|
-
}
|
|
682
|
-
return track[str2.length][str1.length];
|
|
683
|
-
};
|
|
684
|
-
};
|
|
685
|
-
|
|
686
|
-
// src/shared/utils/Uint8ArrayUtils.ts
|
|
687
|
-
var Uint8ArrayUtils = class {
|
|
688
|
-
static fromHex(hex) {
|
|
689
|
-
return Uint8Array.from(hex.match(/.{1,2}/g)?.map((byte) => parseInt(byte, 16)) ?? []);
|
|
690
|
-
}
|
|
691
|
-
static toHex(bytes) {
|
|
692
|
-
return bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, "0"), "");
|
|
693
|
-
}
|
|
694
|
-
};
|
|
695
|
-
|
|
696
|
-
// src/shared/utils/UuidUtils.ts
|
|
697
|
-
import * as uuid from "uuid";
|
|
698
|
-
var UuidUtils = class _UuidUtils {
|
|
699
|
-
static v4() {
|
|
700
|
-
return uuid.v4();
|
|
701
|
-
}
|
|
702
|
-
static format(uuid2) {
|
|
703
|
-
if (uuid2.length === 32) {
|
|
704
|
-
return `${uuid2.substring(0, 8)}-${uuid2.substring(8, 12)}-${uuid2.substring(12, 16)}-${uuid2.substring(16, 20)}-${uuid2.substring(20, 32)}`.toLowerCase();
|
|
705
|
-
} else if (uuid2.length === 36) {
|
|
706
|
-
return uuid2.toLowerCase();
|
|
707
|
-
} else {
|
|
708
|
-
console.warn("Unexpected uuid length", uuid2);
|
|
709
|
-
return uuid2;
|
|
710
|
-
}
|
|
711
|
-
}
|
|
712
|
-
static toString(binary) {
|
|
713
|
-
if (!binary) return null;
|
|
714
|
-
return _UuidUtils.format(Uint8ArrayUtils.toHex(binary));
|
|
715
|
-
}
|
|
716
|
-
static toBuffer(uuid2) {
|
|
717
|
-
if (!uuid2) {
|
|
718
|
-
return null;
|
|
719
|
-
}
|
|
720
|
-
return Buffer.from(uuid2.replace(/-/g, ""), "hex");
|
|
721
|
-
}
|
|
722
|
-
static isValidUUID(uuid2) {
|
|
723
|
-
if (!uuid2) return false;
|
|
724
|
-
if (typeof uuid2 !== "string") return false;
|
|
725
|
-
return RegExp(/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/i).test(uuid2);
|
|
726
|
-
}
|
|
727
|
-
};
|
|
728
|
-
|
|
729
|
-
// src/shared/utils/BooleanUtils.ts
|
|
730
|
-
function parseBoolean(value, defaultValue) {
|
|
731
|
-
if (value === void 0 || value === null) return defaultValue;
|
|
732
|
-
return value === "true" || value === true || (value === 1 || value === "1");
|
|
733
|
-
}
|
|
734
|
-
|
|
735
|
-
// src/shared/utils/Calc.ts
|
|
736
|
-
var Calc = class {
|
|
737
|
-
static average(...values) {
|
|
738
|
-
const length = values.length;
|
|
739
|
-
if (length === 0) {
|
|
740
|
-
return NaN;
|
|
741
|
-
}
|
|
742
|
-
let sum = 0;
|
|
743
|
-
for (let i = 0; i < length; ++i) {
|
|
744
|
-
sum += values[i];
|
|
745
|
-
}
|
|
746
|
-
return sum / length;
|
|
747
|
-
}
|
|
748
|
-
static median(...values) {
|
|
749
|
-
const len = values.length;
|
|
750
|
-
if (len === 0) return NaN;
|
|
751
|
-
const sorted = values.slice().sort((a, b) => a - b);
|
|
752
|
-
const mid = len >> 1;
|
|
753
|
-
return len % 2 === 0 ? (sorted[mid - 1] + sorted[mid]) / 2 : sorted[mid];
|
|
754
|
-
}
|
|
755
|
-
};
|
|
756
|
-
|
|
757
|
-
// src/shared/utils/CoordinateUtils.ts
|
|
758
|
-
var CoordinateUtils = class _CoordinateUtils {
|
|
759
|
-
static isValidLatitude(latitude) {
|
|
760
|
-
return /^-?([0-8]?[0-9]|90)(\.[0-9]{1,15})$/.test(latitude.toString());
|
|
761
|
-
}
|
|
762
|
-
static isValidLongitude(longitude) {
|
|
763
|
-
return /^-?([0-9]{1,2}|1[0-7][0-9]|180)(\.[0-9]{1,14})$/.test(longitude.toString());
|
|
764
|
-
}
|
|
765
|
-
static isValidLatitudeLongitude(latitude, longitude) {
|
|
766
|
-
return _CoordinateUtils.isValidLatitude(latitude) && _CoordinateUtils.isValidLongitude(longitude);
|
|
767
|
-
}
|
|
768
|
-
static isValidCoordinate(coordinate) {
|
|
769
|
-
return this.isValidLatitudeLongitude(coordinate.latitude, coordinate.longitude);
|
|
770
|
-
}
|
|
771
|
-
static crowDistance(...coordinates) {
|
|
772
|
-
if (coordinates.length <= 2) {
|
|
773
|
-
const toRad = (value) => value * Math.PI / 180;
|
|
774
|
-
const c1 = coordinates[0];
|
|
775
|
-
const c2 = coordinates[1];
|
|
776
|
-
if (!c1 || !c2) {
|
|
777
|
-
return 0;
|
|
778
|
-
}
|
|
779
|
-
const R = 6371e3;
|
|
780
|
-
const dLat = toRad(c2.latitude - c1.latitude);
|
|
781
|
-
const dLon = toRad(c2.longitude - c1.longitude);
|
|
782
|
-
const lat1 = toRad(c1.latitude);
|
|
783
|
-
const lat2 = toRad(c2.latitude);
|
|
784
|
-
const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.sin(dLon / 2) * Math.sin(dLon / 2) * Math.cos(lat1) * Math.cos(lat2);
|
|
785
|
-
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
|
|
786
|
-
return R * c;
|
|
787
|
-
}
|
|
788
|
-
let totalDistance = 0;
|
|
789
|
-
for (let i = 0; i < coordinates.length - 1; ++i) {
|
|
790
|
-
totalDistance += this.crowDistance(coordinates[i], coordinates[i + 1]);
|
|
791
|
-
}
|
|
792
|
-
return totalDistance;
|
|
793
|
-
}
|
|
794
|
-
};
|
|
795
|
-
|
|
796
|
-
// src/shared/utils/DateUtils.ts
|
|
797
|
-
import moment2 from "moment";
|
|
798
|
-
var DateUtils = class _DateUtils {
|
|
799
|
-
static isPositiveInteger(value, strict) {
|
|
800
|
-
if (strict) {
|
|
801
|
-
if (typeof value !== "number") {
|
|
802
|
-
return false;
|
|
803
|
-
}
|
|
804
|
-
}
|
|
805
|
-
if (typeof value === "bigint") {
|
|
806
|
-
return value >= 0 && value <= Number.MAX_SAFE_INTEGER;
|
|
807
|
-
}
|
|
808
|
-
if (typeof value === "number") {
|
|
809
|
-
if (!Number.isSafeInteger(value)) {
|
|
810
|
-
return false;
|
|
811
|
-
}
|
|
812
|
-
return value >= 0 && value <= Number.MAX_SAFE_INTEGER;
|
|
813
|
-
}
|
|
814
|
-
if (typeof value === "string") {
|
|
815
|
-
if (!/^(0|[1-9]\d*)$/g.test(value)) {
|
|
816
|
-
return false;
|
|
817
|
-
}
|
|
818
|
-
return _DateUtils.isPositiveInteger(Number(value), strict);
|
|
819
|
-
}
|
|
820
|
-
return false;
|
|
821
|
-
}
|
|
822
|
-
static isMilliseconds(value, strict) {
|
|
823
|
-
return _DateUtils.isPositiveInteger(value, strict);
|
|
824
|
-
}
|
|
825
|
-
static isSeconds(value, strict) {
|
|
826
|
-
return _DateUtils.isPositiveInteger(value, strict);
|
|
827
|
-
}
|
|
828
|
-
static isUnix(value, strict) {
|
|
829
|
-
return _DateUtils.isSeconds(value, strict);
|
|
830
|
-
}
|
|
831
|
-
static isISO8601(value) {
|
|
832
|
-
if (typeof value !== "string") {
|
|
833
|
-
return false;
|
|
834
|
-
}
|
|
835
|
-
if (!/(Z)|(\+\d{2}:\d{2})$/g.test(value)) {
|
|
836
|
-
return false;
|
|
837
|
-
}
|
|
838
|
-
return !Number.isNaN(new Date(value).getTime());
|
|
839
|
-
}
|
|
840
|
-
static isValid(value, format, strict) {
|
|
841
|
-
if (format === void 0) {
|
|
842
|
-
return _DateUtils.isSeconds(value, strict) || _DateUtils.isMilliseconds(value, strict) || _DateUtils.isISO8601(value);
|
|
843
|
-
} else {
|
|
844
|
-
switch (format) {
|
|
845
|
-
case DATE.FORMAT.UNIX:
|
|
846
|
-
return _DateUtils.isUnix(value, strict);
|
|
847
|
-
case DATE.FORMAT.SECONDS:
|
|
848
|
-
return _DateUtils.isSeconds(value, strict);
|
|
849
|
-
case DATE.FORMAT.MILLISECONDS:
|
|
850
|
-
return _DateUtils.isMilliseconds(value, strict);
|
|
851
|
-
case DATE.FORMAT.ISO_8601:
|
|
852
|
-
return _DateUtils.isISO8601(value);
|
|
853
|
-
default: {
|
|
854
|
-
throw new Error(`unknown format: ${format}(${DATE.FORMAT.toString(format) ?? "unknown"})`);
|
|
855
|
-
}
|
|
856
|
-
}
|
|
857
|
-
}
|
|
858
|
-
}
|
|
859
|
-
static from(value, format, strict) {
|
|
860
|
-
if (value instanceof Date) {
|
|
861
|
-
return value;
|
|
862
|
-
}
|
|
863
|
-
if (!_DateUtils.isValid(value, format, strict)) {
|
|
864
|
-
throw new Error("invalid date");
|
|
865
|
-
}
|
|
866
|
-
if (format === void 0) {
|
|
867
|
-
if (_DateUtils.isMilliseconds(value, strict)) {
|
|
868
|
-
return _DateUtils.from(value, DATE.FORMAT.MILLISECONDS);
|
|
869
|
-
}
|
|
870
|
-
if (_DateUtils.isISO8601(value)) {
|
|
871
|
-
return _DateUtils.from(value, DATE.FORMAT.ISO_8601);
|
|
872
|
-
}
|
|
873
|
-
throw new Error(`no option to convert value to date`);
|
|
874
|
-
}
|
|
875
|
-
switch (format) {
|
|
876
|
-
case DATE.FORMAT.UNIX:
|
|
877
|
-
return new Date(Number(value) * 1e3);
|
|
878
|
-
case DATE.FORMAT.SECONDS:
|
|
879
|
-
return new Date(Number(value) * 1e3);
|
|
880
|
-
case DATE.FORMAT.MILLISECONDS:
|
|
881
|
-
return new Date(Number(value));
|
|
882
|
-
case DATE.FORMAT.ISO_8601:
|
|
883
|
-
return new Date(value);
|
|
884
|
-
default: {
|
|
885
|
-
throw new Error(`unknown format: ${format}(${DATE.FORMAT.toString(format) ?? "unknown"})`);
|
|
886
|
-
}
|
|
887
|
-
}
|
|
888
|
-
}
|
|
889
|
-
static fromUnix(value, strict) {
|
|
890
|
-
return _DateUtils.from(value, DATE.FORMAT.UNIX, strict);
|
|
891
|
-
}
|
|
892
|
-
static fromSeconds(value, strict) {
|
|
893
|
-
return _DateUtils.from(value, DATE.FORMAT.SECONDS, strict);
|
|
894
|
-
}
|
|
895
|
-
static fromMilliseconds(value, strict) {
|
|
896
|
-
return _DateUtils.from(value, DATE.FORMAT.MILLISECONDS, strict);
|
|
897
|
-
}
|
|
898
|
-
static fromISO8601(value) {
|
|
899
|
-
return _DateUtils.from(value, DATE.FORMAT.ISO_8601);
|
|
900
|
-
}
|
|
901
|
-
static relativeDate = (input, base = Date.now()) => {
|
|
902
|
-
const datetime = moment2.isMoment(input) ? moment2(input.toDate()) : moment2(input);
|
|
903
|
-
if (!datetime.isValid()) {
|
|
904
|
-
console.error("core-js:DateUtils.relativeDate() datetime is invalid", datetime);
|
|
905
|
-
return "<INVALID DATE>";
|
|
906
|
-
}
|
|
907
|
-
return datetime.from(base);
|
|
908
|
-
};
|
|
909
|
-
static setLocale = (language) => {
|
|
910
|
-
const relativeTime = _DateUtils.getRelativeTimeSpec(language);
|
|
911
|
-
if (relativeTime !== void 0) {
|
|
912
|
-
moment2.updateLocale(language, { relativeTime });
|
|
913
|
-
}
|
|
914
|
-
moment2.locale(language);
|
|
915
|
-
};
|
|
916
|
-
static getRelativeTimeSpec = (locale) => {
|
|
917
|
-
if (locale in _DateUtils.relativeTimeSpecs) {
|
|
918
|
-
return _DateUtils.relativeTimeSpecs[locale];
|
|
919
|
-
}
|
|
920
|
-
return void 0;
|
|
921
|
-
};
|
|
922
|
-
};
|
|
923
|
-
((DateUtils2) => {
|
|
924
|
-
DateUtils2.relativeTimeSpecs = {
|
|
925
|
-
ko: {
|
|
926
|
-
future: "%s \uD6C4",
|
|
927
|
-
past: "%s \uC804",
|
|
928
|
-
s: (number) => `${number}\uCD08`,
|
|
929
|
-
ss: (number) => `${number}\uCD08`,
|
|
930
|
-
m: (number) => `${number}\uBD84`,
|
|
931
|
-
mm: (number) => `${number}\uBD84`,
|
|
932
|
-
h: (number) => `${number}\uC2DC\uAC04`,
|
|
933
|
-
hh: (number) => `${number}\uC2DC\uAC04`,
|
|
934
|
-
d: (number) => `${number}\uC77C`,
|
|
935
|
-
dd: (number) => `${number}\uC77C`,
|
|
936
|
-
M: (number) => `${number}\uAC1C\uC6D4`,
|
|
937
|
-
MM: (number) => `${number}\uAC1C\uC6D4`,
|
|
938
|
-
y: (number) => `${number}\uB144`,
|
|
939
|
-
yy: (number) => `${number}\uB144`
|
|
940
|
-
},
|
|
941
|
-
en: {
|
|
942
|
-
future: "in %s",
|
|
943
|
-
past: "%s ago",
|
|
944
|
-
s: (number) => number === 1 ? `${number} second` : `${number} seconds`,
|
|
945
|
-
ss: (number) => `${number} seconds`,
|
|
946
|
-
m: (number) => number === 1 ? `${number} minute` : `${number} minutes`,
|
|
947
|
-
mm: (number) => `${number} minutes`,
|
|
948
|
-
h: (number) => number === 1 ? `${number} hour` : `${number} hours`,
|
|
949
|
-
hh: (number) => `${number} hours`,
|
|
950
|
-
d: (number) => number === 1 ? `${number} day` : `${number} days`,
|
|
951
|
-
dd: (number) => `${number} days`,
|
|
952
|
-
M: (number) => number === 1 ? `${number} month` : `${number} months`,
|
|
953
|
-
MM: (number) => `${number} months`,
|
|
954
|
-
y: (number) => number === 1 ? `${number} year` : `${number} years`,
|
|
955
|
-
yy: (number) => `${number} years`
|
|
956
|
-
},
|
|
957
|
-
ja: {
|
|
958
|
-
future: "%s\u5F8C",
|
|
959
|
-
past: "%s\u524D",
|
|
960
|
-
s: (number) => `${number}\u79D2`,
|
|
961
|
-
ss: (number) => `${number}\u79D2`,
|
|
962
|
-
m: (number) => `${number}\u5206`,
|
|
963
|
-
mm: (number) => `${number}\u5206`,
|
|
964
|
-
h: (number) => `${number}\u6642`,
|
|
965
|
-
hh: (number) => `${number}\u6642`,
|
|
966
|
-
d: (number) => `${number}\u65E5`,
|
|
967
|
-
dd: (number) => `${number}\u65E5`,
|
|
968
|
-
M: (number) => `${number}\u6708`,
|
|
969
|
-
MM: (number) => `${number}\u6708`,
|
|
970
|
-
y: (number) => `${number}\u5E74`,
|
|
971
|
-
yy: (number) => `${number}\u5E74`
|
|
972
|
-
},
|
|
973
|
-
zh: {
|
|
974
|
-
future: "%s\u540E",
|
|
975
|
-
past: "%s\u524D",
|
|
976
|
-
s: (number) => `${number}\u79D2`,
|
|
977
|
-
ss: (number) => `${number}\u79D2`,
|
|
978
|
-
m: (number) => `${number}\u5206\u949F`,
|
|
979
|
-
mm: (number) => `${number}\u5206\u949F`,
|
|
980
|
-
h: (number) => `${number}\u4E2A\u5C0F\u65F6`,
|
|
981
|
-
hh: (number) => `${number}\u4E2A\u5C0F\u65F6`,
|
|
982
|
-
d: (number) => `${number}\u5929`,
|
|
983
|
-
dd: (number) => `${number}\u5929`,
|
|
984
|
-
M: (number) => `${number}\u4E2A\u6708`,
|
|
985
|
-
MM: (number) => `${number}\u4E2A\u6708`,
|
|
986
|
-
y: (number) => `${number}\u5E74`,
|
|
987
|
-
yy: (number) => `${number}\u5E74`
|
|
988
|
-
},
|
|
989
|
-
ru: {
|
|
990
|
-
future: "\u0447\u0435\u0440\u0435\u0437 %s",
|
|
991
|
-
past: "%s \u043D\u0430\u0437\u0430\u0434",
|
|
992
|
-
s: (number) => `${number} \u0441\u0435\u043A\u0443\u043D\u0434`,
|
|
993
|
-
ss: (number) => `${number} \u0441\u0435\u043A\u0443\u043D\u0434`,
|
|
994
|
-
m: (number) => `${number} \u043C\u0438\u043D\u0443\u0442\u0430`,
|
|
995
|
-
mm: (number) => `${number} \u043C\u0438\u043D\u0443\u0442`,
|
|
996
|
-
h: (number) => `${number} \u0447\u0430\u0441`,
|
|
997
|
-
hh: (number) => `${number} \u0447\u0430\u0441\u043E\u0432`,
|
|
998
|
-
d: (number) => `${number} \u0434\u0435\u043D\u044C`,
|
|
999
|
-
dd: (number) => `${number} \u0434\u043D\u0435\u0439`,
|
|
1000
|
-
M: (number) => `${number} \u043C\u0435\u0441\u044F\u0446`,
|
|
1001
|
-
MM: (number) => `${number} \u043C\u0435\u0441\u044F\u0446\u0435\u0432`,
|
|
1002
|
-
y: (number) => `${number} \u0433\u043E\u0434`,
|
|
1003
|
-
yy: (number) => `${number} \u043B\u0435\u0442`
|
|
1004
|
-
},
|
|
1005
|
-
uz: {
|
|
1006
|
-
future: "%sdan keyin",
|
|
1007
|
-
past: "%s avval",
|
|
1008
|
-
s: (number) => `${number} soniya`,
|
|
1009
|
-
ss: (number) => `${number} soniya`,
|
|
1010
|
-
m: (number) => `${number} daqiqa`,
|
|
1011
|
-
mm: (number) => `${number} daqiqa`,
|
|
1012
|
-
h: (number) => `${number} soat`,
|
|
1013
|
-
hh: (number) => `${number} soat`,
|
|
1014
|
-
d: (number) => `${number} kun`,
|
|
1015
|
-
dd: (number) => `${number} kun`,
|
|
1016
|
-
M: (number) => `${number} oy`,
|
|
1017
|
-
MM: (number) => `${number} oy`,
|
|
1018
|
-
y: (number) => `${number} yil`,
|
|
1019
|
-
yy: (number) => `${number} yil`
|
|
1020
|
-
},
|
|
1021
|
-
de: {
|
|
1022
|
-
future: "in %s",
|
|
1023
|
-
past: "vor %s",
|
|
1024
|
-
s: (number) => `${number === 1 ? "einer" : number} Sekunde${number === 1 ? "" : "n"}`,
|
|
1025
|
-
ss: (number) => `${number} Sekunde${number === 1 ? "" : "n"}`,
|
|
1026
|
-
m: (number) => `${number === 1 ? "einer" : number} Minute${number === 1 ? "" : "n"}`,
|
|
1027
|
-
mm: (number) => `${number} Minute${number === 1 ? "" : "n"}`,
|
|
1028
|
-
h: (number) => `${number === 1 ? "einer" : number} Stunde${number === 1 ? "" : "n"}`,
|
|
1029
|
-
hh: (number) => `${number} Stunde${number === 1 ? "" : "n"}`,
|
|
1030
|
-
d: (number) => `${number === 1 ? "einem" : number} Tag${number === 1 ? "" : "en"}`,
|
|
1031
|
-
dd: (number) => `${number} Tag${number === 1 ? "" : "en"}`,
|
|
1032
|
-
M: (number) => `${number === 1 ? "einem" : number} Monat${number === 1 ? "" : "en"}`,
|
|
1033
|
-
MM: (number) => `${number} Monat${number === 1 ? "" : "en"}`,
|
|
1034
|
-
y: (number) => `${number === 1 ? "einem" : number} Jahr${number === 1 ? "" : "en"}`,
|
|
1035
|
-
yy: (number) => `${number} Jahr${number === 1 ? "" : "en"}`
|
|
1036
|
-
},
|
|
1037
|
-
fr: {
|
|
1038
|
-
future: "dans %s",
|
|
1039
|
-
past: "il y a %s",
|
|
1040
|
-
s: (number) => `quelques secondes`,
|
|
1041
|
-
ss: (number) => `${number} secondes`,
|
|
1042
|
-
m: (number) => `une minute`,
|
|
1043
|
-
mm: (number) => `${number} minutes`,
|
|
1044
|
-
h: (number) => `une heure`,
|
|
1045
|
-
hh: (number) => `${number} heures`,
|
|
1046
|
-
d: (number) => `un jour`,
|
|
1047
|
-
dd: (number) => `${number} jours`,
|
|
1048
|
-
M: (number) => `un mois`,
|
|
1049
|
-
MM: (number) => `${number} mois`,
|
|
1050
|
-
y: (number) => `un an`,
|
|
1051
|
-
yy: (number) => `${number} ans`
|
|
1052
|
-
},
|
|
1053
|
-
vi: {
|
|
1054
|
-
future: "sau %s",
|
|
1055
|
-
past: "%s tr\u01B0\u1EDBc",
|
|
1056
|
-
s: (number) => `${number} gi\xE2y`,
|
|
1057
|
-
ss: (number) => `${number} gi\xE2y`,
|
|
1058
|
-
m: (number) => `${number} ph\xFAt`,
|
|
1059
|
-
mm: (number) => `${number} ph\xFAt`,
|
|
1060
|
-
h: (number) => `${number} gi\u1EDD`,
|
|
1061
|
-
hh: (number) => `${number} gi\u1EDD`,
|
|
1062
|
-
d: (number) => `${number} ng\xE0y`,
|
|
1063
|
-
dd: (number) => `${number} ng\xE0y`,
|
|
1064
|
-
M: (number) => `${number} th\xE1ng`,
|
|
1065
|
-
MM: (number) => `${number} th\xE1ng`,
|
|
1066
|
-
y: (number) => `${number} n\u0103m`,
|
|
1067
|
-
yy: (number) => `${number} n\u0103m`
|
|
1068
|
-
},
|
|
1069
|
-
th: {
|
|
1070
|
-
future: "\u0E43\u0E19 %s",
|
|
1071
|
-
past: "%s \u0E17\u0E35\u0E48\u0E41\u0E25\u0E49\u0E27",
|
|
1072
|
-
s: (number) => `${number} \u0E27\u0E34\u0E19\u0E32\u0E17\u0E35`,
|
|
1073
|
-
ss: (number) => `${number} \u0E27\u0E34\u0E19\u0E32\u0E17\u0E35`,
|
|
1074
|
-
m: (number) => `${number} \u0E19\u0E32\u0E17\u0E35`,
|
|
1075
|
-
mm: (number) => `${number} \u0E19\u0E32\u0E17\u0E35`,
|
|
1076
|
-
h: (number) => `${number} \u0E0A\u0E31\u0E48\u0E27\u0E42\u0E21\u0E07`,
|
|
1077
|
-
hh: (number) => `${number} \u0E0A\u0E31\u0E48\u0E27\u0E42\u0E21\u0E07`,
|
|
1078
|
-
d: (number) => `${number} \u0E27\u0E31\u0E19`,
|
|
1079
|
-
dd: (number) => `${number} \u0E27\u0E31\u0E19`,
|
|
1080
|
-
M: (number) => `${number} \u0E40\u0E14\u0E37\u0E2D\u0E19`,
|
|
1081
|
-
MM: (number) => `${number} \u0E40\u0E14\u0E37\u0E2D\u0E19`,
|
|
1082
|
-
y: (number) => `${number} \u0E1B\u0E35`,
|
|
1083
|
-
yy: (number) => `${number} \u0E1B\u0E35`
|
|
1084
|
-
},
|
|
1085
|
-
fil: {
|
|
1086
|
-
future: "sa loob ng %s",
|
|
1087
|
-
past: "%s ang nakalipas",
|
|
1088
|
-
s: (number) => `${number} segundo`,
|
|
1089
|
-
ss: (number) => `${number} segundo`,
|
|
1090
|
-
m: (number) => `${number} minuto`,
|
|
1091
|
-
mm: (number) => `${number} minuto`,
|
|
1092
|
-
h: (number) => `${number} oras`,
|
|
1093
|
-
hh: (number) => `${number} oras`,
|
|
1094
|
-
d: (number) => `${number} araw`,
|
|
1095
|
-
dd: (number) => `${number} araw`,
|
|
1096
|
-
M: (number) => `${number} buwan`,
|
|
1097
|
-
MM: (number) => `${number} buwan`,
|
|
1098
|
-
y: (number) => `${number} taon`,
|
|
1099
|
-
yy: (number) => `${number} taon`
|
|
1100
|
-
}
|
|
1101
|
-
};
|
|
1102
|
-
})(DateUtils || (DateUtils = {}));
|
|
1103
|
-
|
|
1104
|
-
// src/shared/utils/Enum.ts
|
|
1105
|
-
var Enum = class _Enum {
|
|
1106
|
-
static entries(e) {
|
|
1107
|
-
return Object.entries(e).filter(([key, value]) => !/^-?\d+$/g.test(key) && typeof value !== "function");
|
|
1108
|
-
}
|
|
1109
|
-
static keys(e) {
|
|
1110
|
-
return _Enum.entries(e).map(([key]) => key);
|
|
1111
|
-
}
|
|
1112
|
-
static values(e) {
|
|
1113
|
-
return _Enum.entries(e).map(([, value]) => value);
|
|
1114
|
-
}
|
|
1115
|
-
static from(e) {
|
|
1116
|
-
return new _Enum(e);
|
|
1117
|
-
}
|
|
1118
|
-
_e;
|
|
1119
|
-
_entries;
|
|
1120
|
-
_keys;
|
|
1121
|
-
_values;
|
|
1122
|
-
constructor(e) {
|
|
1123
|
-
this._e = e;
|
|
1124
|
-
this._entries = _Enum.entries(e);
|
|
1125
|
-
this._keys = _Enum.keys(e);
|
|
1126
|
-
this._values = _Enum.values(e);
|
|
1127
|
-
}
|
|
1128
|
-
value() {
|
|
1129
|
-
return this._e;
|
|
1130
|
-
}
|
|
1131
|
-
entries() {
|
|
1132
|
-
return this._entries;
|
|
1133
|
-
}
|
|
1134
|
-
keys() {
|
|
1135
|
-
return this._keys;
|
|
1136
|
-
}
|
|
1137
|
-
values() {
|
|
1138
|
-
return this._values;
|
|
1139
|
-
}
|
|
1140
|
-
};
|
|
1141
|
-
|
|
1142
|
-
// src/shared/utils/I18nUtils.ts
|
|
1143
|
-
import deepmerge from "deepmerge";
|
|
1144
|
-
var I18nUtils = class {
|
|
1145
|
-
static mergeResources(...resources) {
|
|
1146
|
-
return resources.reduce((acc, resource) => deepmerge(acc, resource), {});
|
|
1147
|
-
}
|
|
1148
|
-
};
|
|
1149
|
-
|
|
1150
|
-
// src/shared/utils/NumberUtils.ts
|
|
1151
|
-
var NumberUtils = class {
|
|
1152
|
-
static formatWithThousandsSeparator(value, separator = ",") {
|
|
1153
|
-
return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, separator);
|
|
1154
|
-
}
|
|
1155
|
-
static formatBigNumber(value, precision = 2) {
|
|
1156
|
-
const map = [
|
|
1157
|
-
{ suffix: "Qi", threshold: 1e18 },
|
|
1158
|
-
{ suffix: "Q", threshold: 1e15 },
|
|
1159
|
-
{ suffix: "T", threshold: 1e12 },
|
|
1160
|
-
{ suffix: "B", threshold: 1e9 },
|
|
1161
|
-
{ suffix: "M", threshold: 1e6 },
|
|
1162
|
-
{ suffix: "K", threshold: 1e3 },
|
|
1163
|
-
{ suffix: "", threshold: 1 }
|
|
1164
|
-
];
|
|
1165
|
-
const found = map.find((e) => Math.abs(value) >= e.threshold);
|
|
1166
|
-
if (found) {
|
|
1167
|
-
return Number((value / found.threshold).toFixed(precision)) + found.suffix;
|
|
1168
|
-
}
|
|
1169
|
-
return value.toString();
|
|
1170
|
-
}
|
|
1171
|
-
};
|
|
1172
|
-
|
|
1173
|
-
// src/shared/utils/ObjectIdUtils.ts
|
|
1174
|
-
var ObjectIdUtils = class {
|
|
1175
|
-
static toUuid(objectId, pad = "start") {
|
|
1176
|
-
const src = Uint8ArrayUtils.fromHex(objectId);
|
|
1177
|
-
if (src.length !== 12) {
|
|
1178
|
-
throw new Error(`objectId must be 12 bytes (24 hex), got ${src.length} bytes`);
|
|
1179
|
-
}
|
|
1180
|
-
const result = new Uint8Array(16);
|
|
1181
|
-
const offset = pad === "start" ? 4 : 0;
|
|
1182
|
-
result.set(src, offset);
|
|
1183
|
-
return UuidUtils.toString(result);
|
|
1184
|
-
}
|
|
1185
|
-
static fromUuid(uuid2, pad) {
|
|
1186
|
-
const buffer = UuidUtils.toBuffer(uuid2);
|
|
1187
|
-
const isPadEnd = buffer.subarray(buffer.length - 4).every((byte) => byte === 0);
|
|
1188
|
-
if (isPadEnd || pad === "end") {
|
|
1189
|
-
return buffer.subarray(0, buffer.length - 4).toString("hex");
|
|
1190
|
-
}
|
|
1191
|
-
const isPadStart = buffer.subarray(0, 4).every((byte) => byte === 0);
|
|
1192
|
-
if (!isPadStart) {
|
|
1193
|
-
console.warn("buffer is not pad start and pad end");
|
|
1194
|
-
}
|
|
1195
|
-
return buffer.subarray(4).toString("hex");
|
|
1196
|
-
}
|
|
1197
|
-
};
|
|
1198
|
-
|
|
1199
|
-
// src/shared/utils/Point3Utils.ts
|
|
1200
|
-
var Point3Utils = class {
|
|
1201
|
-
static distance(p1, p2) {
|
|
1202
|
-
const dx = p1.x - p2.x;
|
|
1203
|
-
const dy = p1.y - p2.y;
|
|
1204
|
-
const dz = p1.z - p2.z;
|
|
1205
|
-
return Math.sqrt(dx * dx + dy * dy + dz * dz);
|
|
1206
|
-
}
|
|
1207
|
-
};
|
|
1208
|
-
|
|
1209
|
-
// src/shared/utils/RandomUtils.ts
|
|
1210
|
-
var RandomUtils = class _RandomUtils {
|
|
1211
|
-
static randomNumber(min, max) {
|
|
1212
|
-
min = Math.ceil(min);
|
|
1213
|
-
max = Math.floor(max);
|
|
1214
|
-
return Math.floor(Math.random() * (max - min + 1) + min);
|
|
1215
|
-
}
|
|
1216
|
-
static randomLatinStrings(length) {
|
|
1217
|
-
const strings = [];
|
|
1218
|
-
for (let i = 0; i < length; ++i) {
|
|
1219
|
-
const isLowerCase = _RandomUtils.randomNumber(0, 1);
|
|
1220
|
-
if (isLowerCase) {
|
|
1221
|
-
strings.push(String.fromCharCode(_RandomUtils.randomNumber(97, 122)));
|
|
1222
|
-
} else {
|
|
1223
|
-
strings.push(String.fromCharCode(_RandomUtils.randomNumber(65, 90)));
|
|
1224
|
-
}
|
|
1225
|
-
}
|
|
1226
|
-
return strings.join("");
|
|
1227
|
-
}
|
|
1228
|
-
static randomLatinLowercaseStrings(length) {
|
|
1229
|
-
const strings = [];
|
|
1230
|
-
for (let i = 0; i < length; ++i) {
|
|
1231
|
-
strings.push(String.fromCharCode(_RandomUtils.randomNumber(97, 122)));
|
|
1232
|
-
}
|
|
1233
|
-
return strings.join("");
|
|
1234
|
-
}
|
|
1235
|
-
static randomLatinUppercaseStrings(length) {
|
|
1236
|
-
const strings = [];
|
|
1237
|
-
for (let i = 0; i < length; ++i) {
|
|
1238
|
-
strings.push(String.fromCharCode(_RandomUtils.randomNumber(65, 90)));
|
|
1239
|
-
}
|
|
1240
|
-
return strings.join("");
|
|
1241
|
-
}
|
|
1242
|
-
static randomNumberStrings(length) {
|
|
1243
|
-
const strings = [];
|
|
1244
|
-
for (let i = 0; i < length; ++i) {
|
|
1245
|
-
strings.push(String.fromCharCode(_RandomUtils.randomNumber(48, 57)));
|
|
1246
|
-
}
|
|
1247
|
-
return strings.join("");
|
|
1248
|
-
}
|
|
1249
|
-
static randomStrings(length) {
|
|
1250
|
-
const strings = [];
|
|
1251
|
-
for (let i = 0; i < length; ++i) {
|
|
1252
|
-
const isNumber = _RandomUtils.randomNumber(0, 1);
|
|
1253
|
-
if (isNumber) {
|
|
1254
|
-
strings.push(String.fromCharCode(_RandomUtils.randomNumber(48, 57)));
|
|
1255
|
-
} else {
|
|
1256
|
-
const isLowerCase = _RandomUtils.randomNumber(0, 1);
|
|
1257
|
-
if (isLowerCase) {
|
|
1258
|
-
strings.push(String.fromCharCode(_RandomUtils.randomNumber(97, 122)));
|
|
1259
|
-
} else {
|
|
1260
|
-
strings.push(String.fromCharCode(_RandomUtils.randomNumber(65, 90)));
|
|
1261
|
-
}
|
|
1262
|
-
}
|
|
1263
|
-
}
|
|
1264
|
-
return strings.join("");
|
|
1265
|
-
}
|
|
1266
|
-
};
|
|
1267
|
-
|
|
1268
|
-
// src/shared/utils/Validator.ts
|
|
1269
|
-
var Validator = class _Validator {
|
|
1270
|
-
static validate(value, options) {
|
|
1271
|
-
value = value || "";
|
|
1272
|
-
const validations = [];
|
|
1273
|
-
const errors = [];
|
|
1274
|
-
const { length } = value;
|
|
1275
|
-
const spaceCount = (value.match(/\s/g) || []).length;
|
|
1276
|
-
const numberCount = (value.match(/\d/g) || []).length;
|
|
1277
|
-
const alphabetCount = (value.match(/[A-Za-z]/g) || []).length;
|
|
1278
|
-
const alphabetLowerCaseCount = (value.match(/[a-z]/g) || []).length;
|
|
1279
|
-
const alphabetUpperCaseCount = (value.match(/[A-Z]/g) || []).length;
|
|
1280
|
-
const specialCount = (value.match(/[~`!@#$%^&*()\-+={[}\]|\\:;"'<,>.?/]/g) || []).length;
|
|
1281
|
-
const startsWithNumber = /^\d/.test(value);
|
|
1282
|
-
const startsWithAlphabet = /^[A-Za-z]/.test(value);
|
|
1283
|
-
const startsWithSpecialCharacter = /^[~`!@#$%^&*()\-+={[}\]|\\:;"'<,>.?/]/.test(value);
|
|
1284
|
-
if (options.minLength !== void 0 && options.minLength > -1) {
|
|
1285
|
-
validations.push(_Validator.VALIDATION.MIN_LENGTH);
|
|
1286
|
-
if (length < options.minLength) {
|
|
1287
|
-
errors.push(_Validator.VALIDATION.MIN_LENGTH);
|
|
1288
|
-
}
|
|
1289
|
-
}
|
|
1290
|
-
if (options.maxLength !== void 0 && options.maxLength > -1) {
|
|
1291
|
-
validations.push(_Validator.VALIDATION.MAX_LENGTH);
|
|
1292
|
-
if (length > options.maxLength) {
|
|
1293
|
-
errors.push(_Validator.VALIDATION.MAX_LENGTH);
|
|
1294
|
-
}
|
|
1295
|
-
}
|
|
1296
|
-
const validateMin = (option, value2, validation) => {
|
|
1297
|
-
if (option !== void 0 && option > -1) {
|
|
1298
|
-
validations.push(validation);
|
|
1299
|
-
if (value2 < option) {
|
|
1300
|
-
errors.push(validation);
|
|
1301
|
-
}
|
|
1302
|
-
}
|
|
1303
|
-
};
|
|
1304
|
-
const validateMax = (option, value2, validation) => {
|
|
1305
|
-
if (option !== void 0 && option > -1) {
|
|
1306
|
-
validations.push(validation);
|
|
1307
|
-
if (value2 > option) {
|
|
1308
|
-
errors.push(validation);
|
|
1309
|
-
}
|
|
1310
|
-
}
|
|
1311
|
-
};
|
|
1312
|
-
validateMin(options.spaceMinCount, spaceCount, _Validator.VALIDATION.SPACE_MIN_COUNT);
|
|
1313
|
-
validateMax(options.spaceMaxCount, spaceCount, _Validator.VALIDATION.SPACE_MAX_COUNT);
|
|
1314
|
-
validateMin(options.numberMinCount, numberCount, _Validator.VALIDATION.NUMBER_MIN_COUNT);
|
|
1315
|
-
validateMax(options.numberMaxCount, numberCount, _Validator.VALIDATION.NUMBER_MAX_COUNT);
|
|
1316
|
-
validateMin(options.alphabetMinCount, alphabetCount, _Validator.VALIDATION.ALPHABET_MIN_COUNT);
|
|
1317
|
-
validateMax(options.alphabetMaxCount, alphabetCount, _Validator.VALIDATION.ALPHABET_MAX_COUNT);
|
|
1318
|
-
validateMin(options.alphabetLowerCaseMinCount, alphabetLowerCaseCount, _Validator.VALIDATION.ALPHABET_LOWER_CASE_MIN_COUNT);
|
|
1319
|
-
validateMax(options.alphabetLowerCaseMaxCount, alphabetLowerCaseCount, _Validator.VALIDATION.ALPHABET_LOWER_CASE_MAX_COUNT);
|
|
1320
|
-
validateMin(options.alphabetUpperCaseMinCount, alphabetUpperCaseCount, _Validator.VALIDATION.ALPHABET_UPPER_CASE_MIN_COUNT);
|
|
1321
|
-
validateMax(options.alphabetUpperCaseMaxCount, alphabetUpperCaseCount, _Validator.VALIDATION.ALPHABET_UPPER_CASE_MAX_COUNT);
|
|
1322
|
-
validateMin(options.specialCharacterMinCount, specialCount, _Validator.VALIDATION.SPECIAL_CHARACTER_MIN_COUNT);
|
|
1323
|
-
validateMax(options.specialCharacterMaxCount, specialCount, _Validator.VALIDATION.SPECIAL_CHARACTER_MAX_COUNT);
|
|
1324
|
-
if (options.startsWithNumber) {
|
|
1325
|
-
validations.push(_Validator.VALIDATION.STARTS_WITH_NUMBER);
|
|
1326
|
-
if (!startsWithNumber) {
|
|
1327
|
-
errors.push(_Validator.VALIDATION.STARTS_WITH_NUMBER);
|
|
1328
|
-
}
|
|
1329
|
-
}
|
|
1330
|
-
if (options.startsWithAlphabet) {
|
|
1331
|
-
validations.push(_Validator.VALIDATION.STARTS_WITH_ALPHABET);
|
|
1332
|
-
if (!startsWithAlphabet) {
|
|
1333
|
-
errors.push(_Validator.VALIDATION.STARTS_WITH_ALPHABET);
|
|
1334
|
-
}
|
|
1335
|
-
}
|
|
1336
|
-
if (options.startsWithSpecialCharacter) {
|
|
1337
|
-
validations.push(_Validator.VALIDATION.STARTS_WITH_SPECIAL_CHARACTER);
|
|
1338
|
-
if (!startsWithSpecialCharacter) {
|
|
1339
|
-
errors.push(_Validator.VALIDATION.STARTS_WITH_SPECIAL_CHARACTER);
|
|
1340
|
-
}
|
|
1341
|
-
}
|
|
1342
|
-
return {
|
|
1343
|
-
result: errors.length === 0,
|
|
1344
|
-
validations,
|
|
1345
|
-
passes: validations.filter((e) => !errors.includes(e)),
|
|
1346
|
-
errors
|
|
1347
|
-
};
|
|
1348
|
-
}
|
|
1349
|
-
};
|
|
1350
|
-
((Validator2) => {
|
|
1351
|
-
let VALIDATION;
|
|
1352
|
-
((VALIDATION2) => {
|
|
1353
|
-
VALIDATION2["MIN_LENGTH"] = "MIN_LENGTH";
|
|
1354
|
-
VALIDATION2["MAX_LENGTH"] = "MAX_LENGTH";
|
|
1355
|
-
VALIDATION2["SPACE_MIN_COUNT"] = "SPACE_MIN_COUNT";
|
|
1356
|
-
VALIDATION2["SPACE_MAX_COUNT"] = "SPACE_MAX_COUNT";
|
|
1357
|
-
VALIDATION2["NUMBER_MIN_COUNT"] = "NUMBER_MIN_COUNT";
|
|
1358
|
-
VALIDATION2["NUMBER_MAX_COUNT"] = "NUMBER_MAX_COUNT";
|
|
1359
|
-
VALIDATION2["ALPHABET_MIN_COUNT"] = "ALPHABET_MIN_COUNT";
|
|
1360
|
-
VALIDATION2["ALPHABET_MAX_COUNT"] = "ALPHABET_MAX_COUNT";
|
|
1361
|
-
VALIDATION2["ALPHABET_LOWER_CASE_MIN_COUNT"] = "ALPHABET_LOWER_CASE_MIN_COUNT";
|
|
1362
|
-
VALIDATION2["ALPHABET_LOWER_CASE_MAX_COUNT"] = "ALPHABET_LOWER_CASE_MAX_COUNT";
|
|
1363
|
-
VALIDATION2["ALPHABET_UPPER_CASE_MIN_COUNT"] = "ALPHABET_UPPER_CASE_MIN_COUNT";
|
|
1364
|
-
VALIDATION2["ALPHABET_UPPER_CASE_MAX_COUNT"] = "ALPHABET_UPPER_CASE_MAX_COUNT";
|
|
1365
|
-
VALIDATION2["SPECIAL_CHARACTER_MIN_COUNT"] = "SPECIAL_CHARACTER_MIN_COUNT";
|
|
1366
|
-
VALIDATION2["SPECIAL_CHARACTER_MAX_COUNT"] = "SPECIAL_CHARACTER_MAX_COUNT";
|
|
1367
|
-
VALIDATION2["STARTS_WITH_ALPHABET"] = "STARTS_WITH_ALPHABET";
|
|
1368
|
-
VALIDATION2["STARTS_WITH_NUMBER"] = "STARTS_WITH_NUMBER";
|
|
1369
|
-
VALIDATION2["STARTS_WITH_SPECIAL_CHARACTER"] = "STARTS_WITH_SPECIAL_CHARACTER";
|
|
1370
|
-
})(VALIDATION = Validator2.VALIDATION || (Validator2.VALIDATION = {}));
|
|
1371
|
-
})(Validator || (Validator = {}));
|
|
1372
|
-
|
|
1373
|
-
// src/shared/utils/JuminNumberUtils.ts
|
|
1374
|
-
var JuminNumberUtils = class _JuminNumberUtils {
|
|
1375
|
-
static calculateX(juminNumber) {
|
|
1376
|
-
const replacedJuminNumber = juminNumber.replace(/\D/g, "");
|
|
1377
|
-
if (!between(replacedJuminNumber.length, 12, 13)) {
|
|
1378
|
-
throw new Error("Jumin number length must be 12 to 13(without dash)");
|
|
1379
|
-
}
|
|
1380
|
-
const numbers = replacedJuminNumber.split("").map((e) => parseInt(e, 10));
|
|
1381
|
-
const sum = 2 * numbers[0] + 3 * numbers[1] + 4 * numbers[2] + 5 * numbers[3] + 6 * numbers[4] + 7 * numbers[5] + 8 * numbers[6] + 9 * numbers[7] + 2 * numbers[8] + 3 * numbers[9] + 4 * numbers[10] + 5 * numbers[11];
|
|
1382
|
-
return (11 - sum % 11) % 10;
|
|
1383
|
-
}
|
|
1384
|
-
static isValid(juminNumber) {
|
|
1385
|
-
const replacedJuminNumber = juminNumber.replace(/\D/g, "");
|
|
1386
|
-
if (replacedJuminNumber.length !== 13) {
|
|
1387
|
-
return false;
|
|
1388
|
-
}
|
|
1389
|
-
const TODAY_YEAR = parseInt((/* @__PURE__ */ new Date()).getFullYear().toString().slice(-2), 10);
|
|
1390
|
-
const yearNum = parseInt(replacedJuminNumber.slice(0, 2), 10);
|
|
1391
|
-
const sexNum = replacedJuminNumber.slice(6, 7);
|
|
1392
|
-
if (sexNum === "1" || sexNum === "2") {
|
|
1393
|
-
if (yearNum < TODAY_YEAR) return false;
|
|
1394
|
-
} else if (sexNum === "3" || sexNum === "4") {
|
|
1395
|
-
if (yearNum > TODAY_YEAR) return false;
|
|
1396
|
-
} else return false;
|
|
1397
|
-
const regex = /^\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{7}$/;
|
|
1398
|
-
if (!regex.test(replacedJuminNumber)) return false;
|
|
1399
|
-
const currentX = parseInt(replacedJuminNumber.slice(-1), 10);
|
|
1400
|
-
const calculatedX = _JuminNumberUtils.calculateX(replacedJuminNumber);
|
|
1401
|
-
if (currentX !== calculatedX) {
|
|
1402
|
-
console.log("Invalid X", currentX, calculatedX);
|
|
1403
|
-
return false;
|
|
1404
|
-
}
|
|
1405
|
-
return true;
|
|
1406
|
-
}
|
|
1407
|
-
};
|
|
1408
|
-
|
|
1409
|
-
// src/shared/utils/Sequencer.ts
|
|
1410
|
-
import moment3 from "moment";
|
|
1411
|
-
import EventEmitter3 from "eventemitter3";
|
|
1412
|
-
var SequencerStatus = /* @__PURE__ */ ((SequencerStatus2) => {
|
|
1413
|
-
SequencerStatus2[SequencerStatus2["IDLE"] = 0] = "IDLE";
|
|
1414
|
-
SequencerStatus2[SequencerStatus2["RUNNING"] = 1] = "RUNNING";
|
|
1415
|
-
SequencerStatus2[SequencerStatus2["ERROR"] = 2] = "ERROR";
|
|
1416
|
-
SequencerStatus2[SequencerStatus2["DONE"] = 3] = "DONE";
|
|
1417
|
-
return SequencerStatus2;
|
|
1418
|
-
})(SequencerStatus || {});
|
|
1419
|
-
var SequencerEvent = /* @__PURE__ */ ((SequencerEvent2) => {
|
|
1420
|
-
SequencerEvent2["START"] = "START";
|
|
1421
|
-
SequencerEvent2["END"] = "END";
|
|
1422
|
-
SequencerEvent2["SEQUENCE_START"] = "SEQUENCE_START";
|
|
1423
|
-
SequencerEvent2["SEQUENCE_END"] = "SEQUENCE_END";
|
|
1424
|
-
return SequencerEvent2;
|
|
1425
|
-
})(SequencerEvent || {});
|
|
1426
|
-
var Sequencer = class {
|
|
1427
|
-
sequences = [];
|
|
1428
|
-
status = 0 /* IDLE */;
|
|
1429
|
-
minimumExecutionTime = 0;
|
|
1430
|
-
// Reset variables task is done
|
|
1431
|
-
currentSequence = null;
|
|
1432
|
-
startTimestamp = null;
|
|
1433
|
-
endTimestamp = null;
|
|
1434
|
-
// Emitter
|
|
1435
|
-
eventEmitter = new EventEmitter3();
|
|
1436
|
-
constructor(option) {
|
|
1437
|
-
if (option?.sequences) {
|
|
1438
|
-
this.sequences.push(...option.sequences);
|
|
1439
|
-
}
|
|
1440
|
-
}
|
|
1441
|
-
get getCurrentTimeStamp() {
|
|
1442
|
-
return parseInt(moment3().format("x"), 10);
|
|
1443
|
-
}
|
|
1444
|
-
get executionTime() {
|
|
1445
|
-
if (this.status === 0 /* IDLE */) {
|
|
1446
|
-
return null;
|
|
1447
|
-
}
|
|
1448
|
-
if (!this.startTimestamp) {
|
|
1449
|
-
return null;
|
|
1450
|
-
}
|
|
1451
|
-
if (this.startTimestamp && this.endTimestamp) {
|
|
1452
|
-
return this.endTimestamp - this.startTimestamp;
|
|
1453
|
-
}
|
|
1454
|
-
return this.getCurrentTimeStamp - this.startTimestamp;
|
|
1455
|
-
}
|
|
1456
|
-
pushSequence = (sequence) => {
|
|
1457
|
-
this.sequences.push(sequence);
|
|
1458
|
-
};
|
|
1459
|
-
start = async () => {
|
|
1460
|
-
if (this.status === 1 /* RUNNING */) {
|
|
1461
|
-
console.warn("Sequencer status is", this.status);
|
|
1462
|
-
return;
|
|
1463
|
-
}
|
|
1464
|
-
this.status = 1 /* RUNNING */;
|
|
1465
|
-
this.currentSequence = null;
|
|
1466
|
-
this.startTimestamp = this.getCurrentTimeStamp;
|
|
1467
|
-
this.endTimestamp = null;
|
|
1468
|
-
console.log(`Sequence started, started at ${this.startTimestamp}, MINIMUM_EXECUTION_TIME is ${this.minimumExecutionTime}`);
|
|
1469
|
-
for (let sequence of this.sequences) {
|
|
1470
|
-
console.log("Currently total execution time", this.executionTime);
|
|
1471
|
-
const sequenceStartTimeStamp = this.getCurrentTimeStamp;
|
|
1472
|
-
this.currentSequence = sequence;
|
|
1473
|
-
this.eventEmitter.emit("SEQUENCE_START" /* SEQUENCE_START */, sequence);
|
|
1474
|
-
try {
|
|
1475
|
-
await new Promise(async (resolve, reject) => {
|
|
1476
|
-
try {
|
|
1477
|
-
console.log(`Sequence ${sequence.key} start`);
|
|
1478
|
-
await sequence.task?.();
|
|
1479
|
-
const sequenceEndTimeStamp = this.getCurrentTimeStamp;
|
|
1480
|
-
const sequenceExecutionTime = sequenceEndTimeStamp - sequenceStartTimeStamp;
|
|
1481
|
-
console.log(`\u2705 Sequence ${sequence.key} done at`, sequenceEndTimeStamp);
|
|
1482
|
-
console.log("Sequence execution time", sequenceExecutionTime, "ms");
|
|
1483
|
-
if (sequence.minimumExecutionTime) {
|
|
1484
|
-
console.log(`Sequence has minimumExecutionTime`, sequence.minimumExecutionTime, "ms");
|
|
1485
|
-
if (sequenceExecutionTime < sequence.minimumExecutionTime) {
|
|
1486
|
-
const delay = sequence.minimumExecutionTime - sequenceExecutionTime;
|
|
1487
|
-
console.log(`Sequence will delay`, delay, "ms");
|
|
1488
|
-
let dotInterpreterBlocked = false;
|
|
1489
|
-
const dotInterpreter = setInterval(() => {
|
|
1490
|
-
if (dotInterpreterBlocked) {
|
|
1491
|
-
console.log("!");
|
|
1492
|
-
return;
|
|
1493
|
-
}
|
|
1494
|
-
console.log(".");
|
|
1495
|
-
}, 100);
|
|
1496
|
-
setTimeout(() => {
|
|
1497
|
-
dotInterpreterBlocked = true;
|
|
1498
|
-
clearInterval(dotInterpreter);
|
|
1499
|
-
console.log("done");
|
|
1500
|
-
resolve();
|
|
1501
|
-
}, delay);
|
|
1502
|
-
return;
|
|
1503
|
-
}
|
|
1504
|
-
console.log("Sequence execution time is greater than minimum execution time");
|
|
1505
|
-
resolve();
|
|
1506
|
-
return;
|
|
1507
|
-
}
|
|
1508
|
-
resolve();
|
|
1509
|
-
} catch (e) {
|
|
1510
|
-
reject(e);
|
|
1511
|
-
}
|
|
1512
|
-
});
|
|
1513
|
-
console.log("Out of Promise");
|
|
1514
|
-
this.eventEmitter.emit("SEQUENCE_END" /* SEQUENCE_END */, sequence);
|
|
1515
|
-
} catch (e) {
|
|
1516
|
-
if (sequence.required) {
|
|
1517
|
-
console.error(`\u{1F6AB} Sequence ${sequence.key} failed`, e);
|
|
1518
|
-
this.status = 2 /* ERROR */;
|
|
1519
|
-
this.currentSequence = null;
|
|
1520
|
-
this.endTimestamp = this.currentSequence;
|
|
1521
|
-
return Promise.reject({
|
|
1522
|
-
sequence,
|
|
1523
|
-
reason: e
|
|
1524
|
-
});
|
|
1525
|
-
}
|
|
1526
|
-
console.log(`Sequence ${sequence.key} failed`, e);
|
|
1527
|
-
this.eventEmitter.emit("SEQUENCE_END" /* SEQUENCE_END */, sequence);
|
|
1528
|
-
}
|
|
1529
|
-
}
|
|
1530
|
-
this.status = 3 /* DONE */;
|
|
1531
|
-
this.currentSequence = null;
|
|
1532
|
-
this.endTimestamp = this.currentSequence;
|
|
1533
|
-
};
|
|
1534
|
-
};
|
|
1535
|
-
|
|
1536
|
-
// src/shared/utils/try-catch/TryCatch.ts
|
|
1537
|
-
var TryCatch = class {
|
|
1538
|
-
/**
|
|
1539
|
-
* Executes a synchronous function within a try-catch block.
|
|
1540
|
-
* @template T The return type of the function.
|
|
1541
|
-
* @template E The type of the error that might be thrown (defaults to Error).
|
|
1542
|
-
* @param fn The synchronous function to execute.
|
|
1543
|
-
*@param disableLogging console.error is default way of logging on error. You can disable it by setting it true
|
|
1544
|
-
* @returns A tuple containing the result of the function and an error (null if successful).
|
|
1545
|
-
*/
|
|
1546
|
-
static function(fn, disableLogging) {
|
|
1547
|
-
try {
|
|
1548
|
-
return [
|
|
1549
|
-
null,
|
|
1550
|
-
fn()
|
|
1551
|
-
];
|
|
1552
|
-
} catch (e) {
|
|
1553
|
-
if (!disableLogging) {
|
|
1554
|
-
console.error("ERROR in TryCatch: ", e);
|
|
1555
|
-
}
|
|
1556
|
-
if (e == null) {
|
|
1557
|
-
e = new Error("Unknown error");
|
|
1558
|
-
}
|
|
1559
|
-
return [
|
|
1560
|
-
e,
|
|
1561
|
-
void 0
|
|
1562
|
-
];
|
|
1563
|
-
}
|
|
1564
|
-
}
|
|
1565
|
-
/**
|
|
1566
|
-
* Executes an asynchronous function (Promise) within a try-catch block.
|
|
1567
|
-
* @template T The resolved value type of the Promise.
|
|
1568
|
-
* @template E The type of the error that might be rejected (defaults to Error).
|
|
1569
|
-
* @param fn The Promise to await.
|
|
1570
|
-
* @param disableLogging console.error is default way of logging on error. You can disable it by setting it true
|
|
1571
|
-
* @returns A tuple containing the resolved value of the Promise and an error (null if successful).
|
|
1572
|
-
*/
|
|
1573
|
-
static async asyncFunction(fn, disableLogging) {
|
|
1574
|
-
try {
|
|
1575
|
-
const data = await fn;
|
|
1576
|
-
return [
|
|
1577
|
-
null,
|
|
1578
|
-
data
|
|
1579
|
-
];
|
|
1580
|
-
} catch (e) {
|
|
1581
|
-
if (!disableLogging) {
|
|
1582
|
-
console.error("ERROR in TryCatch: ", e);
|
|
1583
|
-
}
|
|
1584
|
-
if (e == null) {
|
|
1585
|
-
e = new Error("Unknown error");
|
|
1586
|
-
}
|
|
1587
|
-
return [
|
|
1588
|
-
e,
|
|
1589
|
-
void 0
|
|
1590
|
-
];
|
|
1591
|
-
}
|
|
1592
|
-
}
|
|
1593
|
-
};
|
|
1594
|
-
|
|
1595
|
-
// src/nodejs/constants/TransactionManagerLogLevel.ts
|
|
1596
|
-
var TransactionManagerLogLevel = /* @__PURE__ */ ((TransactionManagerLogLevel2) => {
|
|
1597
|
-
TransactionManagerLogLevel2[TransactionManagerLogLevel2["VERBOSE"] = 1] = "VERBOSE";
|
|
1598
|
-
TransactionManagerLogLevel2[TransactionManagerLogLevel2["INFO"] = 2] = "INFO";
|
|
1599
|
-
TransactionManagerLogLevel2[TransactionManagerLogLevel2["WARNING"] = 3] = "WARNING";
|
|
1600
|
-
TransactionManagerLogLevel2[TransactionManagerLogLevel2["ERROR"] = 4] = "ERROR";
|
|
1601
|
-
TransactionManagerLogLevel2[TransactionManagerLogLevel2["CRITICAL"] = 5] = "CRITICAL";
|
|
1602
|
-
return TransactionManagerLogLevel2;
|
|
1603
|
-
})(TransactionManagerLogLevel || {});
|
|
1604
|
-
|
|
1605
|
-
// src/nodejs/constants/TransactionManagerTimeoutAction.ts
|
|
1606
|
-
var TransactionManagerTimeoutAction = /* @__PURE__ */ ((TransactionManagerTimeoutAction2) => {
|
|
1607
|
-
TransactionManagerTimeoutAction2[TransactionManagerTimeoutAction2["COMMIT"] = 1] = "COMMIT";
|
|
1608
|
-
TransactionManagerTimeoutAction2[TransactionManagerTimeoutAction2["ROLLBACK"] = 2] = "ROLLBACK";
|
|
1609
|
-
return TransactionManagerTimeoutAction2;
|
|
1610
|
-
})(TransactionManagerTimeoutAction || {});
|
|
1611
|
-
|
|
1612
|
-
// src/nodejs/managers/TransactionManager.ts
|
|
1613
|
-
import EventEmitter4 from "eventemitter3";
|
|
1614
|
-
var LOG_TAG2 = "[TransactionManager]";
|
|
1615
|
-
var TransactionManager = class _TransactionManager {
|
|
1616
|
-
static DEFAULT_TIMEOUT = 60 * 1e3;
|
|
1617
|
-
static DEFAULT_ACTION = 2 /* ROLLBACK */;
|
|
1618
|
-
// Static instance
|
|
1619
|
-
static instance;
|
|
1620
|
-
// Members
|
|
1621
|
-
logLevel = 1 /* VERBOSE */;
|
|
1622
|
-
transactionTimeoutMap = /* @__PURE__ */ new Map();
|
|
1623
|
-
// Emitter
|
|
1624
|
-
emitter = new EventEmitter4();
|
|
1625
|
-
constructor() {
|
|
1626
|
-
if (this.logLevel <= 1 /* VERBOSE */) {
|
|
1627
|
-
console.log(LOG_TAG2, "TransactionManager instance initialized");
|
|
1628
|
-
}
|
|
1629
|
-
}
|
|
1630
|
-
static getInstance() {
|
|
1631
|
-
return this.instance || (this.instance = new _TransactionManager());
|
|
1632
|
-
}
|
|
1633
|
-
getTransactionLogArg(transaction) {
|
|
1634
|
-
const id = transaction?.id;
|
|
1635
|
-
return id ? `transaction(${id})` : "";
|
|
1636
|
-
}
|
|
1637
|
-
setLogLevel(logLevel) {
|
|
1638
|
-
this.logLevel = logLevel;
|
|
1639
|
-
if (this.logLevel <= 1 /* VERBOSE */) {
|
|
1640
|
-
console.log(LOG_TAG2, "log level changed to", logLevel);
|
|
1641
|
-
}
|
|
1642
|
-
}
|
|
1643
|
-
addListener(event, fn) {
|
|
1644
|
-
this.emitter.addListener(event, fn);
|
|
1645
|
-
}
|
|
1646
|
-
removeListener(event, fn) {
|
|
1647
|
-
this.emitter.removeListener(event, fn);
|
|
1648
|
-
}
|
|
1649
|
-
add(transaction, option) {
|
|
1650
|
-
if (this.transactionTimeoutMap.has(transaction)) {
|
|
1651
|
-
if (this.logLevel <= 4 /* ERROR */) {
|
|
1652
|
-
console.error(LOG_TAG2, "transaction already exists");
|
|
1653
|
-
}
|
|
1654
|
-
return;
|
|
1655
|
-
}
|
|
1656
|
-
const action = option?.timeoutAction ?? _TransactionManager.DEFAULT_ACTION;
|
|
1657
|
-
const timeout = option?.timeout ?? _TransactionManager.DEFAULT_TIMEOUT;
|
|
1658
|
-
const handler = setTimeout(this.timeout.bind(this), timeout, transaction, action);
|
|
1659
|
-
this.transactionTimeoutMap.set(transaction, {
|
|
1660
|
-
handler,
|
|
1661
|
-
action
|
|
1662
|
-
});
|
|
1663
|
-
transaction.afterCommit(this.afterCommit.bind(this));
|
|
1664
|
-
}
|
|
1665
|
-
remove(transaction) {
|
|
1666
|
-
const transactionTimeout = this.transactionTimeoutMap.get(transaction);
|
|
1667
|
-
if (transactionTimeout != null) {
|
|
1668
|
-
clearTimeout(transactionTimeout.handler);
|
|
1669
|
-
this.transactionTimeoutMap.delete(transaction);
|
|
1670
|
-
if (this.logLevel <= 1 /* VERBOSE */) {
|
|
1671
|
-
console.log(LOG_TAG2, this.getTransactionLogArg(transaction), "removed");
|
|
1672
|
-
}
|
|
1673
|
-
}
|
|
1674
|
-
}
|
|
1675
|
-
flush(action) {
|
|
1676
|
-
return Promise.allSettled(
|
|
1677
|
-
Array.from(this.transactionTimeoutMap.entries()).map(async ([transaction, transactionTimeout]) => {
|
|
1678
|
-
const handled = await this.execute(transaction, action ?? transactionTimeout.action, "flush");
|
|
1679
|
-
this.remove(transaction);
|
|
1680
|
-
return {
|
|
1681
|
-
handled,
|
|
1682
|
-
transaction
|
|
1683
|
-
};
|
|
1684
|
-
})
|
|
1685
|
-
);
|
|
1686
|
-
}
|
|
1687
|
-
async execute(transaction, action, reason) {
|
|
1688
|
-
let handled = false;
|
|
1689
|
-
const finished = transaction?.finished;
|
|
1690
|
-
if (finished != null) {
|
|
1691
|
-
if (this.logLevel <= 1 /* VERBOSE */) {
|
|
1692
|
-
console.log(LOG_TAG2, this.getTransactionLogArg(transaction), `is already handled(${finished}) after`, reason);
|
|
1693
|
-
}
|
|
1694
|
-
this.remove(transaction);
|
|
1695
|
-
return handled;
|
|
1696
|
-
}
|
|
1697
|
-
try {
|
|
1698
|
-
let finished2;
|
|
1699
|
-
switch (action) {
|
|
1700
|
-
case 2 /* ROLLBACK */: {
|
|
1701
|
-
await transaction.rollback();
|
|
1702
|
-
finished2 = "rollback";
|
|
1703
|
-
break;
|
|
1704
|
-
}
|
|
1705
|
-
case 1 /* COMMIT */: {
|
|
1706
|
-
await transaction.commit();
|
|
1707
|
-
finished2 = "commit";
|
|
1708
|
-
break;
|
|
1709
|
-
}
|
|
1710
|
-
default: {
|
|
1711
|
-
if (this.logLevel <= 4 /* ERROR */) {
|
|
1712
|
-
console.error(LOG_TAG2, `unknown action`, action);
|
|
1713
|
-
}
|
|
1714
|
-
break;
|
|
1715
|
-
}
|
|
1716
|
-
}
|
|
1717
|
-
handled = finished2 != null;
|
|
1718
|
-
if (finished2 != null) {
|
|
1719
|
-
if (this.logLevel <= 4 /* ERROR */) {
|
|
1720
|
-
console.error(LOG_TAG2, this.getTransactionLogArg(transaction), `handled(${finished2}) after`, reason);
|
|
1721
|
-
}
|
|
1722
|
-
} else {
|
|
1723
|
-
if (this.logLevel <= 4 /* ERROR */) {
|
|
1724
|
-
console.error(LOG_TAG2, this.getTransactionLogArg(transaction), `not handled \u{1F6AB}`);
|
|
1725
|
-
}
|
|
1726
|
-
}
|
|
1727
|
-
} catch (e) {
|
|
1728
|
-
console.error(e);
|
|
1729
|
-
} finally {
|
|
1730
|
-
this.remove(transaction);
|
|
1731
|
-
}
|
|
1732
|
-
return handled;
|
|
1733
|
-
}
|
|
1734
|
-
async timeout(transaction, action) {
|
|
1735
|
-
const handled = await this.execute(transaction, action, "timeout");
|
|
1736
|
-
this.emitter.emit("onUnhandledTransaction", transaction, handled);
|
|
1737
|
-
}
|
|
1738
|
-
afterCommit(transaction) {
|
|
1739
|
-
this.remove(transaction);
|
|
1740
|
-
}
|
|
1741
|
-
};
|
|
1742
|
-
|
|
1743
|
-
// src/nodejs/services/redis/RedisClient.ts
|
|
1744
|
-
import { createClient } from "redis";
|
|
1745
|
-
var LOG_PREFIX = "RedisClient";
|
|
1746
|
-
var RedisClient = class _RedisClient {
|
|
1747
|
-
options = {};
|
|
1748
|
-
status = _RedisClient.Status.STOPPED;
|
|
1749
|
-
client;
|
|
1750
|
-
constructor(options) {
|
|
1751
|
-
console.log(Date.now(), LOG_PREFIX, "initialized");
|
|
1752
|
-
if (options) {
|
|
1753
|
-
this.options = options;
|
|
1754
|
-
}
|
|
1755
|
-
if (options?.redisOptions) {
|
|
1756
|
-
this.client = createClient(options.redisOptions);
|
|
1757
|
-
} else {
|
|
1758
|
-
this.client = createClient({});
|
|
1759
|
-
}
|
|
1760
|
-
}
|
|
1761
|
-
getStatus() {
|
|
1762
|
-
return this.status;
|
|
1763
|
-
}
|
|
1764
|
-
async start() {
|
|
1765
|
-
console.log(LOG_PREFIX, "trying to start");
|
|
1766
|
-
this.client.on("connect", this.handleOnConnect);
|
|
1767
|
-
this.client.on("error", this.handleOnError);
|
|
1768
|
-
console.log("before connect");
|
|
1769
|
-
await this.client.connect();
|
|
1770
|
-
console.log("after connect");
|
|
1771
|
-
this.status = _RedisClient.Status.RUNNING;
|
|
1772
|
-
console.log(LOG_PREFIX, "now started");
|
|
1773
|
-
return this.status;
|
|
1774
|
-
}
|
|
1775
|
-
async stop() {
|
|
1776
|
-
console.log(LOG_PREFIX, "trying to stop");
|
|
1777
|
-
this.client.off("connect", this.handleOnConnect);
|
|
1778
|
-
this.client.off("error", this.handleOnError);
|
|
1779
|
-
if (this.client.isOpen) {
|
|
1780
|
-
await this.client.disconnect();
|
|
1781
|
-
}
|
|
1782
|
-
this.status = _RedisClient.Status.STOPPED;
|
|
1783
|
-
console.log(LOG_PREFIX, "now stopped");
|
|
1784
|
-
return this.status;
|
|
1785
|
-
}
|
|
1786
|
-
handleOnConnect() {
|
|
1787
|
-
console.log(LOG_PREFIX, "connected");
|
|
1788
|
-
}
|
|
1789
|
-
handleOnError(error) {
|
|
1790
|
-
console.error(LOG_PREFIX, error);
|
|
1791
|
-
}
|
|
1792
|
-
};
|
|
1793
|
-
((RedisClient2) => {
|
|
1794
|
-
let Status;
|
|
1795
|
-
((Status2) => {
|
|
1796
|
-
Status2[Status2["RUNNING"] = 0] = "RUNNING";
|
|
1797
|
-
Status2[Status2["STOPPED"] = 1] = "STOPPED";
|
|
1798
|
-
})(Status = RedisClient2.Status || (RedisClient2.Status = {}));
|
|
1799
|
-
})(RedisClient || (RedisClient = {}));
|
|
1800
|
-
|
|
1801
|
-
// src/nodejs/services/redis/RedisPublisher.ts
|
|
1802
|
-
var LOG_TAG3 = "[REDIS-PUB]";
|
|
1803
|
-
var RedisPublisher = class extends RedisClient {
|
|
1804
|
-
logging = "length";
|
|
1805
|
-
constructor(options) {
|
|
1806
|
-
super(options);
|
|
1807
|
-
console.log(Date.now(), "RedisPublisher", "initialized");
|
|
1808
|
-
}
|
|
1809
|
-
async start() {
|
|
1810
|
-
return super.start();
|
|
1811
|
-
}
|
|
1812
|
-
async stop() {
|
|
1813
|
-
return super.stop();
|
|
1814
|
-
}
|
|
1815
|
-
setLogging(logging) {
|
|
1816
|
-
this.logging = logging;
|
|
1817
|
-
}
|
|
1818
|
-
getLogging() {
|
|
1819
|
-
return this.logging;
|
|
1820
|
-
}
|
|
1821
|
-
// Make public method
|
|
1822
|
-
async publish(channel, data) {
|
|
1823
|
-
const stringifyData = typeof data !== "string" ? JSON.stringify(data) : data;
|
|
1824
|
-
switch (this.logging) {
|
|
1825
|
-
case "none": {
|
|
1826
|
-
break;
|
|
1827
|
-
}
|
|
1828
|
-
case "length": {
|
|
1829
|
-
console.log((/* @__PURE__ */ new Date()).toISOString(), LOG_TAG3, channel, `[len=${stringifyData.length}]`);
|
|
1830
|
-
break;
|
|
1831
|
-
}
|
|
1832
|
-
case "data": {
|
|
1833
|
-
console.log((/* @__PURE__ */ new Date()).toISOString(), LOG_TAG3, channel, stringifyData);
|
|
1834
|
-
break;
|
|
1835
|
-
}
|
|
1836
|
-
}
|
|
1837
|
-
await this.client.publish(channel, stringifyData);
|
|
1838
|
-
}
|
|
1839
|
-
};
|
|
1840
|
-
|
|
1841
|
-
// src/nodejs/services/redis/RedisSubscriber.ts
|
|
1842
|
-
var RedisSubscriber = class extends RedisClient {
|
|
1843
|
-
constructor(options) {
|
|
1844
|
-
super(options);
|
|
1845
|
-
console.log(Date.now(), "Subscriber", "initialized");
|
|
1846
|
-
}
|
|
1847
|
-
async subscribe(channels, listener, bufferMode) {
|
|
1848
|
-
for (const channel of castArray(channels)) {
|
|
1849
|
-
if (/\*/g.test(channel)) {
|
|
1850
|
-
await this.client.pSubscribe(channel, listener, bufferMode);
|
|
1851
|
-
} else {
|
|
1852
|
-
await this.client.subscribe(channel, listener, bufferMode);
|
|
1853
|
-
}
|
|
1854
|
-
}
|
|
1855
|
-
}
|
|
1856
|
-
async unsubscribe(channels, listener, bufferMode) {
|
|
1857
|
-
for (const channel of castArray(channels)) {
|
|
1858
|
-
if (/\*/g.test(channel)) {
|
|
1859
|
-
await this.client.pUnsubscribe(channel, listener, bufferMode);
|
|
1860
|
-
} else {
|
|
1861
|
-
await this.client.unsubscribe(channel, listener, bufferMode);
|
|
1862
|
-
}
|
|
1863
|
-
}
|
|
1864
|
-
}
|
|
1865
|
-
async start() {
|
|
1866
|
-
const status = await super.start();
|
|
1867
|
-
await this.registerListeners();
|
|
1868
|
-
return status;
|
|
1869
|
-
}
|
|
1870
|
-
async stop() {
|
|
1871
|
-
const status = await super.stop();
|
|
1872
|
-
await this.unregisterListeners();
|
|
1873
|
-
return status;
|
|
1874
|
-
}
|
|
1875
|
-
async registerListeners() {
|
|
1876
|
-
}
|
|
1877
|
-
async unregisterListeners() {
|
|
1878
|
-
}
|
|
1879
|
-
};
|
|
1880
|
-
|
|
1881
|
-
// src/nodejs/utils/sequelize-utils/SequelizeUtils.ts
|
|
1882
|
-
import { Op } from "sequelize";
|
|
1883
|
-
import { UUID } from "@powfix/uuid/node";
|
|
1884
|
-
var SequelizeUtils = class _SequelizeUtils {
|
|
1885
|
-
static decimal2Number(value) {
|
|
1886
|
-
if (value === null || value === void 0) {
|
|
1887
|
-
return value;
|
|
1888
|
-
}
|
|
1889
|
-
const parsed = Number(value);
|
|
1890
|
-
if (isNaN(parsed)) {
|
|
1891
|
-
throw new Error(`value(typeof=${typeof value}, value=${value}) iNaN(is not number)`);
|
|
1892
|
-
}
|
|
1893
|
-
return parsed;
|
|
1894
|
-
}
|
|
1895
|
-
static buildPrimaryUuidColumn = () => ({
|
|
1896
|
-
..._SequelizeUtils.buildUuidColumn({
|
|
1897
|
-
columnName: "uuid",
|
|
1898
|
-
allowNull: false,
|
|
1899
|
-
primaryKey: true,
|
|
1900
|
-
unique: true,
|
|
1901
|
-
defaultValue: () => UUID.from(UuidUtils.v4()).toBuffer()
|
|
1902
|
-
})
|
|
1903
|
-
});
|
|
1904
|
-
static buildUuidColumn(options) {
|
|
1905
|
-
const { columnName, ...overrideOptions } = options;
|
|
1906
|
-
if (overrideOptions.allowNull) {
|
|
1907
|
-
return {
|
|
1908
|
-
type: "binary(16)",
|
|
1909
|
-
get() {
|
|
1910
|
-
const value = this.getDataValue(columnName);
|
|
1911
|
-
return value != null ? UUID.from(value) : value;
|
|
1912
|
-
},
|
|
1913
|
-
set(input) {
|
|
1914
|
-
const value = input != null ? UUID.from(input).toBuffer() : input;
|
|
1915
|
-
this.setDataValue(columnName, value);
|
|
1916
|
-
},
|
|
1917
|
-
...overrideOptions
|
|
1918
|
-
};
|
|
1919
|
-
} else {
|
|
1920
|
-
return {
|
|
1921
|
-
type: "binary(16)",
|
|
1922
|
-
get() {
|
|
1923
|
-
const value = this.getDataValue(columnName);
|
|
1924
|
-
return UUID.from(value);
|
|
1925
|
-
},
|
|
1926
|
-
set(input) {
|
|
1927
|
-
const value = UUID.from(input).toBuffer();
|
|
1928
|
-
this.setDataValue(columnName, value);
|
|
1929
|
-
},
|
|
1930
|
-
...overrideOptions
|
|
1931
|
-
};
|
|
1932
|
-
}
|
|
1933
|
-
}
|
|
1934
|
-
static getNullableArrayFilter(arr) {
|
|
1935
|
-
return {
|
|
1936
|
-
[Op.or]: arr.map((value) => {
|
|
1937
|
-
if (value === null) {
|
|
1938
|
-
return { [Op.is]: value };
|
|
1939
|
-
} else if (value === NOT_NULL) {
|
|
1940
|
-
return { [Op.not]: null };
|
|
1941
|
-
} else {
|
|
1942
|
-
return { [Op.eq]: value };
|
|
1943
|
-
}
|
|
1944
|
-
})
|
|
1945
|
-
};
|
|
1946
|
-
}
|
|
1947
|
-
};
|
|
1948
|
-
|
|
1949
|
-
// src/nodejs/utils/HookUtils.ts
|
|
1950
|
-
var HookUtils = class {
|
|
1951
|
-
static getFkChanges(pFkValue, cFkValue) {
|
|
1952
|
-
const results = { pFkValue: null, cFkValue: null };
|
|
1953
|
-
if (pFkValue !== void 0 && cFkValue !== void 0) {
|
|
1954
|
-
if (pFkValue !== cFkValue) {
|
|
1955
|
-
if (pFkValue !== null) {
|
|
1956
|
-
results.pFkValue = pFkValue;
|
|
1957
|
-
}
|
|
1958
|
-
}
|
|
1959
|
-
}
|
|
1960
|
-
if (cFkValue !== null && cFkValue !== void 0) {
|
|
1961
|
-
results.cFkValue = cFkValue;
|
|
1962
|
-
}
|
|
1963
|
-
return results;
|
|
1964
|
-
}
|
|
1965
|
-
static makeModelHooks(model, fns) {
|
|
1966
|
-
return [
|
|
1967
|
-
{ model, hookType: "afterCreate", fn: fns.create },
|
|
1968
|
-
{ model, hookType: "afterBulkCreate", fn: fns.create },
|
|
1969
|
-
{ model, hookType: "afterUpdate", fn: fns.update },
|
|
1970
|
-
{ model, hookType: "afterBulkUpdate", fn: fns.update },
|
|
1971
|
-
{ model, hookType: "afterDestroy", fn: fns.destroy },
|
|
1972
|
-
{ model, hookType: "afterBulkDestroy", fn: fns.destroy }
|
|
1973
|
-
];
|
|
1974
|
-
}
|
|
1975
|
-
};
|
|
1976
|
-
export {
|
|
1977
|
-
ArrayUtils,
|
|
1978
|
-
AxiosUtils,
|
|
1979
|
-
COORDINATE,
|
|
1980
|
-
CRUD,
|
|
1981
|
-
Calc,
|
|
1982
|
-
CoordinateUtils,
|
|
1983
|
-
DATE,
|
|
1984
|
-
DISTANCE,
|
|
1985
|
-
DURATION,
|
|
1986
|
-
DateUtils,
|
|
1987
|
-
Enum,
|
|
1988
|
-
HookUtils,
|
|
1989
|
-
I18nUtils,
|
|
1990
|
-
JuminNumberUtils,
|
|
1991
|
-
NOT_NULL,
|
|
1992
|
-
NumberUtils,
|
|
1993
|
-
ObjectIdUtils,
|
|
1994
|
-
Point3Utils,
|
|
1995
|
-
RandomUtils,
|
|
1996
|
-
RedisClient,
|
|
1997
|
-
RedisPublisher,
|
|
1998
|
-
RedisSubscriber,
|
|
1999
|
-
SequelizeUtils,
|
|
2000
|
-
Sequencer,
|
|
2001
|
-
SequencerEvent,
|
|
2002
|
-
SequencerStatus,
|
|
2003
|
-
SessionManager,
|
|
2004
|
-
StringUtils,
|
|
2005
|
-
TimeService,
|
|
2006
|
-
TransactionManager,
|
|
2007
|
-
TransactionManagerLogLevel,
|
|
2008
|
-
TransactionManagerTimeoutAction,
|
|
2009
|
-
TryCatch,
|
|
2010
|
-
Uint8ArrayUtils,
|
|
2011
|
-
UuidUtils,
|
|
2012
|
-
Validator,
|
|
2013
|
-
atob,
|
|
2014
|
-
base64Polyfill,
|
|
2015
|
-
between,
|
|
2016
|
-
btoa,
|
|
2017
|
-
castArray,
|
|
2018
|
-
circularDistance,
|
|
2019
|
-
decodeBase64,
|
|
2020
|
-
encodeBase64,
|
|
2021
|
-
fallbackIfMatch,
|
|
2022
|
-
fallbackIfNull,
|
|
2023
|
-
fallbackIfNullish,
|
|
2024
|
-
fallbackIfUndefined,
|
|
2025
|
-
firstNonNullish,
|
|
2026
|
-
flatten,
|
|
2027
|
-
parseBoolean,
|
|
2028
|
-
processFirstNonNullish,
|
|
2029
|
-
pureEnum,
|
|
2030
|
-
pureEnumKeys,
|
|
2031
|
-
pureEnumValues,
|
|
2032
|
-
sleep,
|
|
2033
|
-
unflatten
|
|
2034
|
-
};
|
|
1
|
+
export * from './shared';
|
|
2
|
+
export * from './nodejs';
|