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.
Files changed (38) hide show
  1. package/dist/DOMException.d.ts.map +1 -1
  2. package/dist/IDBCursor.d.ts +16 -16
  3. package/dist/IDBCursor.d.ts.map +1 -1
  4. package/dist/IDBFactory.d.ts +19 -19
  5. package/dist/IDBFactory.d.ts.map +1 -1
  6. package/dist/IDBKeyRange.d.ts +5 -5
  7. package/dist/IDBKeyRange.d.ts.map +1 -1
  8. package/dist/IDBTransaction.d.ts +3 -3
  9. package/dist/IDBTransaction.d.ts.map +1 -1
  10. package/dist/Key.d.ts +41 -41
  11. package/dist/Key.d.ts.map +1 -1
  12. package/dist/indexeddbshim-Key.js +64 -64
  13. package/dist/indexeddbshim-Key.js.map +1 -1
  14. package/dist/indexeddbshim-Key.min.js +1 -1
  15. package/dist/indexeddbshim-Key.min.js.map +1 -1
  16. package/dist/indexeddbshim-UnicodeIdentifiers-node.cjs +278 -236
  17. package/dist/indexeddbshim-UnicodeIdentifiers-node.cjs.map +1 -1
  18. package/dist/indexeddbshim-UnicodeIdentifiers.js +420 -366
  19. package/dist/indexeddbshim-UnicodeIdentifiers.js.map +1 -1
  20. package/dist/indexeddbshim-UnicodeIdentifiers.min.js +3 -3
  21. package/dist/indexeddbshim-UnicodeIdentifiers.min.js.map +1 -1
  22. package/dist/indexeddbshim-node.cjs +278 -236
  23. package/dist/indexeddbshim-node.cjs.map +1 -1
  24. package/dist/indexeddbshim-noninvasive.js +420 -366
  25. package/dist/indexeddbshim-noninvasive.js.map +1 -1
  26. package/dist/indexeddbshim-noninvasive.min.js +3 -3
  27. package/dist/indexeddbshim-noninvasive.min.js.map +1 -1
  28. package/dist/indexeddbshim.js +420 -366
  29. package/dist/indexeddbshim.js.map +1 -1
  30. package/dist/indexeddbshim.min.js +3 -3
  31. package/dist/indexeddbshim.min.js.map +1 -1
  32. package/package.json +9 -9
  33. package/src/DOMException.js +10 -10
  34. package/src/IDBCursor.js +16 -16
  35. package/src/IDBFactory.js +20 -20
  36. package/src/IDBKeyRange.js +5 -5
  37. package/src/IDBTransaction.js +3 -3
  38. package/src/Key.js +53 -53
@@ -1,4 +1,4 @@
1
- /*! indexeddbshim - v17.1.0 - 8/6/2026 */
1
+ /*! indexeddbshim - v17.2.0 - 8/18/2026 */
2
2
 
3
3
  'use strict';
4
4
 
@@ -2155,11 +2155,11 @@ const createDOMException = useNativeDOMException
2155
2155
  // eslint-disable-next-line @stylistic/operator-linebreak -- Need JSDoc
2156
2156
  ?
