data-structure-typed 1.15.0 → 1.15.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 (42) hide show
  1. package/README.md +378 -7
  2. package/dist/data-structures/binary-tree/binary-tree.d.ts +30 -30
  3. package/dist/data-structures/binary-tree/binary-tree.js +55 -55
  4. package/dist/data-structures/binary-tree/segment-tree.d.ts +17 -17
  5. package/dist/data-structures/binary-tree/segment-tree.js +30 -30
  6. package/dist/data-structures/graph/abstract-graph.d.ts +6 -6
  7. package/dist/data-structures/graph/abstract-graph.js +6 -6
  8. package/dist/data-structures/graph/directed-graph.d.ts +4 -4
  9. package/dist/data-structures/graph/directed-graph.js +6 -6
  10. package/dist/data-structures/graph/undirected-graph.d.ts +3 -3
  11. package/dist/data-structures/hash/coordinate-map.d.ts +2 -2
  12. package/dist/data-structures/hash/coordinate-set.d.ts +2 -2
  13. package/dist/data-structures/heap/heap.d.ts +14 -14
  14. package/dist/data-structures/heap/heap.js +12 -12
  15. package/dist/data-structures/linked-list/doubly-linked-list.d.ts +9 -9
  16. package/dist/data-structures/linked-list/doubly-linked-list.js +12 -12
  17. package/dist/data-structures/linked-list/singly-linked-list.d.ts +7 -7
  18. package/dist/data-structures/priority-queue/priority-queue.d.ts +7 -7
  19. package/dist/data-structures/priority-queue/priority-queue.js +6 -6
  20. package/dist/data-structures/queue/deque.d.ts +1 -1
  21. package/dist/utils/types/utils.d.ts +0 -52
  22. package/dist/utils/types/utils.js +0 -52
  23. package/dist/utils/utils.d.ts +1 -97
  24. package/dist/utils/utils.js +1 -547
  25. package/package.json +3 -4
  26. package/src/assets/overview-diagram-of-data-structures.png +0 -0
  27. package/src/data-structures/binary-tree/binary-tree.ts +83 -76
  28. package/src/data-structures/binary-tree/segment-tree.ts +55 -36
  29. package/src/data-structures/graph/abstract-graph.ts +21 -19
  30. package/src/data-structures/graph/directed-graph.ts +23 -18
  31. package/src/data-structures/graph/undirected-graph.ts +16 -11
  32. package/src/data-structures/hash/coordinate-map.ts +11 -8
  33. package/src/data-structures/hash/coordinate-set.ts +11 -8
  34. package/src/data-structures/heap/heap.ts +34 -28
  35. package/src/data-structures/linked-list/doubly-linked-list.ts +40 -26
  36. package/src/data-structures/linked-list/singly-linked-list.ts +32 -23
  37. package/src/data-structures/priority-queue/priority-queue.ts +17 -14
  38. package/src/data-structures/queue/deque.ts +14 -4
  39. package/src/utils/types/utils.ts +1 -175
  40. package/src/utils/utils.ts +1 -484
  41. package/tests/unit/data-structures/binary-tree/bst.test.ts +40 -31
  42. package/tests/unit/data-structures/graph/directed-graph.test.ts +31 -34
@@ -1,15 +1,4 @@
1
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
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -46,17 +35,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
46
35
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
36
  }
48
37
  };
49
- var __values = (this && this.__values) || function(o) {
50
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
51
- if (m) return m.call(o);
52
- if (o && typeof o.length === "number") return {
53
- next: function () {
54
- if (o && i >= o.length) o = void 0;
55
- return { value: o && o[i++], done: !o };
56
- }
57
- };
58
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
59
- };
60
38
  var __read = (this && this.__read) || function (o, n) {
61
39
  var m = typeof Symbol === "function" && o[Symbol.iterator];
62
40
  if (!m) return o;
@@ -82,22 +60,8 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
82
60
  }
83
61
  return to.concat(ar || Array.prototype.slice.call(from));
84
62
  };
85
- var __importDefault = (this && this.__importDefault) || function (mod) {
86
- return (mod && mod.__esModule) ? mod : { "default": mod };
87
- };
88
63
  Object.defineProperty(exports, "__esModule", { value: true });
