@powersync/web 1.17.2 → 1.19.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 (32) hide show
  1. package/bin/powersync.js +3 -1
  2. package/dist/{_journeyapps_wa-sqlite-_journeyapps_wa-sqlite_src_examples_IDBBatchAtomicVFS_js-_powersync_co-780aa20.index.umd.js → _journeyapps_wa-sqlite-_journeyapps_wa-sqlite_src_examples_AccessHandlePoolVFS_js-_journeyapp-81d3460.index.umd.js} +27 -7
  3. package/dist/_journeyapps_wa-sqlite-_journeyapps_wa-sqlite_src_examples_AccessHandlePoolVFS_js-_journeyapp-81d3460.index.umd.js.map +1 -0
  4. package/dist/{_journeyapps_wa-sqlite-_journeyapps_wa-sqlite_src_examples_IDBBatchAtomicVFS_js-_powersync_co-780aa21.index.umd.js → _journeyapps_wa-sqlite-_journeyapps_wa-sqlite_src_examples_AccessHandlePoolVFS_js-_journeyapp-81d3461.index.umd.js} +27 -7
  5. package/dist/_journeyapps_wa-sqlite-_journeyapps_wa-sqlite_src_examples_AccessHandlePoolVFS_js-_journeyapp-81d3461.index.umd.js.map +1 -0
  6. package/dist/index.umd.js +105 -2701
  7. package/dist/index.umd.js.map +1 -1
  8. package/dist/worker/SharedSyncImplementation.umd.js +148 -424
  9. package/dist/worker/SharedSyncImplementation.umd.js.map +1 -1
  10. package/dist/worker/WASQLiteDB.umd.js +101 -378
  11. package/dist/worker/WASQLiteDB.umd.js.map +1 -1
  12. package/lib/package.json +3 -4
  13. package/lib/src/db/adapters/AbstractWebSQLOpenFactory.d.ts +1 -2
  14. package/lib/src/db/adapters/AbstractWebSQLOpenFactory.js +4 -4
  15. package/lib/src/db/adapters/LockedAsyncDatabaseAdapter.d.ts +1 -2
  16. package/lib/src/db/adapters/LockedAsyncDatabaseAdapter.js +2 -3
  17. package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.d.ts +4 -1
  18. package/lib/src/db/adapters/wa-sqlite/WASQLiteOpenFactory.js +2 -1
  19. package/lib/src/db/adapters/web-sql-flags.d.ts +1 -2
  20. package/lib/src/db/sync/SharedWebStreamingSyncImplementation.js +1 -0
  21. package/lib/src/db/sync/WebRemote.d.ts +1 -2
  22. package/lib/src/db/sync/WebStreamingSyncImplementation.js +3 -1
  23. package/lib/src/worker/db/WASQLiteDB.worker.js +9 -5
  24. package/lib/src/worker/sync/BroadcastLogger.d.ts +11 -1
  25. package/lib/src/worker/sync/BroadcastLogger.js +37 -13
  26. package/lib/src/worker/sync/SharedSyncImplementation.d.ts +2 -2
  27. package/lib/src/worker/sync/SharedSyncImplementation.js +8 -5
  28. package/lib/src/worker/sync/SharedSyncImplementation.worker.js +3 -3
  29. package/lib/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +3 -4
  31. package/dist/_journeyapps_wa-sqlite-_journeyapps_wa-sqlite_src_examples_IDBBatchAtomicVFS_js-_powersync_co-780aa20.index.umd.js.map +0 -1
  32. package/dist/_journeyapps_wa-sqlite-_journeyapps_wa-sqlite_src_examples_IDBBatchAtomicVFS_js-_powersync_co-780aa21.index.umd.js.map +0 -1
package/dist/index.umd.js CHANGED
@@ -1,13 +1,13 @@
1
1
  (function webpackUniversalModuleDefinition(root, factory) {
2
2
  if(typeof exports === 'object' && typeof module === 'object')
3
- module.exports = factory(require("@powersync/common"), require("async-mutex"), require("comlink"), require("@journeyapps/wa-sqlite"), require("js-logger"), require("@journeyapps/wa-sqlite/src/examples/IDBBatchAtomicVFS.js"));
3
+ module.exports = factory(require("@powersync/common"), require("async-mutex"), require("comlink"), require("@journeyapps/wa-sqlite"), require("@journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js"), require("@journeyapps/wa-sqlite/src/examples/AccessHandlePoolVFS.js"), require("@journeyapps/wa-sqlite/src/examples/IDBBatchAtomicVFS.js"));
4
4
  else if(typeof define === 'function' && define.amd)
5
- define(["@powersync/common", "async-mutex", "comlink", "@journeyapps/wa-sqlite", "js-logger", "@journeyapps/wa-sqlite/src/examples/IDBBatchAtomicVFS.js"], factory);
5
+ define(["@powersync/common", "async-mutex", "comlink", "@journeyapps/wa-sqlite", "@journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js", "@journeyapps/wa-sqlite/src/examples/AccessHandlePoolVFS.js", "@journeyapps/wa-sqlite/src/examples/IDBBatchAtomicVFS.js"], factory);
6
6
  else if(typeof exports === 'object')
7
- exports["sdk_web"] = factory(require("@powersync/common"), require("async-mutex"), require("comlink"), require("@journeyapps/wa-sqlite"), require("js-logger"), require("@journeyapps/wa-sqlite/src/examples/IDBBatchAtomicVFS.js"));
7
+ exports["sdk_web"] = factory(require("@powersync/common"), require("async-mutex"), require("comlink"), require("@journeyapps/wa-sqlite"), require("@journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js"), require("@journeyapps/wa-sqlite/src/examples/AccessHandlePoolVFS.js"), require("@journeyapps/wa-sqlite/src/examples/IDBBatchAtomicVFS.js"));
8
8
  else
9
- root["sdk_web"] = factory(root["@powersync/common"], root["async-mutex"], root["comlink"], root["@journeyapps/wa-sqlite"], root["js-logger"], root["@journeyapps/wa-sqlite/src/examples/IDBBatchAtomicVFS.js"]);
10
- })(self, (__WEBPACK_EXTERNAL_MODULE__powersync_common__, __WEBPACK_EXTERNAL_MODULE_async_mutex__, __WEBPACK_EXTERNAL_MODULE_comlink__, __WEBPACK_EXTERNAL_MODULE__journeyapps_wa_sqlite__, __WEBPACK_EXTERNAL_MODULE_js_logger__, __WEBPACK_EXTERNAL_MODULE__journeyapps_wa_sqlite_src_examples_IDBBatchAtomicVFS_js__) => {
9
+ root["sdk_web"] = factory(root["@powersync/common"], root["async-mutex"], root["comlink"], root["@journeyapps/wa-sqlite"], root["@journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js"], root["@journeyapps/wa-sqlite/src/examples/AccessHandlePoolVFS.js"], root["@journeyapps/wa-sqlite/src/examples/IDBBatchAtomicVFS.js"]);
10
+ })(self, (__WEBPACK_EXTERNAL_MODULE__powersync_common__, __WEBPACK_EXTERNAL_MODULE_async_mutex__, __WEBPACK_EXTERNAL_MODULE_comlink__, __WEBPACK_EXTERNAL_MODULE__journeyapps_wa_sqlite__, __WEBPACK_EXTERNAL_MODULE__journeyapps_wa_sqlite_src_examples_OPFSCoopSyncVFS_js__, __WEBPACK_EXTERNAL_MODULE__journeyapps_wa_sqlite_src_examples_AccessHandlePoolVFS_js__, __WEBPACK_EXTERNAL_MODULE__journeyapps_wa_sqlite_src_examples_IDBBatchAtomicVFS_js__) => {
11
11
  return /******/ (() => { // webpackBootstrap
12
12
  /******/ var __webpack_modules__ = ({
13
13
 
@@ -33680,8 +33680,8 @@ __webpack_require__.r(__webpack_exports__);
33680
33680
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
33681
33681
  /* harmony export */ AbstractWebSQLOpenFactory: () => (/* binding */ AbstractWebSQLOpenFactory)
33682
33682
  /* harmony export */ });
33683
- /* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-logger */ "js-logger");
33684
- /* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(js_logger__WEBPACK_IMPORTED_MODULE_0__);
33683
+ /* harmony import */ var _powersync_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @powersync/common */ "@powersync/common");
33684
+ /* harmony import */ var _powersync_common__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_powersync_common__WEBPACK_IMPORTED_MODULE_0__);
33685
33685
  /* harmony import */ var _SSRDBAdapter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SSRDBAdapter */ "./lib/src/db/adapters/SSRDBAdapter.js");
33686
33686
  /* harmony import */ var _web_sql_flags__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./web-sql-flags */ "./lib/src/db/adapters/web-sql-flags.js");
33687
33687
 
@@ -33694,7 +33694,7 @@ class AbstractWebSQLOpenFactory {
33694
33694
  constructor(options) {
33695
33695
  this.options = options;
33696
33696
  this.resolvedFlags = (0,_web_sql_flags__WEBPACK_IMPORTED_MODULE_2__.resolveWebSQLFlags)(options.flags);
33697
- this.logger = options.logger ?? js_logger__WEBPACK_IMPORTED_MODULE_0___default().get(`AbstractWebSQLOpenFactory - ${this.options.dbFilename}`);
33697
+ this.logger = options.logger ?? (0,_powersync_common__WEBPACK_IMPORTED_MODULE_0__.createLogger)(`AbstractWebSQLOpenFactory - ${this.options.dbFilename}`);
33698
33698
  }
33699
33699
  /**
33700
33700
  * Opens a {@link DBAdapter} using resolved flags.
@@ -33703,13 +33703,13 @@ class AbstractWebSQLOpenFactory {
33703
33703
  openDB() {
33704
33704
  const { resolvedFlags: { disableSSRWarning, enableMultiTabs, ssrMode = (0,_web_sql_flags__WEBPACK_IMPORTED_MODULE_2__.isServerSide)() } } = this;
33705
33705
  if (ssrMode && !disableSSRWarning) {
33706
- console.warn(`
33706
+ this.logger.warn(`
33707
33707
  Running PowerSync in SSR mode.
33708
33708
  Only empty query results will be returned.
33709
33709
  Disable this warning by setting 'disableSSRWarning: true' in options.`);
33710
33710
  }
33711
33711
  if (!enableMultiTabs) {
33712
- console.warn('Multiple tab support is not enabled. Using this site across multiple tabs may not function correctly.');
33712
+ this.logger.warn('Multiple tab support is not enabled. Using this site across multiple tabs may not function correctly.');
33713
33713
  }
33714
33714
  if (ssrMode) {
33715
33715
  return new _SSRDBAdapter__WEBPACK_IMPORTED_MODULE_1__.SSRDBAdapter();
@@ -33734,11 +33734,8 @@ __webpack_require__.r(__webpack_exports__);
33734
33734
  /* harmony export */ });
33735
33735
  /* harmony import */ var _powersync_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @powersync/common */ "@powersync/common");
33736
33736
  /* harmony import */ var _powersync_common__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_powersync_common__WEBPACK_IMPORTED_MODULE_0__);
33737
- /* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! js-logger */ "js-logger");
33738
- /* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(js_logger__WEBPACK_IMPORTED_MODULE_1__);
33739
- /* harmony import */ var _shared_navigator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../..//shared/navigator */ "./lib/src/shared/navigator.js");
33740
- /* harmony import */ var _WorkerWrappedAsyncDatabaseConnection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./WorkerWrappedAsyncDatabaseConnection */ "./lib/src/db/adapters/WorkerWrappedAsyncDatabaseConnection.js");
33741
-
33737
+ /* harmony import */ var _shared_navigator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../..//shared/navigator */ "./lib/src/shared/navigator.js");
33738
+ /* harmony import */ var _WorkerWrappedAsyncDatabaseConnection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./WorkerWrappedAsyncDatabaseConnection */ "./lib/src/db/adapters/WorkerWrappedAsyncDatabaseConnection.js");
33742
33739
 
33743
33740
 
33744
33741
 
@@ -33761,7 +33758,7 @@ class LockedAsyncDatabaseAdapter extends _powersync_common__WEBPACK_IMPORTED_MOD
33761
33758
  super();
33762
33759
  this.options = options;
33763
33760
  this._dbIdentifier = options.name;
33764
- this.logger = options.logger ?? js_logger__WEBPACK_IMPORTED_MODULE_1___default().get(`LockedAsyncDatabaseAdapter - ${this._dbIdentifier}`);
33761
+ this.logger = options.logger ?? (0,_powersync_common__WEBPACK_IMPORTED_MODULE_0__.createLogger)(`LockedAsyncDatabaseAdapter - ${this._dbIdentifier}`);
33765
33762
  // Set the name if provided. We can query for the name if not available yet
33766
33763
  this.debugMode = options.debugMode ?? false;
33767
33764
  if (this.debugMode) {
@@ -33818,7 +33815,7 @@ class LockedAsyncDatabaseAdapter extends _powersync_common__WEBPACK_IMPORTED_MOD
33818
33815
  await this.initPromise;
33819
33816
  }
33820
33817
  async shareConnection() {
33821
- if (false == this._db instanceof _WorkerWrappedAsyncDatabaseConnection__WEBPACK_IMPORTED_MODULE_3__.WorkerWrappedAsyncDatabaseConnection) {
33818
+ if (false == this._db instanceof _WorkerWrappedAsyncDatabaseConnection__WEBPACK_IMPORTED_MODULE_2__.WorkerWrappedAsyncDatabaseConnection) {
33822
33819
  throw new Error(`Only worker connections can be shared`);
33823
33820
  }
33824
33821
  return this._db.shareConnection();
@@ -33875,7 +33872,7 @@ class LockedAsyncDatabaseAdapter extends _powersync_common__WEBPACK_IMPORTED_MOD
33875
33872
  return this.acquireLock(async () => fn(this.generateDBHelpers({ execute: this._execute, executeRaw: this._executeRaw })));
33876
33873
  }
33877
33874
  acquireLock(callback) {
33878
- return (0,_shared_navigator__WEBPACK_IMPORTED_MODULE_2__.getNavigatorLocks)().request(`db-lock-${this._dbIdentifier}`, callback);
33875
+ return (0,_shared_navigator__WEBPACK_IMPORTED_MODULE_1__.getNavigatorLocks)().request(`db-lock-${this._dbIdentifier}`, callback);
33879
33876
  }
33880
33877
  async readTransaction(fn, options) {
33881
33878
  return this.readLock(this.wrapTransaction(fn));
@@ -34273,7 +34270,7 @@ const DEFAULT_MODULE_FACTORIES = {
34273
34270
  module = await SyncWASQLiteModuleFactory();
34274
34271
  }
34275
34272
  // @ts-expect-error The types for this static method are missing upstream
34276
- const { AccessHandlePoolVFS } = await Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! @journeyapps/wa-sqlite/src/examples/AccessHandlePoolVFS.js */ "./node_modules/@journeyapps/wa-sqlite/src/examples/AccessHandlePoolVFS.js"));
34273
+ const { AccessHandlePoolVFS } = await Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! @journeyapps/wa-sqlite/src/examples/AccessHandlePoolVFS.js */ "@journeyapps/wa-sqlite/src/examples/AccessHandlePoolVFS.js", 23));
34277
34274
  return {
34278
34275
  module,
34279
34276
  vfs: await AccessHandlePoolVFS.create(options.dbFileName, module)
@@ -34288,7 +34285,7 @@ const DEFAULT_MODULE_FACTORIES = {
34288
34285
  module = await SyncWASQLiteModuleFactory();
34289
34286
  }
34290
34287
  // @ts-expect-error The types for this static method are missing upstream
34291
- const { OPFSCoopSyncVFS } = await Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! @journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js */ "./node_modules/@journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js"));
34288
+ const { OPFSCoopSyncVFS } = await Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! @journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js */ "@journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js", 23));
34292
34289
  return {
34293
34290
  module,
34294
34291
  vfs: await OPFSCoopSyncVFS.create(options.dbFileName, module)
@@ -34711,7 +34708,8 @@ class WASQLiteOpenFactory extends _AbstractWebSQLOpenFactory__WEBPACK_IMPORTED_M
34711
34708
  temporaryStorage,
34712
34709
  cacheSizeKb,
34713
34710
  flags: this.resolvedFlags,
34714
- encryptionKey: encryptionKey
34711
+ encryptionKey: encryptionKey,
34712
+ logLevel: this.logger.getLevel()
34715
34713
  }),
34716
34714
  identifier: this.options.dbFilename,
34717
34715
  onClose: () => {
@@ -35060,6 +35058,7 @@ class SharedWebStreamingSyncImplementation extends _WebStreamingSyncImplementati
35060
35058
  }).port;
35061
35059
  }
35062
35060
  this.syncManager = comlink__WEBPACK_IMPORTED_MODULE_0__.wrap(this.messagePort);
35061
+ this.syncManager.setLogLevel(this.logger.getLevel());
35063
35062
  this.triggerCrudUpload = this.syncManager.triggerCrudUpload;
35064
35063
  /**
35065
35064
  * Opens MessagePort to the existing shared DB worker.
@@ -35228,7 +35227,9 @@ class WebStreamingSyncImplementation extends _powersync_common__WEBPACK_IMPORTED
35228
35227
  }
35229
35228
  obtainLock(lockOptions) {
35230
35229
  const identifier = `streaming-sync-${lockOptions.type}-${this.webOptions.identifier}`;
35231
- lockOptions.type == _powersync_common__WEBPACK_IMPORTED_MODULE_0__.LockType.SYNC && console.debug('requesting lock for ', identifier);
35230
+ if (lockOptions.type == _powersync_common__WEBPACK_IMPORTED_MODULE_0__.LockType.SYNC) {
35231
+ this.logger.debug('requesting lock for ', identifier);
35232
+ }
35232
35233
  return (0,_shared_navigator__WEBPACK_IMPORTED_MODULE_1__.getNavigatorLocks)().request(identifier, { signal: lockOptions.signal }, lockOptions.callback);
35233
35234
  }
35234
35235
  }
@@ -35379,12 +35380,12 @@ function openWorkerDatabasePort(workerIdentifier, multipleTabs = true, worker =
35379
35380
  * (in the case of Android)
35380
35381
  */
35381
35382
  return !needsDedicated && multipleTabs
35382
- ? new SharedWorker(new URL(/* worker import */ __webpack_require__.p + __webpack_require__.u("_journeyapps_wa-sqlite-_journeyapps_wa-sqlite_src_examples_IDBBatchAtomicVFS_js-_powersync_co-780aa20"), __webpack_require__.b), {
35383
+ ? new SharedWorker(new URL(/* worker import */ __webpack_require__.p + __webpack_require__.u("_journeyapps_wa-sqlite-_journeyapps_wa-sqlite_src_examples_AccessHandlePoolVFS_js-_journeyapp-81d3460"), __webpack_require__.b), {
35383
35384
  /* @vite-ignore */
35384
35385
  name: `shared-DB-worker-${workerIdentifier}`,
35385
35386
  type: undefined
35386
35387
  }).port
35387
- : new Worker(new URL(/* worker import */ __webpack_require__.p + __webpack_require__.u("_journeyapps_wa-sqlite-_journeyapps_wa-sqlite_src_examples_IDBBatchAtomicVFS_js-_powersync_co-780aa21"), __webpack_require__.b), {
35388
+ : new Worker(new URL(/* worker import */ __webpack_require__.p + __webpack_require__.u("_journeyapps_wa-sqlite-_journeyapps_wa-sqlite_src_examples_AccessHandlePoolVFS_js-_journeyapp-81d3461"), __webpack_require__.b), {
35388
35389
  /* @vite-ignore */
35389
35390
  name: `DB-worker-${workerIdentifier}`,
35390
35391
  type: undefined
@@ -35440,8 +35441,8 @@ __webpack_require__.r(__webpack_exports__);
35440
35441
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
35441
35442
  /* harmony export */ BroadcastLogger: () => (/* binding */ BroadcastLogger)
35442
35443
  /* harmony export */ });
35443
- /* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-logger */ "js-logger");
35444
- /* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(js_logger__WEBPACK_IMPORTED_MODULE_0__);
35444
+ /* harmony import */ var _powersync_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @powersync/common */ "@powersync/common");
35445
+ /* harmony import */ var _powersync_common__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_powersync_common__WEBPACK_IMPORTED_MODULE_0__);
35445
35446
 
35446
35447
  /**
35447
35448
  * Broadcasts logs to all clients
@@ -35455,64 +35456,88 @@ class BroadcastLogger {
35455
35456
  WARN;
35456
35457
  ERROR;
35457
35458
  OFF;
35459
+ currentLevel = _powersync_common__WEBPACK_IMPORTED_MODULE_0__.LogLevel.INFO;
35458
35460
  constructor(clients) {
35459
35461
  this.clients = clients;
35460
- this.TRACE = (js_logger__WEBPACK_IMPORTED_MODULE_0___default().TRACE);
35461
- this.DEBUG = (js_logger__WEBPACK_IMPORTED_MODULE_0___default().DEBUG);
35462
- this.INFO = (js_logger__WEBPACK_IMPORTED_MODULE_0___default().INFO);
35463
- this.TIME = (js_logger__WEBPACK_IMPORTED_MODULE_0___default().TIME);
35464
- this.WARN = (js_logger__WEBPACK_IMPORTED_MODULE_0___default().WARN);
35465
- this.ERROR = (js_logger__WEBPACK_IMPORTED_MODULE_0___default().ERROR);
35466
- this.OFF = (js_logger__WEBPACK_IMPORTED_MODULE_0___default().OFF);
35462
+ this.TRACE = _powersync_common__WEBPACK_IMPORTED_MODULE_0__.LogLevel.TRACE;
35463
+ this.DEBUG = _powersync_common__WEBPACK_IMPORTED_MODULE_0__.LogLevel.DEBUG;
35464
+ this.INFO = _powersync_common__WEBPACK_IMPORTED_MODULE_0__.LogLevel.INFO;
35465
+ this.TIME = _powersync_common__WEBPACK_IMPORTED_MODULE_0__.LogLevel.TIME;
35466
+ this.WARN = _powersync_common__WEBPACK_IMPORTED_MODULE_0__.LogLevel.WARN;
35467
+ this.ERROR = _powersync_common__WEBPACK_IMPORTED_MODULE_0__.LogLevel.ERROR;
35468
+ this.OFF = _powersync_common__WEBPACK_IMPORTED_MODULE_0__.LogLevel.OFF;
35467
35469
  }
35468
35470
  trace(...x) {
35471
+ if (!this.enabledFor(this.TRACE))
35472
+ return;
35469
35473
  console.trace(...x);
35470
35474
  const sanitized = this.sanitizeArgs(x);
35471
35475
  this.iterateClients((client) => client.clientProvider.trace(...sanitized));
35472
35476
  }
35473
35477
  debug(...x) {
35478
+ if (!this.enabledFor(this.DEBUG))
35479
+ return;
35474
35480
  console.debug(...x);
35475
35481
  const sanitized = this.sanitizeArgs(x);
35476
35482
  this.iterateClients((client) => client.clientProvider.debug(...sanitized));
35477
35483
  }
35478
35484
  info(...x) {
35485
+ if (!this.enabledFor(this.INFO))
35486
+ return;
35479
35487
  console.info(...x);
35480
35488
  const sanitized = this.sanitizeArgs(x);
35481
35489
  this.iterateClients((client) => client.clientProvider.info(...sanitized));
35482
35490
  }
35483
35491
  log(...x) {
35492
+ if (!this.enabledFor(this.INFO))
35493
+ return;
35484
35494
  console.log(...x);
35485
35495
  const sanitized = this.sanitizeArgs(x);
35486
35496
  this.iterateClients((client) => client.clientProvider.log(...sanitized));
35487
35497
  }
35488
35498
  warn(...x) {
35499
+ if (!this.enabledFor(this.WARN))
35500
+ return;
35489
35501
  console.warn(...x);
35490
35502
  const sanitized = this.sanitizeArgs(x);
35491
35503
  this.iterateClients((client) => client.clientProvider.warn(...sanitized));
35492
35504
  }
35493
35505
  error(...x) {
35506
+ if (!this.enabledFor(this.ERROR))
35507
+ return;
35494
35508
  console.error(...x);
35495
35509
  const sanitized = this.sanitizeArgs(x);
35496
35510
  this.iterateClients((client) => client.clientProvider.error(...sanitized));
35497
35511
  }
35498
35512
  time(label) {
35513
+ if (!this.enabledFor(this.TIME))
35514
+ return;
35499
35515
  console.time(label);
35500
35516
  this.iterateClients((client) => client.clientProvider.time(label));
35501
35517
  }
35502
35518
  timeEnd(label) {
35519
+ if (!this.enabledFor(this.TIME))
35520
+ return;
35503
35521
  console.timeEnd(label);
35504
35522
  this.iterateClients((client) => client.clientProvider.timeEnd(label));
35505
35523
  }
35524
+ /**
35525
+ * Set the global log level.
35526
+ */
35506
35527
  setLevel(level) {
35507
- // Levels are not adjustable on this level.
35528
+ this.currentLevel = level;
35508
35529
  }
35530
+ /**
35531
+ * Get the current log level.
35532
+ */
35509
35533
  getLevel() {
35510
- // Levels are not adjustable on this level.
35511
- return (js_logger__WEBPACK_IMPORTED_MODULE_0___default().INFO);
35534
+ return this.currentLevel;
35512
35535
  }
35536
+ /**
35537
+ * Returns true if the given level is enabled.
35538
+ */
35513
35539
  enabledFor(level) {
35514
- // Levels are not adjustable on this level.
35515
- return true;
35540
+ return level.value >= this.currentLevel.value;
35516
35541
  }
35517
35542
  /**
35518
35543
  * Iterates all clients, catches individual client exceptions
@@ -35568,15 +35593,12 @@ __webpack_require__.r(__webpack_exports__);
35568
35593
  /* harmony import */ var async_mutex__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(async_mutex__WEBPACK_IMPORTED_MODULE_1__);
35569
35594
  /* harmony import */ var comlink__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! comlink */ "comlink");
