@blackglory/structures 0.2.3 → 0.2.7

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 (51) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +41 -11
  3. package/dist/es2015/index.min.mjs +2 -2
  4. package/dist/es2015/index.min.mjs.map +1 -1
  5. package/dist/es2015/index.mjs +673 -273
  6. package/dist/es2015/index.mjs.map +1 -1
  7. package/dist/es2015/index.umd.js +677 -274
  8. package/dist/es2015/index.umd.js.map +1 -1
  9. package/dist/es2015/index.umd.min.js +2 -3
  10. package/dist/es2015/index.umd.min.js.map +1 -1
  11. package/dist/es2018/index.min.mjs +2 -2
  12. package/dist/es2018/index.min.mjs.map +1 -1
  13. package/dist/es2018/index.mjs +673 -273
  14. package/dist/es2018/index.mjs.map +1 -1
  15. package/dist/es2018/index.umd.js +677 -274
  16. package/dist/es2018/index.umd.js.map +1 -1
  17. package/dist/es2018/index.umd.min.js +2 -3
  18. package/dist/es2018/index.umd.min.js.map +1 -1
  19. package/lib/es2015/box.d.ts +6 -0
  20. package/lib/es2015/box.js +30 -0
  21. package/lib/es2015/box.js.map +1 -0
  22. package/lib/es2015/expirable-map.d.ts +18 -0
  23. package/lib/es2015/expirable-map.js +109 -0
  24. package/lib/es2015/expirable-map.js.map +1 -0
  25. package/lib/es2015/index.d.ts +3 -0
  26. package/lib/es2015/index.js +3 -0
  27. package/lib/es2015/index.js.map +1 -1
  28. package/lib/es2015/lru-map.js +4 -3
  29. package/lib/es2015/lru-map.js.map +1 -1
  30. package/lib/es2015/tlru-map.d.ts +21 -0
  31. package/lib/es2015/tlru-map.js +138 -0
  32. package/lib/es2015/tlru-map.js.map +1 -0
  33. package/lib/es2015/trie-map.js +1 -1
  34. package/lib/es2015/trie-map.js.map +1 -1
  35. package/lib/es2018/box.d.ts +6 -0
  36. package/lib/es2018/box.js +30 -0
  37. package/lib/es2018/box.js.map +1 -0
  38. package/lib/es2018/expirable-map.d.ts +18 -0
  39. package/lib/es2018/expirable-map.js +109 -0
  40. package/lib/es2018/expirable-map.js.map +1 -0
  41. package/lib/es2018/index.d.ts +3 -0
  42. package/lib/es2018/index.js +3 -0
  43. package/lib/es2018/index.js.map +1 -1
  44. package/lib/es2018/lru-map.js +4 -3
  45. package/lib/es2018/lru-map.js.map +1 -1
  46. package/lib/es2018/tlru-map.d.ts +21 -0
  47. package/lib/es2018/tlru-map.js +138 -0
  48. package/lib/es2018/tlru-map.js.map +1 -0
  49. package/lib/es2018/trie-map.js +1 -1
  50. package/lib/es2018/trie-map.js.map +1 -1
  51. package/package.json +25 -23
@@ -10,11 +10,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./box"), exports);
13
14
  __exportStar(require("./cons"), exports);
14
15
  __exportStar(require("./emitter"), exports);
15
16
  __exportStar(require("./hash-map"), exports);
16
17
  __exportStar(require("./hash-set"), exports);
17
18
  __exportStar(require("./queue"), exports);
18
19
  __exportStar(require("./lru-map"), exports);
20
+ __exportStar(require("./expirable-map"), exports);
21
+ __exportStar(require("./tlru-map"), exports);
19
22
  __exportStar(require("./trie-map"), exports);
20
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAsB;AACtB,4CAAyB;AACzB,6CAA0B;AAC1B,6CAA0B;AAC1B,0CAAuB;AACvB,4CAAyB;AACzB,6CAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAAqB;AACrB,yCAAsB;AACtB,4CAAyB;AACzB,6CAA0B;AAC1B,6CAA0B;AAC1B,0CAAuB;AACvB,4CAAyB;AACzB,kDAA+B;AAC/B,6CAA0B;AAC1B,6CAA0B"}
@@ -14,12 +14,13 @@ var _LRUMap_limit, _LRUMap_map;
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.LRUMap = void 0;
16
16
  const errors_1 = require("@blackglory/errors");
