@powersync/common 0.0.0-dev-20260503073249 → 0.0.0-dev-20260630141119

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 (284) hide show
  1. package/lib/attachments/AttachmentContext.d.ts +9 -8
  2. package/lib/attachments/AttachmentContext.js +8 -3
  3. package/lib/attachments/AttachmentContext.js.map +1 -1
  4. package/lib/attachments/AttachmentErrorHandler.d.ts +6 -6
  5. package/lib/attachments/AttachmentQueue.d.ts +85 -36
  6. package/lib/attachments/AttachmentQueue.js +19 -21
  7. package/lib/attachments/AttachmentQueue.js.map +1 -1
  8. package/lib/attachments/AttachmentService.d.ts +3 -3
  9. package/lib/attachments/AttachmentService.js +4 -3
  10. package/lib/attachments/AttachmentService.js.map +1 -1
  11. package/lib/attachments/LocalStorageAdapter.d.ts +14 -8
  12. package/lib/attachments/LocalStorageAdapter.js +3 -0
  13. package/lib/attachments/LocalStorageAdapter.js.map +1 -1
  14. package/lib/attachments/RemoteStorageAdapter.d.ts +4 -4
  15. package/lib/attachments/Schema.d.ts +14 -6
  16. package/lib/attachments/Schema.js +8 -3
  17. package/lib/attachments/Schema.js.map +1 -1
  18. package/lib/attachments/SyncingService.d.ts +2 -2
  19. package/lib/attachments/SyncingService.js +8 -3
  20. package/lib/attachments/SyncingService.js.map +1 -1
  21. package/lib/attachments/WatchedAttachmentItem.d.ts +3 -1
  22. package/lib/client/{AbstractPowerSyncDatabase.d.ts → CommonPowerSyncDatabase.d.ts} +112 -238
  23. package/lib/client/CommonPowerSyncDatabase.js +2 -0
  24. package/lib/client/CommonPowerSyncDatabase.js.map +1 -0
  25. package/lib/client/Query.d.ts +9 -0
  26. package/lib/client/SQLOpenFactory.d.ts +44 -10
  27. package/lib/client/SQLOpenFactory.js +1 -19
  28. package/lib/client/SQLOpenFactory.js.map +1 -1
  29. package/lib/client/compilableQueryWatch.d.ts +8 -2
  30. package/lib/client/compilableQueryWatch.js +4 -2
  31. package/lib/client/compilableQueryWatch.js.map +1 -1
  32. package/lib/client/connection/PowerSyncBackendConnector.d.ts +6 -3
  33. package/lib/client/connection/PowerSyncCredentials.d.ts +3 -0
  34. package/lib/client/runOnSchemaChange.d.ts +5 -2
  35. package/lib/client/runOnSchemaChange.js +3 -0
  36. package/lib/client/runOnSchemaChange.js.map +1 -1
  37. package/lib/client/sync/bucket/CrudBatch.d.ts +2 -0
  38. package/lib/client/sync/bucket/CrudBatch.js +2 -0
  39. package/lib/client/sync/bucket/CrudBatch.js.map +1 -1
  40. package/lib/client/sync/bucket/CrudEntry.d.ts +9 -31
  41. package/lib/client/sync/bucket/CrudEntry.js +2 -97
  42. package/lib/client/sync/bucket/CrudEntry.js.map +1 -1
  43. package/lib/client/sync/bucket/CrudTransaction.d.ts +3 -0
  44. package/lib/client/sync/bucket/CrudTransaction.js +3 -0
  45. package/lib/client/sync/bucket/CrudTransaction.js.map +1 -1
  46. package/lib/client/sync/options.d.ts +65 -0
  47. package/lib/client/sync/options.js +25 -0
  48. package/lib/client/sync/options.js.map +1 -0
  49. package/lib/client/sync/stream/JsonValue.d.ts +10 -0
  50. package/lib/client/sync/stream/JsonValue.js +2 -0
  51. package/lib/client/sync/stream/JsonValue.js.map +1 -0
  52. package/lib/client/sync/sync-streams.d.ts +23 -8
  53. package/lib/client/triggers/TriggerManager.d.ts +28 -56
  54. package/lib/client/triggers/TriggerManager.js +2 -1
  55. package/lib/client/triggers/TriggerManager.js.map +1 -1
  56. package/lib/client/triggers/sanitizeSQL.d.ts +4 -0
  57. package/lib/client/triggers/sanitizeSQL.js +4 -0
  58. package/lib/client/triggers/sanitizeSQL.js.map +1 -1
  59. package/lib/client/watched/GetAllQuery.d.ts +7 -3
  60. package/lib/client/watched/GetAllQuery.js +3 -1
  61. package/lib/client/watched/GetAllQuery.js.map +1 -1
  62. package/lib/client/watched/WatchedQuery.d.ts +20 -6
  63. package/lib/client/watched/WatchedQuery.js +3 -5
  64. package/lib/client/watched/WatchedQuery.js.map +1 -1
  65. package/lib/client/watched/processors/DifferentialQueryProcessor.d.ts +15 -45
  66. package/lib/client/watched/processors/DifferentialQueryProcessor.js +1 -172
  67. package/lib/client/watched/processors/DifferentialQueryProcessor.js.map +1 -1
  68. package/lib/client/watched/processors/OnChangeQueryProcessor.d.ts +4 -22
  69. package/lib/client/watched/processors/OnChangeQueryProcessor.js +1 -82
  70. package/lib/client/watched/processors/OnChangeQueryProcessor.js.map +1 -1
  71. package/lib/client/watched/processors/comparators.d.ts +8 -0
  72. package/lib/client/watched/processors/comparators.js +4 -0
  73. package/lib/client/watched/processors/comparators.js.map +1 -1
  74. package/lib/db/DBAdapter.d.ts +90 -113
  75. package/lib/db/DBAdapter.js +70 -89
  76. package/lib/db/DBAdapter.js.map +1 -1
  77. package/lib/db/QueryResult.d.ts +104 -0
  78. package/lib/db/QueryResult.js +96 -0
  79. package/lib/db/QueryResult.js.map +1 -0
  80. package/lib/db/crud/SyncProgress.d.ts +7 -14
  81. package/lib/db/crud/SyncProgress.js +1 -60
  82. package/lib/db/crud/SyncProgress.js.map +1 -1
  83. package/lib/db/crud/SyncStatus.d.ts +54 -91
  84. package/lib/db/crud/SyncStatus.js +1 -245
  85. package/lib/db/crud/SyncStatus.js.map +1 -1
  86. package/lib/db/crud/UploadQueueStatus.d.ts +3 -0
  87. package/lib/db/crud/UploadQueueStatus.js +3 -0
  88. package/lib/db/crud/UploadQueueStatus.js.map +1 -1
  89. package/lib/db/schema/Column.d.ts +22 -1
  90. package/lib/db/schema/Column.js +10 -4
  91. package/lib/db/schema/Column.js.map +1 -1
  92. package/lib/db/schema/Index.d.ts +8 -3
  93. package/lib/db/schema/Index.js +4 -1
  94. package/lib/db/schema/Index.js.map +1 -1
  95. package/lib/db/schema/IndexedColumn.d.ts +8 -3
  96. package/lib/db/schema/IndexedColumn.js +4 -1
  97. package/lib/db/schema/IndexedColumn.js.map +1 -1
  98. package/lib/db/schema/RawTable.d.ts +7 -1
  99. package/lib/db/schema/Schema.d.ts +10 -29
  100. package/lib/db/schema/Schema.js +3 -1
  101. package/lib/db/schema/Schema.js.map +1 -1
  102. package/lib/db/schema/Table.d.ts +69 -91
  103. package/lib/db/schema/Table.js +88 -87
  104. package/lib/db/schema/Table.js.map +1 -1
  105. package/lib/index.d.ts +7 -27
  106. package/lib/index.js +6 -27
  107. package/lib/index.js.map +1 -1
  108. package/lib/types/types.d.ts +6 -0
  109. package/lib/utils/BaseObserver.d.ts +12 -0
  110. package/lib/utils/BaseObserver.js +3 -0
  111. package/lib/utils/BaseObserver.js.map +1 -1
  112. package/lib/utils/Logger.d.ts +60 -22
  113. package/lib/utils/Logger.js +38 -30
  114. package/lib/utils/Logger.js.map +1 -1
  115. package/lib/utils/MetaBaseObserver.d.ts +11 -11
  116. package/lib/utils/MetaBaseObserver.js +1 -50
  117. package/lib/utils/MetaBaseObserver.js.map +1 -1
  118. package/lib/utils/mutex.d.ts +3 -45
  119. package/lib/utils/mutex.js +1 -153
  120. package/lib/utils/mutex.js.map +1 -1
  121. package/package.json +8 -42
  122. package/src/attachments/AttachmentContext.ts +15 -13
  123. package/src/attachments/AttachmentErrorHandler.ts +6 -6
  124. package/src/attachments/AttachmentQueue.ts +99 -42
  125. package/src/attachments/AttachmentService.ts +7 -6
  126. package/src/attachments/LocalStorageAdapter.ts +14 -8
  127. package/src/attachments/README.md +2 -0
  128. package/src/attachments/RemoteStorageAdapter.ts +4 -4
  129. package/src/attachments/Schema.ts +14 -6
  130. package/src/attachments/SyncingService.ts +10 -6
  131. package/src/attachments/WatchedAttachmentItem.ts +3 -1
  132. package/src/client/CommonPowerSyncDatabase.ts +540 -0
  133. package/src/client/Query.ts +9 -0
  134. package/src/client/SQLOpenFactory.ts +47 -19
  135. package/src/client/compilableQueryWatch.ts +9 -4
  136. package/src/client/connection/PowerSyncBackendConnector.ts +6 -3
  137. package/src/client/connection/PowerSyncCredentials.ts +3 -0
  138. package/src/client/runOnSchemaChange.ts +5 -2
  139. package/src/client/sync/bucket/CrudBatch.ts +2 -0
  140. package/src/client/sync/bucket/CrudEntry.ts +10 -101
  141. package/src/client/sync/bucket/CrudTransaction.ts +3 -0
  142. package/src/client/sync/options.ts +77 -0
  143. package/src/client/sync/stream/JsonValue.ts +11 -0
  144. package/src/client/sync/sync-streams.ts +23 -10
  145. package/src/client/triggers/TriggerManager.ts +29 -59
  146. package/src/client/triggers/sanitizeSQL.ts +5 -0
  147. package/src/client/watched/GetAllQuery.ts +8 -4
  148. package/src/client/watched/WatchedQuery.ts +20 -11
  149. package/src/client/watched/processors/DifferentialQueryProcessor.ts +19 -219
  150. package/src/client/watched/processors/OnChangeQueryProcessor.ts +4 -109
  151. package/src/client/watched/processors/comparators.ts +8 -0
  152. package/src/db/DBAdapter.ts +160 -175
  153. package/src/db/QueryResult.ts +195 -0
  154. package/src/db/crud/SyncProgress.ts +8 -43
  155. package/src/db/crud/SyncStatus.ts +66 -216
  156. package/src/db/crud/UploadQueueStatus.ts +3 -0
  157. package/src/db/schema/Column.ts +22 -5
  158. package/src/db/schema/Index.ts +9 -3
  159. package/src/db/schema/IndexedColumn.ts +9 -3
  160. package/src/db/schema/RawTable.ts +7 -1
  161. package/src/db/schema/Schema.ts +12 -7
  162. package/src/db/schema/Table.ts +130 -180
  163. package/src/index.ts +7 -27
  164. package/src/types/types.ts +6 -0
  165. package/src/utils/BaseObserver.ts +12 -0
  166. package/src/utils/Logger.ts +86 -31
  167. package/src/utils/MetaBaseObserver.ts +14 -60
  168. package/src/utils/mutex.ts +4 -189
  169. package/dist/bundle.cjs +0 -14781
  170. package/dist/bundle.cjs.map +0 -1
  171. package/dist/bundle.mjs +0 -14689
  172. package/dist/bundle.mjs.map +0 -1
  173. package/dist/bundle.node.cjs +0 -12258
  174. package/dist/bundle.node.cjs.map +0 -1
  175. package/dist/bundle.node.mjs +0 -12166
  176. package/dist/bundle.node.mjs.map +0 -1
  177. package/dist/index.d.cts +0 -4391
  178. package/lib/client/AbstractPowerSyncDatabase.js +0 -987
  179. package/lib/client/AbstractPowerSyncDatabase.js.map +0 -1
  180. package/lib/client/AbstractPowerSyncOpenFactory.d.ts +0 -22
  181. package/lib/client/AbstractPowerSyncOpenFactory.js +0 -25
  182. package/lib/client/AbstractPowerSyncOpenFactory.js.map +0 -1
  183. package/lib/client/ConnectionManager.d.ts +0 -112
  184. package/lib/client/ConnectionManager.js +0 -294
  185. package/lib/client/ConnectionManager.js.map +0 -1
  186. package/lib/client/CustomQuery.d.ts +0 -22
  187. package/lib/client/CustomQuery.js +0 -43
  188. package/lib/client/CustomQuery.js.map +0 -1
  189. package/lib/client/constants.d.ts +0 -1
  190. package/lib/client/constants.js +0 -2
  191. package/lib/client/constants.js.map +0 -1
  192. package/lib/client/sync/bucket/BucketStorageAdapter.d.ts +0 -102
  193. package/lib/client/sync/bucket/BucketStorageAdapter.js +0 -19
  194. package/lib/client/sync/bucket/BucketStorageAdapter.js.map +0 -1
  195. package/lib/client/sync/bucket/OpType.d.ts +0 -16
  196. package/lib/client/sync/bucket/OpType.js +0 -23
  197. package/lib/client/sync/bucket/OpType.js.map +0 -1
  198. package/lib/client/sync/bucket/OplogEntry.d.ts +0 -23
  199. package/lib/client/sync/bucket/OplogEntry.js +0 -36
  200. package/lib/client/sync/bucket/OplogEntry.js.map +0 -1
  201. package/lib/client/sync/bucket/SqliteBucketStorage.d.ts +0 -61
  202. package/lib/client/sync/bucket/SqliteBucketStorage.js +0 -324
  203. package/lib/client/sync/bucket/SqliteBucketStorage.js.map +0 -1
  204. package/lib/client/sync/bucket/SyncDataBatch.d.ts +0 -6
  205. package/lib/client/sync/bucket/SyncDataBatch.js +0 -12
  206. package/lib/client/sync/bucket/SyncDataBatch.js.map +0 -1
  207. package/lib/client/sync/bucket/SyncDataBucket.d.ts +0 -40
  208. package/lib/client/sync/bucket/SyncDataBucket.js +0 -40
  209. package/lib/client/sync/bucket/SyncDataBucket.js.map +0 -1
  210. package/lib/client/sync/stream/AbstractRemote.d.ts +0 -161
  211. package/lib/client/sync/stream/AbstractRemote.js +0 -483
  212. package/lib/client/sync/stream/AbstractRemote.js.map +0 -1
  213. package/lib/client/sync/stream/AbstractStreamingSyncImplementation.d.ts +0 -244
  214. package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js +0 -990
  215. package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js.map +0 -1
  216. package/lib/client/sync/stream/WebsocketClientTransport.d.ts +0 -15
  217. package/lib/client/sync/stream/WebsocketClientTransport.js +0 -61
  218. package/lib/client/sync/stream/WebsocketClientTransport.js.map +0 -1
  219. package/lib/client/sync/stream/core-instruction.d.ts +0 -72
  220. package/lib/client/sync/stream/core-instruction.js +0 -27
  221. package/lib/client/sync/stream/core-instruction.js.map +0 -1
  222. package/lib/client/sync/stream/streaming-sync-types.d.ts +0 -143
  223. package/lib/client/sync/stream/streaming-sync-types.js +0 -26
  224. package/lib/client/sync/stream/streaming-sync-types.js.map +0 -1
  225. package/lib/client/triggers/MemoryTriggerClaimManager.d.ts +0 -6
  226. package/lib/client/triggers/MemoryTriggerClaimManager.js +0 -21
  227. package/lib/client/triggers/MemoryTriggerClaimManager.js.map +0 -1
  228. package/lib/client/triggers/TriggerManagerImpl.d.ts +0 -39
  229. package/lib/client/triggers/TriggerManagerImpl.js +0 -405
  230. package/lib/client/triggers/TriggerManagerImpl.js.map +0 -1
  231. package/lib/client/watched/processors/AbstractQueryProcessor.d.ts +0 -68
  232. package/lib/client/watched/processors/AbstractQueryProcessor.js +0 -151
  233. package/lib/client/watched/processors/AbstractQueryProcessor.js.map +0 -1
  234. package/lib/db/ConnectionClosedError.d.ts +0 -10
  235. package/lib/db/ConnectionClosedError.js +0 -21
  236. package/lib/db/ConnectionClosedError.js.map +0 -1
  237. package/lib/db/schema/TableV2.d.ts +0 -9
  238. package/lib/db/schema/TableV2.js +0 -9
  239. package/lib/db/schema/TableV2.js.map +0 -1
  240. package/lib/utils/AbortOperation.d.ts +0 -9
  241. package/lib/utils/AbortOperation.js +0 -19
  242. package/lib/utils/AbortOperation.js.map +0 -1
  243. package/lib/utils/ControlledExecutor.d.ts +0 -25
  244. package/lib/utils/ControlledExecutor.js +0 -51
  245. package/lib/utils/ControlledExecutor.js.map +0 -1
  246. package/lib/utils/async.d.ts +0 -14
  247. package/lib/utils/async.js +0 -46
  248. package/lib/utils/async.js.map +0 -1
  249. package/lib/utils/parseQuery.d.ts +0 -6
  250. package/lib/utils/parseQuery.js +0 -17
  251. package/lib/utils/parseQuery.js.map +0 -1
  252. package/lib/utils/queue.d.ts +0 -16
  253. package/lib/utils/queue.js +0 -42
  254. package/lib/utils/queue.js.map +0 -1
  255. package/lib/utils/stream_transform.d.ts +0 -39
  256. package/lib/utils/stream_transform.js +0 -206
  257. package/lib/utils/stream_transform.js.map +0 -1
  258. package/src/client/AbstractPowerSyncDatabase.ts +0 -1362
  259. package/src/client/AbstractPowerSyncOpenFactory.ts +0 -39
  260. package/src/client/ConnectionManager.ts +0 -402
  261. package/src/client/CustomQuery.ts +0 -56
  262. package/src/client/constants.ts +0 -1
  263. package/src/client/sync/bucket/BucketStorageAdapter.ts +0 -118
  264. package/src/client/sync/bucket/OpType.ts +0 -23
  265. package/src/client/sync/bucket/OplogEntry.ts +0 -50
  266. package/src/client/sync/bucket/SqliteBucketStorage.ts +0 -395
  267. package/src/client/sync/bucket/SyncDataBatch.ts +0 -11
  268. package/src/client/sync/bucket/SyncDataBucket.ts +0 -49
  269. package/src/client/sync/stream/AbstractRemote.ts +0 -624
  270. package/src/client/sync/stream/AbstractStreamingSyncImplementation.ts +0 -1285
  271. package/src/client/sync/stream/WebsocketClientTransport.ts +0 -80
  272. package/src/client/sync/stream/core-instruction.ts +0 -99
  273. package/src/client/sync/stream/streaming-sync-types.ts +0 -210
  274. package/src/client/triggers/MemoryTriggerClaimManager.ts +0 -25
  275. package/src/client/triggers/TriggerManagerImpl.ts +0 -496
  276. package/src/client/watched/processors/AbstractQueryProcessor.ts +0 -226
  277. package/src/db/ConnectionClosedError.ts +0 -23
  278. package/src/db/schema/TableV2.ts +0 -9
  279. package/src/utils/AbortOperation.ts +0 -17
  280. package/src/utils/ControlledExecutor.ts +0 -72
  281. package/src/utils/async.ts +0 -50
  282. package/src/utils/parseQuery.ts +0 -25
  283. package/src/utils/queue.ts +0 -48
  284. package/src/utils/stream_transform.ts +0 -252
