@powersync/service-core 0.0.0-dev-20240620165206

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 (454) hide show
  1. package/.probes/.gitkeep +0 -0
  2. package/CHANGELOG.md +82 -0
  3. package/LICENSE +67 -0
  4. package/README.md +3 -0
  5. package/dist/api/api-index.d.ts +2 -0
  6. package/dist/api/api-index.js +3 -0
  7. package/dist/api/api-index.js.map +1 -0
  8. package/dist/api/diagnostics.d.ts +21 -0
  9. package/dist/api/diagnostics.js +183 -0
  10. package/dist/api/diagnostics.js.map +1 -0
  11. package/dist/api/schema.d.ts +5 -0
  12. package/dist/api/schema.js +88 -0
  13. package/dist/api/schema.js.map +1 -0
  14. package/dist/auth/CachedKeyCollector.d.ts +46 -0
  15. package/dist/auth/CachedKeyCollector.js +116 -0
  16. package/dist/auth/CachedKeyCollector.js.map +1 -0
  17. package/dist/auth/CompoundKeyCollector.d.ts +8 -0
  18. package/dist/auth/CompoundKeyCollector.js +23 -0
  19. package/dist/auth/CompoundKeyCollector.js.map +1 -0
  20. package/dist/auth/JwtPayload.d.ts +10 -0
  21. package/dist/auth/JwtPayload.js +2 -0
  22. package/dist/auth/JwtPayload.js.map +1 -0
  23. package/dist/auth/KeyCollector.d.ts +24 -0
  24. package/dist/auth/KeyCollector.js +2 -0
  25. package/dist/auth/KeyCollector.js.map +1 -0
  26. package/dist/auth/KeySpec.d.ts +26 -0
  27. package/dist/auth/KeySpec.js +49 -0
  28. package/dist/auth/KeySpec.js.map +1 -0
  29. package/dist/auth/KeyStore.d.ts +39 -0
  30. package/dist/auth/KeyStore.js +131 -0
  31. package/dist/auth/KeyStore.js.map +1 -0
  32. package/dist/auth/LeakyBucket.d.ts +39 -0
  33. package/dist/auth/LeakyBucket.js +57 -0
  34. package/dist/auth/LeakyBucket.js.map +1 -0
  35. package/dist/auth/RemoteJWKSCollector.d.ts +24 -0
  36. package/dist/auth/RemoteJWKSCollector.js +106 -0
  37. package/dist/auth/RemoteJWKSCollector.js.map +1 -0
  38. package/dist/auth/StaticKeyCollector.d.ts +14 -0
  39. package/dist/auth/StaticKeyCollector.js +19 -0
  40. package/dist/auth/StaticKeyCollector.js.map +1 -0
  41. package/dist/auth/SupabaseKeyCollector.d.ts +22 -0
  42. package/dist/auth/SupabaseKeyCollector.js +61 -0
  43. package/dist/auth/SupabaseKeyCollector.js.map +1 -0
  44. package/dist/auth/auth-index.d.ts +10 -0
  45. package/dist/auth/auth-index.js +11 -0
  46. package/dist/auth/auth-index.js.map +1 -0
  47. package/dist/db/db-index.d.ts +1 -0
  48. package/dist/db/db-index.js +2 -0
  49. package/dist/db/db-index.js.map +1 -0
  50. package/dist/db/mongo.d.ts +29 -0
  51. package/dist/db/mongo.js +65 -0
  52. package/dist/db/mongo.js.map +1 -0
  53. package/dist/entry/cli-entry.d.ts +15 -0
  54. package/dist/entry/cli-entry.js +36 -0
  55. package/dist/entry/cli-entry.js.map +1 -0
  56. package/dist/entry/commands/config-command.d.ts +10 -0
  57. package/dist/entry/commands/config-command.js +21 -0
  58. package/dist/entry/commands/config-command.js.map +1 -0
  59. package/dist/entry/commands/migrate-action.d.ts +2 -0
  60. package/dist/entry/commands/migrate-action.js +18 -0
  61. package/dist/entry/commands/migrate-action.js.map +1 -0
  62. package/dist/entry/commands/start-action.d.ts +3 -0
  63. package/dist/entry/commands/start-action.js +15 -0
  64. package/dist/entry/commands/start-action.js.map +1 -0
  65. package/dist/entry/commands/teardown-action.d.ts +2 -0
  66. package/dist/entry/commands/teardown-action.js +17 -0
  67. package/dist/entry/commands/teardown-action.js.map +1 -0
  68. package/dist/entry/entry-index.d.ts +5 -0
  69. package/dist/entry/entry-index.js +6 -0
  70. package/dist/entry/entry-index.js.map +1 -0
  71. package/dist/index.d.ts +25 -0
  72. package/dist/index.js +28 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/locks/LockManager.d.ts +10 -0
  75. package/dist/locks/LockManager.js +7 -0
  76. package/dist/locks/LockManager.js.map +1 -0
  77. package/dist/locks/MongoLocks.d.ts +36 -0
  78. package/dist/locks/MongoLocks.js +81 -0
  79. package/dist/locks/MongoLocks.js.map +1 -0
  80. package/dist/locks/locks-index.d.ts +2 -0
  81. package/dist/locks/locks-index.js +3 -0
  82. package/dist/locks/locks-index.js.map +1 -0
  83. package/dist/metrics/Metrics.d.ts +30 -0
  84. package/dist/metrics/Metrics.js +176 -0
  85. package/dist/metrics/Metrics.js.map +1 -0
  86. package/dist/migrations/db/migrations/1684951997326-init.d.ts +3 -0
  87. package/dist/migrations/db/migrations/1684951997326-init.js +31 -0
  88. package/dist/migrations/db/migrations/1684951997326-init.js.map +1 -0
  89. package/dist/migrations/db/migrations/1688556755264-initial-sync-rules.d.ts +2 -0
  90. package/dist/migrations/db/migrations/1688556755264-initial-sync-rules.js +5 -0
  91. package/dist/migrations/db/migrations/1688556755264-initial-sync-rules.js.map +1 -0
  92. package/dist/migrations/db/migrations/1702295701188-sync-rule-state.d.ts +3 -0
  93. package/dist/migrations/db/migrations/1702295701188-sync-rule-state.js +54 -0
  94. package/dist/migrations/db/migrations/1702295701188-sync-rule-state.js.map +1 -0
  95. package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.d.ts +3 -0
  96. package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.js +27 -0
  97. package/dist/migrations/db/migrations/1711543888062-write-checkpoint-index.js.map +1 -0
  98. package/dist/migrations/definitions.d.ts +18 -0
  99. package/dist/migrations/definitions.js +6 -0
  100. package/dist/migrations/definitions.js.map +1 -0
  101. package/dist/migrations/executor.d.ts +16 -0
  102. package/dist/migrations/executor.js +64 -0
  103. package/dist/migrations/executor.js.map +1 -0
  104. package/dist/migrations/migrations-index.d.ts +3 -0
  105. package/dist/migrations/migrations-index.js +4 -0
  106. package/dist/migrations/migrations-index.js.map +1 -0
  107. package/dist/migrations/migrations.d.ts +10 -0
  108. package/dist/migrations/migrations.js +90 -0
  109. package/dist/migrations/migrations.js.map +1 -0
  110. package/dist/migrations/store/migration-store.d.ts +11 -0
  111. package/dist/migrations/store/migration-store.js +46 -0
  112. package/dist/migrations/store/migration-store.js.map +1 -0
  113. package/dist/replication/ErrorRateLimiter.d.ts +17 -0
  114. package/dist/replication/ErrorRateLimiter.js +43 -0
  115. package/dist/replication/ErrorRateLimiter.js.map +1 -0
  116. package/dist/replication/PgRelation.d.ts +16 -0
  117. package/dist/replication/PgRelation.js +26 -0
  118. package/dist/replication/PgRelation.js.map +1 -0
  119. package/dist/replication/WalConnection.d.ts +34 -0
  120. package/dist/replication/WalConnection.js +190 -0
  121. package/dist/replication/WalConnection.js.map +1 -0
  122. package/dist/replication/WalStream.d.ts +57 -0
  123. package/dist/replication/WalStream.js +515 -0
  124. package/dist/replication/WalStream.js.map +1 -0
  125. package/dist/replication/WalStreamManager.d.ts +30 -0
  126. package/dist/replication/WalStreamManager.js +198 -0
  127. package/dist/replication/WalStreamManager.js.map +1 -0
  128. package/dist/replication/WalStreamRunner.d.ts +38 -0
  129. package/dist/replication/WalStreamRunner.js +155 -0
  130. package/dist/replication/WalStreamRunner.js.map +1 -0
  131. package/dist/replication/replication-index.d.ts +7 -0
  132. package/dist/replication/replication-index.js +8 -0
  133. package/dist/replication/replication-index.js.map +1 -0
  134. package/dist/replication/util.d.ts +9 -0
  135. package/dist/replication/util.js +62 -0
  136. package/dist/replication/util.js.map +1 -0
  137. package/dist/routes/auth.d.ts +56 -0
  138. package/dist/routes/auth.js +182 -0
  139. package/dist/routes/auth.js.map +1 -0
  140. package/dist/routes/endpoints/admin.d.ts +1011 -0
  141. package/dist/routes/endpoints/admin.js +207 -0
  142. package/dist/routes/endpoints/admin.js.map +1 -0
  143. package/dist/routes/endpoints/checkpointing.d.ts +76 -0
  144. package/dist/routes/endpoints/checkpointing.js +36 -0
  145. package/dist/routes/endpoints/checkpointing.js.map +1 -0
  146. package/dist/routes/endpoints/dev.d.ts +312 -0
  147. package/dist/routes/endpoints/dev.js +172 -0
  148. package/dist/routes/endpoints/dev.js.map +1 -0
  149. package/dist/routes/endpoints/route-endpoints-index.d.ts +6 -0
  150. package/dist/routes/endpoints/route-endpoints-index.js +7 -0
  151. package/dist/routes/endpoints/route-endpoints-index.js.map +1 -0
  152. package/dist/routes/endpoints/socket-route.d.ts +2 -0
  153. package/dist/routes/endpoints/socket-route.js +119 -0
  154. package/dist/routes/endpoints/socket-route.js.map +1 -0
  155. package/dist/routes/endpoints/sync-rules.d.ts +174 -0
  156. package/dist/routes/endpoints/sync-rules.js +202 -0
  157. package/dist/routes/endpoints/sync-rules.js.map +1 -0
  158. package/dist/routes/endpoints/sync-stream.d.ts +132 -0
  159. package/dist/routes/endpoints/sync-stream.js +83 -0
  160. package/dist/routes/endpoints/sync-stream.js.map +1 -0
  161. package/dist/routes/hooks.d.ts +10 -0
  162. package/dist/routes/hooks.js +32 -0
  163. package/dist/routes/hooks.js.map +1 -0
  164. package/dist/routes/route-register.d.ts +10 -0
  165. package/dist/routes/route-register.js +87 -0
  166. package/dist/routes/route-register.js.map +1 -0
  167. package/dist/routes/router-socket.d.ts +10 -0
  168. package/dist/routes/router-socket.js +5 -0
  169. package/dist/routes/router-socket.js.map +1 -0
  170. package/dist/routes/router.d.ts +26 -0
  171. package/dist/routes/router.js +7 -0
  172. package/dist/routes/router.js.map +1 -0
  173. package/dist/routes/routes-index.d.ts +6 -0
  174. package/dist/routes/routes-index.js +7 -0
  175. package/dist/routes/routes-index.js.map +1 -0
  176. package/dist/runner/teardown.d.ts +2 -0
  177. package/dist/runner/teardown.js +94 -0
  178. package/dist/runner/teardown.js.map +1 -0
  179. package/dist/storage/BucketStorage.d.ts +307 -0
  180. package/dist/storage/BucketStorage.js +25 -0
  181. package/dist/storage/BucketStorage.js.map +1 -0
  182. package/dist/storage/ChecksumCache.d.ts +50 -0
  183. package/dist/storage/ChecksumCache.js +234 -0
  184. package/dist/storage/ChecksumCache.js.map +1 -0
  185. package/dist/storage/MongoBucketStorage.d.ts +52 -0
  186. package/dist/storage/MongoBucketStorage.js +409 -0
  187. package/dist/storage/MongoBucketStorage.js.map +1 -0
  188. package/dist/storage/SourceTable.d.ts +39 -0
  189. package/dist/storage/SourceTable.js +50 -0
  190. package/dist/storage/SourceTable.js.map +1 -0
  191. package/dist/storage/mongo/MongoBucketBatch.d.ts +48 -0
  192. package/dist/storage/mongo/MongoBucketBatch.js +581 -0
  193. package/dist/storage/mongo/MongoBucketBatch.js.map +1 -0
  194. package/dist/storage/mongo/MongoIdSequence.d.ts +12 -0
  195. package/dist/storage/mongo/MongoIdSequence.js +21 -0
  196. package/dist/storage/mongo/MongoIdSequence.js.map +1 -0
  197. package/dist/storage/mongo/MongoPersistedSyncRules.d.ts +9 -0
  198. package/dist/storage/mongo/MongoPersistedSyncRules.js +9 -0
  199. package/dist/storage/mongo/MongoPersistedSyncRules.js.map +1 -0
  200. package/dist/storage/mongo/MongoPersistedSyncRulesContent.d.ts +20 -0
  201. package/dist/storage/mongo/MongoPersistedSyncRulesContent.js +26 -0
  202. package/dist/storage/mongo/MongoPersistedSyncRulesContent.js.map +1 -0
  203. package/dist/storage/mongo/MongoSyncBucketStorage.d.ts +29 -0
  204. package/dist/storage/mongo/MongoSyncBucketStorage.js +391 -0
  205. package/dist/storage/mongo/MongoSyncBucketStorage.js.map +1 -0
  206. package/dist/storage/mongo/MongoSyncRulesLock.d.ts +16 -0
  207. package/dist/storage/mongo/MongoSyncRulesLock.js +65 -0
  208. package/dist/storage/mongo/MongoSyncRulesLock.js.map +1 -0
  209. package/dist/storage/mongo/OperationBatch.d.ts +26 -0
  210. package/dist/storage/mongo/OperationBatch.js +101 -0
  211. package/dist/storage/mongo/OperationBatch.js.map +1 -0
  212. package/dist/storage/mongo/PersistedBatch.d.ts +46 -0
  213. package/dist/storage/mongo/PersistedBatch.js +213 -0
  214. package/dist/storage/mongo/PersistedBatch.js.map +1 -0
  215. package/dist/storage/mongo/db.d.ts +26 -0
  216. package/dist/storage/mongo/db.js +35 -0
  217. package/dist/storage/mongo/db.js.map +1 -0
  218. package/dist/storage/mongo/models.d.ts +140 -0
  219. package/dist/storage/mongo/models.js +27 -0
  220. package/dist/storage/mongo/models.js.map +1 -0
  221. package/dist/storage/mongo/util.d.ts +26 -0
  222. package/dist/storage/mongo/util.js +81 -0
  223. package/dist/storage/mongo/util.js.map +1 -0
  224. package/dist/storage/storage-index.d.ts +14 -0
  225. package/dist/storage/storage-index.js +15 -0
  226. package/dist/storage/storage-index.js.map +1 -0
  227. package/dist/sync/BroadcastIterable.d.ts +38 -0
  228. package/dist/sync/BroadcastIterable.js +153 -0
  229. package/dist/sync/BroadcastIterable.js.map +1 -0
  230. package/dist/sync/LastValueSink.d.ts +25 -0
  231. package/dist/sync/LastValueSink.js +84 -0
  232. package/dist/sync/LastValueSink.js.map +1 -0
  233. package/dist/sync/merge.d.ts +39 -0
  234. package/dist/sync/merge.js +175 -0
  235. package/dist/sync/merge.js.map +1 -0
  236. package/dist/sync/safeRace.d.ts +1 -0
  237. package/dist/sync/safeRace.js +91 -0
  238. package/dist/sync/safeRace.js.map +1 -0
  239. package/dist/sync/sync-index.d.ts +6 -0
  240. package/dist/sync/sync-index.js +7 -0
  241. package/dist/sync/sync-index.js.map +1 -0
  242. package/dist/sync/sync.d.ts +18 -0
  243. package/dist/sync/sync.js +259 -0
  244. package/dist/sync/sync.js.map +1 -0
  245. package/dist/sync/util.d.ts +26 -0
  246. package/dist/sync/util.js +73 -0
  247. package/dist/sync/util.js.map +1 -0
  248. package/dist/system/CorePowerSyncSystem.d.ts +23 -0
  249. package/dist/system/CorePowerSyncSystem.js +52 -0
  250. package/dist/system/CorePowerSyncSystem.js.map +1 -0
  251. package/dist/system/system-index.d.ts +1 -0
  252. package/dist/system/system-index.js +2 -0
  253. package/dist/system/system-index.js.map +1 -0
  254. package/dist/util/Mutex.d.ts +47 -0
  255. package/dist/util/Mutex.js +132 -0
  256. package/dist/util/Mutex.js.map +1 -0
  257. package/dist/util/PgManager.d.ts +24 -0
  258. package/dist/util/PgManager.js +55 -0
  259. package/dist/util/PgManager.js.map +1 -0
  260. package/dist/util/alerting.d.ts +2 -0
  261. package/dist/util/alerting.js +8 -0
  262. package/dist/util/alerting.js.map +1 -0
  263. package/dist/util/config/collectors/config-collector.d.ts +29 -0
  264. package/dist/util/config/collectors/config-collector.js +116 -0
  265. package/dist/util/config/collectors/config-collector.js.map +1 -0
  266. package/dist/util/config/collectors/impl/base64-config-collector.d.ts +6 -0
  267. package/dist/util/config/collectors/impl/base64-config-collector.js +15 -0
  268. package/dist/util/config/collectors/impl/base64-config-collector.js.map +1 -0
  269. package/dist/util/config/collectors/impl/fallback-config-collector.d.ts +11 -0
  270. package/dist/util/config/collectors/impl/fallback-config-collector.js +19 -0
  271. package/dist/util/config/collectors/impl/fallback-config-collector.js.map +1 -0
  272. package/dist/util/config/collectors/impl/filesystem-config-collector.d.ts +6 -0
  273. package/dist/util/config/collectors/impl/filesystem-config-collector.js +37 -0
  274. package/dist/util/config/collectors/impl/filesystem-config-collector.js.map +1 -0
  275. package/dist/util/config/compound-config-collector.d.ts +32 -0
  276. package/dist/util/config/compound-config-collector.js +130 -0
  277. package/dist/util/config/compound-config-collector.js.map +1 -0
  278. package/dist/util/config/sync-rules/impl/base64-sync-rules-collector.d.ts +7 -0
  279. package/dist/util/config/sync-rules/impl/base64-sync-rules-collector.js +17 -0
  280. package/dist/util/config/sync-rules/impl/base64-sync-rules-collector.js.map +1 -0
  281. package/dist/util/config/sync-rules/impl/filesystem-sync-rules-collector.d.ts +7 -0
  282. package/dist/util/config/sync-rules/impl/filesystem-sync-rules-collector.js +21 -0
  283. package/dist/util/config/sync-rules/impl/filesystem-sync-rules-collector.js.map +1 -0
  284. package/dist/util/config/sync-rules/impl/inline-sync-rules-collector.d.ts +7 -0
  285. package/dist/util/config/sync-rules/impl/inline-sync-rules-collector.js +17 -0
  286. package/dist/util/config/sync-rules/impl/inline-sync-rules-collector.js.map +1 -0
  287. package/dist/util/config/sync-rules/sync-collector.d.ts +6 -0
  288. package/dist/util/config/sync-rules/sync-collector.js +3 -0
  289. package/dist/util/config/sync-rules/sync-collector.js.map +1 -0
  290. package/dist/util/config/types.d.ts +57 -0
  291. package/dist/util/config/types.js +7 -0
  292. package/dist/util/config/types.js.map +1 -0
  293. package/dist/util/config.d.ts +7 -0
  294. package/dist/util/config.js +35 -0
  295. package/dist/util/config.js.map +1 -0
  296. package/dist/util/env.d.ts +9 -0
  297. package/dist/util/env.js +26 -0
  298. package/dist/util/env.js.map +1 -0
  299. package/dist/util/memory-tracking.d.ts +7 -0
  300. package/dist/util/memory-tracking.js +58 -0
  301. package/dist/util/memory-tracking.js.map +1 -0
  302. package/dist/util/migration_lib.d.ts +11 -0
  303. package/dist/util/migration_lib.js +64 -0
  304. package/dist/util/migration_lib.js.map +1 -0
  305. package/dist/util/pgwire_utils.d.ts +24 -0
  306. package/dist/util/pgwire_utils.js +117 -0
  307. package/dist/util/pgwire_utils.js.map +1 -0
  308. package/dist/util/populate_test_data.d.ts +8 -0
  309. package/dist/util/populate_test_data.js +65 -0
  310. package/dist/util/populate_test_data.js.map +1 -0
  311. package/dist/util/protocol-types.d.ts +182 -0
  312. package/dist/util/protocol-types.js +42 -0
  313. package/dist/util/protocol-types.js.map +1 -0
  314. package/dist/util/secs.d.ts +2 -0
  315. package/dist/util/secs.js +49 -0
  316. package/dist/util/secs.js.map +1 -0
  317. package/dist/util/util-index.d.ts +22 -0
  318. package/dist/util/util-index.js +23 -0
  319. package/dist/util/util-index.js.map +1 -0
  320. package/dist/util/utils.d.ts +17 -0
  321. package/dist/util/utils.js +92 -0
  322. package/dist/util/utils.js.map +1 -0
  323. package/package.json +59 -0
  324. package/src/api/api-index.ts +2 -0
  325. package/src/api/diagnostics.ts +221 -0
  326. package/src/api/schema.ts +99 -0
  327. package/src/auth/CachedKeyCollector.ts +132 -0
  328. package/src/auth/CompoundKeyCollector.ts +33 -0
  329. package/src/auth/JwtPayload.ts +11 -0
  330. package/src/auth/KeyCollector.ts +27 -0
  331. package/src/auth/KeySpec.ts +67 -0
  332. package/src/auth/KeyStore.ts +156 -0
  333. package/src/auth/LeakyBucket.ts +66 -0
  334. package/src/auth/RemoteJWKSCollector.ts +130 -0
  335. package/src/auth/StaticKeyCollector.ts +21 -0
  336. package/src/auth/SupabaseKeyCollector.ts +67 -0
  337. package/src/auth/auth-index.ts +10 -0
  338. package/src/db/db-index.ts +1 -0
  339. package/src/db/mongo.ts +72 -0
  340. package/src/entry/cli-entry.ts +40 -0
  341. package/src/entry/commands/config-command.ts +36 -0
  342. package/src/entry/commands/migrate-action.ts +25 -0
  343. package/src/entry/commands/start-action.ts +24 -0
  344. package/src/entry/commands/teardown-action.ts +23 -0
  345. package/src/entry/entry-index.ts +5 -0
  346. package/src/index.ts +40 -0
  347. package/src/locks/LockManager.ts +16 -0
  348. package/src/locks/MongoLocks.ts +142 -0
  349. package/src/locks/locks-index.ts +2 -0
  350. package/src/metrics/Metrics.ts +265 -0
  351. package/src/migrations/db/migrations/1684951997326-init.ts +33 -0
  352. package/src/migrations/db/migrations/1688556755264-initial-sync-rules.ts +5 -0
  353. package/src/migrations/db/migrations/1702295701188-sync-rule-state.ts +99 -0
  354. package/src/migrations/db/migrations/1711543888062-write-checkpoint-index.ts +32 -0
  355. package/src/migrations/definitions.ts +21 -0
  356. package/src/migrations/executor.ts +87 -0
  357. package/src/migrations/migrations-index.ts +3 -0
  358. package/src/migrations/migrations.ts +118 -0
  359. package/src/migrations/store/migration-store.ts +63 -0
  360. package/src/replication/ErrorRateLimiter.ts +50 -0
  361. package/src/replication/PgRelation.ts +42 -0
  362. package/src/replication/WalConnection.ts +227 -0
  363. package/src/replication/WalStream.ts +624 -0
  364. package/src/replication/WalStreamManager.ts +213 -0
  365. package/src/replication/WalStreamRunner.ts +180 -0
  366. package/src/replication/replication-index.ts +7 -0
  367. package/src/replication/util.ts +76 -0
  368. package/src/routes/auth.ts +215 -0
  369. package/src/routes/endpoints/admin.ts +237 -0
  370. package/src/routes/endpoints/checkpointing.ts +41 -0
  371. package/src/routes/endpoints/dev.ts +199 -0
  372. package/src/routes/endpoints/route-endpoints-index.ts +6 -0
  373. package/src/routes/endpoints/socket-route.ts +135 -0
  374. package/src/routes/endpoints/sync-rules.ts +227 -0
  375. package/src/routes/endpoints/sync-stream.ts +101 -0
  376. package/src/routes/hooks.ts +46 -0
  377. package/src/routes/route-register.ts +104 -0
  378. package/src/routes/router-socket.ts +13 -0
  379. package/src/routes/router.ts +46 -0
  380. package/src/routes/routes-index.ts +6 -0
  381. package/src/runner/teardown.ts +108 -0
  382. package/src/storage/BucketStorage.ts +396 -0
  383. package/src/storage/ChecksumCache.ts +294 -0
  384. package/src/storage/MongoBucketStorage.ts +519 -0
  385. package/src/storage/SourceTable.ts +60 -0
  386. package/src/storage/mongo/MongoBucketBatch.ts +752 -0
  387. package/src/storage/mongo/MongoIdSequence.ts +24 -0
  388. package/src/storage/mongo/MongoPersistedSyncRules.ts +16 -0
  389. package/src/storage/mongo/MongoPersistedSyncRulesContent.ts +47 -0
  390. package/src/storage/mongo/MongoSyncBucketStorage.ts +533 -0
  391. package/src/storage/mongo/MongoSyncRulesLock.ts +81 -0
  392. package/src/storage/mongo/OperationBatch.ts +115 -0
  393. package/src/storage/mongo/PersistedBatch.ts +268 -0
  394. package/src/storage/mongo/db.ts +73 -0
  395. package/src/storage/mongo/models.ts +162 -0
  396. package/src/storage/mongo/util.ts +88 -0
  397. package/src/storage/storage-index.ts +15 -0
  398. package/src/sync/BroadcastIterable.ts +161 -0
  399. package/src/sync/LastValueSink.ts +100 -0
  400. package/src/sync/merge.ts +200 -0
  401. package/src/sync/safeRace.ts +99 -0
  402. package/src/sync/sync-index.ts +6 -0
  403. package/src/sync/sync.ts +319 -0
  404. package/src/sync/util.ts +98 -0
  405. package/src/system/CorePowerSyncSystem.ts +64 -0
  406. package/src/system/system-index.ts +1 -0
  407. package/src/util/Mutex.ts +159 -0
  408. package/src/util/PgManager.ts +64 -0
  409. package/src/util/alerting.ts +9 -0
  410. package/src/util/config/collectors/config-collector.ts +143 -0
  411. package/src/util/config/collectors/impl/base64-config-collector.ts +18 -0
  412. package/src/util/config/collectors/impl/fallback-config-collector.ts +22 -0
  413. package/src/util/config/collectors/impl/filesystem-config-collector.ts +43 -0
  414. package/src/util/config/compound-config-collector.ts +176 -0
  415. package/src/util/config/sync-rules/impl/base64-sync-rules-collector.ts +21 -0
  416. package/src/util/config/sync-rules/impl/filesystem-sync-rules-collector.ts +26 -0
  417. package/src/util/config/sync-rules/impl/inline-sync-rules-collector.ts +21 -0
  418. package/src/util/config/sync-rules/sync-collector.ts +8 -0
  419. package/src/util/config/types.ts +66 -0
  420. package/src/util/config.ts +39 -0
  421. package/src/util/env.ts +30 -0
  422. package/src/util/memory-tracking.ts +67 -0
  423. package/src/util/migration_lib.ts +79 -0
  424. package/src/util/pgwire_utils.ts +139 -0
  425. package/src/util/populate_test_data.ts +78 -0
  426. package/src/util/protocol-types.ts +228 -0
  427. package/src/util/secs.ts +54 -0
  428. package/src/util/util-index.ts +25 -0
  429. package/src/util/utils.ts +122 -0
  430. package/test/src/__snapshots__/pg_test.test.ts.snap +256 -0
  431. package/test/src/__snapshots__/sync.test.ts.snap +247 -0
  432. package/test/src/auth.test.ts +342 -0
  433. package/test/src/broadcast_iterable.test.ts +156 -0
  434. package/test/src/checksum_cache.test.ts +436 -0
  435. package/test/src/data_storage.test.ts +1176 -0
  436. package/test/src/env.ts +8 -0
  437. package/test/src/large_batch.test.ts +194 -0
  438. package/test/src/merge_iterable.test.ts +355 -0
  439. package/test/src/pg_test.test.ts +450 -0
  440. package/test/src/schema_changes.test.ts +545 -0
  441. package/test/src/setup.ts +7 -0
  442. package/test/src/slow_tests.test.ts +257 -0
  443. package/test/src/sql_functions.test.ts +254 -0
  444. package/test/src/sql_operators.test.ts +132 -0
  445. package/test/src/sync.test.ts +293 -0
  446. package/test/src/sync_rules.test.ts +1053 -0
  447. package/test/src/util.ts +76 -0
  448. package/test/src/validation.test.ts +63 -0
  449. package/test/src/wal_stream.test.ts +319 -0
  450. package/test/src/wal_stream_utils.ts +147 -0
  451. package/test/tsconfig.json +20 -0
  452. package/tsconfig.json +31 -0
  453. package/tsconfig.tsbuildinfo +1 -0
  454. package/vitest.config.ts +9 -0
