lib0 0.2.41 → 0.2.44
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 +127 -72
- package/bin/gendocs.js +1 -1
- package/cache.d.ts +50 -0
- package/cache.d.ts.map +1 -0
- package/cache.js +178 -0
- package/cache.test.d.ts +3 -0
- package/cache.test.d.ts.map +1 -0
- package/component.d.ts +4 -1
- package/component.d.ts.map +1 -1
- package/component.js +4 -1
- package/diff.d.ts +5 -0
- package/diff.d.ts.map +1 -1
- package/diff.js +47 -10
- package/diff.test.d.ts +1 -0
- package/diff.test.d.ts.map +1 -1
- package/dist/{broadcastchannel-8a61b21a.cjs → broadcastchannel-7da37795.cjs} +2 -2
- package/dist/{broadcastchannel-8a61b21a.cjs.map → broadcastchannel-7da37795.cjs.map} +1 -1
- package/dist/broadcastchannel.cjs +5 -5
- package/dist/{buffer-ac2cdedf.cjs → buffer-b0dea3b0.cjs} +4 -4
- package/dist/{buffer-ac2cdedf.cjs.map → buffer-b0dea3b0.cjs.map} +1 -1
- package/dist/buffer.cjs +4 -4
- package/dist/cache.cjs +185 -0
- package/dist/cache.cjs.map +1 -0
- package/dist/cache.d.ts +50 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.test.d.ts +3 -0
- package/dist/cache.test.d.ts.map +1 -0
- package/dist/component.cjs +7 -4
- package/dist/component.cjs.map +1 -1
- package/dist/component.d.ts +4 -1
- package/dist/component.d.ts.map +1 -1
- package/dist/decoding.cjs +4 -4
- package/dist/{diff-75787d87.cjs → diff-233747fa.cjs} +51 -12
- package/dist/diff-233747fa.cjs.map +1 -0
- package/dist/diff.cjs +2 -1
- package/dist/diff.cjs.map +1 -1
- package/dist/diff.d.ts +5 -0
- package/dist/diff.d.ts.map +1 -1
- package/dist/diff.test.d.ts +1 -0
- package/dist/diff.test.d.ts.map +1 -1
- package/dist/dom.d.ts.map +1 -1
- package/dist/encoding.cjs +4 -4
- package/dist/{environment-7e2ffaea.cjs → environment-60b83194.cjs} +2 -2
- package/dist/{environment-7e2ffaea.cjs.map → environment-60b83194.cjs.map} +1 -1
- package/dist/environment.cjs +2 -2
- package/dist/{error-55a9a8c8.cjs → error-873c9cbf.cjs} +4 -4
- package/dist/error-873c9cbf.cjs.map +1 -0
- package/dist/error.cjs +1 -1
- package/dist/error.d.ts.map +1 -1
- package/dist/index.cjs +13 -13
- package/dist/{indexeddb-44227700.cjs → indexeddb-5b4b0e13.cjs} +27 -25
- package/dist/indexeddb-5b4b0e13.cjs.map +1 -0
- package/dist/indexeddb.cjs +3 -3
- package/dist/indexeddb.d.ts +2 -2
- package/dist/indexeddb.d.ts.map +1 -1
- package/dist/isomorphic.cjs +2 -6
- package/dist/isomorphic.cjs.map +1 -1
- package/dist/list.cjs +172 -0
- package/dist/list.cjs.map +1 -0
- package/dist/list.d.ts +33 -0
- package/dist/list.d.ts.map +1 -0
- package/dist/list.test.d.ts +4 -0
- package/dist/list.test.d.ts.map +1 -0
- package/dist/{logging-7cc36806.cjs → logging-f6d41f58.cjs} +2 -2
- package/dist/{logging-7cc36806.cjs.map → logging-f6d41f58.cjs.map} +1 -1
- package/dist/logging.cjs +3 -3
- package/dist/{number-24f1eabe.cjs → number-e62129bc.cjs} +5 -2
- package/dist/number-e62129bc.cjs.map +1 -0
- package/dist/number.cjs +2 -1
- package/dist/number.cjs.map +1 -1
- package/dist/number.d.ts +1 -0
- package/dist/number.d.ts.map +1 -1
- package/dist/observable.cjs +1 -1
- package/dist/{prng-695120cc.cjs → prng-25602bac.cjs} +3 -3
- package/dist/{prng-695120cc.cjs.map → prng-25602bac.cjs.map} +1 -1
- package/dist/prng.cjs +5 -5
- package/dist/{promise-f0a086b2.cjs → promise-1a9fe712.cjs} +10 -1
- package/dist/{promise-f0a086b2.cjs.map → promise-1a9fe712.cjs.map} +1 -1
- package/dist/promise.cjs +2 -1
- package/dist/promise.cjs.map +1 -1
- package/dist/promise.d.ts +1 -0
- package/dist/promise.d.ts.map +1 -1
- package/dist/queue.cjs +3 -0
- package/dist/queue.cjs.map +1 -1
- package/dist/queue.d.ts.map +1 -1
- package/dist/queue.test.d.ts.map +1 -1
- package/dist/set-b596ef38.cjs +49 -0
- package/dist/set-b596ef38.cjs.map +1 -0
- package/dist/set.cjs +3 -1
- package/dist/set.cjs.map +1 -1
- package/dist/set.d.ts +2 -0
- package/dist/set.d.ts.map +1 -1
- package/dist/set.test.d.ts +2 -0
- package/dist/set.test.d.ts.map +1 -1
- package/dist/{string-f3c3d805.cjs → string-ad04f734.cjs} +12 -2
- package/dist/{string-f3c3d805.cjs.map → string-ad04f734.cjs.map} +1 -1
- package/dist/string.cjs +3 -4
- package/dist/string.cjs.map +1 -1
- package/dist/string.d.ts +1 -0
- package/dist/string.d.ts.map +1 -1
- package/dist/string.test.d.ts +1 -0
- package/dist/string.test.d.ts.map +1 -1
- package/dist/test.cjs +750 -125
- package/dist/test.cjs.map +1 -1
- package/dist/test.js +751 -126
- package/dist/test.js.map +1 -1
- package/dist/testing.cjs +12 -9
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.ts.map +1 -1
- package/dist/{websocket-bfe7f545.cjs → websocket-08bd4c7b.cjs} +1 -1
- package/dist/{websocket-bfe7f545.cjs.map → websocket-08bd4c7b.cjs.map} +1 -1
- package/dist/websocket.cjs +2 -2
- package/dist/websocket.d.ts +1 -1
- package/dist/websocket.d.ts.map +1 -1
- package/dom.d.ts.map +1 -1
- package/error.d.ts.map +1 -1
- package/error.js +3 -3
- package/indexeddb.d.ts +2 -2
- package/indexeddb.d.ts.map +1 -1
- package/indexeddb.js +25 -23
- package/list.d.ts +33 -0
- package/list.d.ts.map +1 -0
- package/list.js +155 -0
- package/list.test.d.ts +4 -0
- package/list.test.d.ts.map +1 -0
- package/number.d.ts +1 -0
- package/number.d.ts.map +1 -1
- package/number.js +1 -0
- package/package.json +16 -4
- package/promise.d.ts +1 -0
- package/promise.d.ts.map +1 -1
- package/promise.js +7 -0
- package/queue.d.ts.map +1 -1
- package/queue.js +3 -0
- package/queue.test.d.ts.map +1 -1
- package/set.d.ts +2 -0
- package/set.d.ts.map +1 -1
- package/set.js +18 -0
- package/set.test.d.ts +2 -0
- package/set.test.d.ts.map +1 -1
- package/string.d.ts +1 -0
- package/string.d.ts.map +1 -1
- package/string.js +8 -0
- package/string.test.d.ts +1 -0
- package/string.test.d.ts.map +1 -1
- package/test.js +7 -1
- package/testing.d.ts.map +1 -1
- package/testing.js +5 -2
- package/websocket.d.ts +1 -1
- package/websocket.d.ts.map +1 -1
- package/dist/diff-75787d87.cjs.map +0 -1
- package/dist/error-55a9a8c8.cjs.map +0 -1
- package/dist/indexeddb-44227700.cjs.map +0 -1
- package/dist/number-24f1eabe.cjs.map +0 -1
- package/dist/set-7ae96d21.cjs +0 -27
- package/dist/set-7ae96d21.cjs.map +0 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var promise = require('./promise-
|
|
4
|
-
var error = require('./error-
|
|
3
|
+
var promise = require('./promise-1a9fe712.cjs');
|
|
4
|
+
var error = require('./error-873c9cbf.cjs');
|
|
5
5
|
|
|
6
6
|
/* eslint-env browser */
|
|
7
7
|
|
|
8
|
+
/* istanbul ignore next */
|
|
8
9
|
/**
|
|
9
10
|
* IDB Request to Promise transformer
|
|
10
11
|
*
|
|
11
12
|
* @param {IDBRequest} request
|
|
12
13
|
* @return {Promise<any>}
|
|
13
14
|
*/
|
|
14
|
-
/* istanbul ignore next */
|
|
15
15
|
const rtop = request => promise.create((resolve, reject) => {
|
|
16
16
|
/* istanbul ignore next */
|
|
17
17
|
// @ts-ignore
|
|
@@ -23,12 +23,12 @@ const rtop = request => promise.create((resolve, reject) => {
|
|
|
23
23
|
request.onsuccess = event => resolve(event.target.result);
|
|
24
24
|
});
|
|
25
25
|
|
|
26
|
+
/* istanbul ignore next */
|
|
26
27
|
/**
|
|
27
28
|
* @param {string} name
|
|
28
29
|
* @param {function(IDBDatabase):any} initDB Called when the database is first created
|
|
29
30
|
* @return {Promise<IDBDatabase>}
|
|
30
31
|
*/
|
|
31
|
-
/* istanbul ignore next */
|
|
32
32
|
const openDB = (name, initDB) => promise.create((resolve, reject) => {
|
|
33
33
|
const request = indexedDB.open(name);
|
|
34
34
|
/**
|
|
@@ -60,17 +60,17 @@ const openDB = (name, initDB) => promise.create((resolve, reject) => {
|
|
|
60
60
|
};
|
|
61
61
|
});
|
|
62
62
|
|
|
63
|
+
/* istanbul ignore next */
|
|
63
64
|
/**
|
|
64
65
|
* @param {string} name
|
|
65
66
|
*/
|
|
66
|
-
/* istanbul ignore next */
|
|
67
67
|
const deleteDB = name => rtop(indexedDB.deleteDatabase(name));
|
|
68
68
|
|
|
69
|
+
/* istanbul ignore next */
|
|
69
70
|
/**
|
|
70
71
|
* @param {IDBDatabase} db
|
|
71
72
|
* @param {Array<Array<string>|Array<string|IDBObjectStoreParameters|undefined>>} definitions
|
|
72
73
|
*/
|
|
73
|
-
/* istanbul ignore next */
|
|
74
74
|
const createStores = (db, definitions) => definitions.forEach(d =>
|
|
75
75
|
// @ts-ignore
|
|
76
76
|
db.createObjectStore.apply(db, d)
|
|
@@ -87,75 +87,75 @@ const transact = (db, stores, access = 'readwrite') => {
|
|
|
87
87
|
return stores.map(store => getStore(transaction, store))
|
|
88
88
|
};
|
|
89
89
|
|
|
90
|
+
/* istanbul ignore next */
|
|
90
91
|
/**
|
|
91
92
|
* @param {IDBObjectStore} store
|
|
92
93
|
* @param {IDBKeyRange} [range]
|
|
93
94
|
* @return {Promise<number>}
|
|
94
95
|
*/
|
|
95
|
-
/* istanbul ignore next */
|
|
96
96
|
const count = (store, range) =>
|
|
97
97
|
rtop(store.count(range));
|
|
98
98
|
|
|
99
|
+
/* istanbul ignore next */
|
|
99
100
|
/**
|
|
100
101
|
* @param {IDBObjectStore} store
|
|
101
102
|
* @param {String | number | ArrayBuffer | Date | Array<any> } key
|
|
102
103
|
* @return {Promise<String | number | ArrayBuffer | Date | Array<any>>}
|
|
103
104
|
*/
|
|
104
|
-
/* istanbul ignore next */
|
|
105
105
|
const get = (store, key) =>
|
|
106
106
|
rtop(store.get(key));
|
|
107
107
|
|
|
108
|
+
/* istanbul ignore next */
|
|
108
109
|
/**
|
|
109
110
|
* @param {IDBObjectStore} store
|
|
110
111
|
* @param {String | number | ArrayBuffer | Date | IDBKeyRange | Array<any> } key
|
|
111
112
|
*/
|
|
112
|
-
/* istanbul ignore next */
|
|
113
113
|
const del = (store, key) =>
|
|
114
114
|
rtop(store.delete(key));
|
|
115
115
|
|
|
116
|
+
/* istanbul ignore next */
|
|
116
117
|
/**
|
|
117
118
|
* @param {IDBObjectStore} store
|
|
118
119
|
* @param {String | number | ArrayBuffer | Date | boolean} item
|
|
119
120
|
* @param {String | number | ArrayBuffer | Date | Array<any>} [key]
|
|
120
121
|
*/
|
|
121
|
-
/* istanbul ignore next */
|
|
122
122
|
const put = (store, item, key) =>
|
|
123
123
|
rtop(store.put(item, key));
|
|
124
124
|
|
|
125
|
+
/* istanbul ignore next */
|
|
125
126
|
/**
|
|
126
127
|
* @param {IDBObjectStore} store
|
|
127
128
|
* @param {String | number | ArrayBuffer | Date | boolean} item
|
|
128
129
|
* @param {String | number | ArrayBuffer | Date | Array<any>} key
|
|
129
130
|
* @return {Promise<any>}
|
|
130
131
|
*/
|
|
131
|
-
/* istanbul ignore next */
|
|
132
132
|
const add = (store, item, key) =>
|
|
133
133
|
rtop(store.add(item, key));
|
|
134
134
|
|
|
135
|
+
/* istanbul ignore next */
|
|
135
136
|
/**
|
|
136
137
|
* @param {IDBObjectStore} store
|
|
137
138
|
* @param {String | number | ArrayBuffer | Date} item
|
|
138
139
|
* @return {Promise<number>} Returns the generated key
|
|
139
140
|
*/
|
|
140
|
-
/* istanbul ignore next */
|
|
141
141
|
const addAutoKey = (store, item) =>
|
|
142
142
|
rtop(store.add(item));
|
|
143
143
|
|
|
144
|
+
/* istanbul ignore next */
|
|
144
145
|
/**
|
|
145
146
|
* @param {IDBObjectStore} store
|
|
146
147
|
* @param {IDBKeyRange} [range]
|
|
147
148
|
* @return {Promise<Array<any>>}
|
|
148
149
|
*/
|
|
149
|
-
/* istanbul ignore next */
|
|
150
150
|
const getAll = (store, range) =>
|
|
151
151
|
rtop(store.getAll(range));
|
|
152
152
|
|
|
153
|
+
/* istanbul ignore next */
|
|
153
154
|
/**
|
|
154
155
|
* @param {IDBObjectStore} store
|
|
155
156
|
* @param {IDBKeyRange} [range]
|
|
156
157
|
* @return {Promise<Array<any>>}
|
|
157
158
|
*/
|
|
158
|
-
/* istanbul ignore next */
|
|
159
159
|
const getAllKeys = (store, range) =>
|
|
160
160
|
rtop(store.getAllKeys(range));
|
|
161
161
|
|
|
@@ -178,15 +178,17 @@ const queryFirst = (store, query, direction) => {
|
|
|
178
178
|
|
|
179
179
|
/**
|
|
180
180
|
* @param {IDBObjectStore} store
|
|
181
|
+
* @param {IDBKeyRange?} [range]
|
|
181
182
|
* @return {Promise<any>}
|
|
182
183
|
*/
|
|
183
|
-
const getLastKey = store => queryFirst(store,
|
|
184
|
+
const getLastKey = (store, range = null) => queryFirst(store, range, 'prev');
|
|
184
185
|
|
|
185
186
|
/**
|
|
186
187
|
* @param {IDBObjectStore} store
|
|
188
|
+
* @param {IDBKeyRange?} [range]
|
|
187
189
|
* @return {Promise<any>}
|
|
188
190
|
*/
|
|
189
|
-
const getFirstKey = store => queryFirst(store,
|
|
191
|
+
const getFirstKey = (store, range = null) => queryFirst(store, range, 'next');
|
|
190
192
|
|
|
191
193
|
/**
|
|
192
194
|
* @typedef KeyValuePair
|
|
@@ -195,22 +197,22 @@ const getFirstKey = store => queryFirst(store, null, 'prev');
|
|
|
195
197
|
* @property {any} v Value
|
|
196
198
|
*/
|
|
197
199
|
|
|
200
|
+
/* istanbul ignore next */
|
|
198
201
|
/**
|
|
199
202
|
* @param {IDBObjectStore} store
|
|
200
203
|
* @param {IDBKeyRange} [range]
|
|
201
204
|
* @return {Promise<Array<KeyValuePair>>}
|
|
202
205
|
*/
|
|
203
|
-
/* istanbul ignore next */
|
|
204
206
|
const getAllKeysValues = (store, range) =>
|
|
205
207
|
// @ts-ignore
|
|
206
208
|
promise.all([getAllKeys(store, range), getAll(store, range)]).then(([ks, vs]) => ks.map((k, i) => ({ k, v: vs[i] })));
|
|
207
209
|
|
|
210
|
+
/* istanbul ignore next */
|
|
208
211
|
/**
|
|
209
212
|
* @param {any} request
|
|
210
213
|
* @param {function(IDBCursorWithValue):void|boolean} f
|
|
211
214
|
* @return {Promise<void>}
|
|
212
215
|
*/
|
|
213
|
-
/* istanbul ignore next */
|
|
214
216
|
const iterateOnRequest = (request, f) => promise.create((resolve, reject) => {
|
|
215
217
|
/* istanbul ignore next */
|
|
216
218
|
request.onerror = reject;
|
|
@@ -226,6 +228,7 @@ const iterateOnRequest = (request, f) => promise.create((resolve, reject) => {
|
|
|
226
228
|
};
|
|
227
229
|
});
|
|
228
230
|
|
|
231
|
+
/* istanbul ignore next */
|
|
229
232
|
/**
|
|
230
233
|
* Iterate on keys and values
|
|
231
234
|
* @param {IDBObjectStore} store
|
|
@@ -233,10 +236,10 @@ const iterateOnRequest = (request, f) => promise.create((resolve, reject) => {
|
|
|
233
236
|
* @param {function(any,any):void|boolean} f Callback that receives (value, key)
|
|
234
237
|
* @param {'next'|'prev'|'nextunique'|'prevunique'} direction
|
|
235
238
|
*/
|
|
236
|
-
/* istanbul ignore next */
|
|
237
239
|
const iterate = (store, keyrange, f, direction = 'next') =>
|
|
238
240
|
iterateOnRequest(store.openCursor(keyrange, direction), cursor => f(cursor.value, cursor.key));
|
|
239
241
|
|
|
242
|
+
/* istanbul ignore next */
|
|
240
243
|
/**
|
|
241
244
|
* Iterate on the keys (no values)
|
|
242
245
|
*
|
|
@@ -245,40 +248,39 @@ const iterate = (store, keyrange, f, direction = 'next') =>
|
|
|
245
248
|
* @param {function(any):void|boolean} f callback that receives the key
|
|
246
249
|
* @param {'next'|'prev'|'nextunique'|'prevunique'} direction
|
|
247
250
|
*/
|
|
248
|
-
/* istanbul ignore next */
|
|
249
251
|
const iterateKeys = (store, keyrange, f, direction = 'next') =>
|
|
250
252
|
iterateOnRequest(store.openKeyCursor(keyrange, direction), cursor => f(cursor.key));
|
|
251
253
|
|
|
254
|
+
/* istanbul ignore next */
|
|
252
255
|
/**
|
|
253
256
|
* Open store from transaction
|
|
254
257
|
* @param {IDBTransaction} t
|
|
255
258
|
* @param {String} store
|
|
256
259
|
* @returns {IDBObjectStore}
|
|
257
260
|
*/
|
|
258
|
-
/* istanbul ignore next */
|
|
259
261
|
const getStore = (t, store) => t.objectStore(store);
|
|
260
262
|
|
|
263
|
+
/* istanbul ignore next */
|
|
261
264
|
/**
|
|
262
265
|
* @param {any} lower
|
|
263
266
|
* @param {any} upper
|
|
264
267
|
* @param {boolean} lowerOpen
|
|
265
268
|
* @param {boolean} upperOpen
|
|
266
269
|
*/
|
|
267
|
-
/* istanbul ignore next */
|
|
268
270
|
const createIDBKeyRangeBound = (lower, upper, lowerOpen, upperOpen) => IDBKeyRange.bound(lower, upper, lowerOpen, upperOpen);
|
|
269
271
|
|
|
272
|
+
/* istanbul ignore next */
|
|
270
273
|
/**
|
|
271
274
|
* @param {any} upper
|
|
272
275
|
* @param {boolean} upperOpen
|
|
273
276
|
*/
|
|
274
|
-
/* istanbul ignore next */
|
|
275
277
|
const createIDBKeyRangeUpperBound = (upper, upperOpen) => IDBKeyRange.upperBound(upper, upperOpen);
|
|
276
278
|
|
|
279
|
+
/* istanbul ignore next */
|
|
277
280
|
/**
|
|
278
281
|
* @param {any} lower
|
|
279
282
|
* @param {boolean} lowerOpen
|
|
280
283
|
*/
|
|
281
|
-
/* istanbul ignore next */
|
|
282
284
|
const createIDBKeyRangeLowerBound = (lower, lowerOpen) => IDBKeyRange.lowerBound(lower, lowerOpen);
|
|
283
285
|
|
|
284
286
|
var indexeddb = /*#__PURE__*/Object.freeze({
|
|
@@ -332,4 +334,4 @@ exports.put = put;
|
|
|
332
334
|
exports.queryFirst = queryFirst;
|
|
333
335
|
exports.rtop = rtop;
|
|
334
336
|
exports.transact = transact;
|
|
335
|
-
//# sourceMappingURL=indexeddb-
|
|
337
|
+
//# sourceMappingURL=indexeddb-5b4b0e13.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexeddb-5b4b0e13.cjs","sources":["../indexeddb.js"],"sourcesContent":["/* eslint-env browser */\n\n/**\n * Helpers to work with IndexedDB.\n *\n * @module indexeddb\n */\n\nimport * as promise from './promise.js'\nimport * as error from './error.js'\n\n/* istanbul ignore next */\n/**\n * IDB Request to Promise transformer\n *\n * @param {IDBRequest} request\n * @return {Promise<any>}\n */\nexport const rtop = request => promise.create((resolve, reject) => {\n /* istanbul ignore next */\n // @ts-ignore\n request.onerror = event => reject(new Error(event.target.error))\n /* istanbul ignore next */\n // @ts-ignore\n request.onblocked = () => location.reload()\n // @ts-ignore\n request.onsuccess = event => resolve(event.target.result)\n})\n\n/* istanbul ignore next */\n/**\n * @param {string} name\n * @param {function(IDBDatabase):any} initDB Called when the database is first created\n * @return {Promise<IDBDatabase>}\n */\nexport const openDB = (name, initDB) => promise.create((resolve, reject) => {\n const request = indexedDB.open(name)\n /**\n * @param {any} event\n */\n request.onupgradeneeded = event => initDB(event.target.result)\n /* istanbul ignore next */\n /**\n * @param {any} event\n */\n request.onerror = event => reject(error.create(event.target.error))\n /* istanbul ignore next */\n request.onblocked = () => location.reload()\n /**\n * @param {any} event\n */\n request.onsuccess = event => {\n /**\n * @type {IDBDatabase}\n */\n const db = event.target.result\n /* istanbul ignore next */\n db.onversionchange = () => { db.close() }\n /* istanbul ignore if */\n if (typeof addEventListener !== 'undefined') {\n addEventListener('unload', () => db.close())\n }\n resolve(db)\n }\n})\n\n/* istanbul ignore next */\n/**\n * @param {string} name\n */\nexport const deleteDB = name => rtop(indexedDB.deleteDatabase(name))\n\n/* istanbul ignore next */\n/**\n * @param {IDBDatabase} db\n * @param {Array<Array<string>|Array<string|IDBObjectStoreParameters|undefined>>} definitions\n */\nexport const createStores = (db, definitions) => definitions.forEach(d =>\n // @ts-ignore\n db.createObjectStore.apply(db, d)\n)\n\n/**\n * @param {IDBDatabase} db\n * @param {Array<string>} stores\n * @param {\"readwrite\"|\"readonly\"} [access]\n * @return {Array<IDBObjectStore>}\n */\nexport const transact = (db, stores, access = 'readwrite') => {\n const transaction = db.transaction(stores, access)\n return stores.map(store => getStore(transaction, store))\n}\n\n/* istanbul ignore next */\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange} [range]\n * @return {Promise<number>}\n */\nexport const count = (store, range) =>\n rtop(store.count(range))\n\n/* istanbul ignore next */\n/**\n * @param {IDBObjectStore} store\n * @param {String | number | ArrayBuffer | Date | Array<any> } key\n * @return {Promise<String | number | ArrayBuffer | Date | Array<any>>}\n */\nexport const get = (store, key) =>\n rtop(store.get(key))\n\n/* istanbul ignore next */\n/**\n * @param {IDBObjectStore} store\n * @param {String | number | ArrayBuffer | Date | IDBKeyRange | Array<any> } key\n */\nexport const del = (store, key) =>\n rtop(store.delete(key))\n\n/* istanbul ignore next */\n/**\n * @param {IDBObjectStore} store\n * @param {String | number | ArrayBuffer | Date | boolean} item\n * @param {String | number | ArrayBuffer | Date | Array<any>} [key]\n */\nexport const put = (store, item, key) =>\n rtop(store.put(item, key))\n\n/* istanbul ignore next */\n/**\n * @param {IDBObjectStore} store\n * @param {String | number | ArrayBuffer | Date | boolean} item\n * @param {String | number | ArrayBuffer | Date | Array<any>} key\n * @return {Promise<any>}\n */\nexport const add = (store, item, key) =>\n rtop(store.add(item, key))\n\n/* istanbul ignore next */\n/**\n * @param {IDBObjectStore} store\n * @param {String | number | ArrayBuffer | Date} item\n * @return {Promise<number>} Returns the generated key\n */\nexport const addAutoKey = (store, item) =>\n rtop(store.add(item))\n\n/* istanbul ignore next */\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange} [range]\n * @return {Promise<Array<any>>}\n */\nexport const getAll = (store, range) =>\n rtop(store.getAll(range))\n\n/* istanbul ignore next */\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange} [range]\n * @return {Promise<Array<any>>}\n */\nexport const getAllKeys = (store, range) =>\n rtop(store.getAllKeys(range))\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange|null} query\n * @param {'next'|'prev'|'nextunique'|'prevunique'} direction\n * @return {Promise<any>}\n */\nexport const queryFirst = (store, query, direction) => {\n /**\n * @type {any}\n */\n let first = null\n return iterateKeys(store, query, key => {\n first = key\n return false\n }, direction).then(() => first)\n}\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange?} [range]\n * @return {Promise<any>}\n */\nexport const getLastKey = (store, range = null) => queryFirst(store, range, 'prev')\n\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange?} [range]\n * @return {Promise<any>}\n */\nexport const getFirstKey = (store, range = null) => queryFirst(store, range, 'next')\n\n/**\n * @typedef KeyValuePair\n * @type {Object}\n * @property {any} k key\n * @property {any} v Value\n */\n\n/* istanbul ignore next */\n/**\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange} [range]\n * @return {Promise<Array<KeyValuePair>>}\n */\nexport const getAllKeysValues = (store, range) =>\n // @ts-ignore\n promise.all([getAllKeys(store, range), getAll(store, range)]).then(([ks, vs]) => ks.map((k, i) => ({ k, v: vs[i] })))\n\n/* istanbul ignore next */\n/**\n * @param {any} request\n * @param {function(IDBCursorWithValue):void|boolean} f\n * @return {Promise<void>}\n */\nconst iterateOnRequest = (request, f) => promise.create((resolve, reject) => {\n /* istanbul ignore next */\n request.onerror = reject\n /**\n * @param {any} event\n */\n request.onsuccess = event => {\n const cursor = event.target.result\n if (cursor === null || f(cursor) === false) {\n return resolve()\n }\n cursor.continue()\n }\n})\n\n/* istanbul ignore next */\n/**\n * Iterate on keys and values\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange|null} keyrange\n * @param {function(any,any):void|boolean} f Callback that receives (value, key)\n * @param {'next'|'prev'|'nextunique'|'prevunique'} direction\n */\nexport const iterate = (store, keyrange, f, direction = 'next') =>\n iterateOnRequest(store.openCursor(keyrange, direction), cursor => f(cursor.value, cursor.key))\n\n/* istanbul ignore next */\n/**\n * Iterate on the keys (no values)\n *\n * @param {IDBObjectStore} store\n * @param {IDBKeyRange|null} keyrange\n * @param {function(any):void|boolean} f callback that receives the key\n * @param {'next'|'prev'|'nextunique'|'prevunique'} direction\n */\nexport const iterateKeys = (store, keyrange, f, direction = 'next') =>\n iterateOnRequest(store.openKeyCursor(keyrange, direction), cursor => f(cursor.key))\n\n/* istanbul ignore next */\n/**\n * Open store from transaction\n * @param {IDBTransaction} t\n * @param {String} store\n * @returns {IDBObjectStore}\n */\nexport const getStore = (t, store) => t.objectStore(store)\n\n/* istanbul ignore next */\n/**\n * @param {any} lower\n * @param {any} upper\n * @param {boolean} lowerOpen\n * @param {boolean} upperOpen\n */\nexport const createIDBKeyRangeBound = (lower, upper, lowerOpen, upperOpen) => IDBKeyRange.bound(lower, upper, lowerOpen, upperOpen)\n\n/* istanbul ignore next */\n/**\n * @param {any} upper\n * @param {boolean} upperOpen\n */\nexport const createIDBKeyRangeUpperBound = (upper, upperOpen) => IDBKeyRange.upperBound(upper, upperOpen)\n\n/* istanbul ignore next */\n/**\n * @param {any} lower\n * @param {boolean} lowerOpen\n */\nexport const createIDBKeyRangeLowerBound = (lower, lowerOpen) => IDBKeyRange.lowerBound(lower, lowerOpen)\n"],"names":["promise.create","error.create","promise.all"],"mappings":"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"}
|
package/dist/indexeddb.cjs
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
require('./promise-
|
|
6
|
-
require('./error-
|
|
7
|
-
var indexeddb = require('./indexeddb-
|
|
5
|
+
require('./promise-1a9fe712.cjs');
|
|
6
|
+
require('./error-873c9cbf.cjs');
|
|
7
|
+
var indexeddb = require('./indexeddb-5b4b0e13.cjs');
|
|
8
8
|
require('./time-e00067da.cjs');
|
|
9
9
|
require('./metric.cjs');
|
|
10
10
|
require('./math-08e068f9.cjs');
|
package/dist/indexeddb.d.ts
CHANGED
|
@@ -12,8 +12,8 @@ export function addAutoKey(store: IDBObjectStore, item: string | number | ArrayB
|
|
|
12
12
|
export function getAll(store: IDBObjectStore, range?: IDBKeyRange | undefined): Promise<Array<any>>;
|
|
13
13
|
export function getAllKeys(store: IDBObjectStore, range?: IDBKeyRange | undefined): Promise<Array<any>>;
|
|
14
14
|
export function queryFirst(store: IDBObjectStore, query: IDBKeyRange | null, direction: 'next' | 'prev' | 'nextunique' | 'prevunique'): Promise<any>;
|
|
15
|
-
export function getLastKey(store: IDBObjectStore): Promise<any>;
|
|
16
|
-
export function getFirstKey(store: IDBObjectStore): Promise<any>;
|
|
15
|
+
export function getLastKey(store: IDBObjectStore, range?: IDBKeyRange | null | undefined): Promise<any>;
|
|
16
|
+
export function getFirstKey(store: IDBObjectStore, range?: IDBKeyRange | null | undefined): Promise<any>;
|
|
17
17
|
export function getAllKeysValues(store: IDBObjectStore, range?: IDBKeyRange | undefined): Promise<Array<KeyValuePair>>;
|
|
18
18
|
export function iterate(store: IDBObjectStore, keyrange: IDBKeyRange | null, f: (arg0: any, arg1: any) => void | boolean, direction?: 'next' | 'prev' | 'nextunique' | 'prevunique'): Promise<void>;
|
|
19
19
|
export function iterateKeys(store: IDBObjectStore, keyrange: IDBKeyRange | null, f: (arg0: any) => void | boolean, direction?: 'next' | 'prev' | 'nextunique' | 'prevunique'): Promise<void>;
|
package/dist/indexeddb.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexeddb.d.ts","sourceRoot":"","sources":["../indexeddb.js"],"names":[],"mappings":"AAkBO,
|
|
1
|
+
{"version":3,"file":"indexeddb.d.ts","sourceRoot":"","sources":["../indexeddb.js"],"names":[],"mappings":"AAkBO,8BAHI,UAAU,GACT,QAAQ,GAAG,CAAC,CAWtB;AAQK,6BAJI,MAAM,iBACG,WAAW,KAAE,GAAG,GACxB,QAAQ,WAAW,CAAC,CA+B9B;AAMK,+BAFI,MAAM,gBAEmD;AAO7D,iCAHI,WAAW,eACX,MAAM,MAAM,MAAM,CAAC,GAAC,MAAM,MAAM,GAAC,wBAAwB,GAAC,SAAS,CAAC,CAAC,QAK/E;AAQM,6BALI,WAAW,UACX,MAAM,MAAM,CAAC,kDAEZ,MAAM,cAAc,CAAC,CAKhC;AAQM,6BAJI,cAAc,oCAEb,QAAQ,MAAM,CAAC,CAGD;AAQnB,2BAJI,cAAc,OACd,SAAS,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,CAAC,GAChD,QAAQ,SAAS,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,CAGhD;AAOf,2BAHI,cAAc,OACd,SAAS,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,WAAW,GAAG,MAAM,GAAG,CAAC,gBAGjD;AAQlB,2BAJI,cAAc,QACd,SAAS,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,OAAO,gFAI7B;AASrB,2BALI,cAAc,QACd,SAAS,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,OAAO,OAC9C,SAAS,MAAM,GAAG,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,CAAC,GAChD,QAAQ,GAAG,CAAC,CAGI;AAQrB,kCAJI,cAAc,QACd,SAAS,MAAM,GAAG,WAAW,GAAG,IAAI,GACnC,QAAQ,MAAM,CAAC,CAGJ;AAQhB,8BAJI,cAAc,oCAEb,QAAQ,MAAM,GAAG,CAAC,CAAC,CAGJ;AAQpB,kCAJI,cAAc,oCAEb,QAAQ,MAAM,GAAG,CAAC,CAAC,CAGA;AAQxB,kCALI,cAAc,SACd,WAAW,GAAC,IAAI,aAChB,MAAM,GAAC,MAAM,GAAC,YAAY,GAAC,YAAY,GACtC,QAAQ,GAAG,CAAC,CAWvB;AAOM,kCAJI,cAAc,2CAEb,QAAQ,GAAG,CAAC,CAE2D;AAO5E,mCAJI,cAAc,2CAEb,QAAQ,GAAG,CAAC,CAE4D;AAe7E,wCAJI,cAAc,oCAEb,QAAQ,MAAM,YAAY,CAAC,CAAC,CAI+E;AA+BhH,+BALI,cAAc,YACd,WAAW,GAAC,IAAI,YACP,GAAG,QAAC,GAAG,KAAE,IAAI,GAAC,OAAO,cAC9B,MAAM,GAAC,MAAM,GAAC,YAAY,GAAC,YAAY,iBAG8C;AAWzF,mCALI,cAAc,YACd,WAAW,GAAC,IAAI,YACP,GAAG,KAAE,IAAI,GAAC,OAAO,cAC1B,MAAM,GAAC,MAAM,GAAC,YAAY,GAAC,YAAY,iBAGmC;AAS9E,4BAJI,cAAc,kBAEZ,cAAc,CAE+B;AASnD,8CALI,GAAG,SACH,GAAG,aACH,OAAO,aACP,OAAO,eAEiH;AAO5H,mDAHI,GAAG,aACH,OAAO,eAEuF;AAOlG,mDAHI,GAAG,aACH,OAAO,eAEuF;;;;;OAxF3F,GAAG;;;;OACH,GAAG"}
|
package/dist/isomorphic.cjs
CHANGED
|
@@ -8,14 +8,10 @@ var isomorphic_js = require('isomorphic.js');
|
|
|
8
8
|
|
|
9
9
|
Object.defineProperty(exports, 'cryptoRandomBuffer', {
|
|
10
10
|
enumerable: true,
|
|
11
|
-
get: function () {
|
|
12
|
-
return isomorphic_js.cryptoRandomBuffer;
|
|
13
|
-
}
|
|
11
|
+
get: function () { return isomorphic_js.cryptoRandomBuffer; }
|
|
14
12
|
});
|
|
15
13
|
Object.defineProperty(exports, 'performance', {
|
|
16
14
|
enumerable: true,
|
|
17
|
-
get: function () {
|
|
18
|
-
return isomorphic_js.performance;
|
|
19
|
-
}
|
|
15
|
+
get: function () { return isomorphic_js.performance; }
|
|
20
16
|
});
|
|
21
17
|
//# sourceMappingURL=isomorphic.cjs.map
|
package/dist/isomorphic.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isomorphic.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"isomorphic.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
|
package/dist/list.cjs
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var error = require('./error-873c9cbf.cjs');
|
|
6
|
+
|
|
7
|
+
class ListNode {
|
|
8
|
+
constructor () {
|
|
9
|
+
/**
|
|
10
|
+
* @type {this|null}
|
|
11
|
+
*/
|
|
12
|
+
this.next = null;
|
|
13
|
+
/**
|
|
14
|
+
* @type {this|null}
|
|
15
|
+
*/
|
|
16
|
+
this.prev = null;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @template {ListNode} N
|
|
22
|
+
*/
|
|
23
|
+
class List {
|
|
24
|
+
constructor () {
|
|
25
|
+
/**
|
|
26
|
+
* @type {N | null}
|
|
27
|
+
*/
|
|
28
|
+
this.start = null;
|
|
29
|
+
/**
|
|
30
|
+
* @type {N | null}
|
|
31
|
+
*/
|
|
32
|
+
this.end = null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @note The queue implementation is experimental and unfinished.
|
|
38
|
+
* Don't use this in production yet.
|
|
39
|
+
*
|
|
40
|
+
* @template {ListNode} N
|
|
41
|
+
*
|
|
42
|
+
* @return {List<N>}
|
|
43
|
+
*/
|
|
44
|
+
const create = () => new List();
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @template {ListNode} N
|
|
48
|
+
*
|
|
49
|
+
* @param {List<N>} queue
|
|
50
|
+
*/
|
|
51
|
+
const isEmpty = queue => queue.start === null;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Remove a single node from the queue. Only works with Queues that operate on Doubly-linked lists of nodes.
|
|
55
|
+
*
|
|
56
|
+
* @template {ListNode} N
|
|
57
|
+
*
|
|
58
|
+
* @param {List<N>} queue
|
|
59
|
+
* @param {N} node
|
|
60
|
+
*/
|
|
61
|
+
const removeNode = (queue, node) => {
|
|
62
|
+
const prev = node.prev;
|
|
63
|
+
const next = node.next;
|
|
64
|
+
if (prev) {
|
|
65
|
+
prev.next = next;
|
|
66
|
+
} else {
|
|
67
|
+
queue.start = next;
|
|
68
|
+
}
|
|
69
|
+
if (next) {
|
|
70
|
+
next.prev = prev;
|
|
71
|
+
} else {
|
|
72
|
+
queue.end = prev;
|
|
73
|
+
}
|
|
74
|
+
return node
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* @template {ListNode} N
|
|
79
|
+
*
|
|
80
|
+
* @param {List<N>} queue
|
|
81
|
+
* @param {N| null} left
|
|
82
|
+
* @param {N| null} right
|
|
83
|
+
* @param {N} node
|
|
84
|
+
*/
|
|
85
|
+
const insertBetween = (queue, left, right, node) => {
|
|
86
|
+
/* istanbul ignore if */
|
|
87
|
+
if (left != null && left.next !== right) {
|
|
88
|
+
throw error.unexpectedCase()
|
|
89
|
+
}
|
|
90
|
+
if (left) {
|
|
91
|
+
left.next = node;
|
|
92
|
+
} else {
|
|
93
|
+
queue.start = node;
|
|
94
|
+
}
|
|
95
|
+
if (right) {
|
|
96
|
+
right.prev = node;
|
|
97
|
+
} else {
|
|
98
|
+
queue.end = node;
|
|
99
|
+
}
|
|
100
|
+
node.prev = left;
|
|
101
|
+
node.next = right;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* @template {ListNode} N
|
|
106
|
+
*
|
|
107
|
+
* @param {List<N>} queue
|
|
108
|
+
* @param {N} n
|
|
109
|
+
*/
|
|
110
|
+
const pushEnd = (queue, n) =>
|
|
111
|
+
insertBetween(queue, queue.end, null, n);
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* @template {ListNode} N
|
|
115
|
+
*
|
|
116
|
+
* @param {List<N>} queue
|
|
117
|
+
* @param {N} n
|
|
118
|
+
*/
|
|
119
|
+
const pushFront = (queue, n) =>
|
|
120
|
+
insertBetween(queue, null, queue.start, n);
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* @template {ListNode} N
|
|
124
|
+
*
|
|
125
|
+
* @param {List<N>} list
|
|
126
|
+
* @return {N| null}
|
|
127
|
+
*/
|
|
128
|
+
const popFront = list =>
|
|
129
|
+
list.start ? removeNode(list, list.start) : null;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* @template {ListNode} N
|
|
133
|
+
*
|
|
134
|
+
* @param {List<N>} list
|
|
135
|
+
* @return {N| null}
|
|
136
|
+
*/
|
|
137
|
+
const popEnd = list =>
|
|
138
|
+
list.end ? removeNode(list, list.end) : null;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* @template {ListNode} N
|
|
142
|
+
* @template M
|
|
143
|
+
*
|
|
144
|
+
* @param {List<N>} list
|
|
145
|
+
* @param {function(N):M} f
|
|
146
|
+
* @return {Array<M>}
|
|
147
|
+
*/
|
|
148
|
+
const map = (list, f) => {
|
|
149
|
+
/**
|
|
150
|
+
* @type {Array<M>}
|
|
151
|
+
*/
|
|
152
|
+
const arr = [];
|
|
153
|
+
let n = list.start;
|
|
154
|
+
while (n) {
|
|
155
|
+
arr.push(f(n));
|
|
156
|
+
n = n.next;
|
|
157
|
+
}
|
|
158
|
+
return arr
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
exports.List = List;
|
|
162
|
+
exports.ListNode = ListNode;
|
|
163
|
+
exports.create = create;
|
|
164
|
+
exports.insertBetween = insertBetween;
|
|
165
|
+
exports.isEmpty = isEmpty;
|
|
166
|
+
exports.map = map;
|
|
167
|
+
exports.popEnd = popEnd;
|
|
168
|
+
exports.popFront = popFront;
|
|
169
|
+
exports.pushEnd = pushEnd;
|
|
170
|
+
exports.pushFront = pushFront;
|
|
171
|
+
exports.removeNode = removeNode;
|
|
172
|
+
//# sourceMappingURL=list.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.cjs","sources":["../list.js"],"sourcesContent":["import * as error from './error.js'\n\nexport class ListNode {\n constructor () {\n /**\n * @type {this|null}\n */\n this.next = null\n /**\n * @type {this|null}\n */\n this.prev = null\n }\n}\n\n/**\n * @template {ListNode} N\n */\nexport class List {\n constructor () {\n /**\n * @type {N | null}\n */\n this.start = null\n /**\n * @type {N | null}\n */\n this.end = null\n }\n}\n\n/**\n * @note The queue implementation is experimental and unfinished.\n * Don't use this in production yet.\n *\n * @template {ListNode} N\n *\n * @return {List<N>}\n */\nexport const create = () => new List()\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n */\nexport const isEmpty = queue => queue.start === null\n\n/**\n * Remove a single node from the queue. Only works with Queues that operate on Doubly-linked lists of nodes.\n *\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N} node\n */\nexport const removeNode = (queue, node) => {\n const prev = node.prev\n const next = node.next\n if (prev) {\n prev.next = next\n } else {\n queue.start = next\n }\n if (next) {\n next.prev = prev\n } else {\n queue.end = prev\n }\n return node\n}\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N| null} left\n * @param {N| null} right\n * @param {N} node\n */\nexport const insertBetween = (queue, left, right, node) => {\n /* istanbul ignore if */\n if (left != null && left.next !== right) {\n throw error.unexpectedCase()\n }\n if (left) {\n left.next = node\n } else {\n queue.start = node\n }\n if (right) {\n right.prev = node\n } else {\n queue.end = node\n }\n node.prev = left\n node.next = right\n}\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N} n\n */\nexport const pushEnd = (queue, n) =>\n insertBetween(queue, queue.end, null, n)\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} queue\n * @param {N} n\n */\nexport const pushFront = (queue, n) =>\n insertBetween(queue, null, queue.start, n)\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} list\n * @return {N| null}\n */\nexport const popFront = list =>\n list.start ? removeNode(list, list.start) : null\n\n/**\n * @template {ListNode} N\n *\n * @param {List<N>} list\n * @return {N| null}\n */\nexport const popEnd = list =>\n list.end ? removeNode(list, list.end) : null\n\n/**\n * @template {ListNode} N\n * @template M\n *\n * @param {List<N>} list\n * @param {function(N):M} f\n * @return {Array<M>}\n */\nexport const map = (list, f) => {\n /**\n * @type {Array<M>}\n */\n const arr = []\n let n = list.start\n while (n) {\n arr.push(f(n))\n n = n.next\n }\n return arr\n}\n"],"names":["error.unexpectedCase"],"mappings":"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"}
|
package/dist/list.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export class ListNode {
|
|
2
|
+
/**
|
|
3
|
+
* @type {this|null}
|
|
4
|
+
*/
|
|
5
|
+
next: ListNode | null;
|
|
6
|
+
/**
|
|
7
|
+
* @type {this|null}
|
|
8
|
+
*/
|
|
9
|
+
prev: ListNode | null;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* @template {ListNode} N
|
|
13
|
+
*/
|
|
14
|
+
export class List<N extends ListNode> {
|
|
15
|
+
/**
|
|
16
|
+
* @type {N | null}
|
|
17
|
+
*/
|
|
18
|
+
start: N | null;
|
|
19
|
+
/**
|
|
20
|
+
* @type {N | null}
|
|
21
|
+
*/
|
|
22
|
+
end: N | null;
|
|
23
|
+
}
|
|
24
|
+
export function create<N extends ListNode>(): List<N>;
|
|
25
|
+
export function isEmpty<N extends ListNode>(queue: List<N>): boolean;
|
|
26
|
+
export function removeNode<N extends ListNode>(queue: List<N>, node: N): N;
|
|
27
|
+
export function insertBetween<N extends ListNode>(queue: List<N>, left: N | null, right: N | null, node: N): void;
|
|
28
|
+
export function pushEnd<N extends ListNode>(queue: List<N>, n: N): void;
|
|
29
|
+
export function pushFront<N extends ListNode>(queue: List<N>, n: N): void;
|
|
30
|
+
export function popFront<N extends ListNode>(list: List<N>): N | null;
|
|
31
|
+
export function popEnd<N extends ListNode>(list: List<N>): N | null;
|
|
32
|
+
export function map<N extends ListNode, M>(list: List<N>, f: (arg0: N) => M): M[];
|
|
33
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../list.js"],"names":[],"mappings":"AAEA;IAEI;;OAEG;IACH,sBAAgB;IAChB;;OAEG;IACH,sBAAgB;CAEnB;AAED;;GAEG;AACH;IAEI;;OAEG;IACH,OAFU,CAAC,GAAG,IAAI,CAED;IACjB;;OAEG;IACH,KAFU,CAAC,GAAG,IAAI,CAEH;CAElB;AAUM,sDAA+B;AAO/B,qEAA6C;AAU7C,2EAcN;AAUM,kHAiBN;AAQM,wEACmC;AAQnC,0EACqC;AAQrC,sEAC2C;AAQ3C,oEACuC;AAUvC,kFAWN"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.test.d.ts","sourceRoot":"","sources":["../list.test.js"],"names":[],"mappings":"AAgBO,uCAFI,EAAE,QAAQ,QA8BpB;AAKM,qCAFI,EAAE,QAAQ,QAkBpB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var environment = require('./environment-
|
|
3
|
+
var environment = require('./environment-60b83194.cjs');
|
|
4
4
|
var symbol = require('./symbol-c5caa724.cjs');
|
|
5
5
|
var pair = require('./pair-ab022bc3.cjs');
|
|
6
6
|
var dom = require('./dom-58958c04.cjs');
|
|
@@ -459,4 +459,4 @@ exports.printImg = printImg;
|
|
|
459
459
|
exports.printImgBase64 = printImgBase64;
|
|
460
460
|
exports.vconsoles = vconsoles;
|
|
461
461
|
exports.warn = warn;
|
|
462
|
-
//# sourceMappingURL=logging-
|
|
462
|
+
//# sourceMappingURL=logging-f6d41f58.cjs.map
|