indexeddbshim 15.0.1 → 15.0.2

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 (37) hide show
  1. package/README.md +1 -1
  2. package/dist/indexeddbshim-Key.js +15 -14
  3. package/dist/indexeddbshim-Key.js.map +1 -1
  4. package/dist/indexeddbshim-Key.min.js +1 -1
  5. package/dist/indexeddbshim-Key.min.js.map +1 -1
  6. package/dist/indexeddbshim-UnicodeIdentifiers-node.cjs +117 -107
  7. package/dist/indexeddbshim-UnicodeIdentifiers-node.cjs.map +1 -1
  8. package/dist/indexeddbshim-UnicodeIdentifiers.js +139 -121
  9. package/dist/indexeddbshim-UnicodeIdentifiers.js.map +1 -1
  10. package/dist/indexeddbshim-UnicodeIdentifiers.min.js +2 -2
  11. package/dist/indexeddbshim-UnicodeIdentifiers.min.js.map +1 -1
  12. package/dist/indexeddbshim-node.cjs +115 -105
  13. package/dist/indexeddbshim-node.cjs.map +1 -1
  14. package/dist/indexeddbshim-noninvasive.js +133 -115
  15. package/dist/indexeddbshim-noninvasive.js.map +1 -1
  16. package/dist/indexeddbshim-noninvasive.min.js +2 -2
  17. package/dist/indexeddbshim-noninvasive.min.js.map +1 -1
  18. package/dist/indexeddbshim.js +119 -109
  19. package/dist/indexeddbshim.js.map +1 -1
  20. package/dist/indexeddbshim.min.js +2 -2
  21. package/dist/indexeddbshim.min.js.map +1 -1
  22. package/package.json +13 -29
  23. package/src/DOMException.js +5 -4
  24. package/src/DOMStringList.js +4 -3
  25. package/src/IDBCursor.js +4 -4
  26. package/src/IDBDatabase.js +2 -2
  27. package/src/IDBFactory.js +15 -12
  28. package/src/IDBIndex.js +7 -6
  29. package/src/IDBKeyRange.js +3 -3
  30. package/src/IDBObjectStore.js +10 -9
  31. package/src/IDBTransaction.js +5 -5
  32. package/src/IDBVersionChangeEvent.js +1 -1
  33. package/src/Key.js +1 -1
  34. package/src/Sca.js +0 -1
  35. package/src/UnicodeIdentifiers.js +2 -2
  36. package/src/setGlobalVars.js +5 -2
  37. package/src/util.js +2 -2
@@ -1,4 +1,4 @@
1
- /*! indexeddbshim - v15.0.0 - 8/3/2024 */
1
+ /*! indexeddbshim - v15.0.1 - 9/5/2024 */
2
2
 
3
3
  'use strict';
4
4
 
@@ -529,7 +529,7 @@ function EventTarget() {
529
529
  * "addDefaultEventListener"|"removeDefaultEventListener"|"hasDefaultEventListener"
530
530
  * } ListenerName
531
531
  */
