lib0 0.2.93 → 0.2.95

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/coverage/tmp/coverage-17427-1722257176008-0.json +1 -0
  2. package/dist/{broadcastchannel-80813eea.cjs → broadcastchannel-8b08f847.cjs} +2 -2
  3. package/dist/{broadcastchannel-80813eea.cjs.map → broadcastchannel-8b08f847.cjs.map} +1 -1
  4. package/dist/broadcastchannel.cjs +5 -5
  5. package/dist/{buffer-f11b8d4d.cjs → buffer-757ffcaa.cjs} +2 -2
  6. package/dist/{buffer-f11b8d4d.cjs.map → buffer-757ffcaa.cjs.map} +1 -1
  7. package/dist/buffer.cjs +4 -4
  8. package/dist/cache.cjs +2 -2
  9. package/dist/component.cjs +3 -3
  10. package/dist/{diff-fbaa426b.cjs → diff-38d8f45b.cjs} +2 -2
  11. package/dist/{diff-fbaa426b.cjs.map → diff-38d8f45b.cjs.map} +1 -1
  12. package/dist/diff.cjs +3 -3
  13. package/dist/{environment-f4d7c3e5.cjs → environment-99bbcd58.cjs} +16 -5
  14. package/dist/environment-99bbcd58.cjs.map +1 -0
  15. package/dist/environment.cjs +3 -3
  16. package/dist/environment.d.ts +7 -0
  17. package/dist/environment.d.ts.map +1 -1
  18. package/dist/{function-314fdc56.cjs → function-18d343cf.cjs} +2 -2
  19. package/dist/{function-314fdc56.cjs.map → function-18d343cf.cjs.map} +1 -1
  20. package/dist/function.cjs +2 -2
  21. package/dist/index.cjs +9 -9
  22. package/dist/{indexeddb-8d495848.cjs → indexeddb-0cbb4d6f.cjs} +2 -2
  23. package/dist/{indexeddb-8d495848.cjs.map → indexeddb-0cbb4d6f.cjs.map} +1 -1
  24. package/dist/indexeddb.cjs +2 -2
  25. package/dist/indexeddbV2.cjs +287 -0
  26. package/dist/indexeddbV2.cjs.map +1 -0
  27. package/dist/indexeddbV2.d.ts +35 -0
  28. package/dist/indexeddbV2.d.ts.map +1 -0
  29. package/dist/indexeddbV2.test.d.ts +3 -0
  30. package/dist/indexeddbV2.test.d.ts.map +1 -0
  31. package/dist/jwt.cjs +4 -4
  32. package/dist/list.cjs +2 -2
  33. package/dist/logging.cjs +3 -3
  34. package/dist/logging.common.cjs +22 -6
  35. package/dist/logging.common.cjs.map +1 -1
  36. package/dist/logging.common.d.ts +1 -1
  37. package/dist/logging.common.d.ts.map +1 -1
  38. package/dist/logging.node.cjs +3 -3
  39. package/dist/{object-fecf6a7b.cjs → object-b0539a4e.cjs} +11 -2
  40. package/dist/object-b0539a4e.cjs.map +1 -0
  41. package/dist/object.cjs +2 -1
  42. package/dist/object.cjs.map +1 -1
  43. package/dist/object.d.ts +3 -0
  44. package/dist/object.d.ts.map +1 -1
  45. package/dist/performance.node.cjs +2 -2
  46. package/dist/pledge.cjs +307 -0
  47. package/dist/pledge.cjs.map +1 -0
  48. package/dist/pledge.d.ts +68 -0
  49. package/dist/pledge.d.ts.map +1 -0
  50. package/dist/pledge.test.d.ts +6 -0
  51. package/dist/pledge.test.d.ts.map +1 -0
  52. package/dist/{prng-e4f28259.cjs → prng-90743426.cjs} +2 -2
  53. package/dist/{prng-e4f28259.cjs.map → prng-90743426.cjs.map} +1 -1
  54. package/dist/prng.cjs +5 -5
  55. package/dist/{promise-afe9dfc3.cjs → promise-7d13a97c.cjs} +22 -2
  56. package/dist/promise-7d13a97c.cjs.map +1 -0
  57. package/dist/promise.cjs +2 -1
  58. package/dist/promise.cjs.map +1 -1
  59. package/dist/promise.d.ts +1 -0
  60. package/dist/promise.d.ts.map +1 -1
  61. package/dist/promise.test.d.ts.map +1 -1
  62. package/dist/rabin-gf2-polynomial.cjs +4 -4
  63. package/dist/rabin-uncached.cjs +4 -4
  64. package/dist/rabin.cjs +4 -4
  65. package/dist/testing.cjs +7 -7
  66. package/dist/url.cjs +1 -1
  67. package/environment.d.ts +7 -0
  68. package/environment.d.ts.map +1 -1
  69. package/environment.js +14 -3
  70. package/indexeddbV2.d.ts +35 -0
  71. package/indexeddbV2.d.ts.map +1 -0
  72. package/indexeddbV2.js +265 -0
  73. package/indexeddbV2.test.d.ts +3 -0
  74. package/indexeddbV2.test.d.ts.map +1 -0
  75. package/logging.common.d.ts +1 -1
  76. package/logging.common.d.ts.map +1 -1
  77. package/logging.common.js +14 -3
  78. package/object.d.ts +3 -0
  79. package/object.d.ts.map +1 -1
  80. package/object.js +8 -1
  81. package/package.json +1 -1
  82. package/pledge.d.ts +68 -0
  83. package/pledge.d.ts.map +1 -0
  84. package/pledge.js +292 -0
  85. package/pledge.test.d.ts +6 -0
  86. package/pledge.test.d.ts.map +1 -0
  87. package/promise.d.ts +1 -0
  88. package/promise.d.ts.map +1 -1
  89. package/promise.js +19 -1
  90. package/promise.test.d.ts.map +1 -1
  91. package/test.js +4 -0
  92. package/coverage/tmp/coverage-45503-1710701602083-0.json +0 -1
  93. package/dist/environment-f4d7c3e5.cjs.map +0 -1
  94. package/dist/object-fecf6a7b.cjs.map +0 -1
  95. package/dist/promise-afe9dfc3.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../promise.js"],"names":[],"mappings":"AAmBO,oEAHwC,KAAK,KAAE,IAAI,KAAE,GAAG,cAGM;AAM9D,4CAHwB,IAAI,eAAU,KAAK,KAAE,IAAI,KAAE,IAAI,GAClD,QAAQ,IAAI,CAAC,CAEqB;AAE9C;;;;;;GAMG;AACH;;;EAA4C;AAMrC,oDAFK,QAAQ,KAAK,CAAC,CAE4B;AAO/C,6DAA2C;AAO3C,mDAA+C;AAU/C,+BALI,MAAM,eACK,OAAO,4CAEjB,QAAQ,IAAI,CAAC,CAkBvB;AAMK,8BAHI,MAAM,GACL,QAAQ,SAAS,CAAC,CAE0D;AAWjF,6BAHI,GAAG,GACF,OAAO,CAEwE"}
