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,4 +1,5 @@
1
1
  import { getSupastashConfig } from "../../../core/config";
2
+ import { txStore } from "../../../store/tx";
2
3
  import { logWarn } from "../../logs";
3
4
  import { refreshScreen } from "../../refreshScreenCalls";
4
5
  import { assignInsertIds, getCommonError, runSyncStrategy, validatePayloadForSingleInsert, } from "../helpers/mainQueryHelpers";
@@ -22,8 +23,10 @@ export async function queryDb(state) {
22
23
  payload: updatedPayload,
23
24
  type: syncMode,
24
25
  };
26
+ if (state.txId && ["localFirst"].includes(updatedState.type)) {
27
+ txStore[state.txId].push(updatedState);
28
+ }
25
29
  const { localResult, remoteResult, } = await runSyncStrategy(updatedState);
26
- localData = localResult?.data;
27
30
  const success = !localResult?.error && !remoteResult?.error;
28
31
  const commonError = getCommonError(table, method, localResult, remoteResult);
29
32
  if (viewRemoteResult) {
@@ -39,14 +42,26 @@ export async function queryDb(state) {
39
42
  success,
40
43
  });
41
44
  }
45
+ const remoteData = remoteResult?.data;
46
+ const localData = localResult?.data;
47
+ const policy = state.fetchPolicy;
48
+ const fetchPolicyData = !policy
49
+ ? null
50
+ : policy === "localFirst"
51
+ ? localData ?? remoteData
52
+ : remoteData ?? localData;
53
+ const data = fetchPolicyData ??
54
+ (type === "remoteOnly" ? remoteData : localData ?? null);
42
55
  return Promise.resolve({
43
- data: type === "remoteOnly" ? remoteResult?.data : localData ?? null,
56
+ data,
44
57
  error: commonError ?? null,
45
58
  success,
46
59
  });
47
60
  }