89
- exports.trampolineAsync = exports.trampoline = exports.toThunk = exports.isThunk = exports.THUNK_SYMBOL = exports.zip = exports.memo = exports.arrayRemove = exports.timeEnd = exports.timeStart = exports.bunnyConsole = exports.deepAdd = exports.deepReplaceValues = exports.deepRenameKeys = exports.deepRemoveByKey = exports.deepKeysConvert = exports.StringUtil = exports.diffAB = exports.onlyInB = exports.onlyInA = exports.comparerArray = exports.capitalizeFirstLetter = exports.capitalizeWords = exports.randomDate = exports.minuted = exports.keyValueToArray = exports.extractValue = exports.wait = exports.WaitManager = exports.addDays = exports.isLeafParent = exports.isSameStructure = exports.reverseColor = exports.deepObjectStrictEqual = exports.strictObjectIsEqual = exports.strictEqual = exports.looseEqual = exports.isObject = exports.getValue = exports.incrementId = exports.IncrementId = exports.uuidV4 = exports.randomText = void 0;
90
- var lodash_1 = __importDefault(require("lodash"));
91
- function randomText(length) {
92
- var result = '';
93
- var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
94
- var charactersLength = characters.length;
95
- for (var i = 0; i < length; i++) {
96
- result += characters.charAt(Math.floor(Math.random() * charactersLength));
97
- }
98
- return result;
99
- }
100
- exports.randomText = randomText;
64
+ exports.trampolineAsync = exports.trampoline = exports.toThunk = exports.isThunk = exports.THUNK_SYMBOL = exports.arrayRemove = exports.uuidV4 = void 0;
101
65
  var uuidV4 = function () {
102
66
  return 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'.replace(/[x]/g, function (c) {
103
67
  var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
@@ -105,481 +69,6 @@ var uuidV4 = function () {
105
69
  });
106
70
  };
107
71
  exports.uuidV4 = uuidV4;
