@powfix/core-js 0.20.5 → 0.21.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.
Files changed (211) hide show
  1. package/dist/browser/cjs/index.browser.js +3 -0
  2. package/dist/browser/cjs/shared/utils/index.js +1 -1
  3. package/dist/browser/esm/index.browser.mjs +1 -0
  4. package/dist/browser/esm/shared/utils/index.mjs +1 -1
  5. package/dist/browser/types/index.browser.d.ts +1 -0
  6. package/dist/browser/types/shared/utils/index.d.ts +1 -0
  7. package/dist/cjs/index.js +17 -0
  8. package/dist/cjs/shared/constants/COORDINATE.js +10 -0
  9. package/dist/cjs/shared/constants/CRUD.js +22 -0
  10. package/dist/cjs/shared/constants/DATE.js +26 -0
  11. package/dist/cjs/shared/constants/DISTANCE.js +18 -0
  12. package/dist/cjs/shared/constants/DURATION.js +21 -0
  13. package/dist/cjs/shared/constants/NOT_NULL.js +4 -0
  14. package/dist/cjs/shared/constants/index.js +22 -0
  15. package/dist/cjs/shared/index.js +23 -0
  16. package/dist/cjs/shared/interfaces/Coordinate.js +2 -0
  17. package/dist/cjs/shared/interfaces/Point2.js +2 -0
  18. package/dist/cjs/shared/interfaces/Point3.js +2 -0
  19. package/dist/cjs/shared/interfaces/StorageProvider.js +2 -0
  20. package/dist/cjs/shared/interfaces/index.js +20 -0
  21. package/dist/cjs/shared/managers/SessionManager.js +134 -0
  22. package/dist/cjs/shared/managers/SessionManager.type.js +2 -0
  23. package/dist/cjs/shared/managers/index.js +18 -0
  24. package/dist/cjs/shared/scripts/base64Polyfill.js +18 -0
  25. package/dist/cjs/shared/scripts/index.js +17 -0
  26. package/dist/cjs/shared/services/index.js +17 -0
  27. package/dist/cjs/shared/services/time/TimeService.js +180 -0
  28. package/dist/cjs/shared/services/time/TimeService.type.js +2 -0
  29. package/dist/cjs/shared/services/time/index.js +18 -0
  30. package/dist/cjs/shared/types/IntRage.js +2 -0
  31. package/dist/cjs/shared/types/PartialExcept.js +2 -0
  32. package/dist/cjs/shared/types/index.js +18 -0
  33. package/dist/cjs/shared/utils/ArrayUtils.js +30 -0
  34. package/dist/cjs/shared/utils/AxiosUtils.js +53 -0
  35. package/dist/cjs/shared/utils/BooleanUtils.js +8 -0
  36. package/dist/cjs/shared/utils/Calc.js +27 -0
  37. package/dist/cjs/shared/utils/CoordinateUtils.js +42 -0
  38. package/dist/cjs/shared/utils/DateUtils.js +310 -0
  39. package/dist/cjs/shared/utils/Enum.js +36 -0
  40. package/dist/cjs/shared/utils/Enum.types.js +2 -0
  41. package/dist/cjs/shared/utils/I18nUtils.js +13 -0
  42. package/dist/cjs/shared/utils/JuminNumberUtils.js +50 -0
  43. package/dist/cjs/shared/utils/NumberUtils.js +25 -0
  44. package/dist/cjs/shared/utils/ObjectIdUtils.js +30 -0
  45. package/dist/cjs/shared/utils/Point3Utils.js +12 -0
  46. package/dist/cjs/shared/utils/RandomUtils.js +64 -0
  47. package/dist/cjs/shared/utils/Sequencer.js +148 -0
  48. package/dist/cjs/shared/utils/StringUtils.js +37 -0
  49. package/dist/cjs/shared/utils/UUID.js +320 -0
  50. package/dist/cjs/shared/utils/UUID.types.js +2 -0
  51. package/dist/cjs/shared/utils/Uint8ArrayUtils.js +13 -0
  52. package/dist/cjs/shared/utils/UuidUtils.js +77 -0
  53. package/dist/cjs/shared/utils/Validator.js +118 -0
  54. package/dist/cjs/shared/utils/global/atob.js +9 -0
  55. package/dist/cjs/shared/utils/global/base64.js +25 -0
  56. package/dist/cjs/shared/utils/global/between.js +7 -0
  57. package/dist/cjs/shared/utils/global/btoa.js +9 -0
  58. package/dist/cjs/shared/utils/global/castArray.js +6 -0
  59. package/dist/cjs/shared/utils/global/circularDistance.js +14 -0
  60. package/dist/cjs/shared/utils/global/fallbackIfMatch.js +9 -0
  61. package/dist/cjs/shared/utils/global/fallbackIfNull.js +7 -0
  62. package/dist/cjs/shared/utils/global/fallbackIfNullish.js +9 -0
  63. package/dist/cjs/shared/utils/global/fallbackIfUndefined.js +7 -0
  64. package/dist/cjs/shared/utils/global/firstNonNullish.js +13 -0
  65. package/dist/cjs/shared/utils/global/flat.js +117 -0
  66. package/dist/cjs/shared/utils/global/index.js +31 -0
  67. package/dist/cjs/shared/utils/global/processFirstNonNullish.js +11 -0
  68. package/dist/cjs/shared/utils/global/pureEnum.js +23 -0
  69. package/dist/cjs/shared/utils/global/sleep.js +5 -0
  70. package/dist/cjs/shared/utils/index.js +39 -0
  71. package/dist/cjs/shared/utils/try-catch/TryCatch.js +78 -0
  72. package/dist/cjs/shared/utils/try-catch/index.js +17 -0
  73. package/dist/esm/index.mjs +1 -0
  74. package/dist/esm/shared/constants/COORDINATE.mjs +6 -0
  75. package/dist/esm/shared/constants/CRUD.mjs +19 -0
  76. package/dist/esm/shared/constants/DATE.mjs +22 -0
  77. package/dist/esm/shared/constants/DISTANCE.mjs +14 -0
  78. package/dist/esm/shared/constants/DURATION.mjs +17 -0
  79. package/dist/esm/shared/constants/NOT_NULL.mjs +1 -0
  80. package/dist/esm/shared/constants/index.mjs +6 -0
  81. package/dist/esm/shared/index.mjs +7 -0
  82. package/dist/esm/shared/interfaces/Coordinate.mjs +1 -0
  83. package/dist/esm/shared/interfaces/Point2.mjs +1 -0
  84. package/dist/esm/shared/interfaces/Point3.mjs +1 -0
  85. package/dist/esm/shared/interfaces/StorageProvider.mjs +1 -0
  86. package/dist/esm/shared/interfaces/index.mjs +4 -0
  87. package/dist/esm/shared/managers/SessionManager.mjs +127 -0
  88. package/dist/esm/shared/managers/SessionManager.type.mjs +1 -0
  89. package/dist/esm/shared/managers/index.mjs +2 -0
  90. package/dist/esm/shared/scripts/base64Polyfill.mjs +11 -0
  91. package/dist/esm/shared/scripts/index.mjs +1 -0
  92. package/dist/esm/shared/services/index.mjs +1 -0
  93. package/dist/esm/shared/services/time/TimeService.mjs +173 -0
  94. package/dist/esm/shared/services/time/TimeService.type.mjs +1 -0
  95. package/dist/esm/shared/services/time/index.mjs +2 -0
  96. package/dist/esm/shared/types/IntRage.mjs +1 -0
  97. package/dist/esm/shared/types/PartialExcept.mjs +1 -0
  98. package/dist/esm/shared/types/index.mjs +2 -0
  99. package/dist/esm/shared/utils/ArrayUtils.mjs +26 -0
  100. package/dist/esm/shared/utils/AxiosUtils.mjs +49 -0
  101. package/dist/esm/shared/utils/BooleanUtils.mjs +5 -0
  102. package/dist/esm/shared/utils/Calc.mjs +23 -0
  103. package/dist/esm/shared/utils/CoordinateUtils.mjs +38 -0
  104. package/dist/esm/shared/utils/DateUtils.mjs +303 -0
  105. package/dist/esm/shared/utils/Enum.mjs +32 -0
  106. package/dist/esm/shared/utils/Enum.types.mjs +1 -0
  107. package/dist/esm/shared/utils/I18nUtils.mjs +6 -0
  108. package/dist/esm/shared/utils/JuminNumberUtils.mjs +46 -0
  109. package/dist/esm/shared/utils/NumberUtils.mjs +21 -0
  110. package/dist/esm/shared/utils/ObjectIdUtils.mjs +26 -0
  111. package/dist/esm/shared/utils/Point3Utils.mjs +8 -0
  112. package/dist/esm/shared/utils/RandomUtils.mjs +60 -0
  113. package/dist/esm/shared/utils/Sequencer.mjs +141 -0
  114. package/dist/esm/shared/utils/StringUtils.mjs +33 -0
  115. package/dist/esm/shared/utils/UUID.mjs +316 -0
  116. package/dist/esm/shared/utils/UUID.types.mjs +1 -0
  117. package/dist/esm/shared/utils/Uint8ArrayUtils.mjs +9 -0
  118. package/dist/esm/shared/utils/UuidUtils.mjs +40 -0
  119. package/dist/esm/shared/utils/Validator.mjs +114 -0
  120. package/dist/esm/shared/utils/global/atob.mjs +3 -0
  121. package/dist/esm/shared/utils/global/base64.mjs +21 -0
  122. package/dist/esm/shared/utils/global/between.mjs +3 -0
  123. package/dist/esm/shared/utils/global/btoa.mjs +3 -0
  124. package/dist/esm/shared/utils/global/castArray.mjs +3 -0
  125. package/dist/esm/shared/utils/global/circularDistance.mjs +11 -0
  126. package/dist/esm/shared/utils/global/fallbackIfMatch.mjs +6 -0
  127. package/dist/esm/shared/utils/global/fallbackIfNull.mjs +4 -0
  128. package/dist/esm/shared/utils/global/fallbackIfNullish.mjs +6 -0
  129. package/dist/esm/shared/utils/global/fallbackIfUndefined.mjs +4 -0
  130. package/dist/esm/shared/utils/global/firstNonNullish.mjs +10 -0
  131. package/dist/esm/shared/utils/global/flat.mjs +113 -0
  132. package/dist/esm/shared/utils/global/index.mjs +15 -0
  133. package/dist/esm/shared/utils/global/processFirstNonNullish.mjs +8 -0
  134. package/dist/esm/shared/utils/global/pureEnum.mjs +18 -0
  135. package/dist/esm/shared/utils/global/sleep.mjs +1 -0
  136. package/dist/esm/shared/utils/index.mjs +23 -0
  137. package/dist/esm/shared/utils/try-catch/TryCatch.mjs +74 -0
  138. package/dist/esm/shared/utils/try-catch/index.mjs +1 -0
  139. package/dist/node/cjs/index.nodejs.js +3 -0
  140. package/dist/node/cjs/shared/utils/index.js +1 -1
  141. package/dist/node/esm/index.nodejs.mjs +1 -0
  142. package/dist/node/esm/shared/utils/index.mjs +1 -1
  143. package/dist/node/types/index.nodejs.d.ts +1 -0
  144. package/dist/node/types/shared/utils/index.d.ts +1 -0
  145. package/dist/types/index.d.ts +1 -0
  146. package/dist/types/shared/constants/COORDINATE.d.ts +7 -0
  147. package/dist/types/shared/constants/CRUD.d.ts +9 -0
  148. package/dist/types/shared/constants/DATE.d.ts +13 -0
  149. package/dist/types/shared/constants/DISTANCE.d.ts +13 -0
  150. package/dist/types/shared/constants/DURATION.d.ts +16 -0
  151. package/dist/types/shared/constants/NOT_NULL.d.ts +1 -0
  152. package/dist/types/shared/constants/index.d.ts +6 -0
  153. package/dist/types/shared/index.d.ts +7 -0
  154. package/dist/types/shared/interfaces/Coordinate.d.ts +8 -0
  155. package/dist/types/shared/interfaces/Point2.d.ts +4 -0
  156. package/dist/types/shared/interfaces/Point3.d.ts +4 -0
  157. package/dist/types/shared/interfaces/StorageProvider.d.ts +7 -0
  158. package/dist/types/shared/interfaces/index.d.ts +4 -0
  159. package/dist/types/shared/managers/SessionManager.d.ts +15 -0
  160. package/dist/types/shared/managers/SessionManager.type.d.ts +9 -0
  161. package/dist/types/shared/managers/index.d.ts +2 -0
  162. package/dist/types/shared/scripts/base64Polyfill.d.ts +1 -0
  163. package/dist/types/shared/scripts/index.d.ts +1 -0
  164. package/dist/types/shared/services/index.d.ts +1 -0
  165. package/dist/types/shared/services/time/TimeService.d.ts +31 -0
  166. package/dist/types/shared/services/time/TimeService.type.d.ts +21 -0
  167. package/dist/types/shared/services/time/index.d.ts +2 -0
  168. package/dist/types/shared/types/IntRage.d.ts +3 -0
  169. package/dist/types/shared/types/PartialExcept.d.ts +1 -0
  170. package/dist/types/shared/types/index.d.ts +2 -0
  171. package/dist/types/shared/utils/ArrayUtils.d.ts +12 -0
  172. package/dist/types/shared/utils/AxiosUtils.d.ts +5 -0
  173. package/dist/types/shared/utils/BooleanUtils.d.ts +1 -0
  174. package/dist/types/shared/utils/Calc.d.ts +4 -0
  175. package/dist/types/shared/utils/CoordinateUtils.d.ts +8 -0
  176. package/dist/types/shared/utils/DateUtils.d.ts +24 -0
  177. package/dist/types/shared/utils/Enum.d.ts +16 -0
  178. package/dist/types/shared/utils/Enum.types.d.ts +6 -0
  179. package/dist/types/shared/utils/I18nUtils.d.ts +4 -0
  180. package/dist/types/shared/utils/JuminNumberUtils.d.ts +4 -0
  181. package/dist/types/shared/utils/NumberUtils.d.ts +4 -0
  182. package/dist/types/shared/utils/ObjectIdUtils.d.ts +4 -0
  183. package/dist/types/shared/utils/Point3Utils.d.ts +4 -0
  184. package/dist/types/shared/utils/RandomUtils.d.ts +8 -0
  185. package/dist/types/shared/utils/Sequencer.d.ts +38 -0
  186. package/dist/types/shared/utils/StringUtils.d.ts +5 -0
  187. package/dist/types/shared/utils/UUID.d.ts +147 -0
  188. package/dist/types/shared/utils/UUID.types.d.ts +2 -0
  189. package/dist/types/shared/utils/Uint8ArrayUtils.d.ts +4 -0
  190. package/dist/types/shared/utils/UuidUtils.d.ts +14 -0
  191. package/dist/types/shared/utils/Validator.d.ts +48 -0
  192. package/dist/types/shared/utils/global/atob.d.ts +2 -0
  193. package/dist/types/shared/utils/global/base64.d.ts +2 -0
  194. package/dist/types/shared/utils/global/between.d.ts +1 -0
  195. package/dist/types/shared/utils/global/btoa.d.ts +2 -0
  196. package/dist/types/shared/utils/global/castArray.d.ts +1 -0
  197. package/dist/types/shared/utils/global/circularDistance.d.ts +1 -0
  198. package/dist/types/shared/utils/global/fallbackIfMatch.d.ts +1 -0
  199. package/dist/types/shared/utils/global/fallbackIfNull.d.ts +1 -0
  200. package/dist/types/shared/utils/global/fallbackIfNullish.d.ts +1 -0
  201. package/dist/types/shared/utils/global/fallbackIfUndefined.d.ts +1 -0
  202. package/dist/types/shared/utils/global/firstNonNullish.d.ts +1 -0
  203. package/dist/types/shared/utils/global/flat.d.ts +14 -0
  204. package/dist/types/shared/utils/global/index.d.ts +15 -0
  205. package/dist/types/shared/utils/global/processFirstNonNullish.d.ts +1 -0
  206. package/dist/types/shared/utils/global/pureEnum.d.ts +17 -0
  207. package/dist/types/shared/utils/global/sleep.d.ts +1 -0
  208. package/dist/types/shared/utils/index.d.ts +23 -0
  209. package/dist/types/shared/utils/try-catch/TryCatch.d.ts +24 -0
  210. package/dist/types/shared/utils/try-catch/index.d.ts +1 -0
  211. package/package.json +10 -4
