indexeddbshim 17.1.0 → 17.2.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/dist/DOMException.d.ts.map +1 -1
- package/dist/IDBCursor.d.ts +16 -16
- package/dist/IDBCursor.d.ts.map +1 -1
- package/dist/IDBFactory.d.ts +19 -19
- package/dist/IDBFactory.d.ts.map +1 -1
- package/dist/IDBKeyRange.d.ts +5 -5
- package/dist/IDBKeyRange.d.ts.map +1 -1
- package/dist/IDBTransaction.d.ts +3 -3
- package/dist/IDBTransaction.d.ts.map +1 -1
- package/dist/Key.d.ts +41 -41
- package/dist/Key.d.ts.map +1 -1
- package/dist/indexeddbshim-Key.js +64 -64
- package/dist/indexeddbshim-Key.js.map +1 -1
- package/dist/indexeddbshim-Key.min.js +1 -1
- package/dist/indexeddbshim-Key.min.js.map +1 -1
- package/dist/indexeddbshim-UnicodeIdentifiers-node.cjs +278 -236
- package/dist/indexeddbshim-UnicodeIdentifiers-node.cjs.map +1 -1
- package/dist/indexeddbshim-UnicodeIdentifiers.js +420 -366
- package/dist/indexeddbshim-UnicodeIdentifiers.js.map +1 -1
- package/dist/indexeddbshim-UnicodeIdentifiers.min.js +3 -3
- package/dist/indexeddbshim-UnicodeIdentifiers.min.js.map +1 -1
- package/dist/indexeddbshim-node.cjs +278 -236
- package/dist/indexeddbshim-node.cjs.map +1 -1
- package/dist/indexeddbshim-noninvasive.js +420 -366
- package/dist/indexeddbshim-noninvasive.js.map +1 -1
- package/dist/indexeddbshim-noninvasive.min.js +3 -3
- package/dist/indexeddbshim-noninvasive.min.js.map +1 -1
- package/dist/indexeddbshim.js +420 -366
- package/dist/indexeddbshim.js.map +1 -1
- package/dist/indexeddbshim.min.js +3 -3
- package/dist/indexeddbshim.min.js.map +1 -1
- package/package.json +9 -9
- package/src/DOMException.js +10 -10
- package/src/IDBCursor.js +16 -16
- package/src/IDBFactory.js +20 -20
- package/src/IDBKeyRange.js +5 -5
- package/src/IDBTransaction.js +3 -3
- package/src/Key.js +53 -53
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "indexeddbshim",
|
|
3
|
-
"version": "17.
|
|
3
|
+
"version": "17.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"author": "Parashuram <code@nparashuram.com>",
|
|
6
6
|
"contributors": [
|
|
@@ -161,8 +161,8 @@
|
|
|
161
161
|
"canvas": "^3.2.3",
|
|
162
162
|
"eventtargeter": "0.9.0",
|
|
163
163
|
"sync-promise-expanded": "^2.0.0",
|
|
164
|
-
"typeson": "10.
|
|
165
|
-
"typeson-registry": "13.
|
|
164
|
+
"typeson": "10.2.0",
|
|
165
|
+
"typeson-registry": "13.1.0",
|
|
166
166
|
"websql-configurable": "^3.0.3"
|
|
167
167
|
},
|
|
168
168
|
"devDependencies": {
|
|
@@ -176,11 +176,11 @@
|
|
|
176
176
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
177
177
|
"@rollup/plugin-terser": "^1.0.0",
|
|
178
178
|
"@types/better-sqlite3": "^9.6.0",
|
|
179
|
-
"@types/node": "^26.
|
|
179
|
+
"@types/node": "^26.2.0",
|
|
180
180
|
"@types/websql": "^0.0.30",
|
|
181
181
|
"@unicode/unicode-17.0.0": "^1.6.17",
|
|
182
182
|
"babel-plugin-add-module-exports": "1.0.4",
|
|
183
|
-
"bson": "^7.3.
|
|
183
|
+
"bson": "^7.3.2",
|
|
184
184
|
"builtin-modules": "^5.3.0",
|
|
185
185
|
"c8": "^12.0.0",
|
|
186
186
|
"chai": "6.2.2",
|
|
@@ -191,9 +191,9 @@
|
|
|
191
191
|
"coveradge": "^0.8.2",
|
|
192
192
|
"cyclonejs": "1.1.4",
|
|
193
193
|
"delay-cli": "^3.0.0",
|
|
194
|
-
"eslint": "^10.8.
|
|
195
|
-
"eslint-config-ash-nazg": "^42.
|
|
196
|
-
"globals": "^17.
|
|
194
|
+
"eslint": "^10.8.1",
|
|
195
|
+
"eslint-config-ash-nazg": "^42.5.0",
|
|
196
|
+
"globals": "^17.11.0",
|
|
197
197
|
"is-date-object": "1.1.0",
|
|
198
198
|
"isomorphic-fetch": "^3.0.0",
|
|
199
199
|
"jsdom": "^30.0.1",
|
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
"sourcemap-transformer": "git+https://github.com/brettz9/sourcemap-transformer.git",
|
|
214
214
|
"typescript": "^6.0.3",
|
|
215
215
|
"w3c-blob": "0.0.1",
|
|
216
|
-
"ws": "^8.21.
|
|
216
|
+
"ws": "^8.21.3"
|
|
217
217
|
},
|
|
218
218
|
"allowScripts": {
|
|
219
219
|
"es5-ext@0.10.64": true,
|
package/src/DOMException.js
CHANGED
|
@@ -368,22 +368,22 @@ try {
|
|
|
368
368
|
const createDOMException = useNativeDOMException
|
|
369
369
|
// eslint-disable-next-line @stylistic/operator-linebreak -- Need JSDoc
|
|
370
370
|
? /**
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
371
|
+
* @param {string} name
|
|
372
|
+
* @param {string} message
|
|
373
|
+
* @param {ErrorLike} [error]
|
|
374
|
+
* @returns {DOMException}
|
|
375
|
+
*/
|
|
376
376
|
function (name, message, error) {
|
|
377
377
|
logError(name, message, error);
|
|
378
378
|
return createNativeDOMException(name, message);
|
|
379
379
|
}
|
|
380
380
|
// eslint-disable-next-line @stylistic/operator-linebreak -- Need JSDoc
|
|
381
381
|
: /**
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
382
|
+
* @param {string} name
|
|
383
|
+
* @param {string} message
|
|
384
|
+
* @param {ErrorLike} [error]
|
|
385
|
+
* @returns {Error}
|
|
386
|
+
*/
|
|
387
387
|
function (name, message, error) {
|
|
388
388
|
logError(name, message, error);
|
|
389
389
|
return createNonNativeDOMException(name, message);
|
package/src/IDBCursor.js
CHANGED
|
@@ -482,19 +482,19 @@ IDBCursor.prototype.__findMultiEntry = function (key, primaryKey, tx, success, e
|
|
|
482
482
|
*/
|
|
483
483
|
|
|
484
484
|
/**
|
|
485
|
-
* @callback SuccessArg
|
|
486
|
-
* @param {StructuredCloneValue} value
|
|
487
|
-
* @param {import('./IDBRequest.js').IDBRequestFull} req
|
|
488
|
-
* @returns {void}
|
|
489
|
-
*/
|
|
485
|
+
* @callback SuccessArg
|
|
486
|
+
* @param {StructuredCloneValue} value
|
|
487
|
+
* @param {import('./IDBRequest.js').IDBRequestFull} req
|
|
488
|
+
* @returns {void}
|
|
489
|
+
*/
|
|
490
490
|
|
|
491
491
|
/**
|
|
492
|
-
* @callback SuccessCallback
|
|
493
|
-
* @param {IndexedDBKey} key
|
|
494
|
-
* @param {StructuredCloneValue} value
|
|
495
|
-
* @param {IndexedDBKey} primaryKey
|
|
496
|
-
* @returns {void}
|
|
497
|
-
*/
|
|
492
|
+
* @callback SuccessCallback
|
|
493
|
+
* @param {IndexedDBKey} key
|
|
494
|
+
* @param {StructuredCloneValue} value
|
|
495
|
+
* @param {IndexedDBKey} primaryKey
|
|
496
|
+
* @returns {void}
|
|
497
|
+
*/
|
|
498
498
|
|
|
499
499
|
/**
|
|
500
500
|
* Creates an "onsuccess" callback.
|
|
@@ -522,11 +522,11 @@ IDBCursor.prototype.__onsuccess = function (success) {
|
|
|
522
522
|
|
|
523
523
|
/**
|
|
524
524
|
* @typedef {{
|
|
525
|
-
* matchingKey: string,
|
|
526
|
-
* key: string,
|
|
527
|
-
* [k: string]: string
|
|
528
|
-
* }} RowItemNonNull
|
|
529
|
-
*/
|
|
525
|
+
* matchingKey: string,
|
|
526
|
+
* key: string,
|
|
527
|
+
* [k: string]: string
|
|
528
|
+
* }} RowItemNonNull
|
|
529
|
+
*/
|
|
530
530
|
|
|
531
531
|
/**
|
|
532
532
|
*
|
package/src/IDBFactory.js
CHANGED
|
@@ -388,7 +388,7 @@ function IDBFactory () {
|
|
|
388
388
|
* __connections: {
|
|
389
389
|
* [key: string]: import('./IDBDatabase.js').IDBDatabaseFull[]
|
|
390
390
|
* }
|
|
391
|
-
* }} IDBFactoryFull
|
|
391
|
+
* }} IDBFactoryFull
|
|
392
392
|
*/
|
|
393
393
|
|
|
394
394
|
const IDBFactoryAlias = IDBFactory;
|
|
@@ -970,14 +970,14 @@ IDBFactory.prototype.cmp = function (key1, key2) {
|
|
|
970
970
|
};
|
|
971
971
|
|
|
972
972
|
/**
|
|
973
|
-
* May return outdated information if a database has since been deleted.
|
|
974
|
-
* @see https://github.com/w3c/IndexedDB/pull/240/files
|
|
975
|
-
* @this {IDBFactoryFull}
|
|
976
|
-
* @returns {Promise<{
|
|
977
|
-
* name: string,
|
|
978
|
-
* version: Integer
|
|
979
|
-
* }[]>}
|
|
980
|
-
*/
|
|
973
|
+
* May return outdated information if a database has since been deleted.
|
|
974
|
+
* @see https://github.com/w3c/IndexedDB/pull/240/files
|
|
975
|
+
* @this {IDBFactoryFull}
|
|
976
|
+
* @returns {Promise<{
|
|
977
|
+
* name: string,
|
|
978
|
+
* version: Integer
|
|
979
|
+
* }[]>}
|
|
980
|
+
*/
|
|
981
981
|
IDBFactory.prototype.databases = function () {
|
|
982
982
|
const me = this;
|
|
983
983
|
let calledDbCreateError = false;
|
|
@@ -1022,17 +1022,17 @@ IDBFactory.prototype.databases = function () {
|
|
|
1022
1022
|
};
|
|
1023
1023
|
|
|
1024
1024
|
/**
|
|
1025
|
-
* @todo forceClose: Test
|
|
1026
|
-
* This is provided to facilitate unit-testing of the
|
|
1027
|
-
* closing of a database connection with a forced flag:
|
|
1028
|
-
* <https://w3c.github.io/IndexedDB/#steps-for-closing-a-database-connection>
|
|
1029
|
-
* @param {string} dbName
|
|
1030
|
-
* @param {Integer} connIdx
|
|
1031
|
-
* @param {string} msg
|
|
1032
|
-
* @throws {TypeError}
|
|
1033
|
-
* @this {IDBFactoryFull}
|
|
1034
|
-
* @returns {void}
|
|
1035
|
-
*/
|
|
1025
|
+
* @todo forceClose: Test
|
|
1026
|
+
* This is provided to facilitate unit-testing of the
|
|
1027
|
+
* closing of a database connection with a forced flag:
|
|
1028
|
+
* <https://w3c.github.io/IndexedDB/#steps-for-closing-a-database-connection>
|
|
1029
|
+
* @param {string} dbName
|
|
1030
|
+
* @param {Integer} connIdx
|
|
1031
|
+
* @param {string} msg
|
|
1032
|
+
* @throws {TypeError}
|
|
1033
|
+
* @this {IDBFactoryFull}
|
|
1034
|
+
* @returns {void}
|
|
1035
|
+
*/
|
|
1036
1036
|
IDBFactory.prototype.__forceClose = function (dbName, connIdx, msg) {
|
|
1037
1037
|
const me = this;
|
|
1038
1038
|
/**
|
package/src/IDBKeyRange.js
CHANGED
|
@@ -6,11 +6,11 @@ const readonlyProperties = /** @type {const} */ (['lower', 'upper', 'lowerOpen',
|
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* @typedef {globalThis.IDBKeyRange & {
|
|
9
|
-
* __lowerCached: string|null|false,
|
|
10
|
-
* __upperCached: string|null|false,
|
|
11
|
-
* __lowerOpen: boolean,
|
|
12
|
-
* }} IDBKeyRangeFull
|
|
13
|
-
*/
|
|
9
|
+
* __lowerCached: string|null|false,
|
|
10
|
+
* __upperCached: string|null|false,
|
|
11
|
+
* __lowerOpen: boolean,
|
|
12
|
+
* }} IDBKeyRangeFull
|
|
13
|
+
*/
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* The IndexedDB KeyRange object.
|
package/src/IDBTransaction.js
CHANGED
|
@@ -776,10 +776,10 @@ IDBTransaction.__assertActive = function (tx) {
|
|
|
776
776
|
};
|
|
777
777
|
|
|
778
778
|
/**
|
|
779
|
-
* Used by our `EventTarget.prototype` library to implement bubbling/capturing.
|
|
779
|
+
* Used by our `EventTarget.prototype` library to implement bubbling/capturing.
|
|
780
780
|
* @this {IDBTransactionFull}
|
|
781
|
-
* @returns {import('./IDBDatabase.js').IDBDatabaseFull}
|
|
782
|
-
*/
|
|
781
|
+
* @returns {import('./IDBDatabase.js').IDBDatabaseFull}
|
|
782
|
+
*/
|
|
783
783
|
IDBTransaction.prototype.__getParent = function () {
|
|
784
784
|
return this.db;
|
|
785
785
|
};
|
package/src/Key.js
CHANGED
|
@@ -32,14 +32,14 @@ import CFG from './CFG.js';
|
|
|
32
32
|
*/
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
|
-
* @typedef {object} KeyValueObject
|
|
36
|
-
* @property {KeyType|"NaN"|"null"|"undefined"|"boolean"|"object"|"symbol"|
|
|
37
|
-
* "function"|"bigint"} type If not `KeyType`, indicates invalid value
|
|
38
|
-
* @property {Value} [value]
|
|
39
|
-
* @property {boolean} [invalid]
|
|
40
|
-
* @property {string} [message]
|
|
41
|
-
* @todo Specify acceptable `value` more precisely
|
|
42
|
-
*/
|
|
35
|
+
* @typedef {object} KeyValueObject
|
|
36
|
+
* @property {KeyType|"NaN"|"null"|"undefined"|"boolean"|"object"|"symbol"|
|
|
37
|
+
* "function"|"bigint"} type If not `KeyType`, indicates invalid value
|
|
38
|
+
* @property {Value} [value]
|
|
39
|
+
* @property {boolean} [invalid]
|
|
40
|
+
* @property {string} [message]
|
|
41
|
+
* @todo Specify acceptable `value` more precisely
|
|
42
|
+
*/
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
45
|
* @typedef {number|string|Date|ArrayBuffer} ValueTypePrimitive
|
|
@@ -474,10 +474,10 @@ function convertValueToKey (input, seen) {
|
|
|
474
474
|
}
|
|
475
475
|
|
|
476
476
|
/**
|
|
477
|
-
* Currently not in use.
|
|
478
|
-
* @param {Value} input
|
|
479
|
-
* @returns {KeyValueObject}
|
|
480
|
-
*/
|
|
477
|
+
* Currently not in use.
|
|
478
|
+
* @param {Value} input
|
|
479
|
+
* @returns {KeyValueObject}
|
|
480
|
+
*/
|
|
481
481
|
function convertValueToMultiEntryKey (input) {
|
|
482
482
|
return convertValueToKeyValueDecoded(input, null, true, true);
|
|
483
483
|
}
|
|
@@ -516,17 +516,17 @@ function getCopyBytesHeldByBufferSource (O) {
|
|
|
516
516
|
}
|
|
517
517
|
|
|
518
518
|
/**
|
|
519
|
-
* Shortcut utility to avoid returning full keys from `convertValueToKey`
|
|
520
|
-
* and subsequent need to process in calling code unless `fullKeys` is
|
|
521
|
-
* set; may throw.
|
|
522
|
-
* @param {Value} input
|
|
523
|
-
* @param {Value[]|null} [seen]
|
|
524
|
-
* @param {boolean} [multiEntry]
|
|
525
|
-
* @param {boolean} [fullKeys]
|
|
526
|
-
* @throws {TypeError} See `getCopyBytesHeldByBufferSource`
|
|
527
|
-
* @todo Document other allowable `input`
|
|
528
|
-
* @returns {KeyValueObject}
|
|
529
|
-
*/
|
|
519
|
+
* Shortcut utility to avoid returning full keys from `convertValueToKey`
|
|
520
|
+
* and subsequent need to process in calling code unless `fullKeys` is
|
|
521
|
+
* set; may throw.
|
|
522
|
+
* @param {Value} input
|
|
523
|
+
* @param {Value[]|null} [seen]
|
|
524
|
+
* @param {boolean} [multiEntry]
|
|
525
|
+
* @param {boolean} [fullKeys]
|
|
526
|
+
* @throws {TypeError} See `getCopyBytesHeldByBufferSource`
|
|
527
|
+
* @todo Document other allowable `input`
|
|
528
|
+
* @returns {KeyValueObject}
|
|
529
|
+
*/
|
|
530
530
|
function convertValueToKeyValueDecoded (input, seen, multiEntry, fullKeys) {
|
|
531
531
|
seen ||= [];
|
|
532
532
|
if (seen.includes(input)) {
|
|
@@ -623,12 +623,12 @@ function convertValueToMultiEntryKeyDecoded (key, fullKeys) {
|
|
|
623
623
|
}
|
|
624
624
|
|
|
625
625
|
/**
|
|
626
|
-
* An internal utility.
|
|
627
|
-
* @param {Value} input
|
|
628
|
-
* @param {Value[]|null|undefined} [seen]
|
|
629
|
-
* @throws {DOMException} `DataError`
|
|
630
|
-
* @returns {KeyValueObject}
|
|
631
|
-
*/
|
|
626
|
+
* An internal utility.
|
|
627
|
+
* @param {Value} input
|
|
628
|
+
* @param {Value[]|null|undefined} [seen]
|
|
629
|
+
* @throws {DOMException} `DataError`
|
|
630
|
+
* @returns {KeyValueObject}
|
|
631
|
+
*/
|
|
632
632
|
function convertValueToKeyRethrowingAndIfInvalid (input, seen) {
|
|
633
633
|
const key = convertValueToKey(input, seen);
|
|
634
634
|
if (key.invalid) {
|
|
@@ -649,26 +649,26 @@ function extractKeyFromValueUsingKeyPath (value, keyPath, multiEntry) {
|
|
|
649
649
|
return extractKeyValueDecodedFromValueUsingKeyPath(value, keyPath, multiEntry, true);
|
|
650
650
|
}
|
|
651
651
|
/**
|
|
652
|
-
* Not currently in use.
|
|
653
|
-
* @param {Value} value
|
|
654
|
-
* @param {KeyPath} keyPath
|
|
655
|
-
* @param {boolean} multiEntry
|
|
656
|
-
* @returns {KeyPathEvaluateValue}
|
|
657
|
-
*/
|
|
652
|
+
* Not currently in use.
|
|
653
|
+
* @param {Value} value
|
|
654
|
+
* @param {KeyPath} keyPath
|
|
655
|
+
* @param {boolean} multiEntry
|
|
656
|
+
* @returns {KeyPathEvaluateValue}
|
|
657
|
+
*/
|
|
658
658
|
function evaluateKeyPathOnValue (value, keyPath, multiEntry) {
|
|
659
659
|
return evaluateKeyPathOnValueToDecodedValue(value, keyPath, multiEntry, true);
|
|
660
660
|
}
|
|
661
661
|
|
|
662
662
|
/**
|
|
663
|
-
* May throw, return `{failure: true}` (e.g., non-object on keyPath resolution)
|
|
664
|
-
* or `{invalid: true}` (e.g., `NaN`).
|
|
665
|
-
* @param {Value} value
|
|
666
|
-
* @param {KeyPath} keyPath
|
|
667
|
-
* @param {boolean} [multiEntry]
|
|
668
|
-
* @param {boolean} [fullKeys]
|
|
669
|
-
* @returns {KeyValueObject|KeyPathEvaluateValue}
|
|
670
|
-
* @todo Document other possible return?
|
|
671
|
-
*/
|
|
663
|
+
* May throw, return `{failure: true}` (e.g., non-object on keyPath resolution)
|
|
664
|
+
* or `{invalid: true}` (e.g., `NaN`).
|
|
665
|
+
* @param {Value} value
|
|
666
|
+
* @param {KeyPath} keyPath
|
|
667
|
+
* @param {boolean} [multiEntry]
|
|
668
|
+
* @param {boolean} [fullKeys]
|
|
669
|
+
* @returns {KeyValueObject|KeyPathEvaluateValue}
|
|
670
|
+
* @todo Document other possible return?
|
|
671
|
+
*/
|
|
672
672
|
function extractKeyValueDecodedFromValueUsingKeyPath (value, keyPath, multiEntry, fullKeys) {
|
|
673
673
|
const r = evaluateKeyPathOnValueToDecodedValue(value, keyPath, multiEntry, fullKeys);
|
|
674
674
|
if (r.failure) {
|
|
@@ -899,11 +899,11 @@ function findMultiEntryMatches (keyEntry, range) {
|
|
|
899
899
|
}
|
|
900
900
|
|
|
901
901
|
/**
|
|
902
|
-
* Not currently in use but keeping for spec parity.
|
|
903
|
-
* @param {Key} key
|
|
904
|
-
* @throws {Error} Upon a "bad key"
|
|
905
|
-
* @returns {ValueType}
|
|
906
|
-
*/
|
|
902
|
+
* Not currently in use but keeping for spec parity.
|
|
903
|
+
* @param {Key} key
|
|
904
|
+
* @throws {Error} Upon a "bad key"
|
|
905
|
+
* @returns {ValueType}
|
|
906
|
+
*/
|
|
907
907
|
function convertKeyToValue (key) {
|
|
908
908
|
const {type, value} = key;
|
|
909
909
|
switch (type) {
|
|
@@ -985,10 +985,10 @@ const MAX_ALLOWED_CURRENT_NUMBER = 9007199254740992; // 2 ^ 53 (Also equal to `N
|
|
|
985
985
|
*/
|
|
986
986
|
|
|
987
987
|
/**
|
|
988
|
-
* @callback SQLFailureCallback
|
|
989
|
-
* @param {DOMException|Error} exception
|
|
990
|
-
* @returns {void}
|
|
991
|
-
*/
|
|
988
|
+
* @callback SQLFailureCallback
|
|
989
|
+
* @param {DOMException|Error} exception
|
|
990
|
+
* @returns {void}
|
|
991
|
+
*/
|
|
992
992
|
|
|
993
993
|
/**
|
|
994
994
|
*
|