@@ -1,102 +0,0 @@
1
- import { BaseListener, BaseObserverInterface, Disposable } from '../../../utils/BaseObserver.js';
2
- import { CrudBatch } from './CrudBatch.js';
3
- import { CrudEntry, OpId } from './CrudEntry.js';
4
- import { SyncDataBatch } from './SyncDataBatch.js';
5
- export interface BucketDescription {
6
- name: string;
7
- priority: number;
8
- }
9
- export interface Checkpoint {
10
- last_op_id: OpId;
11
- buckets: BucketChecksum[];
12
- write_checkpoint?: string;
13
- streams?: any[];
14
- }
15
- export interface BucketState {
16
- bucket: string;
17
- op_id: string;
18
- }
19
- export interface ChecksumCache {
20
- checksums: Map<string, {
21
- checksum: BucketChecksum;
22
- last_op_id: OpId;
23
- }>;
24
- lastOpId: OpId;
25
- }
26
- export interface SyncLocalDatabaseResult {
27
- ready: boolean;
28
- checkpointValid: boolean;
29
- checkpointFailures?: string[];
30
- }
31
- export type SavedProgress = {
32
- atLast: number;
33
- sinceLast: number;
34
- };
35
- export type BucketOperationProgress = Record<string, SavedProgress>;
36
- export interface BucketChecksum {
37
- bucket: string;
38
- priority?: number;
39
- /**
40
- * 32-bit unsigned hash.
41
- */
42
- checksum: number;
43
- /**
44
- * Count of operations - informational only.
45
- */
46
- count?: number;
47
- /**
48
- * The JavaScript client does not use this field, which is why it's defined to be `any`. We rely on the structure of
49
- * this interface to pass custom `BucketChecksum`s to the Rust client in unit tests, which so all fields need to be
50
- * present.
51
- */
52
- subscriptions?: any;
53
- }
54
- export declare enum PSInternalTable {
55
- DATA = "ps_data",
56
- CRUD = "ps_crud",
57
- BUCKETS = "ps_buckets",
58
- OPLOG = "ps_oplog",
59
- UNTYPED = "ps_untyped"
60
- }
61
- export declare enum PowerSyncControlCommand {
62
- PROCESS_TEXT_LINE = "line_text",
63
- PROCESS_BSON_LINE = "line_binary",
64
- STOP = "stop",
65
- START = "start",
66
- NOTIFY_TOKEN_REFRESHED = "refreshed_token",
67
- NOTIFY_CRUD_UPLOAD_COMPLETED = "completed_upload",
68
- UPDATE_SUBSCRIPTIONS = "update_subscriptions"
69
- }
70
- export interface BucketStorageListener extends BaseListener {
71
- crudUpdate: () => void;
72
- }
73
- export interface BucketStorageAdapter extends BaseObserverInterface<BucketStorageListener>, Disposable {
74
- init(): Promise<void>;
75
- saveSyncData(batch: SyncDataBatch, fixedKeyFormat?: boolean): Promise<void>;
76
- removeBuckets(buckets: string[]): Promise<void>;
77
- setTargetCheckpoint(checkpoint: Checkpoint): Promise<void>;
78
- startSession(): void;
79
- getBucketStates(): Promise<BucketState[]>;
80
- getBucketOperationProgress(): Promise<BucketOperationProgress>;
81
- hasMigratedSubkeys(): Promise<boolean>;
82
- migrateToFixedSubkeys(): Promise<void>;
83
- syncLocalDatabase(checkpoint: Checkpoint, priority?: number): Promise<{
84
- checkpointValid: boolean;
85
- ready: boolean;
86
- failures?: any[];
87
- }>;
88
- nextCrudItem(): Promise<CrudEntry | undefined>;
89
- hasCrud(): Promise<boolean>;
90
- getCrudBatch(limit?: number): Promise<CrudBatch | null>;
91
- hasCompletedSync(): Promise<boolean>;
92
- updateLocalTarget(cb: () => Promise<string>): Promise<boolean>;
93
- getMaxOpId(): string;
94
- /**
95
- * Get an unique client id.
96
- */
97
- getClientId(): Promise<string>;
98
- /**
99
- * Invokes the `powersync_control` function for the sync client.
100
- */
101
- control(op: PowerSyncControlCommand, payload: string | Uint8Array | null): Promise<string>;
102
- }
@@ -1,19 +0,0 @@
1
- export var PSInternalTable;
2
- (function (PSInternalTable) {
3
- PSInternalTable["DATA"] = "ps_data";
4
- PSInternalTable["CRUD"] = "ps_crud";
5
- PSInternalTable["BUCKETS"] = "ps_buckets";
6
- PSInternalTable["OPLOG"] = "ps_oplog";
7
- PSInternalTable["UNTYPED"] = "ps_untyped";
8
- })(PSInternalTable || (PSInternalTable = {}));
9
- export var PowerSyncControlCommand;
10
- (function (PowerSyncControlCommand) {
11
- PowerSyncControlCommand["PROCESS_TEXT_LINE"] = "line_text";
12
- PowerSyncControlCommand["PROCESS_BSON_LINE"] = "line_binary";
13
- PowerSyncControlCommand["STOP"] = "stop";
14
- PowerSyncControlCommand["START"] = "start";
15
- PowerSyncControlCommand["NOTIFY_TOKEN_REFRESHED"] = "refreshed_token";
16
- PowerSyncControlCommand["NOTIFY_CRUD_UPLOAD_COMPLETED"] = "completed_upload";
17
- PowerSyncControlCommand["UPDATE_SUBSCRIPTIONS"] = "update_subscriptions";
18
- })(PowerSyncControlCommand || (PowerSyncControlCommand = {}));
19
- //# sourceMappingURL=BucketStorageAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BucketStorageAdapter.js","sourceRoot":"","sources":["../../../../src/client/sync/bucket/BucketStorageAdapter.ts"],"names":[],"mappings":"AA4DA,MAAM,CAAN,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,mCAAgB,CAAA;IAChB,mCAAgB,CAAA;IAChB,yCAAsB,CAAA;IACtB,qCAAkB,CAAA;IAClB,yCAAsB,CAAA;AACxB,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B;AAED,MAAM,CAAN,IAAY,uBAQX;AARD,WAAY,uBAAuB;IACjC,0DAA+B,CAAA;IAC/B,4DAAiC,CAAA;IACjC,wCAAa,CAAA;IACb,0CAAe,CAAA;IACf,qEAA0C,CAAA;IAC1C,4EAAiD,CAAA;IACjD,wEAA6C,CAAA;AAC/C,CAAC,EARW,uBAAuB,KAAvB,uBAAuB,QAQlC"}
@@ -1,16 +0,0 @@
1
- export declare enum OpTypeEnum {
2
- CLEAR = 1,
3
- MOVE = 2,
4
- PUT = 3,
5
- REMOVE = 4
6
- }
7
- export type OpTypeJSON = string;
8
- /**
9
- * Used internally for sync buckets.
10
- */
11
- export declare class OpType {
12
- value: OpTypeEnum;
13
- static fromJSON(jsonValue: OpTypeJSON): OpType;
14
- constructor(value: OpTypeEnum);
15
- toJSON(): string;
16
- }
@@ -1,23 +0,0 @@
1
- export var OpTypeEnum;
2
- (function (OpTypeEnum) {
3
- OpTypeEnum[OpTypeEnum["CLEAR"] = 1] = "CLEAR";
4
- OpTypeEnum[OpTypeEnum["MOVE"] = 2] = "MOVE";
5
- OpTypeEnum[OpTypeEnum["PUT"] = 3] = "PUT";
6
- OpTypeEnum[OpTypeEnum["REMOVE"] = 4] = "REMOVE";
7
- })(OpTypeEnum || (OpTypeEnum = {}));
8
- /**
9
- * Used internally for sync buckets.
10
- */
11
- export class OpType {
12
- value;
13
- static fromJSON(jsonValue) {
14
- return new OpType(OpTypeEnum[jsonValue]);
15
- }
16
- constructor(value) {
17
- this.value = value;
18
- }
19
- toJSON() {
20
- return Object.entries(OpTypeEnum).find(([, value]) => value === this.value)[0];
21
- }
22
- }
23
- //# sourceMappingURL=OpType.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OpType.js","sourceRoot":"","sources":["../../../../src/client/sync/bucket/OpType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,6CAAS,CAAA;IACT,2CAAQ,CAAA;IACR,yCAAO,CAAA;IACP,+CAAU,CAAA;AACZ,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAID;;GAEG;AACH,MAAM,OAAO,MAAM;IAKE;IAJnB,MAAM,CAAC,QAAQ,CAAC,SAAqB;QACnC,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,YAAmB,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;IAAG,CAAC;IAExC,MAAM;QACJ,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;CACF"}
@@ -1,23 +0,0 @@
1
- import { OpId } from './CrudEntry.js';
2
- import { OpType, OpTypeJSON } from './OpType.js';
3
- export interface OplogEntryJSON {
4
- checksum: number;
5
- data?: string;
6
- object_id?: string;
7
- object_type?: string;
8
- op_id: string;
9
- op: OpTypeJSON;
10
- subkey?: string;
11
- }
12
- export declare class OplogEntry {
13
- op_id: OpId;
14
- op: OpType;
15
- checksum: number;
16
- subkey?: string | undefined;
17
- object_type?: string | undefined;
18
- object_id?: string | undefined;
19
- data?: string | undefined;
20
- static fromRow(row: OplogEntryJSON): OplogEntry;
21
- constructor(op_id: OpId, op: OpType, checksum: number, subkey?: string | undefined, object_type?: string | undefined, object_id?: string | undefined, data?: string | undefined);
22
- toJSON(fixedKeyEncoding?: boolean): OplogEntryJSON;
23
- }
@@ -1,36 +0,0 @@
1
- import { OpType } from './OpType.js';
2
- export class OplogEntry {
3
- op_id;
4
- op;
5
- checksum;
6
- subkey;
7
- object_type;
8
- object_id;
9
- data;
10
- static fromRow(row) {
11
- return new OplogEntry(row.op_id, OpType.fromJSON(row.op), row.checksum, row.subkey, row.object_type, row.object_id, row.data);
12
- }
13
- constructor(op_id, op, checksum, subkey, object_type, object_id, data) {
14
- this.op_id = op_id;
15
- this.op = op;
16
- this.checksum = checksum;
17
- this.subkey = subkey;
18
- this.object_type = object_type;
19
- this.object_id = object_id;
20
- this.data = data;
21
- }
22
- toJSON(fixedKeyEncoding = false) {
23
- return {
24
- op_id: this.op_id,
25
- op: this.op.toJSON(),
26
- object_type: this.object_type,
27
- object_id: this.object_id,
28
- checksum: this.checksum,
29
- data: this.data,
30
- // Older versions of the JS SDK used to always JSON.stringify here. That has always been wrong,
31
- // but we need to migrate gradually to not break existing databases.
32
- subkey: fixedKeyEncoding ? this.subkey : JSON.stringify(this.subkey)
33
- };
34
- }
35
- }
36
- //# sourceMappingURL=OplogEntry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OplogEntry.js","sourceRoot":"","sources":["../../../../src/client/sync/bucket/OplogEntry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAc,MAAM,aAAa,CAAC;AAYjD,MAAM,OAAO,UAAU;IAcZ;IACA;IACA;IACA;IACA;IACA;IACA;IAnBT,MAAM,CAAC,OAAO,CAAC,GAAmB;QAChC,OAAO,IAAI,UAAU,CACnB,GAAG,CAAC,KAAK,EACT,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EACvB,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,WAAW,EACf,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,IAAI,CACT,CAAC;IACJ,CAAC;IAED,YACS,KAAW,EACX,EAAU,EACV,QAAgB,EAChB,MAAe,EACf,WAAoB,EACpB,SAAkB,EAClB,IAAa;QANb,UAAK,GAAL,KAAK,CAAM;QACX,OAAE,GAAF,EAAE,CAAQ;QACV,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAS;QACf,gBAAW,GAAX,WAAW,CAAS;QACpB,cAAS,GAAT,SAAS,CAAS;QAClB,SAAI,GAAJ,IAAI,CAAS;IACnB,CAAC;IAEJ,MAAM,CAAC,gBAAgB,GAAG,KAAK;QAC7B,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;YACpB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,+FAA+F;YAC/F,oEAAoE;YACpE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;SACrE,CAAC;IACJ,CAAC;CACF"}
@@ -1,61 +0,0 @@
1
- import { ILogger } from 'js-logger';
2
- import { DBAdapter, Transaction } from '../../../db/DBAdapter.js';
3
- import { BaseObserver } from '../../../utils/BaseObserver.js';
4
- import { BucketOperationProgress, BucketState, BucketStorageAdapter, BucketStorageListener, Checkpoint, PowerSyncControlCommand, SyncLocalDatabaseResult } from './BucketStorageAdapter.js';
5
- import { CrudBatch } from './CrudBatch.js';
6
- import { CrudEntry } from './CrudEntry.js';
7
- import { SyncDataBatch } from './SyncDataBatch.js';
8
- export declare class SqliteBucketStorage extends BaseObserver<BucketStorageListener> implements BucketStorageAdapter {
9
- private db;
10
- private logger;
11
- tableNames: Set<string>;
12
- private _hasCompletedSync;
13
- private updateListener;
14
- private _clientId?;
15
- constructor(db: DBAdapter, logger?: ILogger);
16
- init(): Promise<void>;
17
- dispose(): Promise<void>;
18
- _getClientId(): Promise<string>;
19
- getClientId(): Promise<string>;
20
- getMaxOpId(): string;
21
- /**
22
- * Reset any caches.
23
- */
24
- startSession(): void;
25
- getBucketStates(): Promise<BucketState[]>;
26
- getBucketOperationProgress(): Promise<BucketOperationProgress>;
27
- saveSyncData(batch: SyncDataBatch, fixedKeyFormat?: boolean): Promise<void>;
28
- removeBuckets(buckets: string[]): Promise<void>;
29
- /**
30
- * Mark a bucket for deletion.
31
- */
32
- private deleteBucket;
33
- hasCompletedSync(): Promise<boolean>;
34
- syncLocalDatabase(checkpoint: Checkpoint, priority?: number): Promise<SyncLocalDatabaseResult>;
35
- /**
36
- * Atomically update the local state to the current checkpoint.
37
- *
38
- * This includes creating new tables, dropping old tables, and copying data over from the oplog.
39
- */
40
- private updateObjectsFromBuckets;
41
- validateChecksums(checkpoint: Checkpoint, priority: number | undefined): Promise<SyncLocalDatabaseResult>;
42
- updateLocalTarget(cb: () => Promise<string>): Promise<boolean>;
43
- nextCrudItem(): Promise<CrudEntry | undefined>;
44
- hasCrud(): Promise<boolean>;
45
- /**
46
- * Get a batch of objects to send to the server.
47
- * When the objects are successfully sent to the server, call .complete()
48
- */
49
- getCrudBatch(limit?: number): Promise<CrudBatch | null>;
50
- writeTransaction<T>(callback: (tx: Transaction) => Promise<T>, options?: {
51
- timeoutMs: number;
52
- }): Promise<T>;
53
- /**
54
- * Set a target checkpoint.
55
- */
56
- setTargetCheckpoint(checkpoint: Checkpoint): Promise<void>;
57
- control(op: PowerSyncControlCommand, payload: string | Uint8Array | ArrayBuffer | null): Promise<string>;
58
- hasMigratedSubkeys(): Promise<boolean>;
59
- migrateToFixedSubkeys(): Promise<void>;
60
- static _subkeyMigrationKey: string;
61
- }
@@ -1,324 +0,0 @@
1
- import Logger from 'js-logger';
2
- import { extractTableUpdates } from '../../../db/DBAdapter.js';
3
- import { BaseObserver } from '../../../utils/BaseObserver.js';
4
- import { MAX_OP_ID } from '../../constants.js';
5
- import { PSInternalTable } from './BucketStorageAdapter.js';
6
- import { CrudEntry } from './CrudEntry.js';
7
- export class SqliteBucketStorage extends BaseObserver {
8
- db;
9
- logger;
10
- tableNames;
11
- _hasCompletedSync;
12
- updateListener;
13
- _clientId;
14
- constructor(db, logger = Logger.get('SqliteBucketStorage')) {
15
- super();
16
- this.db = db;
17
- this.logger = logger;
18
- this._hasCompletedSync = false;
19
- this.tableNames = new Set();
20
- this.updateListener = db.registerListener({
21
- tablesUpdated: (update) => {
22
- const tables = extractTableUpdates(update);
23
- if (tables.includes(PSInternalTable.CRUD)) {
24
- this.iterateListeners((l) => l.crudUpdate?.());
25
- }
26
- }
27
- });
28
- }
29
- async init() {
30
- this._hasCompletedSync = false;
31
- const existingTableRows = await this.db.getAll(`SELECT name FROM sqlite_master WHERE type='table' AND name GLOB 'ps_data_*'`);
32
- for (const row of existingTableRows ?? []) {
33
- this.tableNames.add(row.name);
34
- }
35
- }
36
- async dispose() {
37
- this.updateListener?.();
38
- }
39
- async _getClientId() {
40
- const row = await this.db.get('SELECT powersync_client_id() as client_id');
41
- return row['client_id'];
42
- }
43
- getClientId() {
44
- if (this._clientId == null) {
45
- this._clientId = this._getClientId();
46
- }
47
- return this._clientId;
48
- }
49
- getMaxOpId() {
50
- return MAX_OP_ID;
51
- }
52
- /**
53
- * Reset any caches.
54
- */
55
- startSession() { }
56
- async getBucketStates() {
57
- const result = await this.db.getAll("SELECT name as bucket, cast(last_op as TEXT) as op_id FROM ps_buckets WHERE pending_delete = 0 AND name != '$local'");
58
- return result;
59
- }
60
- async getBucketOperationProgress() {
61
- const rows = await this.db.getAll('SELECT name, count_at_last, count_since_last FROM ps_buckets');
62
- return Object.fromEntries(rows.map((r) => [r.name, { atLast: r.count_at_last, sinceLast: r.count_since_last }]));
63
- }
64
- async saveSyncData(batch, fixedKeyFormat = false) {
65
- await this.writeTransaction(async (tx) => {
66
- for (const b of batch.buckets) {
67
- await tx.execute('INSERT INTO powersync_operations(op, data) VALUES(?, ?)', [
68
- 'save',
69
- JSON.stringify({ buckets: [b.toJSON(fixedKeyFormat)] })
70
- ]);
71
- this.logger.debug(`Saved batch of data for bucket: ${b.bucket}, operations: ${b.data.length}`);
72
- }
73
- });
74
- }
75
- async removeBuckets(buckets) {
76
- for (const bucket of buckets) {
77
- await this.deleteBucket(bucket);
78
- }
79
- }
80
- /**
81
- * Mark a bucket for deletion.
82
- */
83
- async deleteBucket(bucket) {
84
- await this.writeTransaction(async (tx) => {
85
- await tx.execute('INSERT INTO powersync_operations(op, data) VALUES(?, ?)', ['delete_bucket', bucket]);
86
- });
87
- this.logger.debug(`Done deleting bucket ${bucket}`);
88
- }
89
- async hasCompletedSync() {
90
- if (this._hasCompletedSync) {
91
- return true;
92
- }
93
- const r = await this.db.get(`SELECT powersync_last_synced_at() as synced_at`);
94
- const completed = r.synced_at != null;
95
- if (completed) {
96
- this._hasCompletedSync = true;
97
- }
98
- return completed;
99
- }
100
- async syncLocalDatabase(checkpoint, priority) {
101
- const r = await this.validateChecksums(checkpoint, priority);
102
- if (!r.checkpointValid) {
103
- this.logger.error('Checksums failed for', r.checkpointFailures);
104
- for (const b of r.checkpointFailures ?? []) {
105
- await this.deleteBucket(b);
106
- }
107
- return { ready: false, checkpointValid: false, checkpointFailures: r.checkpointFailures };
108
- }
109
- if (priority == null) {
110
- this.logger.debug(`Validated checksums checkpoint ${checkpoint.last_op_id}`);
111
- }
112
- else {
113
- this.logger.debug(`Validated checksums for partial checkpoint ${checkpoint.last_op_id}, priority ${priority}`);
114
- }
115
- let buckets = checkpoint.buckets;
116
- if (priority !== undefined) {
117
- buckets = buckets.filter((b) => hasMatchingPriority(priority, b));
118
- }
119
- const bucketNames = buckets.map((b) => b.bucket);
120
- await this.writeTransaction(async (tx) => {
121
- await tx.execute(`UPDATE ps_buckets SET last_op = ? WHERE name IN (SELECT json_each.value FROM json_each(?))`, [
122
- checkpoint.last_op_id,
123
- JSON.stringify(bucketNames)
124
- ]);
125
- if (priority == null && checkpoint.write_checkpoint) {
126
- await tx.execute("UPDATE ps_buckets SET last_op = ? WHERE name = '$local'", [checkpoint.write_checkpoint]);
127
- }
128
- });
129
- const valid = await this.updateObjectsFromBuckets(checkpoint, priority);
130
- if (!valid) {
131
- return { ready: false, checkpointValid: true };
132
- }
133
- return {
134
- ready: true,
135
- checkpointValid: true
136
- };
137
- }
138
- /**
139
- * Atomically update the local state to the current checkpoint.
140
- *
141
- * This includes creating new tables, dropping old tables, and copying data over from the oplog.
142
- */
143
- async updateObjectsFromBuckets(checkpoint, priority) {
144
- let arg = '';
145
- if (priority !== undefined) {
146
- const affectedBuckets = [];
147
- for (const desc of checkpoint.buckets) {
148
- if (hasMatchingPriority(priority, desc)) {
149
- affectedBuckets.push(desc.bucket);
150
- }
151
- }
152
- arg = JSON.stringify({ priority, buckets: affectedBuckets });
153
- }
154
- return this.writeTransaction(async (tx) => {
155
- const { insertId: result } = await tx.execute('INSERT INTO powersync_operations(op, data) VALUES(?, ?)', [
156
- 'sync_local',
157
- arg
158
- ]);
159
- if (result == 1) {
160
- if (priority == null) {
161
- const bucketToCount = Object.fromEntries(checkpoint.buckets.map((b) => [b.bucket, b.count]));
162
- // The two parameters could be replaced with one, but: https://github.com/powersync-ja/better-sqlite3/pull/6
163
- const jsonBucketCount = JSON.stringify(bucketToCount);
164
- await tx.execute("UPDATE ps_buckets SET count_since_last = 0, count_at_last = ?->name WHERE name != '$local' AND ?->name IS NOT NULL", [jsonBucketCount, jsonBucketCount]);
165
- }
166
- return true;
167
- }
168
- else {
169
- return false;
170
- }
171
- });
172
- }
173
- async validateChecksums(checkpoint, priority) {
174
- if (priority !== undefined) {
175
- // Only validate the buckets within the priority we care about
176
- const newBuckets = checkpoint.buckets.filter((cs) => hasMatchingPriority(priority, cs));
177
- checkpoint = { ...checkpoint, buckets: newBuckets };
178
- }
179
- const rs = await this.db.execute('SELECT powersync_validate_checkpoint(?) as result', [
180
- JSON.stringify({ ...checkpoint })
181
- ]);
182
- const resultItem = rs.rows?.item(0);
183
- if (!resultItem) {
184
- return {
185
- checkpointValid: false,
186
- ready: false,
187
- checkpointFailures: []
188
- };
189
- }
190
- const result = JSON.parse(resultItem['result']);
191
- if (result['valid']) {
192
- return { ready: true, checkpointValid: true };
193
- }
194
- else {
195
- return {
196
- checkpointValid: false,
197
- ready: false,
198
- checkpointFailures: result['failed_buckets']
199
- };
200
- }
201
- }
202
- async updateLocalTarget(cb) {
203
- const rs1 = await this.db.getAll("SELECT target_op FROM ps_buckets WHERE name = '$local' AND target_op = CAST(? as INTEGER)", [MAX_OP_ID]);
204
- if (!rs1.length) {
205
- // Nothing to update
206
- return false;
207
- }
208
- const rs = await this.db.getAll("SELECT seq FROM main.sqlite_sequence WHERE name = 'ps_crud'");
209
- if (!rs.length) {
210
- // Nothing to update
211
- return false;
212
- }
213
- const seqBefore = rs[0]['seq'];
214
- const opId = await cb();
215
- return this.writeTransaction(async (tx) => {
216
- const anyData = await tx.execute('SELECT 1 FROM ps_crud LIMIT 1');
217
- if (anyData.rows?.length) {
218
- // if isNotEmpty
219
- this.logger.debug(`New data uploaded since write checkpoint ${opId} - need new write checkpoint`);
220
- return false;
221
- }
222
- const rs = await tx.execute("SELECT seq FROM main.sqlite_sequence WHERE name = 'ps_crud'");
223
- if (!rs.rows?.length) {
224
- // assert isNotEmpty
225
- throw new Error('SQLite Sequence should not be empty');
226
- }
227
- const seqAfter = rs.rows?.item(0)['seq'];
228
- if (seqAfter != seqBefore) {
229
- this.logger.debug(`New data uploaded since write checpoint ${opId} - need new write checkpoint (sequence updated)`);
230
- // New crud data may have been uploaded since we got the checkpoint. Abort.
231
- return false;
232
- }
233
- this.logger.debug(`Updating target write checkpoint to ${opId}`);
234
- await tx.execute("UPDATE ps_buckets SET target_op = CAST(? as INTEGER) WHERE name='$local'", [opId]);
235
- return true;
236
- });
237
- }
238
- async nextCrudItem() {
239
- const next = await this.db.getOptional('SELECT * FROM ps_crud ORDER BY id ASC LIMIT 1');
240
- if (!next) {
241
- return;
242
- }
243
- return CrudEntry.fromRow(next);
244
- }
245
- async hasCrud() {
246
- const anyData = await this.db.getOptional('SELECT 1 FROM ps_crud LIMIT 1');
247
- return !!anyData;
248
- }
249
- /**
250
- * Get a batch of objects to send to the server.
251
- * When the objects are successfully sent to the server, call .complete()
252
- */
253
- async getCrudBatch(limit = 100) {
254
- if (!(await this.hasCrud())) {
255
- return null;
256
- }
257
- const crudResult = await this.db.getAll('SELECT * FROM ps_crud ORDER BY id ASC LIMIT ?', [limit]);
258
- const all = [];
259
- for (const row of crudResult) {
260
- all.push(CrudEntry.fromRow(row));
261
- }
262
- if (all.length === 0) {
263
- return null;
264
- }
265
- const last = all[all.length - 1];
266
- return {
267
- crud: all,
268
- haveMore: true,
269
- complete: async (writeCheckpoint) => {
270
- return this.writeTransaction(async (tx) => {
271
- await tx.execute('DELETE FROM ps_crud WHERE id <= ?', [last.clientId]);
272
- if (writeCheckpoint) {
273
- const crudResult = await tx.execute('SELECT 1 FROM ps_crud LIMIT 1');
274
- if (crudResult.rows?.length) {
275
- await tx.execute("UPDATE ps_buckets SET target_op = CAST(? as INTEGER) WHERE name='$local'", [
276
- writeCheckpoint
277
- ]);
278
- }
279
- }
280
- else {
281
- await tx.execute("UPDATE ps_buckets SET target_op = CAST(? as INTEGER) WHERE name='$local'", [
282
- this.getMaxOpId()
283
- ]);
284
- }
285
- });
286
- }
287
- };
288
- }
289
- async writeTransaction(callback, options) {
290
- return this.db.writeTransaction(callback, options);
291
- }
292
- /**
293
- * Set a target checkpoint.
294
- */
295
- async setTargetCheckpoint(checkpoint) {
296
- // No-op for now
297
- }
298
- async control(op, payload) {
299
- return await this.writeTransaction(async (tx) => {
300
- const [[raw]] = await tx.executeRaw('SELECT powersync_control(?, ?)', [op, payload]);
301
- return raw;
302
- });
303
- }
304
- async hasMigratedSubkeys() {
305
- const { r } = await this.db.get('SELECT EXISTS(SELECT * FROM ps_kv WHERE key = ?) as r', [
306
- SqliteBucketStorage._subkeyMigrationKey
307
- ]);
308
- return r != 0;
309
- }
310
- async migrateToFixedSubkeys() {
311
- await this.writeTransaction(async (tx) => {
312
- await tx.execute('UPDATE ps_oplog SET key = powersync_remove_duplicate_key_encoding(key);');
313
- await tx.execute('INSERT OR REPLACE INTO ps_kv (key, value) VALUES (?, ?);', [
314
- SqliteBucketStorage._subkeyMigrationKey,
315
- '1'
316
- ]);
317
- });
318
- }
319
- static _subkeyMigrationKey = 'powersync_js_migrated_subkeys';
320
- }
321
- function hasMatchingPriority(priority, bucket) {
322
- return bucket.priority != null && bucket.priority <= priority;
323
- }
324
- //# sourceMappingURL=SqliteBucketStorage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SqliteBucketStorage.js","sourceRoot":"","sources":["../../../../src/client/sync/bucket/SqliteBucketStorage.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { SyncDataBucket } from './SyncDataBucket.js';
2
- export declare class SyncDataBatch {
3
- buckets: SyncDataBucket[];
4
- static fromJSON(json: any): SyncDataBatch;
5
- constructor(buckets: SyncDataBucket[]);
6
- }
@@ -1,12 +0,0 @@
1
- import { SyncDataBucket } from './SyncDataBucket.js';
2
- // TODO JSON
3
- export class SyncDataBatch {
4
- buckets;
5
- static fromJSON(json) {
6
- return new SyncDataBatch(json.buckets.map((bucket) => SyncDataBucket.fromRow(bucket)));
7
- }
8
- constructor(buckets) {
9
- this.buckets = buckets;
10
- }
11
- }
12
- //# sourceMappingURL=SyncDataBatch.js.map