supastash 0.1.62 → 0.2.1

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 (578) hide show
  1. package/README.md +37 -8
  2. package/dist/desktop/adapters/appstate.d.ts +2 -0
  3. package/dist/desktop/adapters/appstate.d.ts.map +1 -0
  4. package/dist/desktop/adapters/appstate.js +10 -0
  5. package/dist/desktop/adapters/crypto.d.ts +3 -0
  6. package/dist/desktop/adapters/crypto.d.ts.map +1 -0
  7. package/dist/desktop/adapters/crypto.js +16 -0
  8. package/dist/{core → desktop/core}/schemaManager/index.d.ts +1 -1
  9. package/dist/desktop/core/schemaManager/index.d.ts.map +1 -0
  10. package/dist/{core → desktop/core}/schemaManager/index.js +3 -3
  11. package/dist/{hooks/supastashData/index.d.ts → desktop/hooks/supastashData.d.ts} +2 -2
  12. package/dist/desktop/hooks/supastashData.d.ts.map +1 -0
  13. package/dist/desktop/hooks/supastashData.js +139 -0
  14. package/dist/{hooks → desktop/hooks}/supastashLogic.d.ts +1 -1
  15. package/dist/desktop/hooks/supastashLogic.d.ts.map +1 -0
  16. package/dist/{hooks → desktop/hooks}/supastashLogic.js +11 -12
  17. package/dist/{hooks/syncEngine/index.d.ts → desktop/hooks/syncEngine.d.ts} +1 -1
  18. package/dist/desktop/hooks/syncEngine.d.ts.map +1 -0
  19. package/dist/desktop/hooks/syncEngine.js +233 -0
  20. package/dist/desktop/index.d.ts +28 -0
  21. package/dist/desktop/index.d.ts.map +1 -0
  22. package/dist/desktop/index.js +21 -0
  23. package/dist/{hooks/supastashData → desktop/utils/fetchData}/eventQueues.d.ts +2 -2
  24. package/dist/desktop/utils/fetchData/eventQueues.d.ts.map +1 -0
  25. package/dist/{hooks/supastashData → desktop/utils/fetchData}/eventQueues.js +3 -3
  26. package/dist/{hooks/supastashData → desktop/utils/fetchData}/fetchCalls.d.ts +1 -1
  27. package/dist/desktop/utils/fetchData/fetchCalls.d.ts.map +1 -0
  28. package/dist/{hooks/supastashData → desktop/utils/fetchData}/fetchCalls.js +5 -5
  29. package/dist/desktop/utils/fetchData/initialFetch.d.ts +3 -0
  30. package/dist/desktop/utils/fetchData/initialFetch.d.ts.map +1 -0
  31. package/dist/{utils → desktop/utils}/fetchData/initialFetch.js +2 -2
  32. package/dist/{utils → desktop/utils}/fetchData/receiveData.d.ts +1 -1
  33. package/dist/desktop/utils/fetchData/receiveData.d.ts.map +1 -0
  34. package/dist/{utils → desktop/utils}/fetchData/receiveData.js +7 -7
  35. package/dist/desktop/utils/query/index.d.ts +73 -0
  36. package/dist/desktop/utils/query/index.d.ts.map +1 -0
  37. package/dist/desktop/utils/query/index.js +139 -0
  38. package/dist/desktop/utils/schema/wipeTables.d.ts.map +1 -0
  39. package/dist/{utils → desktop/utils}/schema/wipeTables.js +4 -4
  40. package/dist/desktop/utils/sync/pullFromRemote/fetchOlder.d.ts +44 -0
  41. package/dist/desktop/utils/sync/pullFromRemote/fetchOlder.d.ts.map +1 -0
  42. package/dist/desktop/utils/sync/pullFromRemote/fetchOlder.js +55 -0
  43. package/dist/desktop/utils/sync/pullFromRemote/fetchOlderHelpers.d.ts +33 -0
  44. package/dist/desktop/utils/sync/pullFromRemote/fetchOlderHelpers.d.ts.map +1 -0
  45. package/dist/desktop/utils/sync/pullFromRemote/fetchOlderHelpers.js +104 -0
  46. package/dist/desktop/utils/sync/pullFromRemote/index.d.ts.map +1 -0
  47. package/dist/{hooks/syncEngine → desktop/utils/sync}/pullFromRemote/index.js +7 -7
  48. package/dist/{utils → desktop/utils}/sync/pullFromRemote/pullData.d.ts +3 -4
  49. package/dist/desktop/utils/sync/pullFromRemote/pullData.d.ts.map +1 -0
  50. package/dist/{utils → desktop/utils}/sync/pullFromRemote/pullData.js +10 -15
  51. package/dist/desktop/utils/sync/pullFromRemote/updateLocalDb.d.ts +46 -0
  52. package/dist/desktop/utils/sync/pullFromRemote/updateLocalDb.d.ts.map +1 -0
  53. package/dist/desktop/utils/sync/pullFromRemote/updateLocalDb.js +284 -0
  54. package/dist/desktop/utils/sync/pushLocal/index.d.ts.map +1 -0
  55. package/dist/{hooks/syncEngine → desktop/utils/sync}/pushLocal/index.js +8 -11
  56. package/dist/desktop/utils/sync/pushLocal/sendUnsyncedToSupabase.d.ts.map +1 -0
  57. package/dist/{utils → desktop/utils}/sync/pushLocal/sendUnsyncedToSupabase.js +5 -8
  58. package/dist/{utils → desktop/utils}/sync/pushLocal/uploadChunk.d.ts +1 -1
  59. package/dist/desktop/utils/sync/pushLocal/uploadChunk.d.ts.map +1 -0
  60. package/dist/{utils → desktop/utils}/sync/pushLocal/uploadChunk.js +8 -12
  61. package/dist/{utils → desktop/utils}/sync/pushLocal/uploadHelpers.d.ts +2 -2
  62. package/dist/desktop/utils/sync/pushLocal/uploadHelpers.d.ts.map +1 -0
  63. package/dist/{utils → desktop/utils}/sync/pushLocal/uploadHelpers.js +7 -7
  64. package/dist/{utils → desktop/utils}/sync/status/filterKey.d.ts +3 -3
  65. package/dist/desktop/utils/sync/status/filterKey.d.ts.map +1 -0
  66. package/dist/desktop/utils/sync/status/filterKey.js +48 -0
  67. package/dist/desktop/utils/sync/status/repo.d.ts +10 -0
  68. package/dist/desktop/utils/sync/status/repo.d.ts.map +1 -0
  69. package/dist/{utils → desktop/utils}/sync/status/repo.js +31 -25
  70. package/dist/{utils → desktop/utils}/sync/status/services.d.ts +6 -7
  71. package/dist/desktop/utils/sync/status/services.d.ts.map +1 -0
  72. package/dist/{utils → desktop/utils}/sync/status/services.js +4 -9
  73. package/dist/{utils → desktop/utils}/sync/status/syncStatus.d.ts +6 -8
  74. package/dist/desktop/utils/sync/status/syncStatus.d.ts.map +1 -0
  75. package/dist/{utils → desktop/utils}/sync/status/syncStatus.js +14 -6
  76. package/dist/index.d.ts +18 -23
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +12 -21
  79. package/dist/native/core/schemaManager/index.d.ts +40 -0
  80. package/dist/native/core/schemaManager/index.d.ts.map +1 -0
  81. package/dist/native/core/schemaManager/index.js +141 -0
  82. package/dist/native/hooks/supastashData.d.ts +67 -0
  83. package/dist/native/hooks/supastashData.d.ts.map +1 -0
  84. package/dist/{hooks/supastashData/index.js → native/hooks/supastashData.js} +23 -13
  85. package/dist/native/hooks/supastashLogic.d.ts +19 -0
  86. package/dist/native/hooks/supastashLogic.d.ts.map +1 -0
  87. package/dist/native/hooks/supastashLogic.js +101 -0
  88. package/dist/native/hooks/syncEngine.d.ts +28 -0
  89. package/dist/native/hooks/syncEngine.d.ts.map +1 -0
  90. package/dist/{hooks/syncEngine/index.js → native/hooks/syncEngine.js} +18 -18
  91. package/dist/native/index.d.ts +28 -0
  92. package/dist/native/index.d.ts.map +1 -0
  93. package/dist/native/index.js +21 -0
  94. package/dist/native/utils/fetchData/eventQueues.d.ts +5 -0
  95. package/dist/native/utils/fetchData/eventQueues.d.ts.map +1 -0
  96. package/dist/native/utils/fetchData/eventQueues.js +52 -0
  97. package/dist/native/utils/fetchData/fetchCalls.d.ts +9 -0
  98. package/dist/native/utils/fetchData/fetchCalls.d.ts.map +1 -0
  99. package/dist/native/utils/fetchData/fetchCalls.js +88 -0
  100. package/dist/native/utils/fetchData/initialFetch.d.ts +3 -0
  101. package/dist/native/utils/fetchData/initialFetch.d.ts.map +1 -0
  102. package/dist/native/utils/fetchData/initialFetch.js +21 -0
  103. package/dist/native/utils/fetchData/receiveData.d.ts +3 -0
  104. package/dist/native/utils/fetchData/receiveData.d.ts.map +1 -0
  105. package/dist/native/utils/fetchData/receiveData.js +39 -0
  106. package/dist/native/utils/query/index.d.ts +73 -0
  107. package/dist/native/utils/query/index.d.ts.map +1 -0
  108. package/dist/native/utils/query/index.js +139 -0
  109. package/dist/native/utils/schema/wipeTables.d.ts +98 -0
  110. package/dist/native/utils/schema/wipeTables.d.ts.map +1 -0
  111. package/dist/native/utils/schema/wipeTables.js +188 -0
  112. package/dist/native/utils/sync/pullFromRemote/fetchOlder.d.ts +44 -0
  113. package/dist/native/utils/sync/pullFromRemote/fetchOlder.d.ts.map +1 -0
  114. package/dist/native/utils/sync/pullFromRemote/fetchOlder.js +55 -0
  115. package/dist/native/utils/sync/pullFromRemote/fetchOlderHelpers.d.ts +33 -0
  116. package/dist/native/utils/sync/pullFromRemote/fetchOlderHelpers.d.ts.map +1 -0
  117. package/dist/native/utils/sync/pullFromRemote/fetchOlderHelpers.js +104 -0
  118. package/dist/native/utils/sync/pullFromRemote/index.d.ts +5 -0
  119. package/dist/native/utils/sync/pullFromRemote/index.d.ts.map +1 -0
  120. package/dist/native/utils/sync/pullFromRemote/index.js +73 -0
  121. package/dist/native/utils/sync/pullFromRemote/pullData.d.ts +21 -0
  122. package/dist/native/utils/sync/pullFromRemote/pullData.d.ts.map +1 -0
  123. package/dist/native/utils/sync/pullFromRemote/pullData.js +80 -0
  124. package/dist/native/utils/sync/pullFromRemote/updateLocalDb.d.ts +46 -0
  125. package/dist/native/utils/sync/pullFromRemote/updateLocalDb.d.ts.map +1 -0
  126. package/dist/native/utils/sync/pullFromRemote/updateLocalDb.js +278 -0
  127. package/dist/native/utils/sync/pushLocal/index.d.ts +5 -0
  128. package/dist/native/utils/sync/pushLocal/index.d.ts.map +1 -0
  129. package/dist/native/utils/sync/pushLocal/index.js +101 -0
  130. package/dist/native/utils/sync/pushLocal/sendUnsyncedToSupabase.d.ts +6 -0
  131. package/dist/native/utils/sync/pushLocal/sendUnsyncedToSupabase.d.ts.map +1 -0
  132. package/dist/native/utils/sync/pushLocal/sendUnsyncedToSupabase.js +57 -0
  133. package/dist/native/utils/sync/pushLocal/uploadChunk.d.ts +8 -0
  134. package/dist/native/utils/sync/pushLocal/uploadChunk.d.ts.map +1 -0
  135. package/dist/native/utils/sync/pushLocal/uploadChunk.js +173 -0
  136. package/dist/native/utils/sync/pushLocal/uploadHelpers.d.ts +41 -0
  137. package/dist/native/utils/sync/pushLocal/uploadHelpers.d.ts.map +1 -0
  138. package/dist/native/utils/sync/pushLocal/uploadHelpers.js +243 -0
  139. package/dist/native/utils/sync/status/filterKey.d.ts +15 -0
  140. package/dist/native/utils/sync/status/filterKey.d.ts.map +1 -0
  141. package/dist/{utils → native/utils}/sync/status/filterKey.js +5 -16
  142. package/dist/native/utils/sync/status/repo.d.ts +10 -0
  143. package/dist/native/utils/sync/status/repo.d.ts.map +1 -0
  144. package/dist/native/utils/sync/status/repo.js +97 -0
  145. package/dist/native/utils/sync/status/services.d.ts +31 -0
  146. package/dist/native/utils/sync/status/services.d.ts.map +1 -0
  147. package/dist/native/utils/sync/status/services.js +107 -0
  148. package/dist/native/utils/sync/status/syncStatus.d.ts +109 -0
  149. package/dist/native/utils/sync/status/syncStatus.d.ts.map +1 -0
  150. package/dist/native/utils/sync/status/syncStatus.js +161 -0
  151. package/dist/shared/constants/syncDefaults.d.ts.map +1 -0
  152. package/dist/{core → shared/core}/config/index.d.ts +2 -0
  153. package/dist/shared/core/config/index.d.ts.map +1 -0
  154. package/dist/{core → shared/core}/config/index.js +9 -1
  155. package/dist/shared/core/platform/appState.d.ts +12 -0
  156. package/dist/shared/core/platform/appState.d.ts.map +1 -0
  157. package/dist/shared/core/platform/appState.js +11 -0
  158. package/dist/shared/db/adapters/expo_sqlite.d.ts +3 -0
  159. package/dist/shared/db/adapters/expo_sqlite.d.ts.map +1 -0
  160. package/dist/shared/db/adapters/expo_sqlite.js +72 -0
  161. package/dist/shared/db/adapters/rn_nitro.d.ts +3 -0
  162. package/dist/shared/db/adapters/rn_nitro.d.ts.map +1 -0
  163. package/dist/shared/db/adapters/rn_nitro.js +111 -0
  164. package/dist/shared/db/adapters/rn_sqlite_storage.d.ts +3 -0
  165. package/dist/shared/db/adapters/rn_sqlite_storage.d.ts.map +1 -0
  166. package/dist/shared/db/adapters/rn_sqlite_storage.js +93 -0
  167. package/dist/shared/db/adapters/tauri.d.ts +3 -0
  168. package/dist/shared/db/adapters/tauri.d.ts.map +1 -0
  169. package/dist/shared/db/adapters/tauri.js +100 -0
  170. package/dist/shared/db/dbErrorMsg.d.ts.map +1 -0
  171. package/dist/{db → shared/db}/dbErrorMsg.js +7 -0
  172. package/dist/{db → shared/db}/dbInitializer.d.ts +1 -1
  173. package/dist/shared/db/dbInitializer.d.ts.map +1 -0
  174. package/dist/{db → shared/db}/dbInitializer.js +28 -15
  175. package/dist/shared/db/normalizer.d.ts +6 -0
  176. package/dist/shared/db/normalizer.d.ts.map +1 -0
  177. package/dist/shared/db/normalizer.js +26 -0
  178. package/dist/{hooks → shared/hooks}/supastashFilters/index.d.ts +3 -3
  179. package/dist/shared/hooks/supastashFilters/index.d.ts.map +1 -0
  180. package/dist/{hooks → shared/hooks}/supastashFilters/index.js +6 -4
  181. package/dist/{hooks → shared/hooks}/syncStatus/index.d.ts +1 -1
  182. package/dist/shared/hooks/syncStatus/index.d.ts.map +1 -0
  183. package/dist/shared/store/localCache.d.ts.map +1 -0
  184. package/dist/shared/store/sharedDb.d.ts +6 -0
  185. package/dist/shared/store/sharedDb.d.ts.map +1 -0
  186. package/dist/shared/store/sharedDb.js +17 -0
  187. package/dist/shared/store/syncCalls.d.ts.map +1 -0
  188. package/dist/{store → shared/store}/syncStatus.d.ts +1 -1
  189. package/dist/shared/store/syncStatus.d.ts.map +1 -0
  190. package/dist/shared/store/tableFilters.d.ts +5 -0
  191. package/dist/shared/store/tableFilters.d.ts.map +1 -0
  192. package/dist/shared/store/tableSchemaData.d.ts.map +1 -0
  193. package/dist/shared/store/tx.d.ts +3 -0
  194. package/dist/shared/store/tx.d.ts.map +1 -0
  195. package/dist/shared/store/tx.js +1 -0
  196. package/dist/shared/types/adapters.types.d.ts +8 -0
  197. package/dist/{types → shared/types}/expoSqlite.types.d.ts +3 -13
  198. package/dist/{types → shared/types}/index.d.ts +1 -1
  199. package/dist/shared/types/index.d.ts.map +1 -0
  200. package/dist/{types → shared/types}/liteQuery.types.d.ts +2 -2
  201. package/dist/{types → shared/types}/query.types.d.ts +24 -1
  202. package/dist/{types → shared/types}/realtimeData.types.d.ts +8 -4
  203. package/dist/{types → shared/types}/supastashConfig.types.d.ts +263 -8
  204. package/dist/{types → shared/types}/syncEngine.types.d.ts +49 -7
  205. package/dist/shared/utils/connection.d.ts.map +1 -0
  206. package/dist/{utils → shared/utils}/connection.js +6 -6
  207. package/dist/shared/utils/errorHandler.d.ts +6 -0
  208. package/dist/shared/utils/errorHandler.d.ts.map +1 -0
  209. package/dist/shared/utils/errorHandler.js +8 -0
  210. package/dist/shared/utils/events/eventBus.d.ts.map +1 -0
  211. package/dist/shared/utils/fetchData/addPayloadToUI.d.ts.map +1 -0
  212. package/dist/shared/utils/fetchData/createTable.d.ts.map +1 -0
  213. package/dist/shared/utils/fetchData/createTable.js +38 -0
  214. package/dist/shared/utils/fetchData/dataState.d.ts.map +1 -0
  215. package/dist/{hooks/supastashData → shared/utils/fetchData}/dataState.js +1 -1
  216. package/dist/shared/utils/fetchData/deleteData.d.ts.map +1 -0
  217. package/dist/{utils → shared/utils}/fetchData/deleteData.js +8 -5
  218. package/dist/{utils → shared/utils}/fetchData/fetchLocalData.d.ts +2 -2
  219. package/dist/shared/utils/fetchData/fetchLocalData.d.ts.map +1 -0
  220. package/dist/shared/utils/fetchData/getKeyType.d.ts.map +1 -0
  221. package/dist/shared/utils/fetchData/liteHelpers.d.ts +6 -0
  222. package/dist/shared/utils/fetchData/liteHelpers.d.ts.map +1 -0
  223. package/dist/shared/utils/fetchData/liteHelpers.js +92 -0
  224. package/dist/shared/utils/fetchData/realTimeCall.d.ts.map +1 -0
  225. package/dist/{utils → shared/utils}/fetchData/realTimeCall.js +2 -2
  226. package/dist/shared/utils/fetchData/realTimeManager.d.ts.map +1 -0
  227. package/dist/shared/utils/fetchData/registerSub.d.ts +4 -0
  228. package/dist/shared/utils/fetchData/registerSub.d.ts.map +1 -0
  229. package/dist/{hooks/supastashData → shared/utils/fetchData}/registerSub.js +3 -3
  230. package/dist/shared/utils/fetchData/setDataInBatches.d.ts.map +1 -0
  231. package/dist/shared/utils/fetchData/snapShot.d.ts.map +1 -0
  232. package/dist/shared/utils/fetchData/validatePayload.d.ts.map +1 -0
  233. package/dist/shared/utils/genUUID.d.ts.map +1 -0
  234. package/dist/shared/utils/getSafeValues.d.ts.map +1 -0
  235. package/dist/shared/utils/getTableSchema.d.ts.map +1 -0
  236. package/dist/{utils → shared/utils}/logs.d.ts +1 -0
  237. package/dist/shared/utils/logs.d.ts.map +1 -0
  238. package/dist/{utils → shared/utils}/logs.js +6 -1
  239. package/dist/{utils → shared/utils}/query/builder/crud.d.ts +5 -5
  240. package/dist/shared/utils/query/builder/crud.d.ts.map +1 -0
  241. package/dist/{utils → shared/utils}/query/builder/filters.d.ts +36 -12
  242. package/dist/shared/utils/query/builder/filters.d.ts.map +1 -0
  243. package/dist/{utils → shared/utils}/query/builder/filters.js +33 -1
  244. package/dist/{utils → shared/utils}/query/builder/index.d.ts +29 -1
  245. package/dist/shared/utils/query/builder/index.d.ts.map +1 -0
  246. package/dist/shared/utils/query/builder/index.js +138 -0
  247. package/dist/shared/utils/query/builder/mainQuery.d.ts.map +1 -0
  248. package/dist/{utils → shared/utils}/query/builder/mainQuery.js +17 -2
  249. package/dist/shared/utils/query/helpers/localDb/getLocalMethod.d.ts +15 -0
  250. package/dist/shared/utils/query/helpers/localDb/getLocalMethod.d.ts.map +1 -0
  251. package/dist/{utils → shared/utils}/query/helpers/localDb/getLocalMethod.js +7 -6
  252. package/dist/{utils → shared/utils}/query/helpers/localDb/insertMany.d.ts +3 -0
  253. package/dist/shared/utils/query/helpers/localDb/insertMany.d.ts.map +1 -0
  254. package/dist/{utils → shared/utils}/query/helpers/localDb/insertMany.js +10 -3
  255. package/dist/shared/utils/query/helpers/localDb/localQueryBuilder.d.ts +34 -0
  256. package/dist/shared/utils/query/helpers/localDb/localQueryBuilder.d.ts.map +1 -0
  257. package/dist/{utils → shared/utils}/query/helpers/localDb/localQueryBuilder.js +17 -10
  258. package/dist/{utils → shared/utils}/query/helpers/localDb/upsertMany.d.ts +3 -0
  259. package/dist/shared/utils/query/helpers/localDb/upsertMany.d.ts.map +1 -0
  260. package/dist/{utils → shared/utils}/query/helpers/localDb/upsertMany.js +9 -2
  261. package/dist/shared/utils/query/helpers/mainQueryHelpers.d.ts.map +1 -0
  262. package/dist/{utils → shared/utils}/query/helpers/mainQueryHelpers.js +39 -9
  263. package/dist/shared/utils/query/helpers/queryValidator.d.ts.map +1 -0
  264. package/dist/shared/utils/query/helpers/queueRemote.d.ts.map +1 -0
  265. package/dist/{utils → shared/utils}/query/helpers/queueRemote.js +36 -27
  266. package/dist/shared/utils/query/helpers/remoteDb/queryFilterBuilder.d.ts.map +1 -0
  267. package/dist/shared/utils/query/helpers/remoteDb/queryUtils.d.ts.map +1 -0
  268. package/dist/shared/utils/query/localDbQuery/delete.d.ts +22 -0
  269. package/dist/shared/utils/query/localDbQuery/delete.d.ts.map +1 -0
  270. package/dist/{utils → shared/utils}/query/localDbQuery/delete.js +16 -5
  271. package/dist/shared/utils/query/localDbQuery/index.d.ts.map +1 -0
  272. package/dist/shared/utils/query/localDbQuery/index.js +15 -0
  273. package/dist/shared/utils/query/localDbQuery/insert.d.ts +10 -0
  274. package/dist/shared/utils/query/localDbQuery/insert.d.ts.map +1 -0
  275. package/dist/{utils → shared/utils}/query/localDbQuery/insert.js +8 -5
  276. package/dist/{utils → shared/utils}/query/localDbQuery/select.d.ts +2 -2
  277. package/dist/shared/utils/query/localDbQuery/select.d.ts.map +1 -0
  278. package/dist/{utils → shared/utils}/query/localDbQuery/select.js +5 -2
  279. package/dist/shared/utils/query/localDbQuery/update.d.ts +11 -0
  280. package/dist/shared/utils/query/localDbQuery/update.d.ts.map +1 -0
  281. package/dist/{utils → shared/utils}/query/localDbQuery/update.js +7 -4
  282. package/dist/shared/utils/query/localDbQuery/upsert.d.ts +9 -0
  283. package/dist/shared/utils/query/localDbQuery/upsert.d.ts.map +1 -0
  284. package/dist/{utils → shared/utils}/query/localDbQuery/upsert.js +8 -3
  285. package/dist/shared/utils/query/remoteQuery/supabaseQuery.d.ts.map +1 -0
  286. package/dist/{utils → shared/utils}/query/remoteQuery/supabaseQuery.js +5 -2
  287. package/dist/shared/utils/refreshScreenCalls.d.ts.map +1 -0
  288. package/dist/shared/utils/reusedHelpers.d.ts +8 -0
  289. package/dist/shared/utils/reusedHelpers.d.ts.map +1 -0
  290. package/dist/shared/utils/reusedHelpers.js +162 -0
  291. package/dist/shared/utils/schema/createSyncStatus.d.ts +19 -0
  292. package/dist/shared/utils/schema/createSyncStatus.d.ts.map +1 -0
  293. package/dist/{utils → shared/utils}/schema/createSyncStatus.js +30 -3
  294. package/dist/shared/utils/serializer.d.ts.map +1 -0
  295. package/dist/shared/utils/supabaseClientErr.d.ts.map +1 -0
  296. package/dist/shared/utils/supastashMode.d.ts.map +1 -0
  297. package/dist/shared/utils/sync/getAllTables.d.ts.map +1 -0
  298. package/dist/{utils → shared/utils}/sync/getAllTables.js +1 -1
  299. package/dist/shared/utils/sync/pullFromRemote/getLastCreatedInfo.d.ts.map +1 -0
  300. package/dist/shared/utils/sync/pullFromRemote/getLastDeletedInfo.d.ts.map +1 -0
  301. package/dist/shared/utils/sync/pullFromRemote/getLastPulledInfo.d.ts.map +1 -0
  302. package/dist/{utils → shared/utils}/sync/pullFromRemote/helpers.d.ts +10 -7
  303. package/dist/shared/utils/sync/pullFromRemote/helpers.d.ts.map +1 -0
  304. package/dist/{utils → shared/utils}/sync/pullFromRemote/helpers.js +20 -14
  305. package/dist/shared/utils/sync/pullFromRemote/runLimitedConcurrency.d.ts.map +1 -0
  306. package/dist/{utils → shared/utils}/sync/pullFromRemote/runLimitedConcurrency.js +1 -1
  307. package/dist/shared/utils/sync/pullFromRemote/stringifyFields.d.ts.map +1 -0
  308. package/dist/{utils → shared/utils}/sync/pullFromRemote/updateFilter.d.ts +1 -1
  309. package/dist/shared/utils/sync/pullFromRemote/updateFilter.d.ts.map +1 -0
  310. package/dist/{utils → shared/utils}/sync/pullFromRemote/updateFilter.js +5 -3
  311. package/dist/shared/utils/sync/pullFromRemote/validateFilters.d.ts +3 -0
  312. package/dist/shared/utils/sync/pullFromRemote/validateFilters.d.ts.map +1 -0
  313. package/dist/shared/utils/sync/pullFromRemote/validateFilters.js +49 -0
  314. package/dist/shared/utils/sync/pushLocal/deleteChunks.d.ts.map +1 -0
  315. package/dist/{utils → shared/utils}/sync/pushLocal/deleteChunks.js +7 -5
  316. package/dist/shared/utils/sync/pushLocal/getAllUnsyncedData.d.ts.map +1 -0
  317. package/dist/shared/utils/sync/pushLocal/getAllUnsyncedData.js +53 -0
  318. package/dist/shared/utils/sync/pushLocal/normalize.d.ts.map +1 -0
  319. package/dist/shared/utils/sync/pushLocal/parseFields.d.ts.map +1 -0
  320. package/dist/{utils → shared/utils}/sync/queryStatus.d.ts +1 -1
  321. package/dist/shared/utils/sync/queryStatus.d.ts.map +1 -0
  322. package/dist/shared/utils/sync/refreshTables.d.ts.map +1 -0
  323. package/dist/shared/utils/sync/registration/syncCalls.d.ts.map +1 -0
  324. package/dist/{utils → shared/utils}/sync/registration/syncCalls.js +1 -1
  325. package/dist/shared/utils/sync/status/remoteSchema.d.ts +4 -0
  326. package/dist/shared/utils/sync/status/remoteSchema.d.ts.map +1 -0
  327. package/dist/shared/utils/sync/status/remoteSchema.js +140 -0
  328. package/dist/shared/utils/sync/status/syncUpdate.d.ts.map +1 -0
  329. package/dist/shared/utils/tableValidator.d.ts.map +1 -0
  330. package/package.json +29 -12
  331. package/dist/constants/syncDefaults.d.ts.map +0 -1
  332. package/dist/core/config/index.d.ts.map +0 -1
  333. package/dist/core/schemaManager/index.d.ts.map +0 -1
  334. package/dist/db/adapters/expo_sqlite.d.ts +0 -3
  335. package/dist/db/adapters/expo_sqlite.d.ts.map +0 -1
  336. package/dist/db/adapters/expo_sqlite.js +0 -24
  337. package/dist/db/adapters/rn_nitro.d.ts +0 -3
  338. package/dist/db/adapters/rn_nitro.d.ts.map +0 -1
  339. package/dist/db/adapters/rn_nitro.js +0 -34
  340. package/dist/db/adapters/rn_sqlite_storage.d.ts +0 -3
  341. package/dist/db/adapters/rn_sqlite_storage.d.ts.map +0 -1
  342. package/dist/db/adapters/rn_sqlite_storage.js +0 -25
  343. package/dist/db/dbErrorMsg.d.ts.map +0 -1
  344. package/dist/db/dbInitializer.d.ts.map +0 -1
  345. package/dist/hooks/supastashData/addPayloadToUI.d.ts.map +0 -1
  346. package/dist/hooks/supastashData/dataState.d.ts.map +0 -1
  347. package/dist/hooks/supastashData/eventQueues.d.ts.map +0 -1
  348. package/dist/hooks/supastashData/fetchCalls.d.ts.map +0 -1
  349. package/dist/hooks/supastashData/index.d.ts.map +0 -1
  350. package/dist/hooks/supastashData/realtimeSubscription.d.ts +0 -5
  351. package/dist/hooks/supastashData/realtimeSubscription.d.ts.map +0 -1
  352. package/dist/hooks/supastashData/realtimeSubscription.js +0 -96
  353. package/dist/hooks/supastashData/registerSub.d.ts +0 -4
  354. package/dist/hooks/supastashData/registerSub.d.ts.map +0 -1
  355. package/dist/hooks/supastashFilters/index.d.ts.map +0 -1
  356. package/dist/hooks/supastashLiteQuery/fetchCalls.d.ts +0 -1
  357. package/dist/hooks/supastashLiteQuery/fetchCalls.d.ts.map +0 -1
  358. package/dist/hooks/supastashLiteQuery/fetchCalls.js +0 -122
  359. package/dist/hooks/supastashLiteQuery/index.d.ts +0 -53
  360. package/dist/hooks/supastashLiteQuery/index.d.ts.map +0 -1
  361. package/dist/hooks/supastashLiteQuery/index.js +0 -117
  362. package/dist/hooks/supastashLiteQuery/loadCacheOnMount.d.ts +0 -1
  363. package/dist/hooks/supastashLiteQuery/loadCacheOnMount.d.ts.map +0 -1
  364. package/dist/hooks/supastashLiteQuery/loadCacheOnMount.js +0 -1
  365. package/dist/hooks/supastashLogic.d.ts.map +0 -1
  366. package/dist/hooks/syncEngine/index.d.ts.map +0 -1
  367. package/dist/hooks/syncEngine/pullFromRemote/index.d.ts.map +0 -1
  368. package/dist/hooks/syncEngine/pushLocal/index.d.ts.map +0 -1
  369. package/dist/hooks/syncStatus/index.d.ts.map +0 -1
  370. package/dist/store/localCache.d.ts.map +0 -1
  371. package/dist/store/syncCalls.d.ts.map +0 -1
  372. package/dist/store/syncStatus.d.ts.map +0 -1
  373. package/dist/store/tableFilters.d.ts +0 -5
  374. package/dist/store/tableFilters.d.ts.map +0 -1
  375. package/dist/store/tableSchemaData.d.ts.map +0 -1
  376. package/dist/types/index.d.ts.map +0 -1
  377. package/dist/types/supastashFilters.types.d.ts +0 -3
  378. package/dist/utils/connection.d.ts.map +0 -1
  379. package/dist/utils/createIndexes.d.ts +0 -9
  380. package/dist/utils/createIndexes.d.ts.map +0 -1
  381. package/dist/utils/createIndexes.js +0 -74
  382. package/dist/utils/events/eventBus.d.ts.map +0 -1
  383. package/dist/utils/fetchData/buildFilter.d.ts +0 -4
  384. package/dist/utils/fetchData/buildFilter.d.ts.map +0 -1
  385. package/dist/utils/fetchData/buildFilter.js +0 -58
  386. package/dist/utils/fetchData/createTable.d.ts.map +0 -1
  387. package/dist/utils/fetchData/createTable.js +0 -81
  388. package/dist/utils/fetchData/deleteData.d.ts.map +0 -1
  389. package/dist/utils/fetchData/fetchLocalData.d.ts.map +0 -1
  390. package/dist/utils/fetchData/getKeyType.d.ts.map +0 -1
  391. package/dist/utils/fetchData/initialFetch.d.ts +0 -3
  392. package/dist/utils/fetchData/initialFetch.d.ts.map +0 -1
  393. package/dist/utils/fetchData/liteHelpers.d.ts +0 -6
  394. package/dist/utils/fetchData/liteHelpers.d.ts.map +0 -1
  395. package/dist/utils/fetchData/liteHelpers.js +0 -197
  396. package/dist/utils/fetchData/liteReducer.d.ts +0 -3
  397. package/dist/utils/fetchData/liteReducer.d.ts.map +0 -1
  398. package/dist/utils/fetchData/liteReducer.js +0 -103
  399. package/dist/utils/fetchData/realTimeCall.d.ts.map +0 -1
  400. package/dist/utils/fetchData/realTimeManager.d.ts.map +0 -1
  401. package/dist/utils/fetchData/receiveData.d.ts.map +0 -1
  402. package/dist/utils/fetchData/setDataInBatches.d.ts.map +0 -1
  403. package/dist/utils/fetchData/snapShot.d.ts.map +0 -1
  404. package/dist/utils/fetchData/validatePayload.d.ts.map +0 -1
  405. package/dist/utils/genUUID.d.ts.map +0 -1
  406. package/dist/utils/getSafeValues.d.ts.map +0 -1
  407. package/dist/utils/getTableSchema.d.ts.map +0 -1
  408. package/dist/utils/logs.d.ts.map +0 -1
  409. package/dist/utils/query/builder/crud.d.ts.map +0 -1
  410. package/dist/utils/query/builder/filters.d.ts.map +0 -1
  411. package/dist/utils/query/builder/index.d.ts.map +0 -1
  412. package/dist/utils/query/builder/index.js +0 -62
  413. package/dist/utils/query/builder/mainQuery.d.ts.map +0 -1
  414. package/dist/utils/query/helpers/localDb/getLocalMethod.d.ts +0 -15
  415. package/dist/utils/query/helpers/localDb/getLocalMethod.d.ts.map +0 -1
  416. package/dist/utils/query/helpers/localDb/insertMany.d.ts.map +0 -1
  417. package/dist/utils/query/helpers/localDb/localQueryBuilder.d.ts +0 -34
  418. package/dist/utils/query/helpers/localDb/localQueryBuilder.d.ts.map +0 -1
  419. package/dist/utils/query/helpers/localDb/upsertMany.d.ts.map +0 -1
  420. package/dist/utils/query/helpers/mainQueryHelpers.d.ts.map +0 -1
  421. package/dist/utils/query/helpers/queryValidator.d.ts.map +0 -1
  422. package/dist/utils/query/helpers/queueRemote.d.ts.map +0 -1
  423. package/dist/utils/query/helpers/remoteDb/queryFilterBuilder.d.ts.map +0 -1
  424. package/dist/utils/query/helpers/remoteDb/queryUtils.d.ts.map +0 -1
  425. package/dist/utils/query/localDbQuery/delete.d.ts +0 -16
  426. package/dist/utils/query/localDbQuery/delete.d.ts.map +0 -1
  427. package/dist/utils/query/localDbQuery/index.d.ts.map +0 -1
  428. package/dist/utils/query/localDbQuery/index.js +0 -15
  429. package/dist/utils/query/localDbQuery/insert.d.ts +0 -10
  430. package/dist/utils/query/localDbQuery/insert.d.ts.map +0 -1
  431. package/dist/utils/query/localDbQuery/select.d.ts.map +0 -1
  432. package/dist/utils/query/localDbQuery/update.d.ts +0 -11
  433. package/dist/utils/query/localDbQuery/update.d.ts.map +0 -1
  434. package/dist/utils/query/localDbQuery/upsert.d.ts +0 -9
  435. package/dist/utils/query/localDbQuery/upsert.d.ts.map +0 -1
  436. package/dist/utils/query/remoteQuery/supabaseQuery.d.ts.map +0 -1
  437. package/dist/utils/refreshScreenCalls.d.ts.map +0 -1
  438. package/dist/utils/schema/createSyncStatus.d.ts +0 -17
  439. package/dist/utils/schema/createSyncStatus.d.ts.map +0 -1
  440. package/dist/utils/schema/wipeTables.d.ts.map +0 -1
  441. package/dist/utils/serializer.d.ts.map +0 -1
  442. package/dist/utils/supabaseClientErr.d.ts.map +0 -1
  443. package/dist/utils/supastashMode.d.ts.map +0 -1
  444. package/dist/utils/sync/getAllTables.d.ts.map +0 -1
  445. package/dist/utils/sync/pullFromRemote/getLastCreatedInfo.d.ts.map +0 -1
  446. package/dist/utils/sync/pullFromRemote/getLastDeletedInfo.d.ts.map +0 -1
  447. package/dist/utils/sync/pullFromRemote/getLastPulledInfo.d.ts.map +0 -1
  448. package/dist/utils/sync/pullFromRemote/helpers.d.ts.map +0 -1
  449. package/dist/utils/sync/pullFromRemote/pullData.d.ts.map +0 -1
  450. package/dist/utils/sync/pullFromRemote/pullDeletedData.d.ts +0 -12
  451. package/dist/utils/sync/pullFromRemote/pullDeletedData.d.ts.map +0 -1
  452. package/dist/utils/sync/pullFromRemote/pullDeletedData.js +0 -51
  453. package/dist/utils/sync/pullFromRemote/runLimitedConcurrency.d.ts.map +0 -1
  454. package/dist/utils/sync/pullFromRemote/stringifyFields.d.ts.map +0 -1
  455. package/dist/utils/sync/pullFromRemote/updateFilter.d.ts.map +0 -1
  456. package/dist/utils/sync/pullFromRemote/updateLocalDb.d.ts +0 -14
  457. package/dist/utils/sync/pullFromRemote/updateLocalDb.d.ts.map +0 -1
  458. package/dist/utils/sync/pullFromRemote/updateLocalDb.js +0 -200
  459. package/dist/utils/sync/pullFromRemote/validateFilters.d.ts +0 -5
  460. package/dist/utils/sync/pullFromRemote/validateFilters.d.ts.map +0 -1
  461. package/dist/utils/sync/pullFromRemote/validateFilters.js +0 -103
  462. package/dist/utils/sync/pushLocal/deleteChunks.d.ts.map +0 -1
  463. package/dist/utils/sync/pushLocal/getAllUnsyncedData.d.ts.map +0 -1
  464. package/dist/utils/sync/pushLocal/getAllUnsyncedData.js +0 -85
  465. package/dist/utils/sync/pushLocal/normalize.d.ts.map +0 -1
  466. package/dist/utils/sync/pushLocal/parseFields.d.ts.map +0 -1
  467. package/dist/utils/sync/pushLocal/sendUnsyncedToSupabase.d.ts.map +0 -1
  468. package/dist/utils/sync/pushLocal/uploadChunk.d.ts.map +0 -1
  469. package/dist/utils/sync/pushLocal/uploadHelpers.d.ts.map +0 -1
  470. package/dist/utils/sync/queryStatus.d.ts.map +0 -1
  471. package/dist/utils/sync/refreshTables.d.ts.map +0 -1
  472. package/dist/utils/sync/registration/syncCalls.d.ts.map +0 -1
  473. package/dist/utils/sync/status/filterKey.d.ts.map +0 -1
  474. package/dist/utils/sync/status/repo.d.ts +0 -10
  475. package/dist/utils/sync/status/repo.d.ts.map +0 -1
  476. package/dist/utils/sync/status/services.d.ts.map +0 -1
  477. package/dist/utils/sync/status/syncStatus.d.ts.map +0 -1
  478. package/dist/utils/sync/status/syncUpdate.d.ts.map +0 -1
  479. package/dist/utils/syncStatus.d.ts +0 -69
  480. package/dist/utils/syncStatus.d.ts.map +0 -1
  481. package/dist/utils/syncStatus.js +0 -129
  482. package/dist/utils/syncUpdate.d.ts +0 -7
  483. package/dist/utils/syncUpdate.d.ts.map +0 -1
  484. package/dist/utils/syncUpdate.js +0 -18
  485. package/dist/utils/tableValidator.d.ts.map +0 -1
  486. package/dist/utils/toggleSupastashMode.d.ts +0 -28
  487. package/dist/utils/toggleSupastashMode.d.ts.map +0 -1
  488. package/dist/utils/toggleSupastashMode.js +0 -46
  489. /package/dist/{utils → desktop/utils}/schema/wipeTables.d.ts +0 -0
  490. /package/dist/{hooks/syncEngine → desktop/utils/sync}/pullFromRemote/index.d.ts +0 -0
  491. /package/dist/{hooks/syncEngine → desktop/utils/sync}/pushLocal/index.d.ts +0 -0
  492. /package/dist/{utils → desktop/utils}/sync/pushLocal/sendUnsyncedToSupabase.d.ts +0 -0
  493. /package/dist/{constants → shared/constants}/syncDefaults.d.ts +0 -0
  494. /package/dist/{constants → shared/constants}/syncDefaults.js +0 -0
  495. /package/dist/{db → shared/db}/dbErrorMsg.d.ts +0 -0
  496. /package/dist/{hooks → shared/hooks}/syncStatus/index.js +0 -0
  497. /package/dist/{store → shared/store}/localCache.d.ts +0 -0
  498. /package/dist/{store → shared/store}/localCache.js +0 -0
  499. /package/dist/{store → shared/store}/syncCalls.d.ts +0 -0
  500. /package/dist/{store → shared/store}/syncCalls.js +0 -0
  501. /package/dist/{store → shared/store}/syncStatus.js +0 -0
  502. /package/dist/{store → shared/store}/tableFilters.js +0 -0
  503. /package/dist/{store → shared/store}/tableSchemaData.d.ts +0 -0
  504. /package/dist/{store → shared/store}/tableSchemaData.js +0 -0
  505. /package/dist/{types → shared/types}/index.js +0 -0
  506. /package/dist/{types → shared/types}/rnNitroSqlite.types.d.ts +0 -0
  507. /package/dist/{types → shared/types}/rnSqliteStorage.types.d.ts +0 -0
  508. /package/dist/{types → shared/types}/schemaManager.types.d.ts +0 -0
  509. /package/dist/{utils → shared/utils}/connection.d.ts +0 -0
  510. /package/dist/{utils → shared/utils}/events/eventBus.d.ts +0 -0
  511. /package/dist/{utils → shared/utils}/events/eventBus.js +0 -0
  512. /package/dist/{hooks/supastashData → shared/utils/fetchData}/addPayloadToUI.d.ts +0 -0
  513. /package/dist/{hooks/supastashData → shared/utils/fetchData}/addPayloadToUI.js +0 -0
  514. /package/dist/{utils → shared/utils}/fetchData/createTable.d.ts +0 -0
  515. /package/dist/{hooks/supastashData → shared/utils/fetchData}/dataState.d.ts +0 -0
  516. /package/dist/{utils → shared/utils}/fetchData/deleteData.d.ts +0 -0
  517. /package/dist/{utils → shared/utils}/fetchData/fetchLocalData.js +0 -0
  518. /package/dist/{utils → shared/utils}/fetchData/getKeyType.d.ts +0 -0
  519. /package/dist/{utils → shared/utils}/fetchData/getKeyType.js +0 -0
  520. /package/dist/{utils → shared/utils}/fetchData/realTimeCall.d.ts +0 -0
  521. /package/dist/{utils → shared/utils}/fetchData/realTimeManager.d.ts +0 -0
  522. /package/dist/{utils → shared/utils}/fetchData/realTimeManager.js +0 -0
  523. /package/dist/{utils → shared/utils}/fetchData/setDataInBatches.d.ts +0 -0
  524. /package/dist/{utils → shared/utils}/fetchData/setDataInBatches.js +0 -0
  525. /package/dist/{utils → shared/utils}/fetchData/snapShot.d.ts +0 -0
  526. /package/dist/{utils → shared/utils}/fetchData/snapShot.js +0 -0
  527. /package/dist/{utils → shared/utils}/fetchData/validatePayload.d.ts +0 -0
  528. /package/dist/{utils → shared/utils}/fetchData/validatePayload.js +0 -0
  529. /package/dist/{utils → shared/utils}/genUUID.d.ts +0 -0
  530. /package/dist/{utils → shared/utils}/genUUID.js +0 -0
  531. /package/dist/{utils → shared/utils}/getSafeValues.d.ts +0 -0
  532. /package/dist/{utils → shared/utils}/getSafeValues.js +0 -0
  533. /package/dist/{utils → shared/utils}/getTableSchema.d.ts +0 -0
  534. /package/dist/{utils → shared/utils}/getTableSchema.js +0 -0
  535. /package/dist/{utils → shared/utils}/query/builder/crud.js +0 -0
  536. /package/dist/{utils → shared/utils}/query/builder/mainQuery.d.ts +0 -0
  537. /package/dist/{utils → shared/utils}/query/helpers/mainQueryHelpers.d.ts +0 -0
  538. /package/dist/{utils → shared/utils}/query/helpers/queryValidator.d.ts +0 -0
  539. /package/dist/{utils → shared/utils}/query/helpers/queryValidator.js +0 -0
  540. /package/dist/{utils → shared/utils}/query/helpers/queueRemote.d.ts +0 -0
  541. /package/dist/{utils → shared/utils}/query/helpers/remoteDb/queryFilterBuilder.d.ts +0 -0
  542. /package/dist/{utils → shared/utils}/query/helpers/remoteDb/queryFilterBuilder.js +0 -0
  543. /package/dist/{utils → shared/utils}/query/helpers/remoteDb/queryUtils.d.ts +0 -0
  544. /package/dist/{utils → shared/utils}/query/helpers/remoteDb/queryUtils.js +0 -0
  545. /package/dist/{utils → shared/utils}/query/localDbQuery/index.d.ts +0 -0
  546. /package/dist/{utils → shared/utils}/query/remoteQuery/supabaseQuery.d.ts +0 -0
  547. /package/dist/{utils → shared/utils}/refreshScreenCalls.d.ts +0 -0
  548. /package/dist/{utils → shared/utils}/refreshScreenCalls.js +0 -0
  549. /package/dist/{utils → shared/utils}/serializer.d.ts +0 -0
  550. /package/dist/{utils → shared/utils}/serializer.js +0 -0
  551. /package/dist/{utils → shared/utils}/supabaseClientErr.d.ts +0 -0
  552. /package/dist/{utils → shared/utils}/supabaseClientErr.js +0 -0
  553. /package/dist/{utils → shared/utils}/supastashMode.d.ts +0 -0
  554. /package/dist/{utils → shared/utils}/supastashMode.js +0 -0
  555. /package/dist/{utils → shared/utils}/sync/getAllTables.d.ts +0 -0
  556. /package/dist/{utils → shared/utils}/sync/pullFromRemote/getLastCreatedInfo.d.ts +0 -0
  557. /package/dist/{utils → shared/utils}/sync/pullFromRemote/getLastCreatedInfo.js +0 -0
  558. /package/dist/{utils → shared/utils}/sync/pullFromRemote/getLastDeletedInfo.d.ts +0 -0
  559. /package/dist/{utils → shared/utils}/sync/pullFromRemote/getLastDeletedInfo.js +0 -0
  560. /package/dist/{utils → shared/utils}/sync/pullFromRemote/getLastPulledInfo.d.ts +0 -0
  561. /package/dist/{utils → shared/utils}/sync/pullFromRemote/getLastPulledInfo.js +0 -0
  562. /package/dist/{utils → shared/utils}/sync/pullFromRemote/runLimitedConcurrency.d.ts +0 -0
  563. /package/dist/{utils → shared/utils}/sync/pullFromRemote/stringifyFields.d.ts +0 -0
  564. /package/dist/{utils → shared/utils}/sync/pullFromRemote/stringifyFields.js +0 -0
  565. /package/dist/{utils → shared/utils}/sync/pushLocal/deleteChunks.d.ts +0 -0
  566. /package/dist/{utils → shared/utils}/sync/pushLocal/getAllUnsyncedData.d.ts +0 -0
  567. /package/dist/{utils → shared/utils}/sync/pushLocal/normalize.d.ts +0 -0
  568. /package/dist/{utils → shared/utils}/sync/pushLocal/normalize.js +0 -0
  569. /package/dist/{utils → shared/utils}/sync/pushLocal/parseFields.d.ts +0 -0
  570. /package/dist/{utils → shared/utils}/sync/pushLocal/parseFields.js +0 -0
  571. /package/dist/{utils → shared/utils}/sync/queryStatus.js +0 -0
  572. /package/dist/{utils → shared/utils}/sync/refreshTables.d.ts +0 -0
  573. /package/dist/{utils → shared/utils}/sync/refreshTables.js +0 -0
  574. /package/dist/{utils → shared/utils}/sync/registration/syncCalls.d.ts +0 -0
  575. /package/dist/{utils → shared/utils}/sync/status/syncUpdate.d.ts +0 -0
  576. /package/dist/{utils → shared/utils}/sync/status/syncUpdate.js +0 -0
  577. /package/dist/{utils → shared/utils}/tableValidator.d.ts +0 -0
  578. /package/dist/{utils → shared/utils}/tableValidator.js +0 -0