2157
2157
  /**
2158
- * @param {string} name
2159
- * @param {string} message
2160
- * @param {ErrorLike} [error]
2161
- * @returns {DOMException}
2162
- */
2158
+ * @param {string} name
2159
+ * @param {string} message
2160
+ * @param {ErrorLike} [error]
2161
+ * @returns {DOMException}
2162
+ */
2163
2163
  function (name, message, error) {
2164
2164
  logError(name, message, error);
2165
2165
  return createNativeDOMException(name, message);
@@ -2167,11 +2167,11 @@ function (name, message, error) {
2167
2167
  // eslint-disable-next-line @stylistic/operator-linebreak -- Need JSDoc
2168
2168
  :
2169
2169
  /**
2170
- * @param {string} name
2171
- * @param {string} message
2172
- * @param {ErrorLike} [error]
2173
- * @returns {Error}
2174
- */
2170
+ * @param {string} name
2171
+ * @param {string} message
2172
+ * @param {ErrorLike} [error]
2173
+ * @returns {Error}
2174
+ */
2175
2175
  function (name, message, error) {
2176
2176
  logError(name, message, error);
2177
2177
  return createNonNativeDOMException(name, message);
@@ -2714,14 +2714,14 @@ function cmp(first, second) {
2714
2714
  */
2715
2715
 
2716
2716
  /**
2717
- * @typedef {object} KeyValueObject
2718
- * @property {KeyType|"NaN"|"null"|"undefined"|"boolean"|"object"|"symbol"|
2719
- * "function"|"bigint"} type If not `KeyType`, indicates invalid value
2720
- * @property {Value} [value]
2721
- * @property {boolean} [invalid]
2722
- * @property {string} [message]
2723
- * @todo Specify acceptable `value` more precisely
2724
- */
2717
+ * @typedef {object} KeyValueObject
2718
+ * @property {KeyType|"NaN"|"null"|"undefined"|"boolean"|"object"|"symbol"|
2719
+ * "function"|"bigint"} type If not `KeyType`, indicates invalid value
2720
+ * @property {Value} [value]
2721
+ * @property {boolean} [invalid]
2722
+ * @property {string} [message]
2723
+ * @todo Specify acceptable `value` more precisely
2724
+ */
2725
2725
 
2726
2726
  /**
2727
2727
  * @typedef {number|string|Date|ArrayBuffer} ValueTypePrimitive
@@ -3138,10 +3138,10 @@ function convertValueToKey(input, seen) {
3138
3138
  }
3139
3139
 
3140
3140
  /**
3141
- * Currently not in use.
3142
- * @param {Value} input
3143
- * @returns {KeyValueObject}
3144
- */
3141
+ * Currently not in use.
3142
+ * @param {Value} input
3143
+ * @returns {KeyValueObject}
3144
+ */
3145
3145
  function convertValueToMultiEntryKey(input) {
3146
3146
  return convertValueToKeyValueDecoded(input, null, true, true);
3147
3147
  }
@@ -3176,17 +3176,17 @@ function getCopyBytesHeldByBufferSource(O) {
3176
3176
  }
3177
3177
 
3178
3178
  /**
3179
- * Shortcut utility to avoid returning full keys from `convertValueToKey`
3180
- * and subsequent need to process in calling code unless `fullKeys` is
3181
- * set; may throw.
3182
- * @param {Value} input
3183
- * @param {Value[]|null} [seen]
3184
- * @param {boolean} [multiEntry]
3185
- * @param {boolean} [fullKeys]
3186
- * @throws {TypeError} See `getCopyBytesHeldByBufferSource`
3187
- * @todo Document other allowable `input`
3188
- * @returns {KeyValueObject}
3189
- */
3179
+ * Shortcut utility to avoid returning full keys from `convertValueToKey`
3180
+ * and subsequent need to process in calling code unless `fullKeys` is
3181
+ * set; may throw.
3182
+ * @param {Value} input
3183
+ * @param {Value[]|null} [seen]
3184
+ * @param {boolean} [multiEntry]
3185
+ * @param {boolean} [fullKeys]
3186
+ * @throws {TypeError} See `getCopyBytesHeldByBufferSource`
3187
+ * @todo Document other allowable `input`
3188
+ * @returns {KeyValueObject}
3189
+ */
3190
3190
  function convertValueToKeyValueDecoded(input, seen, multiEntry, fullKeys) {
3191
3191
  seen ||= [];
3192
3192
  if (seen.includes(input)) {
@@ -3328,12 +3328,12 @@ function convertValueToMultiEntryKeyDecoded(key, fullKeys) {
3328
3328
  }
3329
3329
 
3330
3330
  /**
3331
- * An internal utility.
3332
- * @param {Value} input
3333
- * @param {Value[]|null|undefined} [seen]
3334
- * @throws {DOMException} `DataError`
3335
- * @returns {KeyValueObject}
3336
- */
3331
+ * An internal utility.
3332
+ * @param {Value} input
3333
+ * @param {Value[]|null|undefined} [seen]
3334
+ * @throws {DOMException} `DataError`
3335
+ * @returns {KeyValueObject}
3336
+ */
3337
3337
  function convertValueToKeyRethrowingAndIfInvalid(input, seen) {
3338
3338
  const key = convertValueToKey(input, seen);
3339
3339
  if (key.invalid) {
@@ -3354,26 +3354,26 @@ function extractKeyFromValueUsingKeyPath(value, keyPath, multiEntry) {
3354
3354
  return extractKeyValueDecodedFromValueUsingKeyPath(value, keyPath, multiEntry, true);
3355
3355
  }
3356
3356
  /**
3357
- * Not currently in use.
3358
- * @param {Value} value
3359
- * @param {KeyPath} keyPath
3360
- * @param {boolean} multiEntry
3361
- * @returns {KeyPathEvaluateValue}
3362
- */
3357
+ * Not currently in use.
3358
+ * @param {Value} value
3359
+ * @param {KeyPath} keyPath
3360
+ * @param {boolean} multiEntry
3361
+ * @returns {KeyPathEvaluateValue}
3362
+ */
3363
3363
  function evaluateKeyPathOnValue(value, keyPath, multiEntry) {
3364
3364
  return evaluateKeyPathOnValueToDecodedValue(value, keyPath);
3365
3365
  }
3366
3366
 
3367
3367
  /**
3368
- * May throw, return `{failure: true}` (e.g., non-object on keyPath resolution)
3369
- * or `{invalid: true}` (e.g., `NaN`).
3370
- * @param {Value} value
3371
- * @param {KeyPath} keyPath
3372
- * @param {boolean} [multiEntry]
3373
- * @param {boolean} [fullKeys]
3374
- * @returns {KeyValueObject|KeyPathEvaluateValue}
3375
- * @todo Document other possible return?
3376
- */
3368
+ * May throw, return `{failure: true}` (e.g., non-object on keyPath resolution)
3369
+ * or `{invalid: true}` (e.g., `NaN`).
3370
+ * @param {Value} value
3371
+ * @param {KeyPath} keyPath
3372
+ * @param {boolean} [multiEntry]
3373
+ * @param {boolean} [fullKeys]
3374
+ * @returns {KeyValueObject|KeyPathEvaluateValue}
3375
+ * @todo Document other possible return?
3376
+ */
3377
3377
  function extractKeyValueDecodedFromValueUsingKeyPath(value, keyPath, multiEntry, fullKeys) {
3378
3378
  const r = evaluateKeyPathOnValueToDecodedValue(value, keyPath);
3379
3379
  if (r.failure) {
@@ -3585,11 +3585,11 @@ function findMultiEntryMatches(keyEntry, range) {
3585
3585
  }
3586
3586
 
3587
3587
  /**
3588
- * Not currently in use but keeping for spec parity.
3589
- * @param {Key} key
3590
- * @throws {Error} Upon a "bad key"
3591
- * @returns {ValueType}
3592
- */
3588
+ * Not currently in use but keeping for spec parity.
3589
+ * @param {Key} key
3590
+ * @throws {Error} Upon a "bad key"
3591
+ * @returns {ValueType}
3592
+ */
3593
3593
  function convertKeyToValue(key) {
3594
3594
  const {
3595
3595
  type,
@@ -3683,10 +3683,10 @@ const MAX_ALLOWED_CURRENT_NUMBER = 9007199254740992; // 2 ^ 53 (Also equal to `N
3683
3683
  */
3684
3684
 
3685
3685
  /**
3686
- * @callback SQLFailureCallback
3687
- * @param {DOMException|Error} exception
3688
- * @returns {void}
3689
- */
3686
+ * @callback SQLFailureCallback
3687
+ * @param {DOMException|Error} exception
3688
+ * @returns {void}
3689
+ */
3690
3690
 
3691
3691
  /**
3692
3692
  *
@@ -3855,11 +3855,11 @@ const readonlyProperties$4 = /** @type {const} */['lower', 'upper', 'lowerOpen',
3855
3855
 
3856
3856
  /**
3857
3857
  * @typedef {globalThis.IDBKeyRange & {
3858
- * __lowerCached: string|null|false,
3859
- * __upperCached: string|null|false,
3860
- * __lowerOpen: boolean,
3861
- * }} IDBKeyRangeFull
3862
- */
3858
+ * __lowerCached: string|null|false,
3859
+ * __upperCached: string|null|false,
3860
+ * __lowerOpen: boolean,
3861
+ * }} IDBKeyRangeFull
3862
+ */
3863
3863
 
3864
3864
  /**
3865
3865
  * The IndexedDB KeyRange object.
@@ -5117,10 +5117,10 @@ IDBTransaction.__assertActive = function (tx) {
5117
5117
  };
5118
5118
 
5119
5119
  /**
5120
- * Used by our `EventTarget.prototype` library to implement bubbling/capturing.
5120
+ * Used by our `EventTarget.prototype` library to implement bubbling/capturing.
5121
5121
  * @this {IDBTransactionFull}
5122
- * @returns {import('./IDBDatabase.js').IDBDatabaseFull}
5123
- */
5122
+ * @returns {import('./IDBDatabase.js').IDBDatabaseFull}
5123
+ */
5124
5124
  IDBTransaction.prototype.__getParent = function () {
5125
5125
  return this.db;
5126
5126
  };
@@ -5154,7 +5154,7 @@ TypesonPromise.__typeson__type__ = "TypesonPromise", "undefined" != typeof Symbo
5154
5154
  }).then(r, n);
5155
5155
  });
5156
5156
  }, TypesonPromise.prototype.catch = function (e) {
5157
- return this.then(() => {}, e);
5157
+ return this.then(void 0, e);
5158
5158
  }, TypesonPromise.resolve = function (e) {
5159
5159
  return new TypesonPromise(t => {
5160
5160
  t(e);
@@ -5210,26 +5210,31 @@ function escapeKeyPathComponent(e) {
5210
5210
  function unescapeKeyPathComponent(e) {
5211
5211
  return e.replaceAll("~1", ".").replaceAll("~0", "~").replace(/^''$/u, "").replaceAll("''''", "''");
5212
5212
  }
5213
- function getByKeyPath(e, t) {
5214
- if ("" === t) return e;
5215
- if (null === e || "object" != typeof e) throw new TypeError("Unexpected non-object type");
5216
- const r = t.indexOf(".");
5217
- if (-1 !== r) {
5218
- const n = e[unescapeKeyPathComponent(t.slice(0, r))];
5219
- return void 0 === n ? void 0 : getByKeyPath(n, t.slice(r + 1));
5213
+ function getByKeyPath(t, r, n) {
5214
+ if ("" === r) return t;
5215
+ if (null === t || "object" != typeof t) throw new TypeError("Unexpected non-object type");
5216
+ const o = r.indexOf("."),
5217
+ s = unescapeKeyPathComponent(-1 === o ? r : r.slice(0, o));
5218
+ if (e(t, s)) {
5219
+ if (-1 !== o) {
5220
+ const e = t[s];
5221
+ return void 0 === e ? void 0 : getByKeyPath(e, r.slice(o + 1));
5222
+ }
5223
+ return t[s];
5220
5224
  }
5221
- return e[unescapeKeyPathComponent(t)];
5222
5225
  }
5223
- function setAtKeyPath(e, t, r) {
5224
- if ("" === t) return r;
5225
- let n = e,
5226
- o = t;
5226
+ function setAtKeyPath(t, r, n, o) {
5227
+ if ("" === r) return n;
5228
+ let s = t,
5229
+ a = r;
5227
5230
  for (;;) {
5228
- if (!n || "object" != typeof n) throw new TypeError("Unexpected non-object type");
5229
- if ("__proto__" === o) throw new TypeError("Invalid property");
5230
- const t = o.indexOf(".");
5231
- if (-1 === t) return n[unescapeKeyPathComponent(o)] = r, e;
5232
- n = n[unescapeKeyPathComponent(o.slice(0, t))], o = o.slice(t + 1);
5231
+ if (!s || "object" != typeof s) throw new TypeError("Unexpected non-object type");
5232
+ const r = a.indexOf("."),
5233
+ i = unescapeKeyPathComponent(-1 === r ? a : a.slice(0, r));
5234
+ if ("__proto__" === i) throw new TypeError("Invalid property");
5235
+ if (-1 === r) return s[i] = n, t;
5236
+ if (!e(s, i)) throw new TypeError("Invalid property");
5237
+ s = s[i], a = a.slice(r + 1);
5233
5238
  }
5234
5239
  }
5235
5240
  function getJSONType(e) {
@@ -5239,7 +5244,7 @@ function getJSONType(e) {
5239
5244
  * @file Typeson - JSON with types.
5240
5245
  * @license The MIT License (MIT)
5241
5246
  * @copyright (c) 2016-2018 David Fahlander, Brett Zamir
5242
- */
5247
+ */
5243
5248
  const {
5244
5249
  keys: r,
5245
5250
  hasOwn: n
@@ -5248,6 +5253,14 @@ const {
5248
5253
  isArray: o
5249
5254
  } = Array,
5250
5255
  s = ["type", "replaced", "iterateIn", "iterateUnsetNumeric", "addLength"];
5256
+ function setOwnEnumerable(e, t, r) {
5257
+ Object.defineProperty(e, t, {
5258
+ configurable: true,
5259
+ enumerable: true,
5260
+ value: r,
5261
+ writable: true
5262
+ });
5263
+ }
5251
5264
  function nestedPathsFirst(e, t) {
5252
5265
  if ("" === e.keypath) return -1;
5253
5266
  let r = e.keypath.match(/\./gu) ?? 0,
@@ -5303,10 +5316,16 @@ class Typeson {
5303
5316
  });
5304
5317
  }
5305
5318
  specialTypeNames(e, t, r = {}) {
5306
- return r.returnTypeNames = true, this.encapsulate(e, t, r);
5319
+ return this.encapsulate(e, t, {
5320
+ ...r,
5321
+ returnTypeNames: true
5322
+ });
5307
5323
  }
5308
5324
  rootTypeName(e, t, r = {}) {
5309
- return r.iterateNone = true, this.encapsulate(e, t, r);
5325
+ return this.encapsulate(e, t, {
5326
+ ...r,
5327
+ iterateNone: true
5328
+ });
5310
5329
  }
5311
5330
  encapsulate(e, t, a) {
5312
5331
  const i = {
@@ -5318,12 +5337,13 @@ class Typeson {
5318
5337
  sync: c
5319
5338
  } = i,
5320
5339
  y = {},
5321
- l = [],
5322
5340
  u = [],
5341
+ l = [],
5323
5342
  p = [],
5324
5343
  f = !("cyclic" in i) || i.cyclic,
5325
5344
  {
5326
- encapsulateObserver: d
5345
+ encapsulateObserver: d,
5346
+ encapsulateError: m
5327
5347
  } = i,
5328
5348
  finish = e => {
5329
5349
  const t = Object.values(y);
@@ -5347,14 +5367,10 @@ class Typeson {
5347
5367
  return await Promise.all(r.map(async function (r) {
5348
5368
  const n = [],
5349
5369
  [o] = t.splice(0, 1),
5350
- [s,, a, i, c, y, l] = o,
5351
- u = _encapsulate(s, r, a, i, n, true, l),
5352
- p = hasConstructorOf(u, TypesonPromise);
5353
- if (s && p) {
5354
- const t = await u.p;
5355
- return c[y] = t, checkPromises(e, n);
5356
- }
5357
- return s ? c[y] = u : e = p ? u.p : u, checkPromises(e, n);
5370
+ [s,, a, i, c, y, u] = o,
5371
+ l = _encapsulate(s, r, a, i, n, true, u),
5372
+ p = hasConstructorOf(l, TypesonPromise);
5373
+ return s && p ? (setOwnEnumerable(c, y, await l.p), checkPromises(e, n)) : (s ? setOwnEnumerable(c, y, l) : e = p ? l.p : l, checkPromises(e, n));
5358
5374
  })), e;
5359
5375
  },
5360
5376
  _adaptBuiltinStateObjectProperties = (e, t, r) => {
@@ -5368,45 +5384,70 @@ class Typeson {
5368
5384
  });
5369
5385
  },
5370
5386
  _encapsulate = (e, t, s, a, c, p, f) => {
5371
- let m,
5372
- h = {};
5373
- const g = d ? function (r) {
5374
- const n = f ?? a.type ?? getJSONType(t);
5375
- d(Object.assign(r ?? h, {
5376
- keypath: e,
5377
- value: t,
5378
- cyclic: s,
5379
- stateObj: a,
5380
- promisesData: c,
5381
- resolvingTypesonPromise: p,
5382
- awaitingTypesonPromise: hasConstructorOf(t, TypesonPromise)
5383
- }, {
5384
- type: n
5385
- }));
5386
- } : null;
5387
- if (["string", "boolean", "number", "undefined"].includes(typeof t)) return void 0 === t || t === 1 / 0 || 0 === t || t === -1 / 0 || Number.isNaN(t) ? (m = a.replaced ? t : replace(e, t, a, c, false, p, g), m !== t && (h = {
5388
- replaced: m
5389
- })) : m = t, g && g(), m;
5390
- if (null === t) return g && g(), t;
5387
+ let h,
5388
+ g = {};
5389
+ const b = d ? function (r) {
5390
+ const n = f ?? a.type ?? getJSONType(t);
5391
+ d(Object.assign(r ?? g, {
5392
+ keypath: e,
5393
+ value: t,
5394
+ cyclic: s,
5395
+ stateObj: a,
5396
+ promisesData: c,
5397
+ resolvingTypesonPromise: p,
5398
+ awaitingTypesonPromise: hasConstructorOf(t, TypesonPromise)
5399
+ }, {
5400
+ type: n
5401
+ }));
5402
+ } : null,
5403
+ getEncapsulatedValue = (e, t, r) => {
5404
+ try {
5405
+ return {
5406
+ value: _encapsulate(e, t[r], Boolean(s), a, c, p)
5407
+ };
5408
+ } catch (n) {
5409
+ if (!m) throw n;
5410
+ const o = f ?? a.type ?? getJSONType(t),
5411
+ s = m({
5412
+ keypath: e,
5413
+ error: n,
5414
+ parent: t,
5415
+ key: r,
5416
+ stateObj: a,
5417
+ type: o
5418
+ });
5419
+ if (!s) throw n;
5420
+ if ("substitute" in s) return {
5421
+ value: s.substitute,
5422
+ substitute: true
5423
+ };
5424
+ if (s.ignore) return;
5425
+ throw n;
5426
+ }
5427
+ };
5428
+ if (["string", "boolean", "number", "undefined"].includes(typeof t)) return void 0 === t || t === 1 / 0 || 0 === t || t === -1 / 0 || Number.isNaN(t) ? (h = a.replaced ? t : replace(e, t, a, c, false, p, b), h !== t && (g = {
5429
+ replaced: h
5430
+ })) : h = t, b && b(), h;
5431
+ if (null === t) return b && b(), t;
5391
5432
  if (s && t && "object" == typeof t && !a.iterateIn && !a.iterateUnsetNumeric) {
5392
- const r = l.indexOf(t);
5393
- if (-1 !== r) return y[e] = "#", g && g({
5394
- cyclicKeypath: u[r]
5395
- }), "#" + u[r];
5396
- true === s && (l.push(t), u.push(e));
5433
+ const r = u.indexOf(t);
5434
+ if (-1 !== r) return y[e] = "#", b && b({
5435
+ cyclicKeypath: l[r]
5436
+ }), "#" + l[r];
5437
+ true === s && (u.push(t), l.push(e));
5397
5438
  }
5398
- const b = isPlainObject(t),
5399
- v = o(t),
5400
- O = (b || v) && (!this.plainObjectReplacers.length || a.replaced) || a.iterateIn ? t : replace(e, t, a, c, b || v, null, g);
5401
- let w;
5402
- if (O !== t ? (m = O, h = {
5403
- replaced: O
5404
- }) : "" === e && hasConstructorOf(t, TypesonPromise) ? (c.push([e, t, s, a, void 0, void 0, a.type]), m = t) : v && "object" !== a.iterateIn || "array" === a.iterateIn ? (w = new Array(t.length), h = {
5405
- clone: w
5406
- }) : !b && (["function", "symbol"].includes(typeof t) || "toJSON" in t || hasConstructorOf(t, TypesonPromise) || hasConstructorOf(t, Promise) || hasConstructorOf(t, ArrayBuffer)) && "object" !== a.iterateIn ? m = t : (w = {}, a.addLength && (w.length = t.length), h = {
5407
- clone: w
5408
- }), g && g(), i.iterateNone) return w ?? m;
5409
- if (!w) return m;
5439
+ const v = isPlainObject(t),
5440
+ O = o(t),
5441
+ w = (v || O) && (!this.plainObjectReplacers.length || a.replaced) || a.iterateIn ? t : replace(e, t, a, c, v || O, null, b);
5442
+ let T;
5443
+ if (w !== t ? (h = w, g = {
5444
+ replaced: w
5445
+ }) : "" === e && hasConstructorOf(t, TypesonPromise) ? (c.push([e, t, s, a, void 0, void 0, a.type]), h = t) : O && "object" !== a.iterateIn || "array" === a.iterateIn ? (T = new Array(t.length), g = {
5446
+ clone: T
5447
+ }) : !v && ("object" != typeof t || "toJSON" in t || hasConstructorOf(t, TypesonPromise) || hasConstructorOf(t, Promise) || hasConstructorOf(t, ArrayBuffer)) && "object" !== a.iterateIn ? h = t : (T = {}, a.addLength && (T.length = t.length), g = {
5448
+ clone: T
5449
+ }), b && b(), i.iterateNone) return T ?? h;
5450
+ if (!T) return h;
5410
5451
  if (a.iterateIn) {
5411
5452
  for (const r in t) {
5412
5453
  const o = {
@@ -5414,11 +5455,12 @@ class Typeson {
5414
5455
  };
5415
5456
  _adaptBuiltinStateObjectProperties(a, o, () => {
5416
5457
  const n = e + (e ? "." : "") + escapeKeyPathComponent(r),
5417
- o = _encapsulate(n, t[r], Boolean(s), a, c, p);
5418
- hasConstructorOf(o, TypesonPromise) ? c.push([n, o, Boolean(s), a, w, r, a.type]) : void 0 !== o && (w[r] = o);
5458
+ o = getEncapsulatedValue(n, t, r),
5459
+ i = o && o.value;
5460
+ hasConstructorOf(i, TypesonPromise) ? c.push([n, i, Boolean(s), a, T, r, a.type]) : o && (void 0 !== i || "substitute" in o) && setOwnEnumerable(T, r, i);
5419
5461
  });
5420
5462
  }
5421
- g && g({
5463
+ b && b({
5422
5464
  endIterateIn: true,
5423
5465
  end: true
5424
5466
  });
@@ -5427,10 +5469,11 @@ class Typeson {
5427
5469
  _adaptBuiltinStateObjectProperties(a, {
5428
5470
  ownKeys: true
5429
5471
  }, () => {
5430
- const e = _encapsulate(n, t[r], Boolean(s), a, c, p);
5431
- hasConstructorOf(e, TypesonPromise) ? c.push([n, e, Boolean(s), a, w, r, a.type]) : void 0 !== e && (w[r] = e);
5472
+ const e = getEncapsulatedValue(n, t, r),
5473
+ o = e && e.value;
5474
+ hasConstructorOf(o, TypesonPromise) ? c.push([n, o, Boolean(s), a, T, r, a.type]) : e && (void 0 !== o || "substitute" in e) && setOwnEnumerable(T, r, o);
5432
5475
  });
5433
- }), g && g({
5476
+ }), b && b({
5434
5477
  endIterateOwn: true,
5435
5478
  end: true
5436
5479
  });
@@ -5443,21 +5486,21 @@ class Typeson {
5443
5486
  ownKeys: false
5444
5487
  }, () => {
5445
5488
  const e = _encapsulate(r, void 0, Boolean(s), a, c, p);
5446
- hasConstructorOf(e, TypesonPromise) ? c.push([r, e, Boolean(s), a, w, n, a.type]) : void 0 !== e && (w[n] = e);
5489
+ hasConstructorOf(e, TypesonPromise) ? c.push([r, e, Boolean(s), a, T, n, a.type]) : void 0 !== e && setOwnEnumerable(T, n, e);
5447
5490
  });
5448
5491
  }
5449
- g && g({
5492
+ b && b({
5450
5493
  endIterateUnsetNumeric: true,
5451
5494
  end: true
5452
5495
  });
5453
5496
  }
5454
- return w;
5497
+ return T;
5455
5498
  },
5456
5499
  replace = (e, t, r, n, o, s, a) => {
5457
5500
  const i = o ? this.plainObjectReplacers : this.nonplainObjectReplacers;
5458
- let l = i.length;
5459
- for (; l--;) {
5460
- const o = i[l];
5501
+ let u = i.length;
5502
+ for (; u--;) {
5503
+ const o = i[u];
5461
5504
  if (o.test(t, r)) {
5462
5505
  const {
5463
5506
  type: i
@@ -5472,24 +5515,24 @@ class Typeson {
5472
5515
  }), (c || !o.replaceAsync) && !o.replace) return a && a({
5473
5516
  typeDetected: true
5474
5517
  }), _encapsulate(e, t, f && "readonly", r, n, s, i);
5475
- let l;
5518
+ let u;
5476
5519
  if (a && a({
5477
5520
  replacing: true
5478
5521
  }), c || !o.replaceAsync) {
5479
5522
  if (void 0 === o.replace) throw new TypeError("Missing replacer");
5480
- l = o.replace(t, r);
5481
- } else l = o.replaceAsync(t, r);
5482
- return _encapsulate(e, l, f && "readonly", r, n, s, i);
5523
+ u = o.replace(t, r);
5524
+ } else u = o.replaceAsync(t, r);
5525
+ return _encapsulate(e, u, f && "readonly", r, n, s, i);
5483
5526
  }
5484
5527
  }
5485
5528
  return t;
5486
5529
  },
5487
- m = _encapsulate("", e, f, t ?? {}, p);
5530
+ h = _encapsulate("", e, f, t ?? {}, p);
5488
5531
  if (p.length) return c && i.throwOnBadSyncType ? (() => {
5489
5532
  throw new TypeError("Sync method requested but async result obtained");
5490
- })() : Promise.resolve(checkPromises(m, p)).then(finish);
5533
+ })() : Promise.resolve(checkPromises(h, p)).then(finish);
5491
5534
  if (!c && i.throwOnBadSyncType) throw new TypeError("Async method requested but sync result obtained");
5492
- return c && i.stringification ? [finish(m)] : c ? finish(m) : Promise.resolve(finish(m));
5535
+ return c && i.stringification ? [finish(h)] : c ? finish(h) : Promise.resolve(finish(h));
5493
5536
  }
5494
5537
  encapsulateSync(e, t, r) {
5495
5538
  return this.encapsulate(e, t, {
@@ -5525,15 +5568,15 @@ class Typeson {
5525
5568
  if (!i || "object" != typeof i || Array.isArray(i)) return finishRevival(e);
5526
5569
  const c = [],
5527
5570
  y = Object.create(null),
5528
- l = {};
5529
- let u = true;
5530
- i.$ && isPlainObject(i.$) && (e = e.$, i = i.$, u = false);
5571
+ u = {};
5572
+ let l = true;
5573
+ i.$ && isPlainObject(i.$) && (e = e.$, i = i.$, l = false);
5531
5574
  const executeReviver = (e, t) => {
5532
5575
  const [r] = this.revivers[e] ?? [];
5533
5576
  if (!r) throw new Error("Unregistered type: " + e);
5534
5577
  if (a && !("revive" in r)) return t;
5535
- if (!a && r.reviveAsync) return r.reviveAsync(t, l);
5536
- if (r.revive) return r.revive(t, l);
5578
+ if (!a && r.reviveAsync) return r.reviveAsync(t, u);
5579
+ if (r.revive) return r.revive(t, u);
5537
5580
  throw new Error("Missing reviver");
5538
5581
  },
5539
5582
  p = [];
@@ -5571,23 +5614,23 @@ class Typeson {
5571
5614
  }, void 0);
5572
5615
  })();
5573
5616
  let d;
5574
- return hasConstructorOf(f, TypesonPromise) ? d = f.then(() => e) : (d = function _revive(e, t, s, l, f) {
5575
- if (u && "$types" === e) return;
5617
+ return hasConstructorOf(f, TypesonPromise) ? d = f.then(() => e) : (d = function _revive(e, t, s, u, f) {
5618
+ if (l && "$types" === e) return;
5576
5619
  const d = p.length,
5577
- m = i[e],
5620
+ m = n(i, e) ? i[e] : void 0,
5578
5621
  h = o(t);
5579
5622
  if (h || isPlainObject(t)) {
5580
5623
  const o = h ? new Array(t.length) : {};
5581
5624
  for (r(t).forEach(r => {
5582
5625
  const n = _revive(e + (e ? "." : "") + escapeKeyPathComponent(r), t[r], s ?? o, o, r),
5583
- set = e => (hasConstructorOf(e, Undefined) ? o[r] = void 0 : void 0 !== e && (o[r] = e), e);
5626
+ set = e => (hasConstructorOf(e, Undefined) ? setOwnEnumerable(o, r, void 0) : void 0 !== e && setOwnEnumerable(o, r, e), e);
5584
5627
  hasConstructorOf(n, TypesonPromise) ? p.push(n.then(e => set(e))) : set(n);
5585
5628
  }), t = o; c.length;) {
5586
5629
  const [[e, t, r, o]] = c,
5587
5630
  s = n(y, t),
5588
5631
  a = s ? y[t] : getByKeyPath(e, t);
5589
5632
  if (!s && void 0 === a) break;
5590
- r[o] = a, c.shift();
5633
+ setOwnEnumerable(r, o, a), c.shift();
5591
5634
  }
5592
5635
  }
5593
5636
  if (!m) return y[e] = t, t;
@@ -5595,7 +5638,7 @@ class Typeson {
5595
5638
  const e = t.slice(1),
5596
5639
  r = n(y, e),
5597
5640
  o = r ? y[e] : getByKeyPath(s, e);
5598
- return r || void 0 !== o || c.push([s, e, l, f]), o;
5641
+ return r || void 0 !== o || c.push([s, e, u, f]), o;
5599
5642
  }
5600
5643
  const applyType = t => {
5601
5644
  const r = [].concat(m).reduce(function reducer(e, t) {
@@ -5635,11 +5678,10 @@ class Typeson {
5635
5678
  if ("#" === t) throw new TypeError("# cannot be used as a type name as it is reserved for cyclic objects");
5636
5679
  if (a.includes(t)) throw new TypeError("Plain JSON object types are reserved as type names");
5637
5680
  let r = e[t];
5638
- const s = r && "function" != typeof r && !Array.isArray(r) && r.testPlainObjects ? this.plainObjectReplacers : this.nonplainObjectReplacers,
5639
- i = s.filter(function (e) {
5640
- return e.type === t;
5641
- });
5642
- if (i.length && (s.splice(s.indexOf(i[0]), 1), delete this.revivers[t], delete this.types[t]), "function" == typeof r) {
5681
+ if ([this.plainObjectReplacers, this.nonplainObjectReplacers].forEach(e => {
5682
+ const r = e.findIndex(e => e.type === t);
5683
+ -1 !== r && e.splice(r, 1);
5684
+ }), delete this.revivers[t], delete this.types[t], "function" == typeof r) {
5643
5685
  const e = r;
5644
5686
  r = {
5645
5687
  test: t => t && t.constructor === e,
@@ -5657,13 +5699,13 @@ class Typeson {
5657
5699
  };
5658
5700
  }
5659
5701
  if (!r?.test) return;
5660
- const c = {
5702
+ const s = {
5661
5703
  type: t,
5662
5704
  test: r.test.bind(r)
5663
5705
  };
5664
- r.replace && (c.replace = r.replace.bind(r)), r.replaceAsync && (c.replaceAsync = r.replaceAsync.bind(r));
5665
- const y = "number" == typeof n.fallback ? n.fallback : n.fallback ? 0 : 1 / 0;
5666
- if (r.testPlainObjects ? this.plainObjectReplacers.splice(y, 0, c) : this.nonplainObjectReplacers.splice(y, 0, c), r.revive || r.reviveAsync) {
5706
+ r.replace && (s.replace = r.replace.bind(r)), r.replaceAsync && (s.replaceAsync = r.replaceAsync.bind(r));
5707
+ const i = "number" == typeof n.fallback ? n.fallback : n.fallback ? 0 : 1 / 0;
5708
+ if (r.testPlainObjects ? this.plainObjectReplacers.splice(i, 0, s) : this.nonplainObjectReplacers.splice(i, 0, s), r.revive || r.reviveAsync) {
5667
5709
  const e = {};
5668
5710
  r.revive && (e.revive = r.revive.bind(r)), r.reviveAsync && (e.reviveAsync = r.reviveAsync.bind(r)), this.revivers[t] = [e, {
5669
5711
  plain: r.testPlainObjects
@@ -5681,12 +5723,12 @@ class Undefined {}
5681
5723
  Undefined.__typeson__type__ = "TypesonUndefined";
5682
5724
  const a = ["null", "boolean", "number", "string", "array", "object"];
5683
5725
  for (var i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", c = new Uint8Array(256), y = 0; y < 64; y++) c[i.codePointAt(y)] = y;
5684
- var l = function encode(e, t, r) {
5726
+ var u = function encode(e, t, r) {
5685
5727
  null == r && (r = e.byteLength);
5686
5728
  for (var n = new Uint8Array(e, 0, r), o = n.length, s = "", a = 0; a < o; a += 3) s += i[n[a] >> 2], s += i[(3 & n[a]) << 4 | n[a + 1] >> 4], s += i[(15 & n[a + 1]) << 2 | n[a + 2] >> 6], s += i[63 & n[a + 2]];
5687
5729
  return o % 3 == 2 ? s = s.slice(0, -1) + "=" : o % 3 == 1 && (s = s.slice(0, -2) + "=="), s;
5688
5730
  },
5689
- u = function decode(e, t) {
5731
+ l = function decode(e, t) {
5690
5732
  var r = e.length;
5691
5733
  if (r % 4) throw new Error("Bad base64 length: not divisible by four");
5692
5734
  var n,
@@ -5696,8 +5738,8 @@ var l = function encode(e, t, r) {
5696
5738
  i = .75 * e.length,
5697
5739
  y = 0;
5698
5740
  "=" === e[e.length - 1] && (i--, "=" === e[e.length - 2] && i--);
5699
- for (var l = new ArrayBuffer(i, t), u = new Uint8Array(l), p = 0; p < r; p += 4) n = c[e.codePointAt(p)], o = c[e.codePointAt(p + 1)], s = c[e.codePointAt(p + 2)], a = c[e.codePointAt(p + 3)], u[y++] = n << 2 | o >> 4, u[y++] = (15 & o) << 4 | s >> 2, u[y++] = (3 & s) << 6 | 63 & a;
5700
- return l;
5741
+ for (var u = new ArrayBuffer(i, t), l = new Uint8Array(u), p = 0; p < r; p += 4) n = c[e.codePointAt(p)], o = c[e.codePointAt(p + 1)], s = c[e.codePointAt(p + 2)], a = c[e.codePointAt(p + 3)], l[y++] = n << 2 | o >> 4, l[y++] = (15 & o) << 4 | s >> 2, l[y++] = (3 & s) << 6 | 63 & a;
5742
+ return u;
5701
5743
  };
5702
5744
  const p = {
5703
5745
  arraybuffer: {
@@ -5708,14 +5750,14 @@ const p = {
5708
5750
  return -1 !== r ? {
5709
5751
  index: r
5710
5752
  } : (t.buffers.push(e), {
5711
- s: l(e),
5753
+ s: u(e),
5712
5754
  maxByteLength: e.maxByteLength,
5713
5755
  resizable: e.resizable
5714
5756
  });
5715
5757
  },
5716
5758
  revive(e, t) {
5717
5759
  if (t.buffers || (t.buffers = []), Object.hasOwn(e, "index")) return t.buffers[e.index];
5718
- const r = u(e.s, e.resizable ? {
5760
+ const r = l(e.s, e.resizable ? {
5719
5761
  maxByteLength: e.maxByteLength
5720
5762
  } : void 0);
5721
5763
  return t.buffers.push(r), r;
@@ -5818,7 +5860,7 @@ const b = {
5818
5860
  byteOffset: t,
5819
5861
  byteLength: r
5820
5862
  } : (n.buffers.push(e), {
5821
- encoded: l(e),
5863
+ encoded: u(e),
5822
5864
  maxByteLength: e.maxByteLength,
5823
5865
  resizable: e.resizable,
5824
5866
  byteOffset: t,
@@ -5836,7 +5878,7 @@ const b = {
5836
5878
  resizable: i
5837
5879
  } = e;
5838
5880
  let c;
5839
- return "index" in e ? c = t.buffers[s] : (c = u(o, i ? {
5881
+ return "index" in e ? c = t.buffers[s] : (c = l(o, i ? {
5840
5882
  maxByteLength: a
5841
5883
  } : a), t.buffers.push(c)), new DataView(c, r, n);
5842
5884
  }
@@ -6009,7 +6051,7 @@ function create$2(e) {
6009
6051
  };
6010
6052
  }
6011
6053
  [TypeError, RangeError, SyntaxError, ReferenceError, EvalError, URIError].forEach(e => create$2(e)), "undefined" != typeof AggregateError && create$2(AggregateError), "function" == typeof InternalError && create$2(InternalError);
6012
- const N = {
6054
+ const E = {
6013
6055
  file: {
6014
6056
  test: e => "File" === toStringTag(e),
6015
6057
  replace(e) {
@@ -6046,8 +6088,8 @@ const N = {
6046
6088
  })
6047
6089
  }
6048
6090
  },
6049
- _ = {
6050
- file: N.file,
6091
+ N = {
6092
+ file: E.file,
6051
6093
  filelist: {
6052
6094
  test: e => "FileList" === toStringTag(e),
6053
6095
  replace(e) {
@@ -6071,7 +6113,7 @@ const N = {
6071
6113
  }
6072
6114
  }
6073
6115
  },
6074
- B = {
6116
+ _ = {
6075
6117
  imagebitmap: {
6076
6118
  test: e => "ImageBitmap" === toStringTag(e) || e && e.dataset && "ImageBitmap" === e.dataset.toStringTag,
6077
6119
  replace(e) {
@@ -6106,7 +6148,7 @@ const N = {
6106
6148
  }
6107
6149
  }
6108
6150
  },
6109
- E = {
6151
+ B = {
6110
6152
  imagedata: {
6111
6153
  test: e => "ImageData" === toStringTag(e),
6112
6154
  replace: e => ({
@@ -6117,7 +6159,7 @@ const N = {
6117
6159
  revive: e => new ImageData(new Uint8ClampedArray(e.array), e.width, e.height)
6118
6160
  }
6119
6161
  },
6120
- C = {
6162
+ I = {
6121
6163
  infinity: {
6122
6164
  test: e => e === 1 / 0,
6123
6165
  replace: () => "Infinity",
@@ -6152,7 +6194,7 @@ const N = {
6152
6194
  revive: () => -0
6153
6195
  }
6154
6196
  },
6155
- k = {
6197
+ R = {
6156
6198
  StringObject: {
6157
6199
  test: e => "String" === toStringTag(e) && "object" == typeof e,
6158
6200
  replace: String,
@@ -6169,7 +6211,7 @@ const N = {
6169
6211
  revive: e => new Number(e)
6170
6212
  }
6171
6213
  },
6172
- $ = {
6214
+ K = {
6173
6215
  regexp: {
6174
6216
  test: e => "RegExp" === toStringTag(e),
6175
6217
  replace: e => ({
@@ -6182,7 +6224,7 @@ const N = {
6182
6224
  }) => new RegExp(e, t)
6183
6225
  }
6184
6226
  },
6185
- J = {
6227
+ z = {
6186
6228
  set: {
6187
6229
  test: e => "Set" === toStringTag(e),
6188
6230
  replace: e => e.values().toArray(),
@@ -6217,7 +6259,7 @@ const W = {};
6217
6259
  } : (n.buffers.push(e), {
6218
6260
  maxByteLength: e.maxByteLength,
6219
6261
  resizable: e.resizable,
6220
- encoded: l(e),
6262
+ encoded: u(e),
6221
6263
  byteOffset: t,
6222
6264
  length: r
6223
6265
  });
@@ -6233,7 +6275,7 @@ const W = {};
6233
6275
  resizable: c
6234
6276
  } = t;
6235
6277
  let y;
6236
- return "index" in t ? y = r.buffers[a] : (y = u(s, c ? {
6278
+ return "index" in t ? y = r.buffers[a] : (y = l(s, c ? {
6237
6279
  maxByteLength: i
6238
6280
  } : void 0), r.buffers.push(y)), new e(y, n, o);
6239
6281
  }
@@ -6275,8 +6317,8 @@ const Q = {
6275
6317
  revive() {}
6276
6318
  }
6277
6319
  }],
6278
- X = [M, C, L, D],
6279
- re = [G, Q, H, k, X, O, $, E, B, N, _, m, x, j].concat("function" == typeof Map ? U : [], "function" == typeof Set ? J : [], "function" == typeof ArrayBuffer ? p : [], "function" == typeof Uint8Array ? W : [], "function" == typeof DataView ? v : [], "undefined" != typeof crypto ? b : [], "undefined" != typeof BigInt ? [d, f] : [], "undefined" != typeof DOMException ? w : [], "undefined" != typeof DOMRect ? S : [], "undefined" != typeof DOMPoint ? A : [], "undefined" != typeof DOMQuad ? P : [], "undefined" != typeof DOMMatrix ? T : []),
6320
+ X = [M, I, L, D],
6321
+ re = [G, Q, H, R, X, O, K, B, _, E, N, m, x, j].concat("function" == typeof Map ? U : [], "function" == typeof Set ? z : [], "function" == typeof ArrayBuffer ? p : [], "function" == typeof Uint8Array ? W : [], "function" == typeof DataView ? v : [], "undefined" != typeof crypto ? b : [], "undefined" != typeof BigInt ? [d, f] : [], "undefined" != typeof DOMException ? w : [], "undefined" != typeof DOMRect ? S : [], "undefined" != typeof DOMPoint ? A : [], "undefined" != typeof DOMQuad ? P : [], "undefined" != typeof DOMMatrix ? T : []),
6280
6322
  ne = re.concat({
6281
6323
  checkDataCloneException: {
6282
6324
  test(e) {
@@ -8981,7 +9023,7 @@ function IDBFactory() {
8981
9023
  * __connections: {
8982
9024
  * [key: string]: import('./IDBDatabase.js').IDBDatabaseFull[]
8983
9025
  * }
8984
- * }} IDBFactoryFull
9026
+ * }} IDBFactoryFull
8985
9027
  */
8986
9028
 
8987
9029
  const IDBFactoryAlias = IDBFactory;
@@ -9528,14 +9570,14 @@ IDBFactory.prototype.cmp = function (key1, key2) {
9528
9570
  };
9529
9571
 
9530
9572
  /**
9531
- * May return outdated information if a database has since been deleted.
9532
- * @see https://github.com/w3c/IndexedDB/pull/240/files
9533
- * @this {IDBFactoryFull}
9534
- * @returns {Promise<{
9535
- * name: string,
9536
- * version: Integer
9537
- * }[]>}
9538
- */
9573
+ * May return outdated information if a database has since been deleted.
9574
+ * @see https://github.com/w3c/IndexedDB/pull/240/files
9575
+ * @this {IDBFactoryFull}
9576
+ * @returns {Promise<{
9577
+ * name: string,
9578
+ * version: Integer
9579
+ * }[]>}
9580
+ */
9539
9581
  IDBFactory.prototype.databases = function () {
9540
9582
  const me = this;
9541
9583
  let calledDbCreateError = false;
@@ -9584,17 +9626,17 @@ IDBFactory.prototype.databases = function () {
9584
9626
  };
9585
9627
 
9586
9628
  /**
9587
- * @todo forceClose: Test
9588
- * This is provided to facilitate unit-testing of the
9589
- * closing of a database connection with a forced flag:
9590
- * <https://w3c.github.io/IndexedDB/#steps-for-closing-a-database-connection>
9591
- * @param {string} dbName
9592
- * @param {Integer} connIdx
9593
- * @param {string} msg
9594
- * @throws {TypeError}
9595
- * @this {IDBFactoryFull}
9596
- * @returns {void}
9597
- */
9629
+ * @todo forceClose: Test
9630
+ * This is provided to facilitate unit-testing of the
9631
+ * closing of a database connection with a forced flag:
9632
+ * <https://w3c.github.io/IndexedDB/#steps-for-closing-a-database-connection>
9633
+ * @param {string} dbName
9634
+ * @param {Integer} connIdx
9635
+ * @param {string} msg
9636
+ * @throws {TypeError}
9637
+ * @this {IDBFactoryFull}
9638
+ * @returns {void}
9639
+ */
9598
9640
  IDBFactory.prototype.__forceClose = function (dbName, connIdx, msg) {
9599
9641
  const me = this;
9600
9642
  /**
@@ -10107,19 +10149,19 @@ IDBCursor.prototype.__findMultiEntry = function (key, primaryKey, tx, success, e
10107
10149
  */
10108
10150
 
10109
10151
  /**
10110
- * @callback SuccessArg
10111
- * @param {StructuredCloneValue} value
10112
- * @param {import('./IDBRequest.js').IDBRequestFull} req
10113
- * @returns {void}
10114
- */
10152
+ * @callback SuccessArg
10153
+ * @param {StructuredCloneValue} value
10154
+ * @param {import('./IDBRequest.js').IDBRequestFull} req
10155
+ * @returns {void}
10156
+ */
10115
10157
 
10116
10158
  /**
10117
- * @callback SuccessCallback
10118
- * @param {IndexedDBKey} key
10119
- * @param {StructuredCloneValue} value
10120
- * @param {IndexedDBKey} primaryKey
10121
- * @returns {void}
10122
- */
10159
+ * @callback SuccessCallback
10160
+ * @param {IndexedDBKey} key
10161
+ * @param {StructuredCloneValue} value
10162
+ * @param {IndexedDBKey} primaryKey
10163
+ * @returns {void}
10164
+ */
10123
10165
 
10124
10166
  /**
10125
10167
  * Creates an "onsuccess" callback.
@@ -10147,11 +10189,11 @@ IDBCursor.prototype.__onsuccess = function (success) {
10147
10189
 
10148
10190
  /**
10149
10191
  * @typedef {{
10150
- * matchingKey: string,
10151
- * key: string,
10152
- * [k: string]: string
10153
- * }} RowItemNonNull
10154
- */
10192
+ * matchingKey: string,
10193
+ * key: string,
10194
+ * [k: string]: string
10195
+ * }} RowItemNonNull
10196
+ */
10155
10197
 
10156
10198
  /**
10157
10199
  *