35570
35595
  /* harmony import */ var comlink__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(comlink__WEBPACK_IMPORTED_MODULE_2__);
35571
- /* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! js-logger */ "js-logger");
35572
- /* harmony import */ var js_logger__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(js_logger__WEBPACK_IMPORTED_MODULE_3__);
35573
- /* harmony import */ var _db_sync_WebRemote__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../db/sync/WebRemote */ "./lib/src/db/sync/WebRemote.js");
35574
- /* harmony import */ var _db_sync_WebStreamingSyncImplementation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../db/sync/WebStreamingSyncImplementation */ "./lib/src/db/sync/WebStreamingSyncImplementation.js");
35575
- /* harmony import */ var _db_adapters_LockedAsyncDatabaseAdapter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../db/adapters/LockedAsyncDatabaseAdapter */ "./lib/src/db/adapters/LockedAsyncDatabaseAdapter.js");
35576
- /* harmony import */ var _db_adapters_WorkerWrappedAsyncDatabaseConnection__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../db/adapters/WorkerWrappedAsyncDatabaseConnection */ "./lib/src/db/adapters/WorkerWrappedAsyncDatabaseConnection.js");
35577
- /* harmony import */ var _shared_navigator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../shared/navigator */ "./lib/src/shared/navigator.js");
35578
- /* harmony import */ var _BroadcastLogger__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./BroadcastLogger */ "./lib/src/worker/sync/BroadcastLogger.js");
35579
-
35596
+ /* harmony import */ var _db_sync_WebRemote__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../db/sync/WebRemote */ "./lib/src/db/sync/WebRemote.js");
35597
+ /* harmony import */ var _db_sync_WebStreamingSyncImplementation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../db/sync/WebStreamingSyncImplementation */ "./lib/src/db/sync/WebStreamingSyncImplementation.js");
35598
+ /* harmony import */ var _db_adapters_LockedAsyncDatabaseAdapter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../db/adapters/LockedAsyncDatabaseAdapter */ "./lib/src/db/adapters/LockedAsyncDatabaseAdapter.js");
35599
+ /* harmony import */ var _db_adapters_WorkerWrappedAsyncDatabaseConnection__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../db/adapters/WorkerWrappedAsyncDatabaseConnection */ "./lib/src/db/adapters/WorkerWrappedAsyncDatabaseConnection.js");
35600
+ /* harmony import */ var _shared_navigator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../shared/navigator */ "./lib/src/shared/navigator.js");
35601
+ /* harmony import */ var _BroadcastLogger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./BroadcastLogger */ "./lib/src/worker/sync/BroadcastLogger.js");
35580
35602
 
35581
35603
 
35582
35604
 
@@ -35620,7 +35642,7 @@ class SharedSyncImplementation extends _powersync_common__WEBPACK_IMPORTED_MODUL
35620
35642
  this.dbAdapter = null;
35621
35643
  this.syncParams = null;
35622
35644
  this.syncStreamClient = null;
35623
- this.logger = js_logger__WEBPACK_IMPORTED_MODULE_3___default().get('shared-sync');
35645
+ this.logger = (0,_powersync_common__WEBPACK_IMPORTED_MODULE_0__.createLogger)('shared-sync');
35624
35646
  this.lastConnectOptions = undefined;
35625
35647
  this.isInitialized = new Promise((resolve) => {
35626
35648
  const callback = this.registerListener({
@@ -35631,7 +35653,7 @@ class SharedSyncImplementation extends _powersync_common__WEBPACK_IMPORTED_MODUL
35631
35653
  });
35632
35654
  });
35633
35655
  this.syncStatus = new _powersync_common__WEBPACK_IMPORTED_MODULE_0__.SyncStatus({});
35634
- this.broadCastLogger = new _BroadcastLogger__WEBPACK_IMPORTED_MODULE_9__.BroadcastLogger(this.ports);
35656
+ this.broadCastLogger = new _BroadcastLogger__WEBPACK_IMPORTED_MODULE_8__.BroadcastLogger(this.ports);
35635
35657
  }
