tinybase 7.0.0-beta.1 → 7.0.0-beta.3

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 (329) hide show
  1. package/@types/common/index.d.ts +1 -1
  2. package/@types/mergeable-store/index.d.ts +2 -1
  3. package/@types/mergeable-store/with-schemas/index.d.ts +5 -3
  4. package/@types/omni/index.d.ts +2 -0
  5. package/@types/omni/with-schemas/index.d.ts +2 -0
  6. package/@types/persisters/index.d.ts +4 -0
  7. package/@types/persisters/persister-automerge/index.d.ts +4 -6
  8. package/@types/persisters/persister-automerge/with-schemas/index.d.ts +7 -8
  9. package/@types/persisters/persister-browser/index.d.ts +97 -6
  10. package/@types/persisters/persister-browser/with-schemas/index.d.ts +113 -6
  11. package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +4 -0
  12. package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +7 -2
  13. package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +6 -2
  14. package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +5 -0
  15. package/@types/persisters/persister-durable-object-storage/index.d.ts +1 -2
  16. package/@types/persisters/persister-durable-object-storage/with-schemas/index.d.ts +3 -2
  17. package/@types/persisters/persister-electric-sql/index.d.ts +4 -0
  18. package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +7 -2
  19. package/@types/persisters/persister-expo-sqlite/index.d.ts +5 -2
  20. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +7 -2
  21. package/@types/persisters/persister-file/index.d.ts +1 -2
  22. package/@types/persisters/persister-file/with-schemas/index.d.ts +3 -2
  23. package/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +3 -2
  24. package/@types/persisters/persister-libsql/index.d.ts +4 -0
  25. package/@types/persisters/persister-libsql/with-schemas/index.d.ts +7 -2
  26. package/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +3 -2
  27. package/@types/persisters/persister-pglite/index.d.ts +7 -3
  28. package/@types/persisters/persister-pglite/with-schemas/index.d.ts +9 -3
  29. package/@types/persisters/persister-postgres/index.d.ts +5 -2
  30. package/@types/persisters/persister-postgres/with-schemas/index.d.ts +7 -2
  31. package/@types/persisters/persister-powersync/index.d.ts +4 -0
  32. package/@types/persisters/persister-powersync/with-schemas/index.d.ts +7 -2
  33. package/@types/persisters/persister-react-native-mmkv/index.d.ts +117 -0
  34. package/@types/persisters/persister-react-native-mmkv/with-schemas/index.d.ts +133 -0
  35. package/@types/persisters/persister-react-native-sqlite/index.d.ts +184 -0
  36. package/@types/persisters/persister-react-native-sqlite/with-schemas/index.d.ts +207 -0
  37. package/@types/persisters/persister-remote/with-schemas/index.d.ts +3 -2
  38. package/@types/persisters/persister-sqlite-bun/index.d.ts +5 -2
  39. package/@types/persisters/persister-sqlite-bun/with-schemas/index.d.ts +7 -2
  40. package/@types/persisters/persister-sqlite-wasm/index.d.ts +6 -2
  41. package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +8 -2
  42. package/@types/persisters/persister-sqlite3/index.d.ts +5 -2
  43. package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +7 -2
  44. package/@types/persisters/persister-yjs/with-schemas/index.d.ts +3 -2
  45. package/@types/persisters/with-schemas/index.d.ts +4 -0
  46. package/@types/queries/index.d.ts +1 -1
  47. package/@types/queries/with-schemas/index.d.ts +4 -8
  48. package/@types/store/index.d.ts +34 -19
  49. package/@types/store/with-schemas/index.d.ts +28 -13
  50. package/@types/synchronizers/index.d.ts +1 -0
  51. package/@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts +3 -2
  52. package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +3 -2
  53. package/@types/synchronizers/synchronizer-ws-client/index.d.ts +4 -2
  54. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +1 -0
  55. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +7 -7
  56. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +7 -7
  57. package/@types/synchronizers/synchronizer-ws-server-durable-object/index.d.ts +1 -0
  58. package/@types/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.d.ts +1 -0
  59. package/@types/synchronizers/synchronizer-ws-server-simple/index.d.ts +1 -1
  60. package/@types/synchronizers/synchronizer-ws-server-simple/with-schemas/index.d.ts +1 -1
  61. package/@types/synchronizers/with-schemas/index.d.ts +4 -2
  62. package/@types/ui-react/index.d.ts +6 -1
  63. package/@types/ui-react/with-schemas/index.d.ts +6 -1
  64. package/@types/ui-react-dom/index.d.ts +153 -20
  65. package/@types/ui-react-dom/with-schemas/index.d.ts +72 -20
  66. package/@types/ui-react-inspector/index.d.ts +8 -0
  67. package/@types/ui-react-inspector/with-schemas/index.d.ts +27 -1925
  68. package/agents.md +343 -0
  69. package/checkpoints/index.js +11 -6
  70. package/checkpoints/with-schemas/index.js +11 -6
  71. package/common/index.js +8 -4
  72. package/common/with-schemas/index.js +8 -4
  73. package/index.js +63 -31
  74. package/indexes/index.js +10 -5
  75. package/indexes/with-schemas/index.js +10 -5
  76. package/mergeable-store/index.js +54 -22
  77. package/mergeable-store/with-schemas/index.js +54 -22
  78. package/metrics/index.js +10 -5
  79. package/metrics/with-schemas/index.js +10 -5
  80. package/min/checkpoints/index.js +1 -1
  81. package/min/checkpoints/index.js.gz +0 -0
  82. package/min/checkpoints/with-schemas/index.js +1 -1
  83. package/min/checkpoints/with-schemas/index.js.gz +0 -0
  84. package/min/common/index.js +1 -1
  85. package/min/common/index.js.gz +0 -0
  86. package/min/common/with-schemas/index.js +1 -1
  87. package/min/common/with-schemas/index.js.gz +0 -0
  88. package/min/index.js +1 -1
  89. package/min/index.js.gz +0 -0
  90. package/min/indexes/index.js +1 -1
  91. package/min/indexes/index.js.gz +0 -0
  92. package/min/indexes/with-schemas/index.js +1 -1
  93. package/min/indexes/with-schemas/index.js.gz +0 -0
  94. package/min/mergeable-store/index.js +1 -1
  95. package/min/mergeable-store/index.js.gz +0 -0
  96. package/min/mergeable-store/with-schemas/index.js +1 -1
  97. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  98. package/min/metrics/index.js +1 -1
  99. package/min/metrics/index.js.gz +0 -0
  100. package/min/metrics/with-schemas/index.js +1 -1
  101. package/min/metrics/with-schemas/index.js.gz +0 -0
  102. package/min/omni/index.js +1 -1
  103. package/min/omni/index.js.gz +0 -0
  104. package/min/omni/with-schemas/index.js +1 -1
  105. package/min/omni/with-schemas/index.js.gz +0 -0
  106. package/min/persisters/index.js +1 -1
  107. package/min/persisters/index.js.gz +0 -0
  108. package/min/persisters/persister-automerge/index.js +1 -1
  109. package/min/persisters/persister-automerge/index.js.gz +0 -0
  110. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  111. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  112. package/min/persisters/persister-browser/index.js +1 -1
  113. package/min/persisters/persister-browser/index.js.gz +0 -0
  114. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  115. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  116. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  117. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  118. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  119. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  120. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  121. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  122. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  123. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  124. package/min/persisters/persister-durable-object-storage/index.js +1 -1
  125. package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  126. package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
  127. package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  128. package/min/persisters/persister-electric-sql/index.js +1 -1
  129. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  130. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  131. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  132. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  133. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  134. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  135. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  136. package/min/persisters/persister-file/index.js +1 -1
  137. package/min/persisters/persister-file/index.js.gz +0 -0
  138. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  139. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  140. package/min/persisters/persister-indexed-db/index.js +1 -1
  141. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  142. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  143. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  144. package/min/persisters/persister-libsql/index.js +1 -1
  145. package/min/persisters/persister-libsql/index.js.gz +0 -0
  146. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  147. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  148. package/min/persisters/persister-partykit-client/index.js +1 -1
  149. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  150. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  151. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  152. package/min/persisters/persister-partykit-server/index.js +1 -1
  153. package/min/persisters/persister-partykit-server/index.js.gz +0 -0
  154. package/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
  155. package/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  156. package/min/persisters/persister-pglite/index.js +1 -1
  157. package/min/persisters/persister-pglite/index.js.gz +0 -0
  158. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  159. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  160. package/min/persisters/persister-postgres/index.js +1 -1
  161. package/min/persisters/persister-postgres/index.js.gz +0 -0
  162. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  163. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  164. package/min/persisters/persister-powersync/index.js +1 -1
  165. package/min/persisters/persister-powersync/index.js.gz +0 -0
  166. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  167. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  168. package/min/persisters/persister-react-native-mmkv/index.js +1 -0
  169. package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
  170. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -0
  171. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
  172. package/min/persisters/persister-react-native-sqlite/index.js +1 -0
  173. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  174. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -0
  175. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  176. package/min/persisters/persister-remote/index.js +1 -1
  177. package/min/persisters/persister-remote/index.js.gz +0 -0
  178. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  179. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  180. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  181. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  182. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  183. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  184. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  185. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  186. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  187. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  188. package/min/persisters/persister-sqlite3/index.js +1 -1
  189. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  190. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  191. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  192. package/min/persisters/persister-yjs/index.js +1 -1
  193. package/min/persisters/persister-yjs/index.js.gz +0 -0
  194. package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  195. package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  196. package/min/persisters/with-schemas/index.js +1 -1
  197. package/min/persisters/with-schemas/index.js.gz +0 -0
  198. package/min/queries/index.js +1 -1
  199. package/min/queries/index.js.gz +0 -0
  200. package/min/queries/with-schemas/index.js +1 -1
  201. package/min/queries/with-schemas/index.js.gz +0 -0
  202. package/min/relationships/index.js +1 -1
  203. package/min/relationships/index.js.gz +0 -0
  204. package/min/relationships/with-schemas/index.js +1 -1
  205. package/min/relationships/with-schemas/index.js.gz +0 -0
  206. package/min/store/index.js +1 -1
  207. package/min/store/index.js.gz +0 -0
  208. package/min/store/with-schemas/index.js +1 -1
  209. package/min/store/with-schemas/index.js.gz +0 -0
  210. package/min/synchronizers/index.js +1 -1
  211. package/min/synchronizers/index.js.gz +0 -0
  212. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  213. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  214. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  215. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  216. package/min/synchronizers/synchronizer-local/index.js +1 -1
  217. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  218. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  219. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  220. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  221. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  222. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  223. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  224. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  225. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  226. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  227. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  228. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  229. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  230. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  231. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  232. package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
  233. package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
  234. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
  235. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
  236. package/min/synchronizers/with-schemas/index.js +1 -1
  237. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  238. package/min/ui-react/index.js +1 -1
  239. package/min/ui-react/index.js.gz +0 -0
  240. package/min/ui-react/with-schemas/index.js +1 -1
  241. package/min/ui-react/with-schemas/index.js.gz +0 -0
  242. package/min/ui-react-dom/index.js +1 -1
  243. package/min/ui-react-dom/index.js.gz +0 -0
  244. package/min/ui-react-dom/with-schemas/index.js +1 -1
  245. package/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  246. package/min/ui-react-inspector/index.js +1 -1
  247. package/min/ui-react-inspector/index.js.gz +0 -0
  248. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  249. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  250. package/min/with-schemas/index.js +1 -1
  251. package/min/with-schemas/index.js.gz +0 -0
  252. package/omni/index.js +2178 -1203
  253. package/omni/with-schemas/index.js +2178 -1203
  254. package/package.json +91 -11
  255. package/persisters/index.js +16 -10
  256. package/persisters/persister-automerge/index.js +15 -9
  257. package/persisters/persister-automerge/with-schemas/index.js +15 -9
  258. package/persisters/persister-browser/index.js +41 -9
  259. package/persisters/persister-browser/with-schemas/index.js +41 -9
  260. package/persisters/persister-cr-sqlite-wasm/index.js +16 -10
  261. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +16 -10
  262. package/persisters/persister-durable-object-sql-storage/index.js +16 -10
  263. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +16 -10
  264. package/persisters/persister-durable-object-storage/index.js +14 -8
  265. package/persisters/persister-durable-object-storage/with-schemas/index.js +14 -8
  266. package/persisters/persister-electric-sql/index.js +16 -10
  267. package/persisters/persister-electric-sql/with-schemas/index.js +16 -10
  268. package/persisters/persister-expo-sqlite/index.js +16 -10
  269. package/persisters/persister-expo-sqlite/with-schemas/index.js +16 -10
  270. package/persisters/persister-file/index.js +14 -8
  271. package/persisters/persister-file/with-schemas/index.js +14 -8
  272. package/persisters/persister-indexed-db/index.js +14 -8
  273. package/persisters/persister-indexed-db/with-schemas/index.js +14 -8
  274. package/persisters/persister-libsql/index.js +16 -10
  275. package/persisters/persister-libsql/with-schemas/index.js +16 -10
  276. package/persisters/persister-partykit-client/index.js +14 -8
  277. package/persisters/persister-partykit-client/with-schemas/index.js +14 -8
  278. package/persisters/persister-partykit-server/index.js +7 -3
  279. package/persisters/persister-partykit-server/with-schemas/index.js +7 -3
  280. package/persisters/persister-pglite/index.js +15 -9
  281. package/persisters/persister-pglite/with-schemas/index.js +15 -9
  282. package/persisters/persister-postgres/index.js +15 -9
  283. package/persisters/persister-postgres/with-schemas/index.js +15 -9
  284. package/persisters/persister-powersync/index.js +16 -10
  285. package/persisters/persister-powersync/with-schemas/index.js +16 -10
  286. package/persisters/persister-react-native-mmkv/index.js +465 -0
  287. package/persisters/persister-react-native-mmkv/with-schemas/index.js +465 -0
  288. package/persisters/persister-react-native-sqlite/index.js +1195 -0
  289. package/persisters/persister-react-native-sqlite/with-schemas/index.js +1195 -0
  290. package/persisters/persister-remote/index.js +16 -10
  291. package/persisters/persister-remote/with-schemas/index.js +16 -10
  292. package/persisters/persister-sqlite-bun/index.js +16 -10
  293. package/persisters/persister-sqlite-bun/with-schemas/index.js +16 -10
  294. package/persisters/persister-sqlite-wasm/index.js +16 -10
  295. package/persisters/persister-sqlite-wasm/with-schemas/index.js +16 -10
  296. package/persisters/persister-sqlite3/index.js +16 -10
  297. package/persisters/persister-sqlite3/with-schemas/index.js +16 -10
  298. package/persisters/persister-yjs/index.js +20 -12
  299. package/persisters/persister-yjs/with-schemas/index.js +20 -12
  300. package/persisters/with-schemas/index.js +16 -10
  301. package/queries/index.js +20 -12
  302. package/queries/with-schemas/index.js +20 -12
  303. package/readme.md +13 -13
  304. package/relationships/index.js +10 -5
  305. package/relationships/with-schemas/index.js +10 -5
  306. package/releases.md +179 -41
  307. package/store/index.js +50 -18
  308. package/store/with-schemas/index.js +50 -18
  309. package/synchronizers/index.js +16 -10
  310. package/synchronizers/synchronizer-broadcast-channel/index.js +17 -11
  311. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +17 -11
  312. package/synchronizers/synchronizer-local/index.js +17 -11
  313. package/synchronizers/synchronizer-local/with-schemas/index.js +17 -11
  314. package/synchronizers/synchronizer-ws-client/index.js +16 -10
  315. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +16 -10
  316. package/synchronizers/synchronizer-ws-server/index.js +16 -10
  317. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +16 -10
  318. package/synchronizers/synchronizer-ws-server-durable-object/index.js +16 -10
  319. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +16 -10
  320. package/synchronizers/synchronizer-ws-server-simple/index.js +8 -4
  321. package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +8 -4
  322. package/synchronizers/with-schemas/index.js +16 -10
  323. package/ui-react/index.js +408 -374
  324. package/ui-react/with-schemas/index.js +408 -374
  325. package/ui-react-dom/index.js +883 -437
  326. package/ui-react-dom/with-schemas/index.js +883 -437
  327. package/ui-react-inspector/index.js +1761 -556
  328. package/ui-react-inspector/with-schemas/index.js +1761 -556
  329. package/with-schemas/index.js +63 -31
