@smartico/public-api 0.0.2

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 (46) hide show
  1. package/.nvmrc +1 -0
  2. package/README.md +75 -0
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.js +269 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.modern.mjs +264 -0
  7. package/dist/index.modern.mjs.map +1 -0
  8. package/dist/service/index.d.ts +4 -0
  9. package/dist/util/Util.d.ts +51 -0
  10. package/package.json +23 -0
  11. package/src/index.ts +2 -0
  12. package/src/service/index.ts +12 -0
  13. package/src/service/types/ErrorCodes.ts +19 -0
  14. package/src/service/types/GRequest.ts +18 -0
  15. package/src/service/types/GResponse.ts +12 -0
  16. package/src/service/types/Game/GameAttemptType.ts +8 -0
  17. package/src/service/types/Game/GameCanPlayType.ts +11 -0
  18. package/src/service/types/Game/GameExternalStatus.ts +7 -0
  19. package/src/service/types/Game/GameInfo.ts +11 -0
  20. package/src/service/types/Game/GamePick.ts +104 -0
  21. package/src/service/types/Game/GameUtil.ts +30 -0
  22. package/src/service/types/SmarticoProto/GetTranslationsRequest.ts +9 -0
  23. package/src/service/types/SmarticoProto/GetTranslationsResponse.ts +8 -0
  24. package/src/service/types/SmarticoProto/ProtocolMessage.ts +6 -0
  25. package/src/service/types/SmarticoProto/ProtocolRequest.ts +8 -0
  26. package/src/service/types/SmarticoProto/ProtocolResponse.ts +8 -0
  27. package/src/service/types/SmarticoProto/PublicLabelInfo.ts +39 -0
  28. package/src/service/types/SmarticoProto/PublicProperties.ts +11 -0
  29. package/src/service/types/SmarticoProto/ResponseIdentify.ts +16 -0
  30. package/src/service/types/SmarticoProto/SAW/SAWAcknowledgeType.ts +6 -0
  31. package/src/service/types/SmarticoProto/SAW/SAWBuyInType.ts +5 -0
  32. package/src/service/types/SmarticoProto/SAW/SAWDoSpinRequest.ts +8 -0
  33. package/src/service/types/SmarticoProto/SAW/SAWDoSpinResponse.ts +18 -0
  34. package/src/service/types/SmarticoProto/SAW/SAWGameType.ts +11 -0
  35. package/src/service/types/SmarticoProto/SAW/SAWGetTemplatesRequest.ts +5 -0
  36. package/src/service/types/SmarticoProto/SAW/SAWGetTemplatesResponse.ts +8 -0
  37. package/src/service/types/SmarticoProto/SAW/SAWPrize.ts +13 -0
  38. package/src/service/types/SmarticoProto/SAW/SAWPrizeType.ts +9 -0
  39. package/src/service/types/SmarticoProto/SAW/SAWPrizeUI.ts +14 -0
  40. package/src/service/types/SmarticoProto/SAW/SAWTemplate.ts +29 -0
  41. package/src/service/types/SmarticoProto/SAW/SAWTemplateUI.ts +33 -0
  42. package/src/service/types/SmarticoProto/SAW/SAWWinSoundType.ts +14 -0
  43. package/src/service/types/SmarticoProto/TranslationArea.ts +11 -0
  44. package/src/service/types/User/UserInfo.ts +12 -0
  45. package/src/util/Util.ts +306 -0
  46. package/test/package.json +11 -0