@@ -0,0 +1,1011 @@
1
+ import { router, schema } from '@powersync/lib-services-framework';
2
+ export declare const executeSql: router.Endpoint<{
3
+ sql: {
4
+ query: string;
5
+ args: (string | number | boolean)[];
6
+ };
7
+ connection_id?: string | undefined;
8
+ }, {
9
+ results: {
10
+ columns: string[];
11
+ rows: (string | number | boolean | null)[][];
12
+ };
13
+ success: boolean;
14
+ error?: string | undefined;
15
+ }, import("../router.js").Context, import("../router.js").RequestEndpointHandlerPayload<{
16
+ sql: {
17
+ query: string;
18
+ args: (string | number | boolean)[];
19
+ };
20
+ connection_id?: string | undefined;
21
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>, router.EndpointHandler<import("../router.js").RequestEndpointHandlerPayload<{
22
+ sql: {
23
+ query: string;
24
+ args: (string | number | boolean)[];
25
+ };
26
+ connection_id?: string | undefined;
27
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>, {
28
+ results: {
29
+ columns: string[];
30
+ rows: (string | number | boolean | null)[][];
31
+ };
32
+ success: boolean;
33
+ error?: string | undefined;
34
+ }>> & {
35
+ path: string;
36
+ method: router.HTTPMethod.POST;
37
+ authorize: (payload: import("../router.js").RequestEndpointHandlerPayload) => {
38
+ authorized: boolean;
39
+ errors: string[];
40
+ } | {
41
+ authorized: boolean;
42
+ errors?: undefined;
43
+ };
44
+ validator: schema.MicroValidator<{
45
+ sql: {
46
+ query: string;
47
+ args: (string | number | boolean)[];
48
+ };
49
+ connection_id?: string | undefined;
50
+ }, string[]>;
51
+ handler: (payload: import("../router.js").RequestEndpointHandlerPayload<{
52
+ sql: {
53
+ query: string;
54
+ args: (string | number | boolean)[];
55
+ };
56
+ connection_id?: string | undefined;
57
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>) => Promise<{
58
+ results: {
59
+ columns: string[];
60
+ rows: (string | number | boolean | null)[][];
61
+ };
62
+ success: boolean;
63
+ error?: string | undefined;
64
+ }>;
65
+ };
66
+ export declare const diagnostics: router.Endpoint<{
67
+ sync_rules_content?: boolean | undefined;
68
+ }, {
69
+ connections: {
70
+ errors: {
71
+ message: string;
72
+ level: "warning" | "fatal";
73
+ }[];
74
+ id: string;
75
+ postgres_uri: string;
76
+ connected: boolean;
77
+ }[];
78
+ active_sync_rules?: {
79
+ errors: {
80
+ level: "warning" | "fatal";
81
+ message: string;
82
+ }[];
83
+ connections: {
84
+ id: string;
85
+ tag: string;
86
+ slot_name: string;
87
+ initial_replication_done: boolean;
88
+ tables: {
89
+ schema: string;
90
+ name: string;
91
+ replication_id: string[];
92
+ data_queries: boolean;
93
+ parameter_queries: boolean;
94
+ errors: {
95
+ level: "warning" | "fatal";
96
+ message: string;
97
+ }[];
98
+ pattern?: string | undefined;
99
+ }[];
100
+ last_lsn?: string | undefined;
101
+ last_keepalive_ts?: string | undefined;
102
+ last_checkpoint_ts?: string | undefined;
103
+ replication_lag_bytes?: number | undefined;
104
+ }[];
105
+ content?: string | undefined;
106
+ } | undefined;
107
+ deploying_sync_rules?: {
108
+ errors: {
109
+ level: "warning" | "fatal";
110
+ message: string;
111
+ }[];
112
+ connections: {
113
+ id: string;
114
+ tag: string;
115
+ slot_name: string;
116
+ initial_replication_done: boolean;
117
+ tables: {
118
+ schema: string;
119
+ name: string;
120
+ replication_id: string[];
121
+ data_queries: boolean;
122
+ parameter_queries: boolean;
123
+ errors: {
124
+ level: "warning" | "fatal";
125
+ message: string;
126
+ }[];
127
+ pattern?: string | undefined;
128
+ }[];
129
+ last_lsn?: string | undefined;
130
+ last_keepalive_ts?: string | undefined;
131
+ last_checkpoint_ts?: string | undefined;
132
+ replication_lag_bytes?: number | undefined;
133
+ }[];
134
+ content?: string | undefined;
135
+ } | undefined;
136
+ }, import("../router.js").Context, import("../router.js").RequestEndpointHandlerPayload<{
137
+ sync_rules_content?: boolean | undefined;
138
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>, router.EndpointHandler<import("../router.js").RequestEndpointHandlerPayload<{
139
+ sync_rules_content?: boolean | undefined;
140
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>, {
141
+ connections: {
142
+ errors: {
143
+ message: string;
144
+ level: "warning" | "fatal";
145
+ }[];
146
+ id: string;
147
+ postgres_uri: string;
148
+ connected: boolean;
149
+ }[];
150
+ active_sync_rules?: {
151
+ errors: {
152
+ level: "warning" | "fatal";
153
+ message: string;
154
+ }[];
155
+ connections: {
156
+ id: string;
157
+ tag: string;
158
+ slot_name: string;
159
+ initial_replication_done: boolean;
160
+ tables: {
161
+ schema: string;
162
+ name: string;
163
+ replication_id: string[];
164
+ data_queries: boolean;
165
+ parameter_queries: boolean;
166
+ errors: {
167
+ level: "warning" | "fatal";
168
+ message: string;
169
+ }[];
170
+ pattern?: string | undefined;
171
+ }[];
172
+ last_lsn?: string | undefined;
173
+ last_keepalive_ts?: string | undefined;
174
+ last_checkpoint_ts?: string | undefined;
175
+ replication_lag_bytes?: number | undefined;
176
+ }[];
177
+ content?: string | undefined;
178
+ } | undefined;
179
+ deploying_sync_rules?: {
180
+ errors: {
181
+ level: "warning" | "fatal";
182
+ message: string;
183
+ }[];
184
+ connections: {
185
+ id: string;
186
+ tag: string;
187
+ slot_name: string;
188
+ initial_replication_done: boolean;
189
+ tables: {
190
+ schema: string;
191
+ name: string;
192
+ replication_id: string[];
193
+ data_queries: boolean;
194
+ parameter_queries: boolean;
195
+ errors: {
196
+ level: "warning" | "fatal";
197
+ message: string;
198
+ }[];
199
+ pattern?: string | undefined;
200
+ }[];
201
+ last_lsn?: string | undefined;
202
+ last_keepalive_ts?: string | undefined;
203
+ last_checkpoint_ts?: string | undefined;
204
+ replication_lag_bytes?: number | undefined;
205
+ }[];
206
+ content?: string | undefined;
207
+ } | undefined;
208
+ }>> & {
209
+ path: string;
210
+ method: router.HTTPMethod.POST;
211
+ authorize: (payload: import("../router.js").RequestEndpointHandlerPayload) => {
212
+ authorized: boolean;
213
+ errors: string[];
214
+ } | {
215
+ authorized: boolean;
216
+ errors?: undefined;
217
+ };
218
+ validator: schema.MicroValidator<{
219
+ sync_rules_content?: boolean | undefined;
220
+ }, string[]>;
221
+ handler: (payload: import("../router.js").RequestEndpointHandlerPayload<{
222
+ sync_rules_content?: boolean | undefined;
223
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>) => Promise<{
224
+ connections: {
225
+ errors: {
226
+ message: string;
227
+ level: "warning" | "fatal";
228
+ }[];
229
+ id: string;
230
+ postgres_uri: string;
231
+ connected: boolean;
232
+ }[];
233
+ active_sync_rules?: {
234
+ errors: {
235
+ level: "warning" | "fatal";
236
+ message: string;
237
+ }[];
238
+ connections: {
239
+ id: string;
240
+ tag: string;
241
+ slot_name: string;
242
+ initial_replication_done: boolean;
243
+ tables: {
244
+ schema: string;
245
+ name: string;
246
+ replication_id: string[];
247
+ data_queries: boolean;
248
+ parameter_queries: boolean;
249
+ errors: {
250
+ level: "warning" | "fatal";
251
+ message: string;
252
+ }[];
253
+ pattern?: string | undefined;
254
+ }[];
255
+ last_lsn?: string | undefined;
256
+ last_keepalive_ts?: string | undefined;
257
+ last_checkpoint_ts?: string | undefined;
258
+ replication_lag_bytes?: number | undefined;
259
+ }[];
260
+ content?: string | undefined;
261
+ } | undefined;
262
+ deploying_sync_rules?: {
263
+ errors: {
264
+ level: "warning" | "fatal";
265
+ message: string;
266
+ }[];
267
+ connections: {
268
+ id: string;
269
+ tag: string;
270
+ slot_name: string;
271
+ initial_replication_done: boolean;
272
+ tables: {
273
+ schema: string;
274
+ name: string;
275
+ replication_id: string[];
276
+ data_queries: boolean;
277
+ parameter_queries: boolean;
278
+ errors: {
279
+ level: "warning" | "fatal";
280
+ message: string;
281
+ }[];
282
+ pattern?: string | undefined;
283
+ }[];
284
+ last_lsn?: string | undefined;
285
+ last_keepalive_ts?: string | undefined;
286
+ last_checkpoint_ts?: string | undefined;
287
+ replication_lag_bytes?: number | undefined;
288
+ }[];
289
+ content?: string | undefined;
290
+ } | undefined;
291
+ }>;
292
+ };
293
+ export declare const getSchema: router.Endpoint<{}, {
294
+ connections: {
295
+ tag: string;
296
+ schemas: {
297
+ name: string;
298
+ tables: {
299
+ name: string;
300
+ columns: {
301
+ type: string;
302
+ name: string;
303
+ pg_type: string;
304
+ }[];
305
+ }[];
306
+ }[];
307
+ id?: string | undefined;
308
+ }[];
309
+ }, import("../router.js").Context, import("../router.js").RequestEndpointHandlerPayload<{}, import("../router.js").Context, import("../router.js").BasicRouterRequest>, router.EndpointHandler<import("../router.js").RequestEndpointHandlerPayload<{}, import("../router.js").Context, import("../router.js").BasicRouterRequest>, {
310
+ connections: {
311
+ tag: string;
312
+ schemas: {
313
+ name: string;
314
+ tables: {
315
+ name: string;
316
+ columns: {
317
+ type: string;
318
+ name: string;
319
+ pg_type: string;
320
+ }[];
321
+ }[];
322
+ }[];
323
+ id?: string | undefined;
324
+ }[];
325
+ }>> & {
326
+ path: string;
327
+ method: router.HTTPMethod.POST;
328
+ authorize: (payload: import("../router.js").RequestEndpointHandlerPayload) => {
329
+ authorized: boolean;
330
+ errors: string[];
331
+ } | {
332
+ authorized: boolean;
333
+ errors?: undefined;
334
+ };
335
+ validator: schema.MicroValidator<{}, string[]>;
336
+ handler: (payload: import("../router.js").RequestEndpointHandlerPayload<{}, import("../router.js").Context, import("../router.js").BasicRouterRequest>) => Promise<{
337
+ connections: {
338
+ tag: string;
339
+ schemas: {
340
+ name: string;
341
+ tables: {
342
+ name: string;
343
+ columns: {
344
+ type: string;
345
+ name: string;
346
+ pg_type: string;
347
+ }[];
348
+ }[];
349
+ }[];
350
+ id?: string | undefined;
351
+ }[];
352
+ }>;
353
+ };
354
+ export declare const reprocess: router.Endpoint<{}, {
355
+ connections: {
356
+ tag: string;
357
+ slot_name: string;
358
+ id?: string | undefined;
359
+ }[];
360
+ }, import("../router.js").Context, import("../router.js").RequestEndpointHandlerPayload<{}, import("../router.js").Context, import("../router.js").BasicRouterRequest>, router.EndpointHandler<import("../router.js").RequestEndpointHandlerPayload<{}, import("../router.js").Context, import("../router.js").BasicRouterRequest>, {
361
+ connections: {
362
+ tag: string;
363
+ slot_name: string;
364
+ id?: string | undefined;
365
+ }[];
366
+ }>> & {
367
+ path: string;
368
+ method: router.HTTPMethod.POST;
369
+ authorize: (payload: import("../router.js").RequestEndpointHandlerPayload) => {
370
+ authorized: boolean;
371
+ errors: string[];
372
+ } | {
373
+ authorized: boolean;
374
+ errors?: undefined;
375
+ };
376
+ validator: schema.MicroValidator<{}, string[]>;
377
+ handler: (payload: import("../router.js").RequestEndpointHandlerPayload<{}, import("../router.js").Context, import("../router.js").BasicRouterRequest>) => Promise<{
378
+ connections: {
379
+ tag: string;
380
+ slot_name: string;
381
+ id?: string | undefined;
382
+ }[];
383
+ }>;
384
+ };
385
+ export declare const validate: router.Endpoint<{
386
+ sync_rules: string;
387
+ }, {
388
+ errors: {
389
+ message: string;
390
+ level: "warning" | "fatal";
391
+ }[];
392
+ connections: {
393
+ id: string;
394
+ tag: string;
395
+ slot_name: string;
396
+ initial_replication_done: boolean;
397
+ tables: {
398
+ errors: {
399
+ message: string;
400
+ level: "warning" | "fatal";
401
+ }[];
402
+ name: string;
403
+ schema: string;
404
+ replication_id: string[];
405
+ data_queries: boolean;
406
+ parameter_queries: boolean;
407
+ pattern?: string | undefined;
408
+ }[];
409
+ last_checkpoint_ts?: string | undefined;
410
+ last_keepalive_ts?: string | undefined;
411
+ last_lsn?: string | undefined;
412
+ replication_lag_bytes?: number | undefined;
413
+ }[];
414
+ content?: string | undefined;
415
+ }, import("../router.js").Context, import("../router.js").RequestEndpointHandlerPayload<{
416
+ sync_rules: string;
417
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>, router.EndpointHandler<import("../router.js").RequestEndpointHandlerPayload<{
418
+ sync_rules: string;
419
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>, {
420
+ errors: {
421
+ message: string;
422
+ level: "warning" | "fatal";
423
+ }[];
424
+ connections: {
425
+ id: string;
426
+ tag: string;
427
+ slot_name: string;
428
+ initial_replication_done: boolean;
429
+ tables: {
430
+ errors: {
431
+ message: string;
432
+ level: "warning" | "fatal";
433
+ }[];
434
+ name: string;
435
+ schema: string;
436
+ replication_id: string[];
437
+ data_queries: boolean;
438
+ parameter_queries: boolean;
439
+ pattern?: string | undefined;
440
+ }[];
441
+ last_checkpoint_ts?: string | undefined;
442
+ last_keepalive_ts?: string | undefined;
443
+ last_lsn?: string | undefined;
444
+ replication_lag_bytes?: number | undefined;
445
+ }[];
446
+ content?: string | undefined;
447
+ }>> & {
448
+ path: string;
449
+ method: router.HTTPMethod.POST;
450
+ authorize: (payload: import("../router.js").RequestEndpointHandlerPayload) => {
451
+ authorized: boolean;
452
+ errors: string[];
453
+ } | {
454
+ authorized: boolean;
455
+ errors?: undefined;
456
+ };
457
+ validator: schema.MicroValidator<{
458
+ sync_rules: string;
459
+ }, string[]>;
460
+ handler: (payload: import("../router.js").RequestEndpointHandlerPayload<{
461
+ sync_rules: string;
462
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>) => Promise<{
463
+ errors: {
464
+ message: string;
465
+ level: "warning" | "fatal";
466
+ }[];
467
+ connections: {
468
+ id: string;
469
+ tag: string;
470
+ slot_name: string;
471
+ initial_replication_done: boolean;
472
+ tables: {
473
+ errors: {
474
+ message: string;
475
+ level: "warning" | "fatal";
476
+ }[];
477
+ name: string;
478
+ schema: string;
479
+ replication_id: string[];
480
+ data_queries: boolean;
481
+ parameter_queries: boolean;
482
+ pattern?: string | undefined;
483
+ }[];
484
+ last_checkpoint_ts?: string | undefined;
485
+ last_keepalive_ts?: string | undefined;
486
+ last_lsn?: string | undefined;
487
+ replication_lag_bytes?: number | undefined;
488
+ }[];
489
+ content?: string | undefined;
490
+ }>;
491
+ };
492
+ export declare const ADMIN_ROUTES: ((router.Endpoint<{
493
+ connection_id?: string | undefined;
494
+ }, {
495
+ credentials?: {
496
+ postgres_uri: string;
497
+ } | undefined;
498
+ }, import("../router.js").Context, import("../router.js").RequestEndpointHandlerPayload<{
499
+ connection_id?: string | undefined;
500
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>, router.EndpointHandler<import("../router.js").RequestEndpointHandlerPayload<{
501
+ connection_id?: string | undefined;
502
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>, {
503
+ credentials?: {
504
+ postgres_uri: string;
505
+ } | undefined;
506
+ }>> & {
507
+ path: string;
508
+ method: router.HTTPMethod.POST;
509
+ authorize: (payload: import("../router.js").RequestEndpointHandlerPayload) => {
510
+ authorized: boolean;
511
+ errors: string[];
512
+ } | {
513
+ authorized: boolean;
514
+ errors?: undefined;
515
+ };
516
+ validator: schema.MicroValidator<{
517
+ connection_id?: string | undefined;
518
+ }, string[]>;
519
+ handler: (payload: import("../router.js").RequestEndpointHandlerPayload<{
520
+ connection_id?: string | undefined;
521
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>) => Promise<{
522
+ credentials?: {
523
+ postgres_uri: string;
524
+ } | undefined;
525
+ }>;
526
+ }) | (router.Endpoint<{
527
+ sql: {
528
+ query: string;
529
+ args: (string | number | boolean)[];
530
+ };
531
+ connection_id?: string | undefined;
532
+ }, {
533
+ results: {
534
+ columns: string[];
535
+ rows: (string | number | boolean | null)[][];
536
+ };
537
+ success: boolean;
538
+ error?: string | undefined;
539
+ }, import("../router.js").Context, import("../router.js").RequestEndpointHandlerPayload<{
540
+ sql: {
541
+ query: string;
542
+ args: (string | number | boolean)[];
543
+ };
544
+ connection_id?: string | undefined;
545
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>, router.EndpointHandler<import("../router.js").RequestEndpointHandlerPayload<{
546
+ sql: {
547
+ query: string;
548
+ args: (string | number | boolean)[];
549
+ };
550
+ connection_id?: string | undefined;
551
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>, {
552
+ results: {
553
+ columns: string[];
554
+ rows: (string | number | boolean | null)[][];
555
+ };
556
+ success: boolean;
557
+ error?: string | undefined;
558
+ }>> & {
559
+ path: string;
560
+ method: router.HTTPMethod.POST;
561
+ authorize: (payload: import("../router.js").RequestEndpointHandlerPayload) => {
562
+ authorized: boolean;
563
+ errors: string[];
564
+ } | {
565
+ authorized: boolean;
566
+ errors?: undefined;
567
+ };
568
+ validator: schema.MicroValidator<{
569
+ sql: {
570
+ query: string;
571
+ args: (string | number | boolean)[];
572
+ };
573
+ connection_id?: string | undefined;
574
+ }, string[]>;
575
+ handler: (payload: import("../router.js").RequestEndpointHandlerPayload<{
576
+ sql: {
577
+ query: string;
578
+ args: (string | number | boolean)[];
579
+ };
580
+ connection_id?: string | undefined;
581
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>) => Promise<{
582
+ results: {
583
+ columns: string[];
584
+ rows: (string | number | boolean | null)[][];
585
+ };
586
+ success: boolean;
587
+ error?: string | undefined;
588
+ }>;
589
+ }) | (router.Endpoint<{
590
+ sync_rules_content?: boolean | undefined;
591
+ }, {
592
+ connections: {
593
+ errors: {
594
+ message: string;
595
+ level: "warning" | "fatal";
596
+ }[];
597
+ id: string;
598
+ postgres_uri: string;
599
+ connected: boolean;
600
+ }[];
601
+ active_sync_rules?: {
602
+ errors: {
603
+ level: "warning" | "fatal";
604
+ message: string;
605
+ }[];
606
+ connections: {
607
+ id: string;
608
+ tag: string;
609
+ slot_name: string;
610
+ initial_replication_done: boolean;
611
+ tables: {
612
+ schema: string;
613
+ name: string;
614
+ replication_id: string[];
615
+ data_queries: boolean;
616
+ parameter_queries: boolean;
617
+ errors: {
618
+ level: "warning" | "fatal";
619
+ message: string;
620
+ }[];
621
+ pattern?: string | undefined;
622
+ }[];
623
+ last_lsn?: string | undefined;
624
+ last_keepalive_ts?: string | undefined;
625
+ last_checkpoint_ts?: string | undefined;
626
+ replication_lag_bytes?: number | undefined;
627
+ }[];
628
+ content?: string | undefined;
629
+ } | undefined;
630
+ deploying_sync_rules?: {
631
+ errors: {
632
+ level: "warning" | "fatal";
633
+ message: string;
634
+ }[];
635
+ connections: {
636
+ id: string;
637
+ tag: string;
638
+ slot_name: string;
639
+ initial_replication_done: boolean;
640
+ tables: {
641
+ schema: string;
642
+ name: string;
643
+ replication_id: string[];
644
+ data_queries: boolean;
645
+ parameter_queries: boolean;
646
+ errors: {
647
+ level: "warning" | "fatal";
648
+ message: string;
649
+ }[];
650
+ pattern?: string | undefined;
651
+ }[];
652
+ last_lsn?: string | undefined;
653
+ last_keepalive_ts?: string | undefined;
654
+ last_checkpoint_ts?: string | undefined;
655
+ replication_lag_bytes?: number | undefined;
656
+ }[];
657
+ content?: string | undefined;
658
+ } | undefined;
659
+ }, import("../router.js").Context, import("../router.js").RequestEndpointHandlerPayload<{
660
+ sync_rules_content?: boolean | undefined;
661
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>, router.EndpointHandler<import("../router.js").RequestEndpointHandlerPayload<{
662
+ sync_rules_content?: boolean | undefined;
663
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>, {
664
+ connections: {
665
+ errors: {
666
+ message: string;
667
+ level: "warning" | "fatal";
668
+ }[];
669
+ id: string;
670
+ postgres_uri: string;
671
+ connected: boolean;
672
+ }[];
673
+ active_sync_rules?: {
674
+ errors: {
675
+ level: "warning" | "fatal";
676
+ message: string;
677
+ }[];
678
+ connections: {
679
+ id: string;
680
+ tag: string;
681
+ slot_name: string;
682
+ initial_replication_done: boolean;
683
+ tables: {
684
+ schema: string;
685
+ name: string;
686
+ replication_id: string[];
687
+ data_queries: boolean;
688
+ parameter_queries: boolean;
689
+ errors: {
690
+ level: "warning" | "fatal";
691
+ message: string;
692
+ }[];
693
+ pattern?: string | undefined;
694
+ }[];
695
+ last_lsn?: string | undefined;
696
+ last_keepalive_ts?: string | undefined;
697
+ last_checkpoint_ts?: string | undefined;
698
+ replication_lag_bytes?: number | undefined;
699
+ }[];
700
+ content?: string | undefined;
701
+ } | undefined;
702
+ deploying_sync_rules?: {
703
+ errors: {
704
+ level: "warning" | "fatal";
705
+ message: string;
706
+ }[];
707
+ connections: {
708
+ id: string;
709
+ tag: string;
710
+ slot_name: string;
711
+ initial_replication_done: boolean;
712
+ tables: {
713
+ schema: string;
714
+ name: string;
715
+ replication_id: string[];
716
+ data_queries: boolean;
717
+ parameter_queries: boolean;
718
+ errors: {
719
+ level: "warning" | "fatal";
720
+ message: string;
721
+ }[];
722
+ pattern?: string | undefined;
723
+ }[];
724
+ last_lsn?: string | undefined;
725
+ last_keepalive_ts?: string | undefined;
726
+ last_checkpoint_ts?: string | undefined;
727
+ replication_lag_bytes?: number | undefined;
728
+ }[];
729
+ content?: string | undefined;
730
+ } | undefined;
731
+ }>> & {
732
+ path: string;
733
+ method: router.HTTPMethod.POST;
734
+ authorize: (payload: import("../router.js").RequestEndpointHandlerPayload) => {
735
+ authorized: boolean;
736
+ errors: string[];
737
+ } | {
738
+ authorized: boolean;
739
+ errors?: undefined;
740
+ };
741
+ validator: schema.MicroValidator<{
742
+ sync_rules_content?: boolean | undefined;
743
+ }, string[]>;
744
+ handler: (payload: import("../router.js").RequestEndpointHandlerPayload<{
745
+ sync_rules_content?: boolean | undefined;
746
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>) => Promise<{
747
+ connections: {
748
+ errors: {
749
+ message: string;
750
+ level: "warning" | "fatal";
751
+ }[];
752
+ id: string;
753
+ postgres_uri: string;
754
+ connected: boolean;
755
+ }[];
756
+ active_sync_rules?: {
757
+ errors: {
758
+ level: "warning" | "fatal";
759
+ message: string;
760
+ }[];
761
+ connections: {
762
+ id: string;
763
+ tag: string;
764
+ slot_name: string;
765
+ initial_replication_done: boolean;
766
+ tables: {
767
+ schema: string;
768
+ name: string;
769
+ replication_id: string[];
770
+ data_queries: boolean;
771
+ parameter_queries: boolean;
772
+ errors: {
773
+ level: "warning" | "fatal";
774
+ message: string;
775
+ }[];
776
+ pattern?: string | undefined;
777
+ }[];
778
+ last_lsn?: string | undefined;
779
+ last_keepalive_ts?: string | undefined;
780
+ last_checkpoint_ts?: string | undefined;
781
+ replication_lag_bytes?: number | undefined;
782
+ }[];
783
+ content?: string | undefined;
784
+ } | undefined;
785
+ deploying_sync_rules?: {
786
+ errors: {
787
+ level: "warning" | "fatal";
788
+ message: string;
789
+ }[];
790
+ connections: {
791
+ id: string;
792
+ tag: string;
793
+ slot_name: string;
794
+ initial_replication_done: boolean;
795
+ tables: {
796
+ schema: string;
797
+ name: string;
798
+ replication_id: string[];
799
+ data_queries: boolean;
800
+ parameter_queries: boolean;
801
+ errors: {
802
+ level: "warning" | "fatal";
803
+ message: string;
804
+ }[];
805
+ pattern?: string | undefined;
806
+ }[];
807
+ last_lsn?: string | undefined;
808
+ last_keepalive_ts?: string | undefined;
809
+ last_checkpoint_ts?: string | undefined;
810
+ replication_lag_bytes?: number | undefined;
811
+ }[];
812
+ content?: string | undefined;
813
+ } | undefined;
814
+ }>;
815
+ }) | (router.Endpoint<{}, {
816
+ connections: {
817
+ tag: string;
818
+ schemas: {
819
+ name: string;
820
+ tables: {
821
+ name: string;
822
+ columns: {
823
+ type: string;
824
+ name: string;
825
+ pg_type: string;
826
+ }[];
827
+ }[];
828
+ }[];
829
+ id?: string | undefined;
830
+ }[];
831
+ }, import("../router.js").Context, import("../router.js").RequestEndpointHandlerPayload<{}, import("../router.js").Context, import("../router.js").BasicRouterRequest>, router.EndpointHandler<import("../router.js").RequestEndpointHandlerPayload<{}, import("../router.js").Context, import("../router.js").BasicRouterRequest>, {
832
+ connections: {
833
+ tag: string;
834
+ schemas: {
835
+ name: string;
836
+ tables: {
837
+ name: string;
838
+ columns: {
839
+ type: string;
840
+ name: string;
841
+ pg_type: string;
842
+ }[];
843
+ }[];
844
+ }[];
845
+ id?: string | undefined;
846
+ }[];
847
+ }>> & {
848
+ path: string;
849
+ method: router.HTTPMethod.POST;
850
+ authorize: (payload: import("../router.js").RequestEndpointHandlerPayload) => {
851
+ authorized: boolean;
852
+ errors: string[];
853
+ } | {
854
+ authorized: boolean;
855
+ errors?: undefined;
856
+ };
857
+ validator: schema.MicroValidator<{}, string[]>;
858
+ handler: (payload: import("../router.js").RequestEndpointHandlerPayload<{}, import("../router.js").Context, import("../router.js").BasicRouterRequest>) => Promise<{
859
+ connections: {
860
+ tag: string;
861
+ schemas: {
862
+ name: string;
863
+ tables: {
864
+ name: string;
865
+ columns: {
866
+ type: string;
867
+ name: string;
868
+ pg_type: string;
869
+ }[];
870
+ }[];
871
+ }[];
872
+ id?: string | undefined;
873
+ }[];
874
+ }>;
875
+ }) | (router.Endpoint<{}, {
876
+ connections: {
877
+ tag: string;
878
+ slot_name: string;
879
+ id?: string | undefined;
880
+ }[];
881
+ }, import("../router.js").Context, import("../router.js").RequestEndpointHandlerPayload<{}, import("../router.js").Context, import("../router.js").BasicRouterRequest>, router.EndpointHandler<import("../router.js").RequestEndpointHandlerPayload<{}, import("../router.js").Context, import("../router.js").BasicRouterRequest>, {
882
+ connections: {
883
+ tag: string;
884
+ slot_name: string;
885
+ id?: string | undefined;
886
+ }[];
887
+ }>> & {
888
+ path: string;
889
+ method: router.HTTPMethod.POST;
890
+ authorize: (payload: import("../router.js").RequestEndpointHandlerPayload) => {
891
+ authorized: boolean;
892
+ errors: string[];
893
+ } | {
894
+ authorized: boolean;
895
+ errors?: undefined;
896
+ };
897
+ validator: schema.MicroValidator<{}, string[]>;
898
+ handler: (payload: import("../router.js").RequestEndpointHandlerPayload<{}, import("../router.js").Context, import("../router.js").BasicRouterRequest>) => Promise<{
899
+ connections: {
900
+ tag: string;
901
+ slot_name: string;
902
+ id?: string | undefined;
903
+ }[];
904
+ }>;
905
+ }) | (router.Endpoint<{
906
+ sync_rules: string;
907
+ }, {
908
+ errors: {
909
+ message: string;
910
+ level: "warning" | "fatal";
911
+ }[];
912
+ connections: {
913
+ id: string;
914
+ tag: string;
915
+ slot_name: string;
916
+ initial_replication_done: boolean;
917
+ tables: {
918
+ errors: {
919
+ message: string;
920
+ level: "warning" | "fatal";
921
+ }[];
922
+ name: string;
923
+ schema: string;
924
+ replication_id: string[];
925
+ data_queries: boolean;
926
+ parameter_queries: boolean;
927
+ pattern?: string | undefined;
928
+ }[];
929
+ last_checkpoint_ts?: string | undefined;
930
+ last_keepalive_ts?: string | undefined;
931
+ last_lsn?: string | undefined;
932
+ replication_lag_bytes?: number | undefined;
933
+ }[];
934
+ content?: string | undefined;
935
+ }, import("../router.js").Context, import("../router.js").RequestEndpointHandlerPayload<{
936
+ sync_rules: string;
937
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>, router.EndpointHandler<import("../router.js").RequestEndpointHandlerPayload<{
938
+ sync_rules: string;
939
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>, {
940
+ errors: {
941
+ message: string;
942
+ level: "warning" | "fatal";
943
+ }[];
944
+ connections: {
945
+ id: string;
946
+ tag: string;
947
+ slot_name: string;
948
+ initial_replication_done: boolean;
949
+ tables: {
950
+ errors: {
951
+ message: string;
952
+ level: "warning" | "fatal";
953
+ }[];
954
+ name: string;
955
+ schema: string;
956
+ replication_id: string[];
957
+ data_queries: boolean;
958
+ parameter_queries: boolean;
959
+ pattern?: string | undefined;
960
+ }[];
961
+ last_checkpoint_ts?: string | undefined;
962
+ last_keepalive_ts?: string | undefined;
963
+ last_lsn?: string | undefined;
964
+ replication_lag_bytes?: number | undefined;
965
+ }[];
966
+ content?: string | undefined;
967
+ }>> & {
968
+ path: string;
969
+ method: router.HTTPMethod.POST;
970
+ authorize: (payload: import("../router.js").RequestEndpointHandlerPayload) => {
971
+ authorized: boolean;
972
+ errors: string[];
973
+ } | {
974
+ authorized: boolean;
975
+ errors?: undefined;
976
+ };
977
+ validator: schema.MicroValidator<{
978
+ sync_rules: string;
979
+ }, string[]>;
980
+ handler: (payload: import("../router.js").RequestEndpointHandlerPayload<{
981
+ sync_rules: string;
982
+ }, import("../router.js").Context, import("../router.js").BasicRouterRequest>) => Promise<{
983
+ errors: {
984
+ message: string;
985
+ level: "warning" | "fatal";
986
+ }[];
987
+ connections: {
988
+ id: string;
989
+ tag: string;
990
+ slot_name: string;
991
+ initial_replication_done: boolean;
992
+ tables: {
993
+ errors: {
994
+ message: string;
995
+ level: "warning" | "fatal";
996
+ }[];
997
+ name: string;
998
+ schema: string;
999
+ replication_id: string[];
1000
+ data_queries: boolean;
1001
+ parameter_queries: boolean;
1002
+ pattern?: string | undefined;
1003
+ }[];
1004
+ last_checkpoint_ts?: string | undefined;
1005
+ last_keepalive_ts?: string | undefined;
1006
+ last_lsn?: string | undefined;
1007
+ replication_lag_bytes?: number | undefined;
1008
+ }[];
1009
+ content?: string | undefined;
1010
+ }>;
1011
+ }))[];