@@ -0,0 +1,6 @@
1
+ export class COORDINATE {
2
+ }
3
+ COORDINATE.LATITUDE_MIN_LENGTH = 1;
4
+ COORDINATE.LATITUDE_MAX_LENGTH = 10;
5
+ COORDINATE.LONGITUDE_MIN_LENGTH = 1;
6
+ COORDINATE.LONGITUDE_MAX_LENGTH = 11;
@@ -0,0 +1,19 @@
1
+ export var CRUD;
2
+ (function (CRUD) {
3
+ CRUD[CRUD["CREATE"] = 1] = "CREATE";
4
+ CRUD[CRUD["READ"] = 2] = "READ";
5
+ CRUD[CRUD["UPDATE"] = 3] = "UPDATE";
6
+ CRUD[CRUD["DELETE"] = 4] = "DELETE";
7
+ })(CRUD || (CRUD = {}));
8
+ (function (CRUD) {
9
+ function toString(crud) {
10
+ switch (crud) {
11
+ case CRUD.CREATE: return 'Create';
12
+ case CRUD.READ: return 'Read';
13
+ case CRUD.UPDATE: return 'Update';
14
+ case CRUD.DELETE: return 'Delete';
15
+ default: throw new Error('Unknown crud: ' + crud);
16
+ }
17
+ }
18
+ CRUD.toString = toString;
19
+ })(CRUD || (CRUD = {}));
@@ -0,0 +1,22 @@
1
+ export class DATE {
2
+ }
3
+ (function (DATE) {
4
+ let FORMAT;
5
+ (function (FORMAT) {
6
+ FORMAT[FORMAT["UNIX"] = 1] = "UNIX";
7
+ FORMAT[FORMAT["SECONDS"] = 2] = "SECONDS";
8
+ FORMAT[FORMAT["MILLISECONDS"] = 3] = "MILLISECONDS";
9
+ FORMAT[FORMAT["ISO_8601"] = 4] = "ISO_8601";
10
+ })(FORMAT = DATE.FORMAT || (DATE.FORMAT = {}));
11
+ (function (FORMAT) {
12
+ function toString(format) {
13
+ switch (format) {
14
+ case FORMAT.UNIX: return 'UNIX';
15
+ case FORMAT.SECONDS: return 'SECONDS';
16
+ case FORMAT.MILLISECONDS: return 'MILLISECONDS';
17
+ case FORMAT.ISO_8601: return 'ISO_8601';
18
+ }
19
+ }
20
+ FORMAT.toString = toString;
21
+ })(FORMAT = DATE.FORMAT || (DATE.FORMAT = {}));
22
+ })(DATE || (DATE = {}));
@@ -0,0 +1,14 @@
1
+ export class DISTANCE {
2
+ }
3
+ (function (DISTANCE) {
4
+ let UNIT;
5
+ (function (UNIT) {
6
+ UNIT["FEET"] = "FEET";
7
+ UNIT["KILOMETERS"] = "KILOMETERS";
8
+ UNIT["MILLIMETERS"] = "MILLIMETERS";
9
+ UNIT["CENTIMETERS"] = "CENTIMETERS";
10
+ UNIT["METERS"] = "METERS";
11
+ UNIT["MILES"] = "MILES";
12
+ UNIT["YARDS"] = "YARDS";
13
+ })(UNIT = DISTANCE.UNIT || (DISTANCE.UNIT = {}));
14
+ })(DISTANCE || (DISTANCE = {}));
@@ -0,0 +1,17 @@
1
+ export class DURATION {
2
+ }
3
+ (function (DURATION) {
4
+ let UNIT;
5
+ (function (UNIT) {
6
+ UNIT["NANOSECONDS"] = "NANOSECONDS";
7
+ UNIT["MICROSECONDS"] = "MICROSECONDS";
8
+ UNIT["MILLISECONDS"] = "MILLISECONDS";
9
+ UNIT["SECONDS"] = "SECONDS";
10
+ UNIT["MINUTES"] = "MINUTES";
11
+ UNIT["HOURS"] = "HOURS";
12
+ UNIT["DAYS"] = "DAYS";
13
+ UNIT["YEARS"] = "YEARS";
14
+ UNIT["DECADES"] = "DECADES";
15
+ UNIT["CENTURIES"] = "CENTURIES";
16
+ })(UNIT = DURATION.UNIT || (DURATION.UNIT = {}));
17
+ })(DURATION || (DURATION = {}));
@@ -0,0 +1 @@
1
+ export const NOT_NULL = Symbol('!null');
@@ -0,0 +1,6 @@
1
+ export * from './COORDINATE.mjs';
2
+ export * from './CRUD.mjs';
3
+ export * from './DATE.mjs';
4
+ export * from './DISTANCE.mjs';
5
+ export * from './DURATION.mjs';
6
+ export * from './NOT_NULL.mjs';
@@ -0,0 +1,7 @@
1
+ export * from './constants/index.mjs';
2
+ export * from './interfaces/index.mjs';
3
+ export * from './managers/index.mjs';
4
+ export * from './scripts/index.mjs';
5
+ export * from './services/index.mjs';
6
+ export * from './types/index.mjs';
7
+ export * from './utils/index.mjs';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export * from './Coordinate.mjs';
2
+ export * from './Point2.mjs';
3
+ export * from './Point3.mjs';
4
+ export * from './StorageProvider.mjs';
@@ -0,0 +1,127 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { jwtDecode } from "jwt-decode";
11
+ import moment from "moment";
12
+ import EventEmitter from 'eventemitter3';
13
+ export class SessionManager extends EventEmitter {
14
+ constructor(options) {
15
+ super();
16
+ // Init service parameters
17
+ this.api = options.api;
18
+ this.storageProvider = options.storageProvider;
19
+ // Logging
20
+ console.log('SessionManager initialized', Date.now(), options.api);
21
+ }
22
+ get key() {
23
+ try {
24
+ if (this.storageProvider.key) {
25
+ return this.storageProvider.key();
26
+ }
27
+ }
28
+ catch (e) {
29
+ console.error(e);
30
+ }
31
+ return SessionManager.DEFAULT_AUTHORIZATION_STORAGE_KEY;
32
+ }
33
+ hasAuthorization() {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ return !!(yield this.getAuthorization());
36
+ });
37
+ }
38
+ getAuthorization() {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ return this.storageProvider.get(this.key);
41
+ });
42
+ }
43
+ setAuthorization(authorization) {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ if (authorization === null) {
46
+ yield this.removeAuthorization();
47
+ return null;
48
+ }
49
+ let nextAuthorization = yield (() => __awaiter(this, void 0, void 0, function* () {
50
+ if (authorization === undefined) {
51
+ return yield this.getAuthorization();
52
+ }
53
+ return authorization;
54
+ }))();
55
+ if (!nextAuthorization) {
56
+ console.log('nextAuthorization is null or undefined');
57
+ return null;
58
+ }
59
+ try {
60
+ // Replace Bearer prefix
61
+ nextAuthorization = nextAuthorization.replace(/^Bearer\s+/, '');
62
+ const decoded = jwtDecode(nextAuthorization);
63
+ if (!decoded) {
64
+ console.warn('JWT decode failed');
65
+ return null;
66
+ }
67
+ console.log('Session:JWT decoded');
68
+ (() => {
69
+ console.log(' - User', decoded.uuid);
70
+ console.log(' - IAT', ...(() => {
71
+ if (!decoded.iat) {
72
+ return [decoded.iat];
73
+ }
74
+ const iat = moment.unix(decoded.iat);
75
+ if (!iat.isValid()) {
76
+ return [decoded.iat];
77
+ }
78
+ return [decoded.iat, iat.format(), iat.diff(Date.now(), 'days'), 'days left'];
79
+ })());
80
+ console.log(' - NBF', ...(() => {
81
+ if (!decoded.nbf) {
82
+ return [decoded.nbf];
83
+ }
84
+ const nbf = moment.unix(decoded.nbf);
85
+ if (!nbf.isValid()) {
86
+ return [decoded.nbf];
87
+ }
88
+ return [decoded.nbf, nbf.format(), nbf.diff(Date.now(), 'days'), 'days left'];
89
+ })());
90
+ console.log(' - EXP', ...(() => {
91
+ if (!decoded.exp) {
92
+ return [decoded.exp];
93
+ }
94
+ const exp = moment.unix(decoded.exp);
95
+ if (!exp.isValid()) {
96
+ return [decoded.exp];
97
+ }
98
+ return [decoded.exp, exp.format(), exp.diff(Date.now(), 'days'), 'days left'];
99
+ })());
100
+ })();
101
+ // AsyncStorage 에 토큰 저장
102
+ yield this.storageProvider.set(this.key, nextAuthorization);
103
+ // API Instance header 설정
104
+ this.api.defaults.headers.common.Authorization = `Bearer ${nextAuthorization}`;
105
+ // Emit
106
+ this.emit('AUTHORIZATION_CHANGED', nextAuthorization);
107
+ // Return
108
+ return nextAuthorization;
109
+ }
110
+ catch (e) {
111
+ console.error(e);
112
+ }
113
+ return null;
114
+ });
115
+ }
116
+ removeAuthorization() {
117
+ return __awaiter(this, void 0, void 0, function* () {
118
+ // API Instance header 에서 토큰 제거
119
+ delete this.api.defaults.headers.common.Authorization;
120
+ // 스토리지에서 authorization 제거
121
+ yield this.storageProvider.remove(this.key);
122
+ // Emit
123
+ this.emit('AUTHORIZATION_CHANGED', null);
124
+ });
125
+ }
126
+ }
127
+ SessionManager.DEFAULT_AUTHORIZATION_STORAGE_KEY = 'AUTHORIZATION';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './SessionManager.mjs';
2
+ export * from './SessionManager.type.mjs';
@@ -0,0 +1,11 @@
1
+ import base64 from 'base-64';
2
+ const { decode, encode } = base64;
3
+ export const base64Polyfill = () => {
4
+ if (!global.btoa) {
5
+ global.btoa = encode;
6
+ }
7
+ if (!global.atob) {
8
+ global.atob = decode;
9
+ }
10
+ console.log('base64-polyfill initialized', Date.now());
11
+ };
@@ -0,0 +1 @@
1
+ export * from './base64Polyfill.mjs';
@@ -0,0 +1 @@
1
+ export * from './time/index.mjs';
@@ -0,0 +1,173 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import EventEmitter from 'eventemitter3';
11
+ const LOG_TAG = 'TimeService';
12
+ export class TimeService extends EventEmitter {
13
+ static calculateNTPResultOffset(ntpResult) {
14
+ const { t1, t2, t3, t4 } = ntpResult;
15
+ return ((t2 - t1) + (t3 - t4)) / 2;
16
+ }
17
+ constructor(options) {
18
+ super();
19
+ // Options
20
+ this.syncInterval = options === null || options === void 0 ? void 0 : options.syncInterval;
21
+ this.clientTimeProvider = options === null || options === void 0 ? void 0 : options.clientTimeProvider;
22
+ this.serverTimeProvider = options === null || options === void 0 ? void 0 : options.serverTimeProvider;
23
+ // Bind
24
+ this.sync = this.sync.bind(this);
25
+ this.fetchServerNTPResult = this.fetchServerNTPResult.bind(this);
26
+ }
27
+ getOffset(defaultValue) {
28
+ if (this.offset !== undefined) {
29
+ return this.offset;
30
+ }
31
+ if (defaultValue !== undefined) {
32
+ return defaultValue;
33
+ }
34
+ return undefined;
35
+ }
36
+ setOffset(offset) {
37
+ return this.offset = offset;
38
+ }
39
+ getSyncedAt() {
40
+ return this.syncedAt;
41
+ }
42
+ setSyncedAt(syncedAt) {
43
+ return (this.syncedAt = syncedAt);
44
+ }
45
+ getSyncInterval() {
46
+ return this.syncInterval;
47
+ }
48
+ setSyncInterval(interval) {
49
+ this.syncInterval = interval;
50
+ // Emit
51
+ this.emit('SYNC_INTERVAL_CHANGED', interval);
52
+ if (this.syncHandler !== undefined) {
53
+ this.stopSync();
54
+ this.startSync();
55
+ }
56
+ }
57
+ getClientTimeProvider() {
58
+ return this.clientTimeProvider;
59
+ }
60
+ setClientTimeProvider(provider) {
61
+ this.clientTimeProvider = provider !== null && provider !== void 0 ? provider : undefined;
62
+ }
63
+ getClientTime() {
64
+ var _a;
65
+ return (_a = this.getClientTimeProvider()) === null || _a === void 0 ? void 0 : _a();
66
+ }
67
+ getServerTimeProvider() {
68
+ return this.serverTimeProvider;
69
+ }
70
+ setServerTimeProvider(provider) {
71
+ this.serverTimeProvider = provider !== null && provider !== void 0 ? provider : undefined;
72
+ }
73
+ getServerTime() {
74
+ const offset = this.getOffset();
75
+ if (offset == null) {
76
+ return offset;
77
+ }
78
+ const clientTime = this.getClientTime();
79
+ if (clientTime == null) {
80
+ return clientTime;
81
+ }
82
+ return clientTime + offset;
83
+ }
84
+ getTime() {
85
+ var _a, _b;
86
+ return (_b = (_a = this.getServerTime()) !== null && _a !== void 0 ? _a : this.getClientTime()) !== null && _b !== void 0 ? _b : Date.now();
87
+ }
88
+ fetchServerNTPResult(t1) {
89
+ return __awaiter(this, void 0, void 0, function* () {
90
+ try {
91
+ const provider = this.getServerTimeProvider();
92
+ if (typeof provider === 'function') {
93
+ return yield provider(t1);
94
+ }
95
+ }
96
+ catch (e) {
97
+ console.error(e);
98
+ }
99
+ return null;
100
+ });
101
+ }
102
+ sync() {
103
+ return __awaiter(this, void 0, void 0, function* () {
104
+ try {
105
+ // T1 (Client Request Time)
106
+ const requestedAt = Date.now();
107
+ // Fetch server time from server
108
+ const serverNtpResult = yield this.fetchServerNTPResult(requestedAt);
109
+ // Check is null
110
+ if (serverNtpResult === null) {
111
+ console.warn(LOG_TAG, 'Failed to get server time');
112
+ return null;
113
+ }
114
+ // T2 (Server Receive Time)
115
+ const { t2 } = serverNtpResult;
116
+ // Check is not a number
117
+ if (isNaN(Number(t2))) {
118
+ // Not a Number
119
+ console.error(LOG_TAG, 'invalid server time(t2), not a number', t2);
120
+ return null;
121
+ }
122
+ // T3 (Server Transmit Time)
123
+ const { t3 } = serverNtpResult;
124
+ // Check is not a number
125
+ if (isNaN(Number(t3))) {
126
+ // Not a Number
127
+ console.error(LOG_TAG, 'invalid server time(t2), not a number', t2);
128
+ return null;
129
+ }
130
+ // T4 (Client Receive Time)
131
+ const receivedAt = Date.now();
132
+ const ntpResult = {
133
+ t1: requestedAt,
134
+ t2: t2,
135
+ t3: t3,
136
+ t4: receivedAt,
137
+ };
138
+ // Calculate offset
139
+ const offset = TimeService.calculateNTPResultOffset(ntpResult);
140
+ // Save calculated offset
141
+ this.setOffset(offset);
142
+ // Mark synced timestamp
143
+ const syncedAt = Date.now();
144
+ this.setSyncedAt(syncedAt);
145
+ this.emit('SYNCED', offset, syncedAt);
146
+ }
147
+ catch (e) {
148
+ console.error(e);
149
+ }
150
+ return null;
151
+ });
152
+ }
153
+ startSync() {
154
+ if (this.syncHandler != null) {
155
+ console.warn('sync is already started');
156
+ return;
157
+ }
158
+ const syncInterval = this.getSyncInterval();
159
+ if (syncInterval == null || syncInterval <= 0) {
160
+ console.warn('sync is not started', 'syncInterval', syncInterval);
161
+ return;
162
+ }
163
+ this.syncHandler = setInterval(this.sync.bind(this), syncInterval);
164
+ }
165
+ ;
166
+ stopSync() {
167
+ if (this.syncHandler != null) {
168
+ clearInterval(this.syncHandler);
169
+ this.syncHandler = undefined;
170
+ }
171
+ }
172
+ ;
173
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from "./TimeService.mjs";
2
+ export * from "./TimeService.type.mjs";
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './IntRage.mjs';
2
+ export * from './PartialExcept.mjs';
@@ -0,0 +1,26 @@
1
+ import { castArray } from "./global/index.mjs";
2
+ export class ArrayUtils {
3
+ static castArray(value) {
4
+ return castArray(value);
5
+ }
6
+ /**
7
+ * 객체를 요소로 가지는 배열에서 가장 큰 값(Property)를 가지는 객체를 반환한다
8
+ * @param e 객체 배열
9
+ * @param key 값을 비교할 Property 키
10
+ */
11
+ static getGreatestObject(e, key) {
12
+ return e.reduce((prev, current) => ((prev[key] > current[key] ? prev : current)));
13
+ }
14
+ static removeDuplicate(arr) {
15
+ return [...new Set(arr)];
16
+ }
17
+ static removeObjectDuplicate(arr, key) {
18
+ return arr.filter((v, i, self) => (i === self.findIndex(e => (e[key] === v[key]))));
19
+ }
20
+ static allValuesEqual(...values) {
21
+ if (values.length === 0) {
22
+ return true;
23
+ }
24
+ return values.every((value) => value === values[0]);
25
+ }
26
+ }
@@ -0,0 +1,49 @@
1
+ export class AxiosUtils {
2
+ static headerValue2String(value) {
3
+ if (value === undefined) {
4
+ return null;
5
+ }
6
+ if (value === null || typeof value === 'string') {
7
+ return value;
8
+ }
9
+ if (Array.isArray(value)) {
10
+ if (value.length > 0) {
11
+ for (const e of value) {
12
+ if (typeof e === 'string') {
13
+ return e;
14
+ }
15
+ }
16
+ // There is no any values having string type
17
+ return null;
18
+ }
19
+ else {
20
+ return null;
21
+ }
22
+ }
23
+ return String(value);
24
+ }
25
+ static headerValue2Number(value) {
26
+ if (value === undefined) {
27
+ return null;
28
+ }
29
+ if (value === null || typeof value === 'number') {
30
+ return value;
31
+ }
32
+ if (Array.isArray(value)) {
33
+ if (value.length > 0) {
34
+ for (const e of value) {
35
+ if (typeof e === 'number') {
36
+ return e;
37
+ }
38
+ }
39
+ // There is no any values having string type
40
+ return null;
41
+ }
42
+ else {
43
+ return null;
44
+ }
45
+ }
46
+ const result = Number(value);
47
+ return isNaN(result) ? null : result;
48
+ }
49
+ }
@@ -0,0 +1,5 @@
1
+ export function parseBoolean(value, defaultValue) {
2
+ if (value === undefined || value === null)
3
+ return defaultValue;
4
+ return (value === 'true' || value === true) || (value === 1 || value === '1');
5
+ }
@@ -0,0 +1,23 @@
1
+ export class Calc {
2
+ static average(...values) {
3
+ const length = values.length;
4
+ if (length === 0) {
5
+ return NaN;
6
+ }
7
+ let sum = 0;
8
+ for (let i = 0; i < length; ++i) {
9
+ sum += values[i];
10
+ }
11
+ return sum / length;
12
+ }
13
+ static median(...values) {
14
+ const len = values.length;
15
+ if (len === 0)
16
+ return NaN;
17
+ const sorted = values.slice().sort((a, b) => a - b); // O(n log n)
18
+ const mid = len >> 1;
19
+ return len % 2 === 0
20
+ ? (sorted[mid - 1] + sorted[mid]) / 2
21
+ : sorted[mid];
22
+ }
23
+ }
@@ -0,0 +1,38 @@
1
+ export class CoordinateUtils {
2
+ static isValidLatitude(latitude) {
3
+ return /^-?([0-8]?[0-9]|90)(\.[0-9]{1,15})$/.test(latitude.toString());
4
+ }
5
+ static isValidLongitude(longitude) {
6
+ return /^-?([0-9]{1,2}|1[0-7][0-9]|180)(\.[0-9]{1,14})$/.test(longitude.toString());
7
+ }
8
+ static isValidLatitudeLongitude(latitude, longitude) {
9
+ return CoordinateUtils.isValidLatitude(latitude) && CoordinateUtils.isValidLongitude(longitude);
10
+ }
11
+ static isValidCoordinate(coordinate) {
12
+ return this.isValidLatitudeLongitude(coordinate.latitude, coordinate.longitude);
13
+ }
14
+ static crowDistance(...coordinates) {
15
+ if (coordinates.length <= 2) {
16
+ const toRad = (value) => value * Math.PI / 180;
17
+ const c1 = coordinates[0];
18
+ const c2 = coordinates[1];
19
+ if (!c1 || !c2) {
20
+ return 0;
21
+ }
22
+ const R = 6371e3;
23
+ const dLat = toRad(c2.latitude - c1.latitude);
24
+ const dLon = toRad(c2.longitude - c1.longitude);
25
+ const lat1 = toRad(c1.latitude);
26
+ const lat2 = toRad(c2.latitude);
27
+ const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
28
+ Math.sin(dLon / 2) * Math.sin(dLon / 2) * Math.cos(lat1) * Math.cos(lat2);
29
+ const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
30
+ return R * c;
31
+ }
32
+ let totalDistance = 0;
33
+ for (let i = 0; i < coordinates.length - 1; ++i) {
34
+ totalDistance += this.crowDistance(coordinates[i], coordinates[i + 1]);
35
+ }
36
+ return totalDistance;
37
+ }
38
+ }