108
- var IncrementId = /** @class */ (function () {
109
- function IncrementId(prefix) {
110
- this._prefix = prefix ? prefix : '';
111
- this._id = this._prefix + '0';
112
- }
113
- IncrementId.prototype.getId = function () {
114
- var _a = this, _id = _a._id, _prefix = _a._prefix;
115
- if (!_id) {
116
- this._id = _prefix + '0';
117
- }
118
- else {
119
- var idNumStr = _id.substr(_prefix.length, _id.length - _prefix.length);
120
- var newIdNum = parseInt(idNumStr, 10) + 1;
121
- this._id = _prefix + newIdNum.toString();
122
- }
123
- return this._id;
124
- };
125
- return IncrementId;
126
- }());
127
- exports.IncrementId = IncrementId;
128
- function incrementId(prefix) {
129
- var _prefix = prefix ? prefix : '';
130
- var _id = _prefix + '0';
131
- return function id() {
132
- var idNumStr = _id.substr(_prefix.length, _id.length - _prefix.length);
133
- var newIdNum = parseInt(idNumStr, 10) + 1;
134
- _id = _prefix + newIdNum.toString();
135
- return _id;
136
- };
137
- }
138
- exports.incrementId = incrementId;
139
- var getValue = function (obj, names) { return names.map(function (i) { return obj[i]; }); };
140
- exports.getValue = getValue;
141
- var isObject = function (object) { return object != null && typeof object === 'object'; };
142
- exports.isObject = isObject;
143
- var looseEqual = function (a, b) { return a == b; };
144
- exports.looseEqual = looseEqual;
145
- var strictEqual = function (a, b) { return a === b; };
146
- exports.strictEqual = strictEqual;
147
- var strictObjectIsEqual = function (a, b) { return Object.is(a, b); };
148
- exports.strictObjectIsEqual = strictObjectIsEqual;
149
- var deepObjectStrictEqual = function (object1, object2) {
150
- var e_1, _a;
151
- var keys1 = Object.keys(object1);
152
- var keys2 = Object.keys(object2);
153
- if (keys1.length !== keys2.length) {
154
- return false;
155
- }
156
- try {
157
- for (var keys1_1 = __values(keys1), keys1_1_1 = keys1_1.next(); !keys1_1_1.done; keys1_1_1 = keys1_1.next()) {
158
- var key = keys1_1_1.value;
159
- var val1 = object1[key];
160
- var val2 = object2[key];
161
- var areObjects = (0, exports.isObject)(val1) && (0, exports.isObject)(val2);
162
- if (areObjects && !(0, exports.deepObjectStrictEqual)(val1, val2) ||
163
- !areObjects && val1 !== val2) {
164
- return false;
165
- }
166
- }
167
- }
168
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
169
- finally {
170
- try {
171
- if (keys1_1_1 && !keys1_1_1.done && (_a = keys1_1.return)) _a.call(keys1_1);
172
- }
173
- finally { if (e_1) throw e_1.error; }
174
- }
175
- return true;
176
- };
177
- exports.deepObjectStrictEqual = deepObjectStrictEqual;
178
- function reverseColor(oldColor) {
179
- var oldColorTemp = '0x' + oldColor.replace(/#/g, '');
180
- var str = '000000' + (0xFFFFFF - Number(oldColorTemp)).toString(16);
181
- return '#' + str.substring(str.length - 6, str.length);
182
- }
183
- exports.reverseColor = reverseColor;
184
- var isSameStructure = function (objA, objB) {
185
- var objATraversable = objA;
186
- var objBTraversable = objB;
187
- var objAKeys = Object.keys(objATraversable);
188
- var objBKeys = Object.keys(objBTraversable);
189
- var isSame = true;
190
- if (objAKeys.length !== objBKeys.length) {
191
- return isSame = false;
192
- }
193
- else {
194
- objAKeys.forEach(function (i) {
195
- if (!objBKeys.includes(i)) {
196
- return isSame = false;
197
- }
198
- });
199
- return isSame;
200
- }
201
- };
202
- exports.isSameStructure = isSameStructure;
203
- var isLeafParent = function (obj) {
204
- var isLeaf = true;
205
- Object.values(obj).forEach(function (value) {
206
- if (typeof value === 'object' && value instanceof Array) {
207
- value.forEach(function (item) {
208
- if (typeof item === 'object') {
209
- return false;
210
- }
211
- });
212
- return isLeaf = true;
213
- }
214
- if (!['string', 'boolean', 'number', 'undefined', 'function'].includes(typeof value) && (value !== null)) {
215
- return isLeaf = false;
216
- }
217
- });
218
- return isLeaf;
219
- };
220
- exports.isLeafParent = isLeafParent;
221
- var addDays = function (date, days) {
222
- date.setDate(date.getDate() + days);
223
- return date;
224
- };
225
- exports.addDays = addDays;
226
- var WaitManager = /** @class */ (function () {
227
- function WaitManager(nXSpeed) {
228
- this._time30 = 20000;
229
- this._nXSpeed = 1;
230
- this._time1 = 1000;
231
- this._time2 = 2000;
232
- this._time3 = 3000;
233
- this._time4 = 4000;
234
- this._time10 = 10000;
235
- this._time20 = 20000;
236
- this._time60 = 60000;
237
- this._cusTime = 1000;
238
- if (nXSpeed === undefined)
239
- nXSpeed = 1;
240
- this._nXSpeed = nXSpeed;
241
- }
242
- Object.defineProperty(WaitManager.prototype, "time1", {
243
- get: function () {
244
- return this._time1 / this._nXSpeed;
245
- },
246
- enumerable: false,
247
- configurable: true
248
- });
249
- Object.defineProperty(WaitManager.prototype, "time2", {
250
- get: function () {
251
- return this._time2 / this._nXSpeed;
252
- },
253
- enumerable: false,
254
- configurable: true
255
- });
256
- Object.defineProperty(WaitManager.prototype, "time3", {
257
- get: function () {
258
- return this._time3 / this._nXSpeed;
259
- },
260
- enumerable: false,
261
- configurable: true
262
- });
263
- Object.defineProperty(WaitManager.prototype, "time4", {
264
- get: function () {
265
- return this._time4 / this._nXSpeed;
266
- },
267
- enumerable: false,
268
- configurable: true
269
- });
270
- Object.defineProperty(WaitManager.prototype, "time10", {
271
- get: function () {
272
- return this._time10 / this._nXSpeed;
273
- },
274
- enumerable: false,
275
- configurable: true
276
- });
277
- Object.defineProperty(WaitManager.prototype, "time20", {
278
- get: function () {
279
- return this._time20 / this._nXSpeed;
280
- },
281
- enumerable: false,
282
- configurable: true
283
- });
284
- Object.defineProperty(WaitManager.prototype, "time50", {
285
- get: function () {
286
- return this._time30 / this._nXSpeed;
287
- },
288
- enumerable: false,
289
- configurable: true
290
- });
291
- Object.defineProperty(WaitManager.prototype, "time60", {
292
- get: function () {
293
- return this._time60 / this._nXSpeed;
294
- },
295
- enumerable: false,
296
- configurable: true
297
- });
298
- Object.defineProperty(WaitManager.prototype, "cusTime", {
299
- get: function () {
300
- return this._cusTime / this._nXSpeed;
301
- },
302
- set: function (v) {
303
- this._cusTime = v;
304
- },
305
- enumerable: false,
306
- configurable: true
307
- });
308
- return WaitManager;
309
- }());
310
- exports.WaitManager = WaitManager;
311
- var wait = function (ms, resolveValue) { return __awaiter(void 0, void 0, void 0, function () {
312
- return __generator(this, function (_a) {
313
- return [2 /*return*/, new Promise(function (resolve, reject) {
314
- setTimeout(function () {
315
- var finalResolveValue = resolveValue || true;
316
- resolve(finalResolveValue);
317
- }, ms);
318
- })];
319
- });
320
- }); };
321
- exports.wait = wait;
322
- function extractValue(data) {
323
- var result = [];
324
- if (data && data.length > 0) {
325
- result = data.map(function (item) { return item.value; });
326
- }
327
- return result;
328
- }
329
- exports.extractValue = extractValue;
330
- function keyValueToArray(data) {
331
- var e_2, _a;
332
- var itemArray = [];
333
- var keys = Object.keys(data);
334
- try {
335
- for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
336
- var i = keys_1_1.value;
337
- itemArray.push(__assign(__assign({}, data[i]), { _id: i }));
338
- }
339
- }
340
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
341
- finally {
342
- try {
343
- if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
344
- }
345
- finally { if (e_2) throw e_2.error; }
346
- }
347
- return itemArray;
348
- }
349
- exports.keyValueToArray = keyValueToArray;
350
- function minuted(time) {
351
- var minutes = Math.floor(time / 60000).toString();
352
- var seconds = Math.floor((time % 60000) / 1000).toString().padStart(2, '0');
353
- return "".concat(minutes, ":").concat(seconds);
354
- }
355
- exports.minuted = minuted;
356
- function randomDate(start, end, specificProbabilityStart, specificProbability) {
357
- if (!start)
358
- start = new Date('1970-1-1');
359
- if (!end)
360
- end = new Date();
361
- if (specificProbabilityStart) {
362
- if (!specificProbability)
363
- specificProbability = 0.5;
364
- if (Math.random() <= specificProbability) {
365
- return new Date(specificProbabilityStart.getTime() + Math.random() * (end.getTime() - specificProbabilityStart.getTime()));
366
- }
367
- }
368
- return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
369
- }
370
- exports.randomDate = randomDate;
371
- var capitalizeWords = function (str) { return str.replace(/(?:^|\s)\S/g, function (a) { return a.toUpperCase(); }); };
372
- exports.capitalizeWords = capitalizeWords;
373
- var capitalizeFirstLetter = function (str) { return str.charAt(0).toUpperCase() + str.slice(1); };
374
- exports.capitalizeFirstLetter = capitalizeFirstLetter;
375
- var comparerArray = function (otherArray, limitKeys) {
376
- return function (current) {
377
- return otherArray.filter(function (other) {
378
- if (!limitKeys) {
379
- return lodash_1.default.isEqual(current, other);
380
- }
381
- else {
382
- // TODO
383
- }
384
- }).length == 0;
385
- };
386
- };
387
- exports.comparerArray = comparerArray;
388
- var onlyInA = function (a, b) { return a.filter((0, exports.comparerArray)(b)); };
389
- exports.onlyInA = onlyInA;
390
- var onlyInB = function (a, b) { return b.filter((0, exports.comparerArray)(a)); };
391
- exports.onlyInB = onlyInB;
392
- var diffAB = function (a, b) { return (0, exports.onlyInA)(a, b).concat((0, exports.onlyInB)(a, b)); };
393
- exports.diffAB = diffAB;
394
- var StringUtil = /** @class */ (function () {
395
- function StringUtil() {
396
- }
397
- // camelCase
398
- StringUtil.toCamelCase = function (str) {
399
- return lodash_1.default.camelCase(str);
400
- };
401
- // snake_case
402
- StringUtil.toSnakeCase = function (str) {
403
- return lodash_1.default.snakeCase(str);
404
- };
405
- // PascalCase
406
- StringUtil.toPascalCase = function (str) {
407
- return lodash_1.default.startCase(lodash_1.default.camelCase(str)).replace(/ /g, '');
408
- };
409
- // CONSTANT_CASE
410
- StringUtil.toConstantCase = function (str) {
411
- return lodash_1.default.upperCase(str).replace(/ /g, '_');
412
- };
413
- // kebab-case
414
- StringUtil.toKebabCase = function (str) {
415
- return lodash_1.default.kebabCase(str);
416
- };
417
- // lowercase
418
- StringUtil.toLowerCase = function (str) {
419
- return lodash_1.default.lowerCase(str).replace(/ /g, '');
420
- };
421
- // Title Case
422
- StringUtil.toTitleCase = function (str) {
423
- return lodash_1.default.startCase(lodash_1.default.camelCase(str));
424
- };
425
- // Sentence case
426
- StringUtil.toSentenceCase = function (str) {
427
- return lodash_1.default.upperFirst(lodash_1.default.lowerCase(str));
428
- };
429
- // path/case
430
- StringUtil.toPathCase = function (str) {
431
- return lodash_1.default.lowerCase(str).replace(/ /g, '/');
432
- };
433
- // dot.case
434
- StringUtil.toDotCase = function (str) {
435
- return lodash_1.default.lowerCase(str).replace(/ /g, '.');
436
- };
437
- return StringUtil;
438
- }());
439
- exports.StringUtil = StringUtil;
440
- var deepKeysConvert = function (obj, toType) {
441
- var _toType = toType || 'snake';
442
- if (Array.isArray(obj)) {
443
- return obj.map(function (v) { return (0, exports.deepKeysConvert)(v, _toType); });
444
- }
445
- else if (obj !== null && obj.constructor === Object) {
446
- return Object.keys(obj).reduce(function (result, key) {
447
- var _a;
448
- var newKey = '';
449
- switch (_toType) {
450
- case 'camel':
451
- newKey = StringUtil.toCamelCase(key);
452
- break;
453
- case 'snake':
454
- newKey = StringUtil.toSnakeCase(key);
455
- break;
456
- case 'pascal':
457
- newKey = StringUtil.toPascalCase(key);
458
- break;
459
- case 'constant':
460
- newKey = StringUtil.toConstantCase(key);
461
- break;
462
- case 'kebab':
463
- newKey = StringUtil.toKebabCase(key);
464
- break;
465
- case 'lower':
466
- newKey = StringUtil.toLowerCase(key);
467
- break;
468
- case 'title':
469
- newKey = StringUtil.toTitleCase(key);
470
- break;
471
- case 'sentence':
472
- newKey = StringUtil.toSentenceCase(key);
473
- break;
474
- case 'path':
475
- newKey = StringUtil.toPathCase(key);
476
- break;
477
- case 'dot':
478
- newKey = StringUtil.toDotCase(key);
479
- break;
480
- default:
481
- newKey = StringUtil.toDotCase(key);
482
- break;
483
- }
484
- return __assign(__assign({}, result), (_a = {}, _a[newKey] = (0, exports.deepKeysConvert)(obj[key], _toType), _a));
485
- }, {});
486
- }
487
- return obj;
488
- };
489
- exports.deepKeysConvert = deepKeysConvert;
490
- var deepRemoveByKey = function (obj, keysToBeRemoved) {
491
- var result = lodash_1.default.transform(obj, function (result, value, key) {
492
- if (lodash_1.default.isObject(value)) {
493
- value = (0, exports.deepRemoveByKey)(value, keysToBeRemoved);
494
- }
495
- if (!keysToBeRemoved.includes(key)) {
496
- lodash_1.default.isArray(obj) ? result.push(value) : result[key] = value;
497
- }
498
- });
499
- return result;
500
- };
501
- exports.deepRemoveByKey = deepRemoveByKey;
502
- var deepRenameKeys = function (obj, keysMap) {
503
- return lodash_1.default.transform(obj, function (result, value, key) {
504
- var currentKey = keysMap[key] || key;
505
- result[currentKey] = lodash_1.default.isObject(value) ? (0, exports.deepRenameKeys)(value, keysMap) : value;
506
- });
507
- };
508
- exports.deepRenameKeys = deepRenameKeys;
509
- var deepReplaceValues = function (obj, keyReducerMap) {
510
- var newObject = lodash_1.default.clone(obj);
511
- lodash_1.default.each(obj, function (val, key) {
512
- for (var item in keyReducerMap) {
513
- if (key === item) {
514
- newObject[key] = keyReducerMap[item](newObject);
515
- }
516
- else if (typeof (val) === 'object' || val instanceof Array) {
517
- newObject[key] = (0, exports.deepReplaceValues)(val, keyReducerMap);
518
- }
519
- }
520
- });
521
- return newObject;
522
- };
523
- exports.deepReplaceValues = deepReplaceValues;
524
- // TODO determine depth and pass root node as a param through callback
525
- var deepAdd = function (obj, keyReducerMap, isItemRootParent) {
526
- var newObject = lodash_1.default.clone(obj);
527
- if (lodash_1.default.isObject(newObject) && !lodash_1.default.isArray(newObject)) {
528
- for (var item in keyReducerMap) {
529
- newObject[item] = keyReducerMap[item](newObject);
530
- }
531
- }
532
- lodash_1.default.each(obj, function (val, key) {
533
- if (lodash_1.default.isObject(val)) {
534
- for (var item in keyReducerMap) {
535
- // @ts-ignore
536
- newObject[key] = (0, exports.deepAdd)(val, keyReducerMap, isItemRootParent);
537
- }
538
- }
539
- });
540
- return newObject;
541
- };
542
- exports.deepAdd = deepAdd;
543
- var styleString = function (color) { return "color: ".concat(color, "; font-weight: bold"); };
544
- var styleHeader = function (header) { return "%c[".concat(header, "]"); };
545
- exports.bunnyConsole = {
546
- log: function (headerLog) {
547
- if (headerLog === void 0) { headerLog = 'bunny'; }
548
- var args = [];
549
- for (var _i = 1; _i < arguments.length; _i++) {
550
- args[_i - 1] = arguments[_i];
551
- }
552
- return console.log.apply(console, __spreadArray([styleHeader(headerLog), styleString('black')], __read(args), false));
553
- },
554
- warn: function (headerLog) {
555
- if (headerLog === void 0) { headerLog = 'bunny'; }
556
- var args = [];
557
- for (var _i = 1; _i < arguments.length; _i++) {
558
- args[_i - 1] = arguments[_i];
559
- }
560
- return console.warn.apply(console, __spreadArray([styleHeader(headerLog), styleString('orange')], __read(args), false));
561
- },
562
- error: function (headerLog) {
563
- if (headerLog === void 0) { headerLog = 'bunny'; }
564
- var args = [];
565
- for (var _i = 1; _i < arguments.length; _i++) {
566
- args[_i - 1] = arguments[_i];
567
- }
568
- return console.error.apply(console, __spreadArray([styleHeader(headerLog), styleString('red')], __read(args), false));
569
- }
570
- };
571
- var timeStart = function () {
572
- return performance ? performance.now() : new Date().getTime();
573
- };
574
- exports.timeStart = timeStart;
575
- var timeEnd = function (startTime, headerLog, consoleConditionFn) {
576
- var timeSpent = (performance ? performance.now() : new Date().getTime()) - startTime;
577
- var isPassCondition = consoleConditionFn ? consoleConditionFn(timeSpent) : true;
578
- if (isPassCondition) {
579
- exports.bunnyConsole.log(headerLog ? headerLog : 'time spent', timeSpent.toFixed(2));
580
- }
581
- };
582
- exports.timeEnd = timeEnd;
583
72
  var arrayRemove = function (array, predicate) {
584
73
  var i = -1, len = array ? array.length : 0;
585
74
  var result = [];
@@ -594,41 +83,6 @@ var arrayRemove = function (array, predicate) {
594
83
  return result;
595
84
  };
596
85
  exports.arrayRemove = arrayRemove;
597
- function memo() {
598
- var cache = {};
599
- // eslint-disable-next-line @typescript-eslint/ban-types
600
- return function (target, propertyKey, descriptor) {
601
- var originalMethod = descriptor.value;
602
- descriptor.value = function () {
603
- var args = [];
604
- for (var _i = 0; _i < arguments.length; _i++) {
605
- args[_i] = arguments[_i];
606
- }
607
- var cacheKey = "__cacheKey__".concat(args.toString());
608
- // eslint-disable-next-line no-prototype-builtins
609
- if (!cache.hasOwnProperty(cacheKey)) {
610
- cache[cacheKey] = originalMethod.apply(this, args);
611
- }
612
- return cache[cacheKey];
613
- };
614
- };
615
- }
616
- exports.memo = memo;
617
- function zip(array1, array2, options) {
618
- var zipped = [];
619
- var zippedObjCoords = [];
620
- var isToObj = (options ? options : { isToObj: false }).isToObj;
621
- for (var i = 0; i < array1.length; i++) {
622
- if (isToObj) {
623
- zippedObjCoords.push({ x: array1[i], y: array2[i] });
624
- }
625
- else {
626
- zipped.push([array1[i], array2[i]]);
627
- }
628
- }
629
- return isToObj ? zippedObjCoords : zipped;
630
- }
631
- exports.zip = zip;
632
86
  exports.THUNK_SYMBOL = Symbol('thunk');
633
87
  var isThunk = function (fnOrValue) {
634
88
  return typeof fnOrValue === 'function' && fnOrValue.__THUNK__ === exports.THUNK_SYMBOL;
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "data-structure-typed",
3
- "version": "1.15.0",
3
+ "version": "1.15.2",
4
4
  "description": "Explore our comprehensive Javascript Data Structure / TypeScript Data Structure Library, meticulously crafted to empower developers with a versatile set of essential data structures. Our library includes a wide range of data structures, such as Binary Tree, AVL Tree, Binary Search Tree (BST), Tree Multiset, Segment Tree, Binary Indexed Tree, Graph, Directed Graph, Undirected Graph, Singly Linked List, Hash, CoordinateSet, CoordinateMap, Heap, Doubly Linked List, Priority Queue, Max Priority Queue, Min Priority Queue, Queue, ObjectDeque, ArrayDeque, Stack, and Trie. Each data structure is thoughtfully designed and implemented using TypeScript to provide efficient, reliable, and easy-to-use solutions for your programming needs. Whether you're optimizing algorithms, managing data, or enhancing performance, our TypeScript Data Structure Library is your go-to resource. Elevate your coding experience with these fundamental building blocks for software development.",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
7
7
  "build": "rm -rf dist && npx tsc",
8
8
  "test": "jest",
9
9
  "build:docs": "typedoc --out docs ./src",
10
- "deps:check": "dependency-cruiser src"
10
+ "deps:check": "dependency-cruiser src",
11
+ "build:publish": "npm run test && npm run build && npm run build:docs && npm publish"
11
12
  },
12
13
  "repository": {
13
14
  "type": "git",
@@ -48,7 +49,6 @@
48
49
  "types": "dist/index.d.ts",
49
50
  "devDependencies": {
50
51
  "@types/jest": "^29.5.3",
51
- "@types/lodash": "^4.14.197",
52
52
  "@types/node": "^20.4.9",
53
53
  "dependency-cruiser": "^13.1.2",
54
54
  "jest": "^29.6.2",
@@ -57,6 +57,5 @@
57
57
  "typescript": "^4.9.5"
58
58
  },
59
59
  "dependencies": {
60
- "lodash": "^4.17.21"
61
60
  }
62
61
  }