@verdant-web/store 2.0.1 → 2.0.2

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 (560) hide show
  1. package/dist/cjs/BackoffScheduler.d.ts +19 -19
  2. package/dist/cjs/BackoffScheduler.js +44 -44
  3. package/dist/cjs/DocumentManager.d.ts +28 -28
  4. package/dist/cjs/DocumentManager.js +44 -44
  5. package/dist/cjs/IDBService.d.ts +9 -9
  6. package/dist/cjs/IDBService.js +46 -46
  7. package/dist/cjs/UndoHistory.d.ts +16 -16
  8. package/dist/cjs/UndoHistory.js +50 -50
  9. package/dist/cjs/__tests__/batching.test.d.ts +1 -1
  10. package/dist/cjs/__tests__/batching.test.js +44 -44
  11. package/dist/cjs/__tests__/documents.test.d.ts +1 -1
  12. package/dist/cjs/__tests__/documents.test.js +398 -398
  13. package/dist/cjs/__tests__/fixtures/testStorage.d.ts +118 -118
  14. package/dist/cjs/__tests__/fixtures/testStorage.js +115 -115
  15. package/dist/cjs/__tests__/queries.test.d.ts +1 -1
  16. package/dist/cjs/__tests__/queries.test.js +262 -262
  17. package/dist/cjs/__tests__/setup/indexedDB.d.ts +1 -1
  18. package/dist/cjs/__tests__/setup/indexedDB.js +3 -3
  19. package/dist/cjs/__tests__/undo.test.d.ts +1 -1
  20. package/dist/cjs/__tests__/undo.test.js +86 -86
  21. package/dist/cjs/client/Client.d.ts +86 -86
  22. package/dist/cjs/client/Client.js +226 -226
  23. package/dist/cjs/client/ClientDescriptor.d.ts +62 -62
  24. package/dist/cjs/client/ClientDescriptor.js +108 -108
  25. package/dist/cjs/constants.d.ts +1 -1
  26. package/dist/cjs/constants.js +4 -4
  27. package/dist/cjs/context.d.ts +17 -17
  28. package/dist/cjs/context.js +2 -2
  29. package/dist/cjs/files/EntityFile.d.ts +27 -27
  30. package/dist/cjs/files/EntityFile.js +71 -71
  31. package/dist/cjs/files/FileManager.d.ts +42 -42
  32. package/dist/cjs/files/FileManager.js +145 -145
  33. package/dist/cjs/files/FileStorage.d.ts +27 -27
  34. package/dist/cjs/files/FileStorage.js +93 -93
  35. package/dist/cjs/files/utils.d.ts +8 -8
  36. package/dist/cjs/files/utils.js +55 -55
  37. package/dist/cjs/files/utils.test.d.ts +1 -1
  38. package/dist/cjs/files/utils.test.js +80 -80
  39. package/dist/cjs/idb.d.ts +8 -8
  40. package/dist/cjs/idb.js +87 -87
  41. package/dist/cjs/index.d.ts +19 -19
  42. package/dist/cjs/index.js +20 -20
  43. package/dist/cjs/indexes.d.ts +3 -3
  44. package/dist/cjs/indexes.js +19 -19
  45. package/dist/cjs/metadata/AckInfoStore.d.ts +10 -10
  46. package/dist/cjs/metadata/AckInfoStore.js +25 -25
  47. package/dist/cjs/metadata/BaselinesStore.d.ts +33 -33
  48. package/dist/cjs/metadata/BaselinesStore.js +59 -59
  49. package/dist/cjs/metadata/LocalReplicaStore.d.ts +17 -17
  50. package/dist/cjs/metadata/LocalReplicaStore.js +47 -47
  51. package/dist/cjs/metadata/MessageCreator.d.ts +19 -19
  52. package/dist/cjs/metadata/MessageCreator.js +127 -127
  53. package/dist/cjs/metadata/Metadata.d.ts +106 -106
  54. package/dist/cjs/metadata/Metadata.js +336 -336
  55. package/dist/cjs/metadata/OperationsStore.d.ts +50 -50
  56. package/dist/cjs/metadata/OperationsStore.js +145 -145
  57. package/dist/cjs/metadata/SchemaStore.d.ts +9 -9
  58. package/dist/cjs/metadata/SchemaStore.js +38 -38
  59. package/dist/cjs/metadata/openMetadataDatabase.d.ts +8 -8
  60. package/dist/cjs/metadata/openMetadataDatabase.js +105 -105
  61. package/dist/cjs/openDocumentDatabase.d.ts +12 -12
  62. package/dist/cjs/openDocumentDatabase.js +424 -424
  63. package/dist/cjs/queries2/BaseQuery.d.ts +39 -39
  64. package/dist/cjs/queries2/BaseQuery.js +98 -98
  65. package/dist/cjs/queries2/CollectionQueries.d.ts +55 -55
  66. package/dist/cjs/queries2/CollectionQueries.js +82 -82
  67. package/dist/cjs/queries2/FindAllQuery.d.ts +11 -11
  68. package/dist/cjs/queries2/FindAllQuery.js +33 -33
  69. package/dist/cjs/queries2/FindInfiniteQuery.d.ts +18 -18
  70. package/dist/cjs/queries2/FindInfiniteQuery.js +60 -60
  71. package/dist/cjs/queries2/FindOneQuery.d.ts +11 -11
  72. package/dist/cjs/queries2/FindOneQuery.js +33 -33
  73. package/dist/cjs/queries2/FindPageQuery.d.ts +23 -23
  74. package/dist/cjs/queries2/FindPageQuery.js +67 -67
  75. package/dist/cjs/queries2/GetQuery.d.ts +10 -10
  76. package/dist/cjs/queries2/GetQuery.js +29 -29
  77. package/dist/cjs/queries2/QueryCache.d.ts +16 -16
  78. package/dist/cjs/queries2/QueryCache.js +39 -39
  79. package/dist/cjs/queries2/dbQueries.d.ts +22 -22
  80. package/dist/cjs/queries2/dbQueries.js +125 -125
  81. package/dist/cjs/queries2/keys.d.ts +10 -10
  82. package/dist/cjs/queries2/keys.js +33 -33
  83. package/dist/cjs/queries2/ranges.d.ts +2 -2
  84. package/dist/cjs/queries2/ranges.js +69 -69
  85. package/dist/cjs/queries2/types.d.ts +6 -6
  86. package/dist/cjs/queries2/types.js +2 -2
  87. package/dist/cjs/queries2/utils.d.ts +1 -1
  88. package/dist/cjs/queries2/utils.js +19 -19
  89. package/dist/cjs/reactives/DocumentFamiliyCache.d.ts +47 -47
  90. package/dist/cjs/reactives/DocumentFamiliyCache.js +210 -210
  91. package/dist/cjs/reactives/Entity.d.ts +191 -191
  92. package/dist/cjs/reactives/Entity.js +462 -462
  93. package/dist/cjs/reactives/EntityStore.d.ts +84 -84
  94. package/dist/cjs/reactives/EntityStore.js +421 -421
  95. package/dist/cjs/reactives/FakeWeakRef.d.ts +11 -11
  96. package/dist/cjs/reactives/FakeWeakRef.js +18 -18
  97. package/dist/cjs/sync/FileSync.d.ts +23 -23
  98. package/dist/cjs/sync/FileSync.js +84 -84
  99. package/dist/cjs/sync/Heartbeat.d.ts +24 -24
  100. package/dist/cjs/sync/Heartbeat.js +55 -55
  101. package/dist/cjs/sync/PresenceManager.d.ts +41 -41
  102. package/dist/cjs/sync/PresenceManager.js +107 -107
  103. package/dist/cjs/sync/PushPullSync.d.ts +36 -36
  104. package/dist/cjs/sync/PushPullSync.js +141 -141
  105. package/dist/cjs/sync/ServerSyncEndpointProvider.d.ts +27 -27
  106. package/dist/cjs/sync/ServerSyncEndpointProvider.js +64 -64
  107. package/dist/cjs/sync/Sync.d.ts +127 -127
  108. package/dist/cjs/sync/Sync.js +244 -244
  109. package/dist/cjs/sync/WebSocketSync.d.ts +41 -41
  110. package/dist/cjs/sync/WebSocketSync.js +183 -183
  111. package/dist/cjs/types.d.ts +5 -5
  112. package/dist/cjs/types.js +2 -2
  113. package/dist/cjs/utils/Disposable.d.ts +6 -6
  114. package/dist/cjs/utils/Disposable.js +18 -18
  115. package/dist/cjs/utils/Resolvable.d.ts +8 -8
  116. package/dist/cjs/utils/Resolvable.js +22 -22
  117. package/dist/esm/BackoffScheduler.d.ts +19 -19
  118. package/dist/esm/BackoffScheduler.js +39 -39
  119. package/dist/esm/DocumentManager.d.ts +28 -28
  120. package/dist/esm/DocumentManager.js +40 -40
  121. package/dist/esm/IDBService.d.ts +9 -9
  122. package/dist/esm/IDBService.js +42 -42
  123. package/dist/esm/UndoHistory.d.ts +16 -16
  124. package/dist/esm/UndoHistory.js +46 -46
  125. package/dist/esm/__tests__/batching.test.d.ts +1 -1
  126. package/dist/esm/__tests__/batching.test.js +42 -42
  127. package/dist/esm/__tests__/documents.test.d.ts +1 -1
  128. package/dist/esm/__tests__/documents.test.js +396 -396
  129. package/dist/esm/__tests__/fixtures/testStorage.d.ts +118 -118
  130. package/dist/esm/__tests__/fixtures/testStorage.js +111 -111
  131. package/dist/esm/__tests__/queries.test.d.ts +1 -1
  132. package/dist/esm/__tests__/queries.test.js +260 -260
  133. package/dist/esm/__tests__/setup/indexedDB.d.ts +1 -1
  134. package/dist/esm/__tests__/setup/indexedDB.js +1 -1
  135. package/dist/esm/__tests__/undo.test.d.ts +1 -1
  136. package/dist/esm/__tests__/undo.test.js +84 -84
  137. package/dist/esm/client/Client.d.ts +86 -86
  138. package/dist/esm/client/Client.js +222 -222
  139. package/dist/esm/client/ClientDescriptor.d.ts +62 -62
  140. package/dist/esm/client/ClientDescriptor.js +104 -104
  141. package/dist/esm/constants.d.ts +1 -1
  142. package/dist/esm/constants.js +1 -1
  143. package/dist/esm/context.d.ts +17 -17
  144. package/dist/esm/context.js +1 -1
  145. package/dist/esm/files/EntityFile.d.ts +27 -27
  146. package/dist/esm/files/EntityFile.js +67 -67
  147. package/dist/esm/files/FileManager.d.ts +42 -42
  148. package/dist/esm/files/FileManager.js +141 -141
  149. package/dist/esm/files/FileStorage.d.ts +27 -27
  150. package/dist/esm/files/FileStorage.js +88 -88
  151. package/dist/esm/files/utils.d.ts +8 -8
  152. package/dist/esm/files/utils.js +46 -46
  153. package/dist/esm/files/utils.test.d.ts +1 -1
  154. package/dist/esm/files/utils.test.js +78 -78
  155. package/dist/esm/idb.d.ts +8 -8
  156. package/dist/esm/idb.js +79 -79
  157. package/dist/esm/index.d.ts +19 -19
  158. package/dist/esm/index.js +11 -11
  159. package/dist/esm/indexes.d.ts +3 -3
  160. package/dist/esm/indexes.js +14 -14
  161. package/dist/esm/metadata/AckInfoStore.d.ts +10 -10
  162. package/dist/esm/metadata/AckInfoStore.js +21 -21
  163. package/dist/esm/metadata/BaselinesStore.d.ts +33 -33
  164. package/dist/esm/metadata/BaselinesStore.js +55 -55
  165. package/dist/esm/metadata/LocalReplicaStore.d.ts +17 -17
  166. package/dist/esm/metadata/LocalReplicaStore.js +40 -40
  167. package/dist/esm/metadata/MessageCreator.d.ts +19 -19
  168. package/dist/esm/metadata/MessageCreator.js +123 -123
  169. package/dist/esm/metadata/Metadata.d.ts +106 -106
  170. package/dist/esm/metadata/Metadata.js +332 -332
  171. package/dist/esm/metadata/OperationsStore.d.ts +50 -50
  172. package/dist/esm/metadata/OperationsStore.js +141 -141
  173. package/dist/esm/metadata/SchemaStore.d.ts +9 -9
  174. package/dist/esm/metadata/SchemaStore.js +34 -34
  175. package/dist/esm/metadata/openMetadataDatabase.d.ts +8 -8
  176. package/dist/esm/metadata/openMetadataDatabase.js +101 -101
  177. package/dist/esm/openDocumentDatabase.d.ts +12 -12
  178. package/dist/esm/openDocumentDatabase.js +420 -420
  179. package/dist/esm/queries2/BaseQuery.d.ts +39 -39
  180. package/dist/esm/queries2/BaseQuery.js +94 -94
  181. package/dist/esm/queries2/CollectionQueries.d.ts +55 -55
  182. package/dist/esm/queries2/CollectionQueries.js +78 -78
  183. package/dist/esm/queries2/FindAllQuery.d.ts +11 -11
  184. package/dist/esm/queries2/FindAllQuery.js +29 -29
  185. package/dist/esm/queries2/FindInfiniteQuery.d.ts +18 -18
  186. package/dist/esm/queries2/FindInfiniteQuery.js +56 -56
  187. package/dist/esm/queries2/FindOneQuery.d.ts +11 -11
  188. package/dist/esm/queries2/FindOneQuery.js +29 -29
  189. package/dist/esm/queries2/FindPageQuery.d.ts +23 -23
  190. package/dist/esm/queries2/FindPageQuery.js +63 -63
  191. package/dist/esm/queries2/GetQuery.d.ts +10 -10
  192. package/dist/esm/queries2/GetQuery.js +25 -25
  193. package/dist/esm/queries2/QueryCache.d.ts +16 -16
  194. package/dist/esm/queries2/QueryCache.js +35 -35
  195. package/dist/esm/queries2/dbQueries.d.ts +22 -22
  196. package/dist/esm/queries2/dbQueries.js +119 -119
  197. package/dist/esm/queries2/keys.d.ts +10 -10
  198. package/dist/esm/queries2/keys.js +29 -29
  199. package/dist/esm/queries2/ranges.d.ts +2 -2
  200. package/dist/esm/queries2/ranges.js +65 -65
  201. package/dist/esm/queries2/types.d.ts +6 -6
  202. package/dist/esm/queries2/types.js +1 -1
  203. package/dist/esm/queries2/utils.d.ts +1 -1
  204. package/dist/esm/queries2/utils.js +15 -15
  205. package/dist/esm/reactives/DocumentFamiliyCache.d.ts +47 -47
  206. package/dist/esm/reactives/DocumentFamiliyCache.js +206 -206
  207. package/dist/esm/reactives/Entity.d.ts +191 -191
  208. package/dist/esm/reactives/Entity.js +457 -457
  209. package/dist/esm/reactives/EntityStore.d.ts +84 -84
  210. package/dist/esm/reactives/EntityStore.js +417 -417
  211. package/dist/esm/reactives/FakeWeakRef.d.ts +11 -11
  212. package/dist/esm/reactives/FakeWeakRef.js +14 -14
  213. package/dist/esm/sync/FileSync.d.ts +23 -23
  214. package/dist/esm/sync/FileSync.js +80 -80
  215. package/dist/esm/sync/Heartbeat.d.ts +24 -24
  216. package/dist/esm/sync/Heartbeat.js +51 -51
  217. package/dist/esm/sync/PresenceManager.d.ts +41 -41
  218. package/dist/esm/sync/PresenceManager.js +103 -103
  219. package/dist/esm/sync/PushPullSync.d.ts +36 -36
  220. package/dist/esm/sync/PushPullSync.js +137 -137
  221. package/dist/esm/sync/ServerSyncEndpointProvider.d.ts +27 -27
  222. package/dist/esm/sync/ServerSyncEndpointProvider.js +57 -57
  223. package/dist/esm/sync/Sync.d.ts +127 -127
  224. package/dist/esm/sync/Sync.js +239 -239
  225. package/dist/esm/sync/{WebsocketSync.d.ts → WebSocketSync.d.ts} +41 -41
  226. package/dist/esm/sync/{WebsocketSync.js → WebSocketSync.js} +179 -179
  227. package/dist/esm/types.d.ts +5 -5
  228. package/dist/esm/types.js +1 -1
  229. package/dist/esm/utils/Disposable.d.ts +6 -6
  230. package/dist/esm/utils/Disposable.js +14 -14
  231. package/dist/esm/utils/Resolvable.d.ts +8 -8
  232. package/dist/esm/utils/Resolvable.js +18 -18
  233. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  234. package/dist/tsconfig.tsbuildinfo +1 -1
  235. package/package.json +2 -2
  236. package/dist/cjs/AckInfoStore.d.ts +0 -10
  237. package/dist/cjs/AckInfoStore.js +0 -26
  238. package/dist/cjs/AckInfoStore.js.map +0 -1
  239. package/dist/cjs/BaselinesStore.d.ts +0 -10
  240. package/dist/cjs/BaselinesStore.js +0 -36
  241. package/dist/cjs/BaselinesStore.js.map +0 -1
  242. package/dist/cjs/Entity.d.ts +0 -96
  243. package/dist/cjs/Entity.js +0 -345
  244. package/dist/cjs/Entity.js.map +0 -1
  245. package/dist/cjs/EntityStore.d.ts +0 -36
  246. package/dist/cjs/EntityStore.js +0 -172
  247. package/dist/cjs/EntityStore.js.map +0 -1
  248. package/dist/cjs/LocalHistoryStore.d.ts +0 -15
  249. package/dist/cjs/LocalHistoryStore.js +0 -53
  250. package/dist/cjs/LocalHistoryStore.js.map +0 -1
  251. package/dist/cjs/LocalReplicaStore.d.ts +0 -13
  252. package/dist/cjs/LocalReplicaStore.js +0 -49
  253. package/dist/cjs/LocalReplicaStore.js.map +0 -1
  254. package/dist/cjs/MessageCreator.d.ts +0 -19
  255. package/dist/cjs/MessageCreator.js +0 -104
  256. package/dist/cjs/MessageCreator.js.map +0 -1
  257. package/dist/cjs/Metadata.d.ts +0 -91
  258. package/dist/cjs/Metadata.js +0 -250
  259. package/dist/cjs/Metadata.js.map +0 -1
  260. package/dist/cjs/OperationsStore.d.ts +0 -38
  261. package/dist/cjs/OperationsStore.js +0 -146
  262. package/dist/cjs/OperationsStore.js.map +0 -1
  263. package/dist/cjs/PresenceManager.d.ts +0 -30
  264. package/dist/cjs/PresenceManager.js +0 -89
  265. package/dist/cjs/PresenceManager.js.map +0 -1
  266. package/dist/cjs/Query.d.ts +0 -26
  267. package/dist/cjs/Query.js +0 -86
  268. package/dist/cjs/Query.js.map +0 -1
  269. package/dist/cjs/QueryMaker.d.ts +0 -18
  270. package/dist/cjs/QueryMaker.js +0 -98
  271. package/dist/cjs/QueryMaker.js.map +0 -1
  272. package/dist/cjs/QueryStore.d.ts +0 -38
  273. package/dist/cjs/QueryStore.js +0 -146
  274. package/dist/cjs/QueryStore.js.map +0 -1
  275. package/dist/cjs/SchemaStore.d.ts +0 -9
  276. package/dist/cjs/SchemaStore.js +0 -35
  277. package/dist/cjs/SchemaStore.js.map +0 -1
  278. package/dist/cjs/Storage.d.ts +0 -147
  279. package/dist/cjs/Storage.js +0 -346
  280. package/dist/cjs/Storage.js.map +0 -1
  281. package/dist/cjs/Sync.d.ts +0 -117
  282. package/dist/cjs/Sync.js +0 -561
  283. package/dist/cjs/Sync.js.map +0 -1
  284. package/dist/cjs/SyncHarness.d.ts +0 -45
  285. package/dist/cjs/SyncHarness.js +0 -110
  286. package/dist/cjs/SyncHarness.js.map +0 -1
  287. package/dist/cjs/metadata/LocalHistoryStore.d.ts +0 -15
  288. package/dist/cjs/metadata/LocalHistoryStore.js +0 -53
  289. package/dist/cjs/metadata/LocalHistoryStore.js.map +0 -1
  290. package/dist/cjs/queries/LiveQuery.d.ts +0 -28
  291. package/dist/cjs/queries/LiveQuery.js +0 -96
  292. package/dist/cjs/queries/LiveQuery.js.map +0 -1
  293. package/dist/cjs/queries/LiveQueryMaker.d.ts +0 -15
  294. package/dist/cjs/queries/LiveQueryMaker.js +0 -42
  295. package/dist/cjs/queries/LiveQueryMaker.js.map +0 -1
  296. package/dist/cjs/queries/LiveQueryStore.d.ts +0 -33
  297. package/dist/cjs/queries/LiveQueryStore.js +0 -85
  298. package/dist/cjs/queries/LiveQueryStore.js.map +0 -1
  299. package/dist/cjs/queries/Query.d.ts +0 -18
  300. package/dist/cjs/queries/Query.js +0 -36
  301. package/dist/cjs/queries/Query.js.map +0 -1
  302. package/dist/cjs/queries/QueryMaker.d.ts +0 -14
  303. package/dist/cjs/queries/QueryMaker.js +0 -42
  304. package/dist/cjs/queries/QueryMaker.js.map +0 -1
  305. package/dist/cjs/queries/QueryStore.d.ts +0 -35
  306. package/dist/cjs/queries/QueryStore.js +0 -130
  307. package/dist/cjs/queries/QueryStore.js.map +0 -1
  308. package/dist/cjs/queries/ranges.d.ts +0 -2
  309. package/dist/cjs/queries/ranges.js +0 -70
  310. package/dist/cjs/queries/ranges.js.map +0 -1
  311. package/dist/cjs/v2/AckInfoStore.d.ts +0 -10
  312. package/dist/cjs/v2/AckInfoStore.js +0 -26
  313. package/dist/cjs/v2/AckInfoStore.js.map +0 -1
  314. package/dist/cjs/v2/BaselinesStore.d.ts +0 -10
  315. package/dist/cjs/v2/BaselinesStore.js +0 -36
  316. package/dist/cjs/v2/BaselinesStore.js.map +0 -1
  317. package/dist/cjs/v2/DocumentManager.d.ts +0 -19
  318. package/dist/cjs/v2/DocumentManager.js +0 -47
  319. package/dist/cjs/v2/DocumentManager.js.map +0 -1
  320. package/dist/cjs/v2/Entity.d.ts +0 -87
  321. package/dist/cjs/v2/Entity.js +0 -305
  322. package/dist/cjs/v2/Entity.js.map +0 -1
  323. package/dist/cjs/v2/EntityStore.d.ts +0 -37
  324. package/dist/cjs/v2/EntityStore.js +0 -165
  325. package/dist/cjs/v2/EntityStore.js.map +0 -1
  326. package/dist/cjs/v2/IDBService.d.ts +0 -7
  327. package/dist/cjs/v2/IDBService.js +0 -26
  328. package/dist/cjs/v2/IDBService.js.map +0 -1
  329. package/dist/cjs/v2/LocalHistoryStore.d.ts +0 -15
  330. package/dist/cjs/v2/LocalHistoryStore.js +0 -53
  331. package/dist/cjs/v2/LocalHistoryStore.js.map +0 -1
  332. package/dist/cjs/v2/LocalReplicaStore.d.ts +0 -14
  333. package/dist/cjs/v2/LocalReplicaStore.js +0 -49
  334. package/dist/cjs/v2/LocalReplicaStore.js.map +0 -1
  335. package/dist/cjs/v2/MessageCreator.d.ts +0 -19
  336. package/dist/cjs/v2/MessageCreator.js +0 -99
  337. package/dist/cjs/v2/MessageCreator.js.map +0 -1
  338. package/dist/cjs/v2/Metadata.d.ts +0 -90
  339. package/dist/cjs/v2/Metadata.js +0 -251
  340. package/dist/cjs/v2/Metadata.js.map +0 -1
  341. package/dist/cjs/v2/OperationsStore.d.ts +0 -38
  342. package/dist/cjs/v2/OperationsStore.js +0 -146
  343. package/dist/cjs/v2/OperationsStore.js.map +0 -1
  344. package/dist/cjs/v2/PresenceManager.d.ts +0 -24
  345. package/dist/cjs/v2/PresenceManager.js +0 -73
  346. package/dist/cjs/v2/PresenceManager.js.map +0 -1
  347. package/dist/cjs/v2/Query.d.ts +0 -24
  348. package/dist/cjs/v2/Query.js +0 -79
  349. package/dist/cjs/v2/Query.js.map +0 -1
  350. package/dist/cjs/v2/QueryMaker.d.ts +0 -16
  351. package/dist/cjs/v2/QueryMaker.js +0 -84
  352. package/dist/cjs/v2/QueryMaker.js.map +0 -1
  353. package/dist/cjs/v2/QueryStore.d.ts +0 -26
  354. package/dist/cjs/v2/QueryStore.js +0 -136
  355. package/dist/cjs/v2/QueryStore.js.map +0 -1
  356. package/dist/cjs/v2/SchemaStore.d.ts +0 -9
  357. package/dist/cjs/v2/SchemaStore.js +0 -35
  358. package/dist/cjs/v2/SchemaStore.js.map +0 -1
  359. package/dist/cjs/v2/Storage.d.ts +0 -80
  360. package/dist/cjs/v2/Storage.js +0 -154
  361. package/dist/cjs/v2/Storage.js.map +0 -1
  362. package/dist/cjs/v2/Sync.d.ts +0 -42
  363. package/dist/cjs/v2/Sync.js +0 -98
  364. package/dist/cjs/v2/Sync.js.map +0 -1
  365. package/dist/cjs/v2/SyncHarness.d.ts +0 -45
  366. package/dist/cjs/v2/SyncHarness.js +0 -110
  367. package/dist/cjs/v2/SyncHarness.js.map +0 -1
  368. package/dist/cjs/v2/__tests__/documents.test.d.ts +0 -1
  369. package/dist/cjs/v2/__tests__/documents.test.js +0 -185
  370. package/dist/cjs/v2/__tests__/documents.test.js.map +0 -1
  371. package/dist/cjs/v2/__tests__/fixtures/testStorage.d.ts +0 -189
  372. package/dist/cjs/v2/__tests__/fixtures/testStorage.js +0 -93
  373. package/dist/cjs/v2/__tests__/fixtures/testStorage.js.map +0 -1
  374. package/dist/cjs/v2/__tests__/queries.test.d.ts +0 -1
  375. package/dist/cjs/v2/__tests__/queries.test.js +0 -92
  376. package/dist/cjs/v2/__tests__/queries.test.js.map +0 -1
  377. package/dist/cjs/v2/__tests__/setup/indexedDB.d.ts +0 -1
  378. package/dist/cjs/v2/__tests__/setup/indexedDB.js +0 -4
  379. package/dist/cjs/v2/__tests__/setup/indexedDB.js.map +0 -1
  380. package/dist/cjs/v2/constants.d.ts +0 -1
  381. package/dist/cjs/v2/constants.js +0 -5
  382. package/dist/cjs/v2/constants.js.map +0 -1
  383. package/dist/cjs/v2/idb.d.ts +0 -6
  384. package/dist/cjs/v2/idb.js +0 -71
  385. package/dist/cjs/v2/idb.js.map +0 -1
  386. package/dist/cjs/v2/index.d.ts +0 -6
  387. package/dist/cjs/v2/index.js +0 -14
  388. package/dist/cjs/v2/index.js.map +0 -1
  389. package/dist/cjs/v2/indexes.d.ts +0 -3
  390. package/dist/cjs/v2/indexes.js +0 -20
  391. package/dist/cjs/v2/indexes.js.map +0 -1
  392. package/dist/cjs/v2/openDocumentDatabase.d.ts +0 -9
  393. package/dist/cjs/v2/openDocumentDatabase.js +0 -100
  394. package/dist/cjs/v2/openDocumentDatabase.js.map +0 -1
  395. package/dist/cjs/v2/types.d.ts +0 -3
  396. package/dist/cjs/v2/types.js +0 -3
  397. package/dist/cjs/v2/types.js.map +0 -1
  398. package/dist/esm/AckInfoStore.d.ts +0 -10
  399. package/dist/esm/AckInfoStore.js +0 -22
  400. package/dist/esm/AckInfoStore.js.map +0 -1
  401. package/dist/esm/BaselinesStore.d.ts +0 -10
  402. package/dist/esm/BaselinesStore.js +0 -32
  403. package/dist/esm/BaselinesStore.js.map +0 -1
  404. package/dist/esm/Entity.d.ts +0 -96
  405. package/dist/esm/Entity.js +0 -337
  406. package/dist/esm/Entity.js.map +0 -1
  407. package/dist/esm/EntityStore.d.ts +0 -36
  408. package/dist/esm/EntityStore.js +0 -168
  409. package/dist/esm/EntityStore.js.map +0 -1
  410. package/dist/esm/LocalHistoryStore.d.ts +0 -15
  411. package/dist/esm/LocalHistoryStore.js +0 -49
  412. package/dist/esm/LocalHistoryStore.js.map +0 -1
  413. package/dist/esm/LocalReplicaStore.d.ts +0 -13
  414. package/dist/esm/LocalReplicaStore.js +0 -42
  415. package/dist/esm/LocalReplicaStore.js.map +0 -1
  416. package/dist/esm/MessageCreator.d.ts +0 -19
  417. package/dist/esm/MessageCreator.js +0 -97
  418. package/dist/esm/MessageCreator.js.map +0 -1
  419. package/dist/esm/Metadata.d.ts +0 -91
  420. package/dist/esm/Metadata.js +0 -245
  421. package/dist/esm/Metadata.js.map +0 -1
  422. package/dist/esm/OperationsStore.d.ts +0 -38
  423. package/dist/esm/OperationsStore.js +0 -142
  424. package/dist/esm/OperationsStore.js.map +0 -1
  425. package/dist/esm/PresenceManager.d.ts +0 -30
  426. package/dist/esm/PresenceManager.js +0 -85
  427. package/dist/esm/PresenceManager.js.map +0 -1
  428. package/dist/esm/Query.d.ts +0 -26
  429. package/dist/esm/Query.js +0 -82
  430. package/dist/esm/Query.js.map +0 -1
  431. package/dist/esm/QueryMaker.d.ts +0 -18
  432. package/dist/esm/QueryMaker.js +0 -94
  433. package/dist/esm/QueryMaker.js.map +0 -1
  434. package/dist/esm/QueryStore.d.ts +0 -38
  435. package/dist/esm/QueryStore.js +0 -142
  436. package/dist/esm/QueryStore.js.map +0 -1
  437. package/dist/esm/SchemaStore.d.ts +0 -9
  438. package/dist/esm/SchemaStore.js +0 -31
  439. package/dist/esm/SchemaStore.js.map +0 -1
  440. package/dist/esm/Storage.d.ts +0 -147
  441. package/dist/esm/Storage.js +0 -341
  442. package/dist/esm/Storage.js.map +0 -1
  443. package/dist/esm/Sync.d.ts +0 -117
  444. package/dist/esm/Sync.js +0 -553
  445. package/dist/esm/Sync.js.map +0 -1
  446. package/dist/esm/SyncHarness.d.ts +0 -45
  447. package/dist/esm/SyncHarness.js +0 -105
  448. package/dist/esm/SyncHarness.js.map +0 -1
  449. package/dist/esm/metadata/LocalHistoryStore.d.ts +0 -15
  450. package/dist/esm/metadata/LocalHistoryStore.js +0 -49
  451. package/dist/esm/metadata/LocalHistoryStore.js.map +0 -1
  452. package/dist/esm/queries/LiveQuery.d.ts +0 -28
  453. package/dist/esm/queries/LiveQuery.js +0 -92
  454. package/dist/esm/queries/LiveQuery.js.map +0 -1
  455. package/dist/esm/queries/LiveQueryMaker.d.ts +0 -15
  456. package/dist/esm/queries/LiveQueryMaker.js +0 -38
  457. package/dist/esm/queries/LiveQueryMaker.js.map +0 -1
  458. package/dist/esm/queries/LiveQueryStore.d.ts +0 -33
  459. package/dist/esm/queries/LiveQueryStore.js +0 -81
  460. package/dist/esm/queries/LiveQueryStore.js.map +0 -1
  461. package/dist/esm/queries/Query.d.ts +0 -18
  462. package/dist/esm/queries/Query.js +0 -32
  463. package/dist/esm/queries/Query.js.map +0 -1
  464. package/dist/esm/queries/QueryMaker.d.ts +0 -14
  465. package/dist/esm/queries/QueryMaker.js +0 -38
  466. package/dist/esm/queries/QueryMaker.js.map +0 -1
  467. package/dist/esm/queries/QueryStore.d.ts +0 -35
  468. package/dist/esm/queries/QueryStore.js +0 -126
  469. package/dist/esm/queries/QueryStore.js.map +0 -1
  470. package/dist/esm/queries/ranges.d.ts +0 -2
  471. package/dist/esm/queries/ranges.js +0 -66
  472. package/dist/esm/queries/ranges.js.map +0 -1
  473. package/dist/esm/v2/AckInfoStore.d.ts +0 -10
  474. package/dist/esm/v2/AckInfoStore.js +0 -22
  475. package/dist/esm/v2/AckInfoStore.js.map +0 -1
  476. package/dist/esm/v2/BaselinesStore.d.ts +0 -10
  477. package/dist/esm/v2/BaselinesStore.js +0 -32
  478. package/dist/esm/v2/BaselinesStore.js.map +0 -1
  479. package/dist/esm/v2/DocumentManager.d.ts +0 -19
  480. package/dist/esm/v2/DocumentManager.js +0 -43
  481. package/dist/esm/v2/DocumentManager.js.map +0 -1
  482. package/dist/esm/v2/Entity.d.ts +0 -91
  483. package/dist/esm/v2/Entity.js +0 -305
  484. package/dist/esm/v2/Entity.js.map +0 -1
  485. package/dist/esm/v2/EntityStore.d.ts +0 -37
  486. package/dist/esm/v2/EntityStore.js +0 -166
  487. package/dist/esm/v2/EntityStore.js.map +0 -1
  488. package/dist/esm/v2/IDBService.d.ts +0 -7
  489. package/dist/esm/v2/IDBService.js +0 -22
  490. package/dist/esm/v2/IDBService.js.map +0 -1
  491. package/dist/esm/v2/LocalHistoryStore.d.ts +0 -15
  492. package/dist/esm/v2/LocalHistoryStore.js +0 -49
  493. package/dist/esm/v2/LocalHistoryStore.js.map +0 -1
  494. package/dist/esm/v2/LocalReplicaStore.d.ts +0 -14
  495. package/dist/esm/v2/LocalReplicaStore.js +0 -42
  496. package/dist/esm/v2/LocalReplicaStore.js.map +0 -1
  497. package/dist/esm/v2/MessageCreator.d.ts +0 -19
  498. package/dist/esm/v2/MessageCreator.js +0 -92
  499. package/dist/esm/v2/MessageCreator.js.map +0 -1
  500. package/dist/esm/v2/Metadata.d.ts +0 -90
  501. package/dist/esm/v2/Metadata.js +0 -246
  502. package/dist/esm/v2/Metadata.js.map +0 -1
  503. package/dist/esm/v2/OperationsStore.d.ts +0 -38
  504. package/dist/esm/v2/OperationsStore.js +0 -142
  505. package/dist/esm/v2/OperationsStore.js.map +0 -1
  506. package/dist/esm/v2/PresenceManager.d.ts +0 -24
  507. package/dist/esm/v2/PresenceManager.js +0 -69
  508. package/dist/esm/v2/PresenceManager.js.map +0 -1
  509. package/dist/esm/v2/Query.d.ts +0 -24
  510. package/dist/esm/v2/Query.js +0 -75
  511. package/dist/esm/v2/Query.js.map +0 -1
  512. package/dist/esm/v2/QueryMaker.d.ts +0 -16
  513. package/dist/esm/v2/QueryMaker.js +0 -80
  514. package/dist/esm/v2/QueryMaker.js.map +0 -1
  515. package/dist/esm/v2/QueryStore.d.ts +0 -26
  516. package/dist/esm/v2/QueryStore.js +0 -132
  517. package/dist/esm/v2/QueryStore.js.map +0 -1
  518. package/dist/esm/v2/SchemaStore.d.ts +0 -9
  519. package/dist/esm/v2/SchemaStore.js +0 -31
  520. package/dist/esm/v2/SchemaStore.js.map +0 -1
  521. package/dist/esm/v2/Storage.d.ts +0 -80
  522. package/dist/esm/v2/Storage.js +0 -149
  523. package/dist/esm/v2/Storage.js.map +0 -1
  524. package/dist/esm/v2/Sync.d.ts +0 -42
  525. package/dist/esm/v2/Sync.js +0 -94
  526. package/dist/esm/v2/Sync.js.map +0 -1
  527. package/dist/esm/v2/SyncHarness.d.ts +0 -45
  528. package/dist/esm/v2/SyncHarness.js +0 -105
  529. package/dist/esm/v2/SyncHarness.js.map +0 -1
  530. package/dist/esm/v2/__tests__/documents.test.d.ts +0 -1
  531. package/dist/esm/v2/__tests__/documents.test.js +0 -208
  532. package/dist/esm/v2/__tests__/documents.test.js.map +0 -1
  533. package/dist/esm/v2/__tests__/fixtures/testStorage.d.ts +0 -223
  534. package/dist/esm/v2/__tests__/fixtures/testStorage.js +0 -106
  535. package/dist/esm/v2/__tests__/fixtures/testStorage.js.map +0 -1
  536. package/dist/esm/v2/__tests__/queries.test.d.ts +0 -1
  537. package/dist/esm/v2/__tests__/queries.test.js +0 -90
  538. package/dist/esm/v2/__tests__/queries.test.js.map +0 -1
  539. package/dist/esm/v2/__tests__/setup/indexedDB.d.ts +0 -1
  540. package/dist/esm/v2/__tests__/setup/indexedDB.js +0 -2
  541. package/dist/esm/v2/__tests__/setup/indexedDB.js.map +0 -1
  542. package/dist/esm/v2/constants.d.ts +0 -1
  543. package/dist/esm/v2/constants.js +0 -2
  544. package/dist/esm/v2/constants.js.map +0 -1
  545. package/dist/esm/v2/idb.d.ts +0 -6
  546. package/dist/esm/v2/idb.js +0 -65
  547. package/dist/esm/v2/idb.js.map +0 -1
  548. package/dist/esm/v2/index.d.ts +0 -6
  549. package/dist/esm/v2/index.js +0 -5
  550. package/dist/esm/v2/index.js.map +0 -1
  551. package/dist/esm/v2/indexes.d.ts +0 -3
  552. package/dist/esm/v2/indexes.js +0 -15
  553. package/dist/esm/v2/indexes.js.map +0 -1
  554. package/dist/esm/v2/openDocumentDatabase.d.ts +0 -9
  555. package/dist/esm/v2/openDocumentDatabase.js +0 -96
  556. package/dist/esm/v2/openDocumentDatabase.js.map +0 -1
  557. package/dist/esm/v2/types.d.ts +0 -3
  558. package/dist/esm/v2/types.js +0 -2
  559. package/dist/esm/v2/types.js.map +0 -1
  560. /package/dist/esm/sync/{WebsocketSync.js.map → WebSocketSync.js.map} +0 -0