1
+ {"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../promise.js"],"names":[],"mappings":"AAmBO,oEAHwC,KAAK,KAAE,IAAI,KAAE,GAAG,cAGM;AAM9D,4CAHwB,IAAI,eAAU,KAAK,KAAE,IAAI,KAAE,IAAI,GAClD,QAAQ,IAAI,CAAC,CAEqB;AAE9C;;;;;;GAMG;AACH;;;EAA4C;AAMrC,oDAFK,QAAQ,KAAK,CAAC,CAE4B;AAO/C,6DAA2C;AAO3C,mDAA+C;AAW/C,+BALI,MAAM,eACK,OAAO,4CAEjB,QAAQ,IAAI,CAAC,CAkBvB;AAQK,kCALI,MAAI,QAAQ,OAAO,CAAC,GAAC,OAAO,YAC5B,MAAM,uBACN,MAAM,GACL,QAAQ,IAAI,CAAC,CAWxB;AAMM,8BAHI,MAAM,GACL,QAAQ,SAAS,CAAC,CAE2D;AAWlF,6BAHI,GAAG,GACF,OAAO,CAEwE"}
@@ -1 +1 @@
1
- {"version":3,"file":"promise.test.d.ts","sourceRoot":"","sources":["../promise.test.js"],"names":[],"mappings":"AA6BO,uCAFI,EAAE,QAAQ,iBAgBpB;AAKM,mCAFI,EAAE,QAAQ,QAapB;AAKM,iCAFI,EAAE,QAAQ,iBAapB;mBA1EkB,cAAc"}
1
+ {"version":3,"file":"promise.test.d.ts","sourceRoot":"","sources":["../promise.test.js"],"names":[],"mappings":"AA6BO,uCAFI,EAAE,QAAQ,iBAmBpB;AAKM,mCAFI,EAAE,QAAQ,QAapB;AAKM,iCAFI,EAAE,QAAQ,iBAapB;mBA7EkB,cAAc"}
@@ -5,15 +5,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var math = require('./math-08e068f9.cjs');
6
6
  var webcrypto = require('lib0/webcrypto');
7
7
  var array = require('./array-704ca50e.cjs');
8
- var buffer = require('./buffer-f11b8d4d.cjs');
8
+ var buffer = require('./buffer-757ffcaa.cjs');
9
9
  require('./set-0f209abb.cjs');
10
10
  require('./string-6d104757.cjs');
11
- require('./environment-f4d7c3e5.cjs');
11
+ require('./environment-99bbcd58.cjs');
12
12
  require('./map-0dabcc55.cjs');
13
13
  require('./conditions-f5c0c102.cjs');
14
14
  require('./storage.cjs');
15
- require('./function-314fdc56.cjs');
16
- require('./object-fecf6a7b.cjs');
15
+ require('./function-18d343cf.cjs');
16
+ require('./object-b0539a4e.cjs');
17
17
  require('./encoding-882cb136.cjs');
18
18
  require('./number-466d8922.cjs');
19
19
  require('./binary-ac8e39e2.cjs');
@@ -3,16 +3,16 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var math = require('./math-08e068f9.cjs');
6
- var buffer = require('./buffer-f11b8d4d.cjs');
6
+ var buffer = require('./buffer-757ffcaa.cjs');
7
7
  require('./string-6d104757.cjs');
8
8
  require('./array-704ca50e.cjs');
9
9
  require('./set-0f209abb.cjs');
10
- require('./environment-f4d7c3e5.cjs');
10
+ require('./environment-99bbcd58.cjs');
11
11
  require('./map-0dabcc55.cjs');
12
12
  require('./conditions-f5c0c102.cjs');
13
13
  require('./storage.cjs');
14
- require('./function-314fdc56.cjs');
15
- require('./object-fecf6a7b.cjs');
14
+ require('./function-18d343cf.cjs');
15
+ require('./object-b0539a4e.cjs');
16
16
  require('./encoding-882cb136.cjs');
17
17
  require('./number-466d8922.cjs');
18
18
  require('./binary-ac8e39e2.cjs');
package/dist/rabin.cjs CHANGED
@@ -2,16 +2,16 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var buffer = require('./buffer-f11b8d4d.cjs');
5
+ var buffer = require('./buffer-757ffcaa.cjs');
6
6
  var map = require('./map-0dabcc55.cjs');
7
7
  require('./string-6d104757.cjs');
8
8
  require('./array-704ca50e.cjs');
9
9
  require('./set-0f209abb.cjs');
10
- require('./environment-f4d7c3e5.cjs');
10
+ require('./environment-99bbcd58.cjs');
11
11
  require('./conditions-f5c0c102.cjs');
12
12
  require('./storage.cjs');
13
- require('./function-314fdc56.cjs');
14
- require('./object-fecf6a7b.cjs');
13
+ require('./function-18d343cf.cjs');
14
+ require('./object-b0539a4e.cjs');
15
15
  require('./math-08e068f9.cjs');
16
16
  require('./encoding-882cb136.cjs');