17
+ const iterable_operator_1 = require("iterable-operator");
17
18
  class LRUMap {
18
19
  constructor(limit) {
19
20
  _LRUMap_limit.set(this, void 0);
20
21
  _LRUMap_map.set(this, new Map());
21
- errors_1.assert(Number.isInteger(limit), 'The parameter limit must be an integer');
22
- errors_1.assert(limit > 0, 'The parameter limit must be a positive value');
22
+ (0, errors_1.assert)(Number.isInteger(limit), 'The parameter limit must be an integer');
23
+ (0, errors_1.assert)(limit > 0, 'The parameter limit must be a positive value');
23
24
  __classPrivateFieldSet(this, _LRUMap_limit, limit, "f");
24
25
  }
25
26
  get [(_LRUMap_limit = new WeakMap(), _LRUMap_map = new WeakMap(), Symbol.toStringTag)]() {
@@ -61,7 +62,7 @@ class LRUMap {
61
62
  __classPrivateFieldGet(this, _LRUMap_map, "f").set(key, value);
62
63
  }
63
64
  getColdestKey() {
64
- return __classPrivateFieldGet(this, _LRUMap_map, "f").keys().next().value;
65
+ return (0, iterable_operator_1.first)(__classPrivateFieldGet(this, _LRUMap_map, "f").keys());
65
66
  }
66
67
  }
67
68
  exports.LRUMap = LRUMap;
@@ -1 +1 @@
1
- {"version":3,"file":"lru-map.js","sourceRoot":"","sources":["../../src/lru-map.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAA2C;AAE3C,MAAa,MAAM;IAYjB,YAAY,KAAa;QAXzB,gCAAc;QACd,sBAAO,IAAI,GAAG,EAAQ,EAAA;QAWpB,eAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,wCAAwC,CAAC,CAAA;QACzE,eAAM,CAAC,KAAK,GAAG,CAAC,EAAE,8CAA8C,CAAC,CAAA;QAEjE,uBAAA,IAAI,iBAAU,KAAK,MAAA,CAAA;IACrB,CAAC;IAbD,IAAI,8DAAC,MAAM,CAAC,WAAW,EAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,uBAAA,IAAI,mBAAK,CAAC,IAAI,CAAA;IACvB,CAAC;IASD,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,uBAAA,IAAI,mBAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;SAC5B;aAAM;YACL,IAAI,uBAAA,IAAI,mBAAK,CAAC,IAAI,KAAK,uBAAA,IAAI,qBAAO,EAAE;gBAClC,uBAAA,IAAI,mBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;aACvC;YACD,uBAAA,IAAI,mBAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;SAC1B;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,uBAAA,IAAI,mBAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;IAED,GAAG,CAAC,GAAM;QACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAA;QAEpC,MAAM,KAAK,GAAG,uBAAA,IAAI,mBAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;QACjC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC3B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,CAAC,GAAM;QACX,OAAO,uBAAA,IAAI,mBAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK;QACH,uBAAA,IAAI,mBAAK,CAAC,KAAK,EAAE,CAAA;IACnB,CAAC;IAKO,UAAU,CAAC,GAAM,EAAE,KAAQ;QACjC,uBAAA,IAAI,mBAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACrB,uBAAA,IAAI,mBAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC3B,CAAC;IAKO,aAAa;QACnB,OAAO,uBAAA,IAAI,mBAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAU,CAAA;IAC3C,CAAC;CACF;AAjED,wBAiEC"}
1
+ {"version":3,"file":"lru-map.js","sourceRoot":"","sources":["../../src/lru-map.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAA2C;AAC3C,yDAAyC;AAEzC,MAAa,MAAM;IAYjB,YAAY,KAAa;QAXzB,gCAAc;QACd,sBAAO,IAAI,GAAG,EAAQ,EAAA;QAWpB,IAAA,eAAM,EAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,wCAAwC,CAAC,CAAA;QACzE,IAAA,eAAM,EAAC,KAAK,GAAG,CAAC,EAAE,8CAA8C,CAAC,CAAA;QAEjE,uBAAA,IAAI,iBAAU,KAAK,MAAA,CAAA;IACrB,CAAC;IAbD,IAAI,8DAAC,MAAM,CAAC,WAAW,EAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,uBAAA,IAAI,mBAAK,CAAC,IAAI,CAAA;IACvB,CAAC;IASD,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,uBAAA,IAAI,mBAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACtB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;SAC5B;aAAM;YACL,IAAI,uBAAA,IAAI,mBAAK,CAAC,IAAI,KAAK,uBAAA,IAAI,qBAAO,EAAE;gBAClC,uBAAA,IAAI,mBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAG,CAAC,CAAA;aACxC;YACD,uBAAA,IAAI,mBAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;SAC1B;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,uBAAA,IAAI,mBAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;IAED,GAAG,CAAC,GAAM;QACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAA;QAEpC,MAAM,KAAK,GAAG,uBAAA,IAAI,mBAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAA;QACjC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC3B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,CAAC,GAAM;QACX,OAAO,uBAAA,IAAI,mBAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK;QACH,uBAAA,IAAI,mBAAK,CAAC,KAAK,EAAE,CAAA;IACnB,CAAC;IAKO,UAAU,CAAC,GAAM,EAAE,KAAQ;QACjC,uBAAA,IAAI,mBAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACrB,uBAAA,IAAI,mBAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC3B,CAAC;IAKO,aAAa;QACnB,OAAO,IAAA,yBAAK,EAAC,uBAAA,IAAI,mBAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAChC,CAAC;CACF;AAjED,wBAiEC"}
@@ -0,0 +1,21 @@
1
+ export declare class TLRUMap<K, V> {
2
+ #private;
3
+ itemMetadataSortedByExpirationTime: Array<{
4
+ key: K;
5
+ expirationTime: number;
6
+ }>;
7
+ get [Symbol.toStringTag](): string;
8
+ get size(): number;
9
+ constructor(limit: number);
10
+ set(key: K, value: V, maxAge: number): this;
11
+ has(key: K): boolean;
12
+ get(key: K): V | undefined;
13
+ delete(key: K): boolean;
14
+ clear(): void;
15
+ private updateItem;
16
+ private addItemMetadata;
17
+ private removeItemMetadata;
18
+ private clearExpiredItems;
19
+ private rescheduleClearTimeout;
20
+ private getColdestKey;
21
+ }
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _TLRUMap_limit, _TLRUMap_map, _TLRUMap_cancelClearTimeout;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.TLRUMap = void 0;
16
+ const errors_1 = require("@blackglory/errors");
17
+ const iterable_operator_1 = require("iterable-operator");
18
+ const extra_timers_1 = require("extra-timers");
19
+ class TLRUMap {
20
+ constructor(limit) {
21
+ _TLRUMap_limit.set(this, void 0);
22
+ _TLRUMap_map.set(this, new Map());
23
+ _TLRUMap_cancelClearTimeout.set(this, void 0);
24
+ this.itemMetadataSortedByExpirationTime = [];
25
+ (0, errors_1.assert)(Number.isInteger(limit), 'The parameter limit must be an integer');
26
+ (0, errors_1.assert)(limit > 0, 'The parameter limit must be a positive value');
27
+ __classPrivateFieldSet(this, _TLRUMap_limit, limit, "f");
28
+ }
29
+ get [(_TLRUMap_limit = new WeakMap(), _TLRUMap_map = new WeakMap(), _TLRUMap_cancelClearTimeout = new WeakMap(), Symbol.toStringTag)]() {
30
+ return this.constructor.name;
31
+ }
32
+ get size() {
33
+ return __classPrivateFieldGet(this, _TLRUMap_map, "f").size;
34
+ }
35
+ set(key, value, maxAge) {
36
+ if (__classPrivateFieldGet(this, _TLRUMap_map, "f").has(key)) {
37
+ this.updateItem(key, value);
38
+ this.removeItemMetadata(key);
39
+ this.addItemMetadata(key, Date.now() + maxAge);
40
+ }
41
+ else {
42
+ if (__classPrivateFieldGet(this, _TLRUMap_map, "f").size === __classPrivateFieldGet(this, _TLRUMap_limit, "f")) {
43
+ __classPrivateFieldGet(this, _TLRUMap_map, "f").delete(this.getColdestKey());
44
+ }
45
+ __classPrivateFieldGet(this, _TLRUMap_map, "f").set(key, value);
46
+ this.addItemMetadata(key, Date.now() + maxAge);
47
+ }
48
+ return this;
49
+ }
50
+ has(key) {
51
+ return __classPrivateFieldGet(this, _TLRUMap_map, "f").has(key);
52
+ }
53
+ get(key) {
54
+ if (this.has(key)) {
55
+ const value = __classPrivateFieldGet(this, _TLRUMap_map, "f").get(key);
56
+ this.updateItem(key, value);
57
+ return value;
58
+ }
59
+ else {
60
+ return undefined;
61
+ }
62
+ }
63
+ delete(key) {
64
+ const result = __classPrivateFieldGet(this, _TLRUMap_map, "f").delete(key);
65
+ if (result) {
66
+ const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
67
+ this.itemMetadataSortedByExpirationTime.splice(index, 1);
68
+ if (index === 0) {
69
+ this.rescheduleClearTimeout();
70
+ }
71
+ }
72
+ return result;
73
+ }
74
+ clear() {
75
+ var _a;
76
+ __classPrivateFieldGet(this, _TLRUMap_map, "f").clear();
77
+ (_a = __classPrivateFieldGet(this, _TLRUMap_cancelClearTimeout, "f")) === null || _a === void 0 ? void 0 : _a.call(this);
78
+ this.itemMetadataSortedByExpirationTime = [];
79
+ }
80
+ updateItem(key, value) {
81
+ __classPrivateFieldGet(this, _TLRUMap_map, "f").delete(key);
82
+ __classPrivateFieldGet(this, _TLRUMap_map, "f").set(key, value);
83
+ }
84
+ addItemMetadata(key, expirationTime) {
85
+ for (let i = 0; i < this.itemMetadataSortedByExpirationTime.length; i++) {
86
+ const item = this.itemMetadataSortedByExpirationTime[i];
87
+ if (expirationTime < item.expirationTime) {
88
+ this.itemMetadataSortedByExpirationTime.splice(i, 0, { key, expirationTime });
89
+ if (i === 0) {
90
+ this.rescheduleClearTimeout();
91
+ }
92
+ return;
93
+ }
94
+ }
95
+ this.itemMetadataSortedByExpirationTime.push({ key, expirationTime });
96
+ if (this.itemMetadataSortedByExpirationTime.length === 1) {
97
+ this.rescheduleClearTimeout();
98
+ }
99
+ }
100
+ removeItemMetadata(key) {
101
+ const index = this.itemMetadataSortedByExpirationTime.findIndex(x => x.key === key);
102
+ if (index >= 0) {
103
+ this.itemMetadataSortedByExpirationTime.splice(index, 1);
104
+ if (index === 0) {
105
+ this.rescheduleClearTimeout();
106
+ }
107
+ }
108
+ }
109
+ clearExpiredItems(timestamp) {
110
+ const indexOfFirstUnexpiredItem = this.itemMetadataSortedByExpirationTime.findIndex(x => x.expirationTime > timestamp);
111
+ const expiredItemKeys = indexOfFirstUnexpiredItem >= 0
112
+ ? this.itemMetadataSortedByExpirationTime.splice(0, indexOfFirstUnexpiredItem)
113
+ : this.itemMetadataSortedByExpirationTime.splice(0, this.itemMetadataSortedByExpirationTime.length);
114
+ expiredItemKeys.forEach(x => __classPrivateFieldGet(this, _TLRUMap_map, "f").delete(x.key));
115
+ }
116
+ rescheduleClearTimeout() {
117
+ var _a;
118
+ (_a = __classPrivateFieldGet(this, _TLRUMap_cancelClearTimeout, "f")) === null || _a === void 0 ? void 0 : _a.call(this);
119
+ if (this.itemMetadataSortedByExpirationTime.length > 0) {
120
+ const item = this.itemMetadataSortedByExpirationTime[0];
121
+ if (Number.isFinite(item.expirationTime)) {
122
+ const cancel = (0, extra_timers_1.setSchedule)(item.expirationTime, () => {
123
+ this.clearExpiredItems(Date.now());
124
+ this.rescheduleClearTimeout();
125
+ });
126
+ __classPrivateFieldSet(this, _TLRUMap_cancelClearTimeout, () => {
127
+ cancel();
128
+ __classPrivateFieldSet(this, _TLRUMap_cancelClearTimeout, undefined, "f");
129
+ }, "f");
130
+ }
131
+ }
132
+ }
133
+ getColdestKey() {
134
+ return (0, iterable_operator_1.first)(__classPrivateFieldGet(this, _TLRUMap_map, "f").keys());
135
+ }
136
+ }
137
+ exports.TLRUMap = TLRUMap;
138
+ //# sourceMappingURL=tlru-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tlru-map.js","sourceRoot":"","sources":["../../src/tlru-map.ts"],"names":[],"mappings":"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"}
@@ -70,7 +70,7 @@ class TrieMap {
70
70
  }
71
71
  delete node.value;
72
72
  if (node.children.size === 0) {
73
- for (const [part, parentNode] of iterable_operator_1.toArray(iterable_operator_1.zip(key, parentNodes)).reverse()) {
73
+ for (const [part, parentNode] of (0, iterable_operator_1.toArray)((0, iterable_operator_1.zip)(key, parentNodes)).reverse()) {
74
74
  parentNode.children.delete(part);
75
75
  if (parentNode.children.size !== 0)
76
76
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"trie-map.js","sourceRoot":"","sources":["../../src/trie-map.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yDAAgD;AAGhD,MAAM,QAAQ;IAGZ,YAAmB,KAAS;QAAT,UAAK,GAAL,KAAK,CAAI;QAF5B,aAAQ,GAAG,IAAI,GAAG,EAAqB,CAAA;IAER,CAAC;CACjC;AAED,MAAa,OAAO;IAApB;QACE,wBAAQ,IAAI,QAAQ,EAAQ,EAAA;IAoE9B,CAAC;IAlEC,IAAI,iCAAC,MAAM,CAAC,WAAW,EAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,IAAI,GAAG,uBAAA,IAAI,qBAAM,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,QAAQ,EAAQ,CAAC,CAAA;aAC9C;YACD,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;SAChC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,GAAM;QACR,IAAI,IAAI,GAAG,uBAAA,IAAI,qBAAM,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC3B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;aAChC;iBAAM;gBACL,OAAO,KAAK,CAAA;aACb;SACF;QAED,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAA;IACjC,CAAC;IAED,GAAG,CAAC,GAAM;QACR,IAAI,IAAI,GAAG,uBAAA,IAAI,qBAAM,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC3B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;aAChC;iBAAM;gBACL,OAAO,SAAS,CAAA;aACjB;SACF;QAED,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,MAAM,CAAC,GAAM;QACX,MAAM,WAAW,GAAqB,EAAE,CAAA;QACxC,IAAI,IAAI,GAAG,uBAAA,IAAI,qBAAM,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC3B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACtB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;aAChC;iBAAM;gBACL,OAAO,KAAK,CAAA;aACb;SACF;QAED,OAAO,IAAI,CAAC,KAAK,CAAA;QAGjB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE;YAC5B,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,2BAAO,CAAC,uBAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE;gBACzE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAChC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;oBAAE,MAAK;aAC1C;SACF;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AArED,0BAqEC"}
1
+ {"version":3,"file":"trie-map.js","sourceRoot":"","sources":["../../src/trie-map.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yDAAgD;AAGhD,MAAM,QAAQ;IAGZ,YAAmB,KAAS;QAAT,UAAK,GAAL,KAAK,CAAI;QAF5B,aAAQ,GAAG,IAAI,GAAG,EAAqB,CAAA;IAER,CAAC;CACjC;AAED,MAAa,OAAO;IAApB;QACE,wBAAQ,IAAI,QAAQ,EAAQ,EAAA;IAoE9B,CAAC;IAlEC,IAAI,iCAAC,MAAM,CAAC,WAAW,EAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,IAAI,GAAG,uBAAA,IAAI,qBAAM,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,QAAQ,EAAQ,CAAC,CAAA;aAC9C;YACD,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;SAChC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAC,GAAM;QACR,IAAI,IAAI,GAAG,uBAAA,IAAI,qBAAM,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC3B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;aAChC;iBAAM;gBACL,OAAO,KAAK,CAAA;aACb;SACF;QAED,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAA;IACjC,CAAC;IAED,GAAG,CAAC,GAAM;QACR,IAAI,IAAI,GAAG,uBAAA,IAAI,qBAAM,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC3B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;aAChC;iBAAM;gBACL,OAAO,SAAS,CAAA;aACjB;SACF;QAED,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,MAAM,CAAC,GAAM;QACX,MAAM,WAAW,GAAqB,EAAE,CAAA;QACxC,IAAI,IAAI,GAAG,uBAAA,IAAI,qBAAM,CAAA;QACrB,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC3B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACtB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;aAChC;iBAAM;gBACL,OAAO,KAAK,CAAA;aACb;SACF;QAED,OAAO,IAAI,CAAC,KAAK,CAAA;QAGjB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE;YAC5B,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAA,2BAAO,EAAC,IAAA,uBAAG,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE;gBACzE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAChC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;oBAAE,MAAK;aAC1C;SACF;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AArED,0BAqEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blackglory/structures",
3
- "version": "0.2.3",
3
+ "version": "0.2.7",
4
4
  "description": "",
5
5
  "files": [
6
6
  "lib",
@@ -13,8 +13,8 @@
13
13
  "license": "MIT",
14
14
  "scripts": {
15
15
  "lint": "eslint --ext .js,.jsx,.ts,.tsx --quiet src __tests__",
16
- "test": "jest --config jest.config.js",
17
- "test:debug": "node --inspect-brk node_modules/.bin/jest --runInBand",
16
+ "test": "jest --runInBand --config jest.config.js",
17
+ "test:debug": "node --inspect-brk node_modules/.bin/jest --runInBand --config jest.config.js",
18
18
  "test:coverage": "jest --coverage --config jest.config.js",
19
19
  "prepublishOnly": "run-s clean build bundle",
20
20
  "clean": "run-p clean:*",
@@ -32,7 +32,7 @@
32
32
  },
33
33
  "husky": {
34
34
  "hooks": {
35
- "pre-commit": "run-s lint test",
35
+ "pre-commit": "run-s lint build test",
36
36
  "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
37
37
  }
38
38
  },
@@ -40,35 +40,37 @@
40
40
  "node": ">=12"
41
41
  },
42
42
  "devDependencies": {
43
- "@blackglory/jest-matchers": "^0.1.20",
44
- "@commitlint/cli": "^13.1.0",
45
- "@commitlint/config-conventional": "^13.1.0",
46
- "@rollup/plugin-commonjs": "^19.0.2",
43
+ "@blackglory/jest-matchers": "^0.1.21",
44
+ "@commitlint/cli": "^15.0.0",
45
+ "@commitlint/config-conventional": "^15.0.0",
46
+ "@rollup/plugin-commonjs": "^21.0.1",
47
47
  "@rollup/plugin-json": "^4.1.0",
48
- "@rollup/plugin-node-resolve": "^13.0.4",
48
+ "@rollup/plugin-node-resolve": "^13.0.6",
49
49
  "@rollup/plugin-replace": "^3.0.0",
50
- "@rollup/plugin-typescript": "^8.2.3",
51
- "@types/jest": "^26.0.24",
52
- "@types/node": "^16.4.5",
53
- "@typescript-eslint/eslint-plugin": "^4.28.5",
54
- "@typescript-eslint/parser": "^4.28.5",
55
- "eslint": "^7.31.0",
50
+ "@rollup/plugin-typescript": "^8.3.0",
51
+ "@types/jest": "^27.0.3",
52
+ "@types/node": "^16.11.12",
53
+ "@typescript-eslint/eslint-plugin": "^5.6.0",
54
+ "@typescript-eslint/parser": "^5.6.0",
55
+ "eslint": "^8.4.1",
56
+ "extra-promise": "^0.19.4",
56
57
  "husky": "^4.3.8",
57
- "iterable-operator": "^0.14.2",
58
- "jest": "^27.0.6",
58
+ "iterable-operator": "^0.14.4",
59
+ "jest": "^27.4.4",
59
60
  "npm-run-all": "^4.1.5",
60
61
  "rimraf": "^3.0.2",
61
- "rollup": "^2.55.0",
62
+ "rollup": "^2.61.1",
62
63
  "rollup-plugin-analyzer": "^4.0.0",
63
64
  "rollup-plugin-terser": "^7.0.2",
64
- "standard-version": "^9.3.1",
65
- "ts-jest": "^27.0.4",
65
+ "standard-version": "^9.3.2",
66
+ "ts-jest": "^27.1.1",
66
67
  "tscpaths": "^0.0.9",
67
- "tslib": "^2.3.0",
68
- "typescript": "^4.3.5"
68
+ "tslib": "^2.3.1",
69
+ "typescript": "^4.5.3"
69
70
  },
70
71
  "dependencies": {
71
72
  "@blackglory/errors": "^1.1.2",
72
- "justypes": "^0.1.5"
73
+ "extra-timers": "^0.2.4",
74
+ "justypes": "^0.1.6"
73
75
  }
74
76
  }