@tanstack/capacitor-db-sqlite-persistence 0.1.5 → 0.1.7

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.
@@ -59,10 +59,7 @@ function createCapacitorSQLitePersistence(options) {
59
59
  return adapter;
60
60
  };
61
61
  const createCollectionPersistence = (mode, schemaVersion) => ({
62
- adapter: getAdapterForCollection(
63
- mode,
64
- schemaVersion
65
- ),
62
+ adapter: getAdapterForCollection(mode, schemaVersion),
66
63
  coordinator: resolvedCoordinator
67
64
  });
68
65
  const defaultPersistence = createCollectionPersistence(
@@ -1 +1 @@
1
- {"version":3,"file":"capacitor-persistence.cjs","sources":["../../src/capacitor-persistence.ts"],"sourcesContent":["import {\n SingleProcessCoordinator,\n createSQLiteCorePersistenceAdapter,\n} from '@tanstack/db-sqlite-persistence-core'\nimport { CapacitorSQLiteDriver } from './capacitor-sqlite-driver'\nimport type { SQLiteDBConnection } from '@capacitor-community/sqlite'\nimport type {\n PersistedCollectionCoordinator,\n PersistedCollectionMode,\n PersistedCollectionPersistence,\n SQLiteCoreAdapterOptions,\n SQLiteDriver,\n} from '@tanstack/db-sqlite-persistence-core'\n\nexport type { CapacitorSQLiteDatabaseLike } from './capacitor-sqlite-driver'\nexport type { SQLiteDBConnection } from '@capacitor-community/sqlite'\n\ntype CapacitorSQLiteCoreSchemaMismatchPolicy =\n | `sync-present-reset`\n | `sync-absent-error`\n | `reset`\n\nexport type CapacitorSQLiteSchemaMismatchPolicy =\n | CapacitorSQLiteCoreSchemaMismatchPolicy\n | `throw`\n\ntype CapacitorSQLitePersistenceBaseOptions = Omit<\n SQLiteCoreAdapterOptions,\n `driver` | `schemaVersion` | `schemaMismatchPolicy`\n> & {\n database: SQLiteDBConnection\n coordinator?: PersistedCollectionCoordinator\n schemaMismatchPolicy?: CapacitorSQLiteSchemaMismatchPolicy\n}\n\nexport type CapacitorSQLitePersistenceOptions =\n CapacitorSQLitePersistenceBaseOptions\n\nfunction normalizeSchemaMismatchPolicy(\n policy: CapacitorSQLiteSchemaMismatchPolicy,\n): CapacitorSQLiteCoreSchemaMismatchPolicy {\n if (policy === `throw`) {\n return `sync-absent-error`\n }\n\n return policy\n}\n\nfunction resolveSchemaMismatchPolicy(\n explicitPolicy: CapacitorSQLiteSchemaMismatchPolicy | undefined,\n mode: PersistedCollectionMode,\n): CapacitorSQLiteCoreSchemaMismatchPolicy {\n if (explicitPolicy) {\n return normalizeSchemaMismatchPolicy(explicitPolicy)\n }\n\n return mode === `sync-present` ? `sync-present-reset` : `sync-absent-error`\n}\n\nfunction createAdapterCacheKey(\n schemaMismatchPolicy: CapacitorSQLiteCoreSchemaMismatchPolicy,\n schemaVersion: number | undefined,\n): string {\n const schemaVersionKey =\n schemaVersion === undefined ? `schema:default` : `schema:${schemaVersion}`\n return `${schemaMismatchPolicy}|${schemaVersionKey}`\n}\n\nfunction createInternalSQLiteDriver(\n options: CapacitorSQLitePersistenceOptions,\n): SQLiteDriver {\n return new CapacitorSQLiteDriver({\n database: options.database,\n })\n}\n\nfunction resolveAdapterBaseOptions(\n options: CapacitorSQLitePersistenceOptions,\n): Omit<\n SQLiteCoreAdapterOptions,\n `driver` | `schemaVersion` | `schemaMismatchPolicy`\n> {\n return {\n appliedTxPruneMaxRows: options.appliedTxPruneMaxRows,\n appliedTxPruneMaxAgeSeconds: options.appliedTxPruneMaxAgeSeconds,\n pullSinceReloadThreshold: options.pullSinceReloadThreshold,\n }\n}\n\nexport function createCapacitorSQLitePersistence<\n T extends object,\n TKey extends string | number = string | number,\n>(\n options: CapacitorSQLitePersistenceOptions,\n): PersistedCollectionPersistence<T, TKey> {\n const { coordinator, schemaMismatchPolicy } = options\n const driver = createInternalSQLiteDriver(options)\n const adapterBaseOptions = resolveAdapterBaseOptions(options)\n const resolvedCoordinator = coordinator ?? new SingleProcessCoordinator()\n const adapterCache = new Map<\n string,\n ReturnType<\n typeof createSQLiteCorePersistenceAdapter<\n Record<string, unknown>,\n string | number\n >\n >\n >()\n\n const getAdapterForCollection = (\n mode: PersistedCollectionMode,\n schemaVersion: number | undefined,\n ) => {\n const resolvedSchemaMismatchPolicy = resolveSchemaMismatchPolicy(\n schemaMismatchPolicy,\n mode,\n )\n const cacheKey = createAdapterCacheKey(\n resolvedSchemaMismatchPolicy,\n schemaVersion,\n )\n const cachedAdapter = adapterCache.get(cacheKey)\n if (cachedAdapter) {\n return cachedAdapter\n }\n\n const adapter = createSQLiteCorePersistenceAdapter<\n Record<string, unknown>,\n string | number\n >({\n ...adapterBaseOptions,\n driver,\n schemaMismatchPolicy: resolvedSchemaMismatchPolicy,\n ...(schemaVersion === undefined ? {} : { schemaVersion }),\n })\n adapterCache.set(cacheKey, adapter)\n return adapter\n }\n\n const createCollectionPersistence = (\n mode: PersistedCollectionMode,\n schemaVersion: number | undefined,\n ): PersistedCollectionPersistence<T, TKey> => ({\n adapter: getAdapterForCollection(\n mode,\n schemaVersion,\n ) as unknown as PersistedCollectionPersistence<T, TKey>[`adapter`],\n coordinator: resolvedCoordinator,\n })\n\n const defaultPersistence = createCollectionPersistence(\n `sync-absent`,\n undefined,\n )\n\n return {\n ...defaultPersistence,\n resolvePersistenceForCollection: ({ mode, schemaVersion }) =>\n createCollectionPersistence(mode, schemaVersion),\n resolvePersistenceForMode: (mode) =>\n createCollectionPersistence(mode, undefined),\n }\n}\n"],"names":["CapacitorSQLiteDriver","SingleProcessCoordinator","createSQLiteCorePersistenceAdapter"],"mappings":";;;;AAsCA,SAAS,8BACP,QACyC;AACzC,MAAI,WAAW,SAAS;AACtB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,4BACP,gBACA,MACyC;AACzC,MAAI,gBAAgB;AAClB,WAAO,8BAA8B,cAAc;AAAA,EACrD;AAEA,SAAO,SAAS,iBAAiB,uBAAuB;AAC1D;AAEA,SAAS,sBACP,sBACA,eACQ;AACR,QAAM,mBACJ,kBAAkB,SAAY,mBAAmB,UAAU,aAAa;AAC1E,SAAO,GAAG,oBAAoB,IAAI,gBAAgB;AACpD;AAEA,SAAS,2BACP,SACc;AACd,SAAO,IAAIA,sBAAAA,sBAAsB;AAAA,IAC/B,UAAU,QAAQ;AAAA,EAAA,CACnB;AACH;AAEA,SAAS,0BACP,SAIA;AACA,SAAO;AAAA,IACL,uBAAuB,QAAQ;AAAA,IAC/B,6BAA6B,QAAQ;AAAA,IACrC,0BAA0B,QAAQ;AAAA,EAAA;AAEtC;AAEO,SAAS,iCAId,SACyC;AACzC,QAAM,EAAE,aAAa,qBAAA,IAAyB;AAC9C,QAAM,SAAS,2BAA2B,OAAO;AACjD,QAAM,qBAAqB,0BAA0B,OAAO;AAC5D,QAAM,sBAAsB,eAAe,IAAIC,iDAAA;AAC/C,QAAM,mCAAmB,IAAA;AAUzB,QAAM,0BAA0B,CAC9B,MACA,kBACG;AACH,UAAM,+BAA+B;AAAA,MACnC;AAAA,MACA;AAAA,IAAA;AAEF,UAAM,WAAW;AAAA,MACf;AAAA,MACA;AAAA,IAAA;AAEF,UAAM,gBAAgB,aAAa,IAAI,QAAQ;AAC/C,QAAI,eAAe;AACjB,aAAO;AAAA,IACT;AAEA,UAAM,UAAUC,wBAAAA,mCAGd;AAAA,MACA,GAAG;AAAA,MACH;AAAA,MACA,sBAAsB;AAAA,MACtB,GAAI,kBAAkB,SAAY,CAAA,IAAK,EAAE,cAAA;AAAA,IAAc,CACxD;AACD,iBAAa,IAAI,UAAU,OAAO;AAClC,WAAO;AAAA,EACT;AAEA,QAAM,8BAA8B,CAClC,MACA,mBAC6C;AAAA,IAC7C,SAAS;AAAA,MACP;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,aAAa;AAAA,EAAA;AAGf,QAAM,qBAAqB;AAAA,IACzB;AAAA,IACA;AAAA,EAAA;AAGF,SAAO;AAAA,IACL,GAAG;AAAA,IACH,iCAAiC,CAAC,EAAE,MAAM,oBACxC,4BAA4B,MAAM,aAAa;AAAA,IACjD,2BAA2B,CAAC,SAC1B,4BAA4B,MAAM,MAAS;AAAA,EAAA;AAEjD;;"}
1
+ {"version":3,"file":"capacitor-persistence.cjs","sources":["../../src/capacitor-persistence.ts"],"sourcesContent":["import {\n SingleProcessCoordinator,\n createSQLiteCorePersistenceAdapter,\n} from '@tanstack/db-sqlite-persistence-core'\nimport { CapacitorSQLiteDriver } from './capacitor-sqlite-driver'\nimport type { SQLiteDBConnection } from '@capacitor-community/sqlite'\nimport type {\n PersistedCollectionCoordinator,\n PersistedCollectionMode,\n PersistedCollectionPersistence,\n SQLiteCoreAdapterOptions,\n SQLiteDriver,\n} from '@tanstack/db-sqlite-persistence-core'\n\nexport type { CapacitorSQLiteDatabaseLike } from './capacitor-sqlite-driver'\nexport type { SQLiteDBConnection } from '@capacitor-community/sqlite'\n\ntype CapacitorSQLiteCoreSchemaMismatchPolicy =\n | `sync-present-reset`\n | `sync-absent-error`\n | `reset`\n\nexport type CapacitorSQLiteSchemaMismatchPolicy =\n | CapacitorSQLiteCoreSchemaMismatchPolicy\n | `throw`\n\ntype CapacitorSQLitePersistenceBaseOptions = Omit<\n SQLiteCoreAdapterOptions,\n `driver` | `schemaVersion` | `schemaMismatchPolicy`\n> & {\n database: SQLiteDBConnection\n coordinator?: PersistedCollectionCoordinator\n schemaMismatchPolicy?: CapacitorSQLiteSchemaMismatchPolicy\n}\n\nexport type CapacitorSQLitePersistenceOptions =\n CapacitorSQLitePersistenceBaseOptions\n\nfunction normalizeSchemaMismatchPolicy(\n policy: CapacitorSQLiteSchemaMismatchPolicy,\n): CapacitorSQLiteCoreSchemaMismatchPolicy {\n if (policy === `throw`) {\n return `sync-absent-error`\n }\n\n return policy\n}\n\nfunction resolveSchemaMismatchPolicy(\n explicitPolicy: CapacitorSQLiteSchemaMismatchPolicy | undefined,\n mode: PersistedCollectionMode,\n): CapacitorSQLiteCoreSchemaMismatchPolicy {\n if (explicitPolicy) {\n return normalizeSchemaMismatchPolicy(explicitPolicy)\n }\n\n return mode === `sync-present` ? `sync-present-reset` : `sync-absent-error`\n}\n\nfunction createAdapterCacheKey(\n schemaMismatchPolicy: CapacitorSQLiteCoreSchemaMismatchPolicy,\n schemaVersion: number | undefined,\n): string {\n const schemaVersionKey =\n schemaVersion === undefined ? `schema:default` : `schema:${schemaVersion}`\n return `${schemaMismatchPolicy}|${schemaVersionKey}`\n}\n\nfunction createInternalSQLiteDriver(\n options: CapacitorSQLitePersistenceOptions,\n): SQLiteDriver {\n return new CapacitorSQLiteDriver({\n database: options.database,\n })\n}\n\nfunction resolveAdapterBaseOptions(\n options: CapacitorSQLitePersistenceOptions,\n): Omit<\n SQLiteCoreAdapterOptions,\n `driver` | `schemaVersion` | `schemaMismatchPolicy`\n> {\n return {\n appliedTxPruneMaxRows: options.appliedTxPruneMaxRows,\n appliedTxPruneMaxAgeSeconds: options.appliedTxPruneMaxAgeSeconds,\n pullSinceReloadThreshold: options.pullSinceReloadThreshold,\n }\n}\n\nexport function createCapacitorSQLitePersistence(\n options: CapacitorSQLitePersistenceOptions,\n): PersistedCollectionPersistence {\n const { coordinator, schemaMismatchPolicy } = options\n const driver = createInternalSQLiteDriver(options)\n const adapterBaseOptions = resolveAdapterBaseOptions(options)\n const resolvedCoordinator = coordinator ?? new SingleProcessCoordinator()\n const adapterCache = new Map<\n string,\n ReturnType<typeof createSQLiteCorePersistenceAdapter>\n >()\n\n const getAdapterForCollection = (\n mode: PersistedCollectionMode,\n schemaVersion: number | undefined,\n ) => {\n const resolvedSchemaMismatchPolicy = resolveSchemaMismatchPolicy(\n schemaMismatchPolicy,\n mode,\n )\n const cacheKey = createAdapterCacheKey(\n resolvedSchemaMismatchPolicy,\n schemaVersion,\n )\n const cachedAdapter = adapterCache.get(cacheKey)\n if (cachedAdapter) {\n return cachedAdapter\n }\n\n const adapter = createSQLiteCorePersistenceAdapter({\n ...adapterBaseOptions,\n driver,\n schemaMismatchPolicy: resolvedSchemaMismatchPolicy,\n ...(schemaVersion === undefined ? {} : { schemaVersion }),\n })\n adapterCache.set(cacheKey, adapter)\n return adapter\n }\n\n const createCollectionPersistence = (\n mode: PersistedCollectionMode,\n schemaVersion: number | undefined,\n ): PersistedCollectionPersistence => ({\n adapter: getAdapterForCollection(mode, schemaVersion),\n coordinator: resolvedCoordinator,\n })\n\n const defaultPersistence = createCollectionPersistence(\n `sync-absent`,\n undefined,\n )\n\n return {\n ...defaultPersistence,\n resolvePersistenceForCollection: ({ mode, schemaVersion }) =>\n createCollectionPersistence(mode, schemaVersion),\n resolvePersistenceForMode: (mode) =>\n createCollectionPersistence(mode, undefined),\n }\n}\n"],"names":["CapacitorSQLiteDriver","SingleProcessCoordinator","createSQLiteCorePersistenceAdapter"],"mappings":";;;;AAsCA,SAAS,8BACP,QACyC;AACzC,MAAI,WAAW,SAAS;AACtB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,4BACP,gBACA,MACyC;AACzC,MAAI,gBAAgB;AAClB,WAAO,8BAA8B,cAAc;AAAA,EACrD;AAEA,SAAO,SAAS,iBAAiB,uBAAuB;AAC1D;AAEA,SAAS,sBACP,sBACA,eACQ;AACR,QAAM,mBACJ,kBAAkB,SAAY,mBAAmB,UAAU,aAAa;AAC1E,SAAO,GAAG,oBAAoB,IAAI,gBAAgB;AACpD;AAEA,SAAS,2BACP,SACc;AACd,SAAO,IAAIA,sBAAAA,sBAAsB;AAAA,IAC/B,UAAU,QAAQ;AAAA,EAAA,CACnB;AACH;AAEA,SAAS,0BACP,SAIA;AACA,SAAO;AAAA,IACL,uBAAuB,QAAQ;AAAA,IAC/B,6BAA6B,QAAQ;AAAA,IACrC,0BAA0B,QAAQ;AAAA,EAAA;AAEtC;AAEO,SAAS,iCACd,SACgC;AAChC,QAAM,EAAE,aAAa,qBAAA,IAAyB;AAC9C,QAAM,SAAS,2BAA2B,OAAO;AACjD,QAAM,qBAAqB,0BAA0B,OAAO;AAC5D,QAAM,sBAAsB,eAAe,IAAIC,iDAAA;AAC/C,QAAM,mCAAmB,IAAA;AAKzB,QAAM,0BAA0B,CAC9B,MACA,kBACG;AACH,UAAM,+BAA+B;AAAA,MACnC;AAAA,MACA;AAAA,IAAA;AAEF,UAAM,WAAW;AAAA,MACf;AAAA,MACA;AAAA,IAAA;AAEF,UAAM,gBAAgB,aAAa,IAAI,QAAQ;AAC/C,QAAI,eAAe;AACjB,aAAO;AAAA,IACT;AAEA,UAAM,UAAUC,wBAAAA,mCAAmC;AAAA,MACjD,GAAG;AAAA,MACH;AAAA,MACA,sBAAsB;AAAA,MACtB,GAAI,kBAAkB,SAAY,CAAA,IAAK,EAAE,cAAA;AAAA,IAAc,CACxD;AACD,iBAAa,IAAI,UAAU,OAAO;AAClC,WAAO;AAAA,EACT;AAEA,QAAM,8BAA8B,CAClC,MACA,mBACoC;AAAA,IACpC,SAAS,wBAAwB,MAAM,aAAa;AAAA,IACpD,aAAa;AAAA,EAAA;AAGf,QAAM,qBAAqB;AAAA,IACzB;AAAA,IACA;AAAA,EAAA;AAGF,SAAO;AAAA,IACL,GAAG;AAAA,IACH,iCAAiC,CAAC,EAAE,MAAM,oBACxC,4BAA4B,MAAM,aAAa;AAAA,IACjD,2BAA2B,CAAC,SAC1B,4BAA4B,MAAM,MAAS;AAAA,EAAA;AAEjD;;"}
@@ -10,4 +10,4 @@ type CapacitorSQLitePersistenceBaseOptions = Omit<SQLiteCoreAdapterOptions, `dri
10
10
  schemaMismatchPolicy?: CapacitorSQLiteSchemaMismatchPolicy;
11
11
  };
12
12
  export type CapacitorSQLitePersistenceOptions = CapacitorSQLitePersistenceBaseOptions;
13
- export declare function createCapacitorSQLitePersistence<T extends object, TKey extends string | number = string | number>(options: CapacitorSQLitePersistenceOptions): PersistedCollectionPersistence<T, TKey>;
13
+ export declare function createCapacitorSQLitePersistence(options: CapacitorSQLitePersistenceOptions): PersistedCollectionPersistence;
@@ -1 +1 @@
1
- {"version":3,"file":"capacitor.cjs","sources":["../../src/capacitor.ts"],"sourcesContent":["import { createCapacitorSQLitePersistence as createPersistence } from './capacitor-persistence'\nimport type {\n CapacitorSQLitePersistenceOptions as CapacitorSQLitePersistenceOptionsBase,\n CapacitorSQLiteSchemaMismatchPolicy as CapacitorSQLiteSchemaMismatchPolicyBase,\n} from './capacitor-persistence'\nimport type { PersistedCollectionPersistence } from '@tanstack/db-sqlite-persistence-core'\n\nexport type CapacitorSQLitePersistenceOptions =\n CapacitorSQLitePersistenceOptionsBase\nexport type CapacitorSQLiteSchemaMismatchPolicy =\n CapacitorSQLiteSchemaMismatchPolicyBase\nexport type { CapacitorSQLiteDatabaseLike } from './capacitor-persistence'\nexport type { SQLiteDBConnection } from './capacitor-persistence'\n\nexport function createCapacitorSQLitePersistence<\n T extends object,\n TKey extends string | number = string | number,\n>(\n options: CapacitorSQLitePersistenceOptions,\n): PersistedCollectionPersistence<T, TKey> {\n return createPersistence<T, TKey>(options)\n}\n"],"names":["createPersistence"],"mappings":";;;AAcO,SAAS,iCAId,SACyC;AACzC,SAAOA,qBAAAA,iCAA2B,OAAO;AAC3C;;"}
1
+ {"version":3,"file":"capacitor.cjs","sources":["../../src/capacitor.ts"],"sourcesContent":["import { createCapacitorSQLitePersistence as createPersistence } from './capacitor-persistence'\nimport type {\n CapacitorSQLitePersistenceOptions as CapacitorSQLitePersistenceOptionsBase,\n CapacitorSQLiteSchemaMismatchPolicy as CapacitorSQLiteSchemaMismatchPolicyBase,\n} from './capacitor-persistence'\nimport type { PersistedCollectionPersistence } from '@tanstack/db-sqlite-persistence-core'\n\nexport type CapacitorSQLitePersistenceOptions =\n CapacitorSQLitePersistenceOptionsBase\nexport type CapacitorSQLiteSchemaMismatchPolicy =\n CapacitorSQLiteSchemaMismatchPolicyBase\nexport type { CapacitorSQLiteDatabaseLike } from './capacitor-persistence'\nexport type { SQLiteDBConnection } from './capacitor-persistence'\n\nexport function createCapacitorSQLitePersistence(\n options: CapacitorSQLitePersistenceOptions,\n): PersistedCollectionPersistence {\n return createPersistence(options)\n}\n"],"names":["createPersistence"],"mappings":";;;AAcO,SAAS,iCACd,SACgC;AAChC,SAAOA,qBAAAA,iCAAkB,OAAO;AAClC;;"}
@@ -4,4 +4,4 @@ export type CapacitorSQLitePersistenceOptions = CapacitorSQLitePersistenceOption
4
4
  export type CapacitorSQLiteSchemaMismatchPolicy = CapacitorSQLiteSchemaMismatchPolicyBase;
5
5
  export type { CapacitorSQLiteDatabaseLike } from './capacitor-persistence.cjs';
6
6
  export type { SQLiteDBConnection } from './capacitor-persistence.cjs';
7
- export declare function createCapacitorSQLitePersistence<T extends object, TKey extends string | number = string | number>(options: CapacitorSQLitePersistenceOptions): PersistedCollectionPersistence<T, TKey>;
7
+ export declare function createCapacitorSQLitePersistence(options: CapacitorSQLitePersistenceOptions): PersistedCollectionPersistence;
@@ -10,4 +10,4 @@ type CapacitorSQLitePersistenceBaseOptions = Omit<SQLiteCoreAdapterOptions, `dri
10
10
  schemaMismatchPolicy?: CapacitorSQLiteSchemaMismatchPolicy;
11
11
  };