532
- Object.assign(EventTarget.prototype, ['Early', '', 'Late', 'Default'].reduce(function ( /** @type {{[key: string]: Function}} */
532
+ Object.assign(EventTarget.prototype, ['Early', '', 'Late', 'Default'].reduce(function (/** @type {{[key: string]: Function}} */
533
533
  obj, listenerType) {
534
534
  ['add', 'remove', 'has'].forEach(function (method) {
535
535
  var mainMethod = /** @type {ListenerName} */method + listenerType + 'EventListener';
@@ -1120,7 +1120,7 @@ const CFG = /** @type {ConfigValues} */{};
1120
1120
  * @returns {void}
1121
1121
  */
1122
1122
  val => {
1123
- if (!/^(?::memory:|file::memory:(\?[^#]*)?(#.*)?)?$/u.test( /** @type {string} */val)) {
1123
+ if (!/^(?::memory:|file::memory:(\?[^#]*)?(#.*)?)?$/u.test(/** @type {string} */val)) {
1124
1124
  throw new TypeError('`memoryDatabase` must be the empty string, ":memory:", or a ' + '"file::memory:[?queryString][#hash] URL".');
1125
1125
  }
1126
1126
  }],
@@ -1264,7 +1264,7 @@ function escapeDatabaseNameForSQLAndFiles(db) {
1264
1264
  }
1265
1265
  if (CFG.databaseCharacterEscapeList !== false) {
1266
1266
  db = db.replace(CFG.databaseCharacterEscapeList ? new RegExp(CFG.databaseCharacterEscapeList, 'gu') : /[\u0000-\u001F\u007F"*/:<>?\\|]/gu,
1267
- // eslint-disable-line no-control-regex
1267
+ // eslint-disable-line no-control-regex -- Controls needed
1268
1268
  function (n0) {
1269
1269
  // eslint-disable-next-line unicorn/prefer-code-point -- Switch to `codePointAt`?
1270
1270
  return '^1' + n0.charCodeAt(0).toString(16).padStart(2, '0');
@@ -1600,7 +1600,7 @@ function convertToDOMString(v, treatNullAs) {
1600
1600
  function ToString(o) {
1601
1601
  // Todo: See `es-abstract/es7`
1602
1602
  // `String()` will not throw with Symbols
1603
- return '' + o; // eslint-disable-line no-implicit-coercion
1603
+ return '' + o; // eslint-disable-line no-implicit-coercion -- Need to throw with symbols
1604
1604
  }
1605
1605
 
1606
1606
  /**
@@ -1677,7 +1677,7 @@ function IDBVersionChangeEvent(type /* , eventInitDict */) {
1677
1677
  this.toString = function () {
1678
1678
  return '[object IDBVersionChangeEvent]';
1679
1679
  };
1680
- // eslint-disable-next-line prefer-rest-params
1680
+ // eslint-disable-next-line prefer-rest-params -- API
1681
1681
  this.__eventInitDict = arguments[1] || {};
1682
1682
  }
1683
1683
 
@@ -1842,10 +1842,10 @@ function createNonNativeDOMExceptionClass() {
1842
1842
  function DOMException(message, name) {
1843
1843
  // const err = Error.prototype.constructor.call(this, message); // Any use to this? Won't set this.message
1844
1844
  this[Symbol.toStringTag] = 'DOMException';
1845
- this._code = name in codes ? codes[( /** @type {Code} */name)] : legacyCodes[( /** @type {LegacyCode} */name)] || 0;
1845
+ this._code = name in codes ? codes[(/** @type {Code} */name)] : legacyCodes[(/** @type {LegacyCode} */name)] || 0;
1846
1846
  this._name = name || 'Error';
1847
1847
  // We avoid `String()` in this next line as it converts Symbols
1848
- this._message = message === undefined ? '' : '' + message; // eslint-disable-line no-implicit-coercion
1848
+ this._message = message === undefined ? '' : '' + message; // eslint-disable-line no-implicit-coercion -- Don't convert symbols
1849
1849
  Object.defineProperty(this, 'code', {
1850
1850
  configurable: true,
1851
1851
  enumerable: true,
@@ -1873,12 +1873,12 @@ function createNonNativeDOMExceptionClass() {
1873
1873
  // Necessary for W3C tests which complains if `DOMException` has properties on its "own" prototype
1874
1874
 
1875
1875
  // class DummyDOMException extends Error {}; // Sometimes causing problems in Node
1876
- /* eslint-disable func-name-matching */
1876
+ /* eslint-disable func-name-matching -- See above */
1877
1877
  /**
1878
1878
  * @class
1879
1879
  */
1880
1880
  const DummyDOMException = function DOMException() {/* */};
1881
- /* eslint-enable func-name-matching */
1881
+ /* eslint-enable func-name-matching -- See above */
1882
1882
  DummyDOMException.prototype = Object.create(Error.prototype); // Intended for subclassing
1883
1883
  /** @type {const} */
1884
1884
  ['name', 'message'].forEach(prop => {
@@ -1979,7 +1979,7 @@ function createNonNativeDOMException(name, message) {
1979
1979
  */
1980
1980
  function logError(name, message, error) {
1981
1981
  if (CFG.DEBUG) {
1982
- const msg = error && typeof error === 'object' && error.message ? error.message : ( /** @type {string} */error);
1982
+ const msg = error && typeof error === 'object' && error.message ? error.message : (/** @type {string} */error);
1983
1983
  const method = typeof console.error === 'function' ? 'error' : 'log';
1984
1984
  console[method](name + ': ' + message + '. ' + (msg || ''));
1985
1985
  if (console.trace) {
@@ -2081,7 +2081,8 @@ try {
2081
2081
  // Native DOMException works as expected
2082
2082
  useNativeDOMException = true;
2083
2083
  }
2084
- } catch (e) {}
2084
+ // eslint-disable-next-line no-unused-vars -- Problem with commonJS rollup
2085
+ } catch (err) {}
2085
2086
  const createDOMException = useNativeDOMException
2086
2087
  // eslint-disable-next-line @stylistic/operator-linebreak -- Need JSDoc
2087
2088
  ?
@@ -2389,7 +2390,7 @@ function SyncPromise(fn) {
2389
2390
  // assume that we will resolve/reject (truly) synchronously
2390
2391
  // and thus we avoid flagging checks about whether we've
2391
2392
  // already resolved/rejected.
2392
- if ( /** @type {Callbacks} */that.c[state].length) {
2393
+ if (/** @type {Callbacks} */that.c[state].length) {
2393
2394
  that.c = null;
2394
2395
  }
2395
2396
  }
@@ -2427,7 +2428,7 @@ function SyncPromise(fn) {
2427
2428
  SyncPromise.prototype.then = function (cb, errBack) {
2428
2429
  /* eslint-enable unicorn/no-thenable -- Promise API */
2429
2430
  const that = this;
2430
- return new SyncPromise( /** @type {ResolveReject} */
2431
+ return new SyncPromise(/** @type {ResolveReject} */
2431
2432
  function (resolve, reject) {
2432
2433
  const rej = typeof errBack === 'function' ? errBack : reject;
2433
2434
 
@@ -2457,7 +2458,7 @@ SyncPromise.prototype.then = function (cb, errBack) {
2457
2458
  */
2458
2459
  SyncPromise.prototype.catch = function (cb) {
2459
2460
  const that = this;
2460
- return new SyncPromise( /** @type {ResolveReject} */
2461
+ return new SyncPromise(/** @type {ResolveReject} */
2461
2462
  function (resolve, reject) {
2462
2463
  /**
2463
2464
  * @returns {void}
@@ -2486,7 +2487,7 @@ SyncPromise.prototype.catch = function (cb) {
2486
2487
  * @returns {SyncPromise}
2487
2488
  */
2488
2489
  SyncPromise.all = function (promises) {
2489
- return new SyncPromise( /** @type {ResolveReject} */
2490
+ return new SyncPromise(/** @type {ResolveReject} */
2490
2491
  (resolve, reject) => {
2491
2492
  let l = promises.length;
2492
2493
  /** @type {ArbitraryValue[]} */
@@ -2496,8 +2497,8 @@ SyncPromise.all = function (promises) {
2496
2497
  return;
2497
2498
  }
2498
2499
  promises.forEach((p, i) => {
2499
- if (isPromise( /** @type {PromiseLike<any>} */p)) {
2500
- addReject( /** @type {PromiseLike<any>} */p.then( /** @type {OnFulfilled} */
2500
+ if (isPromise(/** @type {PromiseLike<any>} */p)) {
2501
+ addReject(/** @type {PromiseLike<any>} */p.then(/** @type {OnFulfilled} */
2501
2502
  res => {
2502
2503
  newPromises[i] = res;
2503
2504
  --l || resolve(newPromises);
@@ -2516,11 +2517,11 @@ SyncPromise.all = function (promises) {
2516
2517
  */
2517
2518
  SyncPromise.race = function (promises) {
2518
2519
  let resolved = false;
2519
- return new SyncPromise( /** @type {ResolveReject} */
2520
+ return new SyncPromise(/** @type {ResolveReject} */
2520
2521
  (resolve, reject) => {
2521
2522
  promises.some((p, i) => {
2522
- if (isPromise( /** @type {PromiseLike<any>} */p)) {
2523
- addReject( /** @type {PromiseLike<any>} */p.then( /** @type {OnFulfilled} */
2523
+ if (isPromise(/** @type {PromiseLike<any>} */p)) {
2524
+ addReject(/** @type {PromiseLike<any>} */p.then(/** @type {OnFulfilled} */
2524
2525
  res => {
2525
2526
  if (resolved) {
2526
2527
  return;
@@ -2542,7 +2543,7 @@ SyncPromise.race = function (promises) {
2542
2543
  * @returns {SyncPromise}
2543
2544
  */
2544
2545
  SyncPromise.resolve = function (val) {
2545
- return new SyncPromise( /** @type {ResolveReject} */
2546
+ return new SyncPromise(/** @type {ResolveReject} */
2546
2547
  (resolve, reject) => {
2547
2548
  resolve(val);
2548
2549
  });
@@ -2553,7 +2554,7 @@ SyncPromise.resolve = function (val) {
2553
2554
  * @returns {SyncPromise}
2554
2555
  */
2555
2556
  SyncPromise.reject = function (val) {
2556
- return new SyncPromise( /** @type {ResolveReject} */
2557
+ return new SyncPromise(/** @type {ResolveReject} */
2557
2558
  (resolve, reject) => {
2558
2559
  reject(val);
2559
2560
  });
@@ -2657,7 +2658,7 @@ const keyTypeToEncodedChar = {
2657
2658
  };
2658
2659
  const keyTypes = /** @type {(KeyType|"invalid")[]} */Object.keys(keyTypeToEncodedChar);
2659
2660
  keyTypes.forEach(k => {
2660
- keyTypeToEncodedChar[k] = String.fromCodePoint( /** @type {number} */keyTypeToEncodedChar[k]);
2661
+ keyTypeToEncodedChar[k] = String.fromCodePoint(/** @type {number} */keyTypeToEncodedChar[k]);
2661
2662
  });
2662
2663
  const encodedCharToKeyType = keyTypes.reduce((o, k) => {
2663
2664
  o[keyTypeToEncodedChar[k]] = k;
@@ -3021,7 +3022,7 @@ function getKeyType(key) {
3021
3022
  return 'binary';
3022
3023
  }
3023
3024
  const keyType = typeof key;
3024
- return ['string', 'number'].includes(keyType) ? ( /** @type {"string"|"number"} */keyType) : 'invalid';
3025
+ return ['string', 'number'].includes(keyType) ? (/** @type {"string"|"number"} */keyType) : 'invalid';
3025
3026
  }
3026
3027
 
3027
3028
  /**
@@ -3129,7 +3130,7 @@ function convertValueToKeyValueDecoded(input, seen, multiEntry, fullKeys) {
3129
3130
  // May throw (if detached)
3130
3131
  // Get a copy of the bytes held by the buffer source
3131
3132
  // https://heycam.github.io/webidl/#ref-for-dfn-get-buffer-source-copy-2
3132
- const octets = getCopyBytesHeldByBufferSource( /** @type {BufferSource} */input);
3133
+ const octets = getCopyBytesHeldByBufferSource(/** @type {BufferSource} */input);
3133
3134
  return {
3134
3135
  type: 'binary',
3135
3136
  value: octets
@@ -3352,7 +3353,7 @@ function evaluateKeyPathOnValueToDecodedValue(value, keyPath, multiEntry, fullKe
3352
3353
  value = /** @type {File} */value[idntfr];
3353
3354
  break;
3354
3355
  case 'lastModifiedDate':
3355
- value = new Date( /** @type {File} */value.lastModified);
3356
+ value = new Date(/** @type {File} */value.lastModified);
3356
3357
  break;
3357
3358
  }
3358
3359
  } else if (!isObj(value) || !Object.hasOwn(value, idntfr)) {
@@ -3386,7 +3387,7 @@ function injectKeyIntoValueUsingKeyPath(value, key, keyPath) {
3386
3387
  }
3387
3388
  value = value[identifier];
3388
3389
  });
3389
- value[( /** @type {string} */last)] = key; // key is already a `keyValue` in our processing so no need to convert
3390
+ value[(/** @type {string} */last)] = key; // key is already a `keyValue` in our processing so no need to convert
3390
3391
  }
3391
3392
 
3392
3393
  /**
@@ -3667,7 +3668,7 @@ function generateKeyForStore(tx, store, cb, sqlFailCb) {
3667
3668
  getCurrentNumber(tx, store, function (key) {
3668
3669
  if (key > MAX_ALLOWED_CURRENT_NUMBER) {
3669
3670
  // 2 ^ 53 (See <https://github.com/w3c/IndexedDB/issues/147>)
3670
- cb('failure'); // eslint-disable-line n/no-callback-literal
3671
+ cb('failure');
3671
3672
  return;
3672
3673
  }
3673
3674
  // Increment current number by 1 (we cannot leverage SQLite's
@@ -3793,7 +3794,7 @@ IDBKeyRange.__createInstance = function (lower, upper, lowerOpen, upperOpen) {
3793
3794
  convertValueToKeyRethrowingAndIfInvalid(upper);
3794
3795
  }
3795
3796
  if (lower !== undefined && upper !== undefined && lower !== upper) {
3796
- if ( /** @type {string} */encode$1(lower) > ( /** @type {string} */encode$1(upper))) {
3797
+ if (/** @type {string} */encode$1(lower) > (/** @type {string} */encode$1(upper))) {
3797
3798
  throw createDOMException('DataError', '`lower` must not be greater than `upper` argument in `bound()` call.');
3798
3799
  }
3799
3800
  }
@@ -3844,7 +3845,7 @@ IDBKeyRange.lowerBound = function (value /* , open */) {
3844
3845
  if (!arguments.length) {
3845
3846
  throw new TypeError('IDBKeyRange.lowerBound requires a value argument');
3846
3847
  }
3847
- // eslint-disable-next-line prefer-rest-params
3848
+ // eslint-disable-next-line prefer-rest-params -- API
3848
3849
  return IDBKeyRange.__createInstance(value, undefined, arguments[1], true);
3849
3850
  };
3850
3851
 
@@ -3856,7 +3857,7 @@ IDBKeyRange.upperBound = function (value /* , open */) {
3856
3857
  if (!arguments.length) {
3857
3858
  throw new TypeError('IDBKeyRange.upperBound requires a value argument');
3858
3859
  }
3859
- // eslint-disable-next-line prefer-rest-params
3860
+ // eslint-disable-next-line prefer-rest-params -- API
3860
3861
  return IDBKeyRange.__createInstance(undefined, value, true, arguments[1]);
3861
3862
  };
3862
3863
 
@@ -3869,7 +3870,7 @@ IDBKeyRange.bound = function (lower, upper /* , lowerOpen, upperOpen */) {
3869
3870
  if (arguments.length <= 1) {
3870
3871
  throw new TypeError('IDBKeyRange.bound requires lower and upper arguments');
3871
3872
  }
3872
- // eslint-disable-next-line prefer-rest-params
3873
+ // eslint-disable-next-line prefer-rest-params -- API
3873
3874
  return IDBKeyRange.__createInstance(lower, upper, arguments[2], arguments[3]);
3874
3875
  };
3875
3876
  IDBKeyRange.prototype[Symbol.toStringTag] = 'IDBKeyRangePrototype';
@@ -3934,7 +3935,7 @@ function setSQLForKeyRange(range, quotedKeyColumnName, sql, sqlValues, addAnd, c
3934
3935
  encodedUpperKey = checkCached ? range.__upperCached : encode$1(range.upper);
3935
3936
  }
3936
3937
  if (hasLower) {
3937
- sqlValues.push(escapeSQLiteStatement( /** @type {string} */encodedLowerKey));
3938
+ sqlValues.push(escapeSQLiteStatement(/** @type {string} */encodedLowerKey));
3938
3939
  if (hasUpper && encodedLowerKey === encodedUpperKey && !range.lowerOpen && !range.upperOpen) {
3939
3940
  sql.push(quotedKeyColumnName, '=', '?');
3940
3941
  return;
@@ -3946,7 +3947,7 @@ function setSQLForKeyRange(range, quotedKeyColumnName, sql, sqlValues, addAnd, c
3946
3947
  }
3947
3948
  if (hasUpper) {
3948
3949
  sql.push(quotedKeyColumnName, range.upperOpen ? '<' : '<=', '?');
3949
- sqlValues.push(escapeSQLiteStatement( /** @type {string} */encodedUpperKey));
3950
+ sqlValues.push(escapeSQLiteStatement(/** @type {string} */encodedUpperKey));
3950
3951
  }
3951
3952
  }
3952
3953
  }
@@ -4008,7 +4009,8 @@ if (Object.defineProperty) {
4008
4009
  if (testObject.test) {
4009
4010
  cleanInterface = true;
4010
4011
  }
4011
- } catch (e) {
4012
+ // eslint-disable-next-line no-unused-vars -- Problem with commonJS rollup
4013
+ } catch (err) {
4012
4014
  // Object.defineProperty does not work as intended.
4013
4015
  }
4014
4016
  }
@@ -4091,7 +4093,7 @@ DOMStringList.prototype = {
4091
4093
  * @returns {void}
4092
4094
  */
4093
4095
  forEach(cb, thisArg) {
4094
- // eslint-disable-next-line unicorn/no-array-callback-reference, unicorn/no-array-method-this-argument
4096
+ // eslint-disable-next-line unicorn/no-array-callback-reference, unicorn/no-array-method-this-argument -- Convenient
4095
4097
  this._items.forEach(cb, thisArg);
4096
4098
  },
4097
4099
  /**
@@ -4100,7 +4102,7 @@ DOMStringList.prototype = {
4100
4102
  * @returns {any[]}
4101
4103
  */
4102
4104
  map(cb, thisArg) {
4103
- // eslint-disable-next-line unicorn/no-array-callback-reference, unicorn/no-array-method-this-argument
4105
+ // eslint-disable-next-line unicorn/no-array-callback-reference, unicorn/no-array-method-this-argument -- Convenient
4104
4106
  return this._items.map(cb, thisArg);
4105
4107
  },
4106
4108
  /**
@@ -4356,7 +4358,6 @@ IDBTransaction.__createInstance = function (db, storeNames, mode) {
4356
4358
 
4357
4359
  // @ts-expect-error It's ok
4358
4360
  IDBTransaction.prototype = EventTargetFactory.createInstance({
4359
- // eslint-disable-next-line n/no-sync -- API
4360
4361
  defaultSync: true,
4361
4362
  // Ensure EventTarget preserves our properties
4362
4363
  extraProperties: ['complete']
@@ -4511,7 +4512,7 @@ IDBTransaction.prototype.__executeRequests = function () {
4511
4512
  }
4512
4513
  q.op(tx, q.args, success, error, executeNextRequest);
4513
4514
  } catch (e) {
4514
- error( /** @type {Error} */e);
4515
+ error(/** @type {Error} */e);
4515
4516
  }
4516
4517
  }
4517
4518
  }
@@ -4522,7 +4523,7 @@ IDBTransaction.prototype.__executeRequests = function () {
4522
4523
  // Not a genuine SQL error
4523
4524
  return;
4524
4525
  }
4525
- const err = webSQLErrback( /** @type {SQLError} */webSQLErr);
4526
+ const err = webSQLErrback(/** @type {SQLError} */webSQLErr);
4526
4527
  me.__abortTransaction(err);
4527
4528
  }, function () {
4528
4529
  // For Node, we don't need to try running here as we can keep
@@ -4723,7 +4724,7 @@ IDBTransaction.prototype.objectStore = function (objectStoreName) {
4723
4724
  }
4724
4725
  IDBTransaction.__assertNotFinished(me);
4725
4726
  if (me.__objectStoreNames.indexOf(objectStoreName) === -1) {
4726
- // eslint-disable-line unicorn/prefer-includes
4727
+ // eslint-disable-line unicorn/prefer-includes -- Not supported
4727
4728
  throw createDOMException('NotFoundError', objectStoreName + ' is not participating in this transaction');
4728
4729
  }
4729
4730
  const store = me.db.__objectStores[objectStoreName];
@@ -4760,7 +4761,7 @@ IDBTransaction.prototype.__abortTransaction = function (err) {
4760
4761
  me.__objectStoreNames = me.db.__oldObjectStoreNames;
4761
4762
  Object.values(me.db.__objectStores).concat(Object.values(me.__storeHandles)).forEach(function (store) {
4762
4763
  // Store was already created so we restore to name before the rename
4763
- if ('__pendingName' in store && me.db.__oldObjectStoreNames.indexOf(store.__pendingName) > -1 // eslint-disable-line unicorn/prefer-includes
4764
+ if ('__pendingName' in store && me.db.__oldObjectStoreNames.indexOf(store.__pendingName) > -1 // eslint-disable-line unicorn/prefer-includes -- Not supported
4764
4765
  ) {
4765
4766
  store.__name = store.__originalName;
4766
4767
  }
@@ -4768,7 +4769,7 @@ IDBTransaction.prototype.__abortTransaction = function (err) {
4768
4769
  delete store.__pendingDelete;
4769
4770
  Object.values(store.__indexes).concat(Object.values(store.__indexHandles)).forEach(function (index) {
4770
4771
  // Index was already created so we restore to name before the rename
4771
- if ('__pendingName' in index && store.__oldIndexNames.indexOf(index.__pendingName) > -1 // eslint-disable-line unicorn/prefer-includes
4772
+ if ('__pendingName' in index && store.__oldIndexNames.indexOf(index.__pendingName) > -1 // eslint-disable-line unicorn/prefer-includes -- Not supported
4772
4773
  ) {
4773
4774
  index.__name = index.__originalName;
4774
4775
  }
@@ -4808,7 +4809,7 @@ IDBTransaction.prototype.__abortTransaction = function (err) {
4808
4809
  }
4809
4810
  me.dispatchEvent(createEvent('__preabort'));
4810
4811
  me.__requests.filter(function (q, i, arr) {
4811
- // eslint-disable-line promise/no-promise-in-callback
4812
+ // eslint-disable-line promise/no-promise-in-callback -- Sync promise
4812
4813
  return q.req && !q.req.__done && [i, -1].includes(arr.map(q => q.req).lastIndexOf(q.req));
4813
4814
  }).reduce(function (promises, q) {
4814
4815
  // We reduce to a chain of promises to be queued in order, so we cannot
@@ -4827,7 +4828,7 @@ IDBTransaction.prototype.__abortTransaction = function (err) {
4827
4828
  bubbles: true,
4828
4829
  cancelable: true
4829
4830
  });
4830
- return new SyncPromise( /** @type {() => void} */
4831
+ return new SyncPromise(/** @type {() => void} */
4831
4832
  resolve => {
4832
4833
  setTimeout(() => {
4833
4834
  if (!q.req) {
@@ -4872,6 +4873,7 @@ IDBTransaction.prototype.__abortTransaction = function (err) {
4872
4873
  }
4873
4874
  try {
4874
4875
  me.__tx.executeSql('ROLLBACK', [], abort, /** @type {SQLStatementErrorCallback} */abort); // Not working in some circumstances, even in Node
4876
+ // eslint-disable-next-line no-unused-vars -- Problem with commonJS rollup
4875
4877
  } catch (err) {
4876
4878
  // Browser errs when transaction has ended and since it most likely already erred here,
4877
4879
  // we call to abort
@@ -6185,7 +6187,7 @@ const E = {
6185
6187
  },
6186
6188
  BooleanObject: {
6187
6189
  test: e => "Boolean" === toStringTag(e) && "object" == typeof e,
6188
- replace: Boolean,
6190
+ replace: e => e.valueOf(),
6189
6191
  revive: e => new Boolean(e)
6190
6192
  },
6191
6193
  NumberObject: {
@@ -6335,7 +6337,6 @@ function register(func) {
6335
6337
  function encode(obj, func) {
6336
6338
  let ret;
6337
6339
  try {
6338
- // eslint-disable-next-line n/no-sync
6339
6340
  ret = typeson.stringifySync(obj);
6340
6341
  } catch (err) {
6341
6342
  // SCA in typeson-registry using `DOMException` which is not defined (e.g., in Node)
@@ -6471,7 +6472,7 @@ IDBIndex.__createInstance = function (store, indexProperties) {
6471
6472
  * @returns {string}
6472
6473
  */
6473
6474
  get() {
6474
- return '__pendingName' in me ? ( /** @type {string} */me.__pendingName) : me.name;
6475
+ return '__pendingName' in me ? (/** @type {string} */me.__pendingName) : me.name;
6475
6476
  }
6476
6477
  });
6477
6478
  Object.defineProperty(me, 'name', {
@@ -6650,7 +6651,8 @@ IDBIndex.__createIndex = function (store, index) {
6650
6651
  tx.executeSql('UPDATE ' + escapeStoreNameForSQL(storeName) + ' SET ' + escapeIndexNameForSQL(indexName) + ' = ? WHERE "key" = ?', [escapeSQLiteStatement(indexKeyStr), data.rows.item(i).key], function () {
6651
6652
  addIndexEntry(i + 1);
6652
6653
  }, /** @type {SQLStatementErrorCallback} */error);
6653
- } catch (e) {
6654
+ // eslint-disable-next-line no-unused-vars -- Problem with commonJS rollup
6655
+ } catch (err) {
6654
6656
  // Not a valid value to insert into index, so just continue
6655
6657
  addIndexEntry(i + 1);
6656
6658
  }
@@ -6839,7 +6841,7 @@ IDBIndex.prototype.__fetchIndexData = function (range, opType, nullDisallowed, c
6839
6841
  IDBIndex.prototype.openCursor = function /* query, direction */
6840
6842
  () {
6841
6843
  const me = this;
6842
- // eslint-disable-next-line prefer-rest-params
6844
+ // eslint-disable-next-line prefer-rest-params -- API
6843
6845
  const [query, direction] = arguments;
6844
6846
  const cursor = IDBCursorWithValue.__createInstance(query, direction, me.objectStore, me, escapeIndexNameForSQLKeyColumn(me.name), 'value');
6845
6847
  me.__objectStore.__cursors.push(cursor);
@@ -6854,7 +6856,7 @@ IDBIndex.prototype.openCursor = function /* query, direction */
6854
6856
  IDBIndex.prototype.openKeyCursor = function /* query, direction */
6855
6857
  () {
6856
6858
  const me = this;
6857
- // eslint-disable-next-line prefer-rest-params
6859
+ // eslint-disable-next-line prefer-rest-params -- API
6858
6860
  const [query, direction] = arguments;
6859
6861
  const cursor = IDBCursor.__createInstance(query, direction, me.objectStore, me, escapeIndexNameForSQLKeyColumn(me.name), 'key');
6860
6862
  me.__objectStore.__cursors.push(cursor);
@@ -6897,7 +6899,7 @@ IDBIndex.prototype.getKey = function (query) {
6897
6899
  */
6898
6900
  IDBIndex.prototype.getAll = function /* query, count */
6899
6901
  () {
6900
- // eslint-disable-next-line prefer-rest-params
6902
+ // eslint-disable-next-line prefer-rest-params -- API
6901
6903
  const [query, count] = arguments;
6902
6904
  return this.__fetchIndexData(query, 'value', false, count);
6903
6905
  };
@@ -6908,7 +6910,7 @@ IDBIndex.prototype.getAll = function /* query, count */
6908
6910
  */
6909
6911
  IDBIndex.prototype.getAllKeys = function /* query, count */
6910
6912
  () {
6911
- // eslint-disable-next-line prefer-rest-params
6913
+ // eslint-disable-next-line prefer-rest-params -- API
6912
6914
  const [query, count] = arguments;
6913
6915
  return this.__fetchIndexData(query, 'key', false, count);
6914
6916
  };
@@ -6920,7 +6922,7 @@ IDBIndex.prototype.getAllKeys = function /* query, count */
6920
6922
  IDBIndex.prototype.count = function /* query */
6921
6923
  () {
6922
6924
  const me = this;
6923
- // eslint-disable-next-line prefer-rest-params
6925
+ // eslint-disable-next-line prefer-rest-params -- API
6924
6926
  const query = arguments[0];
6925
6927
  // With the exception of needing to check whether the index has been
6926
6928
  // deleted, we could, for greater spec parity (if not accuracy),
@@ -7147,7 +7149,7 @@ function executeFetchIndexData(count, unboundedDisallowed, index, hasKey, range,
7147
7149
  */
7148
7150
  check => rowKey.includes(check)) ||
7149
7151
  // More precise than our SQL
7150
- isMultiEntryMatch( /** @type {string} */
7152
+ isMultiEntryMatch(/** @type {string} */
7151
7153
  encodedKey, row[escapedIndexNameForKeyCol]))) {
7152
7154
  recordCount++;
7153
7155
  record = row;
@@ -7216,12 +7218,12 @@ function buildFetchIndexDataSQL(nullDisallowed, index, range, opType, multiCheck
7216
7218
  sql.push('OR');
7217
7219
  }
7218
7220
  sql.push(escapeIndexNameForSQL(index.name), "LIKE ? ESCAPE '^' ");
7219
- sqlValues.push('%' + sqlLIKEEscape( /** @type {string} */encode$1(innerKey, index.multiEntry)) + '%');
7221
+ sqlValues.push('%' + sqlLIKEEscape(/** @type {string} */encode$1(innerKey, index.multiEntry)) + '%');
7220
7222
  });
7221
7223
  sql.push(')');
7222
7224
  } else if (index.multiEntry) {
7223
7225
  sql.push('AND', escapeIndexNameForSQL(index.name), "LIKE ? ESCAPE '^'");
7224
- sqlValues.push('%' + sqlLIKEEscape( /** @type {string} */encode$1(range, index.multiEntry)) + '%');
7226
+ sqlValues.push('%' + sqlLIKEEscape(/** @type {string} */encode$1(range, index.multiEntry)) + '%');
7225
7227
  } else {
7226
7228
  const convertedRange = convertValueToKeyRange(range, nullDisallowed);
7227
7229
  setSQLForKeyRange(convertedRange, escapeIndexNameForSQL(index.name), sql, sqlValues, true, false);
@@ -7728,6 +7730,7 @@ IDBObjectStore.prototype.__insertData = function (tx, encoded, value, clonedKeyO
7728
7730
  if ('invalid' in indexKey && indexKey.invalid || 'failure' in indexKey && indexKey.failure) {
7729
7731
  throw new Error('Go to catch');
7730
7732
  }
7733
+ // eslint-disable-next-line no-unused-vars -- Problem with commonJS rollup
7731
7734
  } catch (err) {
7732
7735
  resolve(undefined);
7733
7736
  return;
@@ -7769,7 +7772,7 @@ IDBObjectStore.prototype.__insertData = function (tx, encoded, value, clonedKeyO
7769
7772
  // Key.convertValueToKey(primaryKey); // Already run
7770
7773
  sqlStart.push(sqlQuote('key'), ',');
7771
7774
  sqlEnd.push('?,');
7772
- insertSqlValues.push(escapeSQLiteStatement( /** @type {string} */encode$1(clonedKeyOrCurrentNumber)));
7775
+ insertSqlValues.push(escapeSQLiteStatement(/** @type {string} */encode$1(clonedKeyOrCurrentNumber)));
7773
7776
  }
7774
7777
  Object.entries(paramMap).forEach(([key, stmt]) => {
7775
7778
  sqlStart.push(escapeIndexNameForSQL(key) + ',');
@@ -7819,7 +7822,7 @@ IDBObjectStore.prototype.__insertData = function (tx, encoded, value, clonedKeyO
7819
7822
  */
7820
7823
  IDBObjectStore.prototype.add = function (value /* , key */) {
7821
7824
  const me = this;
7822
- // eslint-disable-next-line prefer-rest-params
7825
+ // eslint-disable-next-line prefer-rest-params -- API
7823
7826
  const key = arguments[1];
7824
7827
  if (!(me instanceof IDBObjectStore)) {
7825
7828
  throw new TypeError('Illegal invocation');
@@ -7846,7 +7849,7 @@ IDBObjectStore.prototype.add = function (value /* , key */) {
7846
7849
  */
7847
7850
  IDBObjectStore.prototype.put = function (value /* , key */) {
7848
7851
  const me = this;
7849
- // eslint-disable-next-line prefer-rest-params
7852
+ // eslint-disable-next-line prefer-rest-params -- API
7850
7853
  const key = arguments[1];
7851
7854
  if (!(me instanceof IDBObjectStore)) {
7852
7855
  throw new TypeError('Illegal invocation');
@@ -7900,7 +7903,7 @@ IDBObjectStore.prototype.__overwrite = function (tx, key, cb, error) {
7900
7903
  * @returns {void}
7901
7904
  */
7902
7905
  IDBObjectStore.__storingRecordObjectStore = function (request, store, invalidateCache, value, noOverwrite /* , key */) {
7903
- // eslint-disable-next-line prefer-rest-params
7906
+ // eslint-disable-next-line prefer-rest-params -- API
7904
7907
  const key = arguments[5];
7905
7908
  /** @type {import('./IDBTransaction.js').IDBTransactionFull} */
7906
7909
  store.transaction.__pushToQueue(request, function (tx, args, success, error) {
@@ -8045,7 +8048,7 @@ IDBObjectStore.prototype.getKey = function (query) {
8045
8048
  */
8046
8049
  IDBObjectStore.prototype.getAll = function /* query, count */
8047
8050
  () {
8048
- // eslint-disable-next-line prefer-rest-params
8051
+ // eslint-disable-next-line prefer-rest-params -- API
8049
8052
  const [query, count] = arguments;
8050
8053
  return this.__get(query, false, true, count);
8051
8054
  };
@@ -8056,7 +8059,7 @@ IDBObjectStore.prototype.getAll = function /* query, count */
8056
8059
  */
8057
8060
  IDBObjectStore.prototype.getAllKeys = function /* query, count */
8058
8061
  () {
8059
- // eslint-disable-next-line prefer-rest-params
8062
+ // eslint-disable-next-line prefer-rest-params -- API
8060
8063
  const [query, count] = arguments;
8061
8064
  return this.__get(query, true, true, count);
8062
8065
  };
@@ -8141,7 +8144,7 @@ IDBObjectStore.prototype.clear = function () {
8141
8144
  IDBObjectStore.prototype.count = function /* query */
8142
8145
  () {
8143
8146
  const me = this;
8144
- // eslint-disable-next-line prefer-rest-params
8147
+ // eslint-disable-next-line prefer-rest-params -- API
8145
8148
  const query = arguments[0];
8146
8149
  if (!(me instanceof IDBObjectStore)) {
8147
8150
  throw new TypeError('Illegal invocation');
@@ -8160,7 +8163,7 @@ IDBObjectStore.prototype.count = function /* query */
8160
8163
  IDBObjectStore.prototype.openCursor = function /* query, direction */
8161
8164
  () {
8162
8165
  const me = this;
8163
- // eslint-disable-next-line prefer-rest-params
8166
+ // eslint-disable-next-line prefer-rest-params -- API
8164
8167
  const [query, direction] = arguments;
8165
8168
  if (!(me instanceof IDBObjectStore)) {
8166
8169
  throw new TypeError('Illegal invocation');
@@ -8182,7 +8185,7 @@ IDBObjectStore.prototype.openKeyCursor = function /* query, direction */
8182
8185
  throw new TypeError('Illegal invocation');
8183
8186
  }
8184
8187
  IDBObjectStore.__invalidStateIfDeleted(me);
8185
- // eslint-disable-next-line prefer-rest-params
8188
+ // eslint-disable-next-line prefer-rest-params -- API
8186
8189
  const [query, direction] = arguments;
8187
8190
  const cursor = IDBCursor.__createInstance(query, direction, me, me, 'key', 'key');
8188
8191
  me.__cursors.push(cursor);
@@ -8224,7 +8227,7 @@ IDBObjectStore.prototype.index = function (indexName) {
8224
8227
  */
8225
8228
  IDBObjectStore.prototype.createIndex = function (indexName, keyPath /* , optionalParameters */) {
8226
8229
  const me = this;
8227
- // eslint-disable-next-line prefer-rest-params
8230
+ // eslint-disable-next-line prefer-rest-params -- API
8228
8231
  let optionalParameters = arguments[2];
8229
8232
  if (!(me instanceof IDBObjectStore)) {
8230
8233
  throw new TypeError('Illegal invocation');
@@ -8433,7 +8436,7 @@ IDBDatabase.prototype[Symbol.toStringTag] = 'IDBDatabasePrototype';
8433
8436
  * @returns {IDBObjectStore}
8434
8437
  */
8435
8438
  IDBDatabase.prototype.createObjectStore = function (storeName /* , createOptions */) {
8436
- // eslint-disable-next-line prefer-rest-params
8439
+ // eslint-disable-next-line prefer-rest-params -- API
8437
8440
  let createOptions = arguments[1];
8438
8441
  storeName = String(storeName); // W3C test within IDBObjectStore.js seems to accept string conversion
8439
8442
  if (!(this instanceof IDBDatabase)) {
@@ -8525,7 +8528,7 @@ IDBDatabase.prototype.transaction = function (storeNames /* , mode */) {
8525
8528
  if (arguments.length === 0) {
8526
8529
  throw new TypeError('You must supply a valid `storeNames` to `IDBDatabase.transaction`');
8527
8530
  }
8528
- // eslint-disable-next-line prefer-rest-params
8531
+ // eslint-disable-next-line prefer-rest-params -- API
8529
8532
  let mode = arguments[1];
8530
8533
  storeNames = isIterable(storeNames)
8531
8534
  // Creating new array also ensures sequence is passed by value: https://heycam.github.io/webidl/#idl-sequence
@@ -8624,6 +8627,8 @@ Object.defineProperty(IDBDatabase, 'prototype', {
8624
8627
  writable: false
8625
8628
  });
8626
8629
 
8630
+ // eslint-disable-next-line no-restricted-imports -- Can be polyfilled
8631
+
8627
8632
  /**
8628
8633
  * @typedef {number} Integer
8629
8634
  */
@@ -8648,6 +8653,7 @@ const setFS = _fs => {
8648
8653
  * @returns {string}
8649
8654
  */
8650
8655
  const getOrigin = () => {
8656
+ // eslint-disable-next-line no-undef -- If browser/polyfilled
8651
8657
  return typeof location !== 'object' || !location ? 'null' : location.origin;
8652
8658
  };
8653
8659
  const hasNullOrigin = () => CFG.checkOrigin !== false && getOrigin() === 'null';
@@ -8696,7 +8702,7 @@ function processNextInConnectionQueue(name, origin = getOrigin()) {
8696
8702
  cb(req);
8697
8703
  }
8698
8704
 
8699
- /* eslint-disable default-param-last */
8705
+ /* eslint-disable default-param-last -- Keep cb at end */
8700
8706
  /**
8701
8707
  * @param {import('./IDBRequest.js').IDBOpenDBRequestFull} req
8702
8708
  * @param {string} name
@@ -8705,7 +8711,7 @@ function processNextInConnectionQueue(name, origin = getOrigin()) {
8705
8711
  * @returns {void}
8706
8712
  */
8707
8713
  function addRequestToConnectionQueue(req, name, origin = getOrigin(), cb) {
8708
- /* eslint-enable default-param-last */
8714
+ /* eslint-enable default-param-last -- Keep cb at end */
8709
8715
  if (!connectionQueue[origin][name]) {
8710
8716
  connectionQueue[origin][name] = [];
8711
8717
  }
@@ -8934,7 +8940,7 @@ function createSysDB(__openDatabase, success, failure) {
8934
8940
  * @returns {void}
8935
8941
  */
8936
8942
  function sysDbCreateError(tx, err) {
8937
- const er = webSQLErrback( /** @type {SQLError} */err || tx);
8943
+ const er = webSQLErrback(/** @type {SQLError} */err || tx);
8938
8944
  if (CFG.DEBUG) {
8939
8945
  console.log('Error in sysdb transaction - when creating dbVersions', err);
8940
8946
  }
@@ -9010,7 +9016,7 @@ IDBFactory.prototype.open = function (name /* , version */) {
9010
9016
  if (!(me instanceof IDBFactory)) {
9011
9017
  throw new TypeError('Illegal invocation');
9012
9018
  }
9013
- // eslint-disable-next-line prefer-rest-params
9019
+ // eslint-disable-next-line prefer-rest-params -- API
9014
9020
  let version = arguments[1];
9015
9021
  if (arguments.length === 0) {
9016
9022
  throw new TypeError('Database name is required');
@@ -9036,10 +9042,10 @@ IDBFactory.prototype.open = function (name /* , version */) {
9036
9042
 
9037
9043
  /** @type {string} */
9038
9044
  let escapedDatabaseName;
9039
- // eslint-disable-next-line no-useless-catch
9045
+ // eslint-disable-next-line no-useless-catch -- Possible refactoring
9040
9046
  try {
9041
9047
  escapedDatabaseName = escapeDatabaseNameForSQLAndFiles(name);
9042
- // eslint-disable-next-line sonarjs/no-useless-catch
9048
+ // eslint-disable-next-line sonarjs/no-useless-catch -- Possible refactoring
9043
9049
  } catch (err) {
9044
9050
  throw err; // new TypeError('You have supplied a database name which does not match the currently supported configuration, possibly due to a length limit enforced for Node compatibility.');
9045
9051
  }
@@ -9054,7 +9060,7 @@ IDBFactory.prototype.open = function (name /* , version */) {
9054
9060
  if (calledDbCreateError) {
9055
9061
  return false;
9056
9062
  }
9057
- const er = err ? webSQLErrback(err) : ( /** @type {Error} */tx);
9063
+ const er = err ? webSQLErrback(err) : (/** @type {Error} */tx);
9058
9064
  calledDbCreateError = true;
9059
9065
  // Re: why bubbling here (and how cancelable is only really relevant for `window.onerror`) see: https://github.com/w3c/IndexedDB/issues/86
9060
9066
  const evt = createEvent('error', er, {
@@ -9104,7 +9110,8 @@ IDBFactory.prototype.open = function (name /* , version */) {
9104
9110
  if (err) {
9105
9111
  try {
9106
9112
  systx.executeSql('ROLLBACK', [], cb, cb);
9107
- } catch (er) {
9113
+ // eslint-disable-next-line no-unused-vars -- Problem with commonJS rollup
9114
+ } catch (err) {
9108
9115
  // Browser may fail with expired transaction above so
9109
9116
  // no choice but to manually revert
9110
9117
  sysdb.transaction(function (systx) {
@@ -9122,7 +9129,7 @@ IDBFactory.prototype.open = function (name /* , version */) {
9122
9129
  if (oldVersion === 0) {
9123
9130
  systx.executeSql('DELETE FROM dbVersions WHERE "name" = ?', [sqlSafeName], function () {
9124
9131
  // @ts-expect-error Force to work
9125
- cb(reportError); // eslint-disable-line promise/no-callback-in-promise
9132
+ cb(reportError); // eslint-disable-line promise/no-callback-in-promise -- Convenient
9126
9133
  },
9127
9134
  // @ts-expect-error Force to work
9128
9135
  reportError);
@@ -9136,7 +9143,7 @@ IDBFactory.prototype.open = function (name /* , version */) {
9136
9143
  return;
9137
9144
  }
9138
9145
  // In browser, should auto-commit
9139
- cb(); // eslint-disable-line promise/no-callback-in-promise
9146
+ cb(); // eslint-disable-line promise/no-callback-in-promise -- Convenient
9140
9147
  };
9141
9148
  sysdb.transaction(function (systx) {
9142
9149
  /**
@@ -9214,7 +9221,7 @@ IDBFactory.prototype.open = function (name /* , version */) {
9214
9221
  if (pos > -1) {
9215
9222
  connection.__transactions.splice(pos, 1);
9216
9223
  }
9217
- if ( /** @type {import('./IDBDatabase.js').IDBDatabaseFull} */req.__result.__closePending) {
9224
+ if (/** @type {import('./IDBDatabase.js').IDBDatabaseFull} */req.__result.__closePending) {
9218
9225
  req.__transaction = null;
9219
9226
  const err = createDOMException('AbortError', 'The connection has been closed.');
9220
9227
  dbCreateError(err);
@@ -9369,10 +9376,10 @@ IDBFactory.prototype.deleteDatabase = function (name) {
9369
9376
 
9370
9377
  /** @type {string} */
9371
9378
  let escapedDatabaseName;
9372
- // eslint-disable-next-line no-useless-catch
9379
+ // eslint-disable-next-line no-useless-catch -- Possible refactoring
9373
9380
  try {
9374
9381
  escapedDatabaseName = escapeDatabaseNameForSQLAndFiles(name);
9375
- // eslint-disable-next-line sonarjs/no-useless-catch
9382
+ // eslint-disable-next-line sonarjs/no-useless-catch -- Possible refactoring
9376
9383
  } catch (err) {
9377
9384
  throw err; // throw new TypeError('You have supplied a database name which does not match the currently supported configuration, possibly due to a length limit enforced for Node compatibility.');
9378
9385
  }
@@ -9405,7 +9412,7 @@ IDBFactory.prototype.deleteDatabase = function (name) {
9405
9412
  if (calledDBError || err === true) {
9406
9413
  return false;
9407
9414
  }
9408
- const er = webSQLErrback( /** @type {SQLError} */err || tx);
9415
+ const er = webSQLErrback(/** @type {SQLError} */err || tx);
9409
9416
  sysdbFinishedCbDelete(true, function () {
9410
9417
  req.__done = true;
9411
9418
  req.__error = er;
@@ -9460,7 +9467,7 @@ IDBFactory.prototype.deleteDatabase = function (name) {
9460
9467
  } = data.rows.item(0));
9461
9468
  const openConnections = me.__connections[name] || [];
9462
9469
  triggerAnyVersionChangeAndBlockedEvents(openConnections, req, version, null).then(function () {
9463
- // eslint-disable-line promise/catch-or-return
9470
+ // eslint-disable-line promise/catch-or-return -- Sync promise
9464
9471
  // Since we need two databases which can't be in a single transaction, we
9465
9472
  // do this deleting from `dbVersions` first since the `__sys__` deleting
9466
9473
  // only impacts file memory whereas this one is critical for avoiding it
@@ -9532,7 +9539,7 @@ IDBFactory.prototype.databases = function () {
9532
9539
  const me = this;
9533
9540
  let calledDbCreateError = false;
9534
9541
  return new Promise(function (resolve, reject) {
9535
- // eslint-disable-line promise/avoid-new
9542
+ // eslint-disable-line promise/avoid-new -- Own polyfill
9536
9543
  if (!(me instanceof IDBFactory)) {
9537
9544
  throw new TypeError('Illegal invocation');
9538
9545
  }
@@ -9549,7 +9556,7 @@ IDBFactory.prototype.databases = function () {
9549
9556
  if (calledDbCreateError) {
9550
9557
  return false;
9551
9558
  }
9552
- const er = err ? webSQLErrback( /** @type {SQLError} */err) : tx;
9559
+ const er = err ? webSQLErrback(/** @type {SQLError} */err) : tx;
9553
9560
  calledDbCreateError = true;
9554
9561
  reject(er);
9555
9562
  return false;
@@ -9684,7 +9691,7 @@ function IDBCursor() {
9684
9691
  }
9685
9692
  const IDBCursorAlias = IDBCursor;
9686
9693
 
9687
- /* eslint-disable func-name-matching */
9694
+ /* eslint-disable func-name-matching -- API */
9688
9695
  /**
9689
9696
  * The IndexedDB Cursor Object.
9690
9697
  * @see http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#idl-def-IDBCursor
@@ -9700,14 +9707,14 @@ const IDBCursorAlias = IDBCursor;
9700
9707
  * @returns {void}
9701
9708
  */
9702
9709
  IDBCursor.__super = function IDBCursor(query, direction, store, source, keyColumnName, valueColumnName, count) {
9703
- /* eslint-enable func-name-matching */
9710
+ /* eslint-enable func-name-matching -- API */
9704
9711
  // @ts-expect-error Should be ok
9705
9712
  this[Symbol.toStringTag] = 'IDBCursor';
9706
9713
  defineReadonlyProperties(this, ['key', 'primaryKey', 'request']);
9707
9714
  IDBObjectStore.__invalidStateIfDeleted(store);
9708
9715
  this.__indexSource = instanceOf(source, IDBIndex);
9709
9716
  if (this.__indexSource) {
9710
- IDBIndex.__invalidStateIfDeleted( /** @type {import('./IDBIndex.js').IDBIndexFull} */source);
9717
+ IDBIndex.__invalidStateIfDeleted(/** @type {import('./IDBIndex.js').IDBIndexFull} */source);
9711
9718
  }
9712
9719
  IDBTransaction.__assertActive(store.transaction);
9713
9720
  const range = convertValueToKeyRange(query);
@@ -9821,16 +9828,16 @@ IDBCursor.prototype.__findBasic = function (key, primaryKey, tx, success, error,
9821
9828
  if (primaryKey !== undefined) {
9822
9829
  sql.push('AND', quotedKey, op + '= ?');
9823
9830
  // Key.convertValueToKey(primaryKey); // Already checked by `continuePrimaryKey`
9824
- sqlValues.push( /** @type {string} */encode$1(primaryKey));
9831
+ sqlValues.push(/** @type {string} */encode$1(primaryKey));
9825
9832
  }
9826
9833
  if (key !== undefined) {
9827
9834
  sql.push('AND', quotedKeyColumnName, op + '= ?');
9828
9835
  // Key.convertValueToKey(key); // Already checked by `continue` or `continuePrimaryKey`
9829
- sqlValues.push( /** @type {string} */encode$1(key));
9836
+ sqlValues.push(/** @type {string} */encode$1(key));
9830
9837
  } else if (continueCall && me.__key !== undefined) {
9831
9838
  sql.push('AND', quotedKeyColumnName, op + ' ?');
9832
9839
  // Key.convertValueToKey(me.__key); // Already checked when stored
9833
- sqlValues.push( /** @type {string} */encode$1(me.__key));
9840
+ sqlValues.push(/** @type {string} */encode$1(me.__key));
9834
9841
  }
9835
9842
  if (!me.__count) {
9836
9843
  // 1. Sort by key
@@ -9911,7 +9918,7 @@ IDBCursor.prototype.__findMultiEntry = function (key, primaryKey, tx, success, e
9911
9918
  if (me.__range && me.__range.lower !== undefined && Array.isArray(me.__range.upper)) {
9912
9919
  if (me.__range.upper.indexOf(me.__range.lower) === 0) {
9913
9920
  sql.push('AND', quotedKeyColumnName, "LIKE ? ESCAPE '^'");
9914
- sqlValues.push('%' + sqlLIKEEscape( /** @type {string} */me.__range.__lowerCached.slice(0, -1)) + '%');
9921
+ sqlValues.push('%' + sqlLIKEEscape(/** @type {string} */me.__range.__lowerCached.slice(0, -1)) + '%');
9915
9922
  }
9916
9923
  }
9917
9924
 
@@ -9922,16 +9929,16 @@ IDBCursor.prototype.__findMultiEntry = function (key, primaryKey, tx, success, e
9922
9929
  if (primaryKey !== undefined) {
9923
9930
  sql.push('AND', quotedKey, op + '= ?');
9924
9931
  // Key.convertValueToKey(primaryKey); // Already checked by `continuePrimaryKey`
9925
- sqlValues.push( /** @type {string} */encode$1(primaryKey));
9932
+ sqlValues.push(/** @type {string} */encode$1(primaryKey));
9926
9933
  }
9927
9934
  if (key !== undefined) {
9928
9935
  sql.push('AND', quotedKeyColumnName, op + '= ?');
9929
9936
  // Key.convertValueToKey(key); // Already checked by `continue` or `continuePrimaryKey`
9930
- sqlValues.push( /** @type {string} */encode$1(key));
9937
+ sqlValues.push(/** @type {string} */encode$1(key));
9931
9938
  } else if (me.__key !== undefined) {
9932
9939
  sql.push('AND', quotedKeyColumnName, op + ' ?');
9933
9940
  // Key.convertValueToKey(me.__key); // Already checked when entered
9934
- sqlValues.push( /** @type {string} */encode$1(me.__key));
9941
+ sqlValues.push(/** @type {string} */encode$1(me.__key));
9935
9942
  }
9936
9943
  if (!me.__count) {
9937
9944
  // 1. Sort by key
@@ -9978,7 +9985,7 @@ IDBCursor.prototype.__findMultiEntry = function (key, primaryKey, tx, success, e
9978
9985
  * @type {RowItemNonNull}
9979
9986
  */
9980
9987
  const clone = {
9981
- matchingKey: ( /** @type {string} */
9988
+ matchingKey: (/** @type {string} */
9982
9989
  encode$1(matchingKey, true)),
9983
9990
  key: rowItem.key
9984
9991
  };
@@ -10141,7 +10148,7 @@ IDBCursor.prototype.__decode = function (rowItem, callback) {
10141
10148
  IDBCursor.prototype.__sourceOrEffectiveObjStoreDeleted = function () {
10142
10149
  IDBObjectStore.__invalidStateIfDeleted(this.__store, "The cursor's effective object store has been deleted");
10143
10150
  if (this.__indexSource) {
10144
- IDBIndex.__invalidStateIfDeleted( /** @type {import('./IDBIndex.js').IDBIndexFull} */this.source, "The cursor's index source has been deleted");
10151
+ IDBIndex.__invalidStateIfDeleted(/** @type {import('./IDBIndex.js').IDBIndexFull} */this.source, "The cursor's index source has been deleted");
10145
10152
  }
10146
10153
  };
10147
10154
 
@@ -10257,7 +10264,7 @@ IDBCursor.prototype.__continueFinish = function (key, primaryKey, advanceState)
10257
10264
  */
10258
10265
  IDBCursor.prototype.continue = function /* key */
10259
10266
  () {
10260
- // eslint-disable-next-line prefer-rest-params
10267
+ // eslint-disable-next-line prefer-rest-params -- API
10261
10268
  this.__continue(arguments[0]);
10262
10269
  };
10263
10270
 
@@ -10400,7 +10407,7 @@ IDBCursor.prototype.delete = function () {
10400
10407
  console.log(sql, key, primaryKey);
10401
10408
  }
10402
10409
  // Key.convertValueToKey(primaryKey); // Already checked when entered
10403
- tx.executeSql(sql, [escapeSQLiteStatement( /** @type {string} */encode$1(primaryKey))], function (tx, data) {
10410
+ tx.executeSql(sql, [escapeSQLiteStatement(/** @type {string} */encode$1(primaryKey))], function (tx, data) {
10404
10411
  if (data.rowsAffected === 1) {
10405
10412
  // We don't invalidate the cache (as we don't access it anymore
10406
10413
  // and it will set the index off)
@@ -10483,7 +10490,7 @@ Object.defineProperty(IDBCursorWithValue, 'prototype', {
10483
10490
  function setConfig(prop, val) {
10484
10491
  if (prop && typeof prop === 'object') {
10485
10492
  Object.entries(prop).forEach(([p, val]) => {
10486
- setConfig( /** @type {import('./CFG.js').KeyofConfigValues} */
10493
+ setConfig(/** @type {import('./CFG.js').KeyofConfigValues} */
10487
10494
  p, val);
10488
10495
  });
10489
10496
  return;
@@ -10604,14 +10611,15 @@ function setGlobalVars(idb, initialConfig) {
10604
10611
  * @returns {AnyValue}
10605
10612
  */
10606
10613
  get [name]() {
10607
- return /** @type {AnyFunction} */( /** @type {PropertyDescriptor} */propDesc.get).call(this);
10614
+ return /** @type {AnyFunction} */(/** @type {PropertyDescriptor} */propDesc.get).call(this);
10608
10615
  }
10609
10616
  };
10610
10617
  desc = /** @type {PropertyDescriptor} */
10611
10618
  Object.getOwnPropertyDescriptor(o, name);
10612
10619
  }
10613
10620
  Object.defineProperty(IDB, name, desc);
10614
- } catch (e) {
10621
+ // eslint-disable-next-line no-unused-vars -- Problem with commonJS rollup
10622
+ } catch (err) {
10615
10623
  // With `indexedDB`, PhantomJS fails here and below but
10616
10624
  // not above, while Chrome is reverse (and Firefox doesn't
10617
10625
  // get here since no WebSQL to use for shimming)
@@ -10777,7 +10785,9 @@ function setGlobalVars(idb, initialConfig) {
10777
10785
  // Exclude genuine Safari: http://stackoverflow.com/a/7768006/271577
10778
10786
  // Detect iOS: http://stackoverflow.com/questions/9038625/detect-if-device-is-ios/9039885#9039885
10779
10787
  // and detect version 9: http://stackoverflow.com/a/26363560/271577
10780
- /(iPad|iPhone|iPod).* os 9_/ui.test(navigator.userAgent) && !('MSStream' in window) // But avoid IE11
10788
+ /(iPad|iPhone|iPod).* os 9_/ui.test(navigator.userAgent) && typeof window !== 'undefined' &&
10789
+ // eslint-disable-next-line no-undef -- Extra check
10790
+ !('MSStream' in window) // But avoid IE11
10781
10791
  )) {
10782
10792
  poorIndexedDbSupport = true;
10783
10793
  }
@@ -11904,10 +11914,10 @@ function wrappedSQLiteDatabase(name) {
11904
11914
  const nodeWebSQL = customOpenDatabase(wrappedSQLiteDatabase, {});
11905
11915
 
11906
11916
  // ID_Start (includes Other_ID_Start)
11907
- const UnicodeIDStart = '(?:[$A-Z_a-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D])';
11917
+ const UnicodeIDStart = String.raw`(?:[$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D])`;
11908
11918
 
11909
11919
  // ID_Continue (includes Other_ID_Continue)
11910
- const UnicodeIDContinue = '(?:[$0-9A-Z_a-z\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F\\uDFE0]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4A\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF])';
11920
+ const UnicodeIDContinue = String.raw`(?:[$0-9A-Z_a-z\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF])`;
11911
11921
 
11912
11922
  var UnicodeIdentifiers = /*#__PURE__*/Object.freeze({
11913
11923
  __proto__: null,