@bepalo/spine 1.5.17 → 2.7.19

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 (110) hide show
  1. package/README.md +532 -1
  2. package/dist/auth-middlewares.d.ts.map +1 -1
  3. package/dist/auth-middlewares.js +1 -0
  4. package/dist/auth-middlewares.js.map +1 -1
  5. package/dist/cache.d.ts +72 -0
  6. package/dist/cache.d.ts.map +1 -0
  7. package/dist/cache.js +387 -0
  8. package/dist/cache.js.map +1 -0
  9. package/dist/cjs/auth-middlewares.d.ts.map +1 -1
  10. package/dist/cjs/auth-middlewares.js +1 -0
  11. package/dist/cjs/auth-middlewares.js.map +1 -1
  12. package/dist/cjs/cache.d.ts +72 -0
  13. package/dist/cjs/cache.d.ts.map +1 -0
  14. package/dist/cjs/cache.js +387 -0
  15. package/dist/cjs/cache.js.map +1 -0
  16. package/dist/cjs/exp-cache.d.ts +101 -0
  17. package/dist/cjs/exp-cache.d.ts.map +1 -0
  18. package/dist/cjs/exp-cache.js +551 -0
  19. package/dist/cjs/exp-cache.js.map +1 -0
  20. package/dist/cjs/generator.d.ts +142 -19
  21. package/dist/cjs/generator.d.ts.map +1 -1
  22. package/dist/cjs/generator.js +416 -36
  23. package/dist/cjs/generator.js.map +1 -1
  24. package/dist/cjs/helpers.d.ts +49 -2
  25. package/dist/cjs/helpers.d.ts.map +1 -1
  26. package/dist/cjs/helpers.js +169 -14
  27. package/dist/cjs/helpers.js.map +1 -1
  28. package/dist/cjs/index.d.ts +2 -0
  29. package/dist/cjs/index.d.ts.map +1 -1
  30. package/dist/cjs/index.js +3 -0
  31. package/dist/cjs/index.js.map +1 -1
  32. package/dist/cjs/linked-list.d.ts +35 -0
  33. package/dist/cjs/linked-list.d.ts.map +1 -0
  34. package/dist/cjs/linked-list.js +300 -0
  35. package/dist/cjs/linked-list.js.map +1 -0
  36. package/dist/cjs/middlewares.d.ts +264 -28
  37. package/dist/cjs/middlewares.d.ts.map +1 -1
  38. package/dist/cjs/middlewares.js +691 -44
  39. package/dist/cjs/middlewares.js.map +1 -1
  40. package/dist/cjs/parsers.d.ts +32 -10
  41. package/dist/cjs/parsers.d.ts.map +1 -1
  42. package/dist/cjs/parsers.js +84 -46
  43. package/dist/cjs/parsers.js.map +1 -1
  44. package/dist/cjs/router.d.ts +5 -6
  45. package/dist/cjs/router.d.ts.map +1 -1
  46. package/dist/cjs/router.js +272 -149
  47. package/dist/cjs/router.js.map +1 -1
  48. package/dist/cjs/status.d.ts.map +1 -1
  49. package/dist/cjs/status.js +80 -79
  50. package/dist/cjs/status.js.map +1 -1
  51. package/dist/cjs/types.d.ts +74 -2
  52. package/dist/cjs/types.d.ts.map +1 -1
  53. package/dist/cjs/types.js +15 -2
  54. package/dist/cjs/types.js.map +1 -1
  55. package/dist/cjs/utils.d.ts +1 -0
  56. package/dist/cjs/utils.d.ts.map +1 -1
  57. package/dist/cjs/utils.js +1 -0
  58. package/dist/cjs/utils.js.map +1 -1
  59. package/dist/cjs/utils.node.d.ts +1 -1
  60. package/dist/cjs/utils.node.d.ts.map +1 -1
  61. package/dist/cjs/utils.node.js +31 -7
  62. package/dist/cjs/utils.node.js.map +1 -1
  63. package/dist/exp-cache.d.ts +101 -0
  64. package/dist/exp-cache.d.ts.map +1 -0
  65. package/dist/exp-cache.js +551 -0
  66. package/dist/exp-cache.js.map +1 -0
  67. package/dist/generator.d.ts +142 -19
  68. package/dist/generator.d.ts.map +1 -1
  69. package/dist/generator.js +416 -36
  70. package/dist/generator.js.map +1 -1
  71. package/dist/helpers.d.ts +49 -2
  72. package/dist/helpers.d.ts.map +1 -1
  73. package/dist/helpers.js +169 -14
  74. package/dist/helpers.js.map +1 -1
  75. package/dist/index.d.ts +2 -0
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +3 -0
  78. package/dist/index.js.map +1 -1
  79. package/dist/linked-list.d.ts +35 -0
  80. package/dist/linked-list.d.ts.map +1 -0
  81. package/dist/linked-list.js +300 -0
  82. package/dist/linked-list.js.map +1 -0
  83. package/dist/middlewares.d.ts +264 -28
  84. package/dist/middlewares.d.ts.map +1 -1
  85. package/dist/middlewares.js +691 -44
  86. package/dist/middlewares.js.map +1 -1
  87. package/dist/parsers.d.ts +32 -10
  88. package/dist/parsers.d.ts.map +1 -1
  89. package/dist/parsers.js +84 -46
  90. package/dist/parsers.js.map +1 -1
  91. package/dist/router.d.ts +5 -6
  92. package/dist/router.d.ts.map +1 -1
  93. package/dist/router.js +272 -149
  94. package/dist/router.js.map +1 -1
  95. package/dist/status.d.ts.map +1 -1
  96. package/dist/status.js +80 -79
  97. package/dist/status.js.map +1 -1
  98. package/dist/types.d.ts +74 -2
  99. package/dist/types.d.ts.map +1 -1
  100. package/dist/types.js +15 -2
  101. package/dist/types.js.map +1 -1
  102. package/dist/utils.d.ts +1 -0
  103. package/dist/utils.d.ts.map +1 -1
  104. package/dist/utils.js +1 -0
  105. package/dist/utils.js.map +1 -1
  106. package/dist/utils.node.d.ts +1 -1
  107. package/dist/utils.node.d.ts.map +1 -1
  108. package/dist/utils.node.js +31 -7
  109. package/dist/utils.node.js.map +1 -1
  110. package/package.json +6 -2