17
17
  require('./number-466d8922.cjs');
package/dist/testing.cjs CHANGED
@@ -3,23 +3,23 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var log = require('lib0/logging');
6
- var diff = require('./diff-fbaa426b.cjs');
7
- var object = require('./object-fecf6a7b.cjs');
6
+ var diff = require('./diff-38d8f45b.cjs');
7
+ var object = require('./object-b0539a4e.cjs');
8
8
  var string = require('./string-6d104757.cjs');
9
9
  var math = require('./math-08e068f9.cjs');
10
10
  var random = require('./random.cjs');
11
- var prng = require('./prng-e4f28259.cjs');
11
+ var prng = require('./prng-90743426.cjs');
12
12
  var statistics = require('./statistics-c2316dca.cjs');
13
13
  var array = require('./array-704ca50e.cjs');
14
- var environment = require('./environment-f4d7c3e5.cjs');
14
+ var environment = require('./environment-99bbcd58.cjs');
15
15
  var json = require('./json-092190a1.cjs');
16
16
  var time = require('./time-bc2081b9.cjs');
17
- var promise = require('./promise-afe9dfc3.cjs');
17
+ var promise = require('./promise-7d13a97c.cjs');
18
18
  var performance = require('lib0/performance');
19
- require('./function-314fdc56.cjs');
19
+ require('./function-18d343cf.cjs');
20
20
  require('./binary-ac8e39e2.cjs');
21
21
  require('lib0/webcrypto');
22
- require('./buffer-f11b8d4d.cjs');
22
+ require('./buffer-757ffcaa.cjs');
23
23
  require('./encoding-882cb136.cjs');
24
24
  require('./number-466d8922.cjs');
25
25
  require('./decoding-000d097f.cjs');
package/dist/url.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var object = require('./object-fecf6a7b.cjs');
5
+ var object = require('./object-b0539a4e.cjs');
6
6
 
7
7
  /**
8
8
  * Utility module to work with urls.
package/environment.d.ts CHANGED
@@ -8,5 +8,12 @@ export function getConf(name: string): string | null;
8
8
  export function ensureConf(name: string): string;
9
9
  export function hasConf(name: string): boolean;
10
10
  export const production: boolean;
11
+ /**
12
+ * Color is enabled by default if the terminal supports it.
13
+ *
14
+ * Explicitly enable color using `--color` parameter
15
+ * Disable color using `--no-color` parameter or using `NO_COLOR=1` environment variable.
16
+ * `FORCE_COLOR=1` enables color and takes precedence over all.
17
+ */
11
18
  export const supportsColor: boolean;
12
19
  //# sourceMappingURL=environment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["environment.js"],"names":[],"mappings":"AAcA,6BAA0N;AAG1N,gCAAoG;AAEpG,4BAES;AAyDF,+BAJI,MAAM,GACL,OAAO,CAGwC;AAQpD,+BALI,MAAM,cACN,MAAM,GACL,MAAM,CAIuB;AAOlC,kCAJI,MAAM,GACL,MAAM,GAAC,IAAI,CAM2C;AAO3D,8BAJI,MAAM,GACL,MAAM,GAAC,IAAI,CAIgC;AAOhD,iCAJI,MAAM,GACL,MAAM,CAOjB;AAOM,8BAJI,MAAM,GACL,OAAO,CAIkC;AAGrD,iCAA+C;AAO/C,oCAKC"}
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["environment.js"],"names":[],"mappings":"AAcA,6BAA0N;AAG1N,gCAAoG;AAEpG,4BAES;AAyDF,+BAJI,MAAM,GACL,OAAO,CAGwC;AAQpD,+BALI,MAAM,cACN,MAAM,GACL,MAAM,CAIuB;AAOlC,kCAJI,MAAM,GACL,MAAM,GAAC,IAAI,CAM2C;AAO3D,8BAJI,MAAM,GACL,MAAM,GAAC,IAAI,CAIgC;AAOhD,iCAJI,MAAM,GACL,MAAM,CAOjB;AAOM,8BAJI,MAAM,GACL,OAAO,CAIkC;AAGrD,iCAA+C;AAO/C;;;;;;GAMG;AACH,oCASC"}
package/environment.js CHANGED
@@ -132,10 +132,21 @@ const forceColor = isNode &&
132
132
  f.isOneOf(process.env.FORCE_COLOR, ['true', '1', '2'])
133
133
 
134
134
  /* c8 ignore start */