35636
35658
  async waitForStatus(status) {
35637
35659
  await this.waitForReady();
@@ -35650,6 +35672,10 @@ class SharedSyncImplementation extends _powersync_common__WEBPACK_IMPORTED_MODUL
35650
35672
  async waitForReady() {
35651
35673
  return this.isInitialized;
35652
35674
  }
35675
+ setLogLevel(level) {
35676
+ this.logger.setLevel(level);
35677
+ this.broadCastLogger.setLevel(level);
35678
+ }
35653
35679
  /**
35654
35680
  * Configures the DBAdapter connection and a streaming sync client.
35655
35681
  */
@@ -35683,7 +35709,7 @@ class SharedSyncImplementation extends _powersync_common__WEBPACK_IMPORTED_MODUL
35683
35709
  async connect(options) {
35684
35710
  await this.waitForReady();
35685
35711
  // This effectively queues connect and disconnect calls. Ensuring multiple tabs' requests are synchronized
35686
- return (0,_shared_navigator__WEBPACK_IMPORTED_MODULE_8__.getNavigatorLocks)().request('shared-sync-connect', async () => {
35712
+ return (0,_shared_navigator__WEBPACK_IMPORTED_MODULE_7__.getNavigatorLocks)().request('shared-sync-connect', async () => {
35687
35713
  if (!this.dbAdapter) {
35688
35714
  await this.openInternalDB();
35689
35715
  }
@@ -35700,7 +35726,7 @@ class SharedSyncImplementation extends _powersync_common__WEBPACK_IMPORTED_MODUL
35700
35726
  async disconnect() {
35701
35727
  await this.waitForReady();
35702
35728
  // This effectively queues connect and disconnect calls. Ensuring multiple tabs' requests are synchronized
35703
- return (0,_shared_navigator__WEBPACK_IMPORTED_MODULE_8__.getNavigatorLocks)().request('shared-sync-connect', async () => {
35729
+ return (0,_shared_navigator__WEBPACK_IMPORTED_MODULE_7__.getNavigatorLocks)().request('shared-sync-connect', async () => {
35704
35730
  await this.syncStreamClient?.disconnect();
35705
35731
  await this.syncStreamClient?.dispose();
35706
35732
  this.syncStreamClient = null;
@@ -35728,7 +35754,7 @@ class SharedSyncImplementation extends _powersync_common__WEBPACK_IMPORTED_MODUL
35728
35754
  async removePort(port) {
35729
35755
  const index = this.ports.findIndex((p) => p.port == port);
35730
35756
  if (index < 0) {
35731
- console.warn(`Could not remove port ${port} since it is not present in active ports.`);
35757
+ this.logger.warn(`Could not remove port ${port} since it is not present in active ports.`);
35732
35758
  return;
35733
35759
  }
35734
35760
  const trackedPort = this.ports[index];
@@ -35779,9 +35805,9 @@ class SharedSyncImplementation extends _powersync_common__WEBPACK_IMPORTED_MODUL
35779
35805
  // This should only be called after initialization has completed
35780
35806
  const syncParams = this.syncParams;
35781
35807
  // Create a new StreamingSyncImplementation for each connect call. This is usually done is all SDKs.
35782
- return new _db_sync_WebStreamingSyncImplementation__WEBPACK_IMPORTED_MODULE_5__.WebStreamingSyncImplementation({
35808
+ return new _db_sync_WebStreamingSyncImplementation__WEBPACK_IMPORTED_MODULE_4__.WebStreamingSyncImplementation({
35783
35809
  adapter: new _powersync_common__WEBPACK_IMPORTED_MODULE_0__.SqliteBucketStorage(this.dbAdapter, new async_mutex__WEBPACK_IMPORTED_MODULE_1__.Mutex(), this.logger),
35784
- remote: new _db_sync_WebRemote__WEBPACK_IMPORTED_MODULE_4__.WebRemote({
35810
+ remote: new _db_sync_WebRemote__WEBPACK_IMPORTED_MODULE_3__.WebRemote({
35785
35811
  fetchCredentials: async () => {
35786
35812
  const lastPort = this.ports[this.ports.length - 1];
35787
35813
  return new Promise(async (resolve, reject) => {
@@ -35792,7 +35818,7 @@ class SharedSyncImplementation extends _powersync_common__WEBPACK_IMPORTED_MODUL
35792
35818
  };
35793
35819
  abortController.signal.onabort = reject;
35794
35820
  try {
35795
- console.log('calling the last port client provider for credentials');
35821
+ this.logger.log('calling the last port client provider for credentials');
35796
35822
  resolve(await lastPort.clientProvider.fetchCredentials());
35797
35823
  }
35798
35824
  catch (ex) {
@@ -35840,10 +35866,10 @@ class SharedSyncImplementation extends _powersync_common__WEBPACK_IMPORTED_MODUL
35840
35866
  const remote = comlink__WEBPACK_IMPORTED_MODULE_2__.wrap(workerPort);
35841
35867
  const identifier = this.syncParams.dbParams.dbFilename;
35842
35868
  const db = await remote(this.syncParams.dbParams);
35843
- const locked = new _db_adapters_LockedAsyncDatabaseAdapter__WEBPACK_IMPORTED_MODULE_6__.LockedAsyncDatabaseAdapter({
35869
+ const locked = new _db_adapters_LockedAsyncDatabaseAdapter__WEBPACK_IMPORTED_MODULE_5__.LockedAsyncDatabaseAdapter({
35844
35870
  name: identifier,
35845
35871
  openConnection: async () => {
35846
- return new _db_adapters_WorkerWrappedAsyncDatabaseConnection__WEBPACK_IMPORTED_MODULE_7__.WorkerWrappedAsyncDatabaseConnection({
35872
+ return new _db_adapters_WorkerWrappedAsyncDatabaseConnection__WEBPACK_IMPORTED_MODULE_6__.WorkerWrappedAsyncDatabaseConnection({
35847
35873
  remote,
35848
35874
  baseConnection: db,
35849
35875
  identifier
@@ -35935,6 +35961,17 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__journeyapps_wa_sqlite__;
35935
35961
 
35936
35962
  /***/ }),
35937
35963
 
35964
+ /***/ "@journeyapps/wa-sqlite/src/examples/AccessHandlePoolVFS.js":
35965
+ /*!*****************************************************************************!*\
35966
+ !*** external "@journeyapps/wa-sqlite/src/examples/AccessHandlePoolVFS.js" ***!
35967
+ \*****************************************************************************/
35968
+ /***/ ((module) => {
35969
+
35970
+ "use strict";
35971
+ module.exports = __WEBPACK_EXTERNAL_MODULE__journeyapps_wa_sqlite_src_examples_AccessHandlePoolVFS_js__;
35972
+
35973
+ /***/ }),
35974
+
35938
35975
  /***/ "@journeyapps/wa-sqlite/src/examples/IDBBatchAtomicVFS.js":
35939
35976
  /*!***************************************************************************!*\
35940
35977
  !*** external "@journeyapps/wa-sqlite/src/examples/IDBBatchAtomicVFS.js" ***!
@@ -35946,6 +35983,17 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__journeyapps_wa_sqlite_src_examples_I
35946
35983
 
35947
35984
  /***/ }),
35948
35985
 
35986
+ /***/ "@journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js":
35987
+ /*!*************************************************************************!*\
35988
+ !*** external "@journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js" ***!
35989
+ \*************************************************************************/
35990
+ /***/ ((module) => {
35991
+
35992
+ "use strict";
35993
+ module.exports = __WEBPACK_EXTERNAL_MODULE__journeyapps_wa_sqlite_src_examples_OPFSCoopSyncVFS_js__;
35994
+
35995
+ /***/ }),
35996
+
35949
35997
  /***/ "@powersync/common":
35950
35998
  /*!************************************!*\
35951
35999
  !*** external "@powersync/common" ***!
@@ -35979,17 +36027,6 @@ module.exports = __WEBPACK_EXTERNAL_MODULE_comlink__;
35979
36027
 
35980
36028
  /***/ }),
35981
36029
 
35982
- /***/ "js-logger":
35983
- /*!****************************!*\
35984
- !*** external "js-logger" ***!
35985
- \****************************/
35986
- /***/ ((module) => {
35987
-
35988
- "use strict";
35989
- module.exports = __WEBPACK_EXTERNAL_MODULE_js_logger__;
35990
-
35991
- /***/ }),
35992
-
35993
36030
  /***/ "?2e65":
35994
36031
  /*!************************!*\
35995
36032
  !*** buffer (ignored) ***!
@@ -40496,2639 +40533,6 @@ exports.setInternalBufferSize = setInternalBufferSize;
40496
40533
  //# sourceMappingURL=bson.cjs.map
40497
40534
 
40498
40535
 
40499
- /***/ }),
40500
-
40501
- /***/ "./node_modules/@journeyapps/wa-sqlite/src/FacadeVFS.js":
40502
- /*!**************************************************************!*\
40503
- !*** ./node_modules/@journeyapps/wa-sqlite/src/FacadeVFS.js ***!
40504
- \**************************************************************/
40505
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
40506
-
40507
- "use strict";
40508
- __webpack_require__.r(__webpack_exports__);
40509
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
40510
- /* harmony export */ FacadeVFS: () => (/* binding */ FacadeVFS)
40511
- /* harmony export */ });
40512
- /* harmony import */ var _VFS_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VFS.js */ "./node_modules/@journeyapps/wa-sqlite/src/VFS.js");
40513
- // Copyright 2024 Roy T. Hashimoto. All Rights Reserved.
40514
-
40515
-
40516
- const AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;
40517
-
40518
- // Milliseconds since Julian epoch as a BigInt.
40519
- // https://github.com/sqlite/sqlite/blob/e57527c14f7b7cfa6e32eeab5c549d50c4fa3674/src/os_unix.c#L6872-L6882
40520
- const UNIX_EPOCH = 24405875n * 8640000n;
40521
-
40522
- // Convenience base class for a JavaScript VFS.
40523
- // The raw xOpen, xRead, etc. function signatures receive only C primitives
40524
- // which aren't easy to work with. This class provides corresponding calls
40525
- // like jOpen, jRead, etc., which receive JavaScript-friendlier arguments
40526
- // such as string, Uint8Array, and DataView.
40527
- class FacadeVFS extends _VFS_js__WEBPACK_IMPORTED_MODULE_0__.Base {
40528
- /**
40529
- * @param {string} name
40530
- * @param {object} module
40531
- */
40532
- constructor(name, module) {
40533
- super(name, module);
40534
- }
40535
-
40536
- /**
40537
- * Override to indicate which methods are asynchronous.
40538
- * @param {string} methodName
40539
- * @returns {boolean}
40540
- */
40541
- hasAsyncMethod(methodName) {
40542
- // The input argument is a string like "xOpen", so convert to "jOpen".
40543
- // Then check if the method exists and is async.
40544
- const jMethodName = `j${methodName.slice(1)}`;
40545
- return this[jMethodName] instanceof AsyncFunction;
40546
- }
40547
-
40548
- /**
40549
- * Return the filename for a file id for use by mixins.
40550
- * @param {number} pFile
40551
- * @returns {string}
40552
- */
40553
- getFilename(pFile) {
40554
- throw new Error('unimplemented');
40555
- }
40556
-
40557
- /**
40558
- * @param {string?} filename
40559
- * @param {number} pFile
40560
- * @param {number} flags
40561
- * @param {DataView} pOutFlags
40562
- * @returns {number|Promise<number>}
40563
- */
40564
- jOpen(filename, pFile, flags, pOutFlags) {
40565
- return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CANTOPEN;
40566
- }
40567
-
40568
- /**
40569
- * @param {string} filename
40570
- * @param {number} syncDir
40571
- * @returns {number|Promise<number>}
40572
- */
40573
- jDelete(filename, syncDir) {
40574
- return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
40575
- }
40576
-
40577
- /**
40578
- * @param {string} filename
40579
- * @param {number} flags
40580
- * @param {DataView} pResOut
40581
- * @returns {number|Promise<number>}
40582
- */
40583
- jAccess(filename, flags, pResOut) {
40584
- return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
40585
- }
40586
-
40587
- /**
40588
- * @param {string} filename
40589
- * @param {Uint8Array} zOut
40590
- * @returns {number|Promise<number>}
40591
- */
40592
- jFullPathname(filename, zOut) {
40593
- // Copy the filename to the output buffer.
40594
- const { read, written } = new TextEncoder().encodeInto(filename, zOut);
40595
- if (read < filename.length) return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR;
40596
- if (written >= zOut.length) return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR;
40597
- zOut[written] = 0;
40598
- return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
40599
- }
40600
-
40601
- /**
40602
- * @param {Uint8Array} zBuf
40603
- * @returns {number|Promise<number>}
40604
- */
40605
- jGetLastError(zBuf) {
40606
- return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
40607
- }
40608
-
40609
- /**
40610
- * @param {number} pFile
40611
- * @returns {number|Promise<number>}
40612
- */
40613
- jClose(pFile) {
40614
- return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
40615
- }
40616
-
40617
- /**
40618
- * @param {number} pFile
40619
- * @param {Uint8Array} pData
40620
- * @param {number} iOffset
40621
- * @returns {number|Promise<number>}
40622
- */
40623
- jRead(pFile, pData, iOffset) {
40624
- pData.fill(0);
40625
- return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_SHORT_READ;
40626
- }
40627
-
40628
- /**
40629
- * @param {number} pFile
40630
- * @param {Uint8Array} pData
40631
- * @param {number} iOffset
40632
- * @returns {number|Promise<number>}
40633
- */
40634
- jWrite(pFile, pData, iOffset) {
40635
- return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_WRITE;
40636
- }
40637
-
40638
- /**
40639
- * @param {number} pFile
40640
- * @param {number} size
40641
- * @returns {number|Promise<number>}
40642
- */
40643
- jTruncate(pFile, size) {
40644
- return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
40645
- }
40646
-
40647
- /**
40648
- * @param {number} pFile
40649
- * @param {number} flags
40650
- * @returns {number|Promise<number>}
40651
- */
40652
- jSync(pFile, flags) {
40653
- return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
40654
- }
40655
-
40656
- /**
40657
- * @param {number} pFile
40658
- * @param {DataView} pSize
40659
- * @returns {number|Promise<number>}
40660
- */
40661
- jFileSize(pFile, pSize) {
40662
- return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
40663
- }
40664
-
40665
- /**
40666
- * @param {number} pFile
40667
- * @param {number} lockType
40668
- * @returns {number|Promise<number>}
40669
- */
40670
- jLock(pFile, lockType) {
40671
- return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
40672
- }
40673
-
40674
- /**
40675
- * @param {number} pFile
40676
- * @param {number} lockType
40677
- * @returns {number|Promise<number>}
40678
- */
40679
- jUnlock(pFile, lockType) {
40680
- return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
40681
- }
40682
-
40683
- /**
40684
- * @param {number} pFile
40685
- * @param {DataView} pResOut
40686
- * @returns {number|Promise<number>}
40687
- */
40688
- jCheckReservedLock(pFile, pResOut) {
40689
- pResOut.setInt32(0, 0, true);
40690
- return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
40691
- }
40692
-
40693
- /**
40694
- * @param {number} pFile
40695
- * @param {number} op
40696
- * @param {DataView} pArg
40697
- * @returns {number|Promise<number>}
40698
- */
40699
- jFileControl(pFile, op, pArg) {
40700
- return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_NOTFOUND;
40701
- }
40702
-
40703
- /**
40704
- * @param {number} pFile
40705
- * @returns {number|Promise<number>}
40706
- */
40707
- jSectorSize(pFile) {
40708
- return super.xSectorSize(pFile);
40709
- }
40710
-
40711
- /**
40712
- * @param {number} pFile
40713
- * @returns {number|Promise<number>}
40714
- */
40715
- jDeviceCharacteristics(pFile) {
40716
- return 0;
40717
- }
40718
-
40719
- /**
40720
- * @param {number} pVfs
40721
- * @param {number} zName
40722
- * @param {number} pFile
40723
- * @param {number} flags
40724
- * @param {number} pOutFlags
40725
- * @returns {number|Promise<number>}
40726
- */
40727
- xOpen(pVfs, zName, pFile, flags, pOutFlags) {
40728
- const filename = this.#decodeFilename(zName, flags);
40729
- const pOutFlagsView = this.#makeTypedDataView('Int32', pOutFlags);
40730
- this['log']?.('jOpen', filename, pFile, '0x' + flags.toString(16));
40731
- return this.jOpen(filename, pFile, flags, pOutFlagsView);
40732
- }
40733
-
40734
- /**
40735
- * @param {number} pVfs
40736
- * @param {number} nByte
40737
- * @param {number} pCharOut
40738
- * @returns {number|Promise<number>}
40739
- */
40740
- xRandomness(pVfs, nByte, pCharOut) {
40741
- const randomArray = new Uint8Array(nByte);
40742
- crypto.getRandomValues(randomArray);
40743
- // Copy randomArray to the WebAssembly memory
40744
- const buffer = pCharOut; // Pointer to memory in WebAssembly
40745
- this._module.HEAPU8.set(randomArray, buffer); // Copy randomArray into memory starting at buffer
40746
- return nByte;
40747
- }
40748
-
40749
- /**
40750
- * Gets the current time as milliseconds since Unix epoch
40751
- * @param {number} pVfs pointer to the VFS
40752
- * @param {number} pTime pointer to write the time value
40753
- * @returns {number} SQLite error code
40754
- */
40755
- xCurrentTimeInt64(pVfs, pTime) {
40756
- // Create a DataView to write the current time
40757
- const timeView = this.#makeTypedDataView('BigInt64', pTime);
40758
-
40759
- const currentTime = BigInt(Date.now());
40760
- // Convert the current time to milliseconds since Unix epoch
40761
- const value = UNIX_EPOCH + currentTime;
40762
-
40763
- // Write the time value to the pointer location
40764
- timeView.setBigInt64(0, value, true);
40765
-
40766
- return _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
40767
- }
40768
-
40769
- /**
40770
- * @param {number} pVfs
40771
- * @param {number} zName
40772
- * @param {number} syncDir
40773
- * @returns {number|Promise<number>}
40774
- */
40775
- xDelete(pVfs, zName, syncDir) {
40776
- const filename = this._module.UTF8ToString(zName);
40777
- this['log']?.('jDelete', filename, syncDir);
40778
- return this.jDelete(filename, syncDir);
40779
- }
40780
-
40781
- /**
40782
- * @param {number} pVfs
40783
- * @param {number} zName
40784
- * @param {number} flags
40785
- * @param {number} pResOut
40786
- * @returns {number|Promise<number>}
40787
- */
40788
- xAccess(pVfs, zName, flags, pResOut) {
40789
- const filename = this._module.UTF8ToString(zName);
40790
- const pResOutView = this.#makeTypedDataView('Int32', pResOut);
40791
- this['log']?.('jAccess', filename, flags);
40792
- return this.jAccess(filename, flags, pResOutView);
40793
- }
40794
-
40795
- /**
40796
- * @param {number} pVfs
40797
- * @param {number} zName
40798
- * @param {number} nOut
40799
- * @param {number} zOut
40800
- * @returns {number|Promise<number>}
40801
- */
40802
- xFullPathname(pVfs, zName, nOut, zOut) {
40803
- const filename = this._module.UTF8ToString(zName);
40804
- const zOutArray = this._module.HEAPU8.subarray(zOut, zOut + nOut);
40805
- this['log']?.('jFullPathname', filename, nOut);
40806
- return this.jFullPathname(filename, zOutArray);
40807
- }
40808
-
40809
- /**
40810
- * @param {number} pVfs
40811
- * @param {number} nBuf
40812
- * @param {number} zBuf
40813
- * @returns {number|Promise<number>}
40814
- */
40815
- xGetLastError(pVfs, nBuf, zBuf) {
40816
- const zBufArray = this._module.HEAPU8.subarray(zBuf, zBuf + nBuf);
40817
- this['log']?.('jGetLastError', nBuf);
40818
- return this.jGetLastError(zBufArray);
40819
- }
40820
-
40821
- /**
40822
- * @param {number} pFile
40823
- * @returns {number|Promise<number>}
40824
- */
40825
- xClose(pFile) {
40826
- this['log']?.('jClose', pFile);
40827
- return this.jClose(pFile);
40828
- }
40829
-
40830
- /**
40831
- * @param {number} pFile
40832
- * @param {number} pData
40833
- * @param {number} iAmt
40834
- * @param {number} iOffsetLo
40835
- * @param {number} iOffsetHi
40836
- * @returns {number|Promise<number>}
40837
- */
40838
- xRead(pFile, pData, iAmt, iOffsetLo, iOffsetHi) {
40839
- const pDataArray = this.#makeDataArray(pData, iAmt);
40840
- const iOffset = delegalize(iOffsetLo, iOffsetHi);
40841
- this['log']?.('jRead', pFile, iAmt, iOffset);
40842
- return this.jRead(pFile, pDataArray, iOffset);
40843
- }
40844
-
40845
- /**
40846
- * @param {number} pFile
40847
- * @param {number} pData
40848
- * @param {number} iAmt
40849
- * @param {number} iOffsetLo
40850
- * @param {number} iOffsetHi
40851
- * @returns {number|Promise<number>}
40852
- */
40853
- xWrite(pFile, pData, iAmt, iOffsetLo, iOffsetHi) {
40854
- const pDataArray = this.#makeDataArray(pData, iAmt);
40855
- const iOffset = delegalize(iOffsetLo, iOffsetHi);
40856
- this['log']?.('jWrite', pFile, pDataArray, iOffset);
40857
- return this.jWrite(pFile, pDataArray, iOffset);
40858
- }
40859
-
40860
- /**
40861
- * @param {number} pFile
40862
- * @param {number} sizeLo
40863
- * @param {number} sizeHi
40864
- * @returns {number|Promise<number>}
40865
- */
40866
- xTruncate(pFile, sizeLo, sizeHi) {
40867
- const size = delegalize(sizeLo, sizeHi);
40868
- this['log']?.('jTruncate', pFile, size);
40869
- return this.jTruncate(pFile, size);
40870
- }
40871
-
40872
- /**
40873
- * @param {number} pFile
40874
- * @param {number} flags
40875
- * @returns {number|Promise<number>}
40876
- */
40877
- xSync(pFile, flags) {
40878
- this['log']?.('jSync', pFile, flags);
40879
- return this.jSync(pFile, flags);
40880
- }
40881
-
40882
- /**
40883
- *
40884
- * @param {number} pFile
40885
- * @param {number} pSize
40886
- * @returns {number|Promise<number>}
40887
- */
40888
- xFileSize(pFile, pSize) {
40889
- const pSizeView = this.#makeTypedDataView('BigInt64', pSize);
40890
- this['log']?.('jFileSize', pFile);
40891
- return this.jFileSize(pFile, pSizeView);
40892
- }
40893
-
40894
- /**
40895
- * @param {number} pFile
40896
- * @param {number} lockType
40897
- * @returns {number|Promise<number>}
40898
- */
40899
- xLock(pFile, lockType) {
40900
- this['log']?.('jLock', pFile, lockType);
40901
- return this.jLock(pFile, lockType);
40902
- }
40903
-
40904
- /**
40905
- * @param {number} pFile
40906
- * @param {number} lockType
40907
- * @returns {number|Promise<number>}
40908
- */
40909
- xUnlock(pFile, lockType) {
40910
- this['log']?.('jUnlock', pFile, lockType);
40911
- return this.jUnlock(pFile, lockType);
40912
- }
40913
-
40914
- /**
40915
- * @param {number} pFile
40916
- * @param {number} pResOut
40917
- * @returns {number|Promise<number>}
40918
- */
40919
- xCheckReservedLock(pFile, pResOut) {
40920
- const pResOutView = this.#makeTypedDataView('Int32', pResOut);
40921
- this['log']?.('jCheckReservedLock', pFile);
40922
- return this.jCheckReservedLock(pFile, pResOutView);
40923
- }
40924
-
40925
- /**
40926
- * @param {number} pFile
40927
- * @param {number} op
40928
- * @param {number} pArg
40929
- * @returns {number|Promise<number>}
40930
- */
40931
- xFileControl(pFile, op, pArg) {
40932
- const pArgView = new DataView(
40933
- this._module.HEAPU8.buffer,
40934
- this._module.HEAPU8.byteOffset + pArg);
40935
- this['log']?.('jFileControl', pFile, op, pArgView);
40936
- return this.jFileControl(pFile, op, pArgView);
40937
- }
40938
-
40939
- /**
40940
- * @param {number} pFile
40941
- * @returns {number|Promise<number>}
40942
- */
40943
- xSectorSize(pFile) {
40944
- this['log']?.('jSectorSize', pFile);
40945
- return this.jSectorSize(pFile);
40946
- }
40947
-
40948
- /**
40949
- * @param {number} pFile
40950
- * @returns {number|Promise<number>}
40951
- */
40952
- xDeviceCharacteristics(pFile) {
40953
- this['log']?.('jDeviceCharacteristics', pFile);
40954
- return this.jDeviceCharacteristics(pFile);
40955
- }
40956
-
40957
- /**
40958
- * Wrapped DataView for pointer arguments.
40959
- * Pointers to a single value are passed using DataView. A Proxy
40960
- * wrapper prevents use of incorrect type or endianness.
40961
- * @param {'Int32'|'BigInt64'} type
40962
- * @param {number} byteOffset
40963
- * @returns {DataView}
40964
- */
40965
- #makeTypedDataView(type, byteOffset) {
40966
- const byteLength = type === 'Int32' ? 4 : 8;
40967
- const getter = `get${type}`;
40968
- const setter = `set${type}`;
40969
- const makeDataView = () => new DataView(
40970
- this._module.HEAPU8.buffer,
40971
- this._module.HEAPU8.byteOffset + byteOffset,
40972
- byteLength);
40973
- let dataView = makeDataView();
40974
- return new Proxy(dataView, {
40975
- get(_, prop) {
40976
- if (dataView.buffer.byteLength === 0) {
40977
- // WebAssembly memory resize detached the buffer.
40978
- dataView = makeDataView();
40979
- }
40980
- if (prop === getter) {
40981
- return function(byteOffset, littleEndian) {
40982
- if (!littleEndian) throw new Error('must be little endian');
40983
- return dataView[prop](byteOffset, littleEndian);
40984
- }
40985
- }
40986
- if (prop === setter) {
40987
- return function(byteOffset, value, littleEndian) {
40988
- if (!littleEndian) throw new Error('must be little endian');
40989
- return dataView[prop](byteOffset, value, littleEndian);
40990
- }
40991
- }
40992
- if (typeof prop === 'string' && (prop.match(/^(get)|(set)/))) {
40993
- throw new Error('invalid type');
40994
- }
40995
- const result = dataView[prop];
40996
- return typeof result === 'function' ? result.bind(dataView) : result;
40997
- }
40998
- });
40999
- }
41000
-
41001
- /**
41002
- * @param {number} byteOffset
41003
- * @param {number} byteLength
41004
- */
41005
- #makeDataArray(byteOffset, byteLength) {
41006
- let target = this._module.HEAPU8.subarray(byteOffset, byteOffset + byteLength);
41007
- return new Proxy(target, {
41008
- get: (_, prop, receiver) => {
41009
- if (target.buffer.byteLength === 0) {
41010
- // WebAssembly memory resize detached the buffer.
41011
- target = this._module.HEAPU8.subarray(byteOffset, byteOffset + byteLength);
41012
- }
41013
- const result = target[prop];
41014
- return typeof result === 'function' ? result.bind(target) : result;
41015
- }
41016
- });
41017
- }
41018
-
41019
- #decodeFilename(zName, flags) {
41020
- if (flags & _VFS_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_URI) {
41021
- // The first null-terminated string is the URI path. Subsequent
41022
- // strings are query parameter keys and values.
41023
- // https://www.sqlite.org/c3ref/open.html#urifilenamesinsqlite3open
41024
- let pName = zName;
41025
- let state = 1;
41026
- const charCodes = [];
41027
- while (state) {
41028
- const charCode = this._module.HEAPU8[pName++];
41029
- if (charCode) {
41030
- charCodes.push(charCode);
41031
- } else {
41032
- if (!this._module.HEAPU8[pName]) state = null;
41033
- switch (state) {
41034
- case 1: // path
41035
- charCodes.push('?'.charCodeAt(0));
41036
- state = 2;
41037
- break;
41038
- case 2: // key
41039
- charCodes.push('='.charCodeAt(0));
41040
- state = 3;
41041
- break;
41042
- case 3: // value
41043
- charCodes.push('&'.charCodeAt(0));
41044
- state = 2;
41045
- break;
41046
- }
41047
- }
41048
- }
41049
- return new TextDecoder().decode(new Uint8Array(charCodes));
41050
- }
41051
- return zName ? this._module.UTF8ToString(zName) : null;
41052
- }
41053
- }
41054
-
41055
- // Emscripten "legalizes" 64-bit integer arguments by passing them as
41056
- // two 32-bit signed integers.
41057
- function delegalize(lo32, hi32) {
41058
- return (hi32 * 0x100000000) + lo32 + (lo32 < 0 ? 2**32 : 0);
41059
- }
41060
-
41061
-
41062
- /***/ }),
41063
-
41064
- /***/ "./node_modules/@journeyapps/wa-sqlite/src/VFS.js":
41065
- /*!********************************************************!*\
41066
- !*** ./node_modules/@journeyapps/wa-sqlite/src/VFS.js ***!
41067
- \********************************************************/
41068
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
41069
-
41070
- "use strict";
41071
- __webpack_require__.r(__webpack_exports__);
41072
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
41073
- /* harmony export */ Base: () => (/* binding */ Base),
41074
- /* harmony export */ FILE_TYPE_MASK: () => (/* binding */ FILE_TYPE_MASK),
41075
- /* harmony export */ SQLITE_ABORT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_ABORT),
41076
- /* harmony export */ SQLITE_ACCESS_EXISTS: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_ACCESS_EXISTS),
41077
- /* harmony export */ SQLITE_ACCESS_READ: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_ACCESS_READ),
41078
- /* harmony export */ SQLITE_ACCESS_READWRITE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_ACCESS_READWRITE),
41079
- /* harmony export */ SQLITE_ALTER_TABLE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_ALTER_TABLE),
41080
- /* harmony export */ SQLITE_ANALYZE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_ANALYZE),
41081
- /* harmony export */ SQLITE_ATTACH: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_ATTACH),
41082
- /* harmony export */ SQLITE_AUTH: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_AUTH),
41083
- /* harmony export */ SQLITE_BLOB: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_BLOB),
41084
- /* harmony export */ SQLITE_BUSY: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_BUSY),
41085
- /* harmony export */ SQLITE_CANTOPEN: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CANTOPEN),
41086
- /* harmony export */ SQLITE_CONSTRAINT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CONSTRAINT),
41087
- /* harmony export */ SQLITE_CONSTRAINT_CHECK: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CONSTRAINT_CHECK),
41088
- /* harmony export */ SQLITE_CONSTRAINT_COMMITHOOK: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CONSTRAINT_COMMITHOOK),
41089
- /* harmony export */ SQLITE_CONSTRAINT_FOREIGNKEY: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CONSTRAINT_FOREIGNKEY),
41090
- /* harmony export */ SQLITE_CONSTRAINT_FUNCTION: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CONSTRAINT_FUNCTION),
41091
- /* harmony export */ SQLITE_CONSTRAINT_NOTNULL: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CONSTRAINT_NOTNULL),
41092
- /* harmony export */ SQLITE_CONSTRAINT_PINNED: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CONSTRAINT_PINNED),
41093
- /* harmony export */ SQLITE_CONSTRAINT_PRIMARYKEY: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CONSTRAINT_PRIMARYKEY),
41094
- /* harmony export */ SQLITE_CONSTRAINT_ROWID: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CONSTRAINT_ROWID),
41095
- /* harmony export */ SQLITE_CONSTRAINT_TRIGGER: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CONSTRAINT_TRIGGER),
41096
- /* harmony export */ SQLITE_CONSTRAINT_UNIQUE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CONSTRAINT_UNIQUE),
41097
- /* harmony export */ SQLITE_CONSTRAINT_VTAB: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CONSTRAINT_VTAB),
41098
- /* harmony export */ SQLITE_COPY: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_COPY),
41099
- /* harmony export */ SQLITE_CORRUPT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CORRUPT),
41100
- /* harmony export */ SQLITE_CREATE_INDEX: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CREATE_INDEX),
41101
- /* harmony export */ SQLITE_CREATE_TABLE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CREATE_TABLE),
41102
- /* harmony export */ SQLITE_CREATE_TEMP_INDEX: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CREATE_TEMP_INDEX),
41103
- /* harmony export */ SQLITE_CREATE_TEMP_TABLE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CREATE_TEMP_TABLE),
41104
- /* harmony export */ SQLITE_CREATE_TEMP_TRIGGER: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CREATE_TEMP_TRIGGER),
41105
- /* harmony export */ SQLITE_CREATE_TEMP_VIEW: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CREATE_TEMP_VIEW),
41106
- /* harmony export */ SQLITE_CREATE_TRIGGER: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CREATE_TRIGGER),
41107
- /* harmony export */ SQLITE_CREATE_VIEW: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CREATE_VIEW),
41108
- /* harmony export */ SQLITE_CREATE_VTABLE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CREATE_VTABLE),
41109
- /* harmony export */ SQLITE_DELETE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_DELETE),
41110
- /* harmony export */ SQLITE_DENY: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_DENY),
41111
- /* harmony export */ SQLITE_DETACH: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_DETACH),
41112
- /* harmony export */ SQLITE_DETERMINISTIC: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_DETERMINISTIC),
41113
- /* harmony export */ SQLITE_DIRECTONLY: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_DIRECTONLY),
41114
- /* harmony export */ SQLITE_DONE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_DONE),
41115
- /* harmony export */ SQLITE_DROP_INDEX: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_DROP_INDEX),
41116
- /* harmony export */ SQLITE_DROP_TABLE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_DROP_TABLE),
41117
- /* harmony export */ SQLITE_DROP_TEMP_INDEX: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_DROP_TEMP_INDEX),
41118
- /* harmony export */ SQLITE_DROP_TEMP_TABLE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_DROP_TEMP_TABLE),
41119
- /* harmony export */ SQLITE_DROP_TEMP_TRIGGER: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_DROP_TEMP_TRIGGER),
41120
- /* harmony export */ SQLITE_DROP_TEMP_VIEW: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_DROP_TEMP_VIEW),
41121
- /* harmony export */ SQLITE_DROP_TRIGGER: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_DROP_TRIGGER),
41122
- /* harmony export */ SQLITE_DROP_VIEW: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_DROP_VIEW),
41123
- /* harmony export */ SQLITE_DROP_VTABLE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_DROP_VTABLE),
41124
- /* harmony export */ SQLITE_EMPTY: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_EMPTY),
41125
- /* harmony export */ SQLITE_ERROR: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_ERROR),
41126
- /* harmony export */ SQLITE_FCNTL_BEGIN_ATOMIC_WRITE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_BEGIN_ATOMIC_WRITE),
41127
- /* harmony export */ SQLITE_FCNTL_BUSYHANDLER: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_BUSYHANDLER),
41128
- /* harmony export */ SQLITE_FCNTL_CHUNK_SIZE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_CHUNK_SIZE),
41129
- /* harmony export */ SQLITE_FCNTL_CKPT_DONE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_CKPT_DONE),
41130
- /* harmony export */ SQLITE_FCNTL_CKPT_START: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_CKPT_START),
41131
- /* harmony export */ SQLITE_FCNTL_COMMIT_ATOMIC_WRITE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_COMMIT_ATOMIC_WRITE),
41132
- /* harmony export */ SQLITE_FCNTL_COMMIT_PHASETWO: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_COMMIT_PHASETWO),
41133
- /* harmony export */ SQLITE_FCNTL_DATA_VERSION: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_DATA_VERSION),
41134
- /* harmony export */ SQLITE_FCNTL_FILE_POINTER: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_FILE_POINTER),
41135
- /* harmony export */ SQLITE_FCNTL_GET_LOCKPROXYFILE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_GET_LOCKPROXYFILE),
41136
- /* harmony export */ SQLITE_FCNTL_HAS_MOVED: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_HAS_MOVED),
41137
- /* harmony export */ SQLITE_FCNTL_JOURNAL_POINTER: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_JOURNAL_POINTER),
41138
- /* harmony export */ SQLITE_FCNTL_LAST_ERRNO: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_LAST_ERRNO),
41139
- /* harmony export */ SQLITE_FCNTL_LOCKSTATE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_LOCKSTATE),
41140
- /* harmony export */ SQLITE_FCNTL_LOCK_TIMEOUT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_LOCK_TIMEOUT),
41141
- /* harmony export */ SQLITE_FCNTL_MMAP_SIZE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_MMAP_SIZE),
41142
- /* harmony export */ SQLITE_FCNTL_OVERWRITE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_OVERWRITE),
41143
- /* harmony export */ SQLITE_FCNTL_PDB: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_PDB),
41144
- /* harmony export */ SQLITE_FCNTL_PERSIST_WAL: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_PERSIST_WAL),
41145
- /* harmony export */ SQLITE_FCNTL_POWERSAFE_OVERWRITE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_POWERSAFE_OVERWRITE),
41146
- /* harmony export */ SQLITE_FCNTL_PRAGMA: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_PRAGMA),
41147
- /* harmony export */ SQLITE_FCNTL_RBU: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_RBU),
41148
- /* harmony export */ SQLITE_FCNTL_RESERVE_BYTES: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_RESERVE_BYTES),
41149
- /* harmony export */ SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE),
41150
- /* harmony export */ SQLITE_FCNTL_SET_LOCKPROXYFILE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_SET_LOCKPROXYFILE),
41151
- /* harmony export */ SQLITE_FCNTL_SIZE_HINT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_SIZE_HINT),
41152
- /* harmony export */ SQLITE_FCNTL_SIZE_LIMIT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_SIZE_LIMIT),
41153
- /* harmony export */ SQLITE_FCNTL_SYNC: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_SYNC),
41154
- /* harmony export */ SQLITE_FCNTL_SYNC_OMITTED: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_SYNC_OMITTED),
41155
- /* harmony export */ SQLITE_FCNTL_TEMPFILENAME: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_TEMPFILENAME),
41156
- /* harmony export */ SQLITE_FCNTL_TRACE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_TRACE),
41157
- /* harmony export */ SQLITE_FCNTL_VFSNAME: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_VFSNAME),
41158
- /* harmony export */ SQLITE_FCNTL_VFS_POINTER: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_VFS_POINTER),
41159
- /* harmony export */ SQLITE_FCNTL_WAL_BLOCK: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_WAL_BLOCK),
41160
- /* harmony export */ SQLITE_FCNTL_WIN32_AV_RETRY: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_WIN32_AV_RETRY),
41161
- /* harmony export */ SQLITE_FCNTL_WIN32_GET_HANDLE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_WIN32_GET_HANDLE),
41162
- /* harmony export */ SQLITE_FCNTL_WIN32_SET_HANDLE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_WIN32_SET_HANDLE),
41163
- /* harmony export */ SQLITE_FCNTL_ZIPVFS: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FCNTL_ZIPVFS),
41164
- /* harmony export */ SQLITE_FLOAT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FLOAT),
41165
- /* harmony export */ SQLITE_FORMAT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FORMAT),
41166
- /* harmony export */ SQLITE_FULL: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FULL),
41167
- /* harmony export */ SQLITE_FUNCTION: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_FUNCTION),
41168
- /* harmony export */ SQLITE_IGNORE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IGNORE),
41169
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_EQ: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INDEX_CONSTRAINT_EQ),
41170
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_FUNCTION: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INDEX_CONSTRAINT_FUNCTION),
41171
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_GE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INDEX_CONSTRAINT_GE),
41172
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_GLOB: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INDEX_CONSTRAINT_GLOB),
41173
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_GT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INDEX_CONSTRAINT_GT),
41174
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_IS: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INDEX_CONSTRAINT_IS),
41175
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_ISNOT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INDEX_CONSTRAINT_ISNOT),
41176
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_ISNOTNULL: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INDEX_CONSTRAINT_ISNOTNULL),
41177
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_ISNULL: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INDEX_CONSTRAINT_ISNULL),
41178
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_LE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INDEX_CONSTRAINT_LE),
41179
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_LIKE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INDEX_CONSTRAINT_LIKE),
41180
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_LT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INDEX_CONSTRAINT_LT),
41181
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_MATCH: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INDEX_CONSTRAINT_MATCH),
41182
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_NE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INDEX_CONSTRAINT_NE),
41183
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_REGEXP: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INDEX_CONSTRAINT_REGEXP),
41184
- /* harmony export */ SQLITE_INDEX_SCAN_UNIQUE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INDEX_SCAN_UNIQUE),
41185
- /* harmony export */ SQLITE_INNOCUOUS: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INNOCUOUS),
41186
- /* harmony export */ SQLITE_INSERT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INSERT),
41187
- /* harmony export */ SQLITE_INTEGER: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INTEGER),
41188
- /* harmony export */ SQLITE_INTERNAL: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INTERNAL),
41189
- /* harmony export */ SQLITE_INTERRUPT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_INTERRUPT),
41190
- /* harmony export */ SQLITE_IOCAP_ATOMIC: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOCAP_ATOMIC),
41191
- /* harmony export */ SQLITE_IOCAP_ATOMIC16K: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOCAP_ATOMIC16K),
41192
- /* harmony export */ SQLITE_IOCAP_ATOMIC1K: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOCAP_ATOMIC1K),
41193
- /* harmony export */ SQLITE_IOCAP_ATOMIC2K: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOCAP_ATOMIC2K),
41194
- /* harmony export */ SQLITE_IOCAP_ATOMIC32K: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOCAP_ATOMIC32K),
41195
- /* harmony export */ SQLITE_IOCAP_ATOMIC4K: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOCAP_ATOMIC4K),
41196
- /* harmony export */ SQLITE_IOCAP_ATOMIC512: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOCAP_ATOMIC512),
41197
- /* harmony export */ SQLITE_IOCAP_ATOMIC64K: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOCAP_ATOMIC64K),
41198
- /* harmony export */ SQLITE_IOCAP_ATOMIC8K: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOCAP_ATOMIC8K),
41199
- /* harmony export */ SQLITE_IOCAP_BATCH_ATOMIC: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOCAP_BATCH_ATOMIC),
41200
- /* harmony export */ SQLITE_IOCAP_IMMUTABLE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOCAP_IMMUTABLE),
41201
- /* harmony export */ SQLITE_IOCAP_POWERSAFE_OVERWRITE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOCAP_POWERSAFE_OVERWRITE),
41202
- /* harmony export */ SQLITE_IOCAP_SAFE_APPEND: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOCAP_SAFE_APPEND),
41203
- /* harmony export */ SQLITE_IOCAP_SEQUENTIAL: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOCAP_SEQUENTIAL),
41204
- /* harmony export */ SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN),
41205
- /* harmony export */ SQLITE_IOERR: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR),
41206
- /* harmony export */ SQLITE_IOERR_ACCESS: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_ACCESS),
41207
- /* harmony export */ SQLITE_IOERR_BEGIN_ATOMIC: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_BEGIN_ATOMIC),
41208
- /* harmony export */ SQLITE_IOERR_CHECKRESERVEDLOCK: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_CHECKRESERVEDLOCK),
41209
- /* harmony export */ SQLITE_IOERR_CLOSE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_CLOSE),
41210
- /* harmony export */ SQLITE_IOERR_COMMIT_ATOMIC: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_COMMIT_ATOMIC),
41211
- /* harmony export */ SQLITE_IOERR_DATA: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_DATA),
41212
- /* harmony export */ SQLITE_IOERR_DELETE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_DELETE),
41213
- /* harmony export */ SQLITE_IOERR_DELETE_NOENT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_DELETE_NOENT),
41214
- /* harmony export */ SQLITE_IOERR_DIR_FSYNC: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_DIR_FSYNC),
41215
- /* harmony export */ SQLITE_IOERR_FSTAT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_FSTAT),
41216
- /* harmony export */ SQLITE_IOERR_FSYNC: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_FSYNC),
41217
- /* harmony export */ SQLITE_IOERR_GETTEMPPATH: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_GETTEMPPATH),
41218
- /* harmony export */ SQLITE_IOERR_LOCK: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_LOCK),
41219
- /* harmony export */ SQLITE_IOERR_NOMEM: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_NOMEM),
41220
- /* harmony export */ SQLITE_IOERR_RDLOCK: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_RDLOCK),
41221
- /* harmony export */ SQLITE_IOERR_READ: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_READ),
41222
- /* harmony export */ SQLITE_IOERR_ROLLBACK_ATOMIC: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_ROLLBACK_ATOMIC),
41223
- /* harmony export */ SQLITE_IOERR_SEEK: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_SEEK),
41224
- /* harmony export */ SQLITE_IOERR_SHORT_READ: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_SHORT_READ),
41225
- /* harmony export */ SQLITE_IOERR_TRUNCATE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_TRUNCATE),
41226
- /* harmony export */ SQLITE_IOERR_UNLOCK: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_UNLOCK),
41227
- /* harmony export */ SQLITE_IOERR_VNODE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_VNODE),
41228
- /* harmony export */ SQLITE_IOERR_WRITE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_IOERR_WRITE),
41229
- /* harmony export */ SQLITE_LIMIT_ATTACHED: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LIMIT_ATTACHED),
41230
- /* harmony export */ SQLITE_LIMIT_COLUMN: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LIMIT_COLUMN),
41231
- /* harmony export */ SQLITE_LIMIT_COMPOUND_SELECT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LIMIT_COMPOUND_SELECT),
41232
- /* harmony export */ SQLITE_LIMIT_EXPR_DEPTH: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LIMIT_EXPR_DEPTH),
41233
- /* harmony export */ SQLITE_LIMIT_FUNCTION_ARG: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LIMIT_FUNCTION_ARG),
41234
- /* harmony export */ SQLITE_LIMIT_LENGTH: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LIMIT_LENGTH),
41235
- /* harmony export */ SQLITE_LIMIT_LIKE_PATTERN_LENGTH: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LIMIT_LIKE_PATTERN_LENGTH),
41236
- /* harmony export */ SQLITE_LIMIT_SQL_LENGTH: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LIMIT_SQL_LENGTH),
41237
- /* harmony export */ SQLITE_LIMIT_TRIGGER_DEPTH: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LIMIT_TRIGGER_DEPTH),
41238
- /* harmony export */ SQLITE_LIMIT_VARIABLE_NUMBER: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LIMIT_VARIABLE_NUMBER),
41239
- /* harmony export */ SQLITE_LIMIT_VDBE_OP: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LIMIT_VDBE_OP),
41240
- /* harmony export */ SQLITE_LIMIT_WORKER_THREADS: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LIMIT_WORKER_THREADS),
41241
- /* harmony export */ SQLITE_LOCKED: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LOCKED),
41242
- /* harmony export */ SQLITE_LOCK_EXCLUSIVE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LOCK_EXCLUSIVE),
41243
- /* harmony export */ SQLITE_LOCK_NONE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LOCK_NONE),
41244
- /* harmony export */ SQLITE_LOCK_PENDING: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LOCK_PENDING),
41245
- /* harmony export */ SQLITE_LOCK_RESERVED: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LOCK_RESERVED),
41246
- /* harmony export */ SQLITE_LOCK_SHARED: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_LOCK_SHARED),
41247
- /* harmony export */ SQLITE_MISMATCH: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_MISMATCH),
41248
- /* harmony export */ SQLITE_MISUSE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_MISUSE),
41249
- /* harmony export */ SQLITE_NOLFS: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_NOLFS),
41250
- /* harmony export */ SQLITE_NOMEM: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_NOMEM),
41251
- /* harmony export */ SQLITE_NOTADB: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_NOTADB),
41252
- /* harmony export */ SQLITE_NOTFOUND: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_NOTFOUND),
41253
- /* harmony export */ SQLITE_NOTICE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_NOTICE),
41254
- /* harmony export */ SQLITE_NULL: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_NULL),
41255
- /* harmony export */ SQLITE_OK: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK),
41256
- /* harmony export */ SQLITE_OPEN_AUTOPROXY: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_AUTOPROXY),
41257
- /* harmony export */ SQLITE_OPEN_CREATE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_CREATE),
41258
- /* harmony export */ SQLITE_OPEN_DELETEONCLOSE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_DELETEONCLOSE),
41259
- /* harmony export */ SQLITE_OPEN_EXCLUSIVE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_EXCLUSIVE),
41260
- /* harmony export */ SQLITE_OPEN_FULLMUTEX: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_FULLMUTEX),
41261
- /* harmony export */ SQLITE_OPEN_MAIN_DB: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_MAIN_DB),
41262
- /* harmony export */ SQLITE_OPEN_MAIN_JOURNAL: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_MAIN_JOURNAL),
41263
- /* harmony export */ SQLITE_OPEN_MEMORY: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_MEMORY),
41264
- /* harmony export */ SQLITE_OPEN_NOFOLLOW: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_NOFOLLOW),
41265
- /* harmony export */ SQLITE_OPEN_NOMUTEX: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_NOMUTEX),
41266
- /* harmony export */ SQLITE_OPEN_PRIVATECACHE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_PRIVATECACHE),
41267
- /* harmony export */ SQLITE_OPEN_READONLY: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_READONLY),
41268
- /* harmony export */ SQLITE_OPEN_READWRITE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_READWRITE),
41269
- /* harmony export */ SQLITE_OPEN_SHAREDCACHE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_SHAREDCACHE),
41270
- /* harmony export */ SQLITE_OPEN_SUBJOURNAL: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_SUBJOURNAL),
41271
- /* harmony export */ SQLITE_OPEN_SUPER_JOURNAL: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_SUPER_JOURNAL),
41272
- /* harmony export */ SQLITE_OPEN_TEMP_DB: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_TEMP_DB),
41273
- /* harmony export */ SQLITE_OPEN_TEMP_JOURNAL: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_TEMP_JOURNAL),
41274
- /* harmony export */ SQLITE_OPEN_TRANSIENT_DB: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_TRANSIENT_DB),
41275
- /* harmony export */ SQLITE_OPEN_URI: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_URI),
41276
- /* harmony export */ SQLITE_OPEN_WAL: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_WAL),
41277
- /* harmony export */ SQLITE_PERM: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_PERM),
41278
- /* harmony export */ SQLITE_PRAGMA: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_PRAGMA),
41279
- /* harmony export */ SQLITE_PREPARE_NORMALIZED: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_PREPARE_NORMALIZED),
41280
- /* harmony export */ SQLITE_PREPARE_NO_VTAB: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_PREPARE_NO_VTAB),
41281
- /* harmony export */ SQLITE_PREPARE_PERSISTENT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_PREPARE_PERSISTENT),
41282
- /* harmony export */ SQLITE_PROTOCOL: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_PROTOCOL),
41283
- /* harmony export */ SQLITE_RANGE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_RANGE),
41284
- /* harmony export */ SQLITE_READ: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_READ),
41285
- /* harmony export */ SQLITE_READONLY: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_READONLY),
41286
- /* harmony export */ SQLITE_RECURSIVE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_RECURSIVE),
41287
- /* harmony export */ SQLITE_REINDEX: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_REINDEX),
41288
- /* harmony export */ SQLITE_ROW: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_ROW),
41289
- /* harmony export */ SQLITE_SAVEPOINT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_SAVEPOINT),
41290
- /* harmony export */ SQLITE_SCHEMA: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_SCHEMA),
41291
- /* harmony export */ SQLITE_SELECT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_SELECT),
41292
- /* harmony export */ SQLITE_STATIC: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_STATIC),
41293
- /* harmony export */ SQLITE_SUBTYPE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_SUBTYPE),
41294
- /* harmony export */ SQLITE_SYNC_DATAONLY: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_SYNC_DATAONLY),
41295
- /* harmony export */ SQLITE_SYNC_FULL: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_SYNC_FULL),
41296
- /* harmony export */ SQLITE_SYNC_NORMAL: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_SYNC_NORMAL),
41297
- /* harmony export */ SQLITE_TEXT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_TEXT),
41298
- /* harmony export */ SQLITE_TOOBIG: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_TOOBIG),
41299
- /* harmony export */ SQLITE_TRANSACTION: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_TRANSACTION),
41300
- /* harmony export */ SQLITE_TRANSIENT: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_TRANSIENT),
41301
- /* harmony export */ SQLITE_UPDATE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_UPDATE),
41302
- /* harmony export */ SQLITE_UTF16: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_UTF16),
41303
- /* harmony export */ SQLITE_UTF16BE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_UTF16BE),
41304
- /* harmony export */ SQLITE_UTF16LE: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_UTF16LE),
41305
- /* harmony export */ SQLITE_UTF8: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_UTF8),
41306
- /* harmony export */ SQLITE_WARNING: () => (/* reexport safe */ _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_WARNING)
41307
- /* harmony export */ });
41308
- /* harmony import */ var _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sqlite-constants.js */ "./node_modules/@journeyapps/wa-sqlite/src/sqlite-constants.js");
41309
- // Copyright 2024 Roy T. Hashimoto. All Rights Reserved.
41310
-
41311
-
41312
-
41313
- const DEFAULT_SECTOR_SIZE = 512;
41314
-
41315
- // Base class for a VFS.
41316
- class Base {
41317
- name;
41318
- mxPathname = 64;
41319
- _module;
41320
-
41321
- /**
41322
- * @param {string} name
41323
- * @param {object} module
41324
- */
41325
- constructor(name, module) {
41326
- this.name = name;
41327
- this._module = module;
41328
- }
41329
-
41330
- /**
41331
- * @returns {void|Promise<void>}
41332
- */
41333
- close() {
41334
- }
41335
-
41336
- /**
41337
- * @returns {boolean|Promise<boolean>}
41338
- */
41339
- isReady() {
41340
- return true;
41341
- }
41342
-
41343
- /**
41344
- * Overload in subclasses to indicate which methods are asynchronous.
41345
- * @param {string} methodName
41346
- * @returns {boolean}
41347
- */
41348
- hasAsyncMethod(methodName) {
41349
- return false;
41350
- }
41351
-
41352
- /**
41353
- * @param {number} pVfs
41354
- * @param {number} zName
41355
- * @param {number} pFile
41356
- * @param {number} flags
41357
- * @param {number} pOutFlags
41358
- * @returns {number|Promise<number>}
41359
- */
41360
- xOpen(pVfs, zName, pFile, flags, pOutFlags) {
41361
- return _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_CANTOPEN;
41362
- }
41363
-
41364
- /**
41365
- * @param {number} pVfs
41366
- * @param {number} zName
41367
- * @param {number} syncDir
41368
- * @returns {number|Promise<number>}
41369
- */
41370
- xDelete(pVfs, zName, syncDir) {
41371
- return _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
41372
- }
41373
-
41374
- /**
41375
- * @param {number} pVfs
41376
- * @param {number} zName
41377
- * @param {number} flags
41378
- * @param {number} pResOut
41379
- * @returns {number|Promise<number>}
41380
- */
41381
- xAccess(pVfs, zName, flags, pResOut) {
41382
- return _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
41383
- }
41384
-
41385
- /**
41386
- * @param {number} pVfs
41387
- * @param {number} zName
41388
- * @param {number} nOut
41389
- * @param {number} zOut
41390
- * @returns {number|Promise<number>}
41391
- */
41392
- xFullPathname(pVfs, zName, nOut, zOut) {
41393
- return _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
41394
- }
41395
-
41396
- /**
41397
- * @param {number} pVfs
41398
- * @param {number} nBuf
41399
- * @param {number} zBuf
41400
- * @returns {number|Promise<number>}
41401
- */
41402
- xGetLastError(pVfs, nBuf, zBuf) {
41403
- return _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
41404
- }
41405
-
41406
- /**
41407
- * @param {number} pFile
41408
- * @returns {number|Promise<number>}
41409
- */
41410
- xClose(pFile) {
41411
- return _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
41412
- }
41413
-
41414
- /**
41415
- * @param {number} pFile
41416
- * @param {number} pData
41417
- * @param {number} iAmt
41418
- * @param {number} iOffsetLo
41419
- * @param {number} iOffsetHi
41420
- * @returns {number|Promise<number>}
41421
- */
41422
- xRead(pFile, pData, iAmt, iOffsetLo, iOffsetHi) {
41423
- return _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
41424
- }
41425
-
41426
- /**
41427
- * @param {number} pFile
41428
- * @param {number} pData
41429
- * @param {number} iAmt
41430
- * @param {number} iOffsetLo
41431
- * @param {number} iOffsetHi
41432
- * @returns {number|Promise<number>}
41433
- */
41434
- xWrite(pFile, pData, iAmt, iOffsetLo, iOffsetHi) {
41435
- return _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
41436
- }
41437
-
41438
- /**
41439
- * @param {number} pFile
41440
- * @param {number} sizeLo
41441
- * @param {number} sizeHi
41442
- * @returns {number|Promise<number>}
41443
- */
41444
- xTruncate(pFile, sizeLo, sizeHi) {
41445
- return _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
41446
- }
41447
-
41448
- /**
41449
- * @param {number} pFile
41450
- * @param {number} flags
41451
- * @returns {number|Promise<number>}
41452
- */
41453
- xSync(pFile, flags) {
41454
- return _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
41455
- }
41456
-
41457
- /**
41458
- *
41459
- * @param {number} pFile
41460
- * @param {number} pSize
41461
- * @returns {number|Promise<number>}
41462
- */
41463
- xFileSize(pFile, pSize) {
41464
- return _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
41465
- }
41466
-
41467
- /**
41468
- * @param {number} pFile
41469
- * @param {number} lockType
41470
- * @returns {number|Promise<number>}
41471
- */
41472
- xLock(pFile, lockType) {
41473
- return _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
41474
- }
41475
-
41476
- /**
41477
- * @param {number} pFile
41478
- * @param {number} lockType
41479
- * @returns {number|Promise<number>}
41480
- */
41481
- xUnlock(pFile, lockType) {
41482
- return _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
41483
- }
41484
-
41485
- /**
41486
- * @param {number} pFile
41487
- * @param {number} pResOut
41488
- * @returns {number|Promise<number>}
41489
- */
41490
- xCheckReservedLock(pFile, pResOut) {
41491
- return _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OK;
41492
- }
41493
-
41494
- /**
41495
- * @param {number} pFile
41496
- * @param {number} op
41497
- * @param {number} pArg
41498
- * @returns {number|Promise<number>}
41499
- */
41500
- xFileControl(pFile, op, pArg) {
41501
- return _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_NOTFOUND;
41502
- }
41503
-
41504
- /**
41505
- * @param {number} pFile
41506
- * @returns {number|Promise<number>}
41507
- */
41508
- xSectorSize(pFile) {
41509
- return DEFAULT_SECTOR_SIZE;
41510
- }
41511
-
41512
- /**
41513
- * @param {number} pFile
41514
- * @returns {number|Promise<number>}
41515
- */
41516
- xDeviceCharacteristics(pFile) {
41517
- return 0;
41518
- }
41519
- }
41520
-
41521
- const FILE_TYPE_MASK = [
41522
- _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_MAIN_DB,
41523
- _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_MAIN_JOURNAL,
41524
- _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_TEMP_DB,
41525
- _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_TEMP_JOURNAL,
41526
- _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_TRANSIENT_DB,
41527
- _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_SUBJOURNAL,
41528
- _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_SUPER_JOURNAL,
41529
- _sqlite_constants_js__WEBPACK_IMPORTED_MODULE_0__.SQLITE_OPEN_WAL
41530
- ].reduce((mask, element) => mask | element);
41531
-
41532
- /***/ }),
41533
-
41534
- /***/ "./node_modules/@journeyapps/wa-sqlite/src/examples/AccessHandlePoolVFS.js":
41535
- /*!*********************************************************************************!*\
41536
- !*** ./node_modules/@journeyapps/wa-sqlite/src/examples/AccessHandlePoolVFS.js ***!
41537
- \*********************************************************************************/
41538
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
41539
-
41540
- "use strict";
41541
- __webpack_require__.r(__webpack_exports__);
41542
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
41543
- /* harmony export */ AccessHandlePoolVFS: () => (/* binding */ AccessHandlePoolVFS)
41544
- /* harmony export */ });
41545
- /* harmony import */ var _FacadeVFS_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../FacadeVFS.js */ "./node_modules/@journeyapps/wa-sqlite/src/FacadeVFS.js");
41546
- /* harmony import */ var _VFS_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VFS.js */ "./node_modules/@journeyapps/wa-sqlite/src/VFS.js");
41547
- // Copyright 2023 Roy T. Hashimoto. All Rights Reserved.
41548
-
41549
-
41550
-
41551
- const SECTOR_SIZE = 4096;
41552
-
41553
- // Each OPFS file begins with a fixed-size header with metadata. The
41554
- // contents of the file follow immediately after the header.
41555
- const HEADER_MAX_PATH_SIZE = 512;
41556
- const HEADER_FLAGS_SIZE = 4;
41557
- const HEADER_DIGEST_SIZE = 8;
41558
- const HEADER_CORPUS_SIZE = HEADER_MAX_PATH_SIZE + HEADER_FLAGS_SIZE;
41559
- const HEADER_OFFSET_FLAGS = HEADER_MAX_PATH_SIZE;
41560
- const HEADER_OFFSET_DIGEST = HEADER_CORPUS_SIZE;
41561
- const HEADER_OFFSET_DATA = SECTOR_SIZE;
41562
-
41563
- // These file types are expected to persist in the file system outside
41564
- // a session. Other files will be removed on VFS start.
41565
- const PERSISTENT_FILE_TYPES =
41566
- _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OPEN_MAIN_DB |
41567
- _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OPEN_MAIN_JOURNAL |
41568
- _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OPEN_SUPER_JOURNAL |
41569
- _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OPEN_WAL;
41570
-
41571
- const DEFAULT_CAPACITY = 6;
41572
-
41573
- /**
41574
- * This VFS uses the updated Access Handle API with all synchronous methods
41575
- * on FileSystemSyncAccessHandle (instead of just read and write). It will
41576
- * work with the regular SQLite WebAssembly build, i.e. the one without
41577
- * Asyncify.
41578
- */
41579
- class AccessHandlePoolVFS extends _FacadeVFS_js__WEBPACK_IMPORTED_MODULE_0__.FacadeVFS {
41580
- log = null; //function(...args) { console.log(`[${contextName}]`, ...args) };
41581
-
41582
- // All the OPFS files the VFS uses are contained in one flat directory
41583
- // specified in the constructor. No other files should be written here.
41584
- #directoryPath;
41585
- #directoryHandle;
41586
-
41587
- // The OPFS files all have randomly-generated names that do not match
41588
- // the SQLite files whose data they contain. This map links those names
41589
- // with their respective OPFS access handles.
41590
- #mapAccessHandleToName = new Map();
41591
-
41592
- // When a SQLite file is associated with an OPFS file, that association
41593
- // is kept in #mapPathToAccessHandle. Each access handle is in exactly
41594
- // one of #mapPathToAccessHandle or #availableAccessHandles.
41595
- #mapPathToAccessHandle = new Map();
41596
- #availableAccessHandles = new Set();
41597
-
41598
- #mapIdToFile = new Map();
41599
-
41600
- static async create(name, module) {
41601
- const vfs = new AccessHandlePoolVFS(name, module);
41602
- await vfs.isReady();
41603
- return vfs;
41604
- }
41605
-
41606
- constructor(name, module) {
41607
- super(name, module);
41608
- this.#directoryPath = name;
41609
- }
41610
-
41611
- /**
41612
- * @param {string?} zName
41613
- * @param {number} fileId
41614
- * @param {number} flags
41615
- * @param {DataView} pOutFlags
41616
- * @returns {number}
41617
- */
41618
- jOpen(zName, fileId, flags, pOutFlags) {
41619
- try {
41620
- // First try to open a path that already exists in the file system.
41621
- const path = zName ? this.#getPath(zName) : Math.random().toString(36);
41622
- let accessHandle = this.#mapPathToAccessHandle.get(path);
41623
- if (!accessHandle && (flags & _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OPEN_CREATE)) {
41624
- // File not found so try to create it.
41625
- if (this.getSize() < this.getCapacity()) {
41626
- // Choose an unassociated OPFS file from the pool.
41627
- ([accessHandle] = this.#availableAccessHandles.keys());
41628
- this.#setAssociatedPath(accessHandle, path, flags);
41629
- } else {
41630
- // Out of unassociated files. This can be fixed by calling
41631
- // addCapacity() from the application.
41632
- throw new Error('cannot create file');
41633
- }
41634
- }
41635
- if (!accessHandle) {
41636
- throw new Error('file not found');
41637
- }
41638
- // Subsequent methods are only passed the fileId, so make sure we have
41639
- // a way to get the file resources.
41640
- const file = { path, flags, accessHandle };
41641
- this.#mapIdToFile.set(fileId, file);
41642
-
41643
- pOutFlags.setInt32(0, flags, true);
41644
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
41645
- } catch (e) {
41646
- console.error(e.message);
41647
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_CANTOPEN;
41648
- }
41649
- }
41650
-
41651
- /**
41652
- * @param {number} fileId
41653
- * @returns {number}
41654
- */
41655
- jClose(fileId) {
41656
- const file = this.#mapIdToFile.get(fileId);
41657
- if (file) {
41658
- file.accessHandle.flush();
41659
- this.#mapIdToFile.delete(fileId);
41660
- if (file.flags & _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OPEN_DELETEONCLOSE) {
41661
- this.#deletePath(file.path);
41662
- }
41663
- }
41664
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
41665
- }
41666
-
41667
- /**
41668
- * @param {number} fileId
41669
- * @param {Uint8Array} pData
41670
- * @param {number} iOffset
41671
- * @returns {number}
41672
- */
41673
- jRead(fileId, pData, iOffset) {
41674
- const file = this.#mapIdToFile.get(fileId);
41675
- const nBytes = file.accessHandle.read(
41676
- pData.subarray(),
41677
- { at: HEADER_OFFSET_DATA + iOffset });
41678
- if (nBytes < pData.byteLength) {
41679
- pData.fill(0, nBytes, pData.byteLength);
41680
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_IOERR_SHORT_READ;
41681
- }
41682
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
41683
- }
41684
-
41685
- /**
41686
- * @param {number} fileId
41687
- * @param {Uint8Array} pData
41688
- * @param {number} iOffset
41689
- * @returns {number}
41690
- */
41691
- jWrite(fileId, pData, iOffset) {
41692
- const file = this.#mapIdToFile.get(fileId);
41693
- const nBytes = file.accessHandle.write(
41694
- pData.subarray(),
41695
- { at: HEADER_OFFSET_DATA + iOffset });
41696
- return nBytes === pData.byteLength ? _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK : _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_IOERR;
41697
- }
41698
-
41699
- /**
41700
- * @param {number} fileId
41701
- * @param {number} iSize
41702
- * @returns {number}
41703
- */
41704
- jTruncate(fileId, iSize) {
41705
- const file = this.#mapIdToFile.get(fileId);
41706
- file.accessHandle.truncate(HEADER_OFFSET_DATA + iSize);
41707
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
41708
- }
41709
-
41710
- /**
41711
- * @param {number} fileId
41712
- * @param {number} flags
41713
- * @returns {number}
41714
- */
41715
- jSync(fileId, flags) {
41716
- const file = this.#mapIdToFile.get(fileId);
41717
- file.accessHandle.flush();
41718
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
41719
- }
41720
-
41721
- /**
41722
- * @param {number} fileId
41723
- * @param {DataView} pSize64
41724
- * @returns {number}
41725
- */
41726
- jFileSize(fileId, pSize64) {
41727
- const file = this.#mapIdToFile.get(fileId);
41728
- const size = file.accessHandle.getSize() - HEADER_OFFSET_DATA;
41729
- pSize64.setBigInt64(0, BigInt(size), true);
41730
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
41731
- }
41732
-
41733
- jSectorSize(fileId) {
41734
- return SECTOR_SIZE;
41735
- }
41736
-
41737
- jDeviceCharacteristics(fileId) {
41738
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN;
41739
- }
41740
-
41741
- /**
41742
- * @param {string} zName
41743
- * @param {number} flags
41744
- * @param {DataView} pResOut
41745
- * @returns {number}
41746
- */
41747
- jAccess(zName, flags, pResOut) {
41748
- const path = this.#getPath(zName);
41749
- pResOut.setInt32(0, this.#mapPathToAccessHandle.has(path) ? 1 : 0, true);
41750
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
41751
- }
41752
-
41753
- /**
41754
- * @param {string} zName
41755
- * @param {number} syncDir
41756
- * @returns {number}
41757
- */
41758
- jDelete(zName, syncDir) {
41759
- const path = this.#getPath(zName);
41760
- this.#deletePath(path);
41761
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
41762
- }
41763
-
41764
- async close() {
41765
- await this.#releaseAccessHandles();
41766
- }
41767
-
41768
- async isReady() {
41769
- if (!this.#directoryHandle) {
41770
- // All files are stored in a single directory.
41771
- let handle = await navigator.storage.getDirectory();
41772
- for (const d of this.#directoryPath.split('/')) {
41773
- if (d) {
41774
- handle = await handle.getDirectoryHandle(d, { create: true });
41775
- }
41776
- }
41777
- this.#directoryHandle = handle;
41778
-
41779
- await this.#acquireAccessHandles();
41780
- if (this.getCapacity() === 0) {
41781
- await this.addCapacity(DEFAULT_CAPACITY);
41782
- }
41783
- }
41784
- return true;
41785
- }
41786
-
41787
- /**
41788
- * Returns the number of SQLite files in the file system.
41789
- * @returns {number}
41790
- */
41791
- getSize() {
41792
- return this.#mapPathToAccessHandle.size;
41793
- }
41794
-
41795
- /**
41796
- * Returns the maximum number of SQLite files the file system can hold.
41797
- * @returns {number}
41798
- */
41799
- getCapacity() {
41800
- return this.#mapAccessHandleToName.size;
41801
- }
41802
-
41803
- /**
41804
- * Increase the capacity of the file system by n.
41805
- * @param {number} n
41806
- * @returns {Promise<number>}
41807
- */
41808
- async addCapacity(n) {
41809
- for (let i = 0; i < n; ++i) {
41810
- const name = Math.random().toString(36).replace('0.', '');
41811
- const handle = await this.#directoryHandle.getFileHandle(name, { create: true });
41812
- const accessHandle = await handle.createSyncAccessHandle();
41813
- this.#mapAccessHandleToName.set(accessHandle, name);
41814
-
41815
- this.#setAssociatedPath(accessHandle, '', 0);
41816
- }
41817
- return n;
41818
- }
41819
-
41820
- /**
41821
- * Decrease the capacity of the file system by n. The capacity cannot be
41822
- * decreased to fewer than the current number of SQLite files in the
41823
- * file system.
41824
- * @param {number} n
41825
- * @returns {Promise<number>}
41826
- */
41827
- async removeCapacity(n) {
41828
- let nRemoved = 0;
41829
- for (const accessHandle of Array.from(this.#availableAccessHandles)) {
41830
- if (nRemoved == n || this.getSize() === this.getCapacity()) return nRemoved;
41831
-
41832
- const name = this.#mapAccessHandleToName.get(accessHandle);
41833
- await accessHandle.close();
41834
- await this.#directoryHandle.removeEntry(name);
41835
- this.#mapAccessHandleToName.delete(accessHandle);
41836
- this.#availableAccessHandles.delete(accessHandle);
41837
- ++nRemoved;
41838
- }
41839
- return nRemoved;
41840
- }
41841
-
41842
- async #acquireAccessHandles() {
41843
- // Enumerate all the files in the directory.
41844
- const files = [];
41845
- for await (const [name, handle] of this.#directoryHandle) {
41846
- if (handle.kind === 'file') {
41847
- files.push([name, handle]);
41848
- }
41849
- }
41850
-
41851
- // Open access handles in parallel, separating associated and unassociated.
41852
- await Promise.all(files.map(async ([name, handle]) => {
41853
- const accessHandle = await handle.createSyncAccessHandle();
41854
- this.#mapAccessHandleToName.set(accessHandle, name);
41855
- const path = this.#getAssociatedPath(accessHandle);
41856
- if (path) {
41857
- this.#mapPathToAccessHandle.set(path, accessHandle);
41858
- } else {
41859
- this.#availableAccessHandles.add(accessHandle);
41860
- }
41861
- }));
41862
- }
41863
-
41864
- #releaseAccessHandles() {
41865
- for (const accessHandle of this.#mapAccessHandleToName.keys()) {
41866
- accessHandle.close();
41867
- }
41868
- this.#mapAccessHandleToName.clear();
41869
- this.#mapPathToAccessHandle.clear();
41870
- this.#availableAccessHandles.clear();
41871
- }
41872
-
41873
- /**
41874
- * Read and return the associated path from an OPFS file header.
41875
- * Empty string is returned for an unassociated OPFS file.
41876
- * @param accessHandle FileSystemSyncAccessHandle
41877
- * @returns {string} path or empty string
41878
- */
41879
- #getAssociatedPath(accessHandle) {
41880
- // Read the path and digest of the path from the file.
41881
- const corpus = new Uint8Array(HEADER_CORPUS_SIZE);
41882
- accessHandle.read(corpus, { at: 0 })
41883
-
41884
- // Delete files not expected to be present.
41885
- const dataView = new DataView(corpus.buffer, corpus.byteOffset);
41886
- const flags = dataView.getUint32(HEADER_OFFSET_FLAGS);
41887
- if (corpus[0] &&
41888
- ((flags & _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OPEN_DELETEONCLOSE) ||
41889
- (flags & PERSISTENT_FILE_TYPES) === 0)) {
41890
- console.warn(`Remove file with unexpected flags ${flags.toString(16)}`);
41891
- this.#setAssociatedPath(accessHandle, '', 0);
41892
- return '';
41893
- }
41894
-
41895
- const fileDigest = new Uint32Array(HEADER_DIGEST_SIZE / 4);
41896
- accessHandle.read(fileDigest, { at: HEADER_OFFSET_DIGEST });
41897
-
41898
- // Verify the digest.
41899
- const computedDigest = this.#computeDigest(corpus);
41900
- if (fileDigest.every((value, i) => value === computedDigest[i])) {
41901
- // Good digest. Decode the null-terminated path string.
41902
- const pathBytes = corpus.findIndex(value => value === 0);
41903
- if (pathBytes === 0) {
41904
- // Ensure that unassociated files are empty. Unassociated files are
41905
- // truncated in #setAssociatedPath after the header is written. If
41906
- // an interruption occurs right before the truncation then garbage
41907
- // may remain in the file.
41908
- accessHandle.truncate(HEADER_OFFSET_DATA);
41909
- }
41910
- return new TextDecoder().decode(corpus.subarray(0, pathBytes));
41911
- } else {
41912
- // Bad digest. Repair this header.
41913
- console.warn('Disassociating file with bad digest.');
41914
- this.#setAssociatedPath(accessHandle, '', 0);
41915
- return '';
41916
- }
41917
- }
41918
-
41919
- /**
41920
- * Set the path on an OPFS file header.
41921
- * @param accessHandle FileSystemSyncAccessHandle
41922
- * @param {string} path
41923
- * @param {number} flags
41924
- */
41925
- #setAssociatedPath(accessHandle, path, flags) {
41926
- // Convert the path string to UTF-8.
41927
- const corpus = new Uint8Array(HEADER_CORPUS_SIZE);
41928
- const encodedResult = new TextEncoder().encodeInto(path, corpus);
41929
- if (encodedResult.written >= HEADER_MAX_PATH_SIZE) {
41930
- throw new Error('path too long');
41931
- }
41932
-
41933
- // Add the creation flags.
41934
- const dataView = new DataView(corpus.buffer, corpus.byteOffset);
41935
- dataView.setUint32(HEADER_OFFSET_FLAGS, flags);
41936
-
41937
- // Write the OPFS file header, including the digest.
41938
- const digest = this.#computeDigest(corpus);
41939
- accessHandle.write(corpus, { at: 0 });
41940
- accessHandle.write(digest, { at: HEADER_OFFSET_DIGEST });
41941
- accessHandle.flush();
41942
-
41943
- if (path) {
41944
- this.#mapPathToAccessHandle.set(path, accessHandle);
41945
- this.#availableAccessHandles.delete(accessHandle);
41946
- } else {
41947
- // This OPFS file doesn't represent any SQLite file so it doesn't
41948
- // need to keep any data.
41949
- accessHandle.truncate(HEADER_OFFSET_DATA);
41950
- this.#availableAccessHandles.add(accessHandle);
41951
- }
41952
- }
41953
-
41954
- /**
41955
- * We need a synchronous digest function so can't use WebCrypto.
41956
- * Adapted from https://github.com/bryc/code/blob/master/jshash/experimental/cyrb53.js
41957
- * @param {Uint8Array} corpus
41958
- * @returns {ArrayBuffer} 64-bit digest
41959
- */
41960
- #computeDigest(corpus) {
41961
- if (!corpus[0]) {
41962
- // Optimization for deleted file.
41963
- return new Uint32Array([0xfecc5f80, 0xaccec037]);
41964
- }
41965
-
41966
- let h1 = 0xdeadbeef;
41967
- let h2 = 0x41c6ce57;
41968
-
41969
- for (const value of corpus) {
41970
- h1 = Math.imul(h1 ^ value, 2654435761);
41971
- h2 = Math.imul(h2 ^ value, 1597334677);
41972
- }
41973
-
41974
- h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^ Math.imul(h2 ^ (h2 >>> 13), 3266489909);
41975
- h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^ Math.imul(h1 ^ (h1 >>> 13), 3266489909);
41976
-
41977
- return new Uint32Array([h1 >>> 0, h2 >>> 0]);
41978
- };
41979
-
41980
- /**
41981
- * Convert a bare filename, path, or URL to a UNIX-style path.
41982
- * @param {string|URL} nameOrURL
41983
- * @returns {string} path
41984
- */
41985
- #getPath(nameOrURL) {
41986
- const url = typeof nameOrURL === 'string' ?
41987
- new URL(nameOrURL, 'file://localhost/') :
41988
- nameOrURL;
41989
- return url.pathname;
41990
- }
41991
-
41992
- /**
41993
- * Remove the association between a path and an OPFS file.
41994
- * @param {string} path
41995
- */
41996
- #deletePath(path) {
41997
- const accessHandle = this.#mapPathToAccessHandle.get(path);
41998
- if (accessHandle) {
41999
- // Un-associate the SQLite path from the OPFS file.
42000
- this.#mapPathToAccessHandle.delete(path);
42001
- this.#setAssociatedPath(accessHandle, '', 0);
42002
- }
42003
- }
42004
- }
42005
-
42006
- /***/ }),
42007
-
42008
- /***/ "./node_modules/@journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js":
42009
- /*!*****************************************************************************!*\
42010
- !*** ./node_modules/@journeyapps/wa-sqlite/src/examples/OPFSCoopSyncVFS.js ***!
42011
- \*****************************************************************************/
42012
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
42013
-
42014
- "use strict";
42015
- __webpack_require__.r(__webpack_exports__);
42016
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
42017
- /* harmony export */ OPFSCoopSyncVFS: () => (/* binding */ OPFSCoopSyncVFS)
42018
- /* harmony export */ });
42019
- /* harmony import */ var _FacadeVFS_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../FacadeVFS.js */ "./node_modules/@journeyapps/wa-sqlite/src/FacadeVFS.js");
42020
- /* harmony import */ var _VFS_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../VFS.js */ "./node_modules/@journeyapps/wa-sqlite/src/VFS.js");
42021
- // Copyright 2024 Roy T. Hashimoto. All Rights Reserved.
42022
-
42023
-
42024
-
42025
- const DEFAULT_TEMPORARY_FILES = 10;
42026
- const LOCK_NOTIFY_INTERVAL = 1000;
42027
-
42028
- const DB_RELATED_FILE_SUFFIXES = ['', '-journal', '-wal'];
42029
-
42030
- const finalizationRegistry = new FinalizationRegistry(releaser => releaser());
42031
-
42032
- class File {
42033
- /** @type {string} */ path
42034
- /** @type {number} */ flags;
42035
- /** @type {FileSystemSyncAccessHandle} */ accessHandle;
42036
-
42037
- /** @type {PersistentFile?} */ persistentFile;
42038
-
42039
- constructor(path, flags) {
42040
- this.path = path;
42041
- this.flags = flags;
42042
- }
42043
- }
42044
-
42045
- class PersistentFile {
42046
- /** @type {FileSystemFileHandle} */ fileHandle
42047
- /** @type {FileSystemSyncAccessHandle} */ accessHandle = null
42048
-
42049
- // The following properties are for main database files.
42050
-
42051
- /** @type {boolean} */ isLockBusy = false;
42052
- /** @type {boolean} */ isFileLocked = false;
42053
- /** @type {boolean} */ isRequestInProgress = false;
42054
- /** @type {function} */ handleLockReleaser = null;
42055
-
42056
- /** @type {BroadcastChannel} */ handleRequestChannel;
42057
- /** @type {boolean} */ isHandleRequested = false;
42058
-
42059
- constructor(fileHandle) {
42060
- this.fileHandle = fileHandle;
42061
- }
42062
- }
42063
-
42064
- class OPFSCoopSyncVFS extends _FacadeVFS_js__WEBPACK_IMPORTED_MODULE_0__.FacadeVFS {
42065
- /** @type {Map<number, File>} */ mapIdToFile = new Map();
42066
-
42067
- lastError = null;
42068
- log = null; //function(...args) { console.log(`[${contextName}]`, ...args) };
42069
-
42070
- /** @type {Map<string, PersistentFile>} */ persistentFiles = new Map();
42071
- /** @type {Map<string, FileSystemSyncAccessHandle>} */ boundAccessHandles = new Map();
42072
- /** @type {Set<FileSystemSyncAccessHandle>} */ unboundAccessHandles = new Set();
42073
- /** @type {Set<string>} */ accessiblePaths = new Set();
42074
- releaser = null;
42075
-
42076
- static async create(name, module) {
42077
- const vfs = new OPFSCoopSyncVFS(name, module);
42078
- await Promise.all([
42079
- vfs.isReady(),
42080
- vfs.#initialize(DEFAULT_TEMPORARY_FILES),
42081
- ]);
42082
- return vfs;
42083
- }
42084
-
42085
- constructor(name, module) {
42086
- super(name, module);
42087
- }
42088
-
42089
- async #initialize(nTemporaryFiles) {
42090
- // Delete temporary directories no longer in use.
42091
- const root = await navigator.storage.getDirectory();
42092
- // @ts-ignore
42093
- for await (const entry of root.values()) {
42094
- if (entry.kind === 'directory' && entry.name.startsWith('.ahp-')) {
42095
- // A lock with the same name as the directory protects it from
42096
- // being deleted.
42097
- await navigator.locks.request(entry.name, { ifAvailable: true }, async lock => {
42098
- if (lock) {
42099
- this.log?.(`Deleting temporary directory ${entry.name}`);
42100
- await root.removeEntry(entry.name, { recursive: true });
42101
- } else {
42102
- this.log?.(`Temporary directory ${entry.name} is in use`);
42103
- }
42104
- });
42105
- }
42106
- }
42107
-
42108
- // Create our temporary directory.
42109
- const tmpDirName = `.ahp-${Math.random().toString(36).slice(2)}`;
42110
- this.releaser = await new Promise(resolve => {
42111
- navigator.locks.request(tmpDirName, () => {
42112
- return new Promise(release => {
42113
- resolve(release);
42114
- });
42115
- });
42116
- });
42117
- finalizationRegistry.register(this, this.releaser);
42118
- const tmpDir = await root.getDirectoryHandle(tmpDirName, { create: true });
42119
-
42120
- // Populate temporary directory.
42121
- for (let i = 0; i < nTemporaryFiles; i++) {
42122
- const tmpFile = await tmpDir.getFileHandle(`${i}.tmp`, { create: true });
42123
- const tmpAccessHandle = await tmpFile.createSyncAccessHandle();
42124
- this.unboundAccessHandles.add(tmpAccessHandle);
42125
- }
42126
- }
42127
-
42128
- /**
42129
- * @param {string?} zName
42130
- * @param {number} fileId
42131
- * @param {number} flags
42132
- * @param {DataView} pOutFlags
42133
- * @returns {number}
42134
- */
42135
- jOpen(zName, fileId, flags, pOutFlags) {
42136
- try {
42137
- const url = new URL(zName || Math.random().toString(36).slice(2), 'file://');
42138
- const path = url.pathname;
42139
-
42140
- if (flags & _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OPEN_MAIN_DB) {
42141
- const persistentFile = this.persistentFiles.get(path);
42142
- if (persistentFile?.isRequestInProgress) {
42143
- // Should not reach here unless SQLite itself retries an open.
42144
- // Otherwise, asynchronous operations started on a previous
42145
- // open try should have completed.
42146
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_BUSY;
42147
- } else if (!persistentFile) {
42148
- // This is the usual starting point for opening a database.
42149
- // Register a Promise that resolves when the database and related
42150
- // files are ready to be used.
42151
- this.log?.(`creating persistent file for ${path}`);
42152
- const create = !!(flags & _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OPEN_CREATE);
42153
- this._module.retryOps.push((async () => {
42154
- try {
42155
- // Get the path directory handle.
42156
- let dirHandle = await navigator.storage.getDirectory();
42157
- const directories = path.split('/').filter(d => d);
42158
- const filename = directories.pop();
42159
- for (const directory of directories) {
42160
- dirHandle = await dirHandle.getDirectoryHandle(directory, { create });
42161
- }
42162
-
42163
- // Get file handles for the database and related files,
42164
- // and create persistent file instances.
42165
- for (const suffix of DB_RELATED_FILE_SUFFIXES) {
42166
- const fileHandle = await dirHandle.getFileHandle(filename + suffix, { create });
42167
- await this.#createPersistentFile(fileHandle);
42168
- }
42169
-
42170
- // Get access handles for the files.
42171
- const file = new File(path, flags);
42172
- file.persistentFile = this.persistentFiles.get(path);
42173
- await this.#requestAccessHandle(file);
42174
- } catch (e) {
42175
- // Use an invalid persistent file to signal this error
42176
- // for the retried open.
42177
- const persistentFile = new PersistentFile(null);
42178
- this.persistentFiles.set(path, persistentFile);
42179
- console.error(e);
42180
- }
42181
- })());
42182
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_BUSY;
42183
- } else if (!persistentFile.fileHandle) {
42184
- // The asynchronous open operation failed.
42185
- this.persistentFiles.delete(path);
42186
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_CANTOPEN;
42187
- } else if (!persistentFile.accessHandle) {
42188
- // This branch is reached if the database was previously opened
42189
- // and closed.
42190
- this._module.retryOps.push((async () => {
42191
- const file = new File(path, flags);
42192
- file.persistentFile = this.persistentFiles.get(path);
42193
- await this.#requestAccessHandle(file);
42194
- })());
42195
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_BUSY;
42196
- }
42197
- }
42198
-
42199
- if (!this.accessiblePaths.has(path) &&
42200
- !(flags & _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OPEN_CREATE)) {
42201
- throw new Error(`File ${path} not found`);
42202
- }
42203
-
42204
- const file = new File(path, flags);
42205
- this.mapIdToFile.set(fileId, file);
42206
-
42207
- if (this.persistentFiles.has(path)) {
42208
- file.persistentFile = this.persistentFiles.get(path);
42209
- } else if (this.boundAccessHandles.has(path)) {
42210
- // This temporary file was previously created and closed. Reopen
42211
- // the same access handle.
42212
- file.accessHandle = this.boundAccessHandles.get(path);
42213
- } else if (this.unboundAccessHandles.size) {
42214
- // Associate an unbound access handle to this file.
42215
- file.accessHandle = this.unboundAccessHandles.values().next().value;
42216
- file.accessHandle.truncate(0);
42217
- this.unboundAccessHandles.delete(file.accessHandle);
42218
- this.boundAccessHandles.set(path, file.accessHandle);
42219
- }
42220
- this.accessiblePaths.add(path);
42221
-
42222
- pOutFlags.setInt32(0, flags, true);
42223
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
42224
- } catch (e) {
42225
- this.lastError = e;
42226
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_CANTOPEN;
42227
- }
42228
- }
42229
-
42230
- /**
42231
- * @param {string} zName
42232
- * @param {number} syncDir
42233
- * @returns {number}
42234
- */
42235
- jDelete(zName, syncDir) {
42236
- try {
42237
- const url = new URL(zName, 'file://');
42238
- const path = url.pathname;
42239
- if (this.persistentFiles.has(path)) {
42240
- const persistentFile = this.persistentFiles.get(path);
42241
- persistentFile.accessHandle.truncate(0);
42242
- } else {
42243
- this.boundAccessHandles.get(path)?.truncate(0);
42244
- }
42245
- this.accessiblePaths.delete(path);
42246
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
42247
- } catch (e) {
42248
- this.lastError = e;
42249
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_IOERR_DELETE;
42250
- }
42251
- }
42252
-
42253
- /**
42254
- * @param {string} zName
42255
- * @param {number} flags
42256
- * @param {DataView} pResOut
42257
- * @returns {number}
42258
- */
42259
- jAccess(zName, flags, pResOut) {
42260
- try {
42261
- const url = new URL(zName, 'file://');
42262
- const path = url.pathname;
42263
- pResOut.setInt32(0, this.accessiblePaths.has(path) ? 1 : 0, true);
42264
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
42265
- } catch (e) {
42266
- this.lastError = e;
42267
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_IOERR_ACCESS;
42268
- }
42269
- }
42270
-
42271
- /**
42272
- * @param {number} fileId
42273
- * @returns {number}
42274
- */
42275
- jClose(fileId) {
42276
- try {
42277
- const file = this.mapIdToFile.get(fileId);
42278
- this.mapIdToFile.delete(fileId);
42279
-
42280
- if (file?.flags & _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OPEN_MAIN_DB) {
42281
- if (file.persistentFile?.handleLockReleaser) {
42282
- this.#releaseAccessHandle(file);
42283
- }
42284
- } else if (file?.flags & _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OPEN_DELETEONCLOSE) {
42285
- file.accessHandle.truncate(0);
42286
- this.accessiblePaths.delete(file.path);
42287
- if (!this.persistentFiles.has(file.path)) {
42288
- this.boundAccessHandles.delete(file.path);
42289
- this.unboundAccessHandles.add(file.accessHandle);
42290
- }
42291
- }
42292
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
42293
- } catch (e) {
42294
- this.lastError = e;
42295
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_IOERR_CLOSE;
42296
- }
42297
- }
42298
-
42299
- /**
42300
- * @param {number} fileId
42301
- * @param {Uint8Array} pData
42302
- * @param {number} iOffset
42303
- * @returns {number}
42304
- */
42305
- jRead(fileId, pData, iOffset) {
42306
- try {
42307
- const file = this.mapIdToFile.get(fileId);
42308
-
42309
- // On Chrome (at least), passing pData to accessHandle.read() is
42310
- // an error because pData is a Proxy of a Uint8Array. Calling
42311
- // subarray() produces a real Uint8Array and that works.
42312
- const accessHandle = file.accessHandle || file.persistentFile.accessHandle;
42313
- const bytesRead = accessHandle.read(pData.subarray(), { at: iOffset });
42314
-
42315
- // Opening a database file performs one read without a xLock call.
42316
- if ((file.flags & _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OPEN_MAIN_DB) && !file.persistentFile.isFileLocked) {
42317
- this.#releaseAccessHandle(file);
42318
- }
42319
-
42320
- if (bytesRead < pData.byteLength) {
42321
- pData.fill(0, bytesRead);
42322
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_IOERR_SHORT_READ;
42323
- }
42324
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
42325
- } catch (e) {
42326
- this.lastError = e;
42327
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_IOERR_READ;
42328
- }
42329
- }
42330
-
42331
- /**
42332
- * @param {number} fileId
42333
- * @param {Uint8Array} pData
42334
- * @param {number} iOffset
42335
- * @returns {number}
42336
- */
42337
- jWrite(fileId, pData, iOffset) {
42338
- try {
42339
- const file = this.mapIdToFile.get(fileId);
42340
-
42341
- // On Chrome (at least), passing pData to accessHandle.write() is
42342
- // an error because pData is a Proxy of a Uint8Array. Calling
42343
- // subarray() produces a real Uint8Array and that works.
42344
- const accessHandle = file.accessHandle || file.persistentFile.accessHandle;
42345
- const nBytes = accessHandle.write(pData.subarray(), { at: iOffset });
42346
- if (nBytes !== pData.byteLength) throw new Error('short write');
42347
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
42348
- } catch (e) {
42349
- this.lastError = e;
42350
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_IOERR_WRITE;
42351
- }
42352
- }
42353
-
42354
- /**
42355
- * @param {number} fileId
42356
- * @param {number} iSize
42357
- * @returns {number}
42358
- */
42359
- jTruncate(fileId, iSize) {
42360
- try {
42361
- const file = this.mapIdToFile.get(fileId);
42362
- const accessHandle = file.accessHandle || file.persistentFile.accessHandle;
42363
- accessHandle.truncate(iSize);
42364
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
42365
- } catch (e) {
42366
- this.lastError = e;
42367
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_IOERR_TRUNCATE;
42368
- }
42369
- }
42370
-
42371
- /**
42372
- * @param {number} fileId
42373
- * @param {number} flags
42374
- * @returns {number}
42375
- */
42376
- jSync(fileId, flags) {
42377
- try {
42378
- const file = this.mapIdToFile.get(fileId);
42379
- const accessHandle = file.accessHandle || file.persistentFile.accessHandle;
42380
- accessHandle.flush();
42381
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
42382
- } catch (e) {
42383
- this.lastError = e;
42384
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_IOERR_FSYNC;
42385
- }
42386
- }
42387
-
42388
- /**
42389
- * @param {number} fileId
42390
- * @param {DataView} pSize64
42391
- * @returns {number}
42392
- */
42393
- jFileSize(fileId, pSize64) {
42394
- try {
42395
- const file = this.mapIdToFile.get(fileId);
42396
- const accessHandle = file.accessHandle || file.persistentFile.accessHandle;
42397
- const size = accessHandle.getSize();
42398
- pSize64.setBigInt64(0, BigInt(size), true);
42399
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
42400
- } catch (e) {
42401
- this.lastError = e;
42402
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_IOERR_FSTAT;
42403
- }
42404
- }
42405
-
42406
- /**
42407
- * @param {number} fileId
42408
- * @param {number} lockType
42409
- * @returns {number}
42410
- */
42411
- jLock(fileId, lockType) {
42412
- const file = this.mapIdToFile.get(fileId);
42413
- if (file.persistentFile.isRequestInProgress) {
42414
- file.persistentFile.isLockBusy = true;
42415
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_BUSY;
42416
- }
42417
-
42418
- file.persistentFile.isFileLocked = true;
42419
- if (!file.persistentFile.handleLockReleaser) {
42420
- // Start listening for notifications from other connections.
42421
- // This is before we actually get access handles, but waiting to
42422
- // listen until then allows a race condition where notifications
42423
- // are missed.
42424
- file.persistentFile.handleRequestChannel.onmessage = () => {
42425
- this.log?.(`received notification for ${file.path}`);
42426
- if (file.persistentFile.isFileLocked) {
42427
- // We're still using the access handle, so mark it to be
42428
- // released when we're done.
42429
- file.persistentFile.isHandleRequested = true;
42430
- } else {
42431
- // Release the access handles immediately.
42432
- this.#releaseAccessHandle(file);
42433
- }
42434
- file.persistentFile.handleRequestChannel.onmessage = null;
42435
- };
42436
-
42437
- this.#requestAccessHandle(file);
42438
- this.log?.('returning SQLITE_BUSY');
42439
- file.persistentFile.isLockBusy = true;
42440
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_BUSY;
42441
- }
42442
- file.persistentFile.isLockBusy = false;
42443
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
42444
- }
42445
-
42446
- /**
42447
- * @param {number} fileId
42448
- * @param {number} lockType
42449
- * @returns {number}
42450
- */
42451
- jUnlock(fileId, lockType) {
42452
- const file = this.mapIdToFile.get(fileId);
42453
- if (lockType === _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_LOCK_NONE) {
42454
- // Don't change any state if this unlock is because xLock returned
42455
- // SQLITE_BUSY.
42456
- if (!file.persistentFile.isLockBusy) {
42457
- if (file.persistentFile.isHandleRequested) {
42458
- // Another connection wants the access handle.
42459
- this.#releaseAccessHandle(file);
42460
- this.isHandleRequested = false;
42461
- }
42462
- file.persistentFile.isFileLocked = false;
42463
- }
42464
- }
42465
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK;
42466
- }
42467
-
42468
- /**
42469
- * @param {number} fileId
42470
- * @param {number} op
42471
- * @param {DataView} pArg
42472
- * @returns {number|Promise<number>}
42473
- */
42474
- jFileControl(fileId, op, pArg) {
42475
- try {
42476
- const file = this.mapIdToFile.get(fileId);
42477
- switch (op) {
42478
- case _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_FCNTL_PRAGMA:
42479
- const key = extractString(pArg, 4);
42480
- const value = extractString(pArg, 8);
42481
- this.log?.('xFileControl', file.path, 'PRAGMA', key, value);
42482
- switch (key.toLowerCase()) {
42483
- case 'journal_mode':
42484
- if (value &&
42485
- !['off', 'memory', 'delete', 'wal'].includes(value.toLowerCase())) {
42486
- throw new Error('journal_mode must be "off", "memory", "delete", or "wal"');
42487
- }
42488
- break;
42489
- }
42490
- break;
42491
- }
42492
- } catch (e) {
42493
- this.lastError = e;
42494
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_IOERR;
42495
- }
42496
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_NOTFOUND;
42497
- }
42498
-
42499
- /**
42500
- * @param {Uint8Array} zBuf
42501
- * @returns
42502
- */
42503
- jGetLastError(zBuf) {
42504
- if (this.lastError) {
42505
- console.error(this.lastError);
42506
- const outputArray = zBuf.subarray(0, zBuf.byteLength - 1);
42507
- const { written } = new TextEncoder().encodeInto(this.lastError.message, outputArray);
42508
- zBuf[written] = 0;
42509
- }
42510
- return _VFS_js__WEBPACK_IMPORTED_MODULE_1__.SQLITE_OK
42511
- }
42512
-
42513
- /**
42514
- * @param {FileSystemFileHandle} fileHandle
42515
- * @returns {Promise<PersistentFile>}
42516
- */
42517
- async #createPersistentFile(fileHandle) {
42518
- const persistentFile = new PersistentFile(fileHandle);
42519
- const root = await navigator.storage.getDirectory();
42520
- const relativePath = await root.resolve(fileHandle);
42521
- const path = `/${relativePath.join('/')}`;
42522
- persistentFile.handleRequestChannel = new BroadcastChannel(`ahp:${path}`);
42523
- this.persistentFiles.set(path, persistentFile);
42524
-
42525
- const f = await fileHandle.getFile();
42526
- if (f.size) {
42527
- this.accessiblePaths.add(path);
42528
- }
42529
- return persistentFile;
42530
- }
42531
-
42532
- /**
42533
- * @param {File} file
42534
- */
42535
- #requestAccessHandle(file) {
42536
- console.assert(!file.persistentFile.handleLockReleaser);
42537
- if (!file.persistentFile.isRequestInProgress) {
42538
- file.persistentFile.isRequestInProgress = true;
42539
- this._module.retryOps.push((async () => {
42540
- // Acquire the Web Lock.
42541
- file.persistentFile.handleLockReleaser = await this.#acquireLock(file.persistentFile);
42542
-
42543
- // Get access handles for the database and releated files in parallel.
42544
- this.log?.(`creating access handles for ${file.path}`)
42545
- await Promise.all(DB_RELATED_FILE_SUFFIXES.map(async suffix => {
42546
- const persistentFile = this.persistentFiles.get(file.path + suffix);
42547
- if (persistentFile) {
42548
- persistentFile.accessHandle =
42549
- await persistentFile.fileHandle.createSyncAccessHandle();
42550
- }
42551
- }));
42552
- file.persistentFile.isRequestInProgress = false;
42553
- })());
42554
- return this._module.retryOps.at(-1);
42555
- }
42556
- return Promise.resolve();
42557
- }
42558
-
42559
- /**
42560
- * @param {File} file
42561
- */
42562
- async #releaseAccessHandle(file) {
42563
- DB_RELATED_FILE_SUFFIXES.forEach(async suffix => {
42564
- const persistentFile = this.persistentFiles.get(file.path + suffix);
42565
- if (persistentFile) {
42566
- persistentFile.accessHandle?.close();
42567
- persistentFile.accessHandle = null;
42568
- }
42569
- });
42570
- this.log?.(`access handles closed for ${file.path}`)
42571
-
42572
- file.persistentFile.handleLockReleaser?.();
42573
- file.persistentFile.handleLockReleaser = null;
42574
- this.log?.(`lock released for ${file.path}`)
42575
- }
42576
-
42577
- /**
42578
- * @param {PersistentFile} persistentFile
42579
- * @returns {Promise<function>} lock releaser
42580
- */
42581
- #acquireLock(persistentFile) {
42582
- return new Promise(resolve => {
42583
- // Tell other connections we want the access handle.
42584
- const lockName = persistentFile.handleRequestChannel.name;
42585
- const notify = () => {
42586
- this.log?.(`notifying for ${lockName}`);
42587
- persistentFile.handleRequestChannel.postMessage(null);
42588
- }
42589
- const notifyId = setInterval(notify, LOCK_NOTIFY_INTERVAL);
42590
- setTimeout(notify);
42591
-
42592
- this.log?.(`lock requested: ${lockName}`)
42593
- navigator.locks.request(lockName, lock => {
42594
- // We have the lock. Stop asking other connections for it.
42595
- this.log?.(`lock acquired: ${lockName}`, lock);
42596
- clearInterval(notifyId);
42597
- return new Promise(resolve);
42598
- });
42599
- });
42600
- }
42601
- }
42602
-
42603
- function extractString(dataView, offset) {
42604
- const p = dataView.getUint32(offset, true);
42605
- if (p) {
42606
- const chars = new Uint8Array(dataView.buffer, p);
42607
- return new TextDecoder().decode(chars.subarray(0, chars.indexOf(0)));
42608
- }
42609
- return null;
42610
- }
42611
-
42612
- /***/ }),
42613
-
42614
- /***/ "./node_modules/@journeyapps/wa-sqlite/src/sqlite-constants.js":
42615
- /*!*********************************************************************!*\
42616
- !*** ./node_modules/@journeyapps/wa-sqlite/src/sqlite-constants.js ***!
42617
- \*********************************************************************/
42618
- /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
42619
-
42620
- "use strict";
42621
- __webpack_require__.r(__webpack_exports__);
42622
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
42623
- /* harmony export */ SQLITE_ABORT: () => (/* binding */ SQLITE_ABORT),
42624
- /* harmony export */ SQLITE_ACCESS_EXISTS: () => (/* binding */ SQLITE_ACCESS_EXISTS),
42625
- /* harmony export */ SQLITE_ACCESS_READ: () => (/* binding */ SQLITE_ACCESS_READ),
42626
- /* harmony export */ SQLITE_ACCESS_READWRITE: () => (/* binding */ SQLITE_ACCESS_READWRITE),
42627
- /* harmony export */ SQLITE_ALTER_TABLE: () => (/* binding */ SQLITE_ALTER_TABLE),
42628
- /* harmony export */ SQLITE_ANALYZE: () => (/* binding */ SQLITE_ANALYZE),
42629
- /* harmony export */ SQLITE_ATTACH: () => (/* binding */ SQLITE_ATTACH),
42630
- /* harmony export */ SQLITE_AUTH: () => (/* binding */ SQLITE_AUTH),
42631
- /* harmony export */ SQLITE_BLOB: () => (/* binding */ SQLITE_BLOB),
42632
- /* harmony export */ SQLITE_BUSY: () => (/* binding */ SQLITE_BUSY),
42633
- /* harmony export */ SQLITE_CANTOPEN: () => (/* binding */ SQLITE_CANTOPEN),
42634
- /* harmony export */ SQLITE_CONSTRAINT: () => (/* binding */ SQLITE_CONSTRAINT),
42635
- /* harmony export */ SQLITE_CONSTRAINT_CHECK: () => (/* binding */ SQLITE_CONSTRAINT_CHECK),
42636
- /* harmony export */ SQLITE_CONSTRAINT_COMMITHOOK: () => (/* binding */ SQLITE_CONSTRAINT_COMMITHOOK),
42637
- /* harmony export */ SQLITE_CONSTRAINT_FOREIGNKEY: () => (/* binding */ SQLITE_CONSTRAINT_FOREIGNKEY),
42638
- /* harmony export */ SQLITE_CONSTRAINT_FUNCTION: () => (/* binding */ SQLITE_CONSTRAINT_FUNCTION),
42639
- /* harmony export */ SQLITE_CONSTRAINT_NOTNULL: () => (/* binding */ SQLITE_CONSTRAINT_NOTNULL),
42640
- /* harmony export */ SQLITE_CONSTRAINT_PINNED: () => (/* binding */ SQLITE_CONSTRAINT_PINNED),
42641
- /* harmony export */ SQLITE_CONSTRAINT_PRIMARYKEY: () => (/* binding */ SQLITE_CONSTRAINT_PRIMARYKEY),
42642
- /* harmony export */ SQLITE_CONSTRAINT_ROWID: () => (/* binding */ SQLITE_CONSTRAINT_ROWID),
42643
- /* harmony export */ SQLITE_CONSTRAINT_TRIGGER: () => (/* binding */ SQLITE_CONSTRAINT_TRIGGER),
42644
- /* harmony export */ SQLITE_CONSTRAINT_UNIQUE: () => (/* binding */ SQLITE_CONSTRAINT_UNIQUE),
42645
- /* harmony export */ SQLITE_CONSTRAINT_VTAB: () => (/* binding */ SQLITE_CONSTRAINT_VTAB),
42646
- /* harmony export */ SQLITE_COPY: () => (/* binding */ SQLITE_COPY),
42647
- /* harmony export */ SQLITE_CORRUPT: () => (/* binding */ SQLITE_CORRUPT),
42648
- /* harmony export */ SQLITE_CREATE_INDEX: () => (/* binding */ SQLITE_CREATE_INDEX),
42649
- /* harmony export */ SQLITE_CREATE_TABLE: () => (/* binding */ SQLITE_CREATE_TABLE),
42650
- /* harmony export */ SQLITE_CREATE_TEMP_INDEX: () => (/* binding */ SQLITE_CREATE_TEMP_INDEX),
42651
- /* harmony export */ SQLITE_CREATE_TEMP_TABLE: () => (/* binding */ SQLITE_CREATE_TEMP_TABLE),
42652
- /* harmony export */ SQLITE_CREATE_TEMP_TRIGGER: () => (/* binding */ SQLITE_CREATE_TEMP_TRIGGER),
42653
- /* harmony export */ SQLITE_CREATE_TEMP_VIEW: () => (/* binding */ SQLITE_CREATE_TEMP_VIEW),
42654
- /* harmony export */ SQLITE_CREATE_TRIGGER: () => (/* binding */ SQLITE_CREATE_TRIGGER),
42655
- /* harmony export */ SQLITE_CREATE_VIEW: () => (/* binding */ SQLITE_CREATE_VIEW),
42656
- /* harmony export */ SQLITE_CREATE_VTABLE: () => (/* binding */ SQLITE_CREATE_VTABLE),
42657
- /* harmony export */ SQLITE_DELETE: () => (/* binding */ SQLITE_DELETE),
42658
- /* harmony export */ SQLITE_DENY: () => (/* binding */ SQLITE_DENY),
42659
- /* harmony export */ SQLITE_DETACH: () => (/* binding */ SQLITE_DETACH),
42660
- /* harmony export */ SQLITE_DETERMINISTIC: () => (/* binding */ SQLITE_DETERMINISTIC),
42661
- /* harmony export */ SQLITE_DIRECTONLY: () => (/* binding */ SQLITE_DIRECTONLY),
42662
- /* harmony export */ SQLITE_DONE: () => (/* binding */ SQLITE_DONE),
42663
- /* harmony export */ SQLITE_DROP_INDEX: () => (/* binding */ SQLITE_DROP_INDEX),
42664
- /* harmony export */ SQLITE_DROP_TABLE: () => (/* binding */ SQLITE_DROP_TABLE),
42665
- /* harmony export */ SQLITE_DROP_TEMP_INDEX: () => (/* binding */ SQLITE_DROP_TEMP_INDEX),
42666
- /* harmony export */ SQLITE_DROP_TEMP_TABLE: () => (/* binding */ SQLITE_DROP_TEMP_TABLE),
42667
- /* harmony export */ SQLITE_DROP_TEMP_TRIGGER: () => (/* binding */ SQLITE_DROP_TEMP_TRIGGER),
42668
- /* harmony export */ SQLITE_DROP_TEMP_VIEW: () => (/* binding */ SQLITE_DROP_TEMP_VIEW),
42669
- /* harmony export */ SQLITE_DROP_TRIGGER: () => (/* binding */ SQLITE_DROP_TRIGGER),
42670
- /* harmony export */ SQLITE_DROP_VIEW: () => (/* binding */ SQLITE_DROP_VIEW),
42671
- /* harmony export */ SQLITE_DROP_VTABLE: () => (/* binding */ SQLITE_DROP_VTABLE),
42672
- /* harmony export */ SQLITE_EMPTY: () => (/* binding */ SQLITE_EMPTY),
42673
- /* harmony export */ SQLITE_ERROR: () => (/* binding */ SQLITE_ERROR),
42674
- /* harmony export */ SQLITE_FCNTL_BEGIN_ATOMIC_WRITE: () => (/* binding */ SQLITE_FCNTL_BEGIN_ATOMIC_WRITE),
42675
- /* harmony export */ SQLITE_FCNTL_BUSYHANDLER: () => (/* binding */ SQLITE_FCNTL_BUSYHANDLER),
42676
- /* harmony export */ SQLITE_FCNTL_CHUNK_SIZE: () => (/* binding */ SQLITE_FCNTL_CHUNK_SIZE),
42677
- /* harmony export */ SQLITE_FCNTL_CKPT_DONE: () => (/* binding */ SQLITE_FCNTL_CKPT_DONE),
42678
- /* harmony export */ SQLITE_FCNTL_CKPT_START: () => (/* binding */ SQLITE_FCNTL_CKPT_START),
42679
- /* harmony export */ SQLITE_FCNTL_COMMIT_ATOMIC_WRITE: () => (/* binding */ SQLITE_FCNTL_COMMIT_ATOMIC_WRITE),
42680
- /* harmony export */ SQLITE_FCNTL_COMMIT_PHASETWO: () => (/* binding */ SQLITE_FCNTL_COMMIT_PHASETWO),
42681
- /* harmony export */ SQLITE_FCNTL_DATA_VERSION: () => (/* binding */ SQLITE_FCNTL_DATA_VERSION),
42682
- /* harmony export */ SQLITE_FCNTL_FILE_POINTER: () => (/* binding */ SQLITE_FCNTL_FILE_POINTER),
42683
- /* harmony export */ SQLITE_FCNTL_GET_LOCKPROXYFILE: () => (/* binding */ SQLITE_FCNTL_GET_LOCKPROXYFILE),
42684
- /* harmony export */ SQLITE_FCNTL_HAS_MOVED: () => (/* binding */ SQLITE_FCNTL_HAS_MOVED),
42685
- /* harmony export */ SQLITE_FCNTL_JOURNAL_POINTER: () => (/* binding */ SQLITE_FCNTL_JOURNAL_POINTER),
42686
- /* harmony export */ SQLITE_FCNTL_LAST_ERRNO: () => (/* binding */ SQLITE_FCNTL_LAST_ERRNO),
42687
- /* harmony export */ SQLITE_FCNTL_LOCKSTATE: () => (/* binding */ SQLITE_FCNTL_LOCKSTATE),
42688
- /* harmony export */ SQLITE_FCNTL_LOCK_TIMEOUT: () => (/* binding */ SQLITE_FCNTL_LOCK_TIMEOUT),
42689
- /* harmony export */ SQLITE_FCNTL_MMAP_SIZE: () => (/* binding */ SQLITE_FCNTL_MMAP_SIZE),
42690
- /* harmony export */ SQLITE_FCNTL_OVERWRITE: () => (/* binding */ SQLITE_FCNTL_OVERWRITE),
42691
- /* harmony export */ SQLITE_FCNTL_PDB: () => (/* binding */ SQLITE_FCNTL_PDB),
42692
- /* harmony export */ SQLITE_FCNTL_PERSIST_WAL: () => (/* binding */ SQLITE_FCNTL_PERSIST_WAL),
42693
- /* harmony export */ SQLITE_FCNTL_POWERSAFE_OVERWRITE: () => (/* binding */ SQLITE_FCNTL_POWERSAFE_OVERWRITE),
42694
- /* harmony export */ SQLITE_FCNTL_PRAGMA: () => (/* binding */ SQLITE_FCNTL_PRAGMA),
42695
- /* harmony export */ SQLITE_FCNTL_RBU: () => (/* binding */ SQLITE_FCNTL_RBU),
42696
- /* harmony export */ SQLITE_FCNTL_RESERVE_BYTES: () => (/* binding */ SQLITE_FCNTL_RESERVE_BYTES),
42697
- /* harmony export */ SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE: () => (/* binding */ SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE),
42698
- /* harmony export */ SQLITE_FCNTL_SET_LOCKPROXYFILE: () => (/* binding */ SQLITE_FCNTL_SET_LOCKPROXYFILE),
42699
- /* harmony export */ SQLITE_FCNTL_SIZE_HINT: () => (/* binding */ SQLITE_FCNTL_SIZE_HINT),
42700
- /* harmony export */ SQLITE_FCNTL_SIZE_LIMIT: () => (/* binding */ SQLITE_FCNTL_SIZE_LIMIT),
42701
- /* harmony export */ SQLITE_FCNTL_SYNC: () => (/* binding */ SQLITE_FCNTL_SYNC),
42702
- /* harmony export */ SQLITE_FCNTL_SYNC_OMITTED: () => (/* binding */ SQLITE_FCNTL_SYNC_OMITTED),
42703
- /* harmony export */ SQLITE_FCNTL_TEMPFILENAME: () => (/* binding */ SQLITE_FCNTL_TEMPFILENAME),
42704
- /* harmony export */ SQLITE_FCNTL_TRACE: () => (/* binding */ SQLITE_FCNTL_TRACE),
42705
- /* harmony export */ SQLITE_FCNTL_VFSNAME: () => (/* binding */ SQLITE_FCNTL_VFSNAME),
42706
- /* harmony export */ SQLITE_FCNTL_VFS_POINTER: () => (/* binding */ SQLITE_FCNTL_VFS_POINTER),
42707
- /* harmony export */ SQLITE_FCNTL_WAL_BLOCK: () => (/* binding */ SQLITE_FCNTL_WAL_BLOCK),
42708
- /* harmony export */ SQLITE_FCNTL_WIN32_AV_RETRY: () => (/* binding */ SQLITE_FCNTL_WIN32_AV_RETRY),
42709
- /* harmony export */ SQLITE_FCNTL_WIN32_GET_HANDLE: () => (/* binding */ SQLITE_FCNTL_WIN32_GET_HANDLE),
42710
- /* harmony export */ SQLITE_FCNTL_WIN32_SET_HANDLE: () => (/* binding */ SQLITE_FCNTL_WIN32_SET_HANDLE),
42711
- /* harmony export */ SQLITE_FCNTL_ZIPVFS: () => (/* binding */ SQLITE_FCNTL_ZIPVFS),
42712
- /* harmony export */ SQLITE_FLOAT: () => (/* binding */ SQLITE_FLOAT),
42713
- /* harmony export */ SQLITE_FORMAT: () => (/* binding */ SQLITE_FORMAT),
42714
- /* harmony export */ SQLITE_FULL: () => (/* binding */ SQLITE_FULL),
42715
- /* harmony export */ SQLITE_FUNCTION: () => (/* binding */ SQLITE_FUNCTION),
42716
- /* harmony export */ SQLITE_IGNORE: () => (/* binding */ SQLITE_IGNORE),
42717
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_EQ: () => (/* binding */ SQLITE_INDEX_CONSTRAINT_EQ),
42718
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_FUNCTION: () => (/* binding */ SQLITE_INDEX_CONSTRAINT_FUNCTION),
42719
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_GE: () => (/* binding */ SQLITE_INDEX_CONSTRAINT_GE),
42720
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_GLOB: () => (/* binding */ SQLITE_INDEX_CONSTRAINT_GLOB),
42721
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_GT: () => (/* binding */ SQLITE_INDEX_CONSTRAINT_GT),
42722
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_IS: () => (/* binding */ SQLITE_INDEX_CONSTRAINT_IS),
42723
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_ISNOT: () => (/* binding */ SQLITE_INDEX_CONSTRAINT_ISNOT),
42724
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_ISNOTNULL: () => (/* binding */ SQLITE_INDEX_CONSTRAINT_ISNOTNULL),
42725
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_ISNULL: () => (/* binding */ SQLITE_INDEX_CONSTRAINT_ISNULL),
42726
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_LE: () => (/* binding */ SQLITE_INDEX_CONSTRAINT_LE),
42727
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_LIKE: () => (/* binding */ SQLITE_INDEX_CONSTRAINT_LIKE),
42728
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_LT: () => (/* binding */ SQLITE_INDEX_CONSTRAINT_LT),
42729
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_MATCH: () => (/* binding */ SQLITE_INDEX_CONSTRAINT_MATCH),
42730
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_NE: () => (/* binding */ SQLITE_INDEX_CONSTRAINT_NE),
42731
- /* harmony export */ SQLITE_INDEX_CONSTRAINT_REGEXP: () => (/* binding */ SQLITE_INDEX_CONSTRAINT_REGEXP),
42732
- /* harmony export */ SQLITE_INDEX_SCAN_UNIQUE: () => (/* binding */ SQLITE_INDEX_SCAN_UNIQUE),
42733
- /* harmony export */ SQLITE_INNOCUOUS: () => (/* binding */ SQLITE_INNOCUOUS),
42734
- /* harmony export */ SQLITE_INSERT: () => (/* binding */ SQLITE_INSERT),
42735
- /* harmony export */ SQLITE_INTEGER: () => (/* binding */ SQLITE_INTEGER),
42736
- /* harmony export */ SQLITE_INTERNAL: () => (/* binding */ SQLITE_INTERNAL),
42737
- /* harmony export */ SQLITE_INTERRUPT: () => (/* binding */ SQLITE_INTERRUPT),
42738
- /* harmony export */ SQLITE_IOCAP_ATOMIC: () => (/* binding */ SQLITE_IOCAP_ATOMIC),
42739
- /* harmony export */ SQLITE_IOCAP_ATOMIC16K: () => (/* binding */ SQLITE_IOCAP_ATOMIC16K),
42740
- /* harmony export */ SQLITE_IOCAP_ATOMIC1K: () => (/* binding */ SQLITE_IOCAP_ATOMIC1K),
42741
- /* harmony export */ SQLITE_IOCAP_ATOMIC2K: () => (/* binding */ SQLITE_IOCAP_ATOMIC2K),
42742
- /* harmony export */ SQLITE_IOCAP_ATOMIC32K: () => (/* binding */ SQLITE_IOCAP_ATOMIC32K),
42743
- /* harmony export */ SQLITE_IOCAP_ATOMIC4K: () => (/* binding */ SQLITE_IOCAP_ATOMIC4K),
42744
- /* harmony export */ SQLITE_IOCAP_ATOMIC512: () => (/* binding */ SQLITE_IOCAP_ATOMIC512),
42745
- /* harmony export */ SQLITE_IOCAP_ATOMIC64K: () => (/* binding */ SQLITE_IOCAP_ATOMIC64K),
42746
- /* harmony export */ SQLITE_IOCAP_ATOMIC8K: () => (/* binding */ SQLITE_IOCAP_ATOMIC8K),
42747
- /* harmony export */ SQLITE_IOCAP_BATCH_ATOMIC: () => (/* binding */ SQLITE_IOCAP_BATCH_ATOMIC),
42748
- /* harmony export */ SQLITE_IOCAP_IMMUTABLE: () => (/* binding */ SQLITE_IOCAP_IMMUTABLE),
42749
- /* harmony export */ SQLITE_IOCAP_POWERSAFE_OVERWRITE: () => (/* binding */ SQLITE_IOCAP_POWERSAFE_OVERWRITE),
42750
- /* harmony export */ SQLITE_IOCAP_SAFE_APPEND: () => (/* binding */ SQLITE_IOCAP_SAFE_APPEND),
42751
- /* harmony export */ SQLITE_IOCAP_SEQUENTIAL: () => (/* binding */ SQLITE_IOCAP_SEQUENTIAL),
42752
- /* harmony export */ SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN: () => (/* binding */ SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN),
42753
- /* harmony export */ SQLITE_IOERR: () => (/* binding */ SQLITE_IOERR),
42754
- /* harmony export */ SQLITE_IOERR_ACCESS: () => (/* binding */ SQLITE_IOERR_ACCESS),
42755
- /* harmony export */ SQLITE_IOERR_BEGIN_ATOMIC: () => (/* binding */ SQLITE_IOERR_BEGIN_ATOMIC),
42756
- /* harmony export */ SQLITE_IOERR_CHECKRESERVEDLOCK: () => (/* binding */ SQLITE_IOERR_CHECKRESERVEDLOCK),
42757
- /* harmony export */ SQLITE_IOERR_CLOSE: () => (/* binding */ SQLITE_IOERR_CLOSE),
42758
- /* harmony export */ SQLITE_IOERR_COMMIT_ATOMIC: () => (/* binding */ SQLITE_IOERR_COMMIT_ATOMIC),
42759
- /* harmony export */ SQLITE_IOERR_DATA: () => (/* binding */ SQLITE_IOERR_DATA),
42760
- /* harmony export */ SQLITE_IOERR_DELETE: () => (/* binding */ SQLITE_IOERR_DELETE),
42761
- /* harmony export */ SQLITE_IOERR_DELETE_NOENT: () => (/* binding */ SQLITE_IOERR_DELETE_NOENT),
42762
- /* harmony export */ SQLITE_IOERR_DIR_FSYNC: () => (/* binding */ SQLITE_IOERR_DIR_FSYNC),
42763
- /* harmony export */ SQLITE_IOERR_FSTAT: () => (/* binding */ SQLITE_IOERR_FSTAT),
42764
- /* harmony export */ SQLITE_IOERR_FSYNC: () => (/* binding */ SQLITE_IOERR_FSYNC),
42765
- /* harmony export */ SQLITE_IOERR_GETTEMPPATH: () => (/* binding */ SQLITE_IOERR_GETTEMPPATH),
42766
- /* harmony export */ SQLITE_IOERR_LOCK: () => (/* binding */ SQLITE_IOERR_LOCK),
42767
- /* harmony export */ SQLITE_IOERR_NOMEM: () => (/* binding */ SQLITE_IOERR_NOMEM),
42768
- /* harmony export */ SQLITE_IOERR_RDLOCK: () => (/* binding */ SQLITE_IOERR_RDLOCK),
42769
- /* harmony export */ SQLITE_IOERR_READ: () => (/* binding */ SQLITE_IOERR_READ),
42770
- /* harmony export */ SQLITE_IOERR_ROLLBACK_ATOMIC: () => (/* binding */ SQLITE_IOERR_ROLLBACK_ATOMIC),
42771
- /* harmony export */ SQLITE_IOERR_SEEK: () => (/* binding */ SQLITE_IOERR_SEEK),
42772
- /* harmony export */ SQLITE_IOERR_SHORT_READ: () => (/* binding */ SQLITE_IOERR_SHORT_READ),
42773
- /* harmony export */ SQLITE_IOERR_TRUNCATE: () => (/* binding */ SQLITE_IOERR_TRUNCATE),
42774
- /* harmony export */ SQLITE_IOERR_UNLOCK: () => (/* binding */ SQLITE_IOERR_UNLOCK),
42775
- /* harmony export */ SQLITE_IOERR_VNODE: () => (/* binding */ SQLITE_IOERR_VNODE),
42776
- /* harmony export */ SQLITE_IOERR_WRITE: () => (/* binding */ SQLITE_IOERR_WRITE),
42777
- /* harmony export */ SQLITE_LIMIT_ATTACHED: () => (/* binding */ SQLITE_LIMIT_ATTACHED),
42778
- /* harmony export */ SQLITE_LIMIT_COLUMN: () => (/* binding */ SQLITE_LIMIT_COLUMN),
42779
- /* harmony export */ SQLITE_LIMIT_COMPOUND_SELECT: () => (/* binding */ SQLITE_LIMIT_COMPOUND_SELECT),
42780
- /* harmony export */ SQLITE_LIMIT_EXPR_DEPTH: () => (/* binding */ SQLITE_LIMIT_EXPR_DEPTH),
42781
- /* harmony export */ SQLITE_LIMIT_FUNCTION_ARG: () => (/* binding */ SQLITE_LIMIT_FUNCTION_ARG),
42782
- /* harmony export */ SQLITE_LIMIT_LENGTH: () => (/* binding */ SQLITE_LIMIT_LENGTH),
42783
- /* harmony export */ SQLITE_LIMIT_LIKE_PATTERN_LENGTH: () => (/* binding */ SQLITE_LIMIT_LIKE_PATTERN_LENGTH),
42784
- /* harmony export */ SQLITE_LIMIT_SQL_LENGTH: () => (/* binding */ SQLITE_LIMIT_SQL_LENGTH),
42785
- /* harmony export */ SQLITE_LIMIT_TRIGGER_DEPTH: () => (/* binding */ SQLITE_LIMIT_TRIGGER_DEPTH),
42786
- /* harmony export */ SQLITE_LIMIT_VARIABLE_NUMBER: () => (/* binding */ SQLITE_LIMIT_VARIABLE_NUMBER),
42787
- /* harmony export */ SQLITE_LIMIT_VDBE_OP: () => (/* binding */ SQLITE_LIMIT_VDBE_OP),
42788
- /* harmony export */ SQLITE_LIMIT_WORKER_THREADS: () => (/* binding */ SQLITE_LIMIT_WORKER_THREADS),
42789
- /* harmony export */ SQLITE_LOCKED: () => (/* binding */ SQLITE_LOCKED),
42790
- /* harmony export */ SQLITE_LOCK_EXCLUSIVE: () => (/* binding */ SQLITE_LOCK_EXCLUSIVE),
42791
- /* harmony export */ SQLITE_LOCK_NONE: () => (/* binding */ SQLITE_LOCK_NONE),
42792
- /* harmony export */ SQLITE_LOCK_PENDING: () => (/* binding */ SQLITE_LOCK_PENDING),
42793
- /* harmony export */ SQLITE_LOCK_RESERVED: () => (/* binding */ SQLITE_LOCK_RESERVED),
42794
- /* harmony export */ SQLITE_LOCK_SHARED: () => (/* binding */ SQLITE_LOCK_SHARED),
42795
- /* harmony export */ SQLITE_MISMATCH: () => (/* binding */ SQLITE_MISMATCH),
42796
- /* harmony export */ SQLITE_MISUSE: () => (/* binding */ SQLITE_MISUSE),
42797
- /* harmony export */ SQLITE_NOLFS: () => (/* binding */ SQLITE_NOLFS),
42798
- /* harmony export */ SQLITE_NOMEM: () => (/* binding */ SQLITE_NOMEM),
42799
- /* harmony export */ SQLITE_NOTADB: () => (/* binding */ SQLITE_NOTADB),
42800
- /* harmony export */ SQLITE_NOTFOUND: () => (/* binding */ SQLITE_NOTFOUND),
42801
- /* harmony export */ SQLITE_NOTICE: () => (/* binding */ SQLITE_NOTICE),
42802
- /* harmony export */ SQLITE_NULL: () => (/* binding */ SQLITE_NULL),
42803
- /* harmony export */ SQLITE_OK: () => (/* binding */ SQLITE_OK),
42804
- /* harmony export */ SQLITE_OPEN_AUTOPROXY: () => (/* binding */ SQLITE_OPEN_AUTOPROXY),
42805
- /* harmony export */ SQLITE_OPEN_CREATE: () => (/* binding */ SQLITE_OPEN_CREATE),
42806
- /* harmony export */ SQLITE_OPEN_DELETEONCLOSE: () => (/* binding */ SQLITE_OPEN_DELETEONCLOSE),
42807
- /* harmony export */ SQLITE_OPEN_EXCLUSIVE: () => (/* binding */ SQLITE_OPEN_EXCLUSIVE),
42808
- /* harmony export */ SQLITE_OPEN_FULLMUTEX: () => (/* binding */ SQLITE_OPEN_FULLMUTEX),
42809
- /* harmony export */ SQLITE_OPEN_MAIN_DB: () => (/* binding */ SQLITE_OPEN_MAIN_DB),
42810
- /* harmony export */ SQLITE_OPEN_MAIN_JOURNAL: () => (/* binding */ SQLITE_OPEN_MAIN_JOURNAL),
42811
- /* harmony export */ SQLITE_OPEN_MEMORY: () => (/* binding */ SQLITE_OPEN_MEMORY),
42812
- /* harmony export */ SQLITE_OPEN_NOFOLLOW: () => (/* binding */ SQLITE_OPEN_NOFOLLOW),
42813
- /* harmony export */ SQLITE_OPEN_NOMUTEX: () => (/* binding */ SQLITE_OPEN_NOMUTEX),
42814
- /* harmony export */ SQLITE_OPEN_PRIVATECACHE: () => (/* binding */ SQLITE_OPEN_PRIVATECACHE),
42815
- /* harmony export */ SQLITE_OPEN_READONLY: () => (/* binding */ SQLITE_OPEN_READONLY),
42816
- /* harmony export */ SQLITE_OPEN_READWRITE: () => (/* binding */ SQLITE_OPEN_READWRITE),
42817
- /* harmony export */ SQLITE_OPEN_SHAREDCACHE: () => (/* binding */ SQLITE_OPEN_SHAREDCACHE),
42818
- /* harmony export */ SQLITE_OPEN_SUBJOURNAL: () => (/* binding */ SQLITE_OPEN_SUBJOURNAL),
42819
- /* harmony export */ SQLITE_OPEN_SUPER_JOURNAL: () => (/* binding */ SQLITE_OPEN_SUPER_JOURNAL),
42820
- /* harmony export */ SQLITE_OPEN_TEMP_DB: () => (/* binding */ SQLITE_OPEN_TEMP_DB),
42821
- /* harmony export */ SQLITE_OPEN_TEMP_JOURNAL: () => (/* binding */ SQLITE_OPEN_TEMP_JOURNAL),
42822
- /* harmony export */ SQLITE_OPEN_TRANSIENT_DB: () => (/* binding */ SQLITE_OPEN_TRANSIENT_DB),
42823
- /* harmony export */ SQLITE_OPEN_URI: () => (/* binding */ SQLITE_OPEN_URI),
42824
- /* harmony export */ SQLITE_OPEN_WAL: () => (/* binding */ SQLITE_OPEN_WAL),
42825
- /* harmony export */ SQLITE_PERM: () => (/* binding */ SQLITE_PERM),
42826
- /* harmony export */ SQLITE_PRAGMA: () => (/* binding */ SQLITE_PRAGMA),
42827
- /* harmony export */ SQLITE_PREPARE_NORMALIZED: () => (/* binding */ SQLITE_PREPARE_NORMALIZED),
42828
- /* harmony export */ SQLITE_PREPARE_NO_VTAB: () => (/* binding */ SQLITE_PREPARE_NO_VTAB),
42829
- /* harmony export */ SQLITE_PREPARE_PERSISTENT: () => (/* binding */ SQLITE_PREPARE_PERSISTENT),
42830
- /* harmony export */ SQLITE_PROTOCOL: () => (/* binding */ SQLITE_PROTOCOL),
42831
- /* harmony export */ SQLITE_RANGE: () => (/* binding */ SQLITE_RANGE),
42832
- /* harmony export */ SQLITE_READ: () => (/* binding */ SQLITE_READ),
42833
- /* harmony export */ SQLITE_READONLY: () => (/* binding */ SQLITE_READONLY),
42834
- /* harmony export */ SQLITE_RECURSIVE: () => (/* binding */ SQLITE_RECURSIVE),
42835
- /* harmony export */ SQLITE_REINDEX: () => (/* binding */ SQLITE_REINDEX),
42836
- /* harmony export */ SQLITE_ROW: () => (/* binding */ SQLITE_ROW),
42837
- /* harmony export */ SQLITE_SAVEPOINT: () => (/* binding */ SQLITE_SAVEPOINT),
42838
- /* harmony export */ SQLITE_SCHEMA: () => (/* binding */ SQLITE_SCHEMA),
42839
- /* harmony export */ SQLITE_SELECT: () => (/* binding */ SQLITE_SELECT),
42840
- /* harmony export */ SQLITE_STATIC: () => (/* binding */ SQLITE_STATIC),
42841
- /* harmony export */ SQLITE_SUBTYPE: () => (/* binding */ SQLITE_SUBTYPE),
42842
- /* harmony export */ SQLITE_SYNC_DATAONLY: () => (/* binding */ SQLITE_SYNC_DATAONLY),
42843
- /* harmony export */ SQLITE_SYNC_FULL: () => (/* binding */ SQLITE_SYNC_FULL),
42844
- /* harmony export */ SQLITE_SYNC_NORMAL: () => (/* binding */ SQLITE_SYNC_NORMAL),
42845
- /* harmony export */ SQLITE_TEXT: () => (/* binding */ SQLITE_TEXT),
42846
- /* harmony export */ SQLITE_TOOBIG: () => (/* binding */ SQLITE_TOOBIG),
42847
- /* harmony export */ SQLITE_TRANSACTION: () => (/* binding */ SQLITE_TRANSACTION),
42848
- /* harmony export */ SQLITE_TRANSIENT: () => (/* binding */ SQLITE_TRANSIENT),
42849
- /* harmony export */ SQLITE_UPDATE: () => (/* binding */ SQLITE_UPDATE),
42850
- /* harmony export */ SQLITE_UTF16: () => (/* binding */ SQLITE_UTF16),
42851
- /* harmony export */ SQLITE_UTF16BE: () => (/* binding */ SQLITE_UTF16BE),
42852
- /* harmony export */ SQLITE_UTF16LE: () => (/* binding */ SQLITE_UTF16LE),
42853
- /* harmony export */ SQLITE_UTF8: () => (/* binding */ SQLITE_UTF8),
42854
- /* harmony export */ SQLITE_WARNING: () => (/* binding */ SQLITE_WARNING)
42855
- /* harmony export */ });
42856
- // Primary result codes.
42857
- // https://www.sqlite.org/rescode.html
42858
- const SQLITE_OK = 0;
42859
- const SQLITE_ERROR = 1;
42860
- const SQLITE_INTERNAL = 2;
42861
- const SQLITE_PERM = 3;
42862
- const SQLITE_ABORT = 4;
42863
- const SQLITE_BUSY = 5;
42864
- const SQLITE_LOCKED = 6;
42865
- const SQLITE_NOMEM = 7;
42866
- const SQLITE_READONLY = 8;
42867
- const SQLITE_INTERRUPT = 9;
42868
- const SQLITE_IOERR = 10;
42869
- const SQLITE_CORRUPT = 11;
42870
- const SQLITE_NOTFOUND = 12;
42871
- const SQLITE_FULL = 13;
42872
- const SQLITE_CANTOPEN = 14;
42873
- const SQLITE_PROTOCOL = 15;
42874
- const SQLITE_EMPTY = 16;
42875
- const SQLITE_SCHEMA = 17;
42876
- const SQLITE_TOOBIG = 18;
42877
- const SQLITE_CONSTRAINT = 19;
42878
- const SQLITE_MISMATCH = 20;
42879
- const SQLITE_MISUSE = 21;
42880
- const SQLITE_NOLFS = 22;
42881
- const SQLITE_AUTH = 23;
42882
- const SQLITE_FORMAT = 24;
42883
- const SQLITE_RANGE = 25;
42884
- const SQLITE_NOTADB = 26;
42885
- const SQLITE_NOTICE = 27;
42886
- const SQLITE_WARNING = 28;
42887
- const SQLITE_ROW = 100;
42888
- const SQLITE_DONE = 101;
42889
-
42890
- // Extended error codes.
42891
- const SQLITE_IOERR_ACCESS = 3338;
42892
- const SQLITE_IOERR_CHECKRESERVEDLOCK = 3594;
42893
- const SQLITE_IOERR_CLOSE = 4106;
42894
- const SQLITE_IOERR_DATA = 8202;
42895
- const SQLITE_IOERR_DELETE = 2570;
42896
- const SQLITE_IOERR_DELETE_NOENT = 5898;
42897
- const SQLITE_IOERR_DIR_FSYNC = 1290;
42898
- const SQLITE_IOERR_FSTAT = 1802;
42899
- const SQLITE_IOERR_FSYNC = 1034;
42900
- const SQLITE_IOERR_GETTEMPPATH = 6410;
42901
- const SQLITE_IOERR_LOCK = 3850;
42902
- const SQLITE_IOERR_NOMEM = 3082;
42903
- const SQLITE_IOERR_READ = 266;
42904
- const SQLITE_IOERR_RDLOCK = 2314;
42905
- const SQLITE_IOERR_SEEK = 5642;
42906
- const SQLITE_IOERR_SHORT_READ = 522;
42907
- const SQLITE_IOERR_TRUNCATE = 1546;
42908
- const SQLITE_IOERR_UNLOCK = 2058;
42909
- const SQLITE_IOERR_VNODE = 6922;
42910
- const SQLITE_IOERR_WRITE = 778;
42911
- const SQLITE_IOERR_BEGIN_ATOMIC = 7434;
42912
- const SQLITE_IOERR_COMMIT_ATOMIC = 7690;
42913
- const SQLITE_IOERR_ROLLBACK_ATOMIC = 7946;
42914
-
42915
- // Other extended result codes.
42916
- const SQLITE_CONSTRAINT_CHECK = 275;
42917
- const SQLITE_CONSTRAINT_COMMITHOOK = 531;
42918
- const SQLITE_CONSTRAINT_FOREIGNKEY = 787;
42919
- const SQLITE_CONSTRAINT_FUNCTION = 1043;
42920
- const SQLITE_CONSTRAINT_NOTNULL = 1299;
42921
- const SQLITE_CONSTRAINT_PINNED = 2835;
42922
- const SQLITE_CONSTRAINT_PRIMARYKEY = 1555;
42923
- const SQLITE_CONSTRAINT_ROWID = 2579;
42924
- const SQLITE_CONSTRAINT_TRIGGER = 1811;
42925
- const SQLITE_CONSTRAINT_UNIQUE = 2067;
42926
- const SQLITE_CONSTRAINT_VTAB = 2323;
42927
-
42928
- // Open flags.
42929
- // https://www.sqlite.org/c3ref/c_open_autoproxy.html
42930
- const SQLITE_OPEN_READONLY = 0x00000001;
42931
- const SQLITE_OPEN_READWRITE = 0x00000002;
42932
- const SQLITE_OPEN_CREATE = 0x00000004;
42933
- const SQLITE_OPEN_DELETEONCLOSE = 0x00000008;
42934
- const SQLITE_OPEN_EXCLUSIVE = 0x00000010;
42935
- const SQLITE_OPEN_AUTOPROXY = 0x00000020;
42936
- const SQLITE_OPEN_URI = 0x00000040;
42937
- const SQLITE_OPEN_MEMORY = 0x00000080;
42938
- const SQLITE_OPEN_MAIN_DB = 0x00000100;
42939
- const SQLITE_OPEN_TEMP_DB = 0x00000200;
42940
- const SQLITE_OPEN_TRANSIENT_DB = 0x00000400;
42941
- const SQLITE_OPEN_MAIN_JOURNAL = 0x00000800;
42942
- const SQLITE_OPEN_TEMP_JOURNAL = 0x00001000;
42943
- const SQLITE_OPEN_SUBJOURNAL = 0x00002000;
42944
- const SQLITE_OPEN_SUPER_JOURNAL = 0x00004000;
42945
- const SQLITE_OPEN_NOMUTEX = 0x00008000;
42946
- const SQLITE_OPEN_FULLMUTEX = 0x00010000;
42947
- const SQLITE_OPEN_SHAREDCACHE = 0x00020000;
42948
- const SQLITE_OPEN_PRIVATECACHE = 0x00040000;
42949
- const SQLITE_OPEN_WAL = 0x00080000;
42950
- const SQLITE_OPEN_NOFOLLOW = 0x01000000;
42951
-
42952
- // Locking levels.
42953
- // https://www.sqlite.org/c3ref/c_lock_exclusive.html
42954
- const SQLITE_LOCK_NONE = 0;
42955
- const SQLITE_LOCK_SHARED = 1;
42956
- const SQLITE_LOCK_RESERVED = 2;
42957
- const SQLITE_LOCK_PENDING = 3;
42958
- const SQLITE_LOCK_EXCLUSIVE = 4;
42959
-
42960
- // Device characteristics.
42961
- // https://www.sqlite.org/c3ref/c_iocap_atomic.html
42962
- const SQLITE_IOCAP_ATOMIC = 0x00000001;
42963
- const SQLITE_IOCAP_ATOMIC512 = 0x00000002;
42964
- const SQLITE_IOCAP_ATOMIC1K = 0x00000004;
42965
- const SQLITE_IOCAP_ATOMIC2K = 0x00000008;
42966
- const SQLITE_IOCAP_ATOMIC4K = 0x00000010;
42967
- const SQLITE_IOCAP_ATOMIC8K = 0x00000020;
42968
- const SQLITE_IOCAP_ATOMIC16K = 0x00000040;
42969
- const SQLITE_IOCAP_ATOMIC32K = 0x00000080;
42970
- const SQLITE_IOCAP_ATOMIC64K = 0x00000100;
42971
- const SQLITE_IOCAP_SAFE_APPEND = 0x00000200;
42972
- const SQLITE_IOCAP_SEQUENTIAL = 0x00000400;
42973
- const SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN = 0x00000800;
42974
- const SQLITE_IOCAP_POWERSAFE_OVERWRITE = 0x00001000;
42975
- const SQLITE_IOCAP_IMMUTABLE = 0x00002000;
42976
- const SQLITE_IOCAP_BATCH_ATOMIC = 0x00004000;
42977
-
42978
- // xAccess flags.
42979
- // https://www.sqlite.org/c3ref/c_access_exists.html
42980
- const SQLITE_ACCESS_EXISTS = 0;
42981
- const SQLITE_ACCESS_READWRITE = 1;
42982
- const SQLITE_ACCESS_READ = 2;
42983
-
42984
- // File control opcodes
42985
- // https://www.sqlite.org/c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlbeginatomicwrite
42986
- const SQLITE_FCNTL_LOCKSTATE = 1;
42987
- const SQLITE_FCNTL_GET_LOCKPROXYFILE = 2;
42988
- const SQLITE_FCNTL_SET_LOCKPROXYFILE = 3;
42989
- const SQLITE_FCNTL_LAST_ERRNO = 4;
42990
- const SQLITE_FCNTL_SIZE_HINT = 5;
42991
- const SQLITE_FCNTL_CHUNK_SIZE = 6;
42992
- const SQLITE_FCNTL_FILE_POINTER = 7;
42993
- const SQLITE_FCNTL_SYNC_OMITTED = 8;
42994
- const SQLITE_FCNTL_WIN32_AV_RETRY = 9;
42995
- const SQLITE_FCNTL_PERSIST_WAL = 10;
42996
- const SQLITE_FCNTL_OVERWRITE = 11;
42997
- const SQLITE_FCNTL_VFSNAME = 12;
42998
- const SQLITE_FCNTL_POWERSAFE_OVERWRITE = 13;
42999
- const SQLITE_FCNTL_PRAGMA = 14;
43000
- const SQLITE_FCNTL_BUSYHANDLER = 15;
43001
- const SQLITE_FCNTL_TEMPFILENAME = 16;
43002
- const SQLITE_FCNTL_MMAP_SIZE = 18;
43003
- const SQLITE_FCNTL_TRACE = 19;
43004
- const SQLITE_FCNTL_HAS_MOVED = 20;
43005
- const SQLITE_FCNTL_SYNC = 21;
43006
- const SQLITE_FCNTL_COMMIT_PHASETWO = 22;
43007
- const SQLITE_FCNTL_WIN32_SET_HANDLE = 23;
43008
- const SQLITE_FCNTL_WAL_BLOCK = 24;
43009
- const SQLITE_FCNTL_ZIPVFS = 25;
43010
- const SQLITE_FCNTL_RBU = 26;
43011
- const SQLITE_FCNTL_VFS_POINTER = 27;
43012
- const SQLITE_FCNTL_JOURNAL_POINTER = 28;
43013
- const SQLITE_FCNTL_WIN32_GET_HANDLE = 29;
43014
- const SQLITE_FCNTL_PDB = 30;
43015
- const SQLITE_FCNTL_BEGIN_ATOMIC_WRITE = 31;
43016
- const SQLITE_FCNTL_COMMIT_ATOMIC_WRITE = 32;
43017
- const SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE = 33;
43018
- const SQLITE_FCNTL_LOCK_TIMEOUT = 34;
43019
- const SQLITE_FCNTL_DATA_VERSION = 35;
43020
- const SQLITE_FCNTL_SIZE_LIMIT = 36;
43021
- const SQLITE_FCNTL_CKPT_DONE = 37;
43022
- const SQLITE_FCNTL_RESERVE_BYTES = 38;
43023
- const SQLITE_FCNTL_CKPT_START = 39;
43024
-
43025
- // Fundamental datatypes.
43026
- // https://www.sqlite.org/c3ref/c_blob.html
43027
- const SQLITE_INTEGER = 1;
43028
- const SQLITE_FLOAT = 2;
43029
- const SQLITE_TEXT = 3;
43030
- const SQLITE_BLOB = 4;
43031
- const SQLITE_NULL = 5;
43032
-
43033
- // Special destructor behavior.
43034
- // https://www.sqlite.org/c3ref/c_static.html
43035
- const SQLITE_STATIC = 0;
43036
- const SQLITE_TRANSIENT = -1;
43037
-
43038
- // Text encodings.
43039
- // https://sqlite.org/c3ref/c_any.html
43040
- const SQLITE_UTF8 = 1; /* IMP: R-37514-35566 */
43041
- const SQLITE_UTF16LE = 2; /* IMP: R-03371-37637 */
43042
- const SQLITE_UTF16BE = 3; /* IMP: R-51971-34154 */
43043
- const SQLITE_UTF16 = 4; /* Use native byte order */
43044
-
43045
- // Module constraint ops.
43046
- const SQLITE_INDEX_CONSTRAINT_EQ = 2;
43047
- const SQLITE_INDEX_CONSTRAINT_GT = 4;
43048
- const SQLITE_INDEX_CONSTRAINT_LE = 8;
43049
- const SQLITE_INDEX_CONSTRAINT_LT = 16;
43050
- const SQLITE_INDEX_CONSTRAINT_GE = 32;
43051
- const SQLITE_INDEX_CONSTRAINT_MATCH = 64;
43052
- const SQLITE_INDEX_CONSTRAINT_LIKE = 65;
43053
- const SQLITE_INDEX_CONSTRAINT_GLOB = 66;
43054
- const SQLITE_INDEX_CONSTRAINT_REGEXP = 67;
43055
- const SQLITE_INDEX_CONSTRAINT_NE = 68;
43056
- const SQLITE_INDEX_CONSTRAINT_ISNOT = 69;
43057
- const SQLITE_INDEX_CONSTRAINT_ISNOTNULL = 70;
43058
- const SQLITE_INDEX_CONSTRAINT_ISNULL = 71;
43059
- const SQLITE_INDEX_CONSTRAINT_IS = 72;
43060
- const SQLITE_INDEX_CONSTRAINT_FUNCTION = 150;
43061
- const SQLITE_INDEX_SCAN_UNIQUE = 1; /* Scan visits at most = 1 row */
43062
-
43063
- // Function flags
43064
- const SQLITE_DETERMINISTIC = 0x000000800;
43065
- const SQLITE_DIRECTONLY = 0x000080000;
43066
- const SQLITE_SUBTYPE = 0x000100000;
43067
- const SQLITE_INNOCUOUS = 0x000200000;
43068
-
43069
- // Sync flags
43070
- const SQLITE_SYNC_NORMAL = 0x00002;
43071
- const SQLITE_SYNC_FULL = 0x00003;
43072
- const SQLITE_SYNC_DATAONLY = 0x00010;
43073
-
43074
- // Authorizer action codes
43075
- const SQLITE_CREATE_INDEX = 1;
43076
- const SQLITE_CREATE_TABLE = 2;
43077
- const SQLITE_CREATE_TEMP_INDEX = 3;
43078
- const SQLITE_CREATE_TEMP_TABLE = 4;
43079
- const SQLITE_CREATE_TEMP_TRIGGER = 5;
43080
- const SQLITE_CREATE_TEMP_VIEW = 6;
43081
- const SQLITE_CREATE_TRIGGER = 7;
43082
- const SQLITE_CREATE_VIEW = 8;
43083
- const SQLITE_DELETE = 9;
43084
- const SQLITE_DROP_INDEX = 10;
43085
- const SQLITE_DROP_TABLE = 11;
43086
- const SQLITE_DROP_TEMP_INDEX = 12;
43087
- const SQLITE_DROP_TEMP_TABLE = 13;
43088
- const SQLITE_DROP_TEMP_TRIGGER = 14;
43089
- const SQLITE_DROP_TEMP_VIEW = 15;
43090
- const SQLITE_DROP_TRIGGER = 16;
43091
- const SQLITE_DROP_VIEW = 17;
43092
- const SQLITE_INSERT = 18;
43093
- const SQLITE_PRAGMA = 19;
43094
- const SQLITE_READ = 20;
43095
- const SQLITE_SELECT = 21;
43096
- const SQLITE_TRANSACTION = 22;
43097
- const SQLITE_UPDATE = 23;
43098
- const SQLITE_ATTACH = 24;
43099
- const SQLITE_DETACH = 25;
43100
- const SQLITE_ALTER_TABLE = 26;
43101
- const SQLITE_REINDEX = 27;
43102
- const SQLITE_ANALYZE = 28;
43103
- const SQLITE_CREATE_VTABLE = 29;
43104
- const SQLITE_DROP_VTABLE = 30;
43105
- const SQLITE_FUNCTION = 31;
43106
- const SQLITE_SAVEPOINT = 32;
43107
- const SQLITE_COPY = 0;
43108
- const SQLITE_RECURSIVE = 33;
43109
-
43110
- // Authorizer return codes
43111
- const SQLITE_DENY = 1;
43112
- const SQLITE_IGNORE = 2;
43113
-
43114
- // Limit categories
43115
- const SQLITE_LIMIT_LENGTH = 0;
43116
- const SQLITE_LIMIT_SQL_LENGTH = 1;
43117
- const SQLITE_LIMIT_COLUMN = 2;
43118
- const SQLITE_LIMIT_EXPR_DEPTH = 3;
43119
- const SQLITE_LIMIT_COMPOUND_SELECT = 4;
43120
- const SQLITE_LIMIT_VDBE_OP = 5;
43121
- const SQLITE_LIMIT_FUNCTION_ARG = 6;
43122
- const SQLITE_LIMIT_ATTACHED = 7;
43123
- const SQLITE_LIMIT_LIKE_PATTERN_LENGTH = 8;
43124
- const SQLITE_LIMIT_VARIABLE_NUMBER = 9;
43125
- const SQLITE_LIMIT_TRIGGER_DEPTH = 10;
43126
- const SQLITE_LIMIT_WORKER_THREADS = 11;
43127
-
43128
- const SQLITE_PREPARE_PERSISTENT = 0x01;
43129
- const SQLITE_PREPARE_NORMALIZED = 0x02;
43130
- const SQLITE_PREPARE_NO_VTAB = 0x04;
43131
-
43132
40536
  /***/ }),
43133
40537
 
43134
40538
  /***/ "./node_modules/@journeyapps/wa-sqlite/dist/mc-wa-sqlite-async.mjs":