package/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ v18.13.0
package/README.md ADDED
@@ -0,0 +1,75 @@
1
+ # The library for communication with Smartico API
2
+ - Allows to make requests and receive a response over https
3
+ - Describes data types
4
+
5
+ # Install in your application
6
+
7
+ ```bash
8
+ npm install --save @smartico/public-api
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```typescript
14
+ import { ProtocolRequest, GBaseRequest } from '@smartico/public-api';
15
+
16
+ class Example {
17
+
18
+ private static buildMessage<TRequest,TResponse>(rq: GBaseRequest): TResponse {
19
+
20
+ const message: ProtocolRequest = {
21
+ api_key: rq.label_api_key,
22
+ brand_key: rq.brand_key,
23
+ ext_user_id: rq.smartico_ext_user_id,
24
+ uuid: Util.uuid(),
25
+ ts: new Date().getTime(),
26
+ };
27
+
28
+ return message as any
29
+ }
30
+
31
+ }
32
+ ```
33
+
34
+ ## Pre-requisite for publish new version of package
35
+
36
+ ### Set new package version
37
+
38
+ ```sh
39
+ npm run build
40
+ npm version [<newversion> | major | minor | patch ]
41
+ ```
42
+
43
+ ### Manual publish new version
44
+
45
+ ```sh
46
+ npm run pub
47
+ ```
48
+
49
+ # Developing & debugging locally
50
+
51
+ ### Enable Debug changes locally
52
+
53
+ (reference article: https://terodox.tech/using-npm-link-for-package-development/)
54
+
55
+ In the public-api project console:
56
+
57
+ 1. Assure you are in the project folder (`cd <your-local-git-folder-for-this-project>/public-api `)
58
+ 2. Run:
59
+ ```sh
60
+ npm link
61
+ ```
62
+ This will create a symlink from the global `node_modules/@smartico/public-api` to your current folder - `<your-local-git-folder-for-this-project>/public-api`
63
+
64
+ Consumer project console:
65
+ ```bash
66
+ npm link @smartico/public-api
67
+ ```
68
+
69
+ Now you are ready to debug locally the library!
70
+
71
+ ### Before you deploy !!! Cleanup if you enabled the debug changes locally steps above
72
+ ```bash
73
+ npm unlink npm link @smartico/public-api
74
+ npm install npm link @smartico/public-api
75
+ ```
@@ -0,0 +1,2 @@
1
+ export { Util } from './util/Util';
2
+ export * from './service';
package/dist/index.js ADDED
@@ -0,0 +1,269 @@
1
+ var md5Typescript = require('md5-typescript');
2
+ var typescriptMap = require('typescript-map');
3
+
4
+ var Util = /*#__PURE__*/function () {
5
+ function Util() {}
6
+ Util.isNumber = function isNumber(value) {
7
+ return /^\d+$/.test(value);
8
+ };
9
+ Util.parseNumber = function parseNumber(v) {
10
+ if (Util.isNotEmpty(v)) {
11
+ var result = parseFloat(v);
12
+ if (isNaN(result)) {
13
+ return null;
14
+ }
15
+ return result;
16
+ }
17
+ return null;
18
+ };
19
+ Util.parseBoolean = function parseBoolean(v) {
20
+ return v === "true" || v === true ? true : v === "false" || v === false ? false : null;
21
+ };
22
+ Util.escapeRegExp = function escapeRegExp(v) {
23
+ if (Util.isNotEmpty(v)) {
24
+ return v.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
25
+ }
26
+ return v;
27
+ };
28
+ Util.nullToEmpty = function nullToEmpty(val) {
29
+ return this.isNotEmpty(val) ? val : "";
30
+ };
31
+ Util.nullTo0 = function nullTo0(val) {
32
+ return this.isNotNull(val) ? val : 0;
33
+ };
34
+ Util.isNotEmpty = function isNotEmpty(val) {
35
+ return typeof val !== "undefined" && val !== null && val.length > 0;
36
+ };
37
+ Util.isNotNull = function isNotNull(val) {
38
+ return typeof val !== "undefined" && val !== null;
39
+ };
40
+ Util.isNull = function isNull(val) {
41
+ return typeof val === "undefined" || val === null;
42
+ };
43
+ Util.isArrayNotEmpty = function isArrayNotEmpty(val) {
44
+ return typeof val !== "undefined" && val !== null && val.length > 0;
45
+ };
46
+ Util.isArrayEmpty = function isArrayEmpty(val) {
47
+ return typeof val === "undefined" || val === null || val.length === 0;
48
+ };
49
+ Util.isObjectEmpty = function isObjectEmpty(val) {
50
+ return Util.isNull(val) || Object.keys(val).length === 0 && val.constructor === Object;
51
+ };
52
+ Util.isMapNotEmpty = function isMapNotEmpty(val) {
53
+ return typeof val !== "undefined" && val !== null && (val.size() > 0 || val.keys().length > 0);
54
+ };
55
+ Util.isMapEmpty = function isMapEmpty(val) {
56
+ return typeof val === "undefined" || val === null || val.size() === 0 || val.keys().length === 0;
57
+ };
58
+ Util.objectToMap = function objectToMap(obj) {
59
+ if (Util.isNotNull(obj)) {
60
+ var map = new typescriptMap.TSMap();
61
+ Object.keys(obj).forEach(function (key) {
62
+ map.set(key, obj[key]);
63
+ });
64
+ return map;
65
+ }
66
+ return null;
67
+ };
68
+ Util.keyByValue = function keyByValue(obj, value) {
69
+ for (var prop in obj) {
70
+ if (obj.hasOwnProperty(prop)) {
71
+ if (obj[prop] === value) {
72
+ return prop;
73
+ }
74
+ }
75
+ }
76
+ return null;
77
+ };
78
+ Util.greaterThen0 = function greaterThen0(val) {
79
+ return this.isNotNull(val) && val > 0;
80
+ };
81
+ Util.not0 = function not0(val) {
82
+ return this.isNotNull(val) && val !== 0;
83
+ };
84
+ Util.lessThen0 = function lessThen0(val) {
85
+ return this.isNotNull(val) && val < 0;
86
+ };
87
+ Util.compareUndefined = function compareUndefined(o1, o2) {
88
+ if (this.isNotNull(o1) && this.isNull(o2)) {
89
+ return -1;
90
+ }
91
+ if (this.isNull(o1) && this.isNotNull(o2)) {
92
+ return 1;
93
+ }
94
+ return 0;
95
+ };
96
+ Util.compareArrayLength = function compareArrayLength(o1, o2) {
97
+ var result = Util.compareUndefined(o1, o2);
98
+ if (result === 0 && Util.isNotNull(o1) && Util.isNotNull(o2)) {
99
+ return o1.length < o2.length ? -1 : o1.length > o2.length ? 1 : 0;
100
+ }
101
+ return result;
102
+ };
103
+ Util.compareObject = function compareObject(a, b) {
104
+ for (var key in a) {
105
+ if (!(key in b) || a[key] !== b[key]) {
106
+ return false;
107
+ }
108
+ }
109
+ for (var _key in b) {
110
+ if (!(_key in a) || a[_key] !== b[_key]) {
111
+ return false;
112
+ }
113
+ }
114
+ return true;
115
+ };
116
+ Util.compareArrays = function compareArrays(arr1, arr2, comparator) {
117
+ Util.checkNotNull(comparator);
118
+ var result = this.compareArrayLength(arr1, arr2);
119
+ if (result === 0 && Util.isNotNull(arr1) && Util.isNotNull(arr2)) {
120
+ for (var i = 0; i < arr1.length; i++) {
121
+ result = comparator(arr1[i], arr2[i]);
122
+ if (result !== 0) {
123
+ break;
124
+ }
125
+ }
126
+ }
127
+ return result;
128
+ };
129
+ Util.compareBool = function compareBool(o1, o2) {
130
+ var result = this.compareUndefined(o1, o2);
131
+ if (result === 0 && this.isNotNull(o1) && this.isNotNull(o2)) {
132
+ return Boolean(o2) - Boolean(o1);
133
+ }
134
+ return result;
135
+ };
136
+ Util.compareNumber = function compareNumber(o1, o2) {
137
+ var result = this.compareUndefined(o1, o2);
138
+ if (result === 0 && this.isNotNull(o1) && this.isNotNull(o2)) {
139
+ return o1 === o2 ? 0 : o1 < o2 ? -1 : 1;
140
+ }
141
+ return result;
142
+ };
143
+ Util.compareString = function compareString(o1, o2) {
144
+ var result = Util.compareUndefined(o1, o2);
145
+ if (result === 0 && Util.isNotNull(o1) && Util.isNotNull(o2)) {
146
+ return o1 < o2 ? -1 : o1 > o2 ? 1 : 0;
147
+ }
148
+ return result;
149
+ };
150
+ Util.range = function range(from, to) {
151
+ return Array(to - from + 1).fill(null).map(function (_, idx) {
152
+ return from + idx;
153
+ });
154
+ };
155
+ Util.has = function has(array, val) {
156
+ if (Util.isArrayNotEmpty(array) && Util.isNotNull(val)) {
157
+ for (var i = 0; i < array.length; i++) {
158
+ if (array[i] === val) {
159
+ return true;
160
+ }
161
+ }
162
+ }
163
+ return false;
164
+ };
165
+ Util.isEmpty = function isEmpty(val) {
166
+ return typeof val === "undefined" || val === null || val.length === 0;
167
+ };
168
+ Util.checkNotNull = function checkNotNull(reference, msg) {
169
+ if (Util.isNull(reference)) {
170
+ throw new ReferenceError(msg);
171
+ }
172
+ return reference;
173
+ };
174
+ Util.randomInt = function randomInt(min, max) {
175
+ return Math.floor(Math.random() * (max - min + 1)) + min;
176
+ };
177
+ Util.randomArr = function randomArr(arr) {
178
+ if (Util.isArrayEmpty(arr)) {
179
+ return undefined;
180
+ }
181
+ return arr[Util.randomInt(0, arr.length - 1)];
182
+ };
183
+ Util.remove = function remove(arr, item) {
184
+ if (Util.isArrayNotEmpty(arr) && item) {
185
+ for (var i = 0; i < arr.length; i++) {
186
+ if (arr[i] === item) {
187
+ arr.splice(i, 1);
188
+ return true;
189
+ }
190
+ }
191
+ }
192
+ return false;
193
+ };
194
+ Util.replaceAll = function replaceAll(value, regex, replacement) {
195
+ if (Util.isNotNull(value)) {
196
+ return value.replace(new RegExp(Util.escapeRegExp(regex), "g"), replacement);
197
+ }
198
+ return value;
199
+ };
200
+ Util.to = function to(promise, errorExt) {
201
+ return promise.then(function (data) {
202
+ return [null, data];
203
+ })["catch"](function (err) {
204
+ if (errorExt) {
205
+ Object.assign(err, errorExt);
206
+ }
207
+ return [err, undefined];
208
+ });
209
+ };
210
+ Util.isObject = function isObject(item) {
211
+ return item && typeof item === "object" && !Array.isArray(item);
212
+ };
213
+ Util.merge = function merge(target) {
214
+ var sources = [].slice.call(arguments, 1);
215
+ if (!sources.length) {
216
+ return target;
217
+ }
218
+ var source = sources.shift();
219
+ if (this.isObject(target) && this.isObject(source)) {
220
+ for (var key in source) {
221
+ if (this.isObject(source[key])) {
222
+ if (!target[key]) {
223
+ var _Object$assign;
224
+ Object.assign(target, (_Object$assign = {}, _Object$assign[key] = {}, _Object$assign));
225
+ }
226
+ this.merge(target[key], source[key]);
227
+ } else if (Array.isArray(source[key])) {
228
+ var _Object$assign2;
229
+ Object.assign(target, (_Object$assign2 = {}, _Object$assign2[key] = [].concat(source[key]), _Object$assign2));
230
+ } else if (typeof source[key] !== "undefined") {
231
+ var _Object$assign3;
232
+ Object.assign(target, (_Object$assign3 = {}, _Object$assign3[key] = source[key], _Object$assign3));
233
+ }
234
+ }
235
+ }
236
+ return this.merge.apply(this, [target].concat(sources));
237
+ };
238
+ Util.deepCopy = function deepCopy(source) {
239
+ return JSON.parse(JSON.stringify(source));
240
+ };
241
+ Util.getStackTrace = function getStackTrace() {
242
+ return new Error().stack;
243
+ };
244
+ Util.shuffleArray = function shuffleArray(array) {
245
+ for (var i = array.length - 1; i > 0; i--) {
246
+ var j = Math.floor(Math.random() * (i + 1));
247
+ var _ref = [array[j], array[i]];
248
+ array[i] = _ref[0];
249
+ array[j] = _ref[1];
250
+ }
251
+ return array;
252
+ };
253
+ Util.buildValidationHash = function buildValidationHash(ext_user_id, ext_game_id, customer_id, secretKey) {
254
+ var toHash = ext_user_id + "|" + ext_game_id + "|" + customer_id + ":" + secretKey;
255
+ return md5Typescript.Md5.init(toHash);
256
+ };
257
+ return Util;
258
+ }();
259
+ Util.uuid = function () {
260
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
261
+ // eslint-disable-next-line no-mixed-operators
262
+ var r = Math.random() * 16 | 0,
263
+ v = c === "x" ? r : r & 0x3 | 0x8;
264
+ return v.toString(16);
265
+ });
266
+ };
267
+
268
+ exports.Util = Util;
269
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/util/Util.ts"],"sourcesContent":["import { Md5 } from \"md5-typescript\";\nimport {TSMap} from \"typescript-map\";\n\nclass Util {\n\n private constructor() {\n }\n\n public static isNumber(value: string): boolean {\n return /^\\d+$/.test(value);\n }\n\n public static parseNumber(v: string): number | null {\n if (Util.isNotEmpty(v)) {\n const result: number = parseFloat(v);\n if (isNaN(result)) {\n return null;\n }\n return result;\n }\n return null;\n }\n\n public static parseBoolean(v: string | boolean): boolean | null {\n return v === \"true\" || v === true ? true : v === \"false\" || v === false ? false : null;\n }\n\n public static escapeRegExp(v: string): string {\n if (Util.isNotEmpty(v)) {\n return v.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n }\n return v;\n }\n\n public static nullToEmpty(val: string): string {\n return this.isNotEmpty(val) ? val : \"\";\n }\n\n public static nullTo0(val: number): number {\n return this.isNotNull(val) ? val : 0;\n }\n\n public static isNotEmpty(val: string): boolean {\n return typeof val !== \"undefined\" && val !== null && val.length > 0;\n }\n\n public static isNotNull(val: any): boolean {\n return typeof val !== \"undefined\" && val !== null;\n }\n\n public static isNull(val: any): boolean {\n return typeof val === \"undefined\" || val === null;\n }\n\n public static isArrayNotEmpty(val: any[]): boolean {\n return typeof val !== \"undefined\" && val !== null && val.length > 0;\n }\n\n public static isArrayEmpty(val: any[]): boolean {\n return typeof val === \"undefined\" || val === null || val.length === 0;\n }\n\n public static isObjectEmpty(val: any): boolean {\n return Util.isNull(val) || (Object.keys(val).length === 0 && val.constructor === Object);\n }\n\n public static isMapNotEmpty(val: TSMap<any, any>): boolean {\n return typeof val !== \"undefined\" && val !== null && (val.size() > 0 || val.keys().length > 0);\n }\n\n public static isMapEmpty(val: TSMap<any, any>): boolean {\n return typeof val === \"undefined\" || val === null || val.size() === 0 || val.keys().length === 0;\n }\n\n public static objectToMap<K, V>(obj: any): TSMap<K, V> | null {\n if (Util.isNotNull(obj)) {\n const map: TSMap<K, V> = new TSMap();\n Object.keys(obj).forEach((key: any) => {\n map.set(key, obj[key]);\n });\n return map;\n }\n return null;\n }\n\n public static keyByValue(obj: any, value: any): string | null {\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n if (obj[prop] === value) {\n return prop;\n }\n }\n }\n return null;\n }\n\n public static greaterThen0(val: number): boolean {\n return this.isNotNull(val) && val > 0;\n }\n\n public static not0(val: number): boolean {\n return this.isNotNull(val) && val !== 0;\n }\n\n public static lessThen0(val: number): boolean {\n return this.isNotNull(val) && val < 0;\n }\n\n public static compareUndefined(o1: any, o2: any): number {\n if (this.isNotNull(o1) && this.isNull(o2)) {\n return -1;\n }\n if (this.isNull(o1) && this.isNotNull(o2)) {\n return 1;\n }\n return 0;\n }\n\n public static compareArrayLength<T>(o1: T[], o2: T[]): number {\n const result: number = Util.compareUndefined(o1, o2);\n if (result === 0 && Util.isNotNull(o1) && Util.isNotNull(o2)) {\n return o1.length < o2.length ? -1 : (o1.length > o2.length ? 1 : 0);\n }\n return result;\n }\n\n public static compareObject(a: { [key: string]: any }, b: { [key: string]: any }) {\n for (const key in a) {\n if (!(key in b) || a[key] !== b[key]) {\n return false;\n }\n }\n for (const key in b) {\n if (!(key in a) || a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n }\n\n public static compareArrays<T>(arr1: T[], arr2: T[], comparator: (t1: T, t2: T) => number): number {\n Util.checkNotNull(comparator);\n let result: number = this.compareArrayLength(arr1, arr2);\n if (result === 0 && Util.isNotNull(arr1) && Util.isNotNull(arr2)) {\n for (let i = 0; i < arr1.length; i++) {\n result = comparator(arr1[i], arr2[i]);\n if (result !== 0) {\n break;\n }\n }\n }\n return result;\n }\n\n public static compareBool(o1: boolean, o2: boolean): number {\n const result: number = this.compareUndefined(o1, o2);\n if (result === 0 && this.isNotNull(o1) && this.isNotNull(o2)) {\n return (Boolean(o2) as any) - (Boolean(o1) as any)\n }\n return result;\n }\n\n public static compareNumber(o1: number, o2: number): number {\n const result: number = this.compareUndefined(o1, o2);\n if (result === 0 && this.isNotNull(o1) && this.isNotNull(o2)) {\n return o1 === o2 ? 0 : o1 < o2 ? -1 : 1;\n }\n return result;\n }\n\n public static compareString(o1: string, o2: string): number {\n const result: number = Util.compareUndefined(o1, o2);\n if (result === 0 && Util.isNotNull(o1) && Util.isNotNull(o2)) {\n return o1 < o2 ? -1 : (o1 > o2 ? 1 : 0);\n }\n return result;\n }\n\n public static range(from: number, to: number): number[] {\n return Array(to - from + 1).fill(null).map((_, idx) => from + idx);\n }\n\n public static has(array: any[], val: any): boolean {\n if (Util.isArrayNotEmpty(array) && Util.isNotNull(val)) {\n for (let i = 0; i < array.length; i++) {\n if (array[i] === val) {\n return true;\n }\n }\n }\n return false;\n }\n\n public static isEmpty(val: string): boolean {\n return typeof val === \"undefined\" || val === null || val.length === 0;\n }\n\n public static checkNotNull<T>(reference: T, msg?: string): T {\n if (Util.isNull(reference)) {\n throw new ReferenceError(msg);\n }\n return reference;\n }\n\n public static randomInt(min: number, max: number): number {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n\n public static randomArr<T>(arr: T[]): T | undefined {\n if (Util.isArrayEmpty(arr)) {\n return undefined;\n }\n return arr[Util.randomInt(0, arr.length - 1)];\n }\n\n public static remove<T>(arr: T[], item: T): boolean {\n if (Util.isArrayNotEmpty(arr) && item) {\n for (let i: number = 0; i < arr.length; i++) {\n if (arr[i] === item) {\n arr.splice(i, 1);\n return true;\n }\n }\n }\n return false;\n }\n\n public static replaceAll(value: string, regex: string, replacement: string | number): string {\n if (Util.isNotNull(value)) {\n return value.replace(new RegExp(Util.escapeRegExp(regex), \"g\"), replacement as string);\n }\n return value;\n }\n\n public static to<T, U = any>(\n promise: Promise<T>,\n errorExt?: object\n ): Promise<[U | null, T | undefined]> {\n return promise\n .then<[null, T]>((data: T) => [null, data])\n .catch<[U, undefined]>((err) => {\n if (errorExt) {\n Object.assign(err, errorExt);\n }\n return [err, undefined];\n });\n }\n\n public static isObject(item: any): boolean {\n return (item && typeof item === \"object\" && !Array.isArray(item));\n }\n\n public static merge(target: any, ...sources: any[]): any {\n if (!sources.length) {\n return target;\n }\n const source = sources.shift();\n if (this.isObject(target) && this.isObject(source)) {\n for (const key in source) {\n if (this.isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, { [key]: {} });\n }\n this.merge(target[key], source[key]);\n } else if (Array.isArray(source[key])) {\n Object.assign(target, { [key]: [...source[key]] });\n } else if (typeof source[key] !== \"undefined\") {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n return this.merge(target, ...sources);\n }\n\n public static deepCopy(source: object): object {\n return JSON.parse(JSON.stringify(source));\n }\n\n public static uuid = () => {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n // eslint-disable-next-line no-mixed-operators\n const r = Math.random() * 16 | 0, v = c === \"x\" ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n }\n\n public static getStackTrace(): string | undefined {\n return (new Error()).stack;\n }\n\n public static shuffleArray(array: any[]) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [array[i], array[j]] = [array[j], array[i]];\n };\n return array;\n }\n\n public static buildValidationHash(ext_user_id: string, ext_game_id: number, customer_id: string, secretKey: string): string {\n const toHash = `${ext_user_id}|${ext_game_id}|${customer_id}:${secretKey}`;\n return Md5.init(toHash);\n } \n}\n\n\nexport { Util };"],"names":["Util","isNumber","value","test","parseNumber","v","isNotEmpty","result","parseFloat","isNaN","parseBoolean","escapeRegExp","replace","nullToEmpty","val","nullTo0","isNotNull","length","isNull","isArrayNotEmpty","isArrayEmpty","isObjectEmpty","Object","keys","constructor","isMapNotEmpty","size","isMapEmpty","objectToMap","obj","map","TSMap","forEach","key","set","keyByValue","prop","hasOwnProperty","greaterThen0","not0","lessThen0","compareUndefined","o1","o2","compareArrayLength","compareObject","a","b","compareArrays","arr1","arr2","comparator","checkNotNull","i","compareBool","Boolean","compareNumber","compareString","range","from","to","Array","fill","_","idx","has","array","isEmpty","reference","msg","ReferenceError","randomInt","min","max","Math","floor","random","randomArr","arr","undefined","remove","item","splice","replaceAll","regex","replacement","RegExp","promise","errorExt","then","data","err","assign","isObject","isArray","merge","target","sources","source","shift","deepCopy","JSON","parse","stringify","getStackTrace","Error","stack","shuffleArray","j","buildValidationHash","ext_user_id","ext_game_id","customer_id","secretKey","toHash","Md5","init","uuid","c","r","toString"],"mappings":"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"}
@@ -0,0 +1,264 @@
1
+ import { Md5 } from 'md5-typescript';
2
+ import { TSMap } from 'typescript-map';
3
+
4
+ class Util {
5
+ constructor() {}
6
+ static isNumber(value) {
7
+ return /^\d+$/.test(value);
8
+ }
9
+ static parseNumber(v) {
10
+ if (Util.isNotEmpty(v)) {
11
+ const result = parseFloat(v);
12
+ if (isNaN(result)) {
13
+ return null;
14
+ }
15
+ return result;
16
+ }
17
+ return null;
18
+ }
19
+ static parseBoolean(v) {
20
+ return v === "true" || v === true ? true : v === "false" || v === false ? false : null;
21
+ }
22
+ static escapeRegExp(v) {
23
+ if (Util.isNotEmpty(v)) {
24
+ return v.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
25
+ }
26
+ return v;
27
+ }
28
+ static nullToEmpty(val) {
29
+ return this.isNotEmpty(val) ? val : "";
30
+ }
31
+ static nullTo0(val) {
32
+ return this.isNotNull(val) ? val : 0;
33
+ }
34
+ static isNotEmpty(val) {
35
+ return typeof val !== "undefined" && val !== null && val.length > 0;
36
+ }
37
+ static isNotNull(val) {
38
+ return typeof val !== "undefined" && val !== null;
39
+ }
40
+ static isNull(val) {
41
+ return typeof val === "undefined" || val === null;
42
+ }
43
+ static isArrayNotEmpty(val) {
44
+ return typeof val !== "undefined" && val !== null && val.length > 0;
45
+ }
46
+ static isArrayEmpty(val) {
47
+ return typeof val === "undefined" || val === null || val.length === 0;
48
+ }
49
+ static isObjectEmpty(val) {
50
+ return Util.isNull(val) || Object.keys(val).length === 0 && val.constructor === Object;
51
+ }
52
+ static isMapNotEmpty(val) {
53
+ return typeof val !== "undefined" && val !== null && (val.size() > 0 || val.keys().length > 0);
54
+ }
55
+ static isMapEmpty(val) {
56
+ return typeof val === "undefined" || val === null || val.size() === 0 || val.keys().length === 0;
57
+ }
58
+ static objectToMap(obj) {
59
+ if (Util.isNotNull(obj)) {
60
+ const map = new TSMap();
61
+ Object.keys(obj).forEach(key => {
62
+ map.set(key, obj[key]);
63
+ });
64
+ return map;
65
+ }
66
+ return null;
67
+ }
68
+ static keyByValue(obj, value) {
69
+ for (const prop in obj) {
70
+ if (obj.hasOwnProperty(prop)) {
71
+ if (obj[prop] === value) {
72
+ return prop;
73
+ }
74
+ }
75
+ }
76
+ return null;
77
+ }
78
+ static greaterThen0(val) {
79
+ return this.isNotNull(val) && val > 0;
80
+ }
81
+ static not0(val) {
82
+ return this.isNotNull(val) && val !== 0;
83
+ }
84
+ static lessThen0(val) {
85
+ return this.isNotNull(val) && val < 0;
86
+ }
87
+ static compareUndefined(o1, o2) {
88
+ if (this.isNotNull(o1) && this.isNull(o2)) {
89
+ return -1;
90
+ }
91
+ if (this.isNull(o1) && this.isNotNull(o2)) {
92
+ return 1;
93
+ }
94
+ return 0;
95
+ }
96
+ static compareArrayLength(o1, o2) {
97
+ const result = Util.compareUndefined(o1, o2);
98
+ if (result === 0 && Util.isNotNull(o1) && Util.isNotNull(o2)) {
99
+ return o1.length < o2.length ? -1 : o1.length > o2.length ? 1 : 0;
100
+ }
101
+ return result;
102
+ }
103
+ static compareObject(a, b) {
104
+ for (const key in a) {
105
+ if (!(key in b) || a[key] !== b[key]) {
106
+ return false;
107
+ }
108
+ }
109
+ for (const key in b) {
110
+ if (!(key in a) || a[key] !== b[key]) {
111
+ return false;
112
+ }
113
+ }
114
+ return true;
115
+ }
116
+ static compareArrays(arr1, arr2, comparator) {
117
+ Util.checkNotNull(comparator);
118
+ let result = this.compareArrayLength(arr1, arr2);
119
+ if (result === 0 && Util.isNotNull(arr1) && Util.isNotNull(arr2)) {
120
+ for (let i = 0; i < arr1.length; i++) {
121
+ result = comparator(arr1[i], arr2[i]);
122
+ if (result !== 0) {
123
+ break;
124
+ }
125
+ }
126
+ }
127
+ return result;
128
+ }
129
+ static compareBool(o1, o2) {
130
+ const result = this.compareUndefined(o1, o2);
131
+ if (result === 0 && this.isNotNull(o1) && this.isNotNull(o2)) {
132
+ return Boolean(o2) - Boolean(o1);
133
+ }
134
+ return result;
135
+ }
136
+ static compareNumber(o1, o2) {
137
+ const result = this.compareUndefined(o1, o2);
138
+ if (result === 0 && this.isNotNull(o1) && this.isNotNull(o2)) {
139
+ return o1 === o2 ? 0 : o1 < o2 ? -1 : 1;
140
+ }
141
+ return result;
142
+ }
143
+ static compareString(o1, o2) {
144
+ const result = Util.compareUndefined(o1, o2);
145
+ if (result === 0 && Util.isNotNull(o1) && Util.isNotNull(o2)) {
146
+ return o1 < o2 ? -1 : o1 > o2 ? 1 : 0;
147
+ }
148
+ return result;
149
+ }
150
+ static range(from, to) {
151
+ return Array(to - from + 1).fill(null).map((_, idx) => from + idx);
152
+ }
153
+ static has(array, val) {
154
+ if (Util.isArrayNotEmpty(array) && Util.isNotNull(val)) {
155
+ for (let i = 0; i < array.length; i++) {
156
+ if (array[i] === val) {
157
+ return true;
158
+ }
159
+ }
160
+ }
161
+ return false;
162
+ }
163
+ static isEmpty(val) {
164
+ return typeof val === "undefined" || val === null || val.length === 0;
165
+ }
166
+ static checkNotNull(reference, msg) {
167
+ if (Util.isNull(reference)) {
168
+ throw new ReferenceError(msg);
169
+ }
170
+ return reference;
171
+ }
172
+ static randomInt(min, max) {
173
+ return Math.floor(Math.random() * (max - min + 1)) + min;
174
+ }
175
+ static randomArr(arr) {
176
+ if (Util.isArrayEmpty(arr)) {
177
+ return undefined;
178
+ }
179
+ return arr[Util.randomInt(0, arr.length - 1)];
180
+ }
181
+ static remove(arr, item) {
182
+ if (Util.isArrayNotEmpty(arr) && item) {
183
+ for (let i = 0; i < arr.length; i++) {
184
+ if (arr[i] === item) {
185
+ arr.splice(i, 1);
186
+ return true;
187
+ }
188
+ }
189
+ }
190
+ return false;
191
+ }
192
+ static replaceAll(value, regex, replacement) {
193
+ if (Util.isNotNull(value)) {
194
+ return value.replace(new RegExp(Util.escapeRegExp(regex), "g"), replacement);
195
+ }
196
+ return value;
197
+ }
198
+ static to(promise, errorExt) {
199
+ return promise.then(data => [null, data]).catch(err => {
200
+ if (errorExt) {
201
+ Object.assign(err, errorExt);
202
+ }
203
+ return [err, undefined];
204
+ });
205
+ }
206
+ static isObject(item) {
207
+ return item && typeof item === "object" && !Array.isArray(item);
208
+ }
209
+ static merge(target, ...sources) {
210
+ if (!sources.length) {
211
+ return target;
212
+ }
213
+ const source = sources.shift();
214
+ if (this.isObject(target) && this.isObject(source)) {
215
+ for (const key in source) {
216
+ if (this.isObject(source[key])) {
217
+ if (!target[key]) {
218
+ Object.assign(target, {
219
+ [key]: {}
220
+ });
221
+ }
222
+ this.merge(target[key], source[key]);
223
+ } else if (Array.isArray(source[key])) {
224
+ Object.assign(target, {
225
+ [key]: [...source[key]]
226
+ });
227
+ } else if (typeof source[key] !== "undefined") {
228
+ Object.assign(target, {
229
+ [key]: source[key]
230
+ });
231
+ }
232
+ }
233
+ }
234
+ return this.merge(target, ...sources);
235
+ }
236
+ static deepCopy(source) {
237
+ return JSON.parse(JSON.stringify(source));
238
+ }
239
+ static getStackTrace() {
240
+ return new Error().stack;
241
+ }
242
+ static shuffleArray(array) {
243
+ for (let i = array.length - 1; i > 0; i--) {
244
+ const j = Math.floor(Math.random() * (i + 1));
245
+ [array[i], array[j]] = [array[j], array[i]];
246
+ }
247
+ return array;
248
+ }
249
+ static buildValidationHash(ext_user_id, ext_game_id, customer_id, secretKey) {
250
+ const toHash = `${ext_user_id}|${ext_game_id}|${customer_id}:${secretKey}`;
251
+ return Md5.init(toHash);
252
+ }
253
+ }
254
+ Util.uuid = () => {
255
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, c => {
256
+ // eslint-disable-next-line no-mixed-operators
257
+ const r = Math.random() * 16 | 0,
258
+ v = c === "x" ? r : r & 0x3 | 0x8;
259
+ return v.toString(16);
260
+ });
261
+ };
262
+
263
+ export { Util };
264
+ //# sourceMappingURL=index.modern.mjs.map