135
- export const supportsColor = !hasParam('no-colors') &&
136
- (!isNode || process.stdout.isTTY || forceColor) && (
137
- !isNode || hasParam('color') || forceColor ||
135
+ /**
136
+ * Color is enabled by default if the terminal supports it.
137
+ *
138
+ * Explicitly enable color using `--color` parameter
139
+ * Disable color using `--no-color` parameter or using `NO_COLOR=1` environment variable.
140
+ * `FORCE_COLOR=1` enables color and takes precedence over all.
141
+ */
142
+ export const supportsColor = forceColor || (
143
+ !hasParam('--no-colors') && // @todo deprecate --no-colors
144
+ !hasConf('no-color') &&
145
+ (!isNode || process.stdout.isTTY) && (
146
+ !isNode ||
147
+ hasParam('--color') ||
138
148
  getVariable('COLORTERM') !== null ||
139
149
  (getVariable('TERM') || '').includes('color')
150
+ )
140
151
  )
141
152
  /* c8 ignore stop */
@@ -0,0 +1,35 @@
1
+ export function bindPledge(p: pledge.PledgeInstance<any>, request: IDBRequest): void;
2
+ export function openDB(name: string, initDB: (arg0: IDBDatabase) => any): pledge.PledgeInstance<IDBDatabase>;
3
+ export function deleteDB(name: pledge.Pledge<string>): pledge.PledgeInstance<void>;
4
+ export function createStores(db: IDBDatabase, definitions: Array<Array<string> | Array<string | IDBObjectStoreParameters | undefined>>): void;
5
+ export function transact(db: pledge.Pledge<IDBDatabase>, stores: pledge.Pledge<Array<string>>, access?: "readonly" | "readwrite" | undefined): pledge.Pledge<Array<IDBObjectStore>>;
6
+ export function count(store: IDBObjectStore, range?: pledge.Pledge<IDBKeyRange | undefined>): pledge.PledgeInstance<number>;
7
+ export function get(store: pledge.Pledge<IDBObjectStore>, key: pledge.Pledge<string | number | ArrayBuffer | Date | Array<any>>): pledge.PledgeInstance<string | number | ArrayBuffer | Date | Array<any>>;
8
+ export function del(store: pledge.Pledge<IDBObjectStore>, key: string | number | ArrayBuffer | Date | IDBKeyRange | Array<any>): pledge.PledgeInstance<any, Error>;
9
+ export function put(store: pledge.Pledge<IDBObjectStore>, item: string | number | ArrayBuffer | Date | boolean, key?: string | number | any[] | Date | ArrayBuffer | undefined): pledge.PledgeInstance<any, Error>;
10
+ export function add(store: pledge.Pledge<IDBObjectStore>, item: string | number | ArrayBuffer | Date | boolean, key: string | number | ArrayBuffer | Date | Array<any>): pledge.PledgeInstance<any>;
11
+ export function addAutoKey(store: pledge.Pledge<IDBObjectStore>, item: string | number | ArrayBuffer | Date): pledge.PledgeInstance<number>;
12
+ export function getAll(store: pledge.Pledge<IDBObjectStore>, range?: IDBKeyRange | undefined, limit?: number | undefined): pledge.PledgeInstance<Array<any>>;
13
+ export function getAllKeys(store: pledge.Pledge<IDBObjectStore>, range?: IDBKeyRange | undefined, limit?: number | undefined): pledge.PledgeInstance<Array<any>>;
14
+ export function queryFirst(store: IDBObjectStore, query: IDBKeyRange | null, direction: 'next' | 'prev' | 'nextunique' | 'prevunique'): pledge.PledgeInstance<any>;
15
+ export function getLastKey(store: IDBObjectStore, range?: IDBKeyRange | null | undefined): pledge.PledgeInstance<any>;
16
+ export function getFirstKey(store: IDBObjectStore, range?: IDBKeyRange | null | undefined): pledge.PledgeInstance<any>;
17
+ export function getAllKeysValues(store: pledge.Pledge<IDBObjectStore>, range?: pledge.Pledge<IDBKeyRange | undefined>, limit?: pledge.Pledge<number | undefined>): pledge.PledgeInstance<Array<KeyValuePair>>;
18
+ export function iterate(store: pledge.Pledge<IDBObjectStore>, keyrange: pledge.Pledge<IDBKeyRange | null>, f: (arg0: any, arg1: any) => void | boolean | Promise<void | boolean>, direction?: 'next' | 'prev' | 'nextunique' | 'prevunique'): pledge.PledgeInstance<any, Error>;
19
+ export function iterateKeys(store: pledge.Pledge<IDBObjectStore>, keyrange: pledge.Pledge<IDBKeyRange | null>, f: (arg0: any) => void | boolean | Promise<void | boolean>, direction?: 'next' | 'prev' | 'nextunique' | 'prevunique'): pledge.PledgeInstance<any, Error>;
20
+ export function getStore(t: IDBTransaction, store: string): IDBObjectStore;
21
+ export function createIDBKeyRangeBound(lower: any, upper: any, lowerOpen: boolean, upperOpen: boolean): IDBKeyRange;
22
+ export function createIDBKeyRangeUpperBound(upper: any, upperOpen: boolean): IDBKeyRange;
23
+ export function createIDBKeyRangeLowerBound(lower: any, lowerOpen: boolean): IDBKeyRange;
24
+ export type KeyValuePair = {
25
+ /**
26
+ * key
27
+ */
28
+ k: any;
29
+ /**
30
+ * Value
31
+ */
32
+ v: any;
33
+ };
34
+ import * as pledge from './pledge.js';
35
+ //# sourceMappingURL=indexeddbV2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexeddbV2.d.ts","sourceRoot":"","sources":["indexeddbV2.js"],"names":[],"mappings":"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"}
package/indexeddbV2.js ADDED
@@ -0,0 +1,265 @@
1
+ /* eslint-env browser */
2
+
3
+ /**
4
+ * Helpers to work with IndexedDB.
5
+ * This is an experimental implementation using Pledge instead of Promise.
6
+ *
7
+ * @experimental
8
+ *
9
+ * @module indexeddbv2
10
+ */
11
+
12
+ import * as pledge from './pledge.js'
13
+
14
+ /* c8 ignore start */
15
+
16
+ /**
17
+ * IDB Request to Pledge transformer
18
+ *
19
+ * @param {pledge.PledgeInstance<any>} p
20
+ * @param {IDBRequest} request
21
+ */
22
+ export const bindPledge = (p, request) => {
23
+ // @ts-ignore
24
+ request.onerror = event => p.cancel(event.target.error)
25
+ // @ts-ignore
26
+ request.onsuccess = event => p.resolve(event.target.result)
27
+ }
28
+
29
+ /**
30
+ * @param {string} name
31
+ * @param {function(IDBDatabase):any} initDB Called when the database is first created
32
+ * @return {pledge.PledgeInstance<IDBDatabase>}
33
+ */
34
+ export const openDB = (name, initDB) => {
35
+ /**
36
+ * @type {pledge.PledgeInstance<IDBDatabase>}
37
+ */
38
+ const p = pledge.create()
39
+ const request = indexedDB.open(name)
40
+ /**
41
+ * @param {any} event
42
+ */
43
+ request.onupgradeneeded = event => initDB(event.target.result)
44
+ /**
45
+ * @param {any} event
46
+ */
47
+ request.onerror = event => p.cancel(event.target.error)
48
+ /**
49
+ * @param {any} event
50
+ */
51
+ request.onsuccess = event => {
52
+ /**
53
+ * @type {IDBDatabase}
54
+ */
55
+ const db = event.target.result
56
+ db.onversionchange = () => { db.close() }
57
+ p.resolve(db)
58
+ }
59
+ return p
60
+ }
61
+
62
+ /**
63
+ * @param {pledge.Pledge<string>} name
64
+ * @return {pledge.PledgeInstance<void>}
65
+ */
66
+ export const deleteDB = name => pledge.createWithDependencies((p, name) => bindPledge(p, indexedDB.deleteDatabase(name)), name)
67
+
68
+ /**
69
+ * @param {IDBDatabase} db
70
+ * @param {Array<Array<string>|Array<string|IDBObjectStoreParameters|undefined>>} definitions
71
+ */
72
+ export const createStores = (db, definitions) => definitions.forEach(d =>
73
+ // @ts-ignore
74
+ db.createObjectStore.apply(db, d)
75
+ )
76
+
77
+ /**
78
+ * @param {pledge.Pledge<IDBDatabase>} db
79
+ * @param {pledge.Pledge<Array<string>>} stores
80
+ * @param {"readwrite"|"readonly"} [access]
81
+ * @return {pledge.Pledge<Array<IDBObjectStore>>}
82
+ */
83
+ export const transact = (db, stores, access = 'readwrite') => pledge.createWithDependencies((p, db, stores) => {
84
+ const transaction = db.transaction(stores, access)
85
+ p.resolve(stores.map(store => getStore(transaction, store)))
86
+ }, db, stores)
87
+
88
+ /**
89
+ * @param {IDBObjectStore} store
90
+ * @param {pledge.Pledge<IDBKeyRange|undefined>} [range]
91
+ * @return {pledge.PledgeInstance<number>}
92
+ */
93
+ export const count = (store, range) => pledge.createWithDependencies((p, store, range) => bindPledge(p, store.count(range)), store, range)
94
+
95
+ /**
96
+ * @param {pledge.Pledge<IDBObjectStore>} store
97
+ * @param {pledge.Pledge<String | number | ArrayBuffer | Date | Array<any>>} key
98
+ * @return {pledge.PledgeInstance<String | number | ArrayBuffer | Date | Array<any>>}
99
+ */
100
+ export const get = (store, key) => pledge.createWithDependencies((p, store, key) => bindPledge(p, store.get(key)), store, key)
101
+
102
+ /**
103
+ * @param {pledge.Pledge<IDBObjectStore>} store
104
+ * @param {String | number | ArrayBuffer | Date | IDBKeyRange | Array<any> } key
105
+ */
106
+ export const del = (store, key) => pledge.createWithDependencies((p, store, key) => bindPledge(p, store.delete(key)), store, key)
107
+
108
+ /**
109
+ * @param {pledge.Pledge<IDBObjectStore>} store
110
+ * @param {String | number | ArrayBuffer | Date | boolean} item
111
+ * @param {String | number | ArrayBuffer | Date | Array<any>} [key]
112
+ */
113
+ export const put = (store, item, key) => pledge.createWithDependencies((p, store, item, key) => bindPledge(p, store.put(item, key)), store, item, key)
114
+
115
+ /**
116
+ * @param {pledge.Pledge<IDBObjectStore>} store
117
+ * @param {String | number | ArrayBuffer | Date | boolean} item
118
+ * @param {String | number | ArrayBuffer | Date | Array<any>} key
119
+ * @return {pledge.PledgeInstance<any>}
120
+ */
121
+ export const add = (store, item, key) => pledge.createWithDependencies((p, store, item, key) => bindPledge(p, store.add(item, key)), store, item, key)
122
+
123
+ /**
124
+ * @param {pledge.Pledge<IDBObjectStore>} store
125
+ * @param {String | number | ArrayBuffer | Date} item
126
+ * @return {pledge.PledgeInstance<number>} Returns the generated key
127
+ */
128
+ export const addAutoKey = (store, item) => pledge.createWithDependencies((p, store, item) => bindPledge(p, store.add(item)), store, item)
129
+
130
+ /**
131
+ * @param {pledge.Pledge<IDBObjectStore>} store
132
+ * @param {IDBKeyRange} [range]
133
+ * @param {number} [limit]
134
+ * @return {pledge.PledgeInstance<Array<any>>}
135
+ */
136
+ export const getAll = (store, range, limit) => pledge.createWithDependencies((p, store, range, limit) => bindPledge(p, store.getAll(range, limit)), store, range, limit)
137
+
138
+ /**
139
+ * @param {pledge.Pledge<IDBObjectStore>} store
140
+ * @param {IDBKeyRange} [range]
141
+ * @param {number} [limit]
142
+ * @return {pledge.PledgeInstance<Array<any>>}
143
+ */
144
+ export const getAllKeys = (store, range, limit) => pledge.createWithDependencies((p, store, range, limit) => bindPledge(p, store.getAllKeys(range, limit)), store, range, limit)
145
+
146
+ /**
147
+ * @param {IDBObjectStore} store
148
+ * @param {IDBKeyRange|null} query
149
+ * @param {'next'|'prev'|'nextunique'|'prevunique'} direction
150
+ * @return {pledge.PledgeInstance<any>}
151
+ */
152
+ export const queryFirst = (store, query, direction) => {
153
+ /**
154
+ * @type {any}
155
+ */
156
+ let first = null
157
+ return iterateKeys(store, query, key => {
158
+ first = key
159
+ return false
160
+ }, direction).map(() => first)
161
+ }
162
+
163
+ /**
164
+ * @param {IDBObjectStore} store
165
+ * @param {IDBKeyRange?} [range]
166
+ * @return {pledge.PledgeInstance<any>}
167
+ */
168
+ export const getLastKey = (store, range = null) => queryFirst(store, range, 'prev')
169
+
170
+ /**
171
+ * @param {IDBObjectStore} store
172
+ * @param {IDBKeyRange?} [range]
173
+ * @return {pledge.PledgeInstance<any>}
174
+ */
175
+ export const getFirstKey = (store, range = null) => queryFirst(store, range, 'next')
176
+
177
+ /**
178
+ * @typedef KeyValuePair
179
+ * @type {Object}
180
+ * @property {any} k key
181
+ * @property {any} v Value
182
+ */
183
+
184
+ /**
185
+ * @param {pledge.Pledge<IDBObjectStore>} store
186
+ * @param {pledge.Pledge<IDBKeyRange|undefined>} [range]
187
+ * @param {pledge.Pledge<number|undefined>} [limit]
188
+ * @return {pledge.PledgeInstance<Array<KeyValuePair>>}
189
+ */
190
+ export const getAllKeysValues = (store, range, limit) => pledge.createWithDependencies((p, store, range, limit) => {
191
+ pledge.all([getAllKeys(store, range, limit), getAll(store, range, limit)]).map(([ks, vs]) => ks.map((k, i) => ({ k, v: vs[i] }))).whenResolved(p.resolve.bind(p))
192
+ }, store, range, limit)
193
+
194
+ /**
195
+ * @param {pledge.PledgeInstance<void>} p
196
+ * @param {any} request
197
+ * @param {function(IDBCursorWithValue):void|boolean|Promise<void|boolean>} f
198
+ */
199
+ const iterateOnRequest = (p, request, f) => {
200
+ request.onerror = p.cancel.bind(p)
201
+ /**
202
+ * @param {any} event
203
+ */
204
+ request.onsuccess = async event => {
205
+ const cursor = event.target.result
206
+ if (cursor === null || (await f(cursor)) === false) {
207
+ p.resolve(undefined)
208
+ return
209
+ }
210
+ cursor.continue()
211
+ }
212
+ }
213
+
214
+ /**
215
+ * Iterate on keys and values
216
+ * @param {pledge.Pledge<IDBObjectStore>} store
217
+ * @param {pledge.Pledge<IDBKeyRange|null>} keyrange
218
+ * @param {function(any,any):void|boolean|Promise<void|boolean>} f Callback that receives (value, key)
219
+ * @param {'next'|'prev'|'nextunique'|'prevunique'} direction
220
+ */
221
+ export const iterate = (store, keyrange, f, direction = 'next') => pledge.createWithDependencies((p, store, keyrange) => {
222
+ iterateOnRequest(p, store.openCursor(keyrange, direction), cursor => f(cursor.value, cursor.key))
223
+ }, store, keyrange)
224
+
225
+ /**
226
+ * Iterate on the keys (no values)
227
+ *
228
+ * @param {pledge.Pledge<IDBObjectStore>} store
229
+ * @param {pledge.Pledge<IDBKeyRange|null>} keyrange
230
+ * @param {function(any):void|boolean|Promise<void|boolean>} f callback that receives the key
231
+ * @param {'next'|'prev'|'nextunique'|'prevunique'} direction
232
+ */
233
+ export const iterateKeys = (store, keyrange, f, direction = 'next') => pledge.createWithDependencies((p, store, keyrange) => {
234
+ iterateOnRequest(p, store.openKeyCursor(keyrange, direction), cursor => f(cursor.key))
235
+ }, store, keyrange)
236
+
237
+ /**
238
+ * Open store from transaction
239
+ * @param {IDBTransaction} t
240
+ * @param {String} store
241
+ * @returns {IDBObjectStore}
242
+ */
243
+ export const getStore = (t, store) => t.objectStore(store)
244
+
245
+ /**
246
+ * @param {any} lower
247
+ * @param {any} upper
248
+ * @param {boolean} lowerOpen
249
+ * @param {boolean} upperOpen
250
+ */
251
+ export const createIDBKeyRangeBound = (lower, upper, lowerOpen, upperOpen) => IDBKeyRange.bound(lower, upper, lowerOpen, upperOpen)
252
+
253
+ /**
254
+ * @param {any} upper
255
+ * @param {boolean} upperOpen
256
+ */
257
+ export const createIDBKeyRangeUpperBound = (upper, upperOpen) => IDBKeyRange.upperBound(upper, upperOpen)
258
+
259
+ /**
260
+ * @param {any} lower
261
+ * @param {boolean} lowerOpen
262
+ */
263
+ export const createIDBKeyRangeLowerBound = (lower, lowerOpen) => IDBKeyRange.lowerBound(lower, lowerOpen)
264
+
265
+ /* c8 ignore stop */
@@ -0,0 +1,3 @@
1
+ export function testRetrieveElements(): Promise<void>;
2
+ export function testBlocked(): Promise<void>;
3
+ //# sourceMappingURL=indexeddbV2.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexeddbV2.test.d.ts","sourceRoot":"","sources":["indexeddbV2.test.js"],"names":[],"mappings":"AA0BO,sDAoEN;AAGM,6CAgBN"}
@@ -7,6 +7,6 @@ export const RED: symbol;
7
7
  export const PURPLE: symbol;
8
8
  export const ORANGE: symbol;
9
9
  export const UNCOLOR: symbol;
10
- export function computeNoColorLoggingArgs(args: Array<undefined | string | Symbol | Object | number | (() => any)>): Array<string | object | number>;
10
+ export function computeNoColorLoggingArgs(args: Array<undefined | string | Symbol | Object | number | (() => any)>): Array<string | object | number | undefined>;
11
11
  export function createModuleLogger(_print: (...args: any[]) => void, moduleName: string): (...args: any[]) => void;
12
12
  //# sourceMappingURL=logging.common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logging.common.d.ts","sourceRoot":"","sources":["logging.common.js"],"names":[],"mappings":"AAMA,0BAAmC;AACnC,4BAAqC;AACrC,0BAAmC;AACnC,0BAAmC;AACnC,2BAAoC;AACpC,yBAAkC;AAClC,4BAAqC;AACrC,4BAAqC;AACrC,6BAAsC;AAO/B,gDAHI,MAAM,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,MAAM,GAAC,MAAM,UAAY,GAAG,CAAA,CAAC,GAC1D,MAAM,MAAM,GAAC,MAAM,GAAC,MAAM,CAAC,CAqBtC;AAaM,qDAJgB,GAAG,OAAE,IAAI,cACrB,MAAM,aACO,GAAG,OAAE,IAAI,CAyChC"}
1
+ {"version":3,"file":"logging.common.d.ts","sourceRoot":"","sources":["logging.common.js"],"names":[],"mappings":"AAMA,0BAAmC;AACnC,4BAAqC;AACrC,0BAAmC;AACnC,0BAAmC;AACnC,2BAAoC;AACpC,yBAAkC;AAClC,4BAAqC;AACrC,4BAAqC;AACrC,6BAAsC;AAO/B,gDAHI,MAAM,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,MAAM,GAAC,MAAM,UAAY,GAAG,CAAA,CAAC,GAC1D,MAAM,MAAM,GAAC,MAAM,GAAC,MAAM,GAAC,SAAS,CAAC,CAgChD;AAaM,qDAJgB,GAAG,OAAE,IAAI,cACrB,MAAM,aACO,GAAG,OAAE,IAAI,CAyChC"}
package/logging.common.js CHANGED
@@ -17,7 +17,7 @@ export const UNCOLOR = symbol.create()
17
17
  /* c8 ignore start */
18
18
  /**
19
19
  * @param {Array<undefined|string|Symbol|Object|number|function():any>} args
20
- * @return {Array<string|object|number>}
20
+ * @return {Array<string|object|number|undefined>}
21
21
  */
22
22
  export const computeNoColorLoggingArgs = args => {
23
23
  if (args.length === 1 && args[0]?.constructor === Function) {
@@ -30,11 +30,22 @@ export const computeNoColorLoggingArgs = args => {
30
30
  for (; i < args.length; i++) {
31
31
  const arg = args[i]
32
32
  if (arg === undefined) {
33
- strBuilder.push('undefined')
33
+ break
34
34
  } else if (arg.constructor === String || arg.constructor === Number) {
35
35
  strBuilder.push(arg)
36
36
  } else if (arg.constructor === Object) {
37
- logArgs.push(JSON.stringify(arg))
37
+ break
38
+ }
39
+ }
40
+ if (i > 0) {
41
+ // create logArgs with what we have so far
42
+ logArgs.push(strBuilder.join(''))
43
+ }
44
+ // append the rest
45
+ for (; i < args.length; i++) {
46
+ const arg = args[i]
47
+ if (!(arg instanceof Symbol)) {
48
+ logArgs.push(arg)
38
49
  }
39
50
  }
40
51
  return logArgs
package/object.d.ts CHANGED
@@ -26,6 +26,9 @@ export function map<R>(obj: {
26
26
  export function length(obj: {
27
27
  [x: string]: any;
28
28
  }): number;
29
+ export function size(obj: {
30
+ [x: string]: any;
31
+ }): number;
29
32
  export function some(obj: {
30
33
  [x: string]: any;
31
34
  }, f: (arg0: any, arg1: string) => boolean): boolean;
package/object.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["object.js"],"names":[],"mappings":"AASO;QAFY,MAAM,GAAC,GAAG;EAEkB;AAE/C;;GAEG;AACH;;;;;EAAmC;AAEnC;;GAEG;AACH;;;EAA+B;AAOxB;;sBAFe,MAAM,KAAE,GAAG,QAMhC;AAUM;QAJW,MAAM,GAAC,GAAG;aACR,GAAG,QAAC,MAAM,aAS7B;AAMM;QAHW,MAAM,GAAC,GAAG;IAChB,MAAM,CAE2B;AAOtC;QAJW,MAAM,GAAC,GAAG;aACR,GAAG,QAAC,MAAM,KAAE,OAAO,GAC3B,OAAO,CASlB;AAKM,6BAFI,MAAM,GAAC,SAAS,WAQ1B;AAOM;QAJW,MAAM,GAAC,GAAG;aACR,GAAG,QAAC,MAAM,KAAE,OAAO,GAC3B,OAAO,CASlB;AASM,iCAJI,GAAG,OACH,MAAM,GAAC,MAAM,GACZ,OAAO,CAEoE;AAOhF;QAJW,MAAM,GAAC,GAAG;;QACV,MAAM,GAAC,GAAG;IAChB,OAAO,CAE4I"}
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["object.js"],"names":[],"mappings":"AASO;QAFY,MAAM,GAAC,GAAG;EAEkB;AAE/C;;GAEG;AACH;;;;;EAAmC;AAEnC;;GAEG;AACH;;;EAA+B;AAOxB;;sBAFe,MAAM,KAAE,GAAG,QAMhC;AAUM;QAJW,MAAM,GAAC,GAAG;aACR,GAAG,QAAC,MAAM,aAS7B;AAOM;QAHW,MAAM,GAAC,GAAG;IAChB,MAAM,CAE2B;AAMtC;QAHW,MAAM,GAAC,GAAG;IAChB,MAAM,CAEyB;AAOpC;QAJW,MAAM,GAAC,GAAG;aACR,GAAG,QAAC,MAAM,KAAE,OAAO,GAC3B,OAAO,CASlB;AAKM,6BAFI,MAAM,GAAC,SAAS,WAQ1B;AAOM;QAJW,MAAM,GAAC,GAAG;aACR,GAAG,QAAC,MAAM,KAAE,OAAO,GAC3B,OAAO,CASlB;AASM,iCAJI,GAAG,OACH,MAAM,GAAC,MAAM,GACZ,OAAO,CAEoE;AAOhF;QAJW,MAAM,GAAC,GAAG;;QACV,MAAM,GAAC,GAAG;IAChB,OAAO,CAEwI"}
package/object.js CHANGED
@@ -47,11 +47,18 @@ export const map = (obj, f) => {
47
47
  }
48
48
 
49
49
  /**
50
+ * @deprecated use object.size instead
50
51
  * @param {Object<string,any>} obj
51
52
  * @return {number}
52
53
  */
53
54
  export const length = obj => keys(obj).length
54
55
 
56
+ /**
57
+ * @param {Object<string,any>} obj
58
+ * @return {number}
59
+ */
60
+ export const size = obj => keys(obj).length
61
+
55
62
  /**
56
63
  * @param {Object<string,any>} obj
57
64
  * @param {function(any,string):boolean} f
@@ -105,4 +112,4 @@ export const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(ob
105
112
  * @param {Object<string,any>} b
106
113
  * @return {boolean}
107
114
  */
108
- export const equalFlat = (a, b) => a === b || (length(a) === length(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && b[key] === val))
115
+ export const equalFlat = (a, b) => a === b || (size(a) === size(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && b[key] === val))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lib0",
3
- "version": "0.2.93",
3
+ "version": "0.2.95",
4
4
  "description": "",
5
5
  "sideEffects": false,
6
6
  "type": "module",
package/pledge.d.ts ADDED
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @template V
3
+ * @typedef {V | PledgeInstance<V>} Pledge
4
+ */
5
+ /**
6
+ * @template {any} Val
7
+ * @template {any} [CancelReason=Error]
8
+ */
9
+ export class PledgeInstance<Val extends unknown, CancelReason extends unknown = Error> {
10
+ /**
11
+ * @type {Val | CancelReason | null}
12
+ */
13
+ _v: Val | CancelReason | null;
14
+ isResolved: boolean;
15
+ /**
16
+ * @type {Array<function(Val):void> | null}
17
+ */
18
+ _whenResolved: ((arg0: Val) => void)[] | null;
19
+ /**
20
+ * @type {Array<function(CancelReason):void> | null}
21
+ */
22
+ _whenCanceled: ((arg0: CancelReason) => void)[] | null;
23
+ get isDone(): boolean;
24
+ get isCanceled(): boolean;
25
+ /**
26
+ * @param {Val} v
27
+ */
28
+ resolve(v: Val): void;
29
+ /**
30
+ * @param {CancelReason} reason
31
+ */
32
+ cancel(reason: CancelReason): void;
33
+ /**
34
+ * @template R
35
+ * @param {function(Val):Pledge<R>} f
36
+ * @return {PledgeInstance<R>}
37
+ */
38
+ map<R>(f: (arg0: Val) => Pledge<R>): PledgeInstance<R, Error>;
39
+ /**
40
+ * @param {function(Val):void} f
41
+ */
42
+ whenResolved(f: (arg0: Val) => void): void;
43
+ /**
44
+ * @param {(reason: CancelReason) => void} f
45
+ */
46
+ whenCanceled(f: (reason: CancelReason) => void): void;
47
+ /**
48
+ * @return {Promise<Val>}
49
+ */
50
+ promise(): Promise<Val>;
51
+ }
52
+ export function create<T>(): PledgeInstance<T, Error>;
53
+ export function createWithDependencies<V, DEPS extends unknown[]>(init: (p: PledgeInstance<V, Error>, ...deps: Resolved<DEPS>) => void, ...deps: DEPS): PledgeInstance<V, Error>;
54
+ export function whenResolved<R>(p: Pledge<R>, f: (arg0: R) => void): void;
55
+ export function whenCanceled<P extends unknown>(p: P, f: P extends PledgeInstance<unknown, infer CancelReason extends unknown> ? (arg0: CancelReason) => void : (arg0: any) => void): void;
56
+ export function map<P, Q>(p: Pledge<P>, f: (r: P) => Q): Pledge<Q>;
57
+ export function all<PS extends PledgeMap>(ps: PS): PledgeInstance<Resolved<PS>, Error>;
58
+ export function coroutine<Result, YieldResults extends unknown>(f: () => Generator<Pledge<YieldResults> | PledgeInstance<YieldResults, any>, Result, any>): PledgeInstance<Result, Error>;
59
+ export function wait(timeout: number): PledgeInstance<undefined>;
60
+ export type Pledge<V> = V | PledgeInstance<V>;
61
+ export type PledgeMap = Array<Pledge<unknown>> | {
62
+ [x: string]: Pledge<unknown>;
63
+ };
64
+ /**
65
+ * <P>
66
+ */
67
+ export type Resolved<P extends unknown> = P extends PledgeMap ? P extends infer T extends PledgeMap ? { [K in keyof T]: P[K] extends Pledge<infer V> ? V : P[K]; } : never : P extends Pledge<infer V_1> ? V_1 : never;
68
+ //# sourceMappingURL=pledge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pledge.d.ts","sourceRoot":"","sources":["pledge.js"],"names":[],"mappings":"AA8BA;;;GAGG;AAEH;;;GAGG;AACH;IAEI;;OAEG;IACH,IAFU,GAAG,GAAG,YAAY,GAAG,IAAI,CAErB;IACd,oBAAuB;IACvB;;OAEG;IACH,uBAFyB,GAAG,KAAE,IAAI,WAEX;IACvB;;OAEG;IACH,uBAFyB,YAAY,KAAE,IAAI,WAEpB;IAGzB,sBAEC;IAED,0BAEC;IAED;;OAEG;IACH,WAFW,GAAG,QAYb;IAED;;OAEG;IACH,eAFW,YAAY,QAWtB;IAED;;;;OAIG;IACH,iBAHoB,GAAG,0CAqBtB;IAED;;OAEG;IACH,uBAFoB,GAAG,KAAE,IAAI,QAQ5B;IAED;;OAEG;IACH,yBAFoB,YAAY,KAAK,IAAI,QAQxC;IAED;;OAEG;IACH,WAFY,QAAQ,GAAG,CAAC,CAOvB;CACF;AAMM,sDAAyC;AAqBzC,kIAJuD,IAAI,2CAYjE;AAOM,8DAFgB,IAAI,QAO1B;AAOM,yJAFmF,IAAI,UAAY,GAAG,KAAE,IAAI,QAMlH;AASM,mEAKN;AAOM,uFAqBN;AAQM,0LAsBN;AAMM,8BAHI,MAAM,GACL,eAAe,SAAS,CAAC,CAMpC;wBAjQY,CAAC,GAAG,eAAe,CAAC,CAAC;wBA8HrB,MAAM,OAAO,OAAO,CAAC,CAAC;QAAU,MAAM,GAAC,OAAO,OAAO,CAAC;CAAC"}