@powersync/common 0.0.0-dev-20260202162549 → 0.0.0-dev-20260216124709

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 (214) hide show
  1. package/dist/bundle.cjs +14470 -0
  2. package/dist/bundle.cjs.map +1 -0
  3. package/dist/bundle.mjs +14379 -0
  4. package/dist/bundle.mjs.map +1 -0
  5. package/dist/bundle.node.cjs +11948 -0
  6. package/dist/bundle.node.cjs.map +1 -0
  7. package/dist/bundle.node.mjs +11857 -0
  8. package/dist/bundle.node.mjs.map +1 -0
  9. package/dist/index.d.cts +4272 -0
  10. package/lib/attachments/AttachmentContext.d.ts +86 -0
  11. package/lib/attachments/AttachmentContext.js +229 -0
  12. package/lib/attachments/AttachmentContext.js.map +1 -0
  13. package/lib/attachments/AttachmentErrorHandler.d.ts +31 -0
  14. package/lib/attachments/AttachmentErrorHandler.js +2 -0
  15. package/lib/attachments/AttachmentErrorHandler.js.map +1 -0
  16. package/lib/attachments/AttachmentQueue.d.ts +149 -0
  17. package/lib/attachments/AttachmentQueue.js +362 -0
  18. package/lib/attachments/AttachmentQueue.js.map +1 -0
  19. package/lib/attachments/AttachmentService.d.ts +29 -0
  20. package/lib/attachments/AttachmentService.js +56 -0
  21. package/lib/attachments/AttachmentService.js.map +1 -0
  22. package/lib/attachments/LocalStorageAdapter.d.ts +62 -0
  23. package/lib/attachments/LocalStorageAdapter.js +6 -0
  24. package/lib/attachments/LocalStorageAdapter.js.map +1 -0
  25. package/lib/attachments/RemoteStorageAdapter.d.ts +27 -0
  26. package/lib/attachments/RemoteStorageAdapter.js +2 -0
  27. package/lib/attachments/RemoteStorageAdapter.js.map +1 -0
  28. package/lib/attachments/Schema.d.ts +50 -0
  29. package/lib/attachments/Schema.js +62 -0
  30. package/lib/attachments/Schema.js.map +1 -0
  31. package/lib/attachments/SyncingService.d.ts +62 -0
  32. package/lib/attachments/SyncingService.js +168 -0
  33. package/lib/attachments/SyncingService.js.map +1 -0
  34. package/lib/attachments/WatchedAttachmentItem.d.ts +17 -0
  35. package/lib/attachments/WatchedAttachmentItem.js +2 -0
  36. package/lib/attachments/WatchedAttachmentItem.js.map +1 -0
  37. package/lib/client/AbstractPowerSyncDatabase.d.ts +615 -0
  38. package/lib/client/AbstractPowerSyncDatabase.js +983 -0
  39. package/lib/client/AbstractPowerSyncDatabase.js.map +1 -0
  40. package/lib/client/AbstractPowerSyncOpenFactory.d.ts +22 -0
  41. package/lib/client/AbstractPowerSyncOpenFactory.js +25 -0
  42. package/lib/client/AbstractPowerSyncOpenFactory.js.map +1 -0
  43. package/lib/client/ConnectionManager.d.ts +112 -0
  44. package/lib/client/ConnectionManager.js +294 -0
  45. package/lib/client/ConnectionManager.js.map +1 -0
  46. package/lib/client/CustomQuery.d.ts +22 -0
  47. package/lib/client/CustomQuery.js +43 -0
  48. package/lib/client/CustomQuery.js.map +1 -0
  49. package/lib/client/Query.d.ts +97 -0
  50. package/lib/client/Query.js +2 -0
  51. package/lib/client/Query.js.map +1 -0
  52. package/lib/client/SQLOpenFactory.d.ts +42 -0
  53. package/lib/client/SQLOpenFactory.js +20 -0
  54. package/lib/client/SQLOpenFactory.js.map +1 -0
  55. package/lib/client/compilableQueryWatch.d.ts +7 -0
  56. package/lib/client/compilableQueryWatch.js +38 -0
  57. package/lib/client/compilableQueryWatch.js.map +1 -0
  58. package/lib/client/connection/PowerSyncBackendConnector.d.ts +23 -0
  59. package/lib/client/connection/PowerSyncBackendConnector.js +2 -0
  60. package/lib/client/connection/PowerSyncBackendConnector.js.map +1 -0
  61. package/lib/client/connection/PowerSyncCredentials.d.ts +5 -0
  62. package/lib/client/connection/PowerSyncCredentials.js +2 -0
  63. package/lib/client/connection/PowerSyncCredentials.js.map +1 -0
  64. package/lib/client/constants.d.ts +1 -0
  65. package/lib/client/constants.js +2 -0
  66. package/lib/client/constants.js.map +1 -0
  67. package/lib/client/runOnSchemaChange.d.ts +2 -0
  68. package/lib/client/runOnSchemaChange.js +24 -0
  69. package/lib/client/runOnSchemaChange.js.map +1 -0
  70. package/lib/client/sync/bucket/BucketStorageAdapter.d.ts +102 -0
  71. package/lib/client/sync/bucket/BucketStorageAdapter.js +19 -0
  72. package/lib/client/sync/bucket/BucketStorageAdapter.js.map +1 -0
  73. package/lib/client/sync/bucket/CrudBatch.d.ts +31 -0
  74. package/lib/client/sync/bucket/CrudBatch.js +26 -0
  75. package/lib/client/sync/bucket/CrudBatch.js.map +1 -0
  76. package/lib/client/sync/bucket/CrudEntry.d.ts +95 -0
  77. package/lib/client/sync/bucket/CrudEntry.js +110 -0
  78. package/lib/client/sync/bucket/CrudEntry.js.map +1 -0
  79. package/lib/client/sync/bucket/CrudTransaction.d.ts +29 -0
  80. package/lib/client/sync/bucket/CrudTransaction.js +25 -0
  81. package/lib/client/sync/bucket/CrudTransaction.js.map +1 -0
  82. package/lib/client/sync/bucket/OpType.d.ts +16 -0
  83. package/lib/client/sync/bucket/OpType.js +23 -0
  84. package/lib/client/sync/bucket/OpType.js.map +1 -0
  85. package/lib/client/sync/bucket/OplogEntry.d.ts +23 -0
  86. package/lib/client/sync/bucket/OplogEntry.js +36 -0
  87. package/lib/client/sync/bucket/OplogEntry.js.map +1 -0
  88. package/lib/client/sync/bucket/SqliteBucketStorage.d.ts +61 -0
  89. package/lib/client/sync/bucket/SqliteBucketStorage.js +324 -0
  90. package/lib/client/sync/bucket/SqliteBucketStorage.js.map +1 -0
  91. package/lib/client/sync/bucket/SyncDataBatch.d.ts +6 -0
  92. package/lib/client/sync/bucket/SyncDataBatch.js +12 -0
  93. package/lib/client/sync/bucket/SyncDataBatch.js.map +1 -0
  94. package/lib/client/sync/bucket/SyncDataBucket.d.ts +40 -0
  95. package/lib/client/sync/bucket/SyncDataBucket.js +40 -0
  96. package/lib/client/sync/bucket/SyncDataBucket.js.map +1 -0
  97. package/lib/client/sync/stream/AbstractRemote.d.ts +140 -0
  98. package/lib/client/sync/stream/AbstractRemote.js +506 -0
  99. package/lib/client/sync/stream/AbstractRemote.js.map +1 -0
  100. package/lib/client/sync/stream/AbstractStreamingSyncImplementation.d.ts +240 -0
  101. package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js +990 -0
  102. package/lib/client/sync/stream/AbstractStreamingSyncImplementation.js.map +1 -0
  103. package/lib/client/sync/stream/WebsocketClientTransport.d.ts +15 -0
  104. package/lib/client/sync/stream/WebsocketClientTransport.js +61 -0
  105. package/lib/client/sync/stream/WebsocketClientTransport.js.map +1 -0
  106. package/lib/client/sync/stream/core-instruction.d.ts +72 -0
  107. package/lib/client/sync/stream/core-instruction.js +27 -0
  108. package/lib/client/sync/stream/core-instruction.js.map +1 -0
  109. package/lib/client/sync/stream/streaming-sync-types.d.ts +143 -0
  110. package/lib/client/sync/stream/streaming-sync-types.js +26 -0
  111. package/lib/client/sync/stream/streaming-sync-types.js.map +1 -0
  112. package/lib/client/sync/sync-streams.d.ts +98 -0
  113. package/lib/client/sync/sync-streams.js +2 -0
  114. package/lib/client/sync/sync-streams.js.map +1 -0
  115. package/lib/client/triggers/MemoryTriggerClaimManager.d.ts +6 -0
  116. package/lib/client/triggers/MemoryTriggerClaimManager.js +21 -0
  117. package/lib/client/triggers/MemoryTriggerClaimManager.js.map +1 -0
  118. package/lib/client/triggers/TriggerManager.d.ts +459 -0
  119. package/lib/client/triggers/TriggerManager.js +11 -0
  120. package/lib/client/triggers/TriggerManager.js.map +1 -0
  121. package/lib/client/triggers/TriggerManagerImpl.d.ts +39 -0
  122. package/lib/client/triggers/TriggerManagerImpl.js +393 -0
  123. package/lib/client/triggers/TriggerManagerImpl.js.map +1 -0
  124. package/lib/client/triggers/sanitizeSQL.d.ts +34 -0
  125. package/lib/client/triggers/sanitizeSQL.js +69 -0
  126. package/lib/client/triggers/sanitizeSQL.js.map +1 -0
  127. package/lib/client/watched/GetAllQuery.d.ts +32 -0
  128. package/lib/client/watched/GetAllQuery.js +25 -0
  129. package/lib/client/watched/GetAllQuery.js.map +1 -0
  130. package/lib/client/watched/WatchedQuery.d.ts +100 -0
  131. package/lib/client/watched/WatchedQuery.js +14 -0
  132. package/lib/client/watched/WatchedQuery.js.map +1 -0
  133. package/lib/client/watched/processors/AbstractQueryProcessor.d.ts +68 -0
  134. package/lib/client/watched/processors/AbstractQueryProcessor.js +151 -0
  135. package/lib/client/watched/processors/AbstractQueryProcessor.js.map +1 -0
  136. package/lib/client/watched/processors/DifferentialQueryProcessor.d.ts +121 -0
  137. package/lib/client/watched/processors/DifferentialQueryProcessor.js +173 -0
  138. package/lib/client/watched/processors/DifferentialQueryProcessor.js.map +1 -0
  139. package/lib/client/watched/processors/OnChangeQueryProcessor.d.ts +33 -0
  140. package/lib/client/watched/processors/OnChangeQueryProcessor.js +83 -0
  141. package/lib/client/watched/processors/OnChangeQueryProcessor.js.map +1 -0
  142. package/lib/client/watched/processors/comparators.d.ts +30 -0
  143. package/lib/client/watched/processors/comparators.js +35 -0
  144. package/lib/client/watched/processors/comparators.js.map +1 -0
  145. package/lib/db/ConnectionClosedError.d.ts +10 -0
  146. package/lib/db/ConnectionClosedError.js +21 -0
  147. package/lib/db/ConnectionClosedError.js.map +1 -0
  148. package/lib/db/DBAdapter.d.ts +115 -0
  149. package/lib/db/DBAdapter.js +20 -0
  150. package/lib/db/DBAdapter.js.map +1 -0
  151. package/lib/db/crud/SyncProgress.d.ts +68 -0
  152. package/lib/db/crud/SyncProgress.js +61 -0
  153. package/lib/db/crud/SyncProgress.js.map +1 -0
  154. package/lib/db/crud/SyncStatus.d.ts +195 -0
  155. package/lib/db/crud/SyncStatus.js +250 -0
  156. package/lib/db/crud/SyncStatus.js.map +1 -0
  157. package/lib/db/crud/UploadQueueStatus.d.ts +20 -0
  158. package/lib/db/crud/UploadQueueStatus.js +25 -0
  159. package/lib/db/crud/UploadQueueStatus.js.map +1 -0
  160. package/lib/db/schema/Column.d.ts +30 -0
  161. package/lib/db/schema/Column.js +43 -0
  162. package/lib/db/schema/Column.js.map +1 -0
  163. package/lib/db/schema/Index.d.ts +22 -0
  164. package/lib/db/schema/Index.js +30 -0
  165. package/lib/db/schema/Index.js.map +1 -0
  166. package/lib/db/schema/IndexedColumn.d.ts +19 -0
  167. package/lib/db/schema/IndexedColumn.js +30 -0
  168. package/lib/db/schema/IndexedColumn.js.map +1 -0
  169. package/lib/db/schema/RawTable.d.ts +61 -0
  170. package/lib/db/schema/RawTable.js +33 -0
  171. package/lib/db/schema/RawTable.js.map +1 -0
  172. package/lib/db/schema/Schema.d.ts +54 -0
  173. package/lib/db/schema/Schema.js +61 -0
  174. package/lib/db/schema/Schema.js.map +1 -0
  175. package/lib/db/schema/Table.d.ts +157 -0
  176. package/lib/db/schema/Table.js +208 -0
  177. package/lib/db/schema/Table.js.map +1 -0
  178. package/lib/db/schema/TableV2.d.ts +9 -0
  179. package/lib/db/schema/TableV2.js +9 -0
  180. package/lib/db/schema/TableV2.js.map +1 -0
  181. package/lib/index.d.ts +62 -0
  182. package/lib/index.js +63 -0
  183. package/lib/index.js.map +1 -0
  184. package/lib/types/types.d.ts +8 -0
  185. package/lib/types/types.js +2 -0
  186. package/lib/types/types.js.map +1 -0
  187. package/lib/utils/AbortOperation.d.ts +9 -0
  188. package/lib/utils/AbortOperation.js +19 -0
  189. package/lib/utils/AbortOperation.js.map +1 -0
  190. package/lib/utils/BaseObserver.d.ts +18 -0
  191. package/lib/utils/BaseObserver.js +27 -0
  192. package/lib/utils/BaseObserver.js.map +1 -0
  193. package/lib/utils/ControlledExecutor.d.ts +25 -0
  194. package/lib/utils/ControlledExecutor.js +51 -0
  195. package/lib/utils/ControlledExecutor.js.map +1 -0
  196. package/lib/utils/DataStream.d.ts +62 -0
  197. package/lib/utils/DataStream.js +169 -0
  198. package/lib/utils/DataStream.js.map +1 -0
  199. package/lib/utils/Logger.d.ts +31 -0
  200. package/lib/utils/Logger.js +37 -0
  201. package/lib/utils/Logger.js.map +1 -0
  202. package/lib/utils/MetaBaseObserver.d.ts +29 -0
  203. package/lib/utils/MetaBaseObserver.js +51 -0
  204. package/lib/utils/MetaBaseObserver.js.map +1 -0
  205. package/lib/utils/async.d.ts +23 -0
  206. package/lib/utils/async.js +55 -0
  207. package/lib/utils/async.js.map +1 -0
  208. package/lib/utils/mutex.d.ts +7 -0
  209. package/lib/utils/mutex.js +29 -0
  210. package/lib/utils/mutex.js.map +1 -0
  211. package/lib/utils/parseQuery.d.ts +6 -0
  212. package/lib/utils/parseQuery.js +17 -0
  213. package/lib/utils/parseQuery.js.map +1 -0
  214. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractStreamingSyncImplementation.js","sourceRoot":"","sources":["../../../../src/client/sync/stream/AbstractStreamingSyncImplementation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Adapted from rsocket-websocket-client
