topkat-utils 1.1.13 → 1.1.14

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 (76) hide show
  1. package/dist/index.d.ts +36 -0
  2. package/dist/index.js +58 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/src/array-utils.d.ts +56 -0
  5. package/dist/src/array-utils.js +160 -0
  6. package/dist/src/array-utils.js.map +1 -0
  7. package/dist/src/config.d.ts +44 -0
  8. package/dist/src/config.js +66 -0
  9. package/dist/src/config.js.map +1 -0
  10. package/dist/src/date-utils.d.ts +100 -0
  11. package/dist/src/date-utils.js +407 -0
  12. package/dist/src/date-utils.js.map +1 -0
  13. package/dist/src/env-utils.d.ts +8 -0
  14. package/dist/src/env-utils.js +38 -0
  15. package/dist/src/env-utils.js.map +1 -0
  16. package/dist/src/error-utils.d.ts +8 -0
  17. package/dist/src/error-utils.js +135 -0
  18. package/dist/src/error-utils.js.map +1 -0
  19. package/dist/src/is-empty.d.ts +1 -0
  20. package/dist/src/is-empty.js +13 -0
  21. package/dist/src/is-empty.js.map +1 -0
  22. package/dist/src/is-object.d.ts +2 -0
  23. package/dist/src/is-object.js +7 -0
  24. package/dist/src/is-object.js.map +1 -0
  25. package/dist/src/isset.d.ts +1 -0
  26. package/dist/src/isset.js +12 -0
  27. package/dist/src/isset.js.map +1 -0
  28. package/dist/src/logger-utils.d.ts +76 -0
  29. package/dist/src/logger-utils.js +484 -0
  30. package/dist/src/logger-utils.js.map +1 -0
  31. package/dist/src/loop-utils.d.ts +40 -0
  32. package/dist/src/loop-utils.js +182 -0
  33. package/dist/src/loop-utils.js.map +1 -0
  34. package/dist/src/math-utils.d.ts +23 -0
  35. package/dist/src/math-utils.js +59 -0
  36. package/dist/src/math-utils.js.map +1 -0
  37. package/dist/src/mongo-utils.d.ts +11 -0
  38. package/dist/src/mongo-utils.js +63 -0
  39. package/dist/src/mongo-utils.js.map +1 -0
  40. package/dist/src/object-utils.d.ts +96 -0
  41. package/dist/src/object-utils.js +409 -0
  42. package/dist/src/object-utils.js.map +1 -0
  43. package/dist/src/private/config.d.ts +44 -0
  44. package/dist/src/private/config.js +66 -0
  45. package/dist/src/private/config.js.map +1 -0
  46. package/dist/src/private/error-handler.d.ts +10 -0
  47. package/dist/src/private/error-handler.js +46 -0
  48. package/dist/src/private/error-handler.js.map +1 -0
  49. package/dist/src/private/types.d.ts +5 -0
  50. package/dist/src/private/types.js +3 -0
  51. package/dist/src/private/types.js.map +1 -0
  52. package/dist/src/regexp-utils.d.ts +12 -0
  53. package/dist/src/regexp-utils.js +45 -0
  54. package/dist/src/regexp-utils.js.map +1 -0
  55. package/dist/src/remove-circular-json-stringify.d.ts +1 -0
  56. package/dist/src/remove-circular-json-stringify.js +21 -0
  57. package/dist/src/remove-circular-json-stringify.js.map +1 -0
  58. package/dist/src/string-utils.d.ts +77 -0
  59. package/dist/src/string-utils.js +267 -0
  60. package/dist/src/string-utils.js.map +1 -0
  61. package/dist/src/tests-utils.d.ts +21 -0
  62. package/dist/src/tests-utils.js +80 -0
  63. package/dist/src/tests-utils.js.map +1 -0
  64. package/dist/src/timer-utils.d.ts +16 -0
  65. package/dist/src/timer-utils.js +146 -0
  66. package/dist/src/timer-utils.js.map +1 -0
  67. package/dist/src/transaction-utils.d.ts +14 -0
  68. package/dist/src/transaction-utils.js +157 -0
  69. package/dist/src/transaction-utils.js.map +1 -0
  70. package/dist/src/validation-utils.d.ts +80 -0
  71. package/dist/src/validation-utils.js +249 -0
  72. package/dist/src/validation-utils.js.map +1 -0
  73. package/dist/src/wtf-utils.d.ts +7 -0
  74. package/dist/src/wtf-utils.js +88 -0
  75. package/dist/src/wtf-utils.js.map +1 -0
  76. package/package.json +1 -1