@@ -0,0 +1,551 @@
1
+ "use strict";
2
+ // src/exp-cache.ts
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
13
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
14
+ 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");
15
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
16
+ };
17
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
18
+ if (kind === "m") throw new TypeError("Private method is not writable");
19
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
20
+ 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");
21
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
22
+ };
23
+ var _ExpCache_instances, _ExpCache_usedMemory, _ExpCache_maxMemory, _ExpCache_defaultTTL, _ExpCache_stats, _ExpCache_now, _ExpCache_map, _ExpCache_lru, _ExpCache_onMiss, _ExpCache_onHit, _ExpCache_onEvict, _ExpCache_freeMemoryLRUInternal;
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.ExpCache = exports.ExpCacheError = void 0;
26
+ const node_util_1 = require("node:util");
27
+ const linked_list_1 = require("./linked-list");
28
+ const types_1 = require("./types");
29
+ class ExpCacheError extends Error {
30
+ constructor(message, options) {
31
+ super(message, options);
32
+ }
33
+ }
34
+ exports.ExpCacheError = ExpCacheError;
35
+ class ExpCache {
36
+ get size() {
37
+ return __classPrivateFieldGet(this, _ExpCache_lru, "f").size;
38
+ }
39
+ get usedMemory() {
40
+ return __classPrivateFieldGet(this, _ExpCache_usedMemory, "f");
41
+ }
42
+ get maxMemory() {
43
+ return __classPrivateFieldGet(this, _ExpCache_maxMemory, "f");
44
+ }
45
+ get defaultTTL() {
46
+ return __classPrivateFieldGet(this, _ExpCache_defaultTTL, "f");
47
+ }
48
+ get stats() {
49
+ return Object.assign({}, __classPrivateFieldGet(this, _ExpCache_stats, "f"));
50
+ }
51
+ resetStats() {
52
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").hits = 0;
53
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").misses = 0;
54
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").evictions = 0;
55
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").sets = 0;
56
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").gets = 0;
57
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").staleGets = 0;
58
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").peeks = 0;
59
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").checks = 0;
60
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").updates = 0;
61
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").expiryUpdates = 0;
62
+ }
63
+ now() {
64
+ return __classPrivateFieldGet(this, _ExpCache_now, "f").call(this);
65
+ }
66
+ ttl(ttl) {
67
+ return __classPrivateFieldGet(this, _ExpCache_now, "f").call(this) + ttl;
68
+ }
69
+ constructor(options) {
70
+ _ExpCache_instances.add(this);
71
+ _ExpCache_usedMemory.set(this, 0);
72
+ _ExpCache_maxMemory.set(this, void 0);
73
+ _ExpCache_defaultTTL.set(this, void 0);
74
+ _ExpCache_stats.set(this, void 0);
75
+ _ExpCache_now.set(this, void 0);
76
+ _ExpCache_map.set(this, new Map());
77
+ _ExpCache_lru.set(this, new linked_list_1.LinkedList());
78
+ _ExpCache_onMiss.set(this, undefined);
79
+ _ExpCache_onHit.set(this, undefined);
80
+ _ExpCache_onEvict.set(this, void 0);
81
+ const { maxMemory, defaultTTL, onMiss, onHit, onEvict, now = Date.now, } = options !== null && options !== void 0 ? options : Object.create(null);
82
+ if (!Number.isFinite(maxMemory) || maxMemory <= 0) {
83
+ throw new ExpCacheError("Invalid ExpCache option value for maxMemory");
84
+ }
85
+ if ((defaultTTL !== undefined && !Number.isFinite(defaultTTL)) ||
86
+ defaultTTL <= 0) {
87
+ throw new ExpCacheError("Invalid ExpCache option value for defaultTTL");
88
+ }
89
+ __classPrivateFieldSet(this, _ExpCache_maxMemory, maxMemory, "f");
90
+ __classPrivateFieldSet(this, _ExpCache_defaultTTL, defaultTTL, "f");
91
+ __classPrivateFieldSet(this, _ExpCache_onHit, onHit, "f");
92
+ __classPrivateFieldSet(this, _ExpCache_onMiss, onMiss, "f");
93
+ __classPrivateFieldSet(this, _ExpCache_onEvict, onEvict, "f");
94
+ __classPrivateFieldSet(this, _ExpCache_now, now, "f");
95
+ __classPrivateFieldSet(this, _ExpCache_stats, {
96
+ hits: 0,
97
+ misses: 0,
98
+ evictions: 0,
99
+ sets: 0,
100
+ gets: 0,
101
+ staleGets: 0,
102
+ peeks: 0,
103
+ checks: 0,
104
+ updates: 0,
105
+ expiryUpdates: 0,
106
+ }, "f");
107
+ }
108
+ has(key) {
109
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").checks++;
110
+ const node = __classPrivateFieldGet(this, _ExpCache_map, "f").get(key);
111
+ if (node === undefined) {
112
+ return false;
113
+ }
114
+ const { data: { exp }, } = node;
115
+ if (exp !== undefined && exp <= __classPrivateFieldGet(this, _ExpCache_now, "f").call(this)) {
116
+ return false;
117
+ }
118
+ return true;
119
+ }
120
+ hasIncludeExpired(key) {
121
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").checks++;
122
+ const node = __classPrivateFieldGet(this, _ExpCache_map, "f").get(key);
123
+ return node !== undefined;
124
+ }
125
+ peek(key) {
126
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").peeks++;
127
+ const node = __classPrivateFieldGet(this, _ExpCache_map, "f").get(key);
128
+ if (node === undefined) {
129
+ return undefined;
130
+ }
131
+ const { data: { exp }, } = node;
132
+ if (exp !== undefined && exp <= __classPrivateFieldGet(this, _ExpCache_now, "f").call(this)) {
133
+ return undefined;
134
+ }
135
+ return node.data.value;
136
+ }
137
+ peekIncludeExpired(key) {
138
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").peeks++;
139
+ const node = __classPrivateFieldGet(this, _ExpCache_map, "f").get(key);
140
+ return node === null || node === void 0 ? void 0 : node.data.value;
141
+ }
142
+ get(key) {
143
+ var _a, _b, _c, _d;
144
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").gets++;
145
+ const node = __classPrivateFieldGet(this, _ExpCache_map, "f").get(key);
146
+ if (node !== undefined) {
147
+ const { data: { key, value, size, exp }, } = node;
148
+ if (exp !== undefined && exp <= __classPrivateFieldGet(this, _ExpCache_now, "f").call(this)) {
149
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").staleGets++;
150
+ if (__classPrivateFieldGet(this, _ExpCache_onMiss, "f") !== undefined) {
151
+ const getAgain = __classPrivateFieldGet(this, _ExpCache_onMiss, "f").call(this, key, node.data, types_1.MissReason.Expired, this);
152
+ const currentNode = __classPrivateFieldGet(this, _ExpCache_map, "f").get(key);
153
+ if (getAgain && currentNode === node) {
154
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").hits++;
155
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").moveToStart(node);
156
+ (_a = __classPrivateFieldGet(this, _ExpCache_onHit, "f")) === null || _a === void 0 ? void 0 : _a.call(this, key, currentNode.data, this);
157
+ return currentNode.data.value;
158
+ }
159
+ if (currentNode !== node) {
160
+ return undefined;
161
+ }
162
+ }
163
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").evictions++;
164
+ __classPrivateFieldGet(this, _ExpCache_map, "f").delete(key);
165
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").remove(node);
166
+ __classPrivateFieldSet(this, _ExpCache_usedMemory, __classPrivateFieldGet(this, _ExpCache_usedMemory, "f") - size, "f");
167
+ (_b = __classPrivateFieldGet(this, _ExpCache_onEvict, "f")) === null || _b === void 0 ? void 0 : _b.call(this, key, node.data, types_1.EvictionReason.Expired, this);
168
+ return undefined;
169
+ }
170
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").hits++;
171
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").moveToStart(node);
172
+ (_c = __classPrivateFieldGet(this, _ExpCache_onHit, "f")) === null || _c === void 0 ? void 0 : _c.call(this, key, node.data, this);
173
+ return value;
174
+ }
175
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").misses++;
176
+ if (__classPrivateFieldGet(this, _ExpCache_onMiss, "f") !== undefined) {
177
+ const getAgain = __classPrivateFieldGet(this, _ExpCache_onMiss, "f").call(this, key, undefined, types_1.MissReason.Miss, this);
178
+ if (getAgain) {
179
+ const node = __classPrivateFieldGet(this, _ExpCache_map, "f").get(key);
180
+ if (node !== undefined) {
181
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").hits++;
182
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").moveToStart(node);
183
+ (_d = __classPrivateFieldGet(this, _ExpCache_onHit, "f")) === null || _d === void 0 ? void 0 : _d.call(this, key, node.data, this);
184
+ return node.data.value;
185
+ }
186
+ else {
187
+ return undefined;
188
+ }
189
+ }
190
+ }
191
+ return undefined;
192
+ }
193
+ getIncludeExpired(key) {
194
+ var _a, _b;
195
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").gets++;
196
+ const node = __classPrivateFieldGet(this, _ExpCache_map, "f").get(key);
197
+ if (node !== undefined) {
198
+ const { data } = node;
199
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").hits++;
200
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").moveToStart(node);
201
+ (_a = __classPrivateFieldGet(this, _ExpCache_onHit, "f")) === null || _a === void 0 ? void 0 : _a.call(this, key, data, this);
202
+ return data.value;
203
+ }
204
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").misses++;
205
+ if (__classPrivateFieldGet(this, _ExpCache_onMiss, "f") !== undefined) {
206
+ const getAgain = __classPrivateFieldGet(this, _ExpCache_onMiss, "f").call(this, key, undefined, types_1.MissReason.Miss, this);
207
+ if (getAgain) {
208
+ const node = __classPrivateFieldGet(this, _ExpCache_map, "f").get(key);
209
+ if (node !== undefined) {
210
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").hits++;
211
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").moveToStart(node);
212
+ (_b = __classPrivateFieldGet(this, _ExpCache_onHit, "f")) === null || _b === void 0 ? void 0 : _b.call(this, key, node.data, this);
213
+ return node.data.value;
214
+ }
215
+ else {
216
+ return undefined;
217
+ }
218
+ }
219
+ }
220
+ return undefined;
221
+ }
222
+ set(key, value, size, expiry) {
223
+ var _a;
224
+ // check if size is within bounds
225
+ if (!Number.isFinite(size) || size < 0) {
226
+ throw new ExpCacheError("Invalid ExpCache entry size");
227
+ }
228
+ if (__classPrivateFieldGet(this, _ExpCache_maxMemory, "f") !== undefined && size > __classPrivateFieldGet(this, _ExpCache_maxMemory, "f")) {
229
+ throw new ExpCacheError("ExpCache size overflow");
230
+ }
231
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").sets++;
232
+ // remove existing node
233
+ const existingNode = __classPrivateFieldGet(this, _ExpCache_map, "f").get(key);
234
+ if (existingNode !== undefined) {
235
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").evictions++;
236
+ __classPrivateFieldGet(this, _ExpCache_map, "f").delete(key);
237
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").remove(existingNode);
238
+ __classPrivateFieldSet(this, _ExpCache_usedMemory, __classPrivateFieldGet(this, _ExpCache_usedMemory, "f") - existingNode.data.size, "f");
239
+ (_a = __classPrivateFieldGet(this, _ExpCache_onEvict, "f")) === null || _a === void 0 ? void 0 : _a.call(this, key, existingNode.data, types_1.EvictionReason.Replaced, this);
240
+ }
241
+ // check available memory
242
+ // evict least-recently-used if overflown
243
+ const newMemoryUsage = __classPrivateFieldGet(this, _ExpCache_usedMemory, "f") + size;
244
+ if (__classPrivateFieldGet(this, _ExpCache_maxMemory, "f") !== undefined && newMemoryUsage > __classPrivateFieldGet(this, _ExpCache_maxMemory, "f")) {
245
+ const requiredSize = newMemoryUsage - __classPrivateFieldGet(this, _ExpCache_maxMemory, "f");
246
+ __classPrivateFieldGet(this, _ExpCache_instances, "m", _ExpCache_freeMemoryLRUInternal).call(this, requiredSize);
247
+ }
248
+ // insert new node
249
+ const exp = expiry !== undefined
250
+ ? expiry.ttl !== undefined
251
+ ? __classPrivateFieldGet(this, _ExpCache_now, "f").call(this) + expiry.ttl
252
+ : expiry.exp
253
+ : __classPrivateFieldGet(this, _ExpCache_defaultTTL, "f") !== undefined
254
+ ? __classPrivateFieldGet(this, _ExpCache_now, "f").call(this) + __classPrivateFieldGet(this, _ExpCache_defaultTTL, "f")
255
+ : undefined;
256
+ if (exp !== undefined && !Number.isFinite(exp)) {
257
+ throw new ExpCacheError("Invalid ExpCache value for exp");
258
+ }
259
+ const node = __classPrivateFieldGet(this, _ExpCache_lru, "f").insertStart({ key, value, size, exp });
260
+ __classPrivateFieldGet(this, _ExpCache_map, "f").set(key, node);
261
+ __classPrivateFieldSet(this, _ExpCache_usedMemory, __classPrivateFieldGet(this, _ExpCache_usedMemory, "f") + size, "f");
262
+ return this;
263
+ }
264
+ updateExpiry(key, expiry) {
265
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").expiryUpdates++;
266
+ const node = __classPrivateFieldGet(this, _ExpCache_map, "f").get(key);
267
+ if (node !== undefined) {
268
+ const exp = expiry !== undefined
269
+ ? expiry.ttl !== undefined
270
+ ? __classPrivateFieldGet(this, _ExpCache_now, "f").call(this) + expiry.ttl
271
+ : expiry.exp
272
+ : __classPrivateFieldGet(this, _ExpCache_defaultTTL, "f") !== undefined
273
+ ? __classPrivateFieldGet(this, _ExpCache_now, "f").call(this) + __classPrivateFieldGet(this, _ExpCache_defaultTTL, "f")
274
+ : undefined;
275
+ if (exp !== undefined && !Number.isFinite(exp)) {
276
+ throw new ExpCacheError("Invalid ExpCache value for exp");
277
+ }
278
+ node.data.exp = exp;
279
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").moveToStart(node);
280
+ return node.data.exp;
281
+ }
282
+ return undefined;
283
+ }
284
+ update(key, value, size, expiry) {
285
+ if (!Number.isFinite(size) || size < 0) {
286
+ throw new ExpCacheError("Invalid ExpCache entry size");
287
+ }
288
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").updates++;
289
+ const node = __classPrivateFieldGet(this, _ExpCache_map, "f").get(key);
290
+ if (node !== undefined) {
291
+ const prevSize = node.data.size;
292
+ if (__classPrivateFieldGet(this, _ExpCache_maxMemory, "f") !== undefined && size > __classPrivateFieldGet(this, _ExpCache_maxMemory, "f")) {
293
+ throw new ExpCacheError("ExpCache size overflow");
294
+ }
295
+ const newMemoryUsage = __classPrivateFieldGet(this, _ExpCache_usedMemory, "f") + size - prevSize;
296
+ if (__classPrivateFieldGet(this, _ExpCache_maxMemory, "f") !== undefined && newMemoryUsage > __classPrivateFieldGet(this, _ExpCache_maxMemory, "f")) {
297
+ const requiredSize = newMemoryUsage - __classPrivateFieldGet(this, _ExpCache_maxMemory, "f");
298
+ __classPrivateFieldGet(this, _ExpCache_instances, "m", _ExpCache_freeMemoryLRUInternal).call(this, requiredSize, node);
299
+ }
300
+ else {
301
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").moveToStart(node);
302
+ }
303
+ const exp = expiry !== undefined
304
+ ? expiry.ttl !== undefined
305
+ ? __classPrivateFieldGet(this, _ExpCache_now, "f").call(this) + expiry.ttl
306
+ : expiry.exp
307
+ : __classPrivateFieldGet(this, _ExpCache_defaultTTL, "f") !== undefined
308
+ ? __classPrivateFieldGet(this, _ExpCache_now, "f").call(this) + __classPrivateFieldGet(this, _ExpCache_defaultTTL, "f")
309
+ : undefined;
310
+ if (exp !== undefined && !Number.isFinite(exp)) {
311
+ throw new ExpCacheError("Invalid ExpCache value for exp");
312
+ }
313
+ if (exp !== undefined) {
314
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").expiryUpdates++;
315
+ }
316
+ node.data.exp = exp;
317
+ node.data.value = value;
318
+ node.data.size = size;
319
+ __classPrivateFieldSet(this, _ExpCache_usedMemory, __classPrivateFieldGet(this, _ExpCache_usedMemory, "f") + (size - prevSize), "f");
320
+ return node.data.value;
321
+ }
322
+ return undefined;
323
+ }
324
+ delete(key) {
325
+ var _a;
326
+ const node = __classPrivateFieldGet(this, _ExpCache_map, "f").get(key);
327
+ if (node !== undefined) {
328
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").evictions++;
329
+ __classPrivateFieldGet(this, _ExpCache_map, "f").delete(key);
330
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").remove(node);
331
+ __classPrivateFieldSet(this, _ExpCache_usedMemory, __classPrivateFieldGet(this, _ExpCache_usedMemory, "f") - node.data.size, "f");
332
+ (_a = __classPrivateFieldGet(this, _ExpCache_onEvict, "f")) === null || _a === void 0 ? void 0 : _a.call(this, key, node.data, types_1.EvictionReason.Manual, this);
333
+ return node.data.value;
334
+ }
335
+ return undefined;
336
+ }
337
+ evictLRU(count) {
338
+ var _a;
339
+ let node = __classPrivateFieldGet(this, _ExpCache_lru, "f").last;
340
+ let i = 0;
341
+ for (; node !== undefined && i < count; node = node.prev, i++) {
342
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").evictions++;
343
+ const { key, size } = node.data;
344
+ __classPrivateFieldGet(this, _ExpCache_map, "f").delete(key);
345
+ __classPrivateFieldSet(this, _ExpCache_usedMemory, __classPrivateFieldGet(this, _ExpCache_usedMemory, "f") - size, "f");
346
+ (_a = __classPrivateFieldGet(this, _ExpCache_onEvict, "f")) === null || _a === void 0 ? void 0 : _a.call(this, key, node.data, types_1.EvictionReason.Manual, this);
347
+ }
348
+ if (node == undefined) {
349
+ // clear all
350
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").clear();
351
+ }
352
+ else {
353
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").cutEnd(node, i);
354
+ }
355
+ return i;
356
+ }
357
+ evictMRU(count) {
358
+ var _a;
359
+ let node = __classPrivateFieldGet(this, _ExpCache_lru, "f").first;
360
+ let i = 0;
361
+ for (; node !== undefined && i < count; node = node.next, i++) {
362
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").evictions++;
363
+ const { key, size } = node.data;
364
+ __classPrivateFieldGet(this, _ExpCache_map, "f").delete(key);
365
+ __classPrivateFieldSet(this, _ExpCache_usedMemory, __classPrivateFieldGet(this, _ExpCache_usedMemory, "f") - size, "f");
366
+ (_a = __classPrivateFieldGet(this, _ExpCache_onEvict, "f")) === null || _a === void 0 ? void 0 : _a.call(this, key, node.data, types_1.EvictionReason.Manual, this);
367
+ }
368
+ if (node == undefined) {
369
+ // clear all
370
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").clear();
371
+ }
372
+ else {
373
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").cutStart(node, i);
374
+ }
375
+ return i;
376
+ }
377
+ evictAll() {
378
+ var _a;
379
+ let node = __classPrivateFieldGet(this, _ExpCache_lru, "f").last;
380
+ let i = 0;
381
+ for (; node !== undefined; i++) {
382
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").evictions++;
383
+ const { prev, data } = node;
384
+ const { key, size } = data;
385
+ __classPrivateFieldGet(this, _ExpCache_map, "f").delete(key);
386
+ __classPrivateFieldSet(this, _ExpCache_usedMemory, __classPrivateFieldGet(this, _ExpCache_usedMemory, "f") - size, "f");
387
+ (_a = __classPrivateFieldGet(this, _ExpCache_onEvict, "f")) === null || _a === void 0 ? void 0 : _a.call(this, key, data, types_1.EvictionReason.Manual, this);
388
+ node = prev;
389
+ }
390
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").clear();
391
+ __classPrivateFieldGet(this, _ExpCache_map, "f").clear();
392
+ __classPrivateFieldSet(this, _ExpCache_usedMemory, 0, "f");
393
+ return i;
394
+ }
395
+ evictExpired() {
396
+ var _a;
397
+ const now = __classPrivateFieldGet(this, _ExpCache_now, "f").call(this);
398
+ let i = 0;
399
+ for (let node = __classPrivateFieldGet(this, _ExpCache_lru, "f").last; node !== undefined;) {
400
+ const { prev, data } = node;
401
+ const { key, exp, size } = data;
402
+ if (exp !== undefined && exp <= now) {
403
+ i++;
404
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").evictions++;
405
+ __classPrivateFieldGet(this, _ExpCache_map, "f").delete(key);
406
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").remove(node);
407
+ __classPrivateFieldSet(this, _ExpCache_usedMemory, __classPrivateFieldGet(this, _ExpCache_usedMemory, "f") - size, "f");
408
+ (_a = __classPrivateFieldGet(this, _ExpCache_onEvict, "f")) === null || _a === void 0 ? void 0 : _a.call(this, key, data, types_1.EvictionReason.Expired, this);
409
+ }
410
+ node = prev;
411
+ }
412
+ return i;
413
+ }
414
+ clear() {
415
+ __classPrivateFieldGet(this, _ExpCache_map, "f").clear();
416
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").clear();
417
+ __classPrivateFieldSet(this, _ExpCache_usedMemory, 0, "f");
418
+ }
419
+ freeMemoryLRU(requiredSize) {
420
+ var _a;
421
+ if (!Number.isFinite(requiredSize) || requiredSize <= 0) {
422
+ throw new ExpCacheError("Invalid ExpCache size");
423
+ }
424
+ if (__classPrivateFieldGet(this, _ExpCache_maxMemory, "f") !== undefined) {
425
+ if (requiredSize > __classPrivateFieldGet(this, _ExpCache_maxMemory, "f")) {
426
+ throw new ExpCacheError("ExpCache size overflow");
427
+ }
428
+ }
429
+ let truncSize = 0;
430
+ let node = __classPrivateFieldGet(this, _ExpCache_lru, "f").last;
431
+ let i = 0;
432
+ for (; node !== undefined; node = node.prev, i++) {
433
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").evictions++;
434
+ const { key, size } = node.data;
435
+ truncSize += size;
436
+ __classPrivateFieldGet(this, _ExpCache_map, "f").delete(key);
437
+ (_a = __classPrivateFieldGet(this, _ExpCache_onEvict, "f")) === null || _a === void 0 ? void 0 : _a.call(this, key, node.data, types_1.EvictionReason.LRU, this);
438
+ if (truncSize >= requiredSize) {
439
+ break;
440
+ }
441
+ }
442
+ if (node !== undefined) {
443
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").cutLeft(node, i + 1);
444
+ __classPrivateFieldSet(this, _ExpCache_usedMemory, __classPrivateFieldGet(this, _ExpCache_usedMemory, "f") - truncSize, "f");
445
+ }
446
+ else {
447
+ __classPrivateFieldGet(this, _ExpCache_map, "f").clear();
448
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").clear();
449
+ __classPrivateFieldSet(this, _ExpCache_usedMemory, 0, "f");
450
+ }
451
+ return truncSize;
452
+ }
453
+ *[(_ExpCache_usedMemory = new WeakMap(), _ExpCache_maxMemory = new WeakMap(), _ExpCache_defaultTTL = new WeakMap(), _ExpCache_stats = new WeakMap(), _ExpCache_now = new WeakMap(), _ExpCache_map = new WeakMap(), _ExpCache_lru = new WeakMap(), _ExpCache_onMiss = new WeakMap(), _ExpCache_onHit = new WeakMap(), _ExpCache_onEvict = new WeakMap(), _ExpCache_instances = new WeakSet(), _ExpCache_freeMemoryLRUInternal = function _ExpCache_freeMemoryLRUInternal(requiredSize, forNode) {
454
+ var _a;
455
+ let truncSize = 0;
456
+ let node = __classPrivateFieldGet(this, _ExpCache_lru, "f").last;
457
+ let i = 0;
458
+ for (; node !== undefined; node = node.prev) {
459
+ if (node === forNode) {
460
+ continue;
461
+ }
462
+ __classPrivateFieldGet(this, _ExpCache_stats, "f").evictions++;
463
+ const { key, size } = node.data;
464
+ truncSize += size;
465
+ __classPrivateFieldGet(this, _ExpCache_map, "f").delete(key);
466
+ (_a = __classPrivateFieldGet(this, _ExpCache_onEvict, "f")) === null || _a === void 0 ? void 0 : _a.call(this, key, node.data, types_1.EvictionReason.LRU, this);
467
+ if (truncSize >= requiredSize) {
468
+ break;
469
+ }
470
+ i++;
471
+ }
472
+ if (forNode !== undefined) {
473
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").moveToStart(forNode);
474
+ }
475
+ if (node !== undefined) {
476
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").cutLeft(node, i + 1);
477
+ __classPrivateFieldSet(this, _ExpCache_usedMemory, __classPrivateFieldGet(this, _ExpCache_usedMemory, "f") - truncSize, "f");
478
+ }
479
+ else if (forNode === undefined) {
480
+ __classPrivateFieldGet(this, _ExpCache_map, "f").clear();
481
+ __classPrivateFieldGet(this, _ExpCache_lru, "f").clear();
482
+ __classPrivateFieldSet(this, _ExpCache_usedMemory, 0, "f");
483
+ }
484
+ return truncSize;
485
+ }, Symbol.iterator)]() {
486
+ for (let node = __classPrivateFieldGet(this, _ExpCache_lru, "f").first; node !== undefined; node = node.next) {
487
+ const { key, value, size, exp } = node.data;
488
+ yield [key, value, size, exp];
489
+ }
490
+ }
491
+ *entries() {
492
+ for (let node = __classPrivateFieldGet(this, _ExpCache_lru, "f").first; node !== undefined; node = node.next) {
493
+ const { key, value, size, exp } = node.data;
494
+ yield [key, value, size, exp];
495
+ }
496
+ }
497
+ *keys() {
498
+ for (let node = __classPrivateFieldGet(this, _ExpCache_lru, "f").first; node !== undefined; node = node.next) {
499
+ yield node.data.key;
500
+ }
501
+ }
502
+ *values() {
503
+ for (let node = __classPrivateFieldGet(this, _ExpCache_lru, "f").first; node !== undefined; node = node.next) {
504
+ yield node.data.value;
505
+ }
506
+ }
507
+ *sizes() {
508
+ for (let node = __classPrivateFieldGet(this, _ExpCache_lru, "f").first; node !== undefined; node = node.next) {
509
+ yield node.data.size;
510
+ }
511
+ }
512
+ *exps() {
513
+ for (let node = __classPrivateFieldGet(this, _ExpCache_lru, "f").first; node !== undefined; node = node.next) {
514
+ yield node.data.exp;
515
+ }
516
+ }
517
+ [node_util_1.inspect.custom](depth, options) {
518
+ return {
519
+ size: this.size,
520
+ usedMemory: __classPrivateFieldGet(this, _ExpCache_usedMemory, "f"),
521
+ maxMemory: __classPrivateFieldGet(this, _ExpCache_maxMemory, "f"),
522
+ entries: [...this],
523
+ };
524
+ }
525
+ toJSON() {
526
+ const rec = {};
527
+ for (let node = __classPrivateFieldGet(this, _ExpCache_lru, "f").first; node !== undefined; node = node.next) {
528
+ const { value, size, exp } = node.data;
529
+ rec[String(node.data.key)] = { value, size, exp: exp !== null && exp !== void 0 ? exp : null };
530
+ }
531
+ return rec;
532
+ }
533
+ forEach(callback) {
534
+ return __awaiter(this, void 0, void 0, function* () {
535
+ for (let node = __classPrivateFieldGet(this, _ExpCache_lru, "f").first; node !== undefined; node = node.next) {
536
+ const { value, size, exp, key } = node.data;
537
+ yield callback(value, size, exp, key);
538
+ }
539
+ return this;
540
+ });
541
+ }
542
+ forEachSync(callback) {
543
+ for (let node = __classPrivateFieldGet(this, _ExpCache_lru, "f").first; node !== undefined; node = node.next) {
544
+ const { value, size, exp, key } = node.data;
545
+ callback(value, size, exp, key);
546
+ }
547
+ return this;
548
+ }
549
+ }
550
+ exports.ExpCache = ExpCache;
551
+ //# sourceMappingURL=exp-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exp-cache.js","sourceRoot":"","sources":["../src/exp-cache.ts"],"names":[],"mappings":"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"}