@@ -0,0 +1,465 @@
1
+ const EMPTY_STRING = '';
2
+
3
+ const getIfNotFunction =
4
+ (predicate = isNullish) =>
5
+ (value, then, otherwise) =>
6
+ predicate(value) ? otherwise?.() : then(value);
7
+ const isNullish = (thing) => thing == null;
8
+ const isUndefined = (thing) => thing === void 0;
9
+ const isNull = (thing) => thing === null;
10
+ const ifNotNullish = getIfNotFunction(isNullish);
11
+ const ifNotUndefined = getIfNotFunction(isUndefined);
12
+ const isArray = (thing) => Array.isArray(thing);
13
+ const size = (arrayOrString) => arrayOrString.length;
14
+ const test = (regex, subject) => regex.test(subject);
15
+ const errorNew = (message) => {
16
+ throw new Error(message);
17
+ };
18
+ const tryCatch = async (action, then1, then2) => {
19
+ try {
20
+ return await action();
21
+ } catch (error) {
22
+ /* istanbul ignore next */
23
+ then1?.(error);
24
+ }
25
+ };
26
+
27
+ const arrayForEach = (array, cb) => array.forEach(cb);
28
+ const arrayClear = (array, to) => array.splice(0, to);
29
+ const arrayPush = (array, ...values) => array.push(...values);
30
+ const arrayShift = (array) => array.shift();
31
+
32
+ const collSize = (coll) => coll?.size ?? 0;
33
+ const collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;
34
+ const collIsEmpty = (coll) => isUndefined(coll) || collSize(coll) == 0;
35
+ const collForEach = (coll, cb) => coll?.forEach(cb);
36
+ const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
37
+
38
+ const object = Object;
39
+ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
40
+ const isObject = (obj) =>
41
+ !isNullish(obj) &&
42
+ ifNotNullish(
43
+ getPrototypeOf(obj),
44
+ (objPrototype) =>
45
+ objPrototype == object.prototype ||
46
+ isNullish(getPrototypeOf(objPrototype)),
47
+
48
+ /* istanbul ignore next */
49
+ () => true,
50
+ );
51
+ const objIds = object.keys;
52
+ const objFreeze = object.freeze;
53
+ const objSize = (obj) => size(objIds(obj));
54
+ const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
55
+
56
+ const mapNew = (entries) => new Map(entries);
57
+ const mapGet = (map, key) => map?.get(key);
58
+ const mapSet = (map, key, value) =>
59
+ value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
60
+ const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
61
+ if (!collHas(map, key)) {
62
+ mapSet(map, key, getDefaultValue());
63
+ } else {
64
+ hadExistingValue?.(mapGet(map, key));
65
+ }
66
+ return mapGet(map, key);
67
+ };
68
+ const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
69
+ ifNotUndefined(
70
+ (ensureLeaf ? mapEnsure : mapGet)(
71
+ node,
72
+ path[p],
73
+ p > size(path) - 2 ? ensureLeaf : mapNew,
74
+ ),
75
+ (nodeOrLeaf) => {
76
+ if (p > size(path) - 2) {
77
+ if (pruneLeaf?.(nodeOrLeaf)) {
78
+ mapSet(node, path[p]);
79
+ }
80
+ return nodeOrLeaf;
81
+ }
82
+ const leaf = visitTree(nodeOrLeaf, path, ensureLeaf, pruneLeaf, p + 1);
83
+ if (collIsEmpty(nodeOrLeaf)) {
84
+ mapSet(node, path[p]);
85
+ }
86
+ return leaf;
87
+ },
88
+ );
89
+
90
+ const INTEGER = /^\d+$/;
91
+ const getPoolFunctions = () => {
92
+ const pool = [];
93
+ let nextId = 0;
94
+ return [
95
+ (reuse) => (reuse ? arrayShift(pool) : null) ?? EMPTY_STRING + nextId++,
96
+ (id) => {
97
+ if (test(INTEGER, id) && size(pool) < 1e3) {
98
+ arrayPush(pool, id);
99
+ }
100
+ },
101
+ ];
102
+ };
103
+
104
+ const setNew = (entryOrEntries) =>
105
+ new Set(
106
+ isArray(entryOrEntries) || isUndefined(entryOrEntries)
107
+ ? entryOrEntries
108
+ : [entryOrEntries],
109
+ );
110
+ const setAdd = (set, value) => set?.add(value);
111
+
112
+ const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
113
+ const leaves = [];
114
+ const deep = (node, p) =>
115
+ p == size(path)
116
+ ? arrayPush(leaves, node)
117
+ : path[p] === null
118
+ ? collForEach(node, (node2) => deep(node2, p + 1))
119
+ : arrayForEach([path[p], null], (id) => deep(mapGet(node, id), p + 1));
120
+ deep(deepIdSet, 0);
121
+ return leaves;
122
+ };
123
+ const getListenerFunctions = (getThing) => {
124
+ let thing;
125
+ const [getId, releaseId] = getPoolFunctions();
126
+ const allListeners = mapNew();
127
+ const addListener = (
128
+ listener,
129
+ idSetNode,
130
+ path,
131
+ pathGetters = [],
132
+ extraArgsGetter = () => [],
133
+ ) => {
134
+ thing ??= getThing();
135
+ const id = getId(1);
136
+ mapSet(allListeners, id, [
137
+ listener,
138
+ idSetNode,
139
+ path,
140
+ pathGetters,
141
+ extraArgsGetter,
142
+ ]);
143
+ setAdd(visitTree(idSetNode, path ?? [EMPTY_STRING], setNew), id);
144
+ return id;
145
+ };
146
+ const callListeners = (idSetNode, ids, ...extraArgs) =>
147
+ arrayForEach(getWildcardedLeaves(idSetNode, ids), (set) =>
148
+ collForEach(set, (id) =>
149
+ mapGet(allListeners, id)[0](thing, ...(ids ?? []), ...extraArgs),
150
+ ),
151
+ );
152
+ const delListener = (id) =>
153
+ ifNotUndefined(mapGet(allListeners, id), ([, idSetNode, idOrNulls]) => {
154
+ visitTree(idSetNode, idOrNulls ?? [EMPTY_STRING], void 0, (idSet) => {
155
+ collDel(idSet, id);
156
+ return collIsEmpty(idSet) ? 1 : 0;
157
+ });
158
+ mapSet(allListeners, id);
159
+ releaseId(id);
160
+ return idOrNulls;
161
+ });
162
+ const callListener = (id) =>
163
+ ifNotUndefined(
164
+ mapGet(allListeners, id),
165
+ ([listener, , path = [], pathGetters, extraArgsGetter]) => {
166
+ const callWithIds = (...ids) => {
167
+ const index = size(ids);
168
+ if (index == size(path)) {
169
+ listener(thing, ...ids, ...extraArgsGetter(ids));
170
+ } else if (isNull(path[index])) {
171
+ arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
172
+ callWithIds(...ids, id2),
173
+ );
174
+ } else {
175
+ callWithIds(...ids, path[index]);
176
+ }
177
+ };
178
+ callWithIds();
179
+ },
180
+ );
181
+ return [addListener, callListeners, delListener, callListener];
182
+ };
183
+
184
+ const scheduleRunning = mapNew();
185
+ const scheduleActions = mapNew();
186
+ const getStoreFunctions = (
187
+ persist = 1 /* StoreOnly */,
188
+ store,
189
+ isSynchronizer,
190
+ ) =>
191
+ persist != 1 /* StoreOnly */ && store.isMergeable()
192
+ ? [
193
+ 1,
194
+ store.getMergeableContent,
195
+ () => store.getTransactionMergeableChanges(!isSynchronizer),
196
+ ([[changedTables], [changedValues]]) =>
197
+ !objIsEmpty(changedTables) || !objIsEmpty(changedValues),
198
+ store.setDefaultContent,
199
+ ]
200
+ : persist != 2 /* MergeableStoreOnly */
201
+ ? [
202
+ 0,
203
+ store.getContent,
204
+ store.getTransactionChanges,
205
+ ([changedTables, changedValues]) =>
206
+ !objIsEmpty(changedTables) || !objIsEmpty(changedValues),
207
+ store.setContent,
208
+ ]
209
+ : errorNew('Store type not supported by this Persister');
210
+ const createCustomPersister = (
211
+ store,
212
+ getPersisted,
213
+ setPersisted,
214
+ addPersisterListener,
215
+ delPersisterListener,
216
+ onIgnoredError,
217
+ persist,
218
+ extra = {},
219
+ isSynchronizer = 0,
220
+ scheduleId = [],
221
+ ) => {
222
+ let status = 0; /* Idle */
223
+ let loads = 0;
224
+ let saves = 0;
225
+ let action;
226
+ let autoLoadHandle;
227
+ let autoSaveListenerId;
228
+ mapEnsure(scheduleRunning, scheduleId, () => 0);
229
+ mapEnsure(scheduleActions, scheduleId, () => []);
230
+ const statusListeners = mapNew();
231
+ const [
232
+ isMergeableStore,
233
+ getContent,
234
+ getChanges,
235
+ hasChanges,
236
+ setDefaultContent,
237
+ ] = getStoreFunctions(persist, store, isSynchronizer);
238
+ const [addListener, callListeners, delListenerImpl] = getListenerFunctions(
239
+ () => persister,
240
+ );
241
+ const setStatus = (newStatus) => {
242
+ if (newStatus != status) {
243
+ status = newStatus;
244
+ callListeners(statusListeners, void 0, status);
245
+ }
246
+ };
247
+ const run = async () => {
248
+ /* istanbul ignore else */
249
+ if (!mapGet(scheduleRunning, scheduleId)) {
250
+ mapSet(scheduleRunning, scheduleId, 1);
251
+ while (
252
+ !isUndefined((action = arrayShift(mapGet(scheduleActions, scheduleId))))
253
+ ) {
254
+ await tryCatch(action, onIgnoredError);
255
+ }
256
+ mapSet(scheduleRunning, scheduleId, 0);
257
+ }
258
+ };
259
+ const setContentOrChanges = (contentOrChanges) => {
260
+ (isMergeableStore && isArray(contentOrChanges?.[0])
261
+ ? contentOrChanges?.[2] === 1
262
+ ? store.applyMergeableChanges
263
+ : store.setMergeableContent
264
+ : contentOrChanges?.[2] === 1
265
+ ? store.applyChanges
266
+ : store.setContent)(contentOrChanges);
267
+ };
268
+ const load = async (initialContent) => {
269
+ /* istanbul ignore else */
270
+ if (status != 2 /* Saving */) {
271
+ setStatus(1 /* Loading */);
272
+ loads++;
273
+ await schedule(async () => {
274
+ await tryCatch(
275
+ async () => {
276
+ const content = await getPersisted();
277
+ if (isArray(content)) {
278
+ setContentOrChanges(content);
279
+ } else if (initialContent) {
280
+ setDefaultContent(initialContent);
281
+ } else {
282
+ errorNew(`Content is not an array: ${content}`);
283
+ }
284
+ },
285
+ () => {
286
+ if (initialContent) {
287
+ setDefaultContent(initialContent);
288
+ }
289
+ },
290
+ );
291
+ setStatus(0 /* Idle */);
292
+ });
293
+ }
294
+ return persister;
295
+ };
296
+ const startAutoLoad = async (initialContent) => {
297
+ stopAutoLoad();
298
+ await load(initialContent);
299
+ await tryCatch(
300
+ async () =>
301
+ (autoLoadHandle = await addPersisterListener(
302
+ async (content, changes) => {
303
+ if (changes || content) {
304
+ /* istanbul ignore else */
305
+ if (status != 2 /* Saving */) {
306
+ setStatus(1 /* Loading */);
307
+ loads++;
308
+ setContentOrChanges(changes ?? content);
309
+ setStatus(0 /* Idle */);
310
+ }
311
+ } else {
312
+ await load();
313
+ }
314
+ },
315
+ )),
316
+ onIgnoredError,
317
+ );
318
+ return persister;
319
+ };
320
+ const stopAutoLoad = async () => {
321
+ if (autoLoadHandle) {
322
+ await tryCatch(
323
+ () => delPersisterListener(autoLoadHandle),
324
+ onIgnoredError,
325
+ );
326
+ autoLoadHandle = void 0;
327
+ }
328
+ return persister;
329
+ };
330
+ const isAutoLoading = () => !isUndefined(autoLoadHandle);
331
+ const save = async (changes) => {
332
+ /* istanbul ignore else */
333
+ if (status != 1 /* Loading */) {
334
+ setStatus(2 /* Saving */);
335
+ saves++;
336
+ await schedule(async () => {
337
+ await tryCatch(() => setPersisted(getContent, changes), onIgnoredError);
338
+ setStatus(0 /* Idle */);
339
+ });
340
+ }
341
+ return persister;
342
+ };
343
+ const startAutoSave = async () => {
344
+ stopAutoSave();
345
+ await save();
346
+ autoSaveListenerId = store.addDidFinishTransactionListener(() => {
347
+ const changes = getChanges();
348
+ if (hasChanges(changes)) {
349
+ save(changes);
350
+ }
351
+ });
352
+ return persister;
353
+ };
354
+ const stopAutoSave = async () => {
355
+ if (autoSaveListenerId) {
356
+ store.delListener(autoSaveListenerId);
357
+ autoSaveListenerId = void 0;
358
+ }
359
+ return persister;
360
+ };
361
+ const isAutoSaving = () => !isUndefined(autoSaveListenerId);
362
+ const startAutoPersisting = async (
363
+ initialContent,
364
+ startSaveFirst = false,
365
+ ) => {
366
+ const [call1, call2] = startSaveFirst
367
+ ? [startAutoSave, startAutoLoad]
368
+ : [startAutoLoad, startAutoSave];
369
+ await call1(initialContent);
370
+ await call2(initialContent);
371
+ return persister;
372
+ };
373
+ const stopAutoPersisting = async (stopSaveFirst = false) => {
374
+ const [call1, call2] = stopSaveFirst
375
+ ? [stopAutoSave, stopAutoLoad]
376
+ : [stopAutoLoad, stopAutoSave];
377
+ await call1();
378
+ await call2();
379
+ return persister;
380
+ };
381
+ const getStatus = () => status;
382
+ const addStatusListener = (listener) =>
383
+ addListener(listener, statusListeners);
384
+ const delListener = (listenerId) => {
385
+ delListenerImpl(listenerId);
386
+ return store;
387
+ };
388
+ const schedule = async (...actions) => {
389
+ arrayPush(mapGet(scheduleActions, scheduleId), ...actions);
390
+ await run();
391
+ return persister;
392
+ };
393
+ const getStore = () => store;
394
+ const destroy = () => {
395
+ arrayClear(mapGet(scheduleActions, scheduleId));
396
+ return stopAutoPersisting();
397
+ };
398
+ const getStats = () => ({loads, saves});
399
+ const persister = {
400
+ load,
401
+ startAutoLoad,
402
+ stopAutoLoad,
403
+ isAutoLoading,
404
+ save,
405
+ startAutoSave,
406
+ stopAutoSave,
407
+ isAutoSaving,
408
+ startAutoPersisting,
409
+ stopAutoPersisting,
410
+ getStatus,
411
+ addStatusListener,
412
+ delListener,
413
+ schedule,
414
+ getStore,
415
+ destroy,
416
+ getStats,
417
+ ...extra,
418
+ };
419
+ return objFreeze(persister);
420
+ };
421
+
422
+ const STORAGE = 'storage';
423
+ const createReactNativeMmkvPersister = (
424
+ store,
425
+ storage,
426
+ storageName = STORAGE,
427
+ onIgnoredError,
428
+ ) => {
429
+ const getPersisted = async () => {
430
+ const data = storage.getString(storageName);
431
+ const value = data === void 0 ? void 0 : JSON.parse(data);
432
+ return Promise.resolve(value);
433
+ };
434
+ const setPersisted = async (getContent) => {
435
+ const content = getContent();
436
+ if (content !== void 0) {
437
+ storage.set(storageName, JSON.stringify(content));
438
+ }
439
+ };
440
+ const addPersisterListener = (listener) =>
441
+ storage.addOnValueChangedListener((key) => {
442
+ if (key === storageName) {
443
+ const value = storage.getString(storageName);
444
+ if (value) {
445
+ listener(JSON.parse(value));
446
+ }
447
+ }
448
+ });
449
+ const delPersisterListener = (storageListener) => {
450
+ storageListener.remove();
451
+ };
452
+ return createCustomPersister(
453
+ store,
454
+ getPersisted,
455
+ setPersisted,
456
+ addPersisterListener,
457
+ delPersisterListener,
458
+ onIgnoredError,
459
+ 3,
460
+ // StoreOrMergeableStore
461
+ {getStorageName: () => storageName},
462
+ );
463
+ };
464
+
465
+ export {createReactNativeMmkvPersister};