@@ -0,0 +1,409 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.unflattenObject = exports.flattenObject = exports.mergeDeepConfigurable = exports.mergeDeepOverrideArrays = exports.mergeDeep = exports.ensureObjectProp = exports.sortObjKeyAccordingToValue = exports.objFilterUndefinedRecursive = exports.readOnlyForAll = exports.reassignForbidden = exports.readOnly = exports.objFilterUndefined = exports.deleteByAddress = exports.filterKeys = exports.deepClone = exports.cloneObject = exports.mergeMixins = exports.objForceWriteIfNotSet = exports.objForceWrite = exports.findByAddressAll = exports.findByAddress = exports.has = exports.simpleObjectMaskOrSelect = void 0;
13
+ var error_utils_1 = require("./error-utils");
14
+ var loop_utils_1 = require("./loop-utils");
15
+ var isset_1 = require("./isset");
16
+ var is_object_1 = require("./is-object");
17
+ var error_handler_1 = require("./private/error-handler");
18
+ /**
19
+ *
20
+ * @param {Object} object main object
21
+ * @param {String[]} maskedOrSelectedFields array of fields
22
+ * @param {Boolean} isMask default: true; determine the behavior of the function. If is mask, selected fields will not appear in the resulting object. If it's a select, only selected fields will appear.
23
+ * @param {Boolean} deleteKeysInsteadOfReturningAnewObject default:false; modify the existing object instead of creating a new instance
24
+ */
25
+ function simpleObjectMaskOrSelect(object, maskedOrSelectedFields, isMask, deleteKeysInsteadOfReturningAnewObject) {
26
+ if (isMask === void 0) { isMask = true; }
27
+ if (deleteKeysInsteadOfReturningAnewObject === void 0) { deleteKeysInsteadOfReturningAnewObject = false; }
28
+ var allKeys = Object.keys(object);
29
+ var keysToMask = allKeys.filter(function (keyName) {
30
+ if (isMask)
31
+ return maskedOrSelectedFields.includes(keyName);
32
+ else
33
+ return !maskedOrSelectedFields.includes(keyName);
34
+ });
35
+ if (deleteKeysInsteadOfReturningAnewObject) {
36
+ keysToMask.forEach(function (keyNameToDelete) { return delete object[keyNameToDelete]; });
37
+ return object;
38
+ }
39
+ else {
40
+ return allKeys.reduce(function (newObject, key) {
41
+ if (!keysToMask.includes(key))
42
+ newObject[key] = object[key];
43
+ return newObject;
44
+ }, {});
45
+ }
46
+ }
47
+ exports.simpleObjectMaskOrSelect = simpleObjectMaskOrSelect;
48
+ /**
49
+ * check if **object OR array** has property Safely (avoid cannot read property x of null and such)
50
+ * @param {Object} obj object to test against
51
+ * @param {string} addr `a.b.c.0.1` will test if myObject has props a that has prop b. Work wit arrays as well (like `arr.0`)
52
+ */
53
+ function has(obj, addr) {
54
+ if (!(0, isset_1.isset)(obj) || typeof obj !== 'object')
55
+ return;
56
+ var propsArr = addr.replace(/\.?\[(\d+)\]/g, '.$1').split('.'); // replace a[3] => a.3;
57
+ var objChain = obj;
58
+ return propsArr.every(function (prop) {
59
+ objChain = objChain[prop];
60
+ return (0, isset_1.isset)(objChain);
61
+ });
62
+ }
63
+ exports.has = has;
64
+ /** Find address in an object "a.b.c" IN { a : { b : {c : 'blah' }}} RETURNS 'blah'
65
+ * @param obj
66
+ * @param addr accept syntax like "obj.subItem.[0].sub2" OR "obj.subItem.0.sub2" OR "obj.subItem[0].sub2"
67
+ * @returns the last item of the chain OR undefined if not found
68
+ */
69
+ function findByAddress(obj, addr) {
70
+ if (addr === '')
71
+ return obj;
72
+ if (!(0, isset_1.isset)(obj) || typeof obj !== 'object')
73
+ return console.warn('Main object in `findByAddress` function is undefined or has the wrong type');
74
+ var propsArr = addr.replace(/\.?\[(\d+)\]/g, '.$1').split('.'); // replace .[4] AND [4] TO .4
75
+ var objRef = propsArr.reduce(function (objChain, prop) {
76
+ if (!(0, isset_1.isset)(objChain) || typeof objChain !== 'object' || !(0, isset_1.isset)(objChain[prop]))
77
+ return;
78
+ else
79
+ return objChain[prop];
80
+ }, obj);
81
+ return objRef;
82
+ }
83
+ exports.findByAddress = findByAddress;
84
+ function findByAddressAll(obj, addr, returnAddresses) {
85
+ if (returnAddresses === void 0) { returnAddresses = false; }
86
+ (0, error_utils_1.err500IfNotSet)({ obj: obj, addr: addr });
87
+ if (addr === '')
88
+ return obj;
89
+ var addrRegexp = new RegExp('^' + addr
90
+ .replace(/\.?\[(\d+)\]/g, '.$1') // replace .[4] AND [4] TO .4
91
+ .replace(/\./g, '\\.')
92
+ .replace(/\.\*/g, '.[^.]+') // replace * by [^. (all but a point)]
93
+ + '$');
94
+ var matchingItems = [];
95
+ (0, loop_utils_1.recursiveGenericFunctionSync)(obj, function (item, address) {
96
+ if (addrRegexp.test(address))
97
+ matchingItems.push(returnAddresses ? [address, item] : item);
98
+ });
99
+ return matchingItems;
100
+ }
101
+ exports.findByAddressAll = findByAddressAll;
102
+ /** Enforce writing subItems. Eg: user.name.blah will ensure all are set until the writing of the last item
103
+ * NOTE: doesn't work with arrays
104
+ */
105
+ function objForceWrite(obj, addr, item) {
106
+ var chunks = addr.replace(/\.?\[(\d+)\]/g, '.[$1').split('.');
107
+ var lastItem = obj;
108
+ chunks.forEach(function (chunkRaw, i) {
109
+ var chunk = chunkRaw.replace(/^\[/, '');
110
+ if (i === chunks.length - 1)
111
+ lastItem[chunk] = item;
112
+ else if (!(0, isset_1.isset)(lastItem[chunk])) {
113
+ var nextChunk = chunks[i + 1];
114
+ if ((0, isset_1.isset)(nextChunk) && nextChunk.startsWith('['))
115
+ lastItem[chunk] = [];
116
+ else
117
+ lastItem[chunk] = {};
118
+ }
119
+ else if (typeof lastItem[chunk] !== 'object')
120
+ throw new error_handler_1.dataValidationUtilErrorHandler("itemNotTypeObjectOrArrayInAddrChainForObjForceWrite", 500, { origin: 'Validator', chunks: chunks, actualValueOfItem: lastItem[chunk], actualChunk: chunk });
121
+ lastItem = lastItem[chunk];
122
+ });
123
+ }
124
+ exports.objForceWrite = objForceWrite;
125
+ /** Enforce writing subItems, only if obj.addr is empty.
126
+ * Eg: user.name.blah will ensure all are set until the writing of the last item
127
+ * if user.name.blah has a value it will not change it.
128
+ * NOTE: doesn't work with arrays
129
+ */
130
+ function objForceWriteIfNotSet(obj, addr, item) {
131
+ if (!(0, isset_1.isset)(findByAddress(obj, addr)))
132
+ return objForceWrite(obj, addr, item);
133
+ }
134
+ exports.objForceWriteIfNotSet = objForceWriteIfNotSet;
135
+ /** Merge mixins into class. Use it in the constructor like: mergeMixins(this, {myMixin: true}) */
136
+ function mergeMixins(that) {
137
+ var mixins = [];
138
+ for (var _i = 1; _i < arguments.length; _i++) {
139
+ mixins[_i - 1] = arguments[_i];
140
+ }
141
+ mixins.forEach(function (mixin) {
142
+ for (var method in mixin) {
143
+ that[method] = mixin[method];
144
+ }
145
+ });
146
+ }
147
+ exports.mergeMixins = mergeMixins;
148
+ function cloneObject(o) {
149
+ return JSON.parse(JSON.stringify(o));
150
+ }
151
+ exports.cloneObject = cloneObject;
152
+ /** Deep clone. WILL REMOVE circular references */
153
+ function deepClone(obj, cache) {
154
+ if (cache === void 0) { cache = []; }
155
+ var copy;
156
+ // usefull to not modify 1st level objet by lower levels
157
+ // this is required for the same object to be referenced not in a redundant way
158
+ var newCache = __spreadArray([], cache, true);
159
+ if (obj instanceof Date)
160
+ return new Date(obj);
161
+ // Handle Array
162
+ if (Array.isArray(obj)) {
163
+ if (newCache.includes(obj))
164
+ return [];
165
+ newCache.push(obj);
166
+ copy = [];
167
+ for (var i = 0, len = obj.length; i < len; i++) {
168
+ copy[i] = deepClone(obj[i], newCache);
169
+ }
170
+ return copy;
171
+ }
172
+ if (typeof obj === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype) {
173
+ if (newCache.includes(obj))
174
+ return {};
175
+ newCache.push(obj);
176
+ copy = {};
177
+ for (var key in obj) {
178
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
179
+ copy[key] = deepClone(obj[key], newCache);
180
+ }
181
+ }
182
+ return copy;
183
+ }
184
+ return obj; // number, string...
185
+ }
186
+ exports.deepClone = deepClone;
187
+ /**
188
+ * @param {Object} obj the object on which we want to filter the keys
189
+ * @param {function} filterFunc function that returns true if the key match the wanted criteria
190
+ */
191
+ function filterKeys(obj, filter) {
192
+ var clone = cloneObject(obj);
193
+ (0, loop_utils_1.recursiveGenericFunctionSync)(obj, function (item, addr, lastElementKey) {
194
+ if (!filter(lastElementKey))
195
+ deleteByAddress(clone, addr.split('.'));
196
+ });
197
+ return clone;
198
+ }
199
+ exports.filterKeys = filterKeys;
200
+ /**
201
+ * @param {Object} obj the object on which we want to delete a property
202
+ * @param {Array} addr addressArray on which to delete the property
203
+ */
204
+ function deleteByAddress(obj, addr) {
205
+ var current = obj;
206
+ for (var i = 0; i < addr.length - 2; i++)
207
+ current = current[addr[i]];
208
+ delete current[addr[addr.length - 1]];
209
+ }
210
+ exports.deleteByAddress = deleteByAddress;
211
+ /** Remove all key/values pair if value is undefined */
212
+ function objFilterUndefined(o) {
213
+ Object.keys(o).forEach(function (k) { return !(0, isset_1.isset)(o[k]) && delete o[k]; });
214
+ return o;
215
+ }
216
+ exports.objFilterUndefined = objFilterUndefined;
217
+ /** Lock all 1st level props of an object to read only */
218
+ function readOnly(o) {
219
+ var throwErr = function () { throw new error_handler_1.dataValidationUtilErrorHandler('Cannot modify object that is read only', 500); };
220
+ return new Proxy(o, {
221
+ set: throwErr,
222
+ defineProperty: throwErr,
223
+ deleteProperty: throwErr,
224
+ });
225
+ }
226
+ exports.readOnly = readOnly;
227
+ /** Fields of the object can be created BUT NOT reassignated */
228
+ function reassignForbidden(o) {
229
+ return new Proxy(o, {
230
+ defineProperty: function (that, key, value) {
231
+ if (key in that)
232
+ throw new error_handler_1.dataValidationUtilErrorHandler("Cannot reassign the property ".concat(key.toString(), " of this object"), 500);
233
+ else {
234
+ that[key] = value;
235
+ return true;
236
+ }
237
+ },
238
+ deleteProperty: function (_, key) {
239
+ throw new error_handler_1.dataValidationUtilErrorHandler("Cannot delete the property ".concat(key.toString(), " of this object"), 500);
240
+ }
241
+ });
242
+ }
243
+ exports.reassignForbidden = reassignForbidden;
244
+ /** All fileds and subFields of the object will become readOnly */
245
+ function readOnlyForAll(object) {
246
+ (0, loop_utils_1.recursiveGenericFunctionSync)(object, function (item, _, lastElementKey, parent) {
247
+ if (typeof item === 'object')
248
+ parent[lastElementKey] = readOnly(item);
249
+ });
250
+ return object;
251
+ }
252
+ exports.readOnlyForAll = readOnlyForAll;
253
+ function objFilterUndefinedRecursive(obj) {
254
+ if (obj) {
255
+ var flattenedObj_1 = flattenObject(obj);
256
+ Object.keys(flattenedObj_1).forEach(function (key) {
257
+ if (!(0, isset_1.isset)(flattenedObj_1[key])) {
258
+ delete flattenedObj_1[key];
259
+ }
260
+ });
261
+ return unflattenObject(flattenedObj_1);
262
+ }
263
+ else
264
+ return obj;
265
+ }
266
+ exports.objFilterUndefinedRecursive = objFilterUndefinedRecursive;
267
+ function sortObjKeyAccordingToValue(unorderedObj, ascending) {
268
+ if (ascending === void 0) { ascending = true; }
269
+ var orderedObj = {};
270
+ var sortingConst = ascending ? 1 : -1;
271
+ Object.keys(unorderedObj)
272
+ .sort(function (keyA, keyB) { return unorderedObj[keyA] < unorderedObj[keyB] ? sortingConst : -sortingConst; })
273
+ .forEach(function (key) { orderedObj[key] = unorderedObj[key]; });
274
+ return orderedObj;
275
+ }
276
+ exports.sortObjKeyAccordingToValue = sortObjKeyAccordingToValue;
277
+ /**
278
+ * Make default value if object key do not exist
279
+ * @param {object} obj
280
+ * @param {string} addr
281
+ * @param {any} defaultValue
282
+ * @param {function} callback (obj[addr]) => processValue. Eg: myObjAddr => myObjAddr.push('bikou')
283
+ * @return obj[addr] eventually processed by the callback
284
+ */
285
+ function ensureObjectProp(obj, addr, defaultValue, callback) {
286
+ if (callback === void 0) { callback = function (o) { return o; }; }
287
+ (0, error_utils_1.err500IfNotSet)({ obj: obj, addr: addr, defaultValue: defaultValue, callback: callback });
288
+ if (!(0, isset_1.isset)(obj[addr]))
289
+ obj[addr] = defaultValue;
290
+ callback(obj[addr]);
291
+ return obj[addr];
292
+ }
293
+ exports.ensureObjectProp = ensureObjectProp;
294
+ /** object and array merge
295
+ * @warn /!\ Array will be merged and duplicate values will be deleted /!\
296
+ * @return {Object} new object result from merge
297
+ * NOTE: objects in params will NOT be modified*/
298
+ function mergeDeep() {
299
+ var objects = [];
300
+ for (var _i = 0; _i < arguments.length; _i++) {
301
+ objects[_i] = arguments[_i];
302
+ }
303
+ return mergeDeepConfigurable.apply(void 0, __spreadArray([function (previousVal, currentVal) { return __spreadArray(__spreadArray([], previousVal, true), currentVal, true).filter(function (elm, i, arr) { return arr.indexOf(elm) === i; }); },
304
+ function (previousVal, currentVal) { return mergeDeep(previousVal, currentVal); },
305
+ undefined], objects, false));
306
+ }
307
+ exports.mergeDeep = mergeDeep;
308
+ /** object and array merge
309
+ * @warn /!\ Array will be replaced by the latest object /!\
310
+ * @return {Object} new object result from merge
311
+ * NOTE: objects in params will NOT be modified */
312
+ function mergeDeepOverrideArrays() {
313
+ var objects = [];
314
+ for (var _i = 0; _i < arguments.length; _i++) {
315
+ objects[_i] = arguments[_i];
316
+ }
317
+ return mergeDeepConfigurable.apply(void 0, __spreadArray([undefined,
318
+ function (previousVal, currentVal) { return mergeDeepOverrideArrays(previousVal, currentVal); },
319
+ undefined], objects, false));
320
+ }
321
+ exports.mergeDeepOverrideArrays = mergeDeepOverrideArrays;
322
+ /** object and array merge
323
+ * @param {Function} replacerForArrays item[key] = (prevValue, currentVal) => () When 2 values are arrays,
324
+ * @param {Function} replacerForObjects item[key] = (prevValue, currentVal) => () When 2 values are objects,
325
+ * @param {Function} replacerDefault item[key] = (prevValue, currentVal) => () For all other values
326
+ * @param {...Object} objects
327
+ * @return {Object} new object result from merge
328
+ * NOTE: objects in params will NOT be modified
329
+ */
330
+ function mergeDeepConfigurable(replacerForArrays, replacerForObjects, replacerDefault) {
331
+ if (replacerForArrays === void 0) { replacerForArrays = function (prev, curr) { return curr; }; }
332
+ if (replacerDefault === void 0) { replacerDefault = function (prev, curr) { return curr; }; }
333
+ var objects = [];
334
+ for (var _i = 3; _i < arguments.length; _i++) {
335
+ objects[_i - 3] = arguments[_i];
336
+ }
337
+ return objects.reduce(function (actuallyMerged, obj) {
338
+ Object.keys(obj).forEach(function (key) {
339
+ var previousVal = actuallyMerged[key];
340
+ var currentVal = obj[key];
341
+ if (Array.isArray(previousVal) && Array.isArray(currentVal)) {
342
+ actuallyMerged[key] = replacerForArrays(previousVal, currentVal);
343
+ }
344
+ else if ((0, is_object_1.isObject)(previousVal) && (0, is_object_1.isObject)(currentVal)) {
345
+ actuallyMerged[key] = replacerForObjects(previousVal, currentVal);
346
+ }
347
+ else {
348
+ actuallyMerged[key] = replacerDefault(previousVal, currentVal);
349
+ }
350
+ });
351
+ return actuallyMerged;
352
+ }, {});
353
+ }
354
+ exports.mergeDeepConfigurable = mergeDeepConfigurable;
355
+ /** { a: {b:2}} => {'a.b':2} useful for translations
356
+ * NOTE: will remove circular references
357
+ */
358
+ function flattenObject(data, config) {
359
+ if (config === void 0) { config = {}; }
360
+ var _a = config.withoutArraySyntax, withoutArraySyntax = _a === void 0 ? false : _a, _b = config.withArraySyntaxMinified, withArraySyntaxMinified = _b === void 0 ? false : _b;
361
+ var result = {};
362
+ var seenObjects = []; // avoidCircular reference to infinite loop
363
+ var recurse = function (cur, prop) {
364
+ if (Array.isArray(cur)) {
365
+ var l = cur.length;
366
+ var i = 0;
367
+ if (withoutArraySyntax)
368
+ recurse(cur[0], prop);
369
+ else {
370
+ for (; i < l; i++)
371
+ recurse(cur[i], prop + (withArraySyntaxMinified ? ".".concat(i) : "[".concat(i, "]")));
372
+ if (l == 0)
373
+ result[prop] = [];
374
+ }
375
+ }
376
+ else if ((0, is_object_1.isObject)(cur)) { // is object
377
+ try {
378
+ if (seenObjects.includes(cur))
379
+ cur = deepClone(cur); // avoid circular ref but allow duplicate objects
380
+ else
381
+ seenObjects.push(cur);
382
+ var isEmpty = Object.keys(cur).length === 0;
383
+ for (var p in cur)
384
+ recurse(cur[p], (prop ? prop + '.' : '') + p.replace(/\./g, '%')); // allow prop to contain special chars like points);
385
+ if (isEmpty && prop)
386
+ result[prop] = {};
387
+ }
388
+ catch (error) {
389
+ console.warn('Circular reference in flattenObject, impossible to parse');
390
+ }
391
+ }
392
+ else
393
+ result[prop] = cur;
394
+ };
395
+ recurse(data, '');
396
+ return result;
397
+ }
398
+ exports.flattenObject = flattenObject;
399
+ /** {'a.b':2} => { a: {b:2}} */
400
+ function unflattenObject(data) {
401
+ var newO = {};
402
+ for (var _i = 0, _a = Object.entries(data); _i < _a.length; _i++) {
403
+ var _b = _a[_i], addr = _b[0], value = _b[1];
404
+ objForceWrite(newO, addr, value);
405
+ }
406
+ return newO;
407
+ }
408
+ exports.unflattenObject = unflattenObject;
409
+ //# sourceMappingURL=object-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-utils.js","sourceRoot":"","sources":["../../src/object-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { Color } from './types';
2
+ export declare type Config = {
3
+ env: string;
4
+ isProd: boolean;
5
+ nbOfLogsToKeep: number;
6
+ customTypes: object;
7
+ preprocessLog?: Function;
8
+ terminal: {
9
+ noColor: boolean;
10
+ theme: {
11
+ primary: Color;
12
+ shade1: Color;
13
+ shade2: Color;
14
+ bgColor?: Color;
15
+ paddingX: number;
16
+ paddingY: number;
17
+ fontColor?: Color;
18
+ pageWidth: number;
19
+ debugModeColor: Color;
20
+ };
21
+ };
22
+ };
23
+ /** Allow dynamic changing of config */
24
+ export declare function configFn(): Config;
25
+ /** Register custom config
26
+ * @param {object} customConfig { 'email': email => /.+@.+/.test(email), type2 : myTestFunction() }
27
+ * * env: 'development',
28
+ * * customTypes: {},
29
+ * * terminal: {
30
+ * * noColor: false, // disable colored escape sequences like /mOO35...etc
31
+ * * theme: {
32
+ * * primary: [61, 167, 32], // main color (title font)
33
+ * * shade1: [127, 192, 39], // gradient shade 1
34
+ * * shade2: [194, 218, 47], // gradient shade 2
35
+ * * bgColor: false, // background color
36
+ * * paddingX: 2, // nb spaces added before an outputted str
37
+ * * paddingY: 2, //
38
+ * * fontColor: false, // default font color
39
+ * * pageWidth: 53, // page size in character
40
+ * * debugModeColor: [147, 212, 6], // usually orange
41
+ * * }
42
+ * * },
43
+ */
44
+ export declare function registerConfig(customConfig: any): void;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.registerConfig = exports.configFn = void 0;
15
+ var isset_1 = require("../isset");
16
+ var config = {
17
+ env: 'development',
18
+ isProd: false,
19
+ nbOfLogsToKeep: 25,
20
+ customTypes: {},
21
+ terminal: {
22
+ noColor: false,
23
+ theme: {
24
+ primary: [0, 149, 250],
25
+ shade1: [0, 90, 250],
26
+ shade2: [0, 208, 245],
27
+ paddingX: 2,
28
+ paddingY: 2,
29
+ pageWidth: 53,
30
+ debugModeColor: [201, 27, 169],
31
+ }
32
+ },
33
+ };
34
+ /** Allow dynamic changing of config */
35
+ function configFn() { return config; }
36
+ exports.configFn = configFn;
37
+ /** Register custom config
38
+ * @param {object} customConfig { 'email': email => /.+@.+/.test(email), type2 : myTestFunction() }
39
+ * * env: 'development',
40
+ * * customTypes: {},
41
+ * * terminal: {
42
+ * * noColor: false, // disable colored escape sequences like /mOO35...etc
43
+ * * theme: {
44
+ * * primary: [61, 167, 32], // main color (title font)
45
+ * * shade1: [127, 192, 39], // gradient shade 1
46
+ * * shade2: [194, 218, 47], // gradient shade 2
47
+ * * bgColor: false, // background color
48
+ * * paddingX: 2, // nb spaces added before an outputted str
49
+ * * paddingY: 2, //
50
+ * * fontColor: false, // default font color
51
+ * * pageWidth: 53, // page size in character
52
+ * * debugModeColor: [147, 212, 6], // usually orange
53
+ * * }
54
+ * * },
55
+ */
56
+ function registerConfig(customConfig) {
57
+ if (!(0, isset_1.isset)(customConfig.terminal))
58
+ customConfig.terminal = {};
59
+ var newconfig = __assign(__assign({}, config), customConfig);
60
+ newconfig.terminal = __assign(__assign({}, config.terminal), customConfig.terminal);
61
+ newconfig.terminal.theme = __assign(__assign({}, config.terminal.theme), (customConfig.terminal.theme || {}));
62
+ config = newconfig;
63
+ config.isProd = config.env.includes('prod');
64
+ }
65
+ exports.registerConfig = registerConfig;
66
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/private/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,kCAAgC;AAwBhC,IAAI,MAAM,GAAW;IACjB,GAAG,EAAE,aAAa;IAClB,MAAM,EAAE,KAAK;IACb,cAAc,EAAE,EAAE;IAClB,WAAW,EAAE,EAAE;IACf,QAAQ,EAAE;QACN,OAAO,EAAE,KAAK;QACd,KAAK,EAAE;YACH,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;YACtB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;YACpB,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;YACrB,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,EAAE;YACb,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;SACjC;KACJ;CACJ,CAAA;AAED,uCAAuC;AACvC,SAAgB,QAAQ,KAAK,OAAO,MAAM,CAAA,CAAC,CAAC;AAA5C,4BAA4C;AAG5C;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,cAAc,CAAC,YAAY;IACvC,IAAI,CAAC,IAAA,aAAK,EAAC,YAAY,CAAC,QAAQ,CAAC;QAAE,YAAY,CAAC,QAAQ,GAAG,EAAE,CAAA;IAC7D,IAAM,SAAS,yBACR,MAAM,GACN,YAAY,CAClB,CAAA;IACD,SAAS,CAAC,QAAQ,yBACX,MAAM,CAAC,QAAQ,GACf,YAAY,CAAC,QAAQ,CAC3B,CAAA;IACD,SAAS,CAAC,QAAQ,CAAC,KAAK,yBACjB,MAAM,CAAC,QAAQ,CAAC,KAAK,GACrB,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CACzC,CAAA;IACD,MAAM,GAAG,SAAS,CAAA;IAElB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC/C,CAAC;AAjBD,wCAiBC"}
@@ -0,0 +1,10 @@
1
+ export declare class dataValidationUtilErrorHandler extends Error {
2
+ fromDataValidation: boolean;
3
+ code: number;
4
+ extraInfos: object;
5
+ msg: string;
6
+ errorDescription: {
7
+ [k: string]: any;
8
+ };
9
+ constructor(msg: any, code: any, extraInfos?: any);
10
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.dataValidationUtilErrorHandler = void 0;
30
+ var dataValidationUtilErrorHandler = /** @class */ (function (_super) {
31
+ __extends(dataValidationUtilErrorHandler, _super);
32
+ function dataValidationUtilErrorHandler(msg, code, extraInfos) {
33
+ var _this = _super.call(this, msg) || this;
34
+ _this.message = msg;
35
+ _this.msg = msg;
36
+ _this.name = "".concat(code, " ").concat(msg);
37
+ _this.fromDataValidation = true; // will be catched by express error handler
38
+ _this.code = code;
39
+ _this.extraInfos = extraInfos;
40
+ _this.errorDescription = __assign({ msg: msg, code: code }, extraInfos);
41
+ return _this;
42
+ }
43
+ return dataValidationUtilErrorHandler;
44
+ }(Error));
45
+ exports.dataValidationUtilErrorHandler = dataValidationUtilErrorHandler;
46
+ //# sourceMappingURL=error-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../src/private/error-handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;IAAoD,kDAAK;IAMrD,wCAAY,GAAG,EAAE,IAAI,EAAE,UAAW;QAAlC,YACI,kBAAM,GAAG,CAAC,SAYb;QAXG,KAAI,CAAC,OAAO,GAAG,GAAG,CAAA;QAClB,KAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,KAAI,CAAC,IAAI,GAAG,UAAG,IAAI,cAAI,GAAG,CAAE,CAAA;QAC5B,KAAI,CAAC,kBAAkB,GAAG,IAAI,CAAA,CAAC,2CAA2C;QAC1E,KAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,KAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,KAAI,CAAC,gBAAgB,cACjB,GAAG,KAAA,EACH,IAAI,MAAA,IACD,UAAU,CAChB,CAAA;;IACL,CAAC;IACL,qCAAC;AAAD,CAAC,AApBD,CAAoD,KAAK,GAoBxD;AApBY,wEAA8B"}
@@ -0,0 +1,5 @@
1
+ export declare type ObjectGeneric = {
2
+ [k: string]: any;
3
+ };
4
+ export declare type Color = [number, number, number];
5
+ export declare type Override<T1, T2> = Omit<T1, keyof T2> & T2;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/private/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ export declare function escapeRegexp(str: string, config?: {
2
+ parseStarChar?: boolean;
3
+ }): string;
4
+ /** Get first match of the first capturing group of regexp
5
+ * Eg: const basePath = firstMatch(apiFile, /basePath = '(.*?)'/); will get what is inside quotes
6
+ */
7
+ export declare function firstMatch(str: string, regExp: RegExp): string | undefined;
8
+ /** Get all matches from regexp with g flag
9
+ * Eg: [ [full, match1, m2], [f, m1, m2]... ]
10
+ * NOTE: the G flag will be appended to regexp
11
+ */
12
+ export declare function allMatches(str: string, reg: RegExp): string[];