@@ -1,5 +1,5 @@
1
- import { PayloadData } from "../../../types/query.types";
2
- import { RealtimeFilter } from "../../../types/realtimeData.types";
1
+ import { PayloadData } from "../../../../shared/types/query.types";
2
+ import { SupastashFilter } from "../../../../shared/types/realtimeData.types";
3
3
  /**
4
4
  * Pulls data from the remote database for a given table
5
5
  * @param table - The table to pull data from
@@ -7,13 +7,12 @@ import { RealtimeFilter } from "../../../types/realtimeData.types";
7
7
  */
8
8
  export declare function pullData({ table, filters, batchId, }: {
9
9
  table: string;
10
- filters?: RealtimeFilter[];
10
+ filters?: SupastashFilter[];
11
11
  batchId: string;
12
12
  }): Promise<{
13
13
  data: PayloadData[];
14
14
  deletedIds: string[];
15
15
  timestamps: {
16
- createdMax: string | null;
17
16
  updatedMax: string | null;
18
17
  deletedMax: string | null;
19
18
  updatedMaxPk: string | null;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pullData.d.ts","sourceRoot":"","sources":["../../../../../src/desktop/utils/sync/pullFromRemote/pullData.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAW9E;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,EAC7B,KAAK,EACL,OAAO,EACP,OAAO,GACR,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC;IACV,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE;QACV,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B,CAAC;CACH,GAAG,IAAI,CAAC,CAmFR"}
@@ -1,11 +1,11 @@
1
- import { getSupastashConfig } from "../../../core/config";
2
- import { getSupastashDb } from "../../../db/dbInitializer";
3
- import log, { logWarn } from "../../logs";
4
- import { supabaseClientErr } from "../../supabaseClientErr";
5
- import { SyncInfoUpdater } from "../queryStatus";
1
+ import { getSupastashConfig } from "../../../../shared/core/config";
2
+ import { getSupastashDb } from "../../../../shared/db/dbInitializer";
3
+ import log, { logWarn } from "../../../../shared/utils/logs";
4
+ import { supabaseClientErr } from "../../../../shared/utils/supabaseClientErr";
5
+ import { logNoUpdates, pageThrough, returnMaxDate, } from "../../../../shared/utils/sync/pullFromRemote/helpers";
6
+ import { SyncInfoUpdater } from "../../../../shared/utils/sync/queryStatus";
6
7
  import { computeFilterKey } from "../status/filterKey";
7
8
  import { selectSyncStatus } from "../status/repo";
8
- import { logNoUpdates, pageThrough, returnMaxDate } from "./helpers";
9
9
  /**
10
10
  * Pulls data from the remote database for a given table
11
11
  * @param table - The table to pull data from
@@ -29,8 +29,10 @@ export async function pullData({ table, filters, batchId, }) {
29
29
  });
30
30
  const db = await getSupastashDb();
31
31
  const syncStatus = await selectSyncStatus(db, table, filters);
32
+ const cfg = getSupastashConfig();
33
+ const tsCol = cfg.replicationMode === "server-side" ? "arrived_at" : "updated_at";
32
34
  const updatedRows = await pageThrough({
33
- tsCol: "updated_at",
35
+ tsCol,
34
36
  since: syncStatus.last_synced_at,
35
37
  table,
36
38
  filters,
@@ -39,7 +41,6 @@ export async function pullData({ table, filters, batchId, }) {
39
41
  });
40
42
  const updatedData = [];
41
43
  let deletedIds = [];
42
- let createdMax = null;
43
44
  let updatedMax = null;
44
45
  let deletedMax = null;
45
46
  for (const r of updatedRows) {
@@ -47,15 +48,10 @@ export async function pullData({ table, filters, batchId, }) {
47
48
  logWarn(`[Supastash] Skipped row without id from "${table}"`);
48
49
  continue;
49
50
  }
50
- createdMax = returnMaxDate({
51
- row: r,
52
- prevMax: createdMax,
53
- col: "created_at",
54
- });
55
51
  updatedMax = returnMaxDate({
56
52
  row: r,
57
53
  prevMax: updatedMax,
58
- col: "updated_at",
54
+ col: tsCol,
59
55
  });
60
56
  // If the row is deleted, add the id to the deleted ids and update the deleted max
61
57
  if (r.deleted_at) {
@@ -75,7 +71,6 @@ export async function pullData({ table, filters, batchId, }) {
75
71
  return null;
76
72
  }
77
73
  const timestamps = {
78
- createdMax: createdMax?.value ?? null,
79
74
  updatedMax: updatedMax?.value ?? null,
80
75
  deletedMax: deletedMax?.value ?? null,
81
76
  updatedMaxPk: updatedMax?.pk ?? null,
@@ -0,0 +1,46 @@
1
+ import { SupastashFilter } from "../../../../shared/types/realtimeData.types";
2
+ import { UpsertDataParams } from "../../../../shared/types/syncEngine.types";
3
+ /**
4
+ * Updates the local database with the remote changes
5
+ * @param table - The table to update
6
+ */
7
+ export declare function updateLocalDb(table: string, filters?: SupastashFilter[], onReceiveData?: (payload: any) => Promise<void>): Promise<void>;
8
+ /**
9
+ * Upserts a record into the local database
10
+ * @param table - The table to upsert the record into
11
+ * @param record - The record to upsert
12
+ * @param exists - Whether the record already exists in the database
13
+ */
14
+ export declare function upsertData({ tx, table, record, doesExist, }: UpsertDataParams): Promise<void>;
15
+ /**
16
+ • Bulk upserts records into a local SQLite table using a batched, conflict-aware strategy.
17
+
18
+ • This function:
19
+ • • Fetches existing id and updated_at values in bulk to avoid per-row queries
20
+ • • Filters incoming records to only include new or more recent entries
21
+ • • Performs batched INSERT ... ON CONFLICT(id) DO UPDATE operations
22
+ • while respecting SQLite parameter limits
23
+ • • Updates synced_at for successfully written records
24
+
25
+ • Designed for high-performance sync scenarios in offline-first apps.
26
+
27
+ • Key guarantees:
28
+ • • Avoids N+1 query patterns (no per-row existence checks)
29
+ • • Minimizes disk I/O pressure via batching
30
+ • • Safe for large datasets when used with chunking
31
+
32
+ • Notes:
33
+ • • Assumes id is the primary or unique key
34
+ • • Requires updated_at for conflict resolution (falls back if missing)
35
+ • • Respects SQLite parameter limit (~999 variables per query)
36
+
37
+ • @param tx Optional transaction instance. If not provided, a connection is used directly.
38
+ • @param table Target table name
39
+ • @param records Array of records to upsert
40
+ */
41
+ export declare function upsertChunkData({ tx, table, records, }: {
42
+ tx?: any;
43
+ table: string;
44
+ records: any[];
45
+ }): Promise<void>;
46
+ //# sourceMappingURL=updateLocalDb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateLocalDb.d.ts","sourceRoot":"","sources":["../../../../../src/desktop/utils/sync/pullFromRemote/updateLocalDb.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAiB7E;;;GAGG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,eAAe,EAAE,EAC3B,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,iBAsGhD;AAID;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,EAC/B,EAAE,EACF,KAAK,EACL,MAAM,EACN,SAAS,GACV,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqElC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;EAyBE;AACF,wBAAsB,eAAe,CAAC,EACpC,EAAE,EACF,KAAK,EACL,OAAO,GACR,EAAE;IACD,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,GAAG,EAAE,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgGhB"}
@@ -0,0 +1,284 @@
1
+ import { getSupastashConfig } from "../../../../shared/core/config";
2
+ import { getSupastashDb } from "../../../../shared/db/dbInitializer";
3
+ import { DEFAULT_RECEIVED_DATA_COMPLETED, RECEIVED_DATA_COMPLETED_MAP, } from "../../../../shared/store/syncStatus";
4
+ import { generateUUIDv4 } from "../../../../shared/utils/genUUID";
5
+ import { getTableSchema } from "../../../../shared/utils/getTableSchema";
6
+ import log, { logError, logWarn } from "../../../../shared/utils/logs";
7
+ import { refreshScreen } from "../../../../shared/utils/refreshScreenCalls";
8
+ import { deleteReceivedDataCompleted } from "../../../../shared/utils/sync/pullFromRemote/helpers";
9
+ import { stringifyValue } from "../../../../shared/utils/sync/pullFromRemote/stringifyFields";
10
+ import { SyncInfoUpdater } from "../../../../shared/utils/sync/queryStatus";
11
+ import { updateLocalSyncedAt } from "../../../../shared/utils/sync/status/syncUpdate";
12
+ import { setSupastashSyncStatus } from "../status/services";
13
+ import { pullData } from "./pullData";
14
+ let isInSync = new Map();
15
+ const DEFAULT_DATE = "1970-01-01T00:00:00Z";
16
+ const BATCH_SIZE = 500;
17
+ const CHUNK_SIZE = 999;
18
+ /**
19
+ * Updates the local database with the remote changes
20
+ * @param table - The table to update
21
+ */
22
+ export async function updateLocalDb(table, filters, onReceiveData) {
23
+ if (isInSync.get(table))
24
+ return;
25
+ const cfg = getSupastashConfig();
26
+ if (cfg.supastashMode === "ghost")
27
+ return;
28
+ isInSync.set(table, true);
29
+ const batchId = generateUUIDv4();
30
+ try {
31
+ const db = await getSupastashDb();
32
+ // Initialize the batch completed map
33
+ RECEIVED_DATA_COMPLETED_MAP[batchId] = {
34
+ arrived_at: DEFAULT_RECEIVED_DATA_COMPLETED,
35
+ updated_at: DEFAULT_RECEIVED_DATA_COMPLETED,
36
+ };
37
+ let refreshNeeded = false;
38
+ while (true) {
39
+ const dataResult = await pullData({ table, filters, batchId });
40
+ if (!dataResult)
41
+ break;
42
+ const data = dataResult?.data;
43
+ const timestamps = dataResult.timestamps;
44
+ const deletedIds = dataResult.deletedIds;
45
+ const deletedIdSet = new Set(deletedIds ?? []);
46
+ SyncInfoUpdater.setUnsyncedDataCount({
47
+ amount: data?.length ?? 0,
48
+ type: "pull",
49
+ table,
50
+ });
51
+ SyncInfoUpdater.setUnsyncedDeletedCount({
52
+ amount: deletedIds?.length ?? 0,
53
+ type: "pull",
54
+ table,
55
+ });
56
+ refreshNeeded = !!data?.length || !!deletedIds?.length;
57
+ // Delete records that are no longer in the remote data
58
+ await db.withTransaction(async (tx) => {
59
+ if (deletedIds && deletedIds.length > 0) {
60
+ const ids = deletedIds;
61
+ for (let i = 0; i < ids.length; i += CHUNK_SIZE) {
62
+ const slice = ids.slice(i, i + CHUNK_SIZE);
63
+ const placeholders = slice.map(() => "?").join(", ");
64
+ await tx.runAsync(`DELETE FROM ${table} WHERE id IN (${placeholders})`, slice);
65
+ }
66
+ }
67
+ // Get the local stamp of the records
68
+ let localStamp = new Map();
69
+ if (data?.length) {
70
+ const ids = data.map((r) => r.id).filter(Boolean);
71
+ for (let i = 0; i < ids.length; i += CHUNK_SIZE) {
72
+ const slice = ids.slice(i, i + CHUNK_SIZE);
73
+ const placeholders = slice.map(() => "?").join(", ");
74
+ const rows = await db.getAllAsync(`SELECT id, updated_at FROM ${table} WHERE id IN (${placeholders})`, slice);
75
+ for (const row of rows ?? []) {
76
+ localStamp.set(row.id, row.updated_at ?? null);
77
+ }
78
+ }
79
+ }
80
+ // Update local database with remote changes
81
+ if (data?.length) {
82
+ await upsertChunkData({
83
+ tx,
84
+ table,
85
+ records: data,
86
+ });
87
+ }
88
+ });
89
+ if (timestamps) {
90
+ await setSupastashSyncStatus(table, filters, {
91
+ lastSyncedAt: timestamps.updatedMax,
92
+ lastDeletedAt: timestamps.deletedMax,
93
+ lastSyncedAtPk: timestamps.updatedMaxPk,
94
+ filterNamespace: "global",
95
+ });
96
+ }
97
+ const completedSet = RECEIVED_DATA_COMPLETED_MAP[batchId];
98
+ if (Object.values(completedSet ?? {}).every(Boolean)) {
99
+ break;
100
+ }
101
+ }
102
+ if (refreshNeeded)
103
+ refreshScreen(table);
104
+ }
105
+ catch (error) {
106
+ logWarn(`[Supastash] Error updating local db for ${table}`, error);
107
+ throw error;
108
+ }
109
+ finally {
110
+ isInSync.delete(table);
111
+ deleteReceivedDataCompleted(batchId);
112
+ }
113
+ }
114
+ const warned = new Map();
115
+ /**
116
+ * Upserts a record into the local database
117
+ * @param table - The table to upsert the record into
118
+ * @param record - The record to upsert
119
+ * @param exists - Whether the record already exists in the database
120
+ */
121
+ export async function upsertData({ tx, table, record, doesExist, }) {
122
+ if (!record?.id)
123
+ return;
124
+ let itemExists = !!doesExist;
125
+ const cfg = getSupastashConfig();
126
+ if (cfg.supastashMode === "ghost")
127
+ return;
128
+ if (doesExist === undefined) {
129
+ const { doesExist: exists } = await checkIfRecordExistsAndIsNewer(table, record);
130
+ itemExists = exists;
131
+ }
132
+ try {
133
+ const db = tx ?? (await getSupastashDb());
134
+ const columns = await getTableSchema(table);
135
+ const recordToSave = {
136
+ ...record,
137
+ synced_at: new Date().toISOString(),
138
+ };
139
+ if (getSupastashConfig().debugMode) {
140
+ const unknownKeys = Object.keys(record).filter((key) => !columns.includes(key));
141
+ if (unknownKeys.length > 0 && !warned.get(table)) {
142
+ warned.set(table, true);
143
+ logWarn(`⚠️ [Supastash] '${table}' payload contains keys not in local schema: ${unknownKeys.join(", ")}. ` + `They will be ignored locally.`);
144
+ }
145
+ }
146
+ // Prep for upsert
147
+ const keys = columns;
148
+ const placeholders = keys.map(() => "?").join(", ");
149
+ const updateColumns = keys.filter((key) => key !== "id");
150
+ const updateParts = updateColumns.map((key) => `${key} = ?`);
151
+ const updatePlaceholders = updateParts.join(", ");
152
+ const values = keys.map((key) => stringifyValue(recordToSave[key]));
153
+ const updateValues = updateColumns.map((key) => stringifyValue(recordToSave[key]));
154
+ if (itemExists) {
155
+ // Update existing record
156
+ await db.runAsync(`UPDATE ${table} SET ${updatePlaceholders} WHERE id = ?`, [...updateValues, record.id]);
157
+ }
158
+ else {
159
+ // Insert new record
160
+ await db.runAsync(`INSERT INTO ${table} (${keys.join(", ")}) VALUES (${placeholders})`, values);
161
+ }
162
+ await updateLocalSyncedAt(table, [record.id]);
163
+ }
164
+ catch (error) {
165
+ logError(`[Supastash] Error upserting data for ${table}`, error);
166
+ }
167
+ }
168
+ /**
169
+ • Bulk upserts records into a local SQLite table using a batched, conflict-aware strategy.
170
+
171
+ • This function:
172
+ • • Fetches existing id and updated_at values in bulk to avoid per-row queries
173
+ • • Filters incoming records to only include new or more recent entries
174
+ • • Performs batched INSERT ... ON CONFLICT(id) DO UPDATE operations
175
+ • while respecting SQLite parameter limits
176
+ • • Updates synced_at for successfully written records
177
+
178
+ • Designed for high-performance sync scenarios in offline-first apps.
179
+
180
+ • Key guarantees:
181
+ • • Avoids N+1 query patterns (no per-row existence checks)
182
+ • • Minimizes disk I/O pressure via batching
183
+ • • Safe for large datasets when used with chunking
184
+
185
+ • Notes:
186
+ • • Assumes id is the primary or unique key
187
+ • • Requires updated_at for conflict resolution (falls back if missing)
188
+ • • Respects SQLite parameter limit (~999 variables per query)
189
+
190
+ • @param tx Optional transaction instance. If not provided, a connection is used directly.
191
+ • @param table Target table name
192
+ • @param records Array of records to upsert
193
+ */
194
+ export async function upsertChunkData({ tx, table, records, }) {
195
+ if (!records?.length)
196
+ return;
197
+ const cfg = getSupastashConfig();
198
+ if (cfg.supastashMode === "ghost")
199
+ return;
200
+ const db = tx ?? (await getSupastashDb());
201
+ const columns = await getTableSchema(table);
202
+ const syncedAt = new Date().toISOString();
203
+ if (cfg.debugMode) {
204
+ const unknownKeys = Object.keys(records[0]).filter((key) => !columns.includes(key));
205
+ if (unknownKeys.length > 0 && !warned.get(table)) {
206
+ warned.set(table, true);
207
+ logWarn(`⚠️ [Supastash] '${table}' payload contains keys not in local schema: ${unknownKeys.join(", ")}. ` + `They will be ignored locally.`);
208
+ }
209
+ }
210
+ // Step 1: Fetch existing id + updated_at for all incoming ids in bulk
211
+ const incomingIds = records.map((r) => r.id).filter(Boolean);
212
+ const localStamp = new Map();
213
+ for (let i = 0; i < incomingIds.length; i += CHUNK_SIZE) {
214
+ const slice = incomingIds.slice(i, i + CHUNK_SIZE);
215
+ const placeholders = slice.map(() => "?").join(", ");
216
+ const rows = await db.getAllAsync(`SELECT id, updated_at FROM ${table} WHERE id IN (${placeholders})`, slice);
217
+ console.log("rows", rows.length);
218
+ for (const row of rows ?? []) {
219
+ localStamp.set(row.id, row.updated_at ?? null);
220
+ }
221
+ }
222
+ // Step 2: Keep only records that are new or have a newer remote updated_at
223
+ const toUpsert = records.filter((record) => {
224
+ if (!record?.id)
225
+ return false;
226
+ const remoteUpdated = record.updated_at;
227
+ if (!remoteUpdated)
228
+ return false;
229
+ const localUpdated = localStamp.get(record.id);
230
+ if (!localUpdated)
231
+ return true;
232
+ return new Date(remoteUpdated) > new Date(localUpdated);
233
+ });
234
+ console.log("toUpsert", toUpsert.length);
235
+ if (!toUpsert.length)
236
+ return;
237
+ // Step 3: Build INSERT … ON CONFLICT(id) DO UPDATE in param-limit-safe chunks
238
+ const colList = columns.join(", ");
239
+ const updateSet = columns
240
+ .filter((key) => key !== "id")
241
+ .map((key) => `${key} = excluded.${key}`)
242
+ .join(", ");
243
+ const paramsPerRow = columns.length;
244
+ const rowsPerChunk = Math.max(1, Math.floor(999 / paramsPerRow));
245
+ const successfulIds = [];
246
+ for (let i = 0; i < toUpsert.length; i += rowsPerChunk) {
247
+ const chunk = toUpsert.slice(i, i + rowsPerChunk);
248
+ const rowPlaceholders = chunk
249
+ .map(() => `(${columns.map(() => "?").join(", ")})`)
250
+ .join(", ");
251
+ const values = [];
252
+ for (const record of chunk) {
253
+ const recordToSave = { ...record, synced_at: syncedAt };
254
+ for (const col of columns) {
255
+ values.push(stringifyValue(recordToSave[col]));
256
+ }
257
+ }
258
+ try {
259
+ await db.runAsync(`INSERT INTO ${table} (${colList}) VALUES ${rowPlaceholders} ON CONFLICT(id) DO UPDATE SET ${updateSet}`, values);
260
+ for (const record of chunk) {
261
+ successfulIds.push(record.id);
262
+ }
263
+ }
264
+ catch (error) {
265
+ logError(`[Supastash] Error upserting chunk for ${table}`, error);
266
+ }
267
+ }
268
+ if (successfulIds.length) {
269
+ await updateLocalSyncedAt(table, successfulIds);
270
+ }
271
+ }
272
+ async function checkIfRecordExistsAndIsNewer(table, item) {
273
+ if (!item?.id)
274
+ return { doesExist: false, newer: false };
275
+ const db = await getSupastashDb();
276
+ const record = await db.getFirstAsync(`SELECT id, updated_at FROM ${table} WHERE id = ?`, [item.id]);
277
+ if (record &&
278
+ new Date(record.updated_at || DEFAULT_DATE) >=
279
+ new Date(item.updated_at || DEFAULT_DATE)) {
280
+ log(`Skipping ${table}:${record.id} - local is newer`);
281
+ return { doesExist: true, newer: false };
282
+ }
283
+ return { doesExist: !!record, newer: true };
284
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/desktop/utils/sync/pushLocal/index.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,wBAAsB,aAAa,kBAiGlC"}
@@ -1,11 +1,10 @@
1
- import { getSupastashConfig } from "../../../core/config";
2
- import { syncCalls } from "../../../store/syncCalls";
3
- import { isOnline } from "../../../utils/connection";
4
- import log from "../../../utils/logs";
5
- import { getAllTables } from "../../../utils/sync/getAllTables";
6
- import { runLimitedConcurrency } from "../../../utils/sync/pullFromRemote/runLimitedConcurrency";
7
- import { pushLocalDataToRemote } from "../../../utils/sync/pushLocal/sendUnsyncedToSupabase";
8
- import { SyncInfoUpdater } from "../../../utils/sync/queryStatus";
1
+ import { getSupastashConfig } from "../../../../shared/core/config";
2
+ import { syncCalls } from "../../../../shared/store/syncCalls";
3
+ import log from "../../../../shared/utils/logs";
4
+ import { getAllTables } from "../../../../shared/utils/sync/getAllTables";
5
+ import { runLimitedConcurrency } from "../../../../shared/utils/sync/pullFromRemote/runLimitedConcurrency";
6
+ import { SyncInfoUpdater } from "../../../../shared/utils/sync/queryStatus";
7
+ import { pushLocalDataToRemote } from "./sendUnsyncedToSupabase";
9
8
  let emptyPassCount = 0;
10
9
  let lastEmptyPassAt = 0;
11
10
  const tablePushLock = new Map();
@@ -21,8 +20,6 @@ export async function pushLocalData() {
21
20
  log("[Supastash] No tables found");
22
21
  return;
23
22
  }
24
- if (!(await isOnline()))
25
- return;
26
23
  const excludeTables = getSupastashConfig()?.excludeTables?.push || [];
27
24
  const tablesToPush = tables.filter((table) => !excludeTables?.includes(table));
28
25
  numberOfTables = tablesToPush.length;
@@ -59,7 +56,7 @@ export async function pushLocalData() {
59
56
  });
60
57
  }
61
58
  catch (e) {
62
- const msg = e?.code ?? e?.name ?? String(e);
59
+ const msg = e?.message ?? e?.code ?? e?.name ?? String(e);
63
60
  SyncInfoUpdater.markLogError({
64
61
  type: "push",
65
62
  table,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sendUnsyncedToSupabase.d.ts","sourceRoot":"","sources":["../../../../../src/desktop/utils/sync/pushLocal/sendUnsyncedToSupabase.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EACrD,MAAM,CAAC,EAAE,MAAM,EAAE,gCA+ClB"}
@@ -1,9 +1,8 @@
1
- import { getSupastashConfig } from "../../../core/config";
2
- import { isOnline } from "../../connection";
3
- import { refreshScreen } from "../../refreshScreenCalls";
4
- import { SyncInfoUpdater } from "../queryStatus";
5
- import { deleteData } from "./deleteChunks";
6
- import { getAllDeletedData, getAllUnsyncedData } from "./getAllUnsyncedData";
1
+ import { getSupastashConfig } from "../../../../shared/core/config";
2
+ import { refreshScreen } from "../../../../shared/utils/refreshScreenCalls";
3
+ import { deleteData } from "../../../../shared/utils/sync/pushLocal/deleteChunks";
4
+ import { getAllDeletedData, getAllUnsyncedData, } from "../../../../shared/utils/sync/pushLocal/getAllUnsyncedData";
5
+ import { SyncInfoUpdater } from "../../../../shared/utils/sync/queryStatus";
7
6
  import { uploadData } from "./uploadChunk";
8
7
  let isInSync = new Map();
9
8
  /**
@@ -16,8 +15,6 @@ export async function pushLocalDataToRemote(table, onPushToRemote, noSync) {
16
15
  const cfg = getSupastashConfig();
17
16
  if (cfg.supastashMode === "ghost")
18
17
  return false;
19
- if (!(await isOnline()))
20
- return false;
21
18
  isInSync.set(table, true);
22
19
  try {
23
20
  const data = await getAllUnsyncedData(table);
@@ -1,4 +1,4 @@
1
- import { PayloadData } from "../../../types/query.types";
1
+ import { PayloadData } from "../../../../shared/types/query.types";
2
2
  /**
3
3
  * Uploads a chunk of data to the remote database
4
4
  * @param table - The table to upload to
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploadChunk.d.ts","sourceRoot":"","sources":["../../../../../src/desktop/utils/sync/pushLocal/uploadChunk.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAgMnE;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,WAAW,EAAE,EAC9B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,iBAetD"}
@@ -1,11 +1,10 @@
1
- import { DEFAULT_CHUNK_SIZE } from "../../../constants/syncDefaults";
2
- import { getSupastashConfig } from "../../../core/config";
3
- import { isOnline } from "../../../utils/connection";
4
- import { normalizeForSupabase } from "../../getSafeValues";
5
- import log from "../../logs";
6
- import { supabaseClientErr } from "../../supabaseClientErr";
7
- import { setQueryStatus, SyncInfoUpdater } from "../queryStatus";
8
- import { enforceTimestamps } from "./normalize";
1
+ import { DEFAULT_CHUNK_SIZE } from "../../../../shared/constants/syncDefaults";
2
+ import { getSupastashConfig } from "../../../../shared/core/config";
3
+ import { normalizeForSupabase } from "../../../../shared/utils/getSafeValues";
4
+ import log from "../../../../shared/utils/logs";
5
+ import { supabaseClientErr } from "../../../../shared/utils/supabaseClientErr";
6
+ import { enforceTimestamps } from "../../../../shared/utils/sync/pushLocal/normalize";
7
+ import { setQueryStatus, SyncInfoUpdater, } from "../../../../shared/utils/sync/queryStatus";
9
8
  import { backoff, batchUpsert, fetchRemoteHeadsChunked, filterRowsByUpdatedAt, handleRowFailure, markSynced, rpcUpsert, rpcUpsertSingle, singleUpsert, } from "./uploadHelpers";
10
9
  /**
11
10
  * Uploads a chunk of data to the remote database
@@ -23,9 +22,6 @@ async function uploadChunk(table, chunk, onPushToRemote) {
23
22
  if (!supabase) {
24
23
  throw new Error(supabaseClientErr);
25
24
  }
26
- const online = await isOnline();
27
- if (!online)
28
- return;
29
25
  let errorCount = 0;
30
26
  let lastError = null;
31
27
  let pending = [];
@@ -165,7 +161,7 @@ export async function uploadData(table, unsyncedRecords, onPushToRemote) {
165
161
  const supabase = cfg.supabaseClient;
166
162
  if (!supabase)
167
163
  throw new Error("[Supastash] Supabase client not configured");
168
- const cleaned = unsyncedRecords.map(({ synced_at, deleted_at, ...rest }) => enforceTimestamps(normalizeForSupabase(rest)));
164
+ const cleaned = unsyncedRecords.map(({ synced_at, deleted_at, arrived_at, ...rest }) => enforceTimestamps(normalizeForSupabase(rest)));
169
165
  for (let i = 0; i < cleaned.length; i += DEFAULT_CHUNK_SIZE) {
170
166
  const chunk = cleaned.slice(i, i + DEFAULT_CHUNK_SIZE);
171
167
  await uploadChunk(table, chunk, onPushToRemote);
@@ -1,5 +1,5 @@
1
- import { SupastashConfig } from "../../../types/supastashConfig.types";
2
- import { RowLike } from "../../../types/syncEngine.types";
1
+ import { SupastashConfig } from "../../../../shared/types/supastashConfig.types";
2
+ import { RowLike } from "../../../../shared/types/syncEngine.types";
3
3
  export declare function classifyFailure(cfg: SupastashConfig<any>, code?: string | number): "HTTP" | "UNKNOWN" | "NON_RETRYABLE" | "FK_BLOCK" | "RETRYABLE";
4
4
  declare function batchUpsert(table: string, rows: RowLike[], supabase: any): Promise<any>;
5
5
  declare function singleUpsert(table: string, row: RowLike, supabase: any): Promise<any>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploadHelpers.d.ts","sourceRoot":"","sources":["../../../../../src/desktop/utils/sync/pushLocal/uploadHelpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAC;AAOpE,wBAAgB,eAAe,CAC7B,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,EACzB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,mEAWvB;AAED,iBAAe,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,gBAEvE;AAED,iBAAe,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,gBAErE;AAED,iBAAe,OAAO,CAAC,QAAQ,EAAE,MAAM,iBAOtC;AAmBD,iBAAe,SAAS,CAAC,EACvB,KAAK,EACL,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC;CACf;;;;;;;GA+CA;AAED,iBAAe,eAAe,CAAC,EAC7B,KAAK,EACL,GAAG,EACH,QAAQ,EACR,SAAS,GACV,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;;;;;;GAaA;AAMD,iBAAe,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,iBAIrD;AAWD,iBAAS,qBAAqB,CAC5B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,EAAE,EAChB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,aAiCjC;AAMD,iBAAe,gBAAgB,CAC7B,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,EACzB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,GAAG,GACZ,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,CAkDvC;AAgBD,OAAO,EACL,OAAO,EACP,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,eAAe,EACf,YAAY,GACb,CAAC;AAEF;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,GAAG,iBAkBd;AASD,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EAAE,EACb,QAAQ,EAAE,GAAG,gCAcd"}
@@ -1,10 +1,10 @@
1
- import { getSupastashConfig } from "../../../core/config";
2
- import { getSupastashDb } from "../../../db/dbInitializer";
3
- import { supastashEventBus } from "../../../utils/events/eventBus";
4
- import log, { logWarn } from "../../../utils/logs";
1
+ import { getSupastashConfig } from "../../../../shared/core/config";
2
+ import { getSupastashDb } from "../../../../shared/db/dbInitializer";
3
+ import { supastashEventBus } from "../../../../shared/utils/events/eventBus";
4
+ import log, { logWarn } from "../../../../shared/utils/logs";
5
+ import { setQueryStatus } from "../../../../shared/utils/sync/queryStatus";
6
+ import { updateLocalSyncedAt } from "../../../../shared/utils/sync/status/syncUpdate";
5
7
  import { upsertData } from "../pullFromRemote/updateLocalDb";
6
- import { setQueryStatus } from "../queryStatus";
7
- import { updateLocalSyncedAt } from "../status/syncUpdate";
8
8
  export function classifyFailure(cfg, code) {
9
9
  const p = cfg.syncPolicy ?? {};
10
10
  const n = Number(code);
@@ -220,7 +220,7 @@ export async function rewindAndDropLocal(table, rowId, supabase) {
220
220
  }
221
221
  }
222
222
  async function replaceLocalWithServer(table, serverRow) {
223
- await upsertData(table, serverRow);
223
+ await upsertData({ table, record: serverRow });
224
224
  await updateLocalSyncedAt(table, [serverRow.id]);
225
225
  setQueryStatus(serverRow.id, table, "success");
226
226
  supastashEventBus.emit("updateSyncStatus");
@@ -1,15 +1,15 @@
1
- import { RealtimeFilter } from "../../../types/realtimeData.types";
1
+ import { SupastashFilter } from "../../../../shared/types/realtimeData.types";
2
2
  /**
3
3
  * Canonicalizes a set of filters
4
4
  * @param filters - The filters to canonicalize
5
5
  * @returns The canonicalized filters
6
6
  */
7
- export declare function canonicalizeFilters(filters?: RealtimeFilter[] | null): string;
7
+ export declare function canonicalizeFilters(filters?: SupastashFilter[] | null): string;
8
8
  /**
9
9
  * Computes the filter key for a given set of filters
10
10
  * @param filters - The filters to compute the key for
11
11
  * @param ns - The namespace to use for the key
12
12
  * @returns The computed filter key
13
13
  */
14
- export declare function computeFilterKey(filters?: RealtimeFilter[] | null, ns?: string): Promise<string>;
14
+ export declare function computeFilterKey(filters?: SupastashFilter[] | null, ns?: string): Promise<string>;
15
15
  //# sourceMappingURL=filterKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterKey.d.ts","sourceRoot":"","sources":["../../../../../src/desktop/utils/sync/status/filterKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAc9E;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,eAAe,EAAE,GAAG,IAAI,GACjC,MAAM,CAuBR;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,CAAC,EAAE,eAAe,EAAE,GAAG,IAAI,EAClC,EAAE,SAAW,mBAKd"}