@nlabs/arkhamjs-storage-browser 3.28.6 → 3.29.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/README.md +544 -6
- package/lib/BrowserStorage/BrowserStorage.js +2 -207
- package/lib/index.js +2 -31
- package/lib/types/main.js +2 -16
- package/package.json +8 -9
package/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# @nlabs/arkhamjs-storage-browser
|
2
2
|
|
3
|
+
> **Browser Storage Integration for ArkhamJS** - Seamless localStorage and sessionStorage persistence with automatic state synchronization, compression, and encryption support.
|
4
|
+
|
3
5
|
[](https://www.npmjs.com/package/@nlabs/arkhamjs-storage-browser)
|
4
6
|
[](https://www.npmjs.com/package/@nlabs/arkhamjs-storage-browser)
|
5
7
|
[](https://travis-ci.org/nitrogenlabs/arkhamjs)
|
@@ -8,14 +10,550 @@
|
|
8
10
|
[](http://opensource.org/licenses/MIT)
|
9
11
|
[](https://discord.gg/Ttgev58)
|
10
12
|
|
11
|
-
##
|
13
|
+
## 🚀 Features
|
14
|
+
|
15
|
+
- **💾 Automatic Persistence** - State automatically persists across browser sessions
|
16
|
+
- **🔄 Real-Time Sync** - State changes are immediately saved to storage
|
17
|
+
- **🎯 Selective Persistence** - Choose which parts of state to persist
|
18
|
+
- **⚡ Performance Optimized** - Debounced writes and efficient serialization
|
19
|
+
- **🔒 Encryption Support** - Optional encryption for sensitive data
|
20
|
+
- **🗜️ Compression** - Automatic compression for large state objects
|
21
|
+
- **📱 Cross-Tab Sync** - Synchronize state across multiple browser tabs
|
22
|
+
- **🔧 Configurable** - Extensive options for customization
|
23
|
+
- **🌲 Tree-shakable** - Only include what you need
|
24
|
+
|
25
|
+
## 📦 Installation
|
26
|
+
|
27
|
+
```bash
|
28
|
+
npm install @nlabs/arkhamjs-storage-browser
|
29
|
+
```
|
30
|
+
|
31
|
+
## 🎯 Quick Start
|
32
|
+
|
33
|
+
### **Basic Setup**
|
34
|
+
|
35
|
+
```js
|
36
|
+
import { Flux } from '@nlabs/arkhamjs';
|
37
|
+
import { BrowserStorage } from '@nlabs/arkhamjs-storage-browser';
|
38
|
+
|
39
|
+
// Initialize Flux with browser storage
|
40
|
+
Flux.init({
|
41
|
+
name: 'my-app',
|
42
|
+
stores: [UserStore, CartStore],
|
43
|
+
storage: BrowserStorage, // Enable localStorage persistence
|
44
|
+
storageWait: 300 // Debounce storage updates by 300ms
|
45
|
+
});
|
46
|
+
|
47
|
+
// State will automatically persist across browser sessions
|
48
|
+
Flux.dispatch({ type: 'ADD_USER', user: { name: 'John' } });
|
49
|
+
// User data is now saved to localStorage
|
50
|
+
```
|
51
|
+
|
52
|
+
### **Storage Types**
|
53
|
+
|
54
|
+
```js
|
55
|
+
import { BrowserStorage } from '@nlabs/arkhamjs-storage-browser';
|
56
|
+
|
57
|
+
// Use localStorage (persists across sessions)
|
58
|
+
const localStorage = BrowserStorage.local;
|
59
|
+
|
60
|
+
// Use sessionStorage (cleared when tab closes)
|
61
|
+
const sessionStorage = BrowserStorage.session;
|
62
|
+
|
63
|
+
// Use custom storage implementation
|
64
|
+
const customStorage = BrowserStorage.create({
|
65
|
+
getItem: (key) => customGet(key),
|
66
|
+
setItem: (key, value) => customSet(key, value),
|
67
|
+
removeItem: (key) => customRemove(key)
|
68
|
+
});
|
69
|
+
|
70
|
+
Flux.init({
|
71
|
+
name: 'my-app',
|
72
|
+
stores: [UserStore],
|
73
|
+
storage: localStorage, // or sessionStorage, or customStorage
|
74
|
+
});
|
75
|
+
```
|
76
|
+
|
77
|
+
## 🔧 Configuration Options
|
78
|
+
|
79
|
+
### **Basic Configuration**
|
80
|
+
|
81
|
+
```js
|
82
|
+
import { BrowserStorage } from '@nlabs/arkhamjs-storage-browser';
|
83
|
+
|
84
|
+
Flux.init({
|
85
|
+
name: 'my-app',
|
86
|
+
stores: [UserStore],
|
87
|
+
storage: BrowserStorage,
|
88
|
+
|
89
|
+
// Storage options
|
90
|
+
storageWait: 300, // Debounce storage updates (ms)
|
91
|
+
storageDebounce: true, // Enable debouncing
|
92
|
+
storageThrottle: false, // Use throttling instead of debouncing
|
93
|
+
|
94
|
+
// Persistence options
|
95
|
+
storagePersist: true, // Enable persistence
|
96
|
+
storageRestore: true, // Restore state on initialization
|
97
|
+
storageClear: false, // Clear storage on initialization
|
98
|
+
|
99
|
+
// Data options
|
100
|
+
storageSerialize: true, // Serialize data before storage
|
101
|
+
storageCompress: false, // Compress data before storage
|
102
|
+
storageEncrypt: false, // Encrypt data before storage
|
103
|
+
|
104
|
+
// Key options
|
105
|
+
storageKey: 'arkhamjs-state', // Storage key prefix
|
106
|
+
storageNamespace: 'my-app', // Namespace for storage keys
|
107
|
+
});
|
108
|
+
```
|
109
|
+
|
110
|
+
### **Advanced Configuration**
|
111
|
+
|
112
|
+
```js
|
113
|
+
import { BrowserStorage } from '@nlabs/arkhamjs-storage-browser';
|
114
|
+
|
115
|
+
Flux.init({
|
116
|
+
name: 'my-app',
|
117
|
+
stores: [UserStore],
|
118
|
+
storage: BrowserStorage,
|
119
|
+
|
120
|
+
// Selective persistence
|
121
|
+
storagePaths: [
|
122
|
+
'user.current', // Only persist current user
|
123
|
+
'user.preferences', // Only persist user preferences
|
124
|
+
'cart.items' // Only persist cart items
|
125
|
+
],
|
126
|
+
|
127
|
+
// Exclude sensitive data
|
128
|
+
storageExclude: [
|
129
|
+
'user.password', // Don't persist passwords
|
130
|
+
'auth.token', // Don't persist auth tokens
|
131
|
+
'temp.*' // Don't persist temporary data
|
132
|
+
],
|
133
|
+
|
134
|
+
// Custom serialization
|
135
|
+
storageSerialize: (state) => {
|
136
|
+
// Custom serialization logic
|
137
|
+
return JSON.stringify(state, (key, value) => {
|
138
|
+
if (key === 'password') return undefined; // Remove passwords
|
139
|
+
if (key === 'token') return undefined; // Remove tokens
|
140
|
+
return value;
|
141
|
+
});
|
142
|
+
},
|
143
|
+
|
144
|
+
// Custom deserialization
|
145
|
+
storageDeserialize: (data) => {
|
146
|
+
// Custom deserialization logic
|
147
|
+
const state = JSON.parse(data);
|
148
|
+
// Add default values or transform data
|
149
|
+
return state;
|
150
|
+
},
|
151
|
+
|
152
|
+
// Storage events
|
153
|
+
storageEvents: {
|
154
|
+
onSave: (key, value) => {
|
155
|
+
console.log(`Saved to storage: ${key}`);
|
156
|
+
},
|
157
|
+
onLoad: (key, value) => {
|
158
|
+
console.log(`Loaded from storage: ${key}`);
|
159
|
+
},
|
160
|
+
onError: (error) => {
|
161
|
+
console.error('Storage error:', error);
|
162
|
+
}
|
163
|
+
}
|
164
|
+
});
|
165
|
+
```
|
166
|
+
|
167
|
+
### **Production Configuration**
|
168
|
+
|
169
|
+
```js
|
170
|
+
import { BrowserStorage } from '@nlabs/arkhamjs-storage-browser';
|
171
|
+
|
172
|
+
const isDevelopment = process.env.NODE_ENV === 'development';
|
173
|
+
|
174
|
+
Flux.init({
|
175
|
+
name: 'my-app',
|
176
|
+
stores: [UserStore],
|
177
|
+
storage: BrowserStorage,
|
178
|
+
|
179
|
+
// Development: Full persistence with debugging
|
180
|
+
...(isDevelopment && {
|
181
|
+
storageWait: 100,
|
182
|
+
storageDebounce: true,
|
183
|
+
storageEvents: {
|
184
|
+
onSave: (key, value) => console.log(`💾 Saved: ${key}`),
|
185
|
+
onLoad: (key, value) => console.log(`📂 Loaded: ${key}`)
|
186
|
+
}
|
187
|
+
}),
|
188
|
+
|
189
|
+
// Production: Optimized persistence
|
190
|
+
...(!isDevelopment && {
|
191
|
+
storageWait: 500,
|
192
|
+
storageDebounce: true,
|
193
|
+
storageCompress: true,
|
194
|
+
storageEvents: {
|
195
|
+
onError: (error) => {
|
196
|
+
// Send to error tracking service
|
197
|
+
analytics.track('storage_error', { error: error.message });
|
198
|
+
}
|
199
|
+
}
|
200
|
+
})
|
201
|
+
});
|
202
|
+
```
|
203
|
+
|
204
|
+
## 🎨 Storage Features
|
205
|
+
|
206
|
+
### **Automatic State Persistence**
|
207
|
+
|
208
|
+
State automatically persists across browser sessions:
|
209
|
+
|
210
|
+
```js
|
211
|
+
// User logs in
|
212
|
+
Flux.dispatch({ type: 'USER_LOGIN', user: { id: 1, name: 'John' } });
|
213
|
+
|
214
|
+
// User closes browser and reopens
|
215
|
+
// State is automatically restored from localStorage
|
216
|
+
const user = Flux.getState('user.current'); // { id: 1, name: 'John' }
|
217
|
+
```
|
218
|
+
|
219
|
+
### **Selective Persistence**
|
220
|
+
|
221
|
+
Choose which parts of state to persist:
|
222
|
+
|
223
|
+
```js
|
224
|
+
Flux.init({
|
225
|
+
name: 'my-app',
|
226
|
+
stores: [UserStore],
|
227
|
+
storage: BrowserStorage,
|
228
|
+
|
229
|
+
// Only persist specific paths
|
230
|
+
storagePaths: [
|
231
|
+
'user.current', // Persist current user
|
232
|
+
'user.preferences', // Persist user preferences
|
233
|
+
'cart.items', // Persist cart items
|
234
|
+
'ui.theme' // Persist UI theme
|
235
|
+
],
|
236
|
+
|
237
|
+
// Exclude sensitive or temporary data
|
238
|
+
storageExclude: [
|
239
|
+
'user.password', // Don't persist passwords
|
240
|
+
'auth.token', // Don't persist auth tokens
|
241
|
+
'temp.*', // Don't persist temporary data
|
242
|
+
'ui.loading' // Don't persist loading states
|
243
|
+
]
|
244
|
+
});
|
245
|
+
```
|
246
|
+
|
247
|
+
### **Cross-Tab Synchronization**
|
248
|
+
|
249
|
+
Synchronize state across multiple browser tabs:
|
250
|
+
|
251
|
+
```js
|
252
|
+
import { BrowserStorage } from '@nlabs/arkhamjs-storage-browser';
|
253
|
+
|
254
|
+
Flux.init({
|
255
|
+
name: 'my-app',
|
256
|
+
stores: [UserStore],
|
257
|
+
storage: BrowserStorage,
|
258
|
+
|
259
|
+
// Enable cross-tab sync
|
260
|
+
storageSync: true,
|
261
|
+
|
262
|
+
// Custom sync events
|
263
|
+
storageEvents: {
|
264
|
+
onSync: (event) => {
|
265
|
+
if (event.key === 'arkhamjs-state') {
|
266
|
+
console.log('State synced from another tab');
|
267
|
+
// Optionally refresh UI or show notification
|
268
|
+
}
|
269
|
+
}
|
270
|
+
}
|
271
|
+
});
|
272
|
+
|
273
|
+
// State changes in one tab will automatically sync to other tabs
|
274
|
+
```
|
275
|
+
|
276
|
+
### **Data Compression**
|
12
277
|
|
13
|
-
|
278
|
+
Compress large state objects to save storage space:
|
14
279
|
|
15
|
-
```
|
16
|
-
|
280
|
+
```js
|
281
|
+
import { BrowserStorage } from '@nlabs/arkhamjs-storage-browser';
|
282
|
+
|
283
|
+
Flux.init({
|
284
|
+
name: 'my-app',
|
285
|
+
stores: [UserStore],
|
286
|
+
storage: BrowserStorage,
|
287
|
+
|
288
|
+
// Enable compression for large state objects
|
289
|
+
storageCompress: true,
|
290
|
+
storageCompressThreshold: 1024, // Compress if >1KB
|
291
|
+
|
292
|
+
// Custom compression
|
293
|
+
storageCompress: (data) => {
|
294
|
+
// Use custom compression library
|
295
|
+
return customCompress(data);
|
296
|
+
},
|
297
|
+
|
298
|
+
// Custom decompression
|
299
|
+
storageDecompress: (data) => {
|
300
|
+
// Use custom decompression library
|
301
|
+
return customDecompress(data);
|
302
|
+
}
|
303
|
+
});
|
304
|
+
```
|
305
|
+
|
306
|
+
### **Data Encryption**
|
307
|
+
|
308
|
+
Encrypt sensitive data before storage:
|
309
|
+
|
310
|
+
```js
|
311
|
+
import { BrowserStorage } from '@nlabs/arkhamjs-storage-browser';
|
312
|
+
|
313
|
+
Flux.init({
|
314
|
+
name: 'my-app',
|
315
|
+
stores: [UserStore],
|
316
|
+
storage: BrowserStorage,
|
317
|
+
|
318
|
+
// Enable encryption
|
319
|
+
storageEncrypt: true,
|
320
|
+
storageEncryptKey: 'your-secret-key',
|
321
|
+
|
322
|
+
// Custom encryption
|
323
|
+
storageEncrypt: (data, key) => {
|
324
|
+
// Use custom encryption library
|
325
|
+
return customEncrypt(data, key);
|
326
|
+
},
|
327
|
+
|
328
|
+
// Custom decryption
|
329
|
+
storageDecrypt: (data, key) => {
|
330
|
+
// Use custom decryption library
|
331
|
+
return customDecrypt(data, key);
|
332
|
+
}
|
333
|
+
});
|
334
|
+
```
|
335
|
+
|
336
|
+
## 🔍 Advanced Usage
|
337
|
+
|
338
|
+
### **Custom Storage Implementation**
|
339
|
+
|
340
|
+
```js
|
341
|
+
import { BrowserStorage } from '@nlabs/arkhamjs-storage-browser';
|
342
|
+
|
343
|
+
// Create custom storage adapter
|
344
|
+
const customStorage = BrowserStorage.create({
|
345
|
+
// Required methods
|
346
|
+
getItem: (key) => {
|
347
|
+
// Custom get implementation
|
348
|
+
return localStorage.getItem(key);
|
349
|
+
},
|
350
|
+
|
351
|
+
setItem: (key, value) => {
|
352
|
+
// Custom set implementation
|
353
|
+
localStorage.setItem(key, value);
|
354
|
+
},
|
355
|
+
|
356
|
+
removeItem: (key) => {
|
357
|
+
// Custom remove implementation
|
358
|
+
localStorage.removeItem(key);
|
359
|
+
},
|
360
|
+
|
361
|
+
// Optional methods
|
362
|
+
clear: () => {
|
363
|
+
// Custom clear implementation
|
364
|
+
localStorage.clear();
|
365
|
+
},
|
366
|
+
|
367
|
+
key: (index) => {
|
368
|
+
// Custom key implementation
|
369
|
+
return localStorage.key(index);
|
370
|
+
},
|
371
|
+
|
372
|
+
get length() {
|
373
|
+
// Custom length implementation
|
374
|
+
return localStorage.length;
|
375
|
+
}
|
376
|
+
});
|
377
|
+
|
378
|
+
Flux.init({
|
379
|
+
name: 'my-app',
|
380
|
+
stores: [UserStore],
|
381
|
+
storage: customStorage
|
382
|
+
});
|
383
|
+
```
|
384
|
+
|
385
|
+
### **Storage Migration**
|
386
|
+
|
387
|
+
```js
|
388
|
+
import { BrowserStorage } from '@nlabs/arkhamjs-storage-browser';
|
389
|
+
|
390
|
+
Flux.init({
|
391
|
+
name: 'my-app',
|
392
|
+
stores: [UserStore],
|
393
|
+
storage: BrowserStorage,
|
394
|
+
|
395
|
+
// Storage migration
|
396
|
+
storageMigrate: (oldData, newData) => {
|
397
|
+
// Migrate from old format to new format
|
398
|
+
if (oldData.version === 1) {
|
399
|
+
return {
|
400
|
+
...newData,
|
401
|
+
user: {
|
402
|
+
...newData.user,
|
403
|
+
// Migrate old user format
|
404
|
+
current: oldData.user ? { ...oldData.user, id: oldData.user.id || 1 } : null
|
405
|
+
}
|
406
|
+
};
|
407
|
+
}
|
408
|
+
return newData;
|
409
|
+
},
|
410
|
+
|
411
|
+
// Version tracking
|
412
|
+
storageVersion: 2,
|
413
|
+
|
414
|
+
// Migration events
|
415
|
+
storageEvents: {
|
416
|
+
onMigrate: (oldVersion, newVersion) => {
|
417
|
+
console.log(`Migrated from v${oldVersion} to v${newVersion}`);
|
418
|
+
}
|
419
|
+
}
|
420
|
+
});
|
421
|
+
```
|
422
|
+
|
423
|
+
### **Storage Analytics**
|
424
|
+
|
425
|
+
```js
|
426
|
+
import { BrowserStorage } from '@nlabs/arkhamjs-storage-browser';
|
427
|
+
|
428
|
+
Flux.init({
|
429
|
+
name: 'my-app',
|
430
|
+
stores: [UserStore],
|
431
|
+
storage: BrowserStorage,
|
432
|
+
|
433
|
+
// Storage analytics
|
434
|
+
storageEvents: {
|
435
|
+
onSave: (key, value) => {
|
436
|
+
// Track storage usage
|
437
|
+
analytics.track('storage_save', {
|
438
|
+
key,
|
439
|
+
size: JSON.stringify(value).length,
|
440
|
+
timestamp: Date.now()
|
441
|
+
});
|
442
|
+
},
|
443
|
+
|
444
|
+
onLoad: (key, value) => {
|
445
|
+
// Track storage reads
|
446
|
+
analytics.track('storage_load', {
|
447
|
+
key,
|
448
|
+
size: JSON.stringify(value).length,
|
449
|
+
timestamp: Date.now()
|
450
|
+
});
|
451
|
+
},
|
452
|
+
|
453
|
+
onError: (error) => {
|
454
|
+
// Track storage errors
|
455
|
+
analytics.track('storage_error', {
|
456
|
+
error: error.message,
|
457
|
+
timestamp: Date.now()
|
458
|
+
});
|
459
|
+
}
|
460
|
+
}
|
461
|
+
});
|
462
|
+
```
|
463
|
+
|
464
|
+
## 🎯 Use Cases
|
465
|
+
|
466
|
+
### **User Preferences Persistence**
|
467
|
+
|
468
|
+
```js
|
469
|
+
import { BrowserStorage } from '@nlabs/arkhamjs-storage-browser';
|
470
|
+
|
471
|
+
Flux.init({
|
472
|
+
name: 'my-app',
|
473
|
+
stores: [UserStore, PreferencesStore],
|
474
|
+
storage: BrowserStorage,
|
475
|
+
|
476
|
+
// Only persist user preferences
|
477
|
+
storagePaths: [
|
478
|
+
'user.preferences.theme',
|
479
|
+
'user.preferences.language',
|
480
|
+
'user.preferences.notifications',
|
481
|
+
'ui.sidebar.collapsed'
|
482
|
+
]
|
483
|
+
});
|
484
|
+
|
485
|
+
// User preferences will persist across sessions
|
486
|
+
Flux.dispatch({ type: 'SET_THEME', theme: 'dark' });
|
487
|
+
// Theme preference is automatically saved
|
488
|
+
```
|
489
|
+
|
490
|
+
### **Shopping Cart Persistence**
|
491
|
+
|
492
|
+
```js
|
493
|
+
import { BrowserStorage } from '@nlabs/arkhamjs-storage-browser';
|
494
|
+
|
495
|
+
Flux.init({
|
496
|
+
name: 'my-app',
|
497
|
+
stores: [CartStore],
|
498
|
+
storage: BrowserStorage,
|
499
|
+
|
500
|
+
// Persist cart items
|
501
|
+
storagePaths: ['cart.items', 'cart.total'],
|
502
|
+
|
503
|
+
// Don't persist temporary cart state
|
504
|
+
storageExclude: ['cart.loading', 'cart.error']
|
505
|
+
});
|
506
|
+
|
507
|
+
// Cart items persist if user closes browser
|
508
|
+
Flux.dispatch({ type: 'CART_ADD', item: { id: 1, name: 'Product' } });
|
509
|
+
// Cart is automatically saved
|
510
|
+
```
|
511
|
+
|
512
|
+
### **Form Data Persistence**
|
513
|
+
|
514
|
+
```js
|
515
|
+
import { BrowserStorage } from '@nlabs/arkhamjs-storage-browser';
|
516
|
+
|
517
|
+
Flux.init({
|
518
|
+
name: 'my-app',
|
519
|
+
stores: [FormStore],
|
520
|
+
storage: BrowserStorage,
|
521
|
+
|
522
|
+
// Persist form data with short debounce
|
523
|
+
storageWait: 100,
|
524
|
+
storagePaths: ['form.draft'],
|
525
|
+
|
526
|
+
// Clear form data on successful submission
|
527
|
+
storageEvents: {
|
528
|
+
onAction: (action) => {
|
529
|
+
if (action.type === 'FORM_SUBMIT_SUCCESS') {
|
530
|
+
// Clear draft data
|
531
|
+
localStorage.removeItem('arkhamjs-state-form.draft');
|
532
|
+
}
|
533
|
+
}
|
534
|
+
}
|
535
|
+
});
|
536
|
+
|
537
|
+
// Form data is automatically saved as user types
|
538
|
+
// Prevents data loss if user accidentally closes browser
|
17
539
|
```
|
18
540
|
|
19
|
-
##
|
541
|
+
## 🔗 Related Packages
|
542
|
+
|
543
|
+
- **[@nlabs/arkhamjs](./arkhamjs/README.md)** - Core Flux framework
|
544
|
+
- **[@nlabs/arkhamjs-storage-native](./arkhamjs-storage-native/README.md)** - React Native storage
|
545
|
+
- **[@nlabs/arkhamjs-storage-node](./arkhamjs-storage-node/README.md)** - Node.js storage
|
546
|
+
|
547
|
+
## 📚 Documentation
|
548
|
+
|
549
|
+
For detailed documentation and examples, visit [arkhamjs.io](https://arkhamjs.io).
|
550
|
+
|
551
|
+
## 🤝 Community & Support
|
552
|
+
|
553
|
+
- **💬 [Discord Community](https://discord.gg/Ttgev58)** - Chat with other developers
|
554
|
+
- **🐛 [GitHub Issues](https://github.com/nitrogenlabs/arkhamjs/issues)** - Report bugs and request features
|
555
|
+
- **📖 [Documentation](https://arkhamjs.io)** - Complete API reference
|
556
|
+
|
557
|
+
## 📄 License
|
20
558
|
|
21
|
-
|
559
|
+
MIT License - see [LICENSE](../LICENSE) file for details.
|
@@ -1,207 +1,2 @@
|
|
1
|
-
var
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
5
|
-
var __export = (target, all) => {
|
6
|
-
for (var name in all)
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
8
|
-
};
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
11
|
-
for (let key of __getOwnPropNames(from))
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
14
|
-
}
|
15
|
-
return to;
|
16
|
-
};
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
18
|
-
var BrowserStorage_exports = {};
|
19
|
-
__export(BrowserStorage_exports, {
|
20
|
-
BrowserStorage: () => BrowserStorage
|
21
|
-
});
|
22
|
-
module.exports = __toCommonJS(BrowserStorage_exports);
|
23
|
-
class BrowserStorage {
|
24
|
-
constructor(options = {}) {
|
25
|
-
this.options = {
|
26
|
-
type: "session"
|
27
|
-
};
|
28
|
-
this.getStorageData = this.getStorageData.bind(this);
|
29
|
-
this.setStorageData = this.setStorageData.bind(this);
|
30
|
-
this.options = { ...this.options, ...options };
|
31
|
-
}
|
32
|
-
static {
|
33
|
-
this.window = window || {};
|
34
|
-
}
|
35
|
-
/**
|
36
|
-
* Removes a key from localStorage.
|
37
|
-
*
|
38
|
-
* @param {string} key Key associated with the data to remove.
|
39
|
-
* @returns {boolean} Whether data was successfully removed.
|
40
|
-
*/
|
41
|
-
static delLocalData(key) {
|
42
|
-
const localStorage = BrowserStorage.getLocalStorage();
|
43
|
-
if (localStorage) {
|
44
|
-
try {
|
45
|
-
localStorage.removeItem(key);
|
46
|
-
return true;
|
47
|
-
} catch (error) {
|
48
|
-
return false;
|
49
|
-
}
|
50
|
-
} else {
|
51
|
-
return false;
|
52
|
-
}
|
53
|
-
}
|
54
|
-
/**
|
55
|
-
* Removes a key from sessionStorage.
|
56
|
-
*
|
57
|
-
* @param {string} key Key associated with the data to remove.
|
58
|
-
* @returns {boolean} Whether data was successfully removed.
|
59
|
-
*/
|
60
|
-
static delSessionData(key) {
|
61
|
-
const sessionStorage = BrowserStorage.getSessionStorage();
|
62
|
-
if (sessionStorage) {
|
63
|
-
try {
|
64
|
-
sessionStorage.removeItem(key);
|
65
|
-
return true;
|
66
|
-
} catch (error) {
|
67
|
-
return false;
|
68
|
-
}
|
69
|
-
} else {
|
70
|
-
return false;
|
71
|
-
}
|
72
|
-
}
|
73
|
-
/**
|
74
|
-
* Get a key value from localStorage.
|
75
|
-
*
|
76
|
-
* @param {string} key The key for data.
|
77
|
-
* @returns {any} the data object associated with the key.
|
78
|
-
*/
|
79
|
-
static getLocalData(key) {
|
80
|
-
const localStorage = BrowserStorage.getLocalStorage();
|
81
|
-
if (localStorage) {
|
82
|
-
try {
|
83
|
-
const item = localStorage.getItem(key);
|
84
|
-
if (item) {
|
85
|
-
return JSON.parse(item);
|
86
|
-
}
|
87
|
-
return null;
|
88
|
-
} catch (error) {
|
89
|
-
return null;
|
90
|
-
}
|
91
|
-
} else {
|
92
|
-
return null;
|
93
|
-
}
|
94
|
-
}
|
95
|
-
/**
|
96
|
-
* Get localStorage from global window object.
|
97
|
-
*
|
98
|
-
* @param {string} key Key to store data.
|
99
|
-
* @param {any} value Data to store.
|
100
|
-
* @returns {any} window.localStorage.
|
101
|
-
*/
|
102
|
-
static getLocalStorage() {
|
103
|
-
const { localStorage } = BrowserStorage.window;
|
104
|
-
return localStorage;
|
105
|
-
}
|
106
|
-
/**
|
107
|
-
* Get a key value from sessionStorage.
|
108
|
-
*
|
109
|
-
* @param {string} key The key for data.
|
110
|
-
* @returns {any} the data object associated with the key.
|
111
|
-
*/
|
112
|
-
static getSessionData(key) {
|
113
|
-
const sessionStorage = BrowserStorage.getSessionStorage();
|
114
|
-
if (sessionStorage) {
|
115
|
-
try {
|
116
|
-
const item = sessionStorage.getItem(key);
|
117
|
-
if (item) {
|
118
|
-
return item ? JSON.parse(item) : null;
|
119
|
-
}
|
120
|
-
return null;
|
121
|
-
} catch (error) {
|
122
|
-
return null;
|
123
|
-
}
|
124
|
-
} else {
|
125
|
-
return null;
|
126
|
-
}
|
127
|
-
}
|
128
|
-
/**
|
129
|
-
* Get sessionStorage from global window object.
|
130
|
-
*
|
131
|
-
* @param {string} key Key to store data.
|
132
|
-
* @param {any} value Data to store.
|
133
|
-
* @returns {any} window.sessionStorage.
|
134
|
-
*/
|
135
|
-
static getSessionStorage() {
|
136
|
-
const { sessionStorage } = BrowserStorage.window;
|
137
|
-
return sessionStorage;
|
138
|
-
}
|
139
|
-
/**
|
140
|
-
* Saves data to localStorage.
|
141
|
-
*
|
142
|
-
* @param {string} key Key to store data.
|
143
|
-
* @param {any} value Data to store.
|
144
|
-
* @returns {boolean} Whether data was successfully saved.
|
145
|
-
*/
|
146
|
-
static setLocalData(key, value) {
|
147
|
-
const localStorage = BrowserStorage.getLocalStorage();
|
148
|
-
if (localStorage) {
|
149
|
-
try {
|
150
|
-
localStorage.setItem(key, JSON.stringify(value));
|
151
|
-
return true;
|
152
|
-
} catch (error) {
|
153
|
-
return false;
|
154
|
-
}
|
155
|
-
} else {
|
156
|
-
return false;
|
157
|
-
}
|
158
|
-
}
|
159
|
-
/**
|
160
|
-
* Saves data to sessionStorage.
|
161
|
-
*
|
162
|
-
* @param {string} key Key to store data.
|
163
|
-
* @param {any} value Data to store.
|
164
|
-
* @returns {boolean} Whether data was successfully saved.
|
165
|
-
*/
|
166
|
-
static setSessionData(key, value) {
|
167
|
-
const sessionStorage = BrowserStorage.getSessionStorage();
|
168
|
-
if (sessionStorage) {
|
169
|
-
try {
|
170
|
-
sessionStorage.setItem(key, JSON.stringify(value));
|
171
|
-
return true;
|
172
|
-
} catch (error) {
|
173
|
-
return false;
|
174
|
-
}
|
175
|
-
} else {
|
176
|
-
return false;
|
177
|
-
}
|
178
|
-
}
|
179
|
-
/**
|
180
|
-
* Get a key value from storage.
|
181
|
-
*
|
182
|
-
* @param {string} key The key for data.
|
183
|
-
* @returns {Promise<any>} the data object associated with the key.
|
184
|
-
*/
|
185
|
-
getStorageData(key) {
|
186
|
-
const { type } = this.options;
|
187
|
-
const results = type === "local" ? BrowserStorage.getLocalData(key) : BrowserStorage.getSessionData(key);
|
188
|
-
return Promise.resolve(results);
|
189
|
-
}
|
190
|
-
/**
|
191
|
-
* Saves data to storage.
|
192
|
-
*
|
193
|
-
* @param {string} key Key to store data.
|
194
|
-
* @param {any} value Data to store.
|
195
|
-
* @returns {Promise<boolean>} Whether data was successfully saved.
|
196
|
-
*/
|
197
|
-
setStorageData(key, value) {
|
198
|
-
const { type } = this.options;
|
199
|
-
const results = type === "local" ? BrowserStorage.setLocalData(key, value) : BrowserStorage.setSessionData(key, value);
|
200
|
-
return Promise.resolve(results);
|
201
|
-
}
|
202
|
-
}
|
203
|
-
// Annotate the CommonJS export names for ESM import in node:
|
204
|
-
0 && (module.exports = {
|
205
|
-
BrowserStorage
|
206
|
-
});
|
207
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0Jyb3dzZXJTdG9yYWdlL0Jyb3dzZXJTdG9yYWdlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtCcm93c2VyU3RvcmFnZU9wdGlvbnN9IGZyb20gJy4uL3R5cGVzL21haW4nO1xuXG5leHBvcnQgY2xhc3MgQnJvd3NlclN0b3JhZ2Uge1xuICBzdGF0aWMgd2luZG93OiBhbnkgPSB3aW5kb3cgfHwge307XG4gIHByaXZhdGUgb3B0aW9uczogQnJvd3NlclN0b3JhZ2VPcHRpb25zID0ge1xuICAgIHR5cGU6ICdzZXNzaW9uJ1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEJyb3dzZXJTdG9yYWdlT3B0aW9ucyA9IHt9KSB7XG4gICAgLy8gTWV0aG9kc1xuICAgIHRoaXMuZ2V0U3RvcmFnZURhdGEgPSB0aGlzLmdldFN0b3JhZ2VEYXRhLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zZXRTdG9yYWdlRGF0YSA9IHRoaXMuc2V0U3RvcmFnZURhdGEuYmluZCh0aGlzKTtcblxuICAgIC8vIENvbmZpZ3VyYXRpb25cbiAgICB0aGlzLm9wdGlvbnMgPSB7Li4udGhpcy5vcHRpb25zLCAuLi5vcHRpb25zfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEga2V5IGZyb20gbG9jYWxTdG9yYWdlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IEtleSBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGEgdG8gcmVtb3ZlLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciBkYXRhIHdhcyBzdWNjZXNzZnVsbHkgcmVtb3ZlZC5cbiAgICovXG4gIHN0YXRpYyBkZWxMb2NhbERhdGEoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBsb2NhbFN0b3JhZ2UgPSBCcm93c2VyU3RvcmFnZS5nZXRMb2NhbFN0b3JhZ2UoKTtcblxuICAgIGlmKGxvY2FsU3RvcmFnZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEga2V5IGZyb20gc2Vzc2lvblN0b3JhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgS2V5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YSB0byByZW1vdmUuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIGRhdGEgd2FzIHN1Y2Nlc3NmdWxseSByZW1vdmVkLlxuICAgKi9cbiAgc3RhdGljIGRlbFNlc3Npb25EYXRhKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2Vzc2lvblN0b3JhZ2UgPSBCcm93c2VyU3RvcmFnZS5nZXRTZXNzaW9uU3RvcmFnZSgpO1xuXG4gICAgaWYoc2Vzc2lvblN0b3JhZ2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBrZXkgdmFsdWUgZnJvbSBsb2NhbFN0b3JhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBmb3IgZGF0YS5cbiAgICogQHJldHVybnMge2FueX0gdGhlIGRhdGEgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUga2V5LlxuICAgKi9cbiAgc3RhdGljIGdldExvY2FsRGF0YShrZXk6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgbG9jYWxTdG9yYWdlID0gQnJvd3NlclN0b3JhZ2UuZ2V0TG9jYWxTdG9yYWdlKCk7XG5cbiAgICBpZihsb2NhbFN0b3JhZ2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuXG4gICAgICAgIGlmKGl0ZW0pIHtcbiAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShpdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsb2NhbFN0b3JhZ2UgZnJvbSBnbG9iYWwgd2luZG93IG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBLZXkgdG8gc3RvcmUgZGF0YS5cbiAgICogQHBhcmFtIHthbnl9IHZhbHVlIERhdGEgdG8gc3RvcmUuXG4gICAqIEByZXR1cm5zIHthbnl9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuXG4gICAqL1xuICBzdGF0aWMgZ2V0TG9jYWxTdG9yYWdlKCk6IGFueSB7XG4gICAgY29uc3Qge2xvY2FsU3RvcmFnZX0gPSBCcm93c2VyU3RvcmFnZS53aW5kb3c7XG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBrZXkgdmFsdWUgZnJvbSBzZXNzaW9uU3RvcmFnZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IGZvciBkYXRhLlxuICAgKiBAcmV0dXJucyB7YW55fSB0aGUgZGF0YSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBrZXkuXG4gICAqL1xuICBzdGF0aWMgZ2V0U2Vzc2lvbkRhdGEoa2V5OiBzdHJpbmcpOiBhbnkge1xuICAgIGNvbnN0IHNlc3Npb25TdG9yYWdlID0gQnJvd3NlclN0b3JhZ2UuZ2V0U2Vzc2lvblN0b3JhZ2UoKTtcblxuICAgIGlmKHNlc3Npb25TdG9yYWdlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBpdGVtID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuXG4gICAgICAgIGlmKGl0ZW0pIHtcbiAgICAgICAgICByZXR1cm4gaXRlbSA/IEpTT04ucGFyc2UoaXRlbSkgOiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IHNlc3Npb25TdG9yYWdlIGZyb20gZ2xvYmFsIHdpbmRvdyBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgS2V5IHRvIHN0b3JlIGRhdGEuXG4gICAqIEBwYXJhbSB7YW55fSB2YWx1ZSBEYXRhIHRvIHN0b3JlLlxuICAgKiBAcmV0dXJucyB7YW55fSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuXG4gICAqL1xuICBzdGF0aWMgZ2V0U2Vzc2lvblN0b3JhZ2UoKTogYW55IHtcbiAgICBjb25zdCB7c2Vzc2lvblN0b3JhZ2V9ID0gQnJvd3NlclN0b3JhZ2Uud2luZG93O1xuXG4gICAgcmV0dXJuIHNlc3Npb25TdG9yYWdlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIGRhdGEgdG8gbG9jYWxTdG9yYWdlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IEtleSB0byBzdG9yZSBkYXRhLlxuICAgKiBAcGFyYW0ge2FueX0gdmFsdWUgRGF0YSB0byBzdG9yZS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgZGF0YSB3YXMgc3VjY2Vzc2Z1bGx5IHNhdmVkLlxuICAgKi9cbiAgc3RhdGljIHNldExvY2FsRGF0YShrZXk6IHN0cmluZywgdmFsdWUpOiBib29sZWFuIHtcbiAgICBjb25zdCBsb2NhbFN0b3JhZ2UgPSBCcm93c2VyU3RvcmFnZS5nZXRMb2NhbFN0b3JhZ2UoKTtcblxuICAgIGlmKGxvY2FsU3RvcmFnZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIGRhdGEgdG8gc2Vzc2lvblN0b3JhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgS2V5IHRvIHN0b3JlIGRhdGEuXG4gICAqIEBwYXJhbSB7YW55fSB2YWx1ZSBEYXRhIHRvIHN0b3JlLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciBkYXRhIHdhcyBzdWNjZXNzZnVsbHkgc2F2ZWQuXG4gICAqL1xuICBzdGF0aWMgc2V0U2Vzc2lvbkRhdGEoa2V5OiBzdHJpbmcsIHZhbHVlKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2Vzc2lvblN0b3JhZ2UgPSBCcm93c2VyU3RvcmFnZS5nZXRTZXNzaW9uU3RvcmFnZSgpO1xuXG4gICAgaWYoc2Vzc2lvblN0b3JhZ2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIGtleSB2YWx1ZSBmcm9tIHN0b3JhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBmb3IgZGF0YS5cbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn0gdGhlIGRhdGEgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUga2V5LlxuICAgKi9cbiAgZ2V0U3RvcmFnZURhdGEoa2V5OiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHt0eXBlfSA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCByZXN1bHRzID0gdHlwZSA9PT0gJ2xvY2FsJyA/IEJyb3dzZXJTdG9yYWdlLmdldExvY2FsRGF0YShrZXkpIDogQnJvd3NlclN0b3JhZ2UuZ2V0U2Vzc2lvbkRhdGEoa2V5KTtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIGRhdGEgdG8gc3RvcmFnZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBLZXkgdG8gc3RvcmUgZGF0YS5cbiAgICogQHBhcmFtIHthbnl9IHZhbHVlIERhdGEgdG8gc3RvcmUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fSBXaGV0aGVyIGRhdGEgd2FzIHN1Y2Nlc3NmdWxseSBzYXZlZC5cbiAgICovXG4gIHNldFN0b3JhZ2VEYXRhKGtleTogc3RyaW5nLCB2YWx1ZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHt0eXBlfSA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCByZXN1bHRzOiBib29sZWFuID0gdHlwZSA9PT0gJ2xvY2FsJyA/XG4gICAgICBCcm93c2VyU3RvcmFnZS5zZXRMb2NhbERhdGEoa2V5LCB2YWx1ZSkgOlxuICAgICAgQnJvd3NlclN0b3JhZ2Uuc2V0U2Vzc2lvbkRhdGEoa2V5LCB2YWx1ZSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHRzKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTU8sTUFBTSxlQUFlO0FBQUEsRUFNMUIsWUFBWSxVQUFpQyxDQUFDLEdBQUc7QUFKakQsU0FBUSxVQUFpQztBQUFBLE1BQ3ZDLE1BQU07QUFBQSxJQUNSO0FBSUUsU0FBSyxpQkFBaUIsS0FBSyxlQUFlLEtBQUssSUFBSTtBQUNuRCxTQUFLLGlCQUFpQixLQUFLLGVBQWUsS0FBSyxJQUFJO0FBR25ELFNBQUssVUFBVSxFQUFDLEdBQUcsS0FBSyxTQUFTLEdBQUcsUUFBTztBQUFBLEVBQzdDO0FBQUEsRUFaQTtBQUFBLFNBQU8sU0FBYyxVQUFVLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBb0JoQyxPQUFPLGFBQWEsS0FBc0I7QUFDeEMsVUFBTSxlQUFlLGVBQWUsZ0JBQWdCO0FBRXBELFFBQUcsY0FBYztBQUNmLFVBQUk7QUFDRixxQkFBYSxXQUFXLEdBQUc7QUFDM0IsZUFBTztBQUFBLE1BQ1QsU0FBUSxPQUFPO0FBQ2IsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGLE9BQU87QUFDTCxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFBLE9BQU8sZUFBZSxLQUFzQjtBQUMxQyxVQUFNLGlCQUFpQixlQUFlLGtCQUFrQjtBQUV4RCxRQUFHLGdCQUFnQjtBQUNqQixVQUFJO0FBQ0YsdUJBQWUsV0FBVyxHQUFHO0FBQzdCLGVBQU87QUFBQSxNQUNULFNBQVEsT0FBTztBQUNiLGVBQU87QUFBQSxNQUNUO0FBQUEsSUFDRixPQUFPO0FBQ0wsYUFBTztBQUFBLElBQ1Q7QUFBQSxFQUNGO0FBQUE7QUFB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
|
1
|
+
var n=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var g=(o,t)=>{for(var e in t)n(o,e,{get:t[e],enumerable:!0})},u=(o,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of l(t))!c.call(o,a)&&a!==e&&n(o,a,{get:()=>t[a],enumerable:!(s=i(t,a))||s.enumerable});return o};var S=o=>u(n({},"__esModule",{value:!0}),o);var f={};g(f,{BrowserStorage:()=>r});module.exports=S(f);class r{constructor(t={}){this.options={type:"session"};this.getStorageData=this.getStorageData.bind(this),this.setStorageData=this.setStorageData.bind(this),this.options={...this.options,...t}}static{this.window=window||{}}static delLocalData(t){const e=r.getLocalStorage();if(e)try{return e.removeItem(t),!0}catch{return!1}else return!1}static delSessionData(t){const e=r.getSessionStorage();if(e)try{return e.removeItem(t),!0}catch{return!1}else return!1}static getLocalData(t){const e=r.getLocalStorage();if(e)try{const s=e.getItem(t);return s?JSON.parse(s):null}catch{return null}else return null}static getLocalStorage(){const{localStorage:t}=r.window;return t}static getSessionData(t){const e=r.getSessionStorage();if(e)try{const s=e.getItem(t);return s&&s?JSON.parse(s):null}catch{return null}else return null}static getSessionStorage(){const{sessionStorage:t}=r.window;return t}static setLocalData(t,e){const s=r.getLocalStorage();if(s)try{return s.setItem(t,JSON.stringify(e)),!0}catch{return!1}else return!1}static setSessionData(t,e){const s=r.getSessionStorage();if(s)try{return s.setItem(t,JSON.stringify(e)),!0}catch{return!1}else return!1}getStorageData(t){const{type:e}=this.options,s=e==="local"?r.getLocalData(t):r.getSessionData(t);return Promise.resolve(s)}setStorageData(t,e){const{type:s}=this.options,a=s==="local"?r.setLocalData(t,e):r.setSessionData(t,e);return Promise.resolve(a)}}0&&(module.exports={BrowserStorage});
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0Jyb3dzZXJTdG9yYWdlL0Jyb3dzZXJTdG9yYWdlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtCcm93c2VyU3RvcmFnZU9wdGlvbnN9IGZyb20gJy4uL3R5cGVzL21haW4nO1xuXG5leHBvcnQgY2xhc3MgQnJvd3NlclN0b3JhZ2Uge1xuICBzdGF0aWMgd2luZG93OiBhbnkgPSB3aW5kb3cgfHwge307XG4gIHByaXZhdGUgb3B0aW9uczogQnJvd3NlclN0b3JhZ2VPcHRpb25zID0ge1xuICAgIHR5cGU6ICdzZXNzaW9uJ1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEJyb3dzZXJTdG9yYWdlT3B0aW9ucyA9IHt9KSB7XG4gICAgLy8gTWV0aG9kc1xuICAgIHRoaXMuZ2V0U3RvcmFnZURhdGEgPSB0aGlzLmdldFN0b3JhZ2VEYXRhLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zZXRTdG9yYWdlRGF0YSA9IHRoaXMuc2V0U3RvcmFnZURhdGEuYmluZCh0aGlzKTtcblxuICAgIC8vIENvbmZpZ3VyYXRpb25cbiAgICB0aGlzLm9wdGlvbnMgPSB7Li4udGhpcy5vcHRpb25zLCAuLi5vcHRpb25zfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEga2V5IGZyb20gbG9jYWxTdG9yYWdlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IEtleSBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGEgdG8gcmVtb3ZlLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciBkYXRhIHdhcyBzdWNjZXNzZnVsbHkgcmVtb3ZlZC5cbiAgICovXG4gIHN0YXRpYyBkZWxMb2NhbERhdGEoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBsb2NhbFN0b3JhZ2UgPSBCcm93c2VyU3RvcmFnZS5nZXRMb2NhbFN0b3JhZ2UoKTtcblxuICAgIGlmKGxvY2FsU3RvcmFnZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEga2V5IGZyb20gc2Vzc2lvblN0b3JhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgS2V5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YSB0byByZW1vdmUuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIGRhdGEgd2FzIHN1Y2Nlc3NmdWxseSByZW1vdmVkLlxuICAgKi9cbiAgc3RhdGljIGRlbFNlc3Npb25EYXRhKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2Vzc2lvblN0b3JhZ2UgPSBCcm93c2VyU3RvcmFnZS5nZXRTZXNzaW9uU3RvcmFnZSgpO1xuXG4gICAgaWYoc2Vzc2lvblN0b3JhZ2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBrZXkgdmFsdWUgZnJvbSBsb2NhbFN0b3JhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBmb3IgZGF0YS5cbiAgICogQHJldHVybnMge2FueX0gdGhlIGRhdGEgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUga2V5LlxuICAgKi9cbiAgc3RhdGljIGdldExvY2FsRGF0YShrZXk6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgbG9jYWxTdG9yYWdlID0gQnJvd3NlclN0b3JhZ2UuZ2V0TG9jYWxTdG9yYWdlKCk7XG5cbiAgICBpZihsb2NhbFN0b3JhZ2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuXG4gICAgICAgIGlmKGl0ZW0pIHtcbiAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShpdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsb2NhbFN0b3JhZ2UgZnJvbSBnbG9iYWwgd2luZG93IG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBLZXkgdG8gc3RvcmUgZGF0YS5cbiAgICogQHBhcmFtIHthbnl9IHZhbHVlIERhdGEgdG8gc3RvcmUuXG4gICAqIEByZXR1cm5zIHthbnl9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuXG4gICAqL1xuICBzdGF0aWMgZ2V0TG9jYWxTdG9yYWdlKCk6IGFueSB7XG4gICAgY29uc3Qge2xvY2FsU3RvcmFnZX0gPSBCcm93c2VyU3RvcmFnZS53aW5kb3c7XG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBrZXkgdmFsdWUgZnJvbSBzZXNzaW9uU3RvcmFnZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IGZvciBkYXRhLlxuICAgKiBAcmV0dXJucyB7YW55fSB0aGUgZGF0YSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBrZXkuXG4gICAqL1xuICBzdGF0aWMgZ2V0U2Vzc2lvbkRhdGEoa2V5OiBzdHJpbmcpOiBhbnkge1xuICAgIGNvbnN0IHNlc3Npb25TdG9yYWdlID0gQnJvd3NlclN0b3JhZ2UuZ2V0U2Vzc2lvblN0b3JhZ2UoKTtcblxuICAgIGlmKHNlc3Npb25TdG9yYWdlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBpdGVtID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuXG4gICAgICAgIGlmKGl0ZW0pIHtcbiAgICAgICAgICByZXR1cm4gaXRlbSA/IEpTT04ucGFyc2UoaXRlbSkgOiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IHNlc3Npb25TdG9yYWdlIGZyb20gZ2xvYmFsIHdpbmRvdyBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgS2V5IHRvIHN0b3JlIGRhdGEuXG4gICAqIEBwYXJhbSB7YW55fSB2YWx1ZSBEYXRhIHRvIHN0b3JlLlxuICAgKiBAcmV0dXJucyB7YW55fSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuXG4gICAqL1xuICBzdGF0aWMgZ2V0U2Vzc2lvblN0b3JhZ2UoKTogYW55IHtcbiAgICBjb25zdCB7c2Vzc2lvblN0b3JhZ2V9ID0gQnJvd3NlclN0b3JhZ2Uud2luZG93O1xuXG4gICAgcmV0dXJuIHNlc3Npb25TdG9yYWdlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIGRhdGEgdG8gbG9jYWxTdG9yYWdlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IEtleSB0byBzdG9yZSBkYXRhLlxuICAgKiBAcGFyYW0ge2FueX0gdmFsdWUgRGF0YSB0byBzdG9yZS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgZGF0YSB3YXMgc3VjY2Vzc2Z1bGx5IHNhdmVkLlxuICAgKi9cbiAgc3RhdGljIHNldExvY2FsRGF0YShrZXk6IHN0cmluZywgdmFsdWUpOiBib29sZWFuIHtcbiAgICBjb25zdCBsb2NhbFN0b3JhZ2UgPSBCcm93c2VyU3RvcmFnZS5nZXRMb2NhbFN0b3JhZ2UoKTtcblxuICAgIGlmKGxvY2FsU3RvcmFnZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIGRhdGEgdG8gc2Vzc2lvblN0b3JhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgS2V5IHRvIHN0b3JlIGRhdGEuXG4gICAqIEBwYXJhbSB7YW55fSB2YWx1ZSBEYXRhIHRvIHN0b3JlLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciBkYXRhIHdhcyBzdWNjZXNzZnVsbHkgc2F2ZWQuXG4gICAqL1xuICBzdGF0aWMgc2V0U2Vzc2lvbkRhdGEoa2V5OiBzdHJpbmcsIHZhbHVlKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2Vzc2lvblN0b3JhZ2UgPSBCcm93c2VyU3RvcmFnZS5nZXRTZXNzaW9uU3RvcmFnZSgpO1xuXG4gICAgaWYoc2Vzc2lvblN0b3JhZ2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIGtleSB2YWx1ZSBmcm9tIHN0b3JhZ2UuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBmb3IgZGF0YS5cbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn0gdGhlIGRhdGEgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUga2V5LlxuICAgKi9cbiAgZ2V0U3RvcmFnZURhdGEoa2V5OiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHt0eXBlfSA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCByZXN1bHRzID0gdHlwZSA9PT0gJ2xvY2FsJyA/IEJyb3dzZXJTdG9yYWdlLmdldExvY2FsRGF0YShrZXkpIDogQnJvd3NlclN0b3JhZ2UuZ2V0U2Vzc2lvbkRhdGEoa2V5KTtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIGRhdGEgdG8gc3RvcmFnZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBLZXkgdG8gc3RvcmUgZGF0YS5cbiAgICogQHBhcmFtIHthbnl9IHZhbHVlIERhdGEgdG8gc3RvcmUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fSBXaGV0aGVyIGRhdGEgd2FzIHN1Y2Nlc3NmdWxseSBzYXZlZC5cbiAgICovXG4gIHNldFN0b3JhZ2VEYXRhKGtleTogc3RyaW5nLCB2YWx1ZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHt0eXBlfSA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCByZXN1bHRzOiBib29sZWFuID0gdHlwZSA9PT0gJ2xvY2FsJyA/XG4gICAgICBCcm93c2VyU3RvcmFnZS5zZXRMb2NhbERhdGEoa2V5LCB2YWx1ZSkgOlxuICAgICAgQnJvd3NlclN0b3JhZ2Uuc2V0U2Vzc2lvbkRhdGEoa2V5LCB2YWx1ZSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHRzKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjRaQUFBLElBQUFBLEVBQUEsR0FBQUMsRUFBQUQsRUFBQSxvQkFBQUUsSUFBQSxlQUFBQyxFQUFBSCxHQU1PLE1BQU1FLENBQWUsQ0FNMUIsWUFBWUUsRUFBaUMsQ0FBQyxFQUFHLENBSmpELEtBQVEsUUFBaUMsQ0FDdkMsS0FBTSxTQUNSLEVBSUUsS0FBSyxlQUFpQixLQUFLLGVBQWUsS0FBSyxJQUFJLEVBQ25ELEtBQUssZUFBaUIsS0FBSyxlQUFlLEtBQUssSUFBSSxFQUduRCxLQUFLLFFBQVUsQ0FBQyxHQUFHLEtBQUssUUFBUyxHQUFHQSxDQUFPLENBQzdDLENBWkEsWUFBTyxPQUFjLFFBQVUsQ0FBQyxFQW9CaEMsT0FBTyxhQUFhQyxFQUFzQixDQUN4QyxNQUFNQyxFQUFlSixFQUFlLGdCQUFnQixFQUVwRCxHQUFHSSxFQUNELEdBQUksQ0FDRixPQUFBQSxFQUFhLFdBQVdELENBQUcsRUFDcEIsRUFDVCxNQUFlLENBQ2IsTUFBTyxFQUNULEtBRUEsT0FBTyxFQUVYLENBUUEsT0FBTyxlQUFlQSxFQUFzQixDQUMxQyxNQUFNRSxFQUFpQkwsRUFBZSxrQkFBa0IsRUFFeEQsR0FBR0ssRUFDRCxHQUFJLENBQ0YsT0FBQUEsRUFBZSxXQUFXRixDQUFHLEVBQ3RCLEVBQ1QsTUFBZSxDQUNiLE1BQU8sRUFDVCxLQUVBLE9BQU8sRUFFWCxDQVFBLE9BQU8sYUFBYUEsRUFBa0IsQ0FDcEMsTUFBTUMsRUFBZUosRUFBZSxnQkFBZ0IsRUFFcEQsR0FBR0ksRUFDRCxHQUFJLENBQ0YsTUFBTUUsRUFBT0YsRUFBYSxRQUFRRCxDQUFHLEVBRXJDLE9BQUdHLEVBQ00sS0FBSyxNQUFNQSxDQUFJLEVBR2pCLElBQ1QsTUFBZSxDQUNiLE9BQU8sSUFDVCxLQUVBLFFBQU8sSUFFWCxDQVNBLE9BQU8saUJBQXVCLENBQzVCLEtBQU0sQ0FBQyxhQUFBRixDQUFZLEVBQUlKLEVBQWUsT0FDdEMsT0FBT0ksQ0FDVCxDQVFBLE9BQU8sZUFBZUQsRUFBa0IsQ0FDdEMsTUFBTUUsRUFBaUJMLEVBQWUsa0JBQWtCLEVBRXhELEdBQUdLLEVBQ0QsR0FBSSxDQUNGLE1BQU1DLEVBQU9ELEVBQWUsUUFBUUYsQ0FBRyxFQUV2QyxPQUFHRyxHQUNNQSxFQUFPLEtBQUssTUFBTUEsQ0FBSSxFQUd4QixJQUNULE1BQWUsQ0FDYixPQUFPLElBQ1QsS0FFQSxRQUFPLElBRVgsQ0FTQSxPQUFPLG1CQUF5QixDQUM5QixLQUFNLENBQUMsZUFBQUQsQ0FBYyxFQUFJTCxFQUFlLE9BRXhDLE9BQU9LLENBQ1QsQ0FTQSxPQUFPLGFBQWFGLEVBQWFJLEVBQWdCLENBQy9DLE1BQU1ILEVBQWVKLEVBQWUsZ0JBQWdCLEVBRXBELEdBQUdJLEVBQ0QsR0FBSSxDQUNGLE9BQUFBLEVBQWEsUUFBUUQsRUFBSyxLQUFLLFVBQVVJLENBQUssQ0FBQyxFQUN4QyxFQUNULE1BQWUsQ0FDYixNQUFPLEVBQ1QsS0FFQSxPQUFPLEVBRVgsQ0FTQSxPQUFPLGVBQWVKLEVBQWFJLEVBQWdCLENBQ2pELE1BQU1GLEVBQWlCTCxFQUFlLGtCQUFrQixFQUV4RCxHQUFHSyxFQUNELEdBQUksQ0FDRixPQUFBQSxFQUFlLFFBQVFGLEVBQUssS0FBSyxVQUFVSSxDQUFLLENBQUMsRUFDMUMsRUFDVCxNQUFlLENBQ2IsTUFBTyxFQUNULEtBRUEsT0FBTyxFQUVYLENBUUEsZUFBZUosRUFBMkIsQ0FDeEMsS0FBTSxDQUFDLEtBQUFLLENBQUksRUFBSSxLQUFLLFFBQ2RDLEVBQVVELElBQVMsUUFBVVIsRUFBZSxhQUFhRyxDQUFHLEVBQUlILEVBQWUsZUFBZUcsQ0FBRyxFQUN2RyxPQUFPLFFBQVEsUUFBUU0sQ0FBTyxDQUNoQyxDQVNBLGVBQWVOLEVBQWFJLEVBQXlCLENBQ25ELEtBQU0sQ0FBQyxLQUFBQyxDQUFJLEVBQUksS0FBSyxRQUNkQyxFQUFtQkQsSUFBUyxRQUNoQ1IsRUFBZSxhQUFhRyxFQUFLSSxDQUFLLEVBQ3RDUCxFQUFlLGVBQWVHLEVBQUtJLENBQUssRUFDMUMsT0FBTyxRQUFRLFFBQVFFLENBQU8sQ0FDaEMsQ0FDRiIsCiAgIm5hbWVzIjogWyJCcm93c2VyU3RvcmFnZV9leHBvcnRzIiwgIl9fZXhwb3J0IiwgIkJyb3dzZXJTdG9yYWdlIiwgIl9fdG9Db21tb25KUyIsICJvcHRpb25zIiwgImtleSIsICJsb2NhbFN0b3JhZ2UiLCAic2Vzc2lvblN0b3JhZ2UiLCAiaXRlbSIsICJ2YWx1ZSIsICJ0eXBlIiwgInJlc3VsdHMiXQp9Cg==
|
package/lib/index.js
CHANGED
@@ -1,31 +1,2 @@
|
|
1
|
-
var
|
2
|
-
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
5
|
-
var __export = (target, all) => {
|
6
|
-
for (var name in all)
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
8
|
-
};
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
11
|
-
for (let key of __getOwnPropNames(from))
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
14
|
-
}
|
15
|
-
return to;
|
16
|
-
};
|
17
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
19
|
-
var index_exports = {};
|
20
|
-
__export(index_exports, {
|
21
|
-
BrowserStorage: () => import_BrowserStorage.BrowserStorage
|
22
|
-
});
|
23
|
-
module.exports = __toCommonJS(index_exports);
|
24
|
-
var import_BrowserStorage = require("./BrowserStorage/BrowserStorage");
|
25
|
-
__reExport(index_exports, require("./types/main"), module.exports);
|
26
|
-
// Annotate the CommonJS export names for ESM import in node:
|
27
|
-
0 && (module.exports = {
|
28
|
-
BrowserStorage,
|
29
|
-
...require("./types/main")
|
30
|
-
});
|
31
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtCcm93c2VyU3RvcmFnZX0gZnJvbSAnLi9Ccm93c2VyU3RvcmFnZS9Ccm93c2VyU3RvcmFnZSc7XG5cbi8vIFN0b3JhZ2VcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMvbWFpbic7XG5leHBvcnQge0Jyb3dzZXJTdG9yYWdlfTtcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJQSw0QkFBNkI7QUFHN0IsMEJBQWMseUJBUGQ7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
1
|
+
var x=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var B=(o,r)=>{for(var e in r)x(o,e,{get:r[e],enumerable:!0})},f=(o,r,e,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of s(r))!w.call(o,t)&&t!==e&&x(o,t,{get:()=>r[t],enumerable:!(a=i(r,t))||a.enumerable});return o},p=(o,r,e)=>(f(o,r,"default"),e&&f(e,r,"default"));var S=o=>f(x({},"__esModule",{value:!0}),o);var m={};B(m,{BrowserStorage:()=>g.BrowserStorage});module.exports=S(m);var g=require("./BrowserStorage/BrowserStorage");p(m,require("./types/main"),module.exports);0&&(module.exports={BrowserStorage,...require("./types/main")});
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtCcm93c2VyU3RvcmFnZX0gZnJvbSAnLi9Ccm93c2VyU3RvcmFnZS9Ccm93c2VyU3RvcmFnZSc7XG5cbi8vIFN0b3JhZ2VcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMvbWFpbic7XG5leHBvcnQge0Jyb3dzZXJTdG9yYWdlfTtcbiJdLAogICJtYXBwaW5ncyI6ICI4Y0FBQSxJQUFBQSxFQUFBLEdBQUFDLEVBQUFELEVBQUEsc0RBQUFFLEVBQUFGLEdBSUEsSUFBQUcsRUFBNkIsMkNBRzdCQyxFQUFBSixFQUFjLHdCQVBkIiwKICAibmFtZXMiOiBbImluZGV4X2V4cG9ydHMiLCAiX19leHBvcnQiLCAiX190b0NvbW1vbkpTIiwgImltcG9ydF9Ccm93c2VyU3RvcmFnZSIsICJfX3JlRXhwb3J0Il0KfQo=
|
package/lib/types/main.js
CHANGED
@@ -1,16 +1,2 @@
|
|
1
|
-
var
|
2
|
-
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
5
|
-
var __copyProps = (to, from, except, desc) => {
|
6
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
7
|
-
for (let key of __getOwnPropNames(from))
|
8
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
9
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
10
|
-
}
|
11
|
-
return to;
|
12
|
-
};
|
13
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
14
|
-
var main_exports = {};
|
15
|
-
module.exports = __toCommonJS(main_exports);
|
16
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3R5cGVzL21haW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCBpbnRlcmZhY2UgQnJvd3NlclN0b3JhZ2VPcHRpb25zIHtcbiAgcmVhZG9ubHkgdHlwZT86ICdsb2NhbCcgfCAnc2Vzc2lvbic7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTsiLAogICJuYW1lcyI6IFtdCn0K
|
1
|
+
var t=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var p=(o,e,a,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of i(e))!l.call(o,r)&&r!==a&&t(o,r,{get:()=>e[r],enumerable:!(s=n(e,r))||s.enumerable});return o};var c=o=>p(t({},"__esModule",{value:!0}),o);var y={};module.exports=c(y);
|
2
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3R5cGVzL21haW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCBpbnRlcmZhY2UgQnJvd3NlclN0b3JhZ2VPcHRpb25zIHtcbiAgcmVhZG9ubHkgdHlwZT86ICdsb2NhbCcgfCAnc2Vzc2lvbic7XG59XG4iXSwKICAibWFwcGluZ3MiOiAia1dBQUEsSUFBQUEsRUFBQSxrQkFBQUMsRUFBQUQiLAogICJuYW1lcyI6IFsibWFpbl9leHBvcnRzIiwgIl9fdG9Db21tb25KUyJdCn0K
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@nlabs/arkhamjs-storage-browser",
|
3
|
-
"version": "3.
|
3
|
+
"version": "3.29.0",
|
4
4
|
"publishConfig": {
|
5
5
|
"access": "public"
|
6
6
|
},
|
@@ -33,7 +33,7 @@
|
|
33
33
|
"scripts": {
|
34
34
|
"build": "lex compile --remove",
|
35
35
|
"clean": "lex clean",
|
36
|
-
"lint": "
|
36
|
+
"lint": "lex lint --fix",
|
37
37
|
"prepublishOnly": "npm run build",
|
38
38
|
"publish:major": "npm version major && npm publish",
|
39
39
|
"publish:minor": "npm version minor && npm publish",
|
@@ -41,18 +41,16 @@
|
|
41
41
|
"pretest": "npm run lint",
|
42
42
|
"reset": "lex clean",
|
43
43
|
"test": "lex test",
|
44
|
-
"update": "
|
44
|
+
"update": "lex update --interactive"
|
45
45
|
},
|
46
46
|
"peerDependencies": {
|
47
47
|
"@nlabs/arkhamjs": "^3.26.0"
|
48
48
|
},
|
49
49
|
"devDependencies": {
|
50
50
|
"@nlabs/arkhamjs": "*",
|
51
|
-
"@types/jest": "^
|
52
|
-
"@types/node": "^
|
53
|
-
"
|
54
|
-
"eslint-config-styleguidejs": "^3.2.1",
|
55
|
-
"typescript": "^5.7.3"
|
51
|
+
"@types/jest": "^30.0.0",
|
52
|
+
"@types/node": "^24.0.10",
|
53
|
+
"typescript": "^5.8.3"
|
56
54
|
},
|
57
55
|
"files": [
|
58
56
|
"lib",
|
@@ -62,5 +60,6 @@
|
|
62
60
|
"package.json",
|
63
61
|
"README.md"
|
64
62
|
],
|
65
|
-
"gitHead": "fc371e1e28fe0ae35d40d29a217d5f0e990ec32a"
|
63
|
+
"gitHead": "fc371e1e28fe0ae35d40d29a217d5f0e990ec32a",
|
64
|
+
"type": "module"
|
66
65
|
}
|