48
61
  catch (error) {
49
62
  logWarn(`[Supastash] ${error instanceof Error ? error.message : String(error)}`);
63
+ if (state.throwOnError)
64
+ throw error;
50
65
  if (state.viewRemoteResult) {
51
66
  return Promise.resolve({
52
67
  remote: null,
@@ -0,0 +1,15 @@
1
+ import { CrudMethods, MethodReturnTypeMap, SupastashQuery } from "../../../../types/query.types";
2
+ /**
3
+ * Gets method for local db calls
4
+ *
5
+ * @param table - The name of the table to query
6
+ * @param method - The method to call
7
+ * @param select - The columns to select
8
+ * @param payload - The payload to insert
9
+ * @param filters - The filters to apply
10
+ * @param limit - The limit to apply
11
+ * @param isSingle - Whether to return a single row or multiple rows
12
+ * @returns query
13
+ */
14
+ export default function getLocalMethod<T extends CrudMethods, U extends boolean, R, Z>(state: SupastashQuery<T, U, R>): () => Promise<MethodReturnTypeMap<U, Z>[T]>;
15
+ //# sourceMappingURL=getLocalMethod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLocalMethod.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/utils/query/helpers/localDb/getLocalMethod.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,mBAAmB,EACnB,cAAc,EACf,MAAM,+BAA+B,CAAC;AASvC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,OAAO,EACjB,CAAC,EACD,CAAC,EACD,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAY7E"}
@@ -11,13 +11,14 @@ import { buildDelete, buildInsert, buildSelect, buildUpdate, buildUpsert, } from
11
11
  * @param isSingle - Whether to return a single row or multiple rows
12
12
  * @returns query
13
13
  */
14
- export default function getLocalMethod(table, method, select, payload, filters, limit, isSingle, state, onConflictKeys, syncMode, preserveTimestamp) {
14
+ export default function getLocalMethod(state) {
15
+ const { method } = state;
15
16
  const handlers = {
16
- select: buildSelect(table, select, filters, limit, isSingle),
17
- insert: buildInsert(table, payload, syncMode, isSingle),
18
- update: buildUpdate(table, payload, filters, syncMode, isSingle, preserveTimestamp),
19
- delete: buildDelete(table, filters, syncMode),
20
- upsert: buildUpsert(table, payload, state, syncMode, isSingle, onConflictKeys, preserveTimestamp),
17
+ select: buildSelect(state),
18
+ insert: buildInsert(state),
19
+ update: buildUpdate(state),
20
+ delete: buildDelete(state),
21
+ upsert: buildUpsert(state),
21
22
  none: async () => null,
22
23
  };
23
24
  return handlers[method];
@@ -1,9 +1,12 @@
1
1
  import { SyncMode } from "../../../../types/query.types";
2
+ import { SupastashSQLiteExecutor } from "../../../../types/supastashConfig.types";
2
3
  interface InsertOptions<R = any> {
3
4
  table: string;
4
5
  syncMode?: SyncMode;
5
6
  nowISO?: string;
6
7
  returnInsertedRows?: boolean;
8
+ withTx: boolean;
9
+ tx: SupastashSQLiteExecutor | null;
7
10
  }
8
11
  export declare function insertMany<R = any>(payload: R[], opts: InsertOptions<R>): Promise<R[] | void>;
9
12
  export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insertMany.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/utils/query/helpers/localDb/insertMany.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAEL,uBAAuB,EACxB,MAAM,yCAAyC,CAAC;AAIjD,UAAU,aAAa,CAAC,CAAC,GAAG,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,EAAE,EAAE,uBAAuB,GAAG,IAAI,CAAC;CACpC;AAMD,wBAAsB,UAAU,CAAC,CAAC,GAAG,GAAG,EACtC,OAAO,EAAE,CAAC,EAAE,EACZ,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CA+GrB"}
@@ -5,7 +5,6 @@ const MAX_PARAMS = 999;
5
5
  const CHECK_BATCH = 900;
6
6
  const YIELD_EVERY = 500;
7
7
  export async function insertMany(payload, opts) {
8
- const db = await getSupastashDb();
9
8
  const { table, syncMode, returnInsertedRows } = opts;
10
9
  const timeStamp = opts.nowISO ?? new Date().toISOString();
11
10
  assertTableName(table);
@@ -24,6 +23,7 @@ export async function insertMany(payload, opts) {
24
23
  idSet.add(id);
25
24
  return id;
26
25
  });
26
+ const db = opts.tx ?? (await getSupastashDb());
27
27
  // 2) Check existing ids in DB (batched; fail-fast)
28
28
  for (let i = 0; i < ids.length; i += CHECK_BATCH) {
29
29
  const part = ids.slice(i, i + CHECK_BATCH);
@@ -36,7 +36,7 @@ export async function insertMany(payload, opts) {
36
36
  }
37
37
  // 3) Do inserts in a single transaction
38
38
  const insertedIds = [];
39
- const run = async () => {
39
+ const run = async (db) => {
40
40
  for (let i = 0; i < payload.length; i++) {
41
41
  const item = payload[i];
42
42
  const newPayload = {
@@ -63,7 +63,14 @@ export async function insertMany(payload, opts) {
63
63
  }
64
64
  };
65
65
  try {
66
- await run();
66
+ if (opts.withTx && !opts.tx) {
67
+ await db.withTransaction(async (tx) => {
68
+ await run(tx);
69
+ });
70
+ }
71
+ else {
72
+ await run(opts.tx ?? db);
73
+ }
67
74
  }
68
75
  catch (e) {
69
76
  throw e;
@@ -0,0 +1,34 @@
1
+ import { CrudMethods, SupastashQuery } from "../../../../types/query.types";
2
+ /**
3
+ * Builds a select query
4
+ *
5
+ * @param table - The name of the table to query
6
+ * @param select - The columns to select
7
+ * @param filters - The filters to apply
8
+ * @param limit - The limit to apply
9
+ * @param isSingle - Whether to return a single row or multiple rows
10
+ * @returns query
11
+ */
12
+ export declare function buildSelect<T extends boolean, R, Z>(state: SupastashQuery<CrudMethods, boolean, R>): () => Promise<T extends true ? import("../../../../types/query.types").PayloadResult<Z> : import("../../../../types/query.types").PayloadListResult<Z>>;
13
+ /**
14
+ * Builds an insert query
15
+ *
16
+ * @param table - The name of the table to insert into
17
+ * @param payload - The payload to insert
18
+ * @returns query
19
+ */
20
+ export declare function buildInsert<T extends boolean, R, Z>(state: SupastashQuery<CrudMethods, boolean, R>): () => Promise<T extends true ? import("../../../../types/query.types").PayloadResult<Z> : import("../../../../types/query.types").PayloadListResult<Z>>;
21
+ /**
22
+ * Builds an update query
23
+ *
24
+ * @returns query
25
+ */
26
+ export declare function buildUpdate<T extends boolean, R, Z>(state: SupastashQuery<CrudMethods, boolean, R>): () => Promise<T extends true ? import("../../../../types/query.types").PayloadResult<Z> : import("../../../../types/query.types").PayloadListResult<Z>>;
27
+ /**
28
+ * Builds a delete query
29
+ *
30
+ * @returns query
31
+ */
32
+ export declare function buildDelete<Z = any>(state: SupastashQuery<CrudMethods, boolean, Z>): () => Promise<import("../../../../types/query.types").SupatashDeleteResult<Z>>;
33
+ export declare function buildUpsert<T extends boolean, R, Z>(state: SupastashQuery<CrudMethods, boolean, R>): () => Promise<T extends true ? import("../../../../types/query.types").PayloadResult<Z> : import("../../../../types/query.types").PayloadListResult<Z>>;
34
+ //# sourceMappingURL=localQueryBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localQueryBuilder.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/utils/query/helpers/localDb/localQueryBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAO5E;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EACjD,KAAK,EAAE,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,2JAI/C;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EACjD,KAAK,EAAE,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,2JAU/C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EACjD,KAAK,EAAE,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,2JAG/C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,GAAG,GAAG,EACjC,KAAK,EAAE,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,kFAG/C;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC,EACjD,KAAK,EAAE,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,2JAU/C"}
@@ -13,8 +13,8 @@ import { upsertData } from "../../localDbQuery/upsert";
13
13
  * @param isSingle - Whether to return a single row or multiple rows
14
14
  * @returns query
15
15
  */
16
- export function buildSelect(table, select, filters, limit, isSingle) {
17
- return async () => await selectData(table, select || "*", filters, limit, isSingle);
16
+ export function buildSelect(state) {
17
+ return async () => await selectData({ ...state, select: state.select || "*" });
18
18
  }
19
19
  /**
20
20
  * Builds an insert query
@@ -23,30 +23,37 @@ export function buildSelect(table, select, filters, limit, isSingle) {
23
23
  * @param payload - The payload to insert
24
24
  * @returns query
25
25
  */
26
- export function buildInsert(table, payload, syncMode, isSingle) {
26
+ export function buildInsert(state) {
27
+ const payload = state.payload;
27
28
  const newPayload = payload
28
29
  ? Array.isArray(payload)
29
30
  ? payload
30
31
  : [payload]
31
32
  : null;
32
- return async () => await insertData(table, newPayload, syncMode, isSingle);
33
+ return async () => await insertData({ ...state, payload: newPayload });
33
34
  }
34
35
  /**
35
36
  * Builds an update query
36
37
  *
37
38
  * @returns query
38
39
  */
39
- export function buildUpdate(table, payload, filters, syncMode, isSingle, preserveTimestamp) {
40
- return async () => await updateData(table, payload, filters, syncMode, isSingle, preserveTimestamp);
40
+ export function buildUpdate(state) {
41
+ return async () => await updateData(state);
41
42
  }
42
43
  /**
43
44
  * Builds a delete query
44
45
  *
45
46
  * @returns query
46
47
  */
47
- export function buildDelete(table, filters, syncMode) {
48
- return async () => await deleteData(table, filters, syncMode);
48
+ export function buildDelete(state) {
49
+ return async () => await deleteData(state);
49
50
  }
50
- export function buildUpsert(table, payload, state, syncMode, isSingle, onConflictKeys, preserveTimestamp) {
51
- return async () => await upsertData(table, payload, state, syncMode, isSingle, onConflictKeys, preserveTimestamp);
51
+ export function buildUpsert(state) {
52
+ const payload = state.payload;
53
+ const newPayload = payload
54
+ ? Array.isArray(payload)
55
+ ? payload
56
+ : [payload]
57
+ : null;
58
+ return async () => await upsertData({ ...state, payload: newPayload });
52
59
  }
@@ -1,4 +1,5 @@
1
1
  import { CrudMethods, SupastashQuery, SyncMode } from "../../../../types/query.types";
2
+ import { SupastashSQLiteExecutor } from "../../../../types/supastashConfig.types";
2
3
  interface UpsertOptions<R = any> {
3
4
  table: string;
4
5
  onConflictKeys?: string[];
@@ -7,6 +8,8 @@ interface UpsertOptions<R = any> {
7
8
  preserveTimestamp?: boolean;
8
9
  returnRows?: boolean;
9
10
  yieldEvery?: number;
11
+ withTx: boolean;
12
+ tx: SupastashSQLiteExecutor | null;
10
13
  }
11
14
  export declare function upsertMany<R = any>(items: R[], opts: UpsertOptions<R>, state: SupastashQuery<CrudMethods, boolean, R>): Promise<R[] | void>;
12
15
  export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upsertMany.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/utils/query/helpers/localDb/upsertMany.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EACX,cAAc,EACd,QAAQ,EACT,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAKlF,UAAU,aAAa,CAAC,CAAC,GAAG,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,EAAE,EAAE,uBAAuB,GAAG,IAAI,CAAC;CACpC;AAMD,wBAAsB,UAAU,CAAC,CAAC,GAAG,GAAG,EACtC,KAAK,EAAE,CAAC,EAAE,EACV,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,EACtB,KAAK,EAAE,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,GAC7C,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CA0LrB"}
@@ -35,7 +35,7 @@ export async function upsertMany(items, opts, state) {
35
35
  }
36
36
  const upserted = [];
37
37
  const remotePayload = [];
38
- const run = async () => {
38
+ const run = async (db) => {
39
39
  for (let i = 0; i < items.length; i++) {
40
40
  const input = items[i] ?? {};
41
41
  const row = { ...input };
@@ -120,7 +120,14 @@ export async function upsertMany(items, opts, state) {
120
120
  }
121
121
  };
122
122
  try {
123
- await run();
123
+ if (opts.withTx) {
124
+ await db.withTransaction(async (tx) => {
125
+ await run(tx);
126
+ });
127
+ }
128
+ else {
129
+ await run(opts.tx ?? db);
130
+ }
124
131
  const newState = { ...state, payload: remotePayload };
125
132
  if (remoteCalls.includes(newState.type)) {
126
133
  queueRemoteCall(newState);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mainQueryHelpers.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/query/helpers/mainQueryHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACf,MAAM,4BAA4B,CAAC;AAOpC,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,GACZ,IAAI,CAUN;AAED,wBAAgB,eAAe,CAAC,CAAC,EAC/B,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,GACtB,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,CAc5B;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC,EAC3E,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAChD,YAAY,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAC7C,CAAC,KAAK,GAAG;IAAE,aAAa,CAAC,EAAE,cAAc,CAAA;CAAE,CAAC,GAAG,IAAI,CAwBrD;AAmDD,wBAAsB,eAAe,CACnC,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,OAAO,EACjB,CAAC,EACD,CAAC,EAED,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAC7B,OAAO,CAAC;IACT,WAAW,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACjD,YAAY,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;CAChD,CAAC,CAiED"}
@@ -1,5 +1,5 @@
1
- import { logWarn } from "../../../utils/logs";
2
1
  import { generateUUIDv4 } from "../../genUUID";
2
+ import { logWarn } from "../../logs";
3
3
  import { queryLocalDb } from "../localDbQuery";
4
4
  import { querySupabase } from "../remoteQuery/supabaseQuery";
5
5
  import { queueRemoteCall } from "./queueRemote";
@@ -46,20 +46,45 @@ export function getCommonError(table, method, localResult, remoteResult) {
46
46
  }
47
47
  return null;
48
48
  }
49
- export async function runSyncStrategy(state) {
50
- const { type } = state;
49
+ async function handleSelect(state) {
51
50
  let localResult = null;
52
51
  let remoteResult = null;
53
- if (state.method === "select") {
54
- if (state.type.includes("remote")) {
52
+ const isEmpty = (result) => result?.error ||
53
+ !result?.data ||
54
+ (Array.isArray(result.data) && result.data.length === 0);
55
+ if (state.fetchPolicy === "localFirst") {
56
+ localResult = await queryLocalDb(state);
57
+ if (isEmpty(localResult)) {
55
58
  remoteResult = await querySupabase(state);
56
- localResult = await queryLocalDb(state);
57
- return { localResult, remoteResult };
58
59
  }
59
- else {
60
+ return { localResult, remoteResult };
61
+ }
62
+ if (state.fetchPolicy === "remoteFirst") {
63
+ remoteResult = await querySupabase(state);
64
+ if (isEmpty(remoteResult)) {
60
65
  localResult = await queryLocalDb(state);
61
- return { localResult, remoteResult };
66
+ return { localResult, remoteResult: null };
62
67
  }
68
+ return { localResult: null, remoteResult };
69
+ }
70
+ if (state.type === "remoteFirst") {
71
+ remoteResult = await querySupabase(state);
72
+ localResult = await queryLocalDb(state);
73
+ return { localResult, remoteResult };
74
+ }
75
+ if (state.type === "remoteOnly") {
76
+ remoteResult = await querySupabase(state);
77
+ return { localResult, remoteResult: null };
78
+ }
79
+ localResult = await queryLocalDb(state);
80
+ return { localResult, remoteResult };
81
+ }
82
+ export async function runSyncStrategy(state) {
83
+ const { type } = state;
84
+ let localResult = null;
85
+ let remoteResult = null;
86
+ if (state.method === "select") {
87
+ return await handleSelect(state);
63
88
  }
64
89
  const isUpsert = state.method === "upsert";
65
90
  switch (type) {
@@ -71,9 +96,14 @@ export async function runSyncStrategy(state) {
71
96
  break;
72
97
  case "localFirst":
73
98
  localResult = await queryLocalDb(state);
99
+ // If we are in a transaction, we don't want to queue a remote call
100
+ // Remote calls are handled write after the transaction is committed
101
+ if (state.txId)
102
+ return { localResult, remoteResult: null };
74
103
  if (state.viewRemoteResult) {
75
104
  if (isUpsert) {
76
105
  logWarn("Cannot view remote result for upserts. Data will still be synced.");
106
+ queueRemoteCall(state);
77
107
  return { localResult, remoteResult: null };
78
108
  }
79
109
  remoteResult = await querySupabase(state);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryValidator.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/query/helpers/queryValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEzE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,OAAO,EAAE,CAAC,EACvE,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QA4C/B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queueRemote.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/query/helpers/queueRemote.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,WAAW,EACX,cAAc,EACf,MAAM,4BAA4B,CAAC;AAuCpC,wBAAsB,eAAe,CACnC,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,OAAO,EACjB,CAAC,EACD,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAalD"}
@@ -1,13 +1,12 @@
1
1
  import { getSupastashConfig } from "../../../core/config";
2
- import { isOnline } from "../../../utils/connection";
3
- import { log, logWarn } from "../../../utils/logs";
4
- import { getQueryStatusFromDb } from "../../../utils/sync/queryStatus";
2
+ import { isOnline } from "../../connection";
5
3
  import { supastashEventBus } from "../../events/eventBus";
4
+ import { generateUUIDv4 } from "../../genUUID";
5
+ import { log, logWarn } from "../../logs";
6
+ import { getQueryStatusFromDb } from "../../sync/queryStatus";
6
7
  import { querySupabase } from "../remoteQuery/supabaseQuery";
7
8
  let batchQueue = [];
8
9
  let isProcessing = false;
9
- let batchTimer = null;
10
- const BATCH_DELAY = 10;
11
10
  const MAX_RETRIES = 3;
12
11
  const MAX_OFFLINE_RETRIES = 5;
13
12
  const retryCount = new Map();
@@ -24,26 +23,24 @@ function delay(ms) {
24
23
  return new Promise((resolve) => setTimeout(resolve, ms));
25
24
  }
26
25
  function generateOpKey(state) {
27
- return `${state.table}_${state.method}_${state.id}_${JSON.stringify(state.payload)}`;
26
+ return state.id ? state.id : generateUUIDv4();
28
27
  }
29
- export function queueRemoteCall(state) {
30
- return new Promise((resolve, reject) => {
28
+ export async function queueRemoteCall(state) {
29
+ return new Promise(async (resolve, reject) => {
30
+ void reject;
31
31
  const opKey = generateOpKey(state);
32
32
  if (successfulCalls.has(opKey)) {
33
33
  resolve(true);
34
34
  return;
35
35
  }
36
36
  batchQueue.push({ state, opKey, resolve, reject });
37
- scheduleBatch();
37
+ await startWorkerIfNeeded();
38
38
  });
39
39
  }
40
- function scheduleBatch() {
41
- if (batchTimer)
40
+ async function startWorkerIfNeeded() {
41
+ if (isProcessing)
42
42
  return;
43
- batchTimer = setTimeout(() => {
44
- processBatch();
45
- batchTimer = null;
46
- }, BATCH_DELAY);
43
+ await processQueue();
47
44
  }
48
45
  async function executeSupabaseCall(state) {
49
46
  const config = getSupastashConfig();
@@ -51,7 +48,7 @@ async function executeSupabaseCall(state) {
51
48
  if (!Array.isArray(payload)) {
52
49
  return querySupabase(state, true);
53
50
  }
54
- const batchSize = config.supabaseBatchSize ?? 100;
51
+ const batchSize = config.supabaseBatchSize ?? 800;
55
52
  for (let i = 0; i < payload.length; i += batchSize) {
56
53
  const chunk = payload.slice(i, i + batchSize);
57
54
  const result = await querySupabase({
@@ -64,19 +61,21 @@ async function executeSupabaseCall(state) {
64
61
  }
65
62
  return { error: null };
66
63
  }
67
- async function processBatch() {
68
- if (isProcessing || batchQueue.length === 0)
64
+ async function processQueue() {
65
+ if (isProcessing)
69
66
  return;
70
67
  isProcessing = true;
71
- const batch = [...batchQueue];
72
- batchQueue = [];
73
- for (const call of batch) {
74
- const { state, opKey, resolve, reject } = call;
68
+ while (batchQueue.length > 0) {
69
+ const call = batchQueue[0];
70
+ const { state, opKey, resolve } = call;
75
71
  if (successfulCalls.has(opKey)) {
72
+ batchQueue.shift();
76
73
  resolve(true);
77
74
  continue;
78
75
  }
79
76
  try {
77
+ let shouldRemove = false;
78
+ let isSuccess = false;
80
79
  while ((retryCount.get(opKey) ?? 0) <= MAX_RETRIES) {
81
80
  const isConnected = await isOnline();
82
81
  if (!isConnected) {
@@ -85,11 +84,12 @@ async function processBatch() {
85
84
  if (offlineRetries > MAX_OFFLINE_RETRIES) {
86
85
  if (!seenFailureLog.has(opKey)) {
87
86
  seenFailureLog.add(opKey);
88
- log(`[Supastash] Offline — persisted locally, will retry later: ${opKey}`);
87
+ log(`[Supastash] Offline — persisted locally, will retry later: ${state.table} with ${state.method} `);
89
88
  }
90
89
  await getQueryStatusFromDb(state.table);
91
90
  supastashEventBus.emit("updateSyncStatus");
92
- resolve(false);
91
+ shouldRemove = true;
92
+ isSuccess = false;
93
93
  break;
94
94
  }
95
95
  await delay(1000);
@@ -101,7 +101,8 @@ async function processBatch() {
101
101
  successfulCalls.add(opKey);
102
102
  retryCount.delete(opKey);
103
103
  log(`[Supastash] Synced item on ${state.table} with ${state.method} to supabase`);
104
- resolve(true);
104
+ shouldRemove = true;
105
+ isSuccess = true;
105
106
  break;
106
107
  }
107
108
  else {
@@ -112,7 +113,8 @@ async function processBatch() {
112
113
  seenFailureLog.add(opKey);
113
114
  logWarn(`[Supastash] Duplicate key on ${state.table} (op=${state.method}) — seems already synced; will retry on next full sync: id=${state.id ?? "-"}`);
114
115
  }
115
- resolve(true);
116
+ shouldRemove = true;
117
+ isSuccess = true;
116
118
  break;
117
119
  }
118
120
  if (currentRetries >= MAX_RETRIES) {
@@ -120,18 +122,25 @@ async function processBatch() {
120
122
  seenFailureLog.add(opKey);
121
123
  logWarn(`[Supastash] Gave up on ${state.table} with ${state.method} after ${MAX_RETRIES} retries — will retry on next sync \nError message: ${error.message}`);
122
124
  }
123
- resolve(false);
125
+ shouldRemove = true;
126
+ isSuccess = false;
124
127
  break;
125
128
  }
126
129
  await delay(1000 * (currentRetries + 1));
127
130
  }
128
131
  }
132
+ if (shouldRemove) {
133
+ batchQueue.shift();
134
+ resolve(isSuccess);
135
+ }
129
136
  }
130
137
  catch (err) {
131
138
  if (!seenFailureLog.has(opKey)) {
132
139
  seenFailureLog.add(opKey);
133
140
  logWarn(`[Supastash] Unexpected error processing ${opKey} — ${String(err.message ?? err)}`);
134
141
  }
142
+ batchQueue.shift();
143
+ resolve(false);
135
144
  }
136
145
  }
137
146
  isProcessing = false;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryFilterBuilder.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/utils/query/helpers/remoteDb/queryFilterBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAG5D;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI;;;EAqD7D"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryUtils.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/utils/query/helpers/remoteDb/queryUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,GACT,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAuBnE"}
@@ -0,0 +1,22 @@
1
+ import { CrudMethods, FilterCalls, SupastashQuery, SupatashDeleteResult } from "../../../types/query.types";
2
+ import { SupastashSQLiteExecutor } from "../../../types/supastashConfig.types";
3
+ /**
4
+ * Soft delete: Sets `deleted_at` timestamp based on provided filters.
5
+ * @param table - The name of the table to delete from
6
+ * @param filters - The filters to apply to the delete query
7
+ * @returns The result of the delete query
8
+ */
9
+ export declare function deleteData<Z = any>(state: SupastashQuery<CrudMethods, boolean, Z>): Promise<SupatashDeleteResult<Z>>;
10
+ /**
11
+ * Hard delete: Permanently removes a row by its `id`.
12
+ * @param table - The name of the table to delete from
13
+ * @param id - The id of the row to delete
14
+ * @returns The result of the delete query
15
+ */
16
+ export declare function permanentlyDeleteData<R = any>({ table, filters, tx, throwOnError, }: {
17
+ table: string;
18
+ filters: FilterCalls[] | null;
19
+ tx: SupastashSQLiteExecutor | null;
20
+ throwOnError?: boolean;
21
+ }): Promise<SupatashDeleteResult<R>>;
22
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/query/localDbQuery/delete.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,WAAW,EACX,cAAc,EACd,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAK/E;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,CAAC,GAAG,GAAG,EACtC,KAAK,EAAE,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,GAC7C,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAuClC;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,GAAG,GAAG,EAAE,EACnD,KAAK,EACL,OAAO,EACP,EAAE,EACF,YAAmB,GACpB,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAC9B,EAAE,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAmBnC"}
@@ -8,25 +8,34 @@ import { buildWhereClause } from "../helpers/remoteDb/queryFilterBuilder";
8
8
  * @param filters - The filters to apply to the delete query
9
9
  * @returns The result of the delete query
10
10
  */
11
- export async function deleteData(table, filters, syncMode) {
11
+ export async function deleteData(state) {
12
+ const { table, filters, tx, type: syncMode } = state;
12
13
  await assertTableExists(table);
13
14
  const { clause, values: filterValues } = buildWhereClause(filters ?? []);
14
15
  try {
15
- const db = await getSupastashDb();
16
+ const db = tx ?? (await getSupastashDb());
16
17
  const timeStamp = new Date().toISOString();
17
18
  const itemsToBeDeleted = await db.getAllAsync(`SELECT * FROM ${table} ${clause}`, filterValues);
18
19
  await db.runAsync(`UPDATE ${table} SET deleted_at = ?, updated_at = ?, synced_at = NULL ${clause}`, [timeStamp, timeStamp, ...filterValues]);
19
20
  if (syncMode === "localOnly" || syncMode === "remoteFirst") {
20
- permanentlyDeleteData(table, filters);
21
+ await permanentlyDeleteData({
22
+ table,
23
+ filters,
24
+ tx,
25
+ throwOnError: state.throwOnError,
26
+ });
21
27
  }
22
28
  return { error: null, data: itemsToBeDeleted };
23
29
  }
24
30
  catch (error) {
25
31
  logError(`[Supastash] ${error}`);
32
+ if (state.throwOnError)
33
+ throw error;
26
34
  return {
27
35
  error: {
28
36
  message: error instanceof Error ? error.message : String(error),
29
37
  },
38
+ data: null,
30
39
  };
31
40
  }
32
41
  }
@@ -36,16 +45,18 @@ export async function deleteData(table, filters, syncMode) {
36
45
  * @param id - The id of the row to delete
37
46
  * @returns The result of the delete query
38
47
  */
39
- export async function permanentlyDeleteData(table, filters) {
48
+ export async function permanentlyDeleteData({ table, filters, tx, throwOnError = true, }) {
40
49
  await assertTableExists(table);
41
50
  try {
42
- const db = await getSupastashDb();
51
+ const db = tx ?? (await getSupastashDb());
43
52
  const { clause, values: filterValues } = buildWhereClause(filters ?? []);
44
53
  await db.runAsync(`DELETE FROM ${table} ${clause}`, filterValues);
45
54
  return { error: null };
46
55
  }
47
56
  catch (error) {
48
57
  logError(`[Supastash] ${error}`);
58
+ if (throwOnError)
59
+ throw error;
49
60
  return {
50
61
  error: {
51
62
  message: error instanceof Error ? error.message : String(error),
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/query/localDbQuery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,cAAc,EACf,MAAM,4BAA4B,CAAC;AAGpC;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,OAAO,EACjB,CAAC,EACD,CAAC,EACD,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAYvE"}
@@ -0,0 +1,15 @@
1
+ import getLocalMethod from "../helpers/localDb/getLocalMethod";
2
+ /**
3
+ * Queries the local database
4
+ * @param state - The state of the query
5
+ * @returns The result of the query
6
+ */
7
+ export async function queryLocalDb(state) {
8
+ const { method } = state;
9
+ if (!method) {
10
+ throw new Error("[Supastash] Method is required for local call");
11
+ }
12
+ const query = getLocalMethod(state);
13
+ const result = await query();
14
+ return result;
15
+ }