3
+ * https://github.com/rsocket/rsocket-js/blob/e224cf379e747c4f1ddc4f2fa111854626cc8575/packages/rsocket-websocket-client/src/WebsocketClientTransport.ts#L17
4
+ * This adds additional error handling for React Native iOS.
5
+ * This particularly adds a close listener to handle cases where the WebSocket
6
+ * connection closes immediately after opening without emitting an error.
7
+ */
8
+ import { ClientTransport, Closeable, Demultiplexer, DuplexConnection, FrameHandler, Multiplexer, Outbound } from 'rsocket-core';
9
+ import { ClientOptions } from 'rsocket-websocket-client';
10
+ export declare class WebsocketClientTransport implements ClientTransport {
11
+ private readonly url;
12
+ private readonly factory;
13
+ constructor(options: ClientOptions);
14
+ connect(multiplexerDemultiplexerFactory: (outbound: Outbound & Closeable) => Multiplexer & Demultiplexer & FrameHandler): Promise<DuplexConnection>;
15
+ }
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Adapted from rsocket-websocket-client
3
+ * https://github.com/rsocket/rsocket-js/blob/e224cf379e747c4f1ddc4f2fa111854626cc8575/packages/rsocket-websocket-client/src/WebsocketClientTransport.ts#L17
4
+ * This adds additional error handling for React Native iOS.
5
+ * This particularly adds a close listener to handle cases where the WebSocket
6
+ * connection closes immediately after opening without emitting an error.
7
+ */
8
+ import { Deserializer } from 'rsocket-core';
9
+ import { WebsocketDuplexConnection } from 'rsocket-websocket-client/dist/WebsocketDuplexConnection.js';
10
+ export class WebsocketClientTransport {
11
+ url;
12
+ factory;
13
+ constructor(options) {
14
+ this.url = options.url;
15
+ this.factory = options.wsCreator ?? ((url) => new WebSocket(url));
16
+ }
17
+ connect(multiplexerDemultiplexerFactory) {
18
+ return new Promise((resolve, reject) => {
19
+ const websocket = this.factory(this.url);
20
+ websocket.binaryType = 'arraybuffer';
21
+ let removeListeners;
22
+ const openListener = () => {
23
+ removeListeners();
24
+ resolve(new WebsocketDuplexConnection(websocket, new Deserializer(), multiplexerDemultiplexerFactory));
25
+ };
26
+ const errorListener = (ev) => {
27
+ removeListeners();
28
+ // We add a default error in that case.
29
+ if (ev.error != null) {
30
+ // undici typically provides an error object
31
+ reject(ev.error);
32
+ }
33
+ else if (ev.message != null) {
34
+ // React Native typically does not provide an error object, but does provide a message
35
+ reject(new Error(`Failed to create websocket connection: ${ev.message}`));
36
+ }
37
+ else {
38
+ // Browsers often provide no details at all
39
+ reject(new Error(`Failed to create websocket connection to ${this.url}`));
40
+ }
41
+ };
42
+ /**
43
+ * In some cases, such as React Native iOS, the WebSocket connection may close immediately after opening
44
+ * without and error. In such cases, we need to handle the close event to reject the promise.
45
+ */
46
+ const closeListener = () => {
47
+ removeListeners();
48
+ reject(new Error('WebSocket connection closed while opening'));
49
+ };
50
+ removeListeners = () => {
51
+ websocket.removeEventListener('open', openListener);
52
+ websocket.removeEventListener('error', errorListener);
53
+ websocket.removeEventListener('close', closeListener);
54
+ };
55
+ websocket.addEventListener('open', openListener);
56
+ websocket.addEventListener('error', errorListener);
57
+ websocket.addEventListener('close', closeListener);
58
+ });
59
+ }
60
+ }
61
+ //# sourceMappingURL=WebsocketClientTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebsocketClientTransport.js","sourceRoot":"","sources":["../../../../src/client/sync/stream/WebsocketClientTransport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAIL,YAAY,EAKb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,4DAA4D,CAAC;AAEvG,MAAM,OAAO,wBAAwB;IAClB,GAAG,CAAS;IACZ,OAAO,CAA6B;IAErD,YAAY,OAAsB;QAChC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,CACL,+BAA+G;QAE/G,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEzC,SAAS,CAAC,UAAU,GAAG,aAAa,CAAC;YAErC,IAAI,eAA2B,CAAC;YAEhC,MAAM,YAAY,GAAG,GAAG,EAAE;gBACxB,eAAe,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,yBAAyB,CAAC,SAAS,EAAE,IAAI,YAAY,EAAE,EAAE,+BAA+B,CAAC,CAAC,CAAC;YACzG,CAAC,CAAC;YAEF,MAAM,aAAa,GAAG,CAAC,EAAc,EAAE,EAAE;gBACvC,eAAe,EAAE,CAAC;gBAClB,uCAAuC;gBACvC,IAAI,EAAE,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;oBACrB,4CAA4C;oBAC5C,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC;qBAAM,IAAI,EAAE,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;oBAC9B,sFAAsF;oBACtF,MAAM,CAAC,IAAI,KAAK,CAAC,0CAA0C,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC5E,CAAC;qBAAM,CAAC;oBACN,2CAA2C;oBAC3C,MAAM,CAAC,IAAI,KAAK,CAAC,4CAA4C,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC,CAAC;YAEF;;;eAGG;YACH,MAAM,aAAa,GAAG,GAAG,EAAE;gBACzB,eAAe,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACjE,CAAC,CAAC;YAEF,eAAe,GAAG,GAAG,EAAE;gBACrB,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBACpD,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;gBACtD,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACxD,CAAC,CAAC;YAEF,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACjD,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YACnD,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,72 @@
1
+ import { StreamingSyncRequest } from './streaming-sync-types.js';
2
+ import * as sync_status from '../../../db/crud/SyncStatus.js';
3
+ /**
4
+ * An internal instruction emitted by the sync client in the core extension in response to the JS
5
+ * SDK passing sync data into the extension.
6
+ */
7
+ export type Instruction = {
8
+ LogLine: LogLine;
9
+ } | {
10
+ UpdateSyncStatus: UpdateSyncStatus;
11
+ } | {
12
+ EstablishSyncStream: EstablishSyncStream;
13
+ } | {
14
+ FetchCredentials: FetchCredentials;
15
+ } | {
16
+ CloseSyncStream: {
17
+ hide_disconnect: boolean;
18
+ };
19
+ } | {
20
+ FlushFileSystem: any;
21
+ } | {
22
+ DidCompleteSync: any;
23
+ };
24
+ export interface LogLine {
25
+ severity: 'DEBUG' | 'INFO' | 'WARNING';
26
+ line: string;
27
+ }
28
+ export interface EstablishSyncStream {
29
+ request: StreamingSyncRequest;
30
+ }
31
+ export interface UpdateSyncStatus {
32
+ status: CoreSyncStatus;
33
+ }
34
+ export interface CoreSyncStatus {
35
+ connected: boolean;
36
+ connecting: boolean;
37
+ priority_status: SyncPriorityStatus[];
38
+ downloading: DownloadProgress | null;
39
+ streams: CoreStreamSubscription[];
40
+ }
41
+ export interface CoreStreamSubscription {
42
+ progress: {
43
+ total: number;
44
+ downloaded: number;
45
+ };
46
+ name: string;
47
+ parameters: any;
48
+ priority: number | null;
49
+ active: boolean;
50
+ is_default: boolean;
51
+ has_explicit_subscription: boolean;
52
+ expires_at: number | null;
53
+ last_synced_at: number | null;
54
+ }
55
+ export interface SyncPriorityStatus {
56
+ priority: number;
57
+ last_synced_at: number | number;
58
+ has_synced: boolean | null;
59
+ }
60
+ export interface DownloadProgress {
61
+ buckets: Record<string, BucketProgress>;
62
+ }
63
+ export interface BucketProgress {
64
+ priority: number;
65
+ at_last: number;
66
+ since_last: number;
67
+ target_count: number;
68
+ }
69
+ export interface FetchCredentials {
70
+ did_expire: boolean;
71
+ }
72
+ export declare function coreStatusToJs(status: CoreSyncStatus): sync_status.SyncStatusOptions;
@@ -0,0 +1,27 @@
1
+ import { FULL_SYNC_PRIORITY } from '../../../db/crud/SyncProgress.js';
2
+ function priorityToJs(status) {
3
+ return {
4
+ priority: status.priority,
5
+ hasSynced: status.has_synced ?? undefined,
6
+ lastSyncedAt: status.last_synced_at != null ? new Date(status.last_synced_at * 1000) : undefined
7
+ };
8
+ }
9
+ export function coreStatusToJs(status) {
10
+ const coreCompleteSync = status.priority_status.find((s) => s.priority == FULL_SYNC_PRIORITY);
11
+ const completeSync = coreCompleteSync != null ? priorityToJs(coreCompleteSync) : null;
12
+ return {
13
+ connected: status.connected,
14
+ connecting: status.connecting,
15
+ dataFlow: {
16
+ // We expose downloading as a boolean field, the core extension reports download information as a nullable
17
+ // download status. When that status is non-null, a download is in progress.
18
+ downloading: status.downloading != null,
19
+ downloadProgress: status.downloading?.buckets,
20
+ internalStreamSubscriptions: status.streams
21
+ },
22
+ lastSyncedAt: completeSync?.lastSyncedAt,
23
+ hasSynced: completeSync?.hasSynced,
24
+ priorityStatusEntries: status.priority_status.map(priorityToJs)
25
+ };
26
+ }
27
+ //# sourceMappingURL=core-instruction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core-instruction.js","sourceRoot":"","sources":["../../../../src/client/sync/stream/core-instruction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAsEtE,SAAS,YAAY,CAAC,MAA0B;IAC9C,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,UAAU,IAAI,SAAS;QACzC,YAAY,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KACjG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,MAAM,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,kBAAkB,CAAC,CAAC;IAC9F,MAAM,YAAY,GAAG,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEtF,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE;YACR,0GAA0G;YAC1G,4EAA4E;YAC5E,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;YACvC,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO;YAC7C,2BAA2B,EAAE,MAAM,CAAC,OAAO;SAC5C;QACD,YAAY,EAAE,YAAY,EAAE,YAAY;QACxC,SAAS,EAAE,YAAY,EAAE,SAAS;QAClC,qBAAqB,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC;KAChE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,143 @@
1
+ import { BucketChecksum, Checkpoint } from '../bucket/BucketStorageAdapter.js';
2
+ import { CrudEntry, OpId } from '../bucket/CrudEntry.js';
3
+ import { SyncDataBucketJSON } from '../bucket/SyncDataBucket.js';
4
+ /**
5
+ * For sync2.json
6
+ */
7
+ export interface ContinueCheckpointRequest {
8
+ /**
9
+ * Existing bucket states. Only these buckets are synchronized.
10
+ */
11
+ buckets: BucketRequest[];
12
+ checkpoint_token: string;
13
+ limit?: number;
14
+ }
15
+ export interface SyncNewCheckpointRequest {
16
+ /**
17
+ * Existing bucket states. Used if include_data is specified.
18
+ */
19
+ buckets?: BucketRequest[];
20
+ request_checkpoint: {
21
+ /**
22
+ * Whether or not to include an initial data request.
23
+ */
24
+ include_data: boolean;
25
+ /**
26
+ * Whether or not to compute a checksum.
27
+ */
28
+ include_checksum: boolean;
29
+ };
30
+ limit?: number;
31
+ }
32
+ export type SyncRequest = ContinueCheckpointRequest | SyncNewCheckpointRequest;
33
+ export interface SyncResponse {
34
+ /**
35
+ * Data for the buckets returned. May not have an an entry for each bucket in the request.
36
+ */
37
+ data?: SyncDataBucketJSON[];
38
+ /**
39
+ * True if the response limit has been reached, and another request must be made.
40
+ */
41
+ has_more: boolean;
42
+ checkpoint_token?: string;
43
+ checkpoint?: Checkpoint;
44
+ }
45
+ type JSONValue = string | number | boolean | null | undefined | JSONObject | JSONArray;
46
+ interface JSONObject {
47
+ [key: string]: JSONValue;
48
+ }
49
+ type JSONArray = JSONValue[];
50
+ export type StreamingSyncRequestParameterType = JSONValue;
51
+ export interface StreamingSyncRequest {
52
+ /**
53
+ * Existing bucket states.
54
+ */
55
+ buckets?: BucketRequest[];
56
+ /**
57
+ * If specified, limit the response to only include these buckets.
58
+ */
59
+ only?: string[];
60
+ /**
61
+ * Whether or not to compute a checksum for each checkpoint
62
+ */
63
+ include_checksum: boolean;
64
+ /**
65
+ * Changes the response to stringified data in each OplogEntry
66
+ */
67
+ raw_data: boolean;
68
+ /**
69
+ * Client parameters to be passed to the sync rules.
70
+ */
71
+ parameters?: Record<string, StreamingSyncRequestParameterType>;
72
+ /**
73
+ * Application metadata to be included in service logs.
74
+ */
75
+ app_metadata?: Record<string, string>;
76
+ client_id?: string;
77
+ }
78
+ export interface StreamingSyncCheckpoint {
79
+ checkpoint: Checkpoint;
80
+ }
81
+ export interface StreamingSyncCheckpointDiff {
82
+ checkpoint_diff: {
83
+ last_op_id: OpId;
84
+ updated_buckets: BucketChecksum[];
85
+ removed_buckets: string[];
86
+ write_checkpoint?: string;
87
+ };
88
+ }
89
+ export interface StreamingSyncDataJSON {
90
+ data: SyncDataBucketJSON;
91
+ }
92
+ export interface StreamingSyncCheckpointComplete {
93
+ checkpoint_complete: {
94
+ last_op_id: OpId;
95
+ };
96
+ }
97
+ export interface StreamingSyncCheckpointPartiallyComplete {
98
+ partial_checkpoint_complete: {
99
+ priority: number;
100
+ last_op_id: OpId;
101
+ };
102
+ }
103
+ export interface StreamingSyncKeepalive {
104
+ /** If specified, token expires in this many seconds. */
105
+ token_expires_in: number;
106
+ }
107
+ export type StreamingSyncLine = StreamingSyncDataJSON | StreamingSyncCheckpoint | StreamingSyncCheckpointDiff | StreamingSyncCheckpointComplete | StreamingSyncCheckpointPartiallyComplete | StreamingSyncKeepalive;
108
+ export type CrudUploadNotification = {
109
+ crud_upload_completed: null;
110
+ };
111
+ export type StreamingSyncLineOrCrudUploadComplete = StreamingSyncLine | CrudUploadNotification;
112
+ export interface BucketRequest {
113
+ name: string;
114
+ /**
115
+ * Base-10 number. Sync all data from this bucket with op_id > after.
116
+ */
117
+ after: OpId;
118
+ }
119
+ export declare function isStreamingSyncData(line: StreamingSyncLine): line is StreamingSyncDataJSON;
120
+ export declare function isStreamingKeepalive(line: StreamingSyncLine): line is StreamingSyncKeepalive;
121
+ export declare function isStreamingSyncCheckpoint(line: StreamingSyncLine): line is StreamingSyncCheckpoint;
122
+ export declare function isStreamingSyncCheckpointComplete(line: StreamingSyncLine): line is StreamingSyncCheckpointComplete;
123
+ export declare function isStreamingSyncCheckpointPartiallyComplete(line: StreamingSyncLine): line is StreamingSyncCheckpointPartiallyComplete;
124
+ export declare function isStreamingSyncCheckpointDiff(line: StreamingSyncLine): line is StreamingSyncCheckpointDiff;
125
+ export declare function isContinueCheckpointRequest(request: SyncRequest): request is ContinueCheckpointRequest;
126
+ export declare function isSyncNewCheckpointRequest(request: SyncRequest): request is SyncNewCheckpointRequest;
127
+ /**
128
+ * For crud.json
129
+ */
130
+ export interface CrudRequest {
131
+ data: CrudEntry[];
132
+ }
133
+ export interface CrudResponse {
134
+ /**
135
+ * A sync response with a checkpoint >= this checkpoint would contain all the changes in this request.
136
+ *
137
+ * Any earlier checkpoint may or may not contain these changes.
138
+ *
139
+ * May be empty when the request contains no ops.
140
+ */
141
+ checkpoint?: OpId;
142
+ }
143
+ export {};
@@ -0,0 +1,26 @@
1
+ export function isStreamingSyncData(line) {
2
+ return line.data != null;
3
+ }
4
+ export function isStreamingKeepalive(line) {
5
+ return line.token_expires_in != null;
6
+ }
7
+ export function isStreamingSyncCheckpoint(line) {
8
+ return line.checkpoint != null;
9
+ }
10
+ export function isStreamingSyncCheckpointComplete(line) {
11
+ return line.checkpoint_complete != null;
12
+ }
13
+ export function isStreamingSyncCheckpointPartiallyComplete(line) {
14
+ return line.partial_checkpoint_complete != null;
15
+ }
16
+ export function isStreamingSyncCheckpointDiff(line) {
17
+ return line.checkpoint_diff != null;
18
+ }
19
+ export function isContinueCheckpointRequest(request) {
20
+ return (Array.isArray(request.buckets) &&
21
+ typeof request.checkpoint_token == 'string');
22
+ }
23
+ export function isSyncNewCheckpointRequest(request) {
24
+ return typeof request.request_checkpoint == 'object';
25
+ }
26
+ //# sourceMappingURL=streaming-sync-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming-sync-types.js","sourceRoot":"","sources":["../../../../src/client/sync/stream/streaming-sync-types.ts"],"names":[],"mappings":"AA4JA,MAAM,UAAU,mBAAmB,CAAC,IAAuB;IACzD,OAAQ,IAA8B,CAAC,IAAI,IAAI,IAAI,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAuB;IAC1D,OAAQ,IAA+B,CAAC,gBAAgB,IAAI,IAAI,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAAuB;IAC/D,OAAQ,IAAgC,CAAC,UAAU,IAAI,IAAI,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,IAAuB;IACvE,OAAQ,IAAwC,CAAC,mBAAmB,IAAI,IAAI,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,0CAA0C,CACxD,IAAuB;IAEvB,OAAQ,IAAiD,CAAC,2BAA2B,IAAI,IAAI,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,IAAuB;IACnE,OAAQ,IAAoC,CAAC,eAAe,IAAI,IAAI,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAoB;IAC9D,OAAO,CACL,KAAK,CAAC,OAAO,CAAE,OAAqC,CAAC,OAAO,CAAC;QAC7D,OAAQ,OAAqC,CAAC,gBAAgB,IAAI,QAAQ,CAC3E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAAoB;IAC7D,OAAO,OAAQ,OAAoC,CAAC,kBAAkB,IAAI,QAAQ,CAAC;AACrF,CAAC"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * A description of a sync stream, consisting of its {@link name} and the {@link parameters} used when subscribing.
3
+ */
4
+ export interface SyncStreamDescription {
5
+ /**
6
+ * The name of the stream as it appears in the stream definition for the PowerSync service.
7
+ */
8
+ name: string;
9
+ /**
10
+ * The parameters used to subscribe to the stream, if any.
11
+ *
12
+ * The same stream can be subscribed to multiple times with different parameters.
13
+ */
14
+ parameters: Record<string, any> | null;
15
+ }
16
+ /**
17
+ * Information about a subscribed sync stream.
18
+ *
19
+ * This includes the {@link SyncStreamDescription}, along with information about the current sync status.
20
+ */
21
+ export interface SyncSubscriptionDescription extends SyncStreamDescription {
22
+ active: boolean;
23
+ /**
24
+ * Whether this stream subscription is included by default, regardless of whether the stream has explicitly been
25
+ * subscribed to or not.
26
+ *
27
+ * It's possible for both {@link isDefault} and {@link hasExplicitSubscription} to be true at the same time - this
28
+ * happens when a default stream was subscribed explicitly.
29
+ */
30
+ isDefault: boolean;
31
+ /**
32
+ * Whether this stream has been subscribed to explicitly.
33
+ *
34
+ * It's possible for both {@link isDefault} and {@link hasExplicitSubscription} to be true at the same time - this
35
+ * happens when a default stream was subscribed explicitly.
36
+ */
37
+ hasExplicitSubscription: boolean;
38
+ /**
39
+ * For sync streams that have a time-to-live, the current time at which the stream would expire if not subscribed to
40
+ * again.
41
+ */
42
+ expiresAt: Date | null;
43
+ /**
44
+ * Whether this stream subscription has been synced at least once.
45
+ */
46
+ hasSynced: boolean;
47
+ /**
48
+ * If {@link hasSynced} is true, the last time data from this stream has been synced.
49
+ */
50
+ lastSyncedAt: Date | null;
51
+ }
52
+ export interface SyncStreamSubscribeOptions {
53
+ /**
54
+ * A "time to live" for this stream subscription, in seconds.
55
+ *
56
+ * The TTL control when a stream gets evicted after not having an active {@link SyncStreamSubscription} object
57
+ * attached to it.
58
+ */
59
+ ttl?: number;
60
+ /**
61
+ * A priority to assign to this subscription. This overrides the default priority that may have been set on streams.
62
+ *
63
+ * For details on priorities, see [priotized sync](https://docs.powersync.com/usage/use-case-examples/prioritized-sync).
64
+ */
65
+ priority?: 0 | 1 | 2 | 3;
66
+ }
67
+ /**
68
+ * A handle to a {@link SyncStreamDescription} that allows subscribing to the stream.
69
+ *
70
+ * To obtain an instance of {@link SyncStream}, call {@link AbstractPowerSyncDatabase.syncStream}.
71
+ */
72
+ export interface SyncStream extends SyncStreamDescription {
73
+ /**
74
+ * Adds a subscription to this stream, requesting it to be included when connecting to the sync service.
75
+ *
76
+ * You should keep a reference to the returned {@link SyncStreamSubscription} object along as you need data for that
77
+ * stream. As soon as {@link SyncStreamSubscription.unsubscribe} is called for all subscriptions on this stream
78
+ * (including subscriptions created on other tabs), the {@link SyncStreamSubscribeOptions.ttl} starts ticking and will
79
+ * eventually evict the stream (unless {@link subscribe} is called again).
80
+ */
81
+ subscribe(options?: SyncStreamSubscribeOptions): Promise<SyncStreamSubscription>;
82
+ /**
83
+ * Clears all subscriptions attached to this stream and resets the TTL for the stream.
84
+ *
85
+ * This is a potentially dangerous operations, as it interferes with other stream subscriptions.
86
+ */
87
+ unsubscribeAll(): Promise<void>;
88
+ }
89
+ export interface SyncStreamSubscription extends SyncStreamDescription {
90
+ /**
91
+ * A promise that resolves once data from in this sync stream has been synced and applied.
92
+ */
93
+ waitForFirstSync(abort?: AbortSignal): Promise<void>;
94
+ /**
95
+ * Removes this stream subscription.
96
+ */
97
+ unsubscribe(): void;
98
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sync-streams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-streams.js","sourceRoot":"","sources":["../../../src/client/sync/sync-streams.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { TriggerClaimManager } from './TriggerManager.js';
2
+ /**
3
+ * @internal
4
+ * @experimental
5
+ */
6
+ export declare const MEMORY_TRIGGER_CLAIM_MANAGER: TriggerClaimManager;
@@ -0,0 +1,21 @@
1
+ const CLAIM_STORE = new Map();
2
+ /**
3
+ * @internal
4
+ * @experimental
5
+ */
6
+ export const MEMORY_TRIGGER_CLAIM_MANAGER = {
7
+ async obtainClaim(identifier) {
8
+ if (CLAIM_STORE.has(identifier)) {
9
+ throw new Error(`A claim is already present for ${identifier}`);
10
+ }
11
+ const release = async () => {
12
+ CLAIM_STORE.delete(identifier);
13
+ };
14
+ CLAIM_STORE.set(identifier, release);
15
+ return release;
16
+ },
17
+ async checkClaim(identifier) {
18
+ return CLAIM_STORE.has(identifier);
19
+ }
20
+ };
21
+ //# sourceMappingURL=MemoryTriggerClaimManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryTriggerClaimManager.js","sourceRoot":"","sources":["../../../src/client/triggers/MemoryTriggerClaimManager.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,GAAG,IAAI,GAAG,EAA+B,CAAC;AAE3D;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAwB;IAC/D,KAAK,CAAC,WAAW,CAAC,UAAkB;QAClC,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAErC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,OAAO,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;CACF,CAAC"}