@@ -1,110 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Heartbeat = exports.SyncHarness = void 0;
4
- const common_1 = require("@lo-fi/common");
5
- /**
6
- Bridges sync messages and the local storage, interpreting messages and
7
- handling initial sync and heartbeat.
8
- */
9
- class SyncHarness {
10
- constructor({ sync, meta, initialPresence, entities, }) {
11
- this.handleOnlineChange = async (online) => {
12
- if (!online) {
13
- this.heartbeat.stop();
14
- }
15
- else {
16
- const lastSyncTimestamp = await this.meta.lastSyncedTimestamp();
17
- this.sync.send(await this.meta.messageCreator.createSyncStep1(!lastSyncTimestamp));
18
- this.sync.send(await this.meta.messageCreator.createPresenceUpdate(this.initialPresence));
19
- this.heartbeat.start();
20
- }
21
- };
22
- this.handleMessage = async (message) => {
23
- let affectedOids = undefined;
24
- switch (message.type) {
25
- case 'op-re':
26
- // rebroadcasted operations
27
- affectedOids = await this.meta.insertRemoteOperations(message.operations);
28
- break;
29
- case 'sync-resp':
30
- if (message.overwriteLocalData) {
31
- await this.meta.reset();
32
- await this.entities.reset();
33
- }
34
- affectedOids = await this.meta.insertRemoteOperations(message.operations);
35
- await this.meta.ackInfo.setGlobalAck(message.globalAckTimestamp);
36
- // respond to the server
37
- this.sync.send(await this.meta.messageCreator.createSyncStep2(message.provideChangesSince));
38
- await this.meta.updateLastSynced();
39
- break;
40
- case 'rebases':
41
- const affectedSet = new Set();
42
- for (const rebase of message.rebases) {
43
- await this.meta.rebase(rebase.oid, rebase.upTo);
44
- affectedSet.add((0, common_1.getOidRoot)(rebase.oid));
45
- }
46
- affectedOids = Array.from(affectedSet);
47
- break;
48
- }
49
- if (affectedOids === null || affectedOids === void 0 ? void 0 : affectedOids.length) {
50
- this.entities.refreshAll(affectedOids);
51
- }
52
- };
53
- this.send = async (message) => {
54
- this.sync.send(message);
55
- };
56
- this.sync = sync;
57
- this.meta = meta;
58
- this.initialPresence = initialPresence;
59
- this.entities = entities;
60
- this.heartbeat = new Heartbeat({
61
- sync: this.sync,
62
- meta: this.meta,
63
- });
64
- sync.subscribe('onlineChange', this.handleOnlineChange);
65
- sync.subscribe('message', this.handleMessage);
66
- }
67
- }
68
- exports.SyncHarness = SyncHarness;
69
- class Heartbeat extends common_1.EventSubscriber {
70
- constructor({ sync, meta, interval = 15 * 1000, deadlineLength = 3 * 1000, }) {
71
- super();
72
- this.nextBeat = null;
73
- this.deadline = null;
74
- this.handleSyncMessage = (message) => {
75
- if (message.type === 'heartbeat-response') {
76
- if (this.deadline) {
77
- clearTimeout(this.deadline);
78
- this.deadline = null;
79
- this.start();
80
- }
81
- }
82
- };
83
- this.start = () => {
84
- this.nextBeat = setTimeout(this.beat, this.interval);
85
- };
86
- this.stop = () => {
87
- if (this.nextBeat) {
88
- clearTimeout(this.nextBeat);
89
- }
90
- if (this.deadline) {
91
- clearTimeout(this.deadline);
92
- }
93
- };
94
- this.beat = async () => {
95
- this.sync.send(await this.meta.messageCreator.createHeartbeat());
96
- this.deadline = setTimeout(this.onDeadline, this.deadlineLength);
97
- };
98
- this.onDeadline = () => {
99
- this.deadline = null;
100
- this.emit('missed');
101
- };
102
- this.sync = sync;
103
- this.meta = meta;
104
- this.interval = interval;
105
- this.deadlineLength = deadlineLength;
106
- sync.subscribe('message', this.handleSyncMessage);
107
- }
108
- }
109
- exports.Heartbeat = Heartbeat;
110
- //# sourceMappingURL=SyncHarness.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SyncHarness.js","sourceRoot":"","sources":["../../src/SyncHarness.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { IDBService } from '../IDBService.js';
2
- declare type LocalHistoryItem = {
3
- timestamp: string;
4
- };
5
- declare type LocalHistory = {
6
- type: 'localHistory';
7
- items: LocalHistoryItem[];
8
- };
9
- export declare class LocalHistoryStore extends IDBService {
10
- localHistoryLength: number;
11
- get: () => Promise<LocalHistory>;
12
- add: (item: LocalHistoryItem) => Promise<string>;
13
- reset: () => Promise<void>;
14
- }
15
- export {};
@@ -1,53 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LocalHistoryStore = void 0;
4
- const IDBService_js_1 = require("../IDBService.js");
5
- class LocalHistoryStore extends IDBService_js_1.IDBService {
6
- constructor() {
7
- super(...arguments);
8
- this.localHistoryLength = 10;
9
- this.get = async () => {
10
- const result = await this.run('info', (store) => store.get('localHistory'));
11
- if (result) {
12
- return result;
13
- }
14
- else {
15
- return {
16
- type: 'localHistory',
17
- items: [],
18
- };
19
- }
20
- };
21
- this.add = async (item) => {
22
- // TODO: PERF: cache this in memory
23
- const transaction = this.db.transaction('info', 'readwrite');
24
- let history = await this.run('info', (store) => store.get('localHistory'), 'readonly', transaction);
25
- if (!history) {
26
- history = {
27
- type: 'localHistory',
28
- items: [],
29
- };
30
- }
31
- // TODO: PERF: find a better way to avoid duplicate items
32
- const existing = history.items.find((i) => i.timestamp === item.timestamp);
33
- if (existing) {
34
- return history.items[0].timestamp;
35
- }
36
- history.items.push({
37
- timestamp: item.timestamp,
38
- });
39
- // drop old items
40
- if (history.items.length > this.localHistoryLength) {
41
- history.items.shift();
42
- }
43
- const oldestHistoryTimestamp = history.items[0].timestamp;
44
- await this.run('info', (store) => store.put(history), 'readwrite', transaction);
45
- return oldestHistoryTimestamp;
46
- };
47
- this.reset = async () => {
48
- await this.run('info', (store) => store.delete('localHistory'), 'readwrite');
49
- };
50
- }
51
- }
52
- exports.LocalHistoryStore = LocalHistoryStore;
53
- //# sourceMappingURL=LocalHistoryStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LocalHistoryStore.js","sourceRoot":"","sources":["../../../src/metadata/LocalHistoryStore.ts"],"names":[],"mappings":";;;AACA,oDAA8C;AAU9C,MAAa,iBAAkB,SAAQ,0BAAU;IAAjD;;QACC,uBAAkB,GAAG,EAAE,CAAC;QAExB,QAAG,GAAG,KAAK,IAA2B,EAAE;YACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAe,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAC7D,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CACzB,CAAC;YAEF,IAAI,MAAM,EAAE;gBACX,OAAO,MAAM,CAAC;aACd;iBAAM;gBACN,OAAO;oBACN,IAAI,EAAE,cAAc;oBACpB,KAAK,EAAE,EAAE;iBACT,CAAC;aACF;QACF,CAAC,CAAC;QAEF,QAAG,GAAG,KAAK,EAAE,IAAsB,EAAE,EAAE;YACtC,mCAAmC;YACnC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAC7D,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAC3B,MAAM,EACN,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,EACpC,UAAU,EACV,WAAW,CACX,CAAC;YACF,IAAI,CAAC,OAAO,EAAE;gBACb,OAAO,GAAG;oBACT,IAAI,EAAE,cAAc;oBACpB,KAAK,EAAE,EAAE;iBACT,CAAC;aACF;YAED,yDAAyD;YACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3E,IAAI,QAAQ,EAAE;gBACb,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;aAClC;YAED,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;gBAClB,SAAS,EAAE,IAAI,CAAC,SAAS;aACzB,CAAC,CAAC;YACH,iBAAiB;YACjB,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE;gBACnD,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;aACtB;YACD,MAAM,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1D,MAAM,IAAI,CAAC,GAAG,CACb,MAAM,EACN,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAC7B,WAAW,EACX,WAAW,CACX,CAAC;YACF,OAAO,sBAAsB,CAAC;QAC/B,CAAC,CAAC;QAEF,UAAK,GAAG,KAAK,IAAI,EAAE;YAClB,MAAM,IAAI,CAAC,GAAG,CACb,MAAM,EACN,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,EACvC,WAAW,CACX,CAAC;QACH,CAAC,CAAC;IACH,CAAC;CAAA;AAhED,8CAgEC"}
@@ -1,28 +0,0 @@
1
- import { ObjectEntity } from '../reactives/Entity.js';
2
- import { BaseQuery, Query } from './Query.js';
3
- export declare const UPDATE = "@@update";
4
- export declare class LiveQuery<T extends (ObjectEntity<any, any> | null) | ObjectEntity<any, any>[]> implements BaseQuery<T> {
5
- private readonly query;
6
- private readonly onActivate;
7
- private readonly onDispose;
8
- private _rawEntities;
9
- private _resultEntities;
10
- private _subscribers;
11
- resolved: Promise<T>;
12
- private _internalUnsubscribes;
13
- private _disposed;
14
- get id(): string;
15
- get collection(): string;
16
- get key(): string;
17
- constructor(query: Query<T>, onActivate: (query: LiveQuery<T>) => void, onDispose: (query: LiveQuery<T>) => void);
18
- private filterDeleted;
19
- private execute;
20
- private subscribeToDeleteAndRestore;
21
- get current(): T | null;
22
- [UPDATE]: () => void;
23
- dispose: () => void;
24
- private refilterDeleted;
25
- subscribe: (callback: (value: T | null) => void) => () => void;
26
- get subscriberCount(): number;
27
- get isActive(): boolean;
28
- }
@@ -1,96 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.LiveQuery = exports.UPDATE = void 0;
5
- exports.UPDATE = '@@update';
6
- class LiveQuery {
7
- constructor(query, onActivate, onDispose) {
8
- this.query = query;
9
- this.onActivate = onActivate;
10
- this.onDispose = onDispose;
11
- this._rawEntities = null;
12
- this._resultEntities = null;
13
- this._subscribers = new Set();
14
- this._internalUnsubscribes = [];
15
- this._disposed = false;
16
- this.filterDeleted = (entities) => {
17
- if (Array.isArray(entities)) {
18
- return entities.filter((entity) => !entity.deleted);
19
- }
20
- return (entities === null || entities === void 0 ? void 0 : entities.deleted) ? null : entities;
21
- };
22
- this.execute = async () => {
23
- this._rawEntities = await this.query.execute();
24
- this.subscribeToDeleteAndRestore(this._rawEntities);
25
- this._resultEntities = this.filterDeleted(this._rawEntities);
26
- this._subscribers.forEach((subscriber) => subscriber(this._resultEntities));
27
- return this._resultEntities;
28
- };
29
- this.subscribeToDeleteAndRestore = (result) => {
30
- var _b;
31
- while (this._internalUnsubscribes.length) {
32
- (_b = this._internalUnsubscribes.pop()) === null || _b === void 0 ? void 0 : _b();
33
- }
34
- if (Array.isArray(result)) {
35
- result.forEach((entity) => {
36
- this._internalUnsubscribes.push(entity.subscribe('delete', this.refilterDeleted));
37
- this._internalUnsubscribes.push(entity.subscribe('restore', this.refilterDeleted));
38
- });
39
- }
40
- else if (result) {
41
- this._internalUnsubscribes.push(result.subscribe('delete', this.refilterDeleted));
42
- this._internalUnsubscribes.push(result.subscribe('restore', this.refilterDeleted));
43
- }
44
- };
45
- this[_a] = () => {
46
- if (this._disposed)
47
- return;
48
- this.resolved = this.execute();
49
- };
50
- this.dispose = () => {
51
- this._subscribers.clear();
52
- this._internalUnsubscribes.forEach((unsubscribe) => unsubscribe());
53
- this._internalUnsubscribes = [];
54
- this.query.dispose();
55
- this._disposed = true;
56
- };
57
- this.refilterDeleted = () => {
58
- this._resultEntities = this.filterDeleted(this._rawEntities);
59
- this._subscribers.forEach((subscriber) => subscriber(this._resultEntities));
60
- };
61
- this.subscribe = (callback) => {
62
- this._subscribers.add(callback);
63
- if (this._subscribers.size === 1) {
64
- this.onActivate(this);
65
- }
66
- return () => {
67
- this._subscribers.delete(callback);
68
- if (this._subscribers.size === 0) {
69
- this.onDispose(this);
70
- }
71
- };
72
- };
73
- this.resolved = this.execute();
74
- }
75
- get id() {
76
- return this.query.id;
77
- }
78
- get collection() {
79
- return this.query.collection;
80
- }
81
- get key() {
82
- return this.query.key;
83
- }
84
- get current() {
85
- return this._resultEntities;
86
- }
87
- get subscriberCount() {
88
- return this._subscribers.size;
89
- }
90
- get isActive() {
91
- return this.subscriberCount > 0;
92
- }
93
- }
94
- exports.LiveQuery = LiveQuery;
95
- _a = exports.UPDATE;
96
- //# sourceMappingURL=LiveQuery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LiveQuery.js","sourceRoot":"","sources":["../../../src/queries/LiveQuery.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { CollectionFilter } from '@lo-fi/common';
2
- import { Context } from '../context.js';
3
- import { ObjectEntity } from '../index.js';
4
- import { LiveQuery } from './LiveQuery.js';
5
- import { BaseQueryStore } from './QueryStore.js';
6
- export declare class LiveQueryMaker<Result extends ObjectEntity<any, any, any> = ObjectEntity<any, any, any>, Store extends BaseQueryStore<LiveQuery<any>> = BaseQueryStore<LiveQuery<any>>> {
7
- private readonly queryStore;
8
- private context;
9
- constructor(queryStore: Store, context: Context);
10
- get: (collection: string, primaryKey: string) => LiveQuery<Result>;
11
- findOne: (collection: string, query?: CollectionFilter) => LiveQuery<Result>;
12
- findAll: (collection: string, query?: CollectionFilter) => LiveQuery<Result[]>;
13
- private getRange;
14
- setContext: (context: Context) => void;
15
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LiveQueryMaker = void 0;
4
- const ranges_js_1 = require("./ranges.js");
5
- class LiveQueryMaker {
6
- constructor(queryStore, context) {
7
- this.queryStore = queryStore;
8
- this.context = context;
9
- this.get = (collection, primaryKey) => {
10
- return this.queryStore.get({
11
- collection: collection,
12
- range: primaryKey,
13
- single: true,
14
- });
15
- };
16
- this.findOne = (collection, query) => {
17
- return this.queryStore.get({
18
- collection,
19
- range: this.getRange(collection, query),
20
- single: true,
21
- index: query === null || query === void 0 ? void 0 : query.where,
22
- direction: (query === null || query === void 0 ? void 0 : query.order) === 'desc' ? 'prev' : 'next',
23
- });
24
- };
25
- this.findAll = (collection, query) => {
26
- return this.queryStore.get({
27
- collection,
28
- range: this.getRange(collection, query),
29
- index: query === null || query === void 0 ? void 0 : query.where,
30
- direction: (query === null || query === void 0 ? void 0 : query.order) === 'desc' ? 'prev' : 'next',
31
- });
32
- };
33
- this.getRange = (collection, index) => {
34
- return (0, ranges_js_1.getRange)(this.context.schema, collection, index);
35
- };
36
- this.setContext = (context) => {
37
- this.context = context;
38
- };
39
- }
40
- }
41
- exports.LiveQueryMaker = LiveQueryMaker;
42
- //# sourceMappingURL=LiveQueryMaker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LiveQueryMaker.js","sourceRoot":"","sources":["../../../src/queries/LiveQueryMaker.ts"],"names":[],"mappings":";;;AAKA,2CAAuC;AAEvC,MAAa,cAAc;IAI1B,YAA6B,UAAiB,EAAU,OAAgB;QAA3C,eAAU,GAAV,UAAU,CAAO;QAAU,YAAO,GAAP,OAAO,CAAS;QAExE,QAAG,GAAG,CAAC,UAAkB,EAAE,UAAkB,EAAqB,EAAE;YACnE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC1B,UAAU,EAAE,UAAoB;gBAChC,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,IAAI;aACZ,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,YAAO,GAAG,CACT,UAAkB,EAClB,KAAwB,EACJ,EAAE;YACtB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC1B,UAAU;gBACV,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;gBACvC,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK;gBACnB,SAAS,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,MAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;aACpD,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,YAAO,GAAG,CACT,UAAkB,EAClB,KAAwB,EACF,EAAE;YACxB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC1B,UAAU;gBACV,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;gBACvC,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK;gBACnB,SAAS,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,MAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;aACpD,CAAC,CAAC;QACJ,CAAC,CAAC;QAEM,aAAQ,GAAG,CAAC,UAAkB,EAAE,KAAwB,EAAE,EAAE;YACnE,OAAO,IAAA,oBAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC,CAAC;QAEF,eAAU,GAAG,CAAC,OAAgB,EAAE,EAAE;YACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACxB,CAAC,CAAC;IAzCyE,CAAC;CA0C5E;AA9CD,wCA8CC"}
@@ -1,33 +0,0 @@
1
- import { Context } from '../context.js';
2
- import { ObjectEntity } from '../index.js';
3
- import { EntityStore } from '../reactives/EntityStore.js';
4
- import { LiveQuery } from './LiveQuery.js';
5
- import { BaseQueryStore, QueryParams } from './QueryStore.js';
6
- export declare class LiveQueryStore<Result extends (ObjectEntity<any, any> | null) | ObjectEntity<any, any>[] = (ObjectEntity<any, any> | null) | ObjectEntity<any, any>[]> implements BaseQueryStore<LiveQuery<Result>> {
7
- private entities;
8
- private context;
9
- private queries;
10
- private cache;
11
- private _unsubscribes;
12
- constructor(entities: EntityStore, context: Context);
13
- setContext: (context: Context) => void;
14
- getQueryKey(params: QueryParams): string;
15
- get: (config: {
16
- collection: string;
17
- range: IDBKeyRange | IDBValidKey | undefined;
18
- index?: string;
19
- direction?: IDBCursorDirection;
20
- limit?: number;
21
- single?: boolean;
22
- write?: boolean;
23
- }) => LiveQuery<any>;
24
- /**
25
- * If a query is unsubscribed after 1 tick, it is removed from the cache.
26
- * To persist a query in the cache a user must subscribe to it.
27
- */
28
- private prepareToCleanupQuery;
29
- update: (key: string) => void;
30
- updateAll: () => void;
31
- private onCollectionsChanged;
32
- destroy: () => void;
33
- }
@@ -1,85 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LiveQueryStore = void 0;
4
- const LiveQuery_js_1 = require("./LiveQuery.js");
5
- const QueryStore_js_1 = require("./QueryStore.js");
6
- class LiveQueryStore {
7
- constructor(entities, context) {
8
- this.entities = entities;
9
- this.context = context;
10
- this.cache = new Map();
11
- this._unsubscribes = [];
12
- this.setContext = (context) => {
13
- this.context = context;
14
- this.queries.setContext(context);
15
- };
16
- this.get = (config) => {
17
- const key = this.queries.getQueryKey(config);
18
- if (this.cache.has(key)) {
19
- return this.cache.get(key);
20
- }
21
- const baseQuery = this.queries.get(config);
22
- const liveQuery = new LiveQuery_js_1.LiveQuery(baseQuery, (query) => {
23
- const cached = this.cache.get(key);
24
- if (cached && cached !== query) {
25
- console.warn('Query already exists in cache for key', key, ', this is not an error but suggests your code is creating multiple queries of the same type in the same frame and subscribing to them, and will produce less efficient memory usage.');
26
- }
27
- this.cache.set(key, query);
28
- }, (query) => {
29
- this.prepareToCleanupQuery(query);
30
- });
31
- this.cache.set(key, liveQuery);
32
- this.prepareToCleanupQuery(liveQuery);
33
- return liveQuery;
34
- };
35
- /**
36
- * If a query is unsubscribed after 1 tick, it is removed from the cache.
37
- * To persist a query in the cache a user must subscribe to it.
38
- */
39
- this.prepareToCleanupQuery = (query) => {
40
- setTimeout(() => {
41
- if (!query.isActive) {
42
- const cached = this.cache.get(query.key);
43
- if (cached === query) {
44
- this.cache.delete(query.key);
45
- }
46
- }
47
- }, 100);
48
- };
49
- this.update = (key) => {
50
- var _a;
51
- (_a = this.cache.get(key)) === null || _a === void 0 ? void 0 : _a[LiveQuery_js_1.UPDATE]();
52
- };
53
- this.updateAll = () => {
54
- for (const query of this.cache.values()) {
55
- query[LiveQuery_js_1.UPDATE]();
56
- }
57
- };
58
- this.onCollectionsChanged = (collections) => {
59
- let updated = 0;
60
- // FIXME: This is a naive implementation, improve beyond O(n)
61
- for (const [key, query] of this.cache) {
62
- if (collections.includes(query.collection)) {
63
- query[LiveQuery_js_1.UPDATE]();
64
- updated++;
65
- this.context.log('🔄 updated query', key);
66
- }
67
- }
68
- };
69
- this.destroy = () => {
70
- this.queries.dispose();
71
- this._unsubscribes.forEach((unsubscribe) => unsubscribe());
72
- for (const query of this.cache.values()) {
73
- query.dispose();
74
- }
75
- this.cache.clear();
76
- };
77
- this.queries = new QueryStore_js_1.QueryStore(entities.get, context);
78
- this._unsubscribes.push(this.entities.subscribe('collectionsChanged', this.onCollectionsChanged));
79
- }
80
- getQueryKey(params) {
81
- return this.queries.getQueryKey(params);
82
- }
83
- }
84
- exports.LiveQueryStore = LiveQueryStore;
85
- //# sourceMappingURL=LiveQueryStore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LiveQueryStore.js","sourceRoot":"","sources":["../../../src/queries/LiveQueryStore.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- export interface BaseQuery<Result> {
2
- readonly id: string;
3
- readonly key: string;
4
- resolved: Promise<Result>;
5
- }
6
- export declare class Query<Result = any> implements BaseQuery<Result> {
7
- readonly key: string;
8
- readonly collection: string;
9
- private readonly run;
10
- readonly id: string;
11
- resolved: Promise<Result>;
12
- private resolve;
13
- private reject;
14
- private _disposed;
15
- constructor(key: string, collection: string, run: () => Promise<Result>);
16
- execute: () => Promise<Result>;
17
- dispose: () => void;
18
- }
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Query = void 0;
4
- const common_1 = require("@lo-fi/common");
5
- class Query {
6
- constructor(key, collection, run) {
7
- this.key = key;
8
- this.collection = collection;
9
- this.run = run;
10
- this._disposed = false;
11
- this.execute = async () => {
12
- if (this._disposed) {
13
- throw new Error('Query has been disposed');
14
- }
15
- try {
16
- const result = await this.run();
17
- this.resolve(result);
18
- return result;
19
- }
20
- catch (error) {
21
- this.reject(error);
22
- throw error;
23
- }
24
- };
25
- this.dispose = () => {
26
- this._disposed = true;
27
- };
28
- this.id = key + '_' + (0, common_1.generateId)();
29
- this.resolved = new Promise((resolve, reject) => {
30
- this.resolve = resolve;
31
- this.reject = reject;
32
- });
33
- }
34
- }
35
- exports.Query = Query;
36
- //# sourceMappingURL=Query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Query.js","sourceRoot":"","sources":["../../../src/queries/Query.ts"],"names":[],"mappings":";;;AAAA,0CAA2C;AAQ3C,MAAa,KAAK;IAOjB,YACiB,GAAW,EACX,UAAkB,EACjB,GAA0B;QAF3B,QAAG,GAAH,GAAG,CAAQ;QACX,eAAU,GAAV,UAAU,CAAQ;QACjB,QAAG,GAAH,GAAG,CAAuB;QALpC,cAAS,GAAG,KAAK,CAAC;QAc1B,YAAO,GAAG,KAAK,IAAqB,EAAE;YACrC,IAAI,IAAI,CAAC,SAAS,EAAE;gBACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;aAC3C;YACD,IAAI;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;gBAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACrB,OAAO,MAAM,CAAC;aACd;YAAC,OAAO,KAAK,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,KAAc,CAAC,CAAC;gBAC5B,MAAM,KAAK,CAAC;aACZ;QACF,CAAC,CAAC;QAEF,YAAO,GAAG,GAAG,EAAE;YACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC;QAvBD,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAA,mBAAU,GAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,CAAC,CAAC,CAAC;IACJ,CAAC;CAmBD;AApCD,sBAoCC"}
@@ -1,14 +0,0 @@
1
- import { CollectionFilter } from '@lo-fi/common';
2
- import { Context } from '../context.js';
3
- import { Query } from './Query.js';
4
- import { BaseQueryStore } from './QueryStore.js';
5
- export declare class QueryMaker<Result, Store extends BaseQueryStore<Query>> {
6
- private readonly queryStore;
7
- private context;
8
- constructor(queryStore: Store, context: Context);
9
- get: (collection: string, primaryKey: string) => Query<Result>;
10
- findOne: (collection: string, query?: CollectionFilter) => Query<Result>;
11
- findAll: (collection: string, query?: CollectionFilter) => Query<Result[]>;
12
- private getRange;
13
- setContext: (context: Context) => void;
14
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QueryMaker = void 0;
4
- const ranges_js_1 = require("./ranges.js");
5
- class QueryMaker {
6
- constructor(queryStore, context) {
7
- this.queryStore = queryStore;
8
- this.context = context;
9
- this.get = (collection, primaryKey) => {
10
- return this.queryStore.get({
11
- collection: collection,
12
- range: primaryKey,
13
- single: true,
14
- });
15
- };
16
- this.findOne = (collection, query) => {
17
- return this.queryStore.get({
18
- collection,
19
- range: this.getRange(collection, query),
20
- single: true,
21
- index: query === null || query === void 0 ? void 0 : query.where,
22
- direction: (query === null || query === void 0 ? void 0 : query.order) === 'desc' ? 'prev' : 'next',
23
- });
24
- };
25
- this.findAll = (collection, query) => {
26
- return this.queryStore.get({
27
- collection,
28
- range: this.getRange(collection, query),
29
- index: query === null || query === void 0 ? void 0 : query.where,
30
- direction: (query === null || query === void 0 ? void 0 : query.order) === 'desc' ? 'prev' : 'next',
31
- });
32
- };
33
- this.getRange = (collection, index) => {
34
- return (0, ranges_js_1.getRange)(this.context.schema, collection, index);
35
- };
36
- this.setContext = (context) => {
37
- this.context = context;
38
- };
39
- }
40
- }
41
- exports.QueryMaker = QueryMaker;
42
- //# sourceMappingURL=QueryMaker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QueryMaker.js","sourceRoot":"","sources":["../../../src/queries/QueryMaker.ts"],"names":[],"mappings":";;;AAIA,2CAAuC;AAEvC,MAAa,UAAU;IACtB,YAA6B,UAAiB,EAAU,OAAgB;QAA3C,eAAU,GAAV,UAAU,CAAO;QAAU,YAAO,GAAP,OAAO,CAAS;QAExE,QAAG,GAAG,CAAC,UAAkB,EAAE,UAAkB,EAAiB,EAAE;YAC/D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC1B,UAAU,EAAE,UAAoB;gBAChC,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,IAAI;aACZ,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,YAAO,GAAG,CAAC,UAAkB,EAAE,KAAwB,EAAiB,EAAE;YACzE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC1B,UAAU;gBACV,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;gBACvC,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK;gBACnB,SAAS,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,MAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;aACpD,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,YAAO,GAAG,CAAC,UAAkB,EAAE,KAAwB,EAAmB,EAAE;YAC3E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC1B,UAAU;gBACV,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;gBACvC,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK;gBACnB,SAAS,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,MAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;aACpD,CAAC,CAAC;QACJ,CAAC,CAAC;QAEM,aAAQ,GAAG,CAAC,UAAkB,EAAE,KAAwB,EAAE,EAAE;YACnE,OAAO,IAAA,oBAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC,CAAC;QAEF,eAAU,GAAG,CAAC,OAAgB,EAAE,EAAE;YACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACxB,CAAC,CAAC;IAnCyE,CAAC;CAoC5E;AArCD,gCAqCC"}