12
12
  export type CapacitorSQLitePersistenceOptions = CapacitorSQLitePersistenceBaseOptions;
13
- export declare function createCapacitorSQLitePersistence<T extends object, TKey extends string | number = string | number>(options: CapacitorSQLitePersistenceOptions): PersistedCollectionPersistence<T, TKey>;
13
+ export declare function createCapacitorSQLitePersistence(options: CapacitorSQLitePersistenceOptions): PersistedCollectionPersistence;
@@ -57,10 +57,7 @@ function createCapacitorSQLitePersistence(options) {
57
57
  return adapter;
58
58
  };
59
59
  const createCollectionPersistence = (mode, schemaVersion) => ({
60
- adapter: getAdapterForCollection(
61
- mode,
62
- schemaVersion
63
- ),
60
+ adapter: getAdapterForCollection(mode, schemaVersion),
64
61
  coordinator: resolvedCoordinator
65
62
  });
66
63
  const defaultPersistence = createCollectionPersistence(
@@ -1 +1 @@
1
- {"version":3,"file":"capacitor-persistence.js","sources":["../../src/capacitor-persistence.ts"],"sourcesContent":["import {\n SingleProcessCoordinator,\n createSQLiteCorePersistenceAdapter,\n} from '@tanstack/db-sqlite-persistence-core'\nimport { CapacitorSQLiteDriver } from './capacitor-sqlite-driver'\nimport type { SQLiteDBConnection } from '@capacitor-community/sqlite'\nimport type {\n PersistedCollectionCoordinator,\n PersistedCollectionMode,\n PersistedCollectionPersistence,\n SQLiteCoreAdapterOptions,\n SQLiteDriver,\n} from '@tanstack/db-sqlite-persistence-core'\n\nexport type { CapacitorSQLiteDatabaseLike } from './capacitor-sqlite-driver'\nexport type { SQLiteDBConnection } from '@capacitor-community/sqlite'\n\ntype CapacitorSQLiteCoreSchemaMismatchPolicy =\n | `sync-present-reset`\n | `sync-absent-error`\n | `reset`\n\nexport type CapacitorSQLiteSchemaMismatchPolicy =\n | CapacitorSQLiteCoreSchemaMismatchPolicy\n | `throw`\n\ntype CapacitorSQLitePersistenceBaseOptions = Omit<\n SQLiteCoreAdapterOptions,\n `driver` | `schemaVersion` | `schemaMismatchPolicy`\n> & {\n database: SQLiteDBConnection\n coordinator?: PersistedCollectionCoordinator\n schemaMismatchPolicy?: CapacitorSQLiteSchemaMismatchPolicy\n}\n\nexport type CapacitorSQLitePersistenceOptions =\n CapacitorSQLitePersistenceBaseOptions\n\nfunction normalizeSchemaMismatchPolicy(\n policy: CapacitorSQLiteSchemaMismatchPolicy,\n): CapacitorSQLiteCoreSchemaMismatchPolicy {\n if (policy === `throw`) {\n return `sync-absent-error`\n }\n\n return policy\n}\n\nfunction resolveSchemaMismatchPolicy(\n explicitPolicy: CapacitorSQLiteSchemaMismatchPolicy | undefined,\n mode: PersistedCollectionMode,\n): CapacitorSQLiteCoreSchemaMismatchPolicy {\n if (explicitPolicy) {\n return normalizeSchemaMismatchPolicy(explicitPolicy)\n }\n\n return mode === `sync-present` ? `sync-present-reset` : `sync-absent-error`\n}\n\nfunction createAdapterCacheKey(\n schemaMismatchPolicy: CapacitorSQLiteCoreSchemaMismatchPolicy,\n schemaVersion: number | undefined,\n): string {\n const schemaVersionKey =\n schemaVersion === undefined ? `schema:default` : `schema:${schemaVersion}`\n return `${schemaMismatchPolicy}|${schemaVersionKey}`\n}\n\nfunction createInternalSQLiteDriver(\n options: CapacitorSQLitePersistenceOptions,\n): SQLiteDriver {\n return new CapacitorSQLiteDriver({\n database: options.database,\n })\n}\n\nfunction resolveAdapterBaseOptions(\n options: CapacitorSQLitePersistenceOptions,\n): Omit<\n SQLiteCoreAdapterOptions,\n `driver` | `schemaVersion` | `schemaMismatchPolicy`\n> {\n return {\n appliedTxPruneMaxRows: options.appliedTxPruneMaxRows,\n appliedTxPruneMaxAgeSeconds: options.appliedTxPruneMaxAgeSeconds,\n pullSinceReloadThreshold: options.pullSinceReloadThreshold,\n }\n}\n\nexport function createCapacitorSQLitePersistence<\n T extends object,\n TKey extends string | number = string | number,\n>(\n options: CapacitorSQLitePersistenceOptions,\n): PersistedCollectionPersistence<T, TKey> {\n const { coordinator, schemaMismatchPolicy } = options\n const driver = createInternalSQLiteDriver(options)\n const adapterBaseOptions = resolveAdapterBaseOptions(options)\n const resolvedCoordinator = coordinator ?? new SingleProcessCoordinator()\n const adapterCache = new Map<\n string,\n ReturnType<\n typeof createSQLiteCorePersistenceAdapter<\n Record<string, unknown>,\n string | number\n >\n >\n >()\n\n const getAdapterForCollection = (\n mode: PersistedCollectionMode,\n schemaVersion: number | undefined,\n ) => {\n const resolvedSchemaMismatchPolicy = resolveSchemaMismatchPolicy(\n schemaMismatchPolicy,\n mode,\n )\n const cacheKey = createAdapterCacheKey(\n resolvedSchemaMismatchPolicy,\n schemaVersion,\n )\n const cachedAdapter = adapterCache.get(cacheKey)\n if (cachedAdapter) {\n return cachedAdapter\n }\n\n const adapter = createSQLiteCorePersistenceAdapter<\n Record<string, unknown>,\n string | number\n >({\n ...adapterBaseOptions,\n driver,\n schemaMismatchPolicy: resolvedSchemaMismatchPolicy,\n ...(schemaVersion === undefined ? {} : { schemaVersion }),\n })\n adapterCache.set(cacheKey, adapter)\n return adapter\n }\n\n const createCollectionPersistence = (\n mode: PersistedCollectionMode,\n schemaVersion: number | undefined,\n ): PersistedCollectionPersistence<T, TKey> => ({\n adapter: getAdapterForCollection(\n mode,\n schemaVersion,\n ) as unknown as PersistedCollectionPersistence<T, TKey>[`adapter`],\n coordinator: resolvedCoordinator,\n })\n\n const defaultPersistence = createCollectionPersistence(\n `sync-absent`,\n undefined,\n )\n\n return {\n ...defaultPersistence,\n resolvePersistenceForCollection: ({ mode, schemaVersion }) =>\n createCollectionPersistence(mode, schemaVersion),\n resolvePersistenceForMode: (mode) =>\n createCollectionPersistence(mode, undefined),\n }\n}\n"],"names":[],"mappings":";;AAsCA,SAAS,8BACP,QACyC;AACzC,MAAI,WAAW,SAAS;AACtB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,4BACP,gBACA,MACyC;AACzC,MAAI,gBAAgB;AAClB,WAAO,8BAA8B,cAAc;AAAA,EACrD;AAEA,SAAO,SAAS,iBAAiB,uBAAuB;AAC1D;AAEA,SAAS,sBACP,sBACA,eACQ;AACR,QAAM,mBACJ,kBAAkB,SAAY,mBAAmB,UAAU,aAAa;AAC1E,SAAO,GAAG,oBAAoB,IAAI,gBAAgB;AACpD;AAEA,SAAS,2BACP,SACc;AACd,SAAO,IAAI,sBAAsB;AAAA,IAC/B,UAAU,QAAQ;AAAA,EAAA,CACnB;AACH;AAEA,SAAS,0BACP,SAIA;AACA,SAAO;AAAA,IACL,uBAAuB,QAAQ;AAAA,IAC/B,6BAA6B,QAAQ;AAAA,IACrC,0BAA0B,QAAQ;AAAA,EAAA;AAEtC;AAEO,SAAS,iCAId,SACyC;AACzC,QAAM,EAAE,aAAa,qBAAA,IAAyB;AAC9C,QAAM,SAAS,2BAA2B,OAAO;AACjD,QAAM,qBAAqB,0BAA0B,OAAO;AAC5D,QAAM,sBAAsB,eAAe,IAAI,yBAAA;AAC/C,QAAM,mCAAmB,IAAA;AAUzB,QAAM,0BAA0B,CAC9B,MACA,kBACG;AACH,UAAM,+BAA+B;AAAA,MACnC;AAAA,MACA;AAAA,IAAA;AAEF,UAAM,WAAW;AAAA,MACf;AAAA,MACA;AAAA,IAAA;AAEF,UAAM,gBAAgB,aAAa,IAAI,QAAQ;AAC/C,QAAI,eAAe;AACjB,aAAO;AAAA,IACT;AAEA,UAAM,UAAU,mCAGd;AAAA,MACA,GAAG;AAAA,MACH;AAAA,MACA,sBAAsB;AAAA,MACtB,GAAI,kBAAkB,SAAY,CAAA,IAAK,EAAE,cAAA;AAAA,IAAc,CACxD;AACD,iBAAa,IAAI,UAAU,OAAO;AAClC,WAAO;AAAA,EACT;AAEA,QAAM,8BAA8B,CAClC,MACA,mBAC6C;AAAA,IAC7C,SAAS;AAAA,MACP;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,aAAa;AAAA,EAAA;AAGf,QAAM,qBAAqB;AAAA,IACzB;AAAA,IACA;AAAA,EAAA;AAGF,SAAO;AAAA,IACL,GAAG;AAAA,IACH,iCAAiC,CAAC,EAAE,MAAM,oBACxC,4BAA4B,MAAM,aAAa;AAAA,IACjD,2BAA2B,CAAC,SAC1B,4BAA4B,MAAM,MAAS;AAAA,EAAA;AAEjD;"}
1
+ {"version":3,"file":"capacitor-persistence.js","sources":["../../src/capacitor-persistence.ts"],"sourcesContent":["import {\n SingleProcessCoordinator,\n createSQLiteCorePersistenceAdapter,\n} from '@tanstack/db-sqlite-persistence-core'\nimport { CapacitorSQLiteDriver } from './capacitor-sqlite-driver'\nimport type { SQLiteDBConnection } from '@capacitor-community/sqlite'\nimport type {\n PersistedCollectionCoordinator,\n PersistedCollectionMode,\n PersistedCollectionPersistence,\n SQLiteCoreAdapterOptions,\n SQLiteDriver,\n} from '@tanstack/db-sqlite-persistence-core'\n\nexport type { CapacitorSQLiteDatabaseLike } from './capacitor-sqlite-driver'\nexport type { SQLiteDBConnection } from '@capacitor-community/sqlite'\n\ntype CapacitorSQLiteCoreSchemaMismatchPolicy =\n | `sync-present-reset`\n | `sync-absent-error`\n | `reset`\n\nexport type CapacitorSQLiteSchemaMismatchPolicy =\n | CapacitorSQLiteCoreSchemaMismatchPolicy\n | `throw`\n\ntype CapacitorSQLitePersistenceBaseOptions = Omit<\n SQLiteCoreAdapterOptions,\n `driver` | `schemaVersion` | `schemaMismatchPolicy`\n> & {\n database: SQLiteDBConnection\n coordinator?: PersistedCollectionCoordinator\n schemaMismatchPolicy?: CapacitorSQLiteSchemaMismatchPolicy\n}\n\nexport type CapacitorSQLitePersistenceOptions =\n CapacitorSQLitePersistenceBaseOptions\n\nfunction normalizeSchemaMismatchPolicy(\n policy: CapacitorSQLiteSchemaMismatchPolicy,\n): CapacitorSQLiteCoreSchemaMismatchPolicy {\n if (policy === `throw`) {\n return `sync-absent-error`\n }\n\n return policy\n}\n\nfunction resolveSchemaMismatchPolicy(\n explicitPolicy: CapacitorSQLiteSchemaMismatchPolicy | undefined,\n mode: PersistedCollectionMode,\n): CapacitorSQLiteCoreSchemaMismatchPolicy {\n if (explicitPolicy) {\n return normalizeSchemaMismatchPolicy(explicitPolicy)\n }\n\n return mode === `sync-present` ? `sync-present-reset` : `sync-absent-error`\n}\n\nfunction createAdapterCacheKey(\n schemaMismatchPolicy: CapacitorSQLiteCoreSchemaMismatchPolicy,\n schemaVersion: number | undefined,\n): string {\n const schemaVersionKey =\n schemaVersion === undefined ? `schema:default` : `schema:${schemaVersion}`\n return `${schemaMismatchPolicy}|${schemaVersionKey}`\n}\n\nfunction createInternalSQLiteDriver(\n options: CapacitorSQLitePersistenceOptions,\n): SQLiteDriver {\n return new CapacitorSQLiteDriver({\n database: options.database,\n })\n}\n\nfunction resolveAdapterBaseOptions(\n options: CapacitorSQLitePersistenceOptions,\n): Omit<\n SQLiteCoreAdapterOptions,\n `driver` | `schemaVersion` | `schemaMismatchPolicy`\n> {\n return {\n appliedTxPruneMaxRows: options.appliedTxPruneMaxRows,\n appliedTxPruneMaxAgeSeconds: options.appliedTxPruneMaxAgeSeconds,\n pullSinceReloadThreshold: options.pullSinceReloadThreshold,\n }\n}\n\nexport function createCapacitorSQLitePersistence(\n options: CapacitorSQLitePersistenceOptions,\n): PersistedCollectionPersistence {\n const { coordinator, schemaMismatchPolicy } = options\n const driver = createInternalSQLiteDriver(options)\n const adapterBaseOptions = resolveAdapterBaseOptions(options)\n const resolvedCoordinator = coordinator ?? new SingleProcessCoordinator()\n const adapterCache = new Map<\n string,\n ReturnType<typeof createSQLiteCorePersistenceAdapter>\n >()\n\n const getAdapterForCollection = (\n mode: PersistedCollectionMode,\n schemaVersion: number | undefined,\n ) => {\n const resolvedSchemaMismatchPolicy = resolveSchemaMismatchPolicy(\n schemaMismatchPolicy,\n mode,\n )\n const cacheKey = createAdapterCacheKey(\n resolvedSchemaMismatchPolicy,\n schemaVersion,\n )\n const cachedAdapter = adapterCache.get(cacheKey)\n if (cachedAdapter) {\n return cachedAdapter\n }\n\n const adapter = createSQLiteCorePersistenceAdapter({\n ...adapterBaseOptions,\n driver,\n schemaMismatchPolicy: resolvedSchemaMismatchPolicy,\n ...(schemaVersion === undefined ? {} : { schemaVersion }),\n })\n adapterCache.set(cacheKey, adapter)\n return adapter\n }\n\n const createCollectionPersistence = (\n mode: PersistedCollectionMode,\n schemaVersion: number | undefined,\n ): PersistedCollectionPersistence => ({\n adapter: getAdapterForCollection(mode, schemaVersion),\n coordinator: resolvedCoordinator,\n })\n\n const defaultPersistence = createCollectionPersistence(\n `sync-absent`,\n undefined,\n )\n\n return {\n ...defaultPersistence,\n resolvePersistenceForCollection: ({ mode, schemaVersion }) =>\n createCollectionPersistence(mode, schemaVersion),\n resolvePersistenceForMode: (mode) =>\n createCollectionPersistence(mode, undefined),\n }\n}\n"],"names":[],"mappings":";;AAsCA,SAAS,8BACP,QACyC;AACzC,MAAI,WAAW,SAAS;AACtB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,4BACP,gBACA,MACyC;AACzC,MAAI,gBAAgB;AAClB,WAAO,8BAA8B,cAAc;AAAA,EACrD;AAEA,SAAO,SAAS,iBAAiB,uBAAuB;AAC1D;AAEA,SAAS,sBACP,sBACA,eACQ;AACR,QAAM,mBACJ,kBAAkB,SAAY,mBAAmB,UAAU,aAAa;AAC1E,SAAO,GAAG,oBAAoB,IAAI,gBAAgB;AACpD;AAEA,SAAS,2BACP,SACc;AACd,SAAO,IAAI,sBAAsB;AAAA,IAC/B,UAAU,QAAQ;AAAA,EAAA,CACnB;AACH;AAEA,SAAS,0BACP,SAIA;AACA,SAAO;AAAA,IACL,uBAAuB,QAAQ;AAAA,IAC/B,6BAA6B,QAAQ;AAAA,IACrC,0BAA0B,QAAQ;AAAA,EAAA;AAEtC;AAEO,SAAS,iCACd,SACgC;AAChC,QAAM,EAAE,aAAa,qBAAA,IAAyB;AAC9C,QAAM,SAAS,2BAA2B,OAAO;AACjD,QAAM,qBAAqB,0BAA0B,OAAO;AAC5D,QAAM,sBAAsB,eAAe,IAAI,yBAAA;AAC/C,QAAM,mCAAmB,IAAA;AAKzB,QAAM,0BAA0B,CAC9B,MACA,kBACG;AACH,UAAM,+BAA+B;AAAA,MACnC;AAAA,MACA;AAAA,IAAA;AAEF,UAAM,WAAW;AAAA,MACf;AAAA,MACA;AAAA,IAAA;AAEF,UAAM,gBAAgB,aAAa,IAAI,QAAQ;AAC/C,QAAI,eAAe;AACjB,aAAO;AAAA,IACT;AAEA,UAAM,UAAU,mCAAmC;AAAA,MACjD,GAAG;AAAA,MACH;AAAA,MACA,sBAAsB;AAAA,MACtB,GAAI,kBAAkB,SAAY,CAAA,IAAK,EAAE,cAAA;AAAA,IAAc,CACxD;AACD,iBAAa,IAAI,UAAU,OAAO;AAClC,WAAO;AAAA,EACT;AAEA,QAAM,8BAA8B,CAClC,MACA,mBACoC;AAAA,IACpC,SAAS,wBAAwB,MAAM,aAAa;AAAA,IACpD,aAAa;AAAA,EAAA;AAGf,QAAM,qBAAqB;AAAA,IACzB;AAAA,IACA;AAAA,EAAA;AAGF,SAAO;AAAA,IACL,GAAG;AAAA,IACH,iCAAiC,CAAC,EAAE,MAAM,oBACxC,4BAA4B,MAAM,aAAa;AAAA,IACjD,2BAA2B,CAAC,SAC1B,4BAA4B,MAAM,MAAS;AAAA,EAAA;AAEjD;"}
@@ -4,4 +4,4 @@ export type CapacitorSQLitePersistenceOptions = CapacitorSQLitePersistenceOption
4
4
  export type CapacitorSQLiteSchemaMismatchPolicy = CapacitorSQLiteSchemaMismatchPolicyBase;
5
5
  export type { CapacitorSQLiteDatabaseLike } from './capacitor-persistence.js';
6
6
  export type { SQLiteDBConnection } from './capacitor-persistence.js';
7
- export declare function createCapacitorSQLitePersistence<T extends object, TKey extends string | number = string | number>(options: CapacitorSQLitePersistenceOptions): PersistedCollectionPersistence<T, TKey>;
7
+ export declare function createCapacitorSQLitePersistence(options: CapacitorSQLitePersistenceOptions): PersistedCollectionPersistence;
@@ -1 +1 @@
1
- {"version":3,"file":"capacitor.js","sources":["../../src/capacitor.ts"],"sourcesContent":["import { createCapacitorSQLitePersistence as createPersistence } from './capacitor-persistence'\nimport type {\n CapacitorSQLitePersistenceOptions as CapacitorSQLitePersistenceOptionsBase,\n CapacitorSQLiteSchemaMismatchPolicy as CapacitorSQLiteSchemaMismatchPolicyBase,\n} from './capacitor-persistence'\nimport type { PersistedCollectionPersistence } from '@tanstack/db-sqlite-persistence-core'\n\nexport type CapacitorSQLitePersistenceOptions =\n CapacitorSQLitePersistenceOptionsBase\nexport type CapacitorSQLiteSchemaMismatchPolicy =\n CapacitorSQLiteSchemaMismatchPolicyBase\nexport type { CapacitorSQLiteDatabaseLike } from './capacitor-persistence'\nexport type { SQLiteDBConnection } from './capacitor-persistence'\n\nexport function createCapacitorSQLitePersistence<\n T extends object,\n TKey extends string | number = string | number,\n>(\n options: CapacitorSQLitePersistenceOptions,\n): PersistedCollectionPersistence<T, TKey> {\n return createPersistence<T, TKey>(options)\n}\n"],"names":["createPersistence"],"mappings":";AAcO,SAAS,iCAId,SACyC;AACzC,SAAOA,mCAA2B,OAAO;AAC3C;"}
1
+ {"version":3,"file":"capacitor.js","sources":["../../src/capacitor.ts"],"sourcesContent":["import { createCapacitorSQLitePersistence as createPersistence } from './capacitor-persistence'\nimport type {\n CapacitorSQLitePersistenceOptions as CapacitorSQLitePersistenceOptionsBase,\n CapacitorSQLiteSchemaMismatchPolicy as CapacitorSQLiteSchemaMismatchPolicyBase,\n} from './capacitor-persistence'\nimport type { PersistedCollectionPersistence } from '@tanstack/db-sqlite-persistence-core'\n\nexport type CapacitorSQLitePersistenceOptions =\n CapacitorSQLitePersistenceOptionsBase\nexport type CapacitorSQLiteSchemaMismatchPolicy =\n CapacitorSQLiteSchemaMismatchPolicyBase\nexport type { CapacitorSQLiteDatabaseLike } from './capacitor-persistence'\nexport type { SQLiteDBConnection } from './capacitor-persistence'\n\nexport function createCapacitorSQLitePersistence(\n options: CapacitorSQLitePersistenceOptions,\n): PersistedCollectionPersistence {\n return createPersistence(options)\n}\n"],"names":["createPersistence"],"mappings":";AAcO,SAAS,iCACd,SACgC;AAChC,SAAOA,mCAAkB,OAAO;AAClC;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/capacitor-db-sqlite-persistence",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "Capacitor SQLite persisted collection adapter for TanStack DB",
5
5
  "author": "TanStack Team",
6
6
  "license": "MIT",
@@ -50,7 +50,7 @@
50
50
  "src"
51
51
  ],
52
52
  "dependencies": {
53
- "@tanstack/db-sqlite-persistence-core": "0.1.5"
53
+ "@tanstack/db-sqlite-persistence-core": "0.1.7"
54
54
  },
55
55
  "peerDependencies": {
56
56
  "@capacitor-community/sqlite": "^8.0.1",
@@ -87,24 +87,16 @@ function resolveAdapterBaseOptions(
87
87
  }
88
88
  }
89
89
 
90
- export function createCapacitorSQLitePersistence<
91
- T extends object,
92
- TKey extends string | number = string | number,
93
- >(
90
+ export function createCapacitorSQLitePersistence(
94
91
  options: CapacitorSQLitePersistenceOptions,
95
- ): PersistedCollectionPersistence<T, TKey> {
92
+ ): PersistedCollectionPersistence {
96
93
  const { coordinator, schemaMismatchPolicy } = options
97
94
  const driver = createInternalSQLiteDriver(options)
98
95
  const adapterBaseOptions = resolveAdapterBaseOptions(options)
99
96
  const resolvedCoordinator = coordinator ?? new SingleProcessCoordinator()
100
97
  const adapterCache = new Map<
101
98
  string,
102
- ReturnType<
103
- typeof createSQLiteCorePersistenceAdapter<
104
- Record<string, unknown>,
105
- string | number
106
- >
107
- >
99
+ ReturnType<typeof createSQLiteCorePersistenceAdapter>
108
100
  >()
109
101
 
110
102
  const getAdapterForCollection = (
@@ -124,10 +116,7 @@ export function createCapacitorSQLitePersistence<
124
116
  return cachedAdapter
125
117
  }
126
118
 
127
- const adapter = createSQLiteCorePersistenceAdapter<
128
- Record<string, unknown>,
129
- string | number
130
- >({
119
+ const adapter = createSQLiteCorePersistenceAdapter({
131
120
  ...adapterBaseOptions,
132
121
  driver,
133
122
  schemaMismatchPolicy: resolvedSchemaMismatchPolicy,
@@ -140,11 +129,8 @@ export function createCapacitorSQLitePersistence<
140
129
  const createCollectionPersistence = (
141
130
  mode: PersistedCollectionMode,
142
131
  schemaVersion: number | undefined,
143
- ): PersistedCollectionPersistence<T, TKey> => ({
144
- adapter: getAdapterForCollection(
145
- mode,
146
- schemaVersion,
147
- ) as unknown as PersistedCollectionPersistence<T, TKey>[`adapter`],
132
+ ): PersistedCollectionPersistence => ({
133
+ adapter: getAdapterForCollection(mode, schemaVersion),
148
134
  coordinator: resolvedCoordinator,
149
135
  })
150
136
 
package/src/capacitor.ts CHANGED
@@ -12,11 +12,8 @@ export type CapacitorSQLiteSchemaMismatchPolicy =
12
12
  export type { CapacitorSQLiteDatabaseLike } from './capacitor-persistence'
13
13
  export type { SQLiteDBConnection } from './capacitor-persistence'
14
14
 
15
- export function createCapacitorSQLitePersistence<
16
- T extends object,
17
- TKey extends string | number = string | number,
18
- >(
15
+ export function createCapacitorSQLitePersistence(
19
16
  options: CapacitorSQLitePersistenceOptions,
20
- ): PersistedCollectionPersistence<T, TKey> {
21
- return createPersistence<T, TKey>(options)
17
+ ): PersistedCollectionPersistence {
18
+ return createPersistence(options)
22
19
  }