@jacraig/request 1.0.8 → 1.1.0
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.
- package/lib/Request.cjs.js +228 -54
- package/lib/Request.cjs.js.map +1 -1
- package/lib/Request.esm.js +228 -55
- package/lib/Request.esm.js.map +1 -1
- package/lib/Request.umd.js +228 -54
- package/lib/Request.umd.js.map +1 -1
- package/lib/Request.umd.min.js +1 -1
- package/lib/Request.umd.min.js.map +1 -1
- package/lib/declarations/AsyncFunction.d.ts +2 -0
- package/lib/declarations/AsyncFunction.d.ts.map +1 -0
- package/lib/declarations/Cache.d.ts +9 -30
- package/lib/declarations/Cache.d.ts.map +1 -1
- package/lib/declarations/CacheEntryOptions.d.ts +6 -0
- package/lib/declarations/CacheEntryOptions.d.ts.map +1 -0
- package/lib/declarations/CacheProvider.d.ts +15 -0
- package/lib/declarations/CacheProvider.d.ts.map +1 -0
- package/lib/declarations/{Database.d.ts → DatabaseConnection.d.ts} +2 -1
- package/lib/declarations/DatabaseConnection.d.ts.map +1 -0
- package/lib/declarations/InMemoryStorageProvider.d.ts +14 -0
- package/lib/declarations/InMemoryStorageProvider.d.ts.map +1 -0
- package/lib/declarations/IndexedDbStorageProvider.d.ts +15 -0
- package/lib/declarations/IndexedDbStorageProvider.d.ts.map +1 -0
- package/lib/declarations/Request.d.ts +12 -2
- package/lib/declarations/Request.d.ts.map +1 -1
- package/lib/declarations/StorageEntry.d.ts +7 -0
- package/lib/declarations/StorageEntry.d.ts.map +1 -0
- package/lib/declarations/StorageProvider.d.ts +11 -0
- package/lib/declarations/StorageProvider.d.ts.map +1 -0
- package/package.json +8 -2
- package/lib/declarations/Database.d.ts.map +0 -1
package/lib/Request.umd.js
CHANGED
|
@@ -4,6 +4,58 @@
|
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.request = {}, global.woodchuck));
|
|
5
5
|
})(this, (function (exports, woodchuck) { 'use strict';
|
|
6
6
|
|
|
7
|
+
class Cache {
|
|
8
|
+
constructor(provider) {
|
|
9
|
+
this.storageProvider = provider;
|
|
10
|
+
}
|
|
11
|
+
async set(key, value, entryOptions = { expirationTime: 0, slidingExpirationTime: 0, sliding: false }) {
|
|
12
|
+
woodchuck.Logger.debug("Setting object in cache: ", { "key": key, "value": value, "entryOptions": entryOptions });
|
|
13
|
+
await this.storageProvider.add(value, key, entryOptions);
|
|
14
|
+
}
|
|
15
|
+
async get(key) {
|
|
16
|
+
woodchuck.Logger.debug("Getting object from cache: " + key);
|
|
17
|
+
await this.storageProvider.compact();
|
|
18
|
+
let returnValue = await this.storageProvider.get(key);
|
|
19
|
+
if (returnValue == null) {
|
|
20
|
+
return returnValue;
|
|
21
|
+
}
|
|
22
|
+
let entryOptions = await this.storageProvider.getOptions(key);
|
|
23
|
+
if (entryOptions.sliding) {
|
|
24
|
+
await this.set(key, returnValue, {
|
|
25
|
+
expirationTime: new Date().getTime() + entryOptions.slidingExpirationTime,
|
|
26
|
+
slidingExpirationTime: entryOptions.slidingExpirationTime,
|
|
27
|
+
sliding: true
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return returnValue;
|
|
31
|
+
}
|
|
32
|
+
async getOrCreate(key, fallBack, options = { expirationTime: 0, slidingExpirationTime: 0, sliding: false }) {
|
|
33
|
+
woodchuck.Logger.debug("Getting object from cache or creating it: ", { "key": key });
|
|
34
|
+
await this.storageProvider.compact();
|
|
35
|
+
let returnValue = await this.storageProvider.getOrCreate(key, fallBack, options);
|
|
36
|
+
if (returnValue == null) {
|
|
37
|
+
return returnValue;
|
|
38
|
+
}
|
|
39
|
+
let entryOptions = await this.storageProvider.getOptions(key);
|
|
40
|
+
if (entryOptions.sliding) {
|
|
41
|
+
await this.set(key, returnValue, {
|
|
42
|
+
expirationTime: new Date().getTime() + entryOptions.slidingExpirationTime,
|
|
43
|
+
slidingExpirationTime: entryOptions.slidingExpirationTime,
|
|
44
|
+
sliding: true
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return returnValue;
|
|
48
|
+
}
|
|
49
|
+
async remove(key) {
|
|
50
|
+
woodchuck.Logger.debug("Removing object from cache: " + key);
|
|
51
|
+
await this.storageProvider.remove(key);
|
|
52
|
+
}
|
|
53
|
+
async clear() {
|
|
54
|
+
woodchuck.Logger.debug("Clearing cache");
|
|
55
|
+
await this.storageProvider.clear();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
7
59
|
class DatabaseConnection {
|
|
8
60
|
constructor(dbName, tables, version) {
|
|
9
61
|
this.dbName = dbName;
|
|
@@ -43,6 +95,10 @@
|
|
|
43
95
|
});
|
|
44
96
|
}
|
|
45
97
|
add(table, obj, key) {
|
|
98
|
+
if (table == null || key == null) {
|
|
99
|
+
woodchuck.Logger.error('Table and key must be specified to add an object to the database');
|
|
100
|
+
return Promise.reject(new Error('Table and key must be specified to add an object to the database'));
|
|
101
|
+
}
|
|
46
102
|
return new Promise((resolve, reject) => {
|
|
47
103
|
if (!this.database) {
|
|
48
104
|
woodchuck.Logger.error('Database connection is not open');
|
|
@@ -61,7 +117,34 @@
|
|
|
61
117
|
};
|
|
62
118
|
});
|
|
63
119
|
}
|
|
120
|
+
clear(table) {
|
|
121
|
+
if (table == null) {
|
|
122
|
+
woodchuck.Logger.error('Table must be specified to clear the database');
|
|
123
|
+
return Promise.reject(new Error('Table must be specified to clear the database'));
|
|
124
|
+
}
|
|
125
|
+
return new Promise((resolve, reject) => {
|
|
126
|
+
if (!this.database) {
|
|
127
|
+
woodchuck.Logger.error('Database connection is not open');
|
|
128
|
+
reject(new Error('Database connection is not open'));
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
const transaction = this.database.transaction(table, 'readwrite');
|
|
132
|
+
const objectStore = transaction.objectStore(table);
|
|
133
|
+
const request = objectStore.clear();
|
|
134
|
+
request.onsuccess = () => {
|
|
135
|
+
resolve();
|
|
136
|
+
};
|
|
137
|
+
request.onerror = (ev) => {
|
|
138
|
+
woodchuck.Logger.error('Failed to clear the database: ', ev.target.error);
|
|
139
|
+
reject(new Error('Failed to clear the database: ' + ev.target.error));
|
|
140
|
+
};
|
|
141
|
+
});
|
|
142
|
+
}
|
|
64
143
|
remove(table, key) {
|
|
144
|
+
if (table == null || key == null) {
|
|
145
|
+
woodchuck.Logger.error('Table and key must be specified to remove an object from the database');
|
|
146
|
+
return Promise.reject(new Error('Table and key must be specified to remove an object from the database'));
|
|
147
|
+
}
|
|
65
148
|
return new Promise((resolve, reject) => {
|
|
66
149
|
if (!this.database) {
|
|
67
150
|
woodchuck.Logger.error('Database connection is not open');
|
|
@@ -81,6 +164,10 @@
|
|
|
81
164
|
});
|
|
82
165
|
}
|
|
83
166
|
getByKey(table, key) {
|
|
167
|
+
if (table == null || key == null) {
|
|
168
|
+
woodchuck.Logger.error('Table and key must be specified to get an object from the database');
|
|
169
|
+
return Promise.reject(new Error('Table and key must be specified to get an object from the database'));
|
|
170
|
+
}
|
|
84
171
|
return new Promise((resolve, reject) => {
|
|
85
172
|
if (!this.database) {
|
|
86
173
|
woodchuck.Logger.error('Database connection is not open');
|
|
@@ -100,6 +187,10 @@
|
|
|
100
187
|
});
|
|
101
188
|
}
|
|
102
189
|
getKeys(table) {
|
|
190
|
+
if (table == null) {
|
|
191
|
+
woodchuck.Logger.error('Table must be specified to get keys from the database');
|
|
192
|
+
return Promise.reject(new Error('Table must be specified to get keys from the database'));
|
|
193
|
+
}
|
|
103
194
|
return new Promise((resolve, reject) => {
|
|
104
195
|
if (!this.database) {
|
|
105
196
|
woodchuck.Logger.error('Database connection is not open');
|
|
@@ -119,6 +210,10 @@
|
|
|
119
210
|
});
|
|
120
211
|
}
|
|
121
212
|
get(table, query) {
|
|
213
|
+
if (table == null || query == null) {
|
|
214
|
+
woodchuck.Logger.error('Table and query must be specified to get an object from the database');
|
|
215
|
+
return Promise.reject(new Error('Table and query must be specified to get an object from the database'));
|
|
216
|
+
}
|
|
122
217
|
return new Promise((resolve, reject) => {
|
|
123
218
|
if (!this.database) {
|
|
124
219
|
woodchuck.Logger.error('Database connection is not open');
|
|
@@ -138,6 +233,10 @@
|
|
|
138
233
|
});
|
|
139
234
|
}
|
|
140
235
|
getAll(table, query) {
|
|
236
|
+
if (table == null) {
|
|
237
|
+
woodchuck.Logger.error('Table must be specified to get objects from the database');
|
|
238
|
+
return Promise.reject(new Error('Table must be specified to get objects from the database'));
|
|
239
|
+
}
|
|
141
240
|
return new Promise((resolve, reject) => {
|
|
142
241
|
if (!this.database) {
|
|
143
242
|
woodchuck.Logger.error('Database connection is not open');
|
|
@@ -160,16 +259,14 @@
|
|
|
160
259
|
|
|
161
260
|
class IndexedDbStorageProvider {
|
|
162
261
|
constructor() {
|
|
262
|
+
this.storage = new Map();
|
|
163
263
|
this.database = new DatabaseConnection("cacheStore", ["cache", "cacheEntryOptions"], 1);
|
|
164
264
|
}
|
|
165
265
|
async clear() {
|
|
266
|
+
this.storage.clear();
|
|
166
267
|
await this.database.openDatabase();
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
for (let i = 0; i < cacheEntryOptions.length; i++) {
|
|
170
|
-
let cacheEntry = cacheEntries[i];
|
|
171
|
-
await this.remove(cacheEntry.key);
|
|
172
|
-
}
|
|
268
|
+
this.database.clear("cache");
|
|
269
|
+
this.database.clear("cacheEntryOptions");
|
|
173
270
|
return this;
|
|
174
271
|
}
|
|
175
272
|
async getOptions(key) {
|
|
@@ -177,12 +274,14 @@
|
|
|
177
274
|
return this.database.getByKey("cacheEntryOptions", key);
|
|
178
275
|
}
|
|
179
276
|
async add(obj, key, options) {
|
|
277
|
+
this.storage.has(key) ? this.storage.get(key).value = obj : this.storage.set(key, { promise: Promise.resolve(obj), value: obj, options: options });
|
|
180
278
|
await this.database.openDatabase();
|
|
181
279
|
await this.database.add("cache", obj, key);
|
|
182
280
|
await this.database.add("cacheEntryOptions", options, key);
|
|
183
281
|
return this;
|
|
184
282
|
}
|
|
185
283
|
async remove(key) {
|
|
284
|
+
this.storage.delete(key);
|
|
186
285
|
await this.database.openDatabase();
|
|
187
286
|
await this.database.remove("cache", key);
|
|
188
287
|
await this.database.remove("cacheEntryOptions", key);
|
|
@@ -192,62 +291,119 @@
|
|
|
192
291
|
await this.database.openDatabase();
|
|
193
292
|
return this.database.getByKey("cache", key);
|
|
194
293
|
}
|
|
294
|
+
async getOrCreate(key, fallBack, options) {
|
|
295
|
+
let value = await this.get(key);
|
|
296
|
+
if (value != null) {
|
|
297
|
+
return value;
|
|
298
|
+
}
|
|
299
|
+
if (this.storage.has(key)) {
|
|
300
|
+
let entry = this.storage.get(key);
|
|
301
|
+
if (entry?.value !== undefined) {
|
|
302
|
+
return entry.value;
|
|
303
|
+
}
|
|
304
|
+
return entry?.promise;
|
|
305
|
+
}
|
|
306
|
+
const promise = (async () => {
|
|
307
|
+
const value = await fallBack();
|
|
308
|
+
await this.add(value, key, options);
|
|
309
|
+
return value;
|
|
310
|
+
})();
|
|
311
|
+
this.storage.set(key, { promise: promise, value: undefined, options: options });
|
|
312
|
+
return promise;
|
|
313
|
+
}
|
|
195
314
|
async compact() {
|
|
196
315
|
await this.database.openDatabase();
|
|
197
|
-
let
|
|
198
|
-
let cacheEntries = await this.database.getAll("cache");
|
|
316
|
+
let cacheKeys = await this.database.getKeys("cache");
|
|
199
317
|
let now = new Date().getTime();
|
|
200
|
-
for (let i = 0; i <
|
|
201
|
-
let
|
|
202
|
-
let
|
|
203
|
-
if (cacheEntryOption.expirationTime == 0) {
|
|
318
|
+
for (let i = 0; i < cacheKeys.length; i++) {
|
|
319
|
+
let key = cacheKeys[i];
|
|
320
|
+
let cacheEntryOption = await this.database.getByKey("cacheEntryOptions", key);
|
|
321
|
+
if (cacheEntryOption.expirationTime == 0 || cacheEntryOption.expirationTime >= now) {
|
|
204
322
|
continue;
|
|
205
323
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
324
|
+
this.storage.delete(key);
|
|
325
|
+
await this.database.remove("cache", key);
|
|
326
|
+
await this.database.remove("cacheEntryOptions", key);
|
|
209
327
|
}
|
|
210
328
|
return this;
|
|
211
329
|
}
|
|
212
330
|
}
|
|
213
|
-
|
|
331
|
+
|
|
332
|
+
class CacheProvider {
|
|
214
333
|
constructor() { }
|
|
215
|
-
static configure(storageProvider = new IndexedDbStorageProvider()) {
|
|
216
|
-
|
|
217
|
-
globalThis.
|
|
334
|
+
static configure(name = "Default", storageProvider = new IndexedDbStorageProvider()) {
|
|
335
|
+
woodchuck.Logger.debug("Configuring cache with storage provider: ", { "name": name, "storageProvider": storageProvider });
|
|
336
|
+
this.storageProviders ??= globalThis.StorageProviders ?? {};
|
|
337
|
+
if (this.storageProviders[name] != null) {
|
|
338
|
+
woodchuck.Logger.debug("Cache already configured with storage provider: ", { "name": name });
|
|
339
|
+
return this.storageProviders;
|
|
340
|
+
}
|
|
341
|
+
this.storageProviders[name] = new Cache(storageProvider ?? new IndexedDbStorageProvider());
|
|
342
|
+
globalThis.StorageProviders = this.storageProviders;
|
|
343
|
+
return this.storageProviders;
|
|
344
|
+
}
|
|
345
|
+
static getProvider(name = "Default") {
|
|
346
|
+
let Providers = this.configure(name);
|
|
347
|
+
if (Providers == undefined) {
|
|
348
|
+
return new Cache(new IndexedDbStorageProvider());
|
|
349
|
+
}
|
|
350
|
+
return Providers[name] ?? new Cache(new IndexedDbStorageProvider());
|
|
218
351
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
class InMemoryStorageProvider {
|
|
355
|
+
constructor() {
|
|
356
|
+
this.storage = new Map();
|
|
223
357
|
}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
358
|
+
add(obj, key, options) {
|
|
359
|
+
this.storage.set(key, { promise: Promise.resolve(obj), value: obj, options: options });
|
|
360
|
+
return Promise.resolve(this);
|
|
361
|
+
}
|
|
362
|
+
remove(key) {
|
|
363
|
+
this.storage.delete(key);
|
|
364
|
+
return Promise.resolve(this);
|
|
365
|
+
}
|
|
366
|
+
get(key) {
|
|
367
|
+
if (!this.storage.has(key)) {
|
|
368
|
+
return Promise.resolve(undefined);
|
|
231
369
|
}
|
|
232
|
-
|
|
233
|
-
if (
|
|
234
|
-
|
|
235
|
-
expirationTime: new Date().getTime() + entryOptions.slidingExpirationTime,
|
|
236
|
-
slidingExpirationTime: entryOptions.slidingExpirationTime,
|
|
237
|
-
sliding: true
|
|
238
|
-
});
|
|
370
|
+
const entry = this.storage.get(key);
|
|
371
|
+
if (entry == undefined) {
|
|
372
|
+
return Promise.resolve(undefined);
|
|
239
373
|
}
|
|
240
|
-
|
|
374
|
+
if (entry.value != undefined) {
|
|
375
|
+
return Promise.resolve(entry.value);
|
|
376
|
+
}
|
|
377
|
+
return entry.promise;
|
|
241
378
|
}
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
379
|
+
async getOrCreate(key, fallBack, options) {
|
|
380
|
+
if (this.storage.has(key)) {
|
|
381
|
+
return this.get(key);
|
|
382
|
+
}
|
|
383
|
+
const promise = (async () => {
|
|
384
|
+
const value = await fallBack();
|
|
385
|
+
this.storage.get(key).value = value;
|
|
386
|
+
return value;
|
|
387
|
+
})();
|
|
388
|
+
this.storage.set(key, { promise: promise, value: undefined, options: options });
|
|
389
|
+
return promise;
|
|
390
|
+
}
|
|
391
|
+
getOptions(key) {
|
|
392
|
+
return Promise.resolve(this.storage.get(key).options);
|
|
393
|
+
}
|
|
394
|
+
compact() {
|
|
395
|
+
const now = new Date().getTime();
|
|
396
|
+
for (const [key, entry] of this.storage) {
|
|
397
|
+
if (entry.options.expirationTime == 0 || entry.options.expirationTime >= now) {
|
|
398
|
+
continue;
|
|
399
|
+
}
|
|
400
|
+
this.remove(key);
|
|
401
|
+
}
|
|
402
|
+
return Promise.resolve(this);
|
|
246
403
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
await this.storageProvider.clear();
|
|
404
|
+
clear() {
|
|
405
|
+
this.storage.clear();
|
|
406
|
+
return Promise.resolve(this);
|
|
251
407
|
}
|
|
252
408
|
}
|
|
253
409
|
|
|
@@ -256,6 +412,11 @@
|
|
|
256
412
|
this.canceled = false;
|
|
257
413
|
}
|
|
258
414
|
}
|
|
415
|
+
exports.CacheNames = void 0;
|
|
416
|
+
(function (CacheNames) {
|
|
417
|
+
CacheNames["Default"] = "Default";
|
|
418
|
+
CacheNames["InMemory"] = "InMemory";
|
|
419
|
+
})(exports.CacheNames || (exports.CacheNames = {}));
|
|
259
420
|
class Request {
|
|
260
421
|
constructor(options) {
|
|
261
422
|
this.options = {
|
|
@@ -269,12 +430,15 @@
|
|
|
269
430
|
error: (reason) => { woodchuck.Logger.error("Request error from " + this.options.url + ":", reason); },
|
|
270
431
|
retry: (attempt) => { woodchuck.Logger.debug("Request retry on " + this.options.url + ":", { "attempt": attempt }); },
|
|
271
432
|
storageMode: exports.StorageMode.NetworkFirst,
|
|
433
|
+
cache: exports.CacheNames.Default,
|
|
272
434
|
cacheKey: "",
|
|
273
435
|
timeout: 60000,
|
|
274
436
|
retryAttempts: 3,
|
|
275
437
|
retryDelay: 1000
|
|
276
438
|
};
|
|
277
439
|
this.abortController = null;
|
|
440
|
+
CacheProvider.configure(exports.CacheNames.Default, new IndexedDbStorageProvider());
|
|
441
|
+
CacheProvider.configure(exports.CacheNames.InMemory, new InMemoryStorageProvider());
|
|
278
442
|
this.options = { ...this.options, ...options };
|
|
279
443
|
}
|
|
280
444
|
static get(url, data) {
|
|
@@ -349,6 +513,11 @@
|
|
|
349
513
|
this.options.storageMode = storageMode;
|
|
350
514
|
return this;
|
|
351
515
|
}
|
|
516
|
+
withCache(cacheName, cache = new IndexedDbStorageProvider()) {
|
|
517
|
+
CacheProvider.configure(cacheName, cache);
|
|
518
|
+
this.options.cache = cacheName;
|
|
519
|
+
return this;
|
|
520
|
+
}
|
|
352
521
|
withCacheKey(cacheKey) {
|
|
353
522
|
this.options.cacheKey = cacheKey;
|
|
354
523
|
return this;
|
|
@@ -374,9 +543,10 @@
|
|
|
374
543
|
return this;
|
|
375
544
|
}
|
|
376
545
|
async send() {
|
|
377
|
-
const { authenticationProvider, method, url, data, headers, credentials, serializer, parser, success, error, storageMode, cacheKey, timeout, retryAttempts, retryDelay, retry, cancellationToken } = this.options;
|
|
546
|
+
const { authenticationProvider, method, url, data, headers, credentials, serializer, parser, success, error, storageMode, cache, cacheKey, timeout, retryAttempts, retryDelay, retry, cancellationToken } = this.options;
|
|
378
547
|
const abortController = new AbortController();
|
|
379
548
|
this.abortController = abortController;
|
|
549
|
+
let cacheUsing = CacheProvider.getProvider(cache);
|
|
380
550
|
let attempts = 0;
|
|
381
551
|
let lastError = null;
|
|
382
552
|
let successMethod = success || ((response) => { woodchuck.Logger.debug("Request response from " + url + ":", response); });
|
|
@@ -385,18 +555,15 @@
|
|
|
385
555
|
let parserMethod = parser || ((response) => response.json());
|
|
386
556
|
let retryMethod = retry || ((attempt) => { woodchuck.Logger.debug("Request retry on " + url + ":", { "attempt": attempt }); });
|
|
387
557
|
const sendRequest = async () => {
|
|
388
|
-
if (storageMode === exports.StorageMode.
|
|
389
|
-
const cachedValue = await
|
|
558
|
+
if (storageMode === exports.StorageMode.StorageAndUpdate) {
|
|
559
|
+
const cachedValue = await cacheUsing.get(cacheKey || "");
|
|
390
560
|
if (cachedValue !== undefined) {
|
|
391
561
|
successMethod(cachedValue);
|
|
392
|
-
if (storageMode === exports.StorageMode.StorageFirst) {
|
|
393
|
-
return cachedValue;
|
|
394
|
-
}
|
|
395
562
|
}
|
|
396
563
|
}
|
|
397
564
|
if (!navigator.onLine) {
|
|
398
565
|
if (storageMode === exports.StorageMode.NetworkFirst) {
|
|
399
|
-
const cachedValue = await
|
|
566
|
+
const cachedValue = await cacheUsing.get(cacheKey || "");
|
|
400
567
|
if (cachedValue !== undefined) {
|
|
401
568
|
successMethod(cachedValue);
|
|
402
569
|
return cachedValue;
|
|
@@ -426,7 +593,7 @@
|
|
|
426
593
|
const parsedResponse = await parserMethod(response);
|
|
427
594
|
successMethod(parsedResponse);
|
|
428
595
|
if (storageMode !== exports.StorageMode.NetworkOnly) {
|
|
429
|
-
await
|
|
596
|
+
await cacheUsing.set(cacheKey || "", parsedResponse);
|
|
430
597
|
}
|
|
431
598
|
return parsedResponse;
|
|
432
599
|
}
|
|
@@ -440,6 +607,9 @@
|
|
|
440
607
|
}
|
|
441
608
|
if (attempts < (retryAttempts || 0)) {
|
|
442
609
|
++attempts;
|
|
610
|
+
if (storageMode !== exports.StorageMode.NetworkOnly) {
|
|
611
|
+
cacheUsing.remove(cacheKey || "");
|
|
612
|
+
}
|
|
443
613
|
await new Promise(resolve => setTimeout(resolve, retryDelay));
|
|
444
614
|
retryMethod(attempts);
|
|
445
615
|
return sendRequest();
|
|
@@ -447,6 +617,9 @@
|
|
|
447
617
|
errorMethod(lastError);
|
|
448
618
|
return Promise.reject(lastError);
|
|
449
619
|
};
|
|
620
|
+
if (storageMode === exports.StorageMode.StorageFirst) {
|
|
621
|
+
return cacheUsing.getOrCreate(cacheKey || "", sendRequest);
|
|
622
|
+
}
|
|
450
623
|
return sendRequest();
|
|
451
624
|
}
|
|
452
625
|
async handleTimeout(timeout) {
|
|
@@ -469,6 +642,7 @@
|
|
|
469
642
|
|
|
470
643
|
exports.Cache = Cache;
|
|
471
644
|
exports.CancellationToken = CancellationToken;
|
|
645
|
+
exports.InMemoryStorageProvider = InMemoryStorageProvider;
|
|
472
646
|
exports.IndexedDbStorageProvider = IndexedDbStorageProvider;
|
|
473
647
|
exports.Request = Request;
|
|
474
648
|
|
package/lib/Request.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Request.umd.js","sources":["../src/Database.ts","../src/Cache.ts","../src/Request.ts"],"sourcesContent":[null,null,null],"names":["Logger","StorageMode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Request.umd.js","sources":["../src/Cache.ts","../src/DatabaseConnection.ts","../src/IndexedDbStorageProvider.ts","../src/CacheProvider.ts","../src/InMemoryStorageProvider.ts","../src/Request.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["Logger","CacheNames","StorageMode"],"mappings":";;;;;;UAKa,KAAK,CAAA;IAGd,IAAA,WAAA,CAAY,QAAyB,EAAA;IACjC,QAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;SAClC;QAUK,MAAM,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,eAAkC,EAAE,cAAc,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAA;IACvI,QAAAA,gBAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;IACxG,QAAA,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;SAC5D;QAKM,MAAM,GAAG,CAAC,GAAW,EAAA;IACxB,QAAAA,gBAAM,CAAC,KAAK,CAAC,6BAA6B,GAAG,GAAG,CAAC,CAAC;IAClD,QAAA,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtD,QAAA,IAAI,WAAW,IAAI,IAAI,EAAE;IACrB,YAAA,OAAO,WAAW,CAAC;aACtB;YACD,IAAI,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9D,QAAA,IAAI,YAAY,CAAC,OAAO,EAAE;IACtB,YAAA,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE;oBAC7B,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,qBAAqB;oBACzE,qBAAqB,EAAE,YAAY,CAAC,qBAAqB;IACzD,gBAAA,OAAO,EAAE,IAAI;IAChB,aAAA,CAAC,CAAC;aACN;IACD,QAAA,OAAO,WAAW,CAAC;SACtB;QAOM,MAAM,WAAW,CAAC,GAAW,EAAE,QAA4B,EAAE,UAA6B,EAAE,cAAc,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAA;YAC5JA,gBAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3E,QAAA,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACrC,QAAA,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjF,QAAA,IAAI,WAAW,IAAI,IAAI,EAAE;IACrB,YAAA,OAAO,WAAW,CAAC;aACtB;YACD,IAAI,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9D,QAAA,IAAI,YAAY,CAAC,OAAO,EAAE;IACtB,YAAA,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE;oBAC7B,cAAc,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,qBAAqB;oBACzE,qBAAqB,EAAE,YAAY,CAAC,qBAAqB;IACzD,gBAAA,OAAO,EAAE,IAAI;IAChB,aAAA,CAAC,CAAC;aACN;IACD,QAAA,OAAO,WAAW,CAAC;SACtB;QAKM,MAAM,MAAM,CAAC,GAAW,EAAA;IAC3B,QAAAA,gBAAM,CAAC,KAAK,CAAC,8BAA8B,GAAG,GAAG,CAAC,CAAC;YACnD,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC1C;IAIM,IAAA,MAAM,KAAK,GAAA;IACd,QAAAA,gBAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC/B,QAAA,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;SACtC;IACJ;;UChFY,kBAAkB,CAAA;IAQ3B,IAAA,WAAA,CAAoB,MAAc,EAAU,MAAgB,EAAU,OAAe,EAAA;YAAjE,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;YAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAU;YAAU,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;YACjF,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhD,QAAA,OAAO,CAAC,eAAe,GAAG,CAAC,EAAO,KAAI;gBAClC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IACjC,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAChB,OAAO;iBACV;IAED,YAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;oBACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;IAChD,oBAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;qBAC1C;IAED,gBAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;iBAC1C;IACL,SAAC,CAAC;IAEF,QAAA,OAAO,CAAC,SAAS,GAAG,CAAC,EAAO,KAAI;gBAC5B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IACrC,SAAC,CAAC;IAEF,QAAA,OAAO,CAAC,OAAO,GAAG,CAAC,EAAO,KAAI;gBAC1BA,gBAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClE,SAAC,CAAC;SACL;QAIM,YAAY,GAAA;YACf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;IACnC,YAAA,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAE1D,YAAA,OAAO,CAAC,SAAS,GAAG,CAAC,EAAO,KAAI;oBAC5B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;oBACjC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,aAAC,CAAC;IAEF,YAAA,OAAO,CAAC,OAAO,GAAG,CAAC,EAAO,KAAI;oBAC1BA,gBAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9D,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,aAAC,CAAC;IACN,SAAC,CAAC,CAAC;SACN;IAOM,IAAA,GAAG,CAAC,KAAa,EAAE,GAAQ,EAAE,GAAgB,EAAA;YAChD,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE;IAC9B,YAAAA,gBAAM,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;gBACjF,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC,CAAC;aACxG;YACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;IACnC,YAAA,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;IACf,gBAAAA,gBAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAChD,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;oBACrD,OAAO;iBACV;IACD,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAClE,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE1C,YAAA,OAAO,CAAC,SAAS,GAAG,MAAK;IACrB,gBAAA,OAAO,EAAE,CAAC;IACd,aAAC,CAAC;IAEF,YAAA,OAAO,CAAC,OAAO,GAAG,CAAC,EAAO,KAAI;oBAC1BA,gBAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3E,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,2CAA2C,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACrF,aAAC,CAAC;IACN,SAAC,CAAC,CAAC;SACN;IAKM,IAAA,KAAK,CAAC,KAAa,EAAA;IACtB,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;IACf,YAAAA,gBAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBAC9D,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;aACrF;YACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;IACnC,YAAA,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;IACf,gBAAAA,gBAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAChD,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;oBACrD,OAAO;iBACV;IACD,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAClE,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACnD,YAAA,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;IAEpC,YAAA,OAAO,CAAC,SAAS,GAAG,MAAK;IACrB,gBAAA,OAAO,EAAE,CAAC;IACd,aAAC,CAAC;IAEF,YAAA,OAAO,CAAC,OAAO,GAAG,CAAC,EAAO,KAAI;oBAC1BA,gBAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChE,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1E,aAAC,CAAC;IACN,SAAC,CAAC,CAAC;SACN;QAMM,MAAM,CAAC,KAAa,EAAE,GAAgB,EAAA;YACzC,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE;IAC9B,YAAAA,gBAAM,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;gBACtF,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC,CAAC;aAC7G;YACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;IACnC,YAAA,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;IACf,gBAAAA,gBAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAChD,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;oBACrD,OAAO;iBACV;IACD,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAClE,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAExC,YAAA,OAAO,CAAC,SAAS,GAAG,MAAK;IACrB,gBAAA,OAAO,EAAE,CAAC;IACd,aAAC,CAAC;IAEF,YAAA,OAAO,CAAC,OAAO,GAAG,CAAC,EAAO,KAAI;oBAC1BA,gBAAM,CAAC,KAAK,CAAC,gDAAgD,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChF,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,gDAAgD,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1F,aAAC,CAAC;IACN,SAAC,CAAC,CAAC;SACN;QAMM,QAAQ,CAAC,KAAa,EAAE,GAAgB,EAAA;YAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE;IAC9B,YAAAA,gBAAM,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;gBACnF,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC,CAAC;aAC1G;YACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;IACnC,YAAA,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;IACf,gBAAAA,gBAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAChD,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;oBACrD,OAAO;iBACV;IACD,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAClE,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAErC,YAAA,OAAO,CAAC,SAAS,GAAG,CAAC,EAAO,KAAI;IAC5B,gBAAA,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,aAAC,CAAC;IAEF,YAAA,OAAO,CAAC,OAAO,GAAG,CAAC,EAAO,KAAI;oBAC1BA,gBAAM,CAAC,KAAK,CAAC,kDAAkD,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClF,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,kDAAkD,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5F,aAAC,CAAC;IACN,SAAC,CAAC,CAAC;SACN;IAMM,IAAA,OAAO,CAAC,KAAa,EAAA;IACxB,QAAA,IAAI,KAAK,IAAI,IAAI,EAAG;IAChB,YAAAA,gBAAM,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;gBACtE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC,CAAC;aAC7F;YACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;IACnC,YAAA,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;IACf,gBAAAA,gBAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAChD,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;oBACrD,OAAO;iBACV;IACD,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAClE,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACnD,YAAA,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;IAEzC,YAAA,OAAO,CAAC,SAAS,GAAG,CAAC,EAAO,KAAI;IAC5B,gBAAA,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,aAAC,CAAC;IAEF,YAAA,OAAO,CAAC,OAAO,GAAG,CAAC,EAAO,KAAI;oBAC1BA,gBAAM,CAAC,KAAK,CAAC,kDAAkD,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClF,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,6CAA6C,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvF,aAAC,CAAC;IACN,SAAC,CAAC,CAAC;SACN;QAMM,GAAG,CAAC,KAAa,EAAE,KAAa,EAAA;YACnC,IAAG,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE;IAC/B,YAAAA,gBAAM,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;gBACrF,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC,CAAC;aAC5G;YACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;IACnC,YAAA,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;IACf,gBAAAA,gBAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAChD,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;oBACrD,OAAO;iBACV;IAED,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAClE,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEvC,YAAA,OAAO,CAAC,SAAS,GAAG,CAAC,EAAO,KAAI;IAC5B,gBAAA,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,aAAC,CAAC;IAEF,YAAA,OAAO,CAAC,OAAO,GAAG,CAAC,EAAO,KAAI;oBAC1BA,gBAAM,CAAC,KAAK,CAAC,kDAAkD,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClF,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,kDAAkD,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5F,aAAC,CAAC;IACN,SAAC,CAAC,CAAC;SACN;QAMM,MAAM,CAAC,KAAa,EAAE,KAAc,EAAA;IACvC,QAAA,IAAG,KAAK,IAAI,IAAI,EAAE;IACd,YAAAA,gBAAM,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;gBACzE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC,CAAC;aAChG;YACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;IACnC,YAAA,IAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;IACf,gBAAAA,gBAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAChD,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;oBACrD,OAAO;iBACV;IACD,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBAClE,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE1C,YAAA,OAAO,CAAC,SAAS,GAAG,CAAC,EAAO,KAAI;IAC5B,gBAAA,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,aAAC,CAAC;IAEF,YAAA,OAAO,CAAC,OAAO,GAAG,CAAC,EAAO,KAAI;oBAC1BA,gBAAM,CAAC,KAAK,CAAC,kDAAkD,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClF,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,gDAAgD,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1F,aAAC,CAAC;IACN,SAAC,CAAC,CAAC;SACN;IACJ;;UCpQY,wBAAwB,CAAA;IAKjC,IAAA,WAAA,GAAA;IACI,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;IACpD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC;SAC3F;IAIM,IAAA,MAAM,KAAK,GAAA;IACd,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACrB,QAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACnC,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACzC,QAAA,OAAO,IAAI,CAAC;SACf;QAKM,MAAM,UAAU,CAAC,GAAW,EAAA;IAC/B,QAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;SAC3D;IAMM,IAAA,MAAM,GAAG,CAAC,GAAQ,EAAE,GAAW,EAAE,OAA0B,EAAA;YAC9D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACpJ,QAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACnC,QAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,QAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC3D,QAAA,OAAO,IAAI,CAAC;SACf;QAIM,MAAM,MAAM,CAAC,GAAW,EAAA;IAC3B,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,QAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IACrD,QAAA,OAAO,IAAI,CAAC;SACf;QAKM,MAAM,GAAG,CAAC,GAAW,EAAA;IACxB,QAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;SAC/C;IAQM,IAAA,MAAM,WAAW,CAAC,GAAW,EAAE,QAA4B,EAAE,OAA0B,EAAA;YAC1F,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,QAAA,IAAG,KAAK,IAAI,IAAI,EAAE;IACd,YAAA,OAAO,KAAK,CAAC;aAChB;YACD,IAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACtB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,YAAA,IAAG,KAAK,EAAE,KAAK,KAAI,SAAS,EAAE;oBAC1B,OAAO,KAAK,CAAC,KAAK,CAAC;iBACtB;gBACD,OAAO,KAAK,EAAE,OAAO,CAAC;aACzB;IACD,QAAA,MAAM,OAAO,GAAG,CAAC,YAAS;IACtB,YAAA,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACpC,YAAA,OAAO,KAAK,CAAC;aAChB,GAAG,CAAC;YACL,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAChF,QAAA,OAAO,OAAO,CAAC;SAClB;IAKM,IAAA,MAAM,OAAO,GAAA;IAChB,QAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YACnC,IAAI,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAC/B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvC,YAAA,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACvB,YAAA,IAAI,gBAAgB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAC9E,YAAA,IAAI,gBAAgB,CAAC,cAAc,IAAI,CAAC,IAAI,gBAAgB,CAAC,cAAc,IAAI,GAAG,EAAE;oBAChF,SAAS;iBACZ;IACD,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACzB,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACzC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;aACxD;IACD,QAAA,OAAO,IAAI,CAAC;SACf;IAIJ;;UCjGY,aAAa,CAAA;IAEtB,IAAA,WAAA,GAAA,GAAyB;QASlB,OAAO,SAAS,CAAC,IAAA,GAAe,SAAS,EAAE,eAAA,GAAmC,IAAI,wBAAwB,EAAE,EAAA;IAC/G,QAAAA,gBAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC,CAAC;YAChH,IAAI,CAAC,gBAAgB,KAAK,UAAU,CAAC,gBAAgB,IAAI,EAAE,CAAC;YAC5D,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;gBACrCA,gBAAM,CAAC,KAAK,CAAC,kDAAkD,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnF,OAAO,IAAI,CAAC,gBAAgB,CAAC;aAChC;IACD,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,eAAe,IAAI,IAAI,wBAAwB,EAAE,CAAC,CAAC;IAC3F,QAAA,UAAU,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACpD,OAAO,IAAI,CAAC,gBAAgB,CAAC;SAChC;IAKM,IAAA,OAAO,WAAW,CAAC,IAAA,GAAe,SAAS,EAAA;YAC9C,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,QAAA,IAAI,SAAS,IAAI,SAAS,EAAE;IACxB,YAAA,OAAO,IAAI,KAAK,CAAC,IAAI,wBAAwB,EAAE,CAAC,CAAC;aACpD;IACD,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,wBAAwB,EAAE,CAAC,CAAC;SACvE;IACJ;;UC5CY,uBAAuB,CAAA;IAEhC,IAAA,WAAA,GAAA;IACI,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;SACvD;IAOM,IAAA,GAAG,CAAC,GAAQ,EAAE,GAAW,EAAE,OAA0B,EAAA;YACxD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACvF,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAChC;IAKM,IAAA,MAAM,CAAC,GAAW,EAAA;IACrB,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAChC;IAKM,IAAA,GAAG,CAAC,GAAW,EAAA;YAClB,IAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;IACvB,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACrC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,QAAA,IAAI,KAAK,IAAI,SAAS,EAAE;IACpB,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACrC;IACD,QAAA,IAAI,KAAK,CAAC,KAAK,IAAI,SAAS,EAAE;gBAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACvC;YACD,OAAO,KAAK,CAAC,OAAO,CAAC;SACxB;IAOM,IAAA,MAAM,WAAW,CAAC,GAAW,EAAE,QAA4B,EAAE,OAA0B,EAAA;YAC1F,IAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;IACtB,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aACxB;IACD,QAAA,MAAM,OAAO,GAAG,CAAC,YAAS;IACtB,YAAA,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,KAAK,GAAG,KAAK,CAAC;IACrC,YAAA,OAAO,KAAK,CAAC;aAChB,GAAG,CAAC;YACL,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAChF,QAAA,OAAO,OAAO,CAAC;SAClB;IAKM,IAAA,UAAU,CAAC,GAAW,EAAA;IACzB,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,OAAO,CAAC,CAAC;SAC1D;QAKM,OAAO,GAAA;YACV,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;IACrC,YAAA,IAAG,KAAK,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,IAAI,GAAG,EAAE;oBACzE,SAAS;iBACZ;IACD,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACpB;IACD,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAChC;QAIM,KAAK,GAAA;IACR,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACrB,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAChC;IAIJ;;ICrFD,MAAM,iBAAiB,CAAA;IAAvB,IAAA,WAAA,GAAA;YAEI,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;SAC7B;IAAA,CAAA;AAGIC,gCAKJ;IALD,CAAA,UAAK,UAAU,EAAA;IAEX,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IAEnB,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACzB,CAAC,EALIA,kBAAU,KAAVA,kBAAU,GAKd,EAAA,CAAA,CAAA,CAAA;IA0DD,MAAM,OAAO,CAAA;IAyBT,IAAA,WAAA,CAAY,OAAuB,EAAA;IAvB3B,QAAA,IAAA,CAAA,OAAO,GAAmB;IAC9B,YAAA,MAAM,EAAE,KAAK;IACb,YAAA,GAAG,EAAE,EAAE;IACP,YAAA,OAAO,EAAE,EAAE;IACX,YAAA,WAAW,EAAE,aAAa;gBAC1B,UAAU,EAAE,IAAI,CAAC,SAAS;gBAC1B,MAAM,EAAE,CAAC,QAAkB,KAAK,QAAQ,CAAC,IAAI,EAAE;gBAC/C,OAAO,EAAE,CAAC,QAAQ,OAAOD,gBAAM,CAAC,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,QAAQ,CAAC,CAAA,EAAE;gBACpG,KAAK,EAAE,CAAC,MAAM,OAAOA,gBAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,MAAM,CAAC,CAAA,EAAE;IAC3F,YAAA,KAAK,EAAE,CAAC,OAAO,KAAI,EAAGA,gBAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAA,EAAE;gBAC1G,WAAW,EAAEE,mBAAW,CAAC,YAAY;gBACrC,KAAK,EAAED,kBAAU,CAAC,OAAO;IACzB,YAAA,QAAQ,EAAE,EAAE;IACZ,YAAA,OAAO,EAAE,KAAK;IACd,YAAA,aAAa,EAAE,CAAC;IAChB,YAAA,UAAU,EAAE,IAAI;aACnB,CAAC;YAGM,IAAe,CAAA,eAAA,GAA2B,IAAI,CAAC;YAKnD,aAAa,CAAC,SAAS,CAACA,kBAAU,CAAC,OAAO,EAAE,IAAI,wBAAwB,EAAE,CAAC,CAAC;YAC5E,aAAa,CAAC,SAAS,CAACA,kBAAU,CAAC,QAAQ,EAAE,IAAI,uBAAuB,EAAE,CAAC,CAAC;IAC5E,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;SAClD;IAMM,IAAA,OAAO,GAAG,CAAC,GAAW,EAAE,IAAU,EAAA;YACrC,OAAO,IAAI,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;IACjF,aAAA,WAAW,CAAC;IACT,YAAA,QAAQ,EAAE,kBAAkB;IAC/B,SAAA,CAAC,CAAC;SACV;IAMM,IAAA,OAAO,IAAI,CAAC,GAAW,EAAE,IAAU,EAAA;IACtC,QAAA,OAAO,IAAI,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,EAAEC,mBAAW,CAAC,WAAW,EAAE,CAAC;IACxH,aAAA,WAAW,CAAC;IACT,YAAA,cAAc,EAAE,kBAAkB;IAClC,YAAA,QAAQ,EAAE,kBAAkB;IAC/B,SAAA,CAAC,CAAC;SACV;IAMM,IAAA,OAAO,GAAG,CAAC,GAAW,EAAE,IAAU,EAAA;IACrC,QAAA,OAAO,IAAI,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,EAAEA,mBAAW,CAAC,WAAW,EAAE,CAAC;IACvH,aAAA,WAAW,CAAC;IACT,YAAA,cAAc,EAAE,kBAAkB;IAClC,YAAA,QAAQ,EAAE,kBAAkB;IAC/B,SAAA,CAAC,CAAC;SACV;IAMM,IAAA,OAAO,MAAM,CAAC,GAAW,EAAE,IAAU,EAAA;IACxC,QAAA,OAAO,IAAI,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,EAAEA,mBAAW,CAAC,WAAW,EAAE,CAAC;IAC1H,aAAA,WAAW,CAAC;IACT,YAAA,QAAQ,EAAE,kBAAkB;IAC/B,SAAA,CAAC,CAAC;SACV;IAMM,IAAA,OAAO,MAAM,CAAC,MAAc,EAAE,GAAW,EAAE,IAAU,EAAA;YACxD,OAAO,IAAI,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1E,aAAA,WAAW,CAAC;IACT,YAAA,QAAQ,EAAE,kBAAkB;IAC/B,SAAA,CAAC,CAAC;SACV;IAIM,IAAA,0BAA0B,CAAC,sBAA8C,EAAA;IAC5E,QAAA,IAAI,CAAC,OAAO,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IAC7D,QAAA,OAAO,IAAI,CAAC;SACf;IAIM,IAAA,WAAW,CAAC,OAA+B,EAAA;IAC9C,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;IAC/D,QAAA,OAAO,IAAI,CAAC;SACf;IAKM,IAAA,qBAAqB,CAAC,iBAAoC,EAAA;IAC7D,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IACnD,QAAA,OAAO,IAAI,CAAC;SACf;IAIM,IAAA,eAAe,CAAC,WAA+B,EAAA;IAClD,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;IACvC,QAAA,OAAO,IAAI,CAAC;SACf;IAIM,IAAA,cAAc,CAAC,UAAiC,EAAA;IACnD,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;IACrC,QAAA,OAAO,IAAI,CAAC;SACf;IAIM,IAAA,UAAU,CAAC,MAA4C,EAAA;IAC1D,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,QAAA,OAAO,IAAI,CAAC;SACf;IAIM,IAAA,SAAS,CAAC,QAAiC,EAAA;YAC9C,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,QAAQ,KAAK,CAAC,QAAQ,OAAOF,gBAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAA,EAAE,CAAC,CAAC;IACnG,QAAA,OAAO,IAAI,CAAC;SACf;IAIM,IAAA,OAAO,CAAC,QAA+B,EAAA;YAC1C,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,QAAQ,KAAK,CAAC,MAAM,OAAOA,gBAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA,EAAE,CAAC,CAAC;IAC1F,QAAA,OAAO,IAAI,CAAC;SACf;IAIM,IAAA,OAAO,CAAC,QAAmC,EAAA;IAC9C,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,QAAQ,KAAK,CAAC,OAAO,KAAO,EAAAA,gBAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAA,EAAE,CAAC,CAAC;IAC3G,QAAA,OAAO,IAAI,CAAC;SACf;IAIM,IAAA,eAAe,CAAC,WAAwB,EAAA;IAC3C,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;IACvC,QAAA,OAAO,IAAI,CAAC;SACf;IAKM,IAAA,SAAS,CAAC,SAA8B,EAAE,KAAyB,GAAA,IAAI,wBAAwB,EAAE,EAAA;IACpG,QAAA,aAAa,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC1C,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IAC/B,QAAA,OAAO,IAAI,CAAC;SACf;IAIM,IAAA,YAAY,CAAC,QAAgB,EAAA;IAChC,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACjC,QAAA,OAAO,IAAI,CAAC;SACf;IAKM,IAAA,WAAW,CAAC,OAAgB,EAAA;YAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,IAAI,KAAK,CAAC;IACxC,QAAA,OAAO,IAAI,CAAC;SACf;IAKM,IAAA,iBAAiB,CAAC,aAAqB,EAAA;IAC1C,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;IAC3C,QAAA,OAAO,IAAI,CAAC;SACf;IAKM,IAAA,cAAc,CAAC,UAAkB,EAAA;IACpC,QAAA,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;IACrC,QAAA,OAAO,IAAI,CAAC;SACf;QAIM,KAAK,GAAA;IACR,QAAA,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE;IAC5D,YAAA,OAAO,IAAI,CAAC;aACf;IACD,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAC1D,QAAA,OAAO,IAAI,CAAC;SACf;IAKM,IAAA,MAAM,IAAI,GAAA;IACb,QAAA,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;IACzN,QAAA,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAC9C,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;YACvC,IAAI,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAGlD,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,SAAS,GAAQ,IAAI,CAAC;YAC1B,IAAI,aAAa,GAAG,OAAO,KAAK,CAAC,QAAa,KAAO,EAAAA,gBAAM,CAAC,KAAK,CAAC,wBAAwB,GAAG,GAAG,GAAG,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;YACtH,IAAI,WAAW,GAAG,KAAK,KAAK,CAAC,MAAW,KAAO,EAAAA,gBAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,GAAG,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3G,QAAA,IAAI,gBAAgB,GAAG,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC;IACpD,QAAA,IAAI,YAAY,GAAG,MAAM,KAAK,CAAC,QAAkB,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,QAAA,IAAI,WAAW,GAAG,KAAK,KAAK,CAAC,OAAe,KAAI,EAAGA,gBAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAE7H,QAAA,MAAM,WAAW,GAAG,YAAyB;IACzC,YAAA,IAAI,WAAW,KAAKE,mBAAW,CAAC,gBAAgB,EAAE;oBAC9C,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IACzD,gBAAA,IAAI,WAAW,KAAK,SAAS,EAAE;wBAC3B,aAAa,CAAC,WAAW,CAAC,CAAC;qBAC9B;iBACJ;IAED,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;IACnB,gBAAA,IAAI,WAAW,KAAKA,mBAAW,CAAC,YAAY,EAAE;wBAC1C,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IACzD,oBAAA,IAAI,WAAW,KAAK,SAAS,EAAE;4BAC3B,aAAa,CAAC,WAAW,CAAC,CAAC;IAC3B,wBAAA,OAAO,WAAW,CAAC;yBACtB;qBACJ;IACD,gBAAA,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;oBACpD,WAAW,CAAC,YAAY,CAAC,CAAC;IAC1B,gBAAA,OAAO,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;iBACvC;IAED,YAAA,IAAI;IACA,gBAAA,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC9C,gBAAA,MAAM,sBAAsB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAEjD,gBAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;wBAChC,KAAK,CAAC,GAAG,EAAE;4BACP,MAAM;4BACN,WAAW;4BACX,OAAO;IACP,wBAAA,IAAI,EAAE,cAAc;4BACpB,MAAM,EAAE,eAAe,CAAC,MAAM;yBACjC,CAAC;IACF,oBAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IAC9B,iBAAA,CAAC,CAAC;IACH,gBAAA,IAAI,iBAAiB,EAAE,QAAQ,EAAE;wBAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;qBACjE;IACD,gBAAA,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE;IACjD,oBAAA,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;wBACpD,aAAa,CAAC,cAAc,CAAC,CAAC;IAE9B,oBAAA,IAAI,WAAW,KAAKA,mBAAW,CAAC,WAAW,EAAE;4BACzC,MAAM,UAAU,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;yBACxD;IAED,oBAAA,OAAO,cAAc,CAAC;qBACzB;oBACD,SAAS,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC3C,gBAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;wBACzB,MAAM,sBAAsB,EAAE,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;qBACtE;iBACJ;gBAAC,OAAO,GAAG,EAAE;oBACV,SAAS,GAAG,GAAG,CAAC;iBACnB;gBACD,IAAI,QAAQ,IAAI,aAAa,IAAG,CAAC,CAAC,EAAE;IAChC,gBAAA,EAAE,QAAQ,CAAC;IACX,gBAAA,IAAI,WAAW,KAAKA,mBAAW,CAAC,WAAW,EAAE;IACzC,oBAAA,UAAU,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;qBACrC;IACD,gBAAA,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;oBAC9D,WAAW,CAAC,QAAQ,CAAC,CAAC;oBACtB,OAAO,WAAW,EAAE,CAAC;iBACxB;gBACD,WAAW,CAAC,SAAS,CAAC,CAAC;IACvB,YAAA,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACrC,SAAC,CAAA;IAED,QAAA,IAAI,WAAW,KAAKA,mBAAW,CAAC,YAAY,EAAE;gBAC1C,OAAO,UAAU,CAAC,WAAW,CAAC,QAAQ,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;aAC9D;YACD,OAAO,WAAW,EAAE,CAAC;SACxB;QAKO,MAAM,aAAa,CAAC,OAAgB,EAAA;YACxC,OAAO,KAAK,KAAK,CAAC;YAClB,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,MAAM,KAAI;gBAClC,UAAU,CAAC,MAAK;IACZ,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;iBACxC,EAAE,OAAO,CAAC,CAAC;IAChB,SAAC,CAAC,CAAC;IACH,QAAA,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;SACtC;IACJ,CAAA;AAGIA,iCASJ;IATD,CAAA,UAAK,WAAW,EAAA;IAEZ,IAAA,WAAA,CAAA,WAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB,CAAA;IAEhB,IAAA,WAAA,CAAA,WAAA,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,GAAA,cAAgB,CAAA;IAEhB,IAAA,WAAA,CAAA,WAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;IAEf,IAAA,WAAA,CAAA,WAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAoB,CAAA;IACxB,CAAC,EATIA,mBAAW,KAAXA,mBAAW,GASf,EAAA,CAAA,CAAA;;;;;;;;;;;;"}
|
package/lib/Request.umd.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@jacraig/woodchuck")):"function"==typeof define&&define.amd?define(["exports","@jacraig/woodchuck"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).request={},e.woodchuck)}(this,(function(e,t){"use strict";class r{constructor(e,r,a){this.dbName=e,this.tables=r,this.version=a;const o=indexedDB.open(e,a);o.onupgradeneeded=e=>{if(this.database=e.target.result,this.database)for(const e of r)this.database.objectStoreNames.contains(e)&&this.database.deleteObjectStore(e),this.database.createObjectStore(e)},o.onsuccess=e=>{this.database=e.target.result},o.onerror=e=>{t.Logger.error("Failed to open the database:",e.target.error)}}openDatabase(){return new Promise(((e,r)=>{const a=indexedDB.open(this.dbName,this.version);a.onsuccess=t=>{this.database=t.target.result,e(this)},a.onerror=e=>{t.Logger.error("Failed to open the database:",e.target.error),r(new Error("Failed to open the database:"+e.target.error))}}))}add(e,r,a){return new Promise(((o,s)=>{if(!this.database)return t.Logger.error("Database connection is not open"),void s(new Error("Database connection is not open"));const i=this.database.transaction(e,"readwrite").objectStore(e).put(r,a);i.onsuccess=()=>{o()},i.onerror=e=>{t.Logger.error("Failed to add an object to the database: ",e.target.error),s(new Error("Failed to add an object to the database: "+e.target.error))}}))}remove(e,r){return new Promise(((a,o)=>{if(!this.database)return t.Logger.error("Database connection is not open"),void o(new Error("Database connection is not open"));const s=this.database.transaction(e,"readwrite").objectStore(e).delete(r);s.onsuccess=()=>{a()},s.onerror=e=>{t.Logger.error("Failed to remove an object from the database: ",e.target.error),o(new Error("Failed to remove an object from the database: "+e.target.error))}}))}getByKey(e,r){return new Promise(((a,o)=>{if(!this.database)return t.Logger.error("Database connection is not open"),void o(new Error("Database connection is not open"));const s=this.database.transaction(e,"readwrite").objectStore(e).get(r);s.onsuccess=e=>{a(e.target.result)},s.onerror=e=>{t.Logger.error("Failed to retrieve an object from the database: ",e.target.error),o(new Error("Failed to retrieve an object from the database: "+e.target.error))}}))}getKeys(e){return new Promise(((r,a)=>{if(!this.database)return t.Logger.error("Database connection is not open"),void a(new Error("Database connection is not open"));const o=this.database.transaction(e,"readwrite").objectStore(e).getAllKeys();o.onsuccess=e=>{r(e.target.result)},o.onerror=e=>{t.Logger.error("Failed to retrieve an object from the database: ",e.target.error),a(new Error("Failed to retrieve keys from the database: "+e.target.error))}}))}get(e,r){return new Promise(((a,o)=>{if(!this.database)return t.Logger.error("Database connection is not open"),void o(new Error("Database connection is not open"));const s=this.database.transaction(e,"readwrite").objectStore(e).get(r);s.onsuccess=e=>{a(e.target.result)},s.onerror=e=>{t.Logger.error("Failed to retrieve an object from the database: ",e.target.error),o(new Error("Failed to retrieve an object from the database: "+e.target.error))}}))}getAll(e,r){return new Promise(((a,o)=>{if(!this.database)return t.Logger.error("Database connection is not open"),void o(new Error("Database connection is not open"));const s=this.database.transaction(e,"readwrite").objectStore(e).getAll(r);s.onsuccess=e=>{a(e.target.result)},s.onerror=e=>{t.Logger.error("Failed to retrieve an object from the database: ",e.target.error),o(new Error("Failed to retrieve objects from the database: "+e.target.error))}}))}}class a{constructor(){this.database=new r("cacheStore",["cache","cacheEntryOptions"],1)}async clear(){await this.database.openDatabase();let e=await this.database.getAll("cacheEntryOptions"),t=await this.database.getAll("cache");for(let r=0;r<e.length;r++){let e=t[r];await this.remove(e.key)}return this}async getOptions(e){return await this.database.openDatabase(),this.database.getByKey("cacheEntryOptions",e)}async add(e,t,r){return await this.database.openDatabase(),await this.database.add("cache",e,t),await this.database.add("cacheEntryOptions",r,t),this}async remove(e){return await this.database.openDatabase(),await this.database.remove("cache",e),await this.database.remove("cacheEntryOptions",e),this}async get(e){return await this.database.openDatabase(),this.database.getByKey("cache",e)}async compact(){await this.database.openDatabase();let e=await this.database.getAll("cacheEntryOptions"),t=await this.database.getAll("cache"),r=(new Date).getTime();for(let a=0;a<e.length;a++){let o=e[a],s=t[a];0!=o.expirationTime&&(o.expirationTime<r&&await this.remove(s.key))}return this}}class o{constructor(){}static configure(e=new a){this.storageProvider??=globalThis.StorageProvider||e||new a,globalThis.StorageProvider=this.storageProvider}static async set(e,r,a={expirationTime:0,slidingExpirationTime:0,sliding:!1}){t.Logger.debug("Setting object in cache: ",{key:e,value:r,entryOptions:a}),this.configure(),await this.storageProvider.add(r,e,a)}static async get(e){t.Logger.debug("Getting object from cache: "+e),this.configure(),await this.storageProvider.compact();let r=await this.storageProvider.get(e);if(null==r)return r;let a=await this.storageProvider.getOptions(e);return a.sliding&&await this.set(e,r,{expirationTime:(new Date).getTime()+a.slidingExpirationTime,slidingExpirationTime:a.slidingExpirationTime,sliding:!0}),r}static async remove(e){t.Logger.debug("Removing object from cache: "+e),this.configure(),await this.storageProvider.remove(e)}static async clear(){t.Logger.debug("Clearing cache"),this.configure(),await this.storageProvider.clear()}}class s{constructor(r){this.options={method:"GET",url:"",headers:{},credentials:"same-origin",serializer:JSON.stringify,parser:e=>e.json(),success:e=>{t.Logger.debug("Request response from "+this.options.url+":",e)},error:e=>{t.Logger.error("Request error from "+this.options.url+":",e)},retry:e=>{t.Logger.debug("Request retry on "+this.options.url+":",{attempt:e})},storageMode:e.StorageMode.NetworkFirst,cacheKey:"",timeout:6e4,retryAttempts:3,retryDelay:1e3},this.abortController=null,this.options={...this.options,...r}}static get(e,t){return new s({method:"GET",url:e,data:t,cacheKey:e+JSON.stringify(t)}).withHeaders({Accept:"application/json"})}static post(t,r){return new s({method:"POST",url:t,data:r,cacheKey:t+JSON.stringify(r),storageMode:e.StorageMode.NetworkOnly}).withHeaders({"Content-Type":"application/json",Accept:"application/json"})}static put(t,r){return new s({method:"PUT",url:t,data:r,cacheKey:t+JSON.stringify(r),storageMode:e.StorageMode.NetworkOnly}).withHeaders({"Content-Type":"application/json",Accept:"application/json"})}static delete(t,r){return new s({method:"DELETE",url:t,data:r,cacheKey:t+JSON.stringify(r),storageMode:e.StorageMode.NetworkOnly}).withHeaders({Accept:"application/json"})}static ofType(e,t,r){return new s({method:e,url:t,data:r,cacheKey:t+JSON.stringify(r)}).withHeaders({Accept:"application/json"})}withAuthenticationProvider(e){return this.options.authenticationProvider=e,this}withHeaders(e){return this.options.headers={...this.options.headers,...e},this}withCancellationToken(e){return this.options.cancellationToken=e,this}withCredentials(e){return this.options.credentials=e,this}withSerializer(e){return this.options.serializer=e,this}withParser(e){return this.options.parser=e,this}onSuccess(e){return this.options.success=e??(e=>{t.Logger.debug("Request response:",e)}),this}onError(e){return this.options.error=e??(e=>{t.Logger.error("Request error:",e)}),this}onRetry(e){return this.options.retry=e??(e=>{t.Logger.debug("Request retry:",{attempt:e})}),this}withStorageMode(e){return this.options.storageMode=e,this}withCacheKey(e){return this.options.cacheKey=e,this}withTimeout(e){return this.options.timeout=e??6e4,this}withRetryAttempts(e){return this.options.retryAttempts=e,this}withRetryDelay(e){return this.options.retryDelay=e,this}abort(){return null==this.abortController||null==this.options.error||(this.abortController.abort(),this.options.error(new Error("The request was aborted."))),this}async send(){const{authenticationProvider:r,method:a,url:s,data:i,headers:n,credentials:c,serializer:d,parser:h,success:g,error:l,storageMode:u,cacheKey:b,timeout:p,retryAttempts:w,retryDelay:m,retry:y,cancellationToken:f}=this.options,v=new AbortController;this.abortController=v;let S=0,j=null,E=g||(e=>{t.Logger.debug("Request response from "+s+":",e)}),T=l||(e=>{t.Logger.error("Request error from "+s+":",e)}),P=d||JSON.stringify,D=h||(e=>e.json()),L=y||(e=>{t.Logger.debug("Request retry on "+s+":",{attempt:e})});const O=async()=>{if(u===e.StorageMode.StorageFirst||u===e.StorageMode.StorageAndUpdate){const t=await o.get(b||"");if(void 0!==t&&(E(t),u===e.StorageMode.StorageFirst))return t}if(!navigator.onLine){if(u===e.StorageMode.NetworkFirst){const e=await o.get(b||"");if(void 0!==e)return E(e),e}const t=new Error("System is offline");return T(t),Promise.reject(t)}try{const t=P(i);await(r?.authenticate(this));const d=await Promise.race([fetch(s,{method:a,credentials:c,headers:n,body:t,signal:v.signal}),this.handleTimeout(p)]);if(f?.canceled)return Promise.reject(new Error("The request was canceled."));if(d.status>=200&&d.status<300){const t=await D(d);return E(t),u!==e.StorageMode.NetworkOnly&&await o.set(b||"",t),t}j=new Error(d.statusText),401===d.status&&await(r?.authenticationFailed(this,d))}catch(e){j=e}return S<(w||0)?(++S,await new Promise((e=>setTimeout(e,m))),L(S),O()):(T(j),Promise.reject(j))};return O()}async handleTimeout(e){throw e??=6e4,await new Promise(((t,r)=>{setTimeout((()=>{r(new Error("Request timeout"))}),e)})),new Error("Request timeout")}}var i;e.StorageMode=void 0,(i=e.StorageMode||(e.StorageMode={}))[i.NetworkFirst=0]="NetworkFirst",i[i.StorageFirst=1]="StorageFirst",i[i.NetworkOnly=2]="NetworkOnly",i[i.StorageAndUpdate=3]="StorageAndUpdate",e.Cache=o,e.CancellationToken=class{constructor(){this.canceled=!1}},e.IndexedDbStorageProvider=a,e.Request=s}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@jacraig/woodchuck")):"function"==typeof define&&define.amd?define(["exports","@jacraig/woodchuck"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).request={},e.woodchuck)}(this,(function(e,t){"use strict";class r{constructor(e){this.storageProvider=e}async set(e,r,a={expirationTime:0,slidingExpirationTime:0,sliding:!1}){t.Logger.debug("Setting object in cache: ",{key:e,value:r,entryOptions:a}),await this.storageProvider.add(r,e,a)}async get(e){t.Logger.debug("Getting object from cache: "+e),await this.storageProvider.compact();let r=await this.storageProvider.get(e);if(null==r)return r;let a=await this.storageProvider.getOptions(e);return a.sliding&&await this.set(e,r,{expirationTime:(new Date).getTime()+a.slidingExpirationTime,slidingExpirationTime:a.slidingExpirationTime,sliding:!0}),r}async getOrCreate(e,r,a={expirationTime:0,slidingExpirationTime:0,sliding:!1}){t.Logger.debug("Getting object from cache or creating it: ",{key:e}),await this.storageProvider.compact();let o=await this.storageProvider.getOrCreate(e,r,a);if(null==o)return o;let s=await this.storageProvider.getOptions(e);return s.sliding&&await this.set(e,o,{expirationTime:(new Date).getTime()+s.slidingExpirationTime,slidingExpirationTime:s.slidingExpirationTime,sliding:!0}),o}async remove(e){t.Logger.debug("Removing object from cache: "+e),await this.storageProvider.remove(e)}async clear(){t.Logger.debug("Clearing cache"),await this.storageProvider.clear()}}class a{constructor(e,r,a){this.dbName=e,this.tables=r,this.version=a;const o=indexedDB.open(e,a);o.onupgradeneeded=e=>{if(this.database=e.target.result,this.database)for(const e of r)this.database.objectStoreNames.contains(e)&&this.database.deleteObjectStore(e),this.database.createObjectStore(e)},o.onsuccess=e=>{this.database=e.target.result},o.onerror=e=>{t.Logger.error("Failed to open the database:",e.target.error)}}openDatabase(){return new Promise(((e,r)=>{const a=indexedDB.open(this.dbName,this.version);a.onsuccess=t=>{this.database=t.target.result,e(this)},a.onerror=e=>{t.Logger.error("Failed to open the database:",e.target.error),r(new Error("Failed to open the database:"+e.target.error))}}))}add(e,r,a){return null==e||null==a?(t.Logger.error("Table and key must be specified to add an object to the database"),Promise.reject(new Error("Table and key must be specified to add an object to the database"))):new Promise(((o,s)=>{if(!this.database)return t.Logger.error("Database connection is not open"),void s(new Error("Database connection is not open"));const i=this.database.transaction(e,"readwrite").objectStore(e).put(r,a);i.onsuccess=()=>{o()},i.onerror=e=>{t.Logger.error("Failed to add an object to the database: ",e.target.error),s(new Error("Failed to add an object to the database: "+e.target.error))}}))}clear(e){return null==e?(t.Logger.error("Table must be specified to clear the database"),Promise.reject(new Error("Table must be specified to clear the database"))):new Promise(((r,a)=>{if(!this.database)return t.Logger.error("Database connection is not open"),void a(new Error("Database connection is not open"));const o=this.database.transaction(e,"readwrite").objectStore(e).clear();o.onsuccess=()=>{r()},o.onerror=e=>{t.Logger.error("Failed to clear the database: ",e.target.error),a(new Error("Failed to clear the database: "+e.target.error))}}))}remove(e,r){return null==e||null==r?(t.Logger.error("Table and key must be specified to remove an object from the database"),Promise.reject(new Error("Table and key must be specified to remove an object from the database"))):new Promise(((a,o)=>{if(!this.database)return t.Logger.error("Database connection is not open"),void o(new Error("Database connection is not open"));const s=this.database.transaction(e,"readwrite").objectStore(e).delete(r);s.onsuccess=()=>{a()},s.onerror=e=>{t.Logger.error("Failed to remove an object from the database: ",e.target.error),o(new Error("Failed to remove an object from the database: "+e.target.error))}}))}getByKey(e,r){return null==e||null==r?(t.Logger.error("Table and key must be specified to get an object from the database"),Promise.reject(new Error("Table and key must be specified to get an object from the database"))):new Promise(((a,o)=>{if(!this.database)return t.Logger.error("Database connection is not open"),void o(new Error("Database connection is not open"));const s=this.database.transaction(e,"readwrite").objectStore(e).get(r);s.onsuccess=e=>{a(e.target.result)},s.onerror=e=>{t.Logger.error("Failed to retrieve an object from the database: ",e.target.error),o(new Error("Failed to retrieve an object from the database: "+e.target.error))}}))}getKeys(e){return null==e?(t.Logger.error("Table must be specified to get keys from the database"),Promise.reject(new Error("Table must be specified to get keys from the database"))):new Promise(((r,a)=>{if(!this.database)return t.Logger.error("Database connection is not open"),void a(new Error("Database connection is not open"));const o=this.database.transaction(e,"readwrite").objectStore(e).getAllKeys();o.onsuccess=e=>{r(e.target.result)},o.onerror=e=>{t.Logger.error("Failed to retrieve an object from the database: ",e.target.error),a(new Error("Failed to retrieve keys from the database: "+e.target.error))}}))}get(e,r){return null==e||null==r?(t.Logger.error("Table and query must be specified to get an object from the database"),Promise.reject(new Error("Table and query must be specified to get an object from the database"))):new Promise(((a,o)=>{if(!this.database)return t.Logger.error("Database connection is not open"),void o(new Error("Database connection is not open"));const s=this.database.transaction(e,"readwrite").objectStore(e).get(r);s.onsuccess=e=>{a(e.target.result)},s.onerror=e=>{t.Logger.error("Failed to retrieve an object from the database: ",e.target.error),o(new Error("Failed to retrieve an object from the database: "+e.target.error))}}))}getAll(e,r){return null==e?(t.Logger.error("Table must be specified to get objects from the database"),Promise.reject(new Error("Table must be specified to get objects from the database"))):new Promise(((a,o)=>{if(!this.database)return t.Logger.error("Database connection is not open"),void o(new Error("Database connection is not open"));const s=this.database.transaction(e,"readwrite").objectStore(e).getAll(r);s.onsuccess=e=>{a(e.target.result)},s.onerror=e=>{t.Logger.error("Failed to retrieve an object from the database: ",e.target.error),o(new Error("Failed to retrieve objects from the database: "+e.target.error))}}))}}class o{constructor(){this.storage=new Map,this.database=new a("cacheStore",["cache","cacheEntryOptions"],1)}async clear(){return this.storage.clear(),await this.database.openDatabase(),this.database.clear("cache"),this.database.clear("cacheEntryOptions"),this}async getOptions(e){return await this.database.openDatabase(),this.database.getByKey("cacheEntryOptions",e)}async add(e,t,r){return this.storage.has(t)?this.storage.get(t).value=e:this.storage.set(t,{promise:Promise.resolve(e),value:e,options:r}),await this.database.openDatabase(),await this.database.add("cache",e,t),await this.database.add("cacheEntryOptions",r,t),this}async remove(e){return this.storage.delete(e),await this.database.openDatabase(),await this.database.remove("cache",e),await this.database.remove("cacheEntryOptions",e),this}async get(e){return await this.database.openDatabase(),this.database.getByKey("cache",e)}async getOrCreate(e,t,r){let a=await this.get(e);if(null!=a)return a;if(this.storage.has(e)){let t=this.storage.get(e);return void 0!==t?.value?t.value:t?.promise}const o=(async()=>{const a=await t();return await this.add(a,e,r),a})();return this.storage.set(e,{promise:o,value:void 0,options:r}),o}async compact(){await this.database.openDatabase();let e=await this.database.getKeys("cache"),t=(new Date).getTime();for(let r=0;r<e.length;r++){let a=e[r],o=await this.database.getByKey("cacheEntryOptions",a);0==o.expirationTime||o.expirationTime>=t||(this.storage.delete(a),await this.database.remove("cache",a),await this.database.remove("cacheEntryOptions",a))}return this}}class s{constructor(){}static configure(e="Default",a=new o){return t.Logger.debug("Configuring cache with storage provider: ",{name:e,storageProvider:a}),this.storageProviders??=globalThis.StorageProviders??{},null!=this.storageProviders[e]?(t.Logger.debug("Cache already configured with storage provider: ",{name:e}),this.storageProviders):(this.storageProviders[e]=new r(a??new o),globalThis.StorageProviders=this.storageProviders,this.storageProviders)}static getProvider(e="Default"){let t=this.configure(e);return null==t?new r(new o):t[e]??new r(new o)}}class i{constructor(){this.storage=new Map}add(e,t,r){return this.storage.set(t,{promise:Promise.resolve(e),value:e,options:r}),Promise.resolve(this)}remove(e){return this.storage.delete(e),Promise.resolve(this)}get(e){if(!this.storage.has(e))return Promise.resolve(void 0);const t=this.storage.get(e);return null==t?Promise.resolve(void 0):null!=t.value?Promise.resolve(t.value):t.promise}async getOrCreate(e,t,r){if(this.storage.has(e))return this.get(e);const a=(async()=>{const r=await t();return this.storage.get(e).value=r,r})();return this.storage.set(e,{promise:a,value:void 0,options:r}),a}getOptions(e){return Promise.resolve(this.storage.get(e).options)}compact(){const e=(new Date).getTime();for(const[t,r]of this.storage)0==r.options.expirationTime||r.options.expirationTime>=e||this.remove(t);return Promise.resolve(this)}clear(){return this.storage.clear(),Promise.resolve(this)}}var n,c;e.CacheNames=void 0,(n=e.CacheNames||(e.CacheNames={})).Default="Default",n.InMemory="InMemory";class d{constructor(r){this.options={method:"GET",url:"",headers:{},credentials:"same-origin",serializer:JSON.stringify,parser:e=>e.json(),success:e=>{t.Logger.debug("Request response from "+this.options.url+":",e)},error:e=>{t.Logger.error("Request error from "+this.options.url+":",e)},retry:e=>{t.Logger.debug("Request retry on "+this.options.url+":",{attempt:e})},storageMode:e.StorageMode.NetworkFirst,cache:e.CacheNames.Default,cacheKey:"",timeout:6e4,retryAttempts:3,retryDelay:1e3},this.abortController=null,s.configure(e.CacheNames.Default,new o),s.configure(e.CacheNames.InMemory,new i),this.options={...this.options,...r}}static get(e,t){return new d({method:"GET",url:e,data:t,cacheKey:e+JSON.stringify(t)}).withHeaders({Accept:"application/json"})}static post(t,r){return new d({method:"POST",url:t,data:r,cacheKey:t+JSON.stringify(r),storageMode:e.StorageMode.NetworkOnly}).withHeaders({"Content-Type":"application/json",Accept:"application/json"})}static put(t,r){return new d({method:"PUT",url:t,data:r,cacheKey:t+JSON.stringify(r),storageMode:e.StorageMode.NetworkOnly}).withHeaders({"Content-Type":"application/json",Accept:"application/json"})}static delete(t,r){return new d({method:"DELETE",url:t,data:r,cacheKey:t+JSON.stringify(r),storageMode:e.StorageMode.NetworkOnly}).withHeaders({Accept:"application/json"})}static ofType(e,t,r){return new d({method:e,url:t,data:r,cacheKey:t+JSON.stringify(r)}).withHeaders({Accept:"application/json"})}withAuthenticationProvider(e){return this.options.authenticationProvider=e,this}withHeaders(e){return this.options.headers={...this.options.headers,...e},this}withCancellationToken(e){return this.options.cancellationToken=e,this}withCredentials(e){return this.options.credentials=e,this}withSerializer(e){return this.options.serializer=e,this}withParser(e){return this.options.parser=e,this}onSuccess(e){return this.options.success=e??(e=>{t.Logger.debug("Request response:",e)}),this}onError(e){return this.options.error=e??(e=>{t.Logger.error("Request error:",e)}),this}onRetry(e){return this.options.retry=e??(e=>{t.Logger.debug("Request retry:",{attempt:e})}),this}withStorageMode(e){return this.options.storageMode=e,this}withCache(e,t=new o){return s.configure(e,t),this.options.cache=e,this}withCacheKey(e){return this.options.cacheKey=e,this}withTimeout(e){return this.options.timeout=e??6e4,this}withRetryAttempts(e){return this.options.retryAttempts=e,this}withRetryDelay(e){return this.options.retryDelay=e,this}abort(){return null==this.abortController||null==this.options.error||(this.abortController.abort(),this.options.error(new Error("The request was aborted."))),this}async send(){const{authenticationProvider:r,method:a,url:o,data:i,headers:n,credentials:c,serializer:d,parser:g,success:h,error:l,storageMode:u,cache:b,cacheKey:p,timeout:m,retryAttempts:w,retryDelay:y,retry:f,cancellationToken:v}=this.options,P=new AbortController;this.abortController=P;let T=s.getProvider(b),j=0,E=null,S=h||(e=>{t.Logger.debug("Request response from "+o+":",e)}),L=l||(e=>{t.Logger.error("Request error from "+o+":",e)}),D=d||JSON.stringify,O=g||(e=>e.json()),k=f||(e=>{t.Logger.debug("Request retry on "+o+":",{attempt:e})});const C=async()=>{if(u===e.StorageMode.StorageAndUpdate){const e=await T.get(p||"");void 0!==e&&S(e)}if(!navigator.onLine){if(u===e.StorageMode.NetworkFirst){const e=await T.get(p||"");if(void 0!==e)return S(e),e}const t=new Error("System is offline");return L(t),Promise.reject(t)}try{const t=D(i);await(r?.authenticate(this));const s=await Promise.race([fetch(o,{method:a,credentials:c,headers:n,body:t,signal:P.signal}),this.handleTimeout(m)]);if(v?.canceled)return Promise.reject(new Error("The request was canceled."));if(s.status>=200&&s.status<300){const t=await O(s);return S(t),u!==e.StorageMode.NetworkOnly&&await T.set(p||"",t),t}E=new Error(s.statusText),401===s.status&&await(r?.authenticationFailed(this,s))}catch(e){E=e}return j<(w||0)?(++j,u!==e.StorageMode.NetworkOnly&&T.remove(p||""),await new Promise((e=>setTimeout(e,y))),k(j),C()):(L(E),Promise.reject(E))};return u===e.StorageMode.StorageFirst?T.getOrCreate(p||"",C):C()}async handleTimeout(e){throw e??=6e4,await new Promise(((t,r)=>{setTimeout((()=>{r(new Error("Request timeout"))}),e)})),new Error("Request timeout")}}e.StorageMode=void 0,(c=e.StorageMode||(e.StorageMode={}))[c.NetworkFirst=0]="NetworkFirst",c[c.StorageFirst=1]="StorageFirst",c[c.NetworkOnly=2]="NetworkOnly",c[c.StorageAndUpdate=3]="StorageAndUpdate",e.Cache=r,e.CancellationToken=class{constructor(){this.canceled=!1}},e.InMemoryStorageProvider=i,e.IndexedDbStorageProvider=o,e.Request=d}));
|
|
2
2
|
//# sourceMappingURL=Request.umd.min.js.map
|