tinybase 5.0.0-beta.12 → 5.0.0-beta.14

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 (452) hide show
  1. package/lib/cjs/common.cjs +1 -1
  2. package/lib/cjs/common.cjs.gz +0 -0
  3. package/lib/cjs/indexes.cjs +1 -1
  4. package/lib/cjs/indexes.cjs.gz +0 -0
  5. package/lib/cjs/mergeable-store.cjs +1 -1
  6. package/lib/cjs/mergeable-store.cjs.gz +0 -0
  7. package/lib/cjs/metrics.cjs +1 -1
  8. package/lib/cjs/metrics.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  10. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  12. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  14. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  16. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  18. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  20. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-file.cjs +1 -1
  22. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  24. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  25. package/lib/cjs/persisters/persister-libsql.cjs +1 -1
  26. package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
  27. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  28. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  29. package/lib/cjs/persisters/persister-powersync.cjs +1 -1
  30. package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
  31. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  32. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  33. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  34. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  35. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  36. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  37. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  38. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  39. package/lib/cjs/persisters.cjs +1 -1
  40. package/lib/cjs/persisters.cjs.gz +0 -0
  41. package/lib/cjs/queries.cjs +1 -1
  42. package/lib/cjs/queries.cjs.gz +0 -0
  43. package/lib/cjs/relationships.cjs +1 -1
  44. package/lib/cjs/relationships.cjs.gz +0 -0
  45. package/lib/cjs/store.cjs +1 -1
  46. package/lib/cjs/store.cjs.gz +0 -0
  47. package/lib/cjs/synchronizers/synchronizer-local.cjs +1 -1
  48. package/lib/cjs/synchronizers/synchronizer-local.cjs.gz +0 -0
  49. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs +1 -1
  50. package/lib/cjs/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  51. package/lib/cjs/synchronizers.cjs +1 -1
  52. package/lib/cjs/synchronizers.cjs.gz +0 -0
  53. package/lib/cjs/tinybase.cjs +1 -1
  54. package/lib/cjs/tinybase.cjs.gz +0 -0
  55. package/lib/cjs/tools.cjs +1 -1
  56. package/lib/cjs/tools.cjs.gz +0 -0
  57. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  58. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  59. package/lib/cjs/ui-react-dom.cjs +1 -1
  60. package/lib/cjs/ui-react-dom.cjs.gz +0 -0
  61. package/lib/cjs-es6/checkpoints.cjs +1 -1
  62. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  63. package/lib/cjs-es6/common.cjs +1 -1
  64. package/lib/cjs-es6/common.cjs.gz +0 -0
  65. package/lib/cjs-es6/indexes.cjs +1 -1
  66. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  67. package/lib/cjs-es6/mergeable-store.cjs +1 -1
  68. package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
  69. package/lib/cjs-es6/metrics.cjs +1 -1
  70. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  71. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  72. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  73. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  74. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  75. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  76. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  77. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  78. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  79. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  80. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  81. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  82. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  83. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  84. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  85. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  86. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  87. package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -1
  88. package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
  89. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  90. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  91. package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -1
  92. package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
  93. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  94. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  95. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  96. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  97. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  98. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  99. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  100. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  101. package/lib/cjs-es6/persisters.cjs +1 -1
  102. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  103. package/lib/cjs-es6/queries.cjs +1 -1
  104. package/lib/cjs-es6/queries.cjs.gz +0 -0
  105. package/lib/cjs-es6/relationships.cjs +1 -1
  106. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  107. package/lib/cjs-es6/store.cjs +1 -1
  108. package/lib/cjs-es6/store.cjs.gz +0 -0
  109. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs +1 -1
  110. package/lib/cjs-es6/synchronizers/synchronizer-local.cjs.gz +0 -0
  111. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs +1 -1
  112. package/lib/cjs-es6/synchronizers/synchronizer-ws-client.cjs.gz +0 -0
  113. package/lib/cjs-es6/synchronizers.cjs +1 -1
  114. package/lib/cjs-es6/synchronizers.cjs.gz +0 -0
  115. package/lib/cjs-es6/tinybase.cjs +1 -1
  116. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  117. package/lib/cjs-es6/tools.cjs +1 -1
  118. package/lib/cjs-es6/tools.cjs.gz +0 -0
  119. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  120. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  121. package/lib/cjs-es6/ui-react-dom.cjs +1 -1
  122. package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
  123. package/lib/common.js +1 -1
  124. package/lib/common.js.gz +0 -0
  125. package/lib/debug/common.js +22 -1
  126. package/lib/debug/indexes.js +6 -1
  127. package/lib/debug/mergeable-store.js +57 -45
  128. package/lib/debug/metrics.js +0 -1
  129. package/lib/debug/persisters/persister-automerge.js +1 -3
  130. package/lib/debug/persisters/persister-browser.js +1 -3
  131. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +24 -30
  132. package/lib/debug/persisters/persister-electric-sql.js +24 -30
  133. package/lib/debug/persisters/persister-expo-sqlite-next.js +24 -30
  134. package/lib/debug/persisters/persister-expo-sqlite.js +24 -30
  135. package/lib/debug/persisters/persister-file.js +1 -3
  136. package/lib/debug/persisters/persister-indexed-db.js +1 -4
  137. package/lib/debug/persisters/persister-libsql.js +24 -30
  138. package/lib/debug/persisters/persister-partykit-client.js +1 -3
  139. package/lib/debug/persisters/persister-powersync.js +24 -30
  140. package/lib/debug/persisters/persister-remote.js +1 -4
  141. package/lib/debug/persisters/persister-sqlite-wasm.js +24 -30
  142. package/lib/debug/persisters/persister-sqlite3.js +24 -30
  143. package/lib/debug/persisters/persister-yjs.js +1 -3
  144. package/lib/debug/persisters.js +1 -3
  145. package/lib/debug/queries.js +0 -1
  146. package/lib/debug/relationships.js +0 -1
  147. package/lib/debug/store.js +6 -0
  148. package/lib/debug/synchronizers/synchronizer-local.js +19 -89
  149. package/lib/debug/synchronizers/synchronizer-ws-client.js +18 -88
  150. package/lib/debug/synchronizers.js +18 -88
  151. package/lib/debug/tinybase.js +93 -81
  152. package/lib/debug/tools.js +0 -3
  153. package/lib/debug/ui-react-dom.js +13 -11
  154. package/lib/es6/checkpoints.js +1 -1
  155. package/lib/es6/checkpoints.js.gz +0 -0
  156. package/lib/es6/common.js +1 -1
  157. package/lib/es6/common.js.gz +0 -0
  158. package/lib/es6/indexes.js +1 -1
  159. package/lib/es6/indexes.js.gz +0 -0
  160. package/lib/es6/mergeable-store.js +1 -1
  161. package/lib/es6/mergeable-store.js.gz +0 -0
  162. package/lib/es6/metrics.js +1 -1
  163. package/lib/es6/metrics.js.gz +0 -0
  164. package/lib/es6/persisters/persister-automerge.js +1 -1
  165. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  166. package/lib/es6/persisters/persister-browser.js +1 -1
  167. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  168. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  169. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  170. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  171. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  172. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  173. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  174. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  175. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  176. package/lib/es6/persisters/persister-file.js +1 -1
  177. package/lib/es6/persisters/persister-file.js.gz +0 -0
  178. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  179. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  180. package/lib/es6/persisters/persister-libsql.js +1 -1
  181. package/lib/es6/persisters/persister-libsql.js.gz +0 -0
  182. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  183. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  184. package/lib/es6/persisters/persister-powersync.js +1 -1
  185. package/lib/es6/persisters/persister-powersync.js.gz +0 -0
  186. package/lib/es6/persisters/persister-remote.js +1 -1
  187. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  188. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  189. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  190. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  191. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  192. package/lib/es6/persisters/persister-yjs.js +1 -1
  193. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  194. package/lib/es6/persisters.js +1 -1
  195. package/lib/es6/persisters.js.gz +0 -0
  196. package/lib/es6/queries.js +1 -1
  197. package/lib/es6/queries.js.gz +0 -0
  198. package/lib/es6/relationships.js +1 -1
  199. package/lib/es6/relationships.js.gz +0 -0
  200. package/lib/es6/store.js +1 -1
  201. package/lib/es6/store.js.gz +0 -0
  202. package/lib/es6/synchronizers/synchronizer-local.js +1 -1
  203. package/lib/es6/synchronizers/synchronizer-local.js.gz +0 -0
  204. package/lib/es6/synchronizers/synchronizer-ws-client.js +1 -1
  205. package/lib/es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  206. package/lib/es6/synchronizers.js +1 -1
  207. package/lib/es6/synchronizers.js.gz +0 -0
  208. package/lib/es6/tinybase.js +1 -1
  209. package/lib/es6/tinybase.js.gz +0 -0
  210. package/lib/es6/tools.js +1 -1
  211. package/lib/es6/tools.js.gz +0 -0
  212. package/lib/es6/ui-react-dom-debug.js +1 -1
  213. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  214. package/lib/es6/ui-react-dom.js +1 -1
  215. package/lib/es6/ui-react-dom.js.gz +0 -0
  216. package/lib/indexes.js +1 -1
  217. package/lib/indexes.js.gz +0 -0
  218. package/lib/mergeable-store.js +1 -1
  219. package/lib/mergeable-store.js.gz +0 -0
  220. package/lib/metrics.js +1 -1
  221. package/lib/metrics.js.gz +0 -0
  222. package/lib/persisters/persister-automerge.js +1 -1
  223. package/lib/persisters/persister-automerge.js.gz +0 -0
  224. package/lib/persisters/persister-browser.js +1 -1
  225. package/lib/persisters/persister-browser.js.gz +0 -0
  226. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  227. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  228. package/lib/persisters/persister-electric-sql.js +1 -1
  229. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  230. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  231. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  232. package/lib/persisters/persister-expo-sqlite.js +1 -1
  233. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  234. package/lib/persisters/persister-file.js +1 -1
  235. package/lib/persisters/persister-file.js.gz +0 -0
  236. package/lib/persisters/persister-indexed-db.js +1 -1
  237. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  238. package/lib/persisters/persister-libsql.js +1 -1
  239. package/lib/persisters/persister-libsql.js.gz +0 -0
  240. package/lib/persisters/persister-partykit-client.js +1 -1
  241. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  242. package/lib/persisters/persister-powersync.js +1 -1
  243. package/lib/persisters/persister-powersync.js.gz +0 -0
  244. package/lib/persisters/persister-remote.js +1 -1
  245. package/lib/persisters/persister-remote.js.gz +0 -0
  246. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  247. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  248. package/lib/persisters/persister-sqlite3.js +1 -1
  249. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  250. package/lib/persisters/persister-yjs.js +1 -1
  251. package/lib/persisters/persister-yjs.js.gz +0 -0
  252. package/lib/persisters.js +1 -1
  253. package/lib/persisters.js.gz +0 -0
  254. package/lib/queries.js +1 -1
  255. package/lib/queries.js.gz +0 -0
  256. package/lib/relationships.js +1 -1
  257. package/lib/relationships.js.gz +0 -0
  258. package/lib/store.js +1 -1
  259. package/lib/store.js.gz +0 -0
  260. package/lib/synchronizers/synchronizer-local.js +1 -1
  261. package/lib/synchronizers/synchronizer-local.js.gz +0 -0
  262. package/lib/synchronizers/synchronizer-ws-client.js +1 -1
  263. package/lib/synchronizers/synchronizer-ws-client.js.gz +0 -0
  264. package/lib/synchronizers.js +1 -1
  265. package/lib/synchronizers.js.gz +0 -0
  266. package/lib/tinybase.js +1 -1
  267. package/lib/tinybase.js.gz +0 -0
  268. package/lib/tools.js +1 -1
  269. package/lib/tools.js.gz +0 -0
  270. package/lib/types/common.d.ts +7 -0
  271. package/lib/types/mergeable-store.d.ts +2 -8
  272. package/lib/types/persisters/persister-automerge.d.ts +2 -2
  273. package/lib/types/persisters/persister-browser.d.ts +3 -3
  274. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +2 -2
  275. package/lib/types/persisters/persister-electric-sql.d.ts +2 -2
  276. package/lib/types/persisters/persister-expo-sqlite-next.d.ts +2 -2
  277. package/lib/types/persisters/persister-expo-sqlite.d.ts +2 -2
  278. package/lib/types/persisters/persister-file.d.ts +3 -3
  279. package/lib/types/persisters/persister-indexed-db.d.ts +2 -2
  280. package/lib/types/persisters/persister-libsql.d.ts +3 -3
  281. package/lib/types/persisters/persister-partykit-client.d.ts +2 -2
  282. package/lib/types/persisters/persister-partykit-server.d.ts +2 -2
  283. package/lib/types/persisters/persister-powersync.d.ts +3 -3
  284. package/lib/types/persisters/persister-remote.d.ts +2 -2
  285. package/lib/types/persisters/persister-sqlite-wasm.d.ts +2 -2
  286. package/lib/types/persisters/persister-sqlite3.d.ts +2 -2
  287. package/lib/types/persisters.d.ts +5 -4
  288. package/lib/types/relationships.d.ts +1 -1
  289. package/lib/types/synchronizers/synchronizer-local.d.ts +2 -2
  290. package/lib/types/synchronizers/synchronizer-ws-client.d.ts +2 -2
  291. package/lib/types/synchronizers/synchronizer-ws-server.d.ts +2 -2
  292. package/lib/types/synchronizers.d.ts +13 -9
  293. package/lib/types/ui-react-dom.d.ts +2 -2
  294. package/lib/types/ui-react.d.ts +5 -5
  295. package/lib/types/with-schemas/common.d.ts +7 -0
  296. package/lib/types/with-schemas/indexes.d.ts +1 -1
  297. package/lib/types/with-schemas/internal/queries.d.ts +4 -4
  298. package/lib/types/with-schemas/internal/store.d.ts +2 -2
  299. package/lib/types/with-schemas/internal/ui-react.d.ts +12 -8
  300. package/lib/types/with-schemas/mergeable-store.d.ts +3 -9
  301. package/lib/types/with-schemas/metrics.d.ts +1 -1
  302. package/lib/types/with-schemas/persisters/persister-automerge.d.ts +2 -2
  303. package/lib/types/with-schemas/persisters/persister-browser.d.ts +3 -3
  304. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +2 -2
  305. package/lib/types/with-schemas/persisters/persister-electric-sql.d.ts +2 -2
  306. package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +2 -2
  307. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +2 -2
  308. package/lib/types/with-schemas/persisters/persister-file.d.ts +3 -3
  309. package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +2 -2
  310. package/lib/types/with-schemas/persisters/persister-libsql.d.ts +3 -3
  311. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +2 -2
  312. package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +2 -2
  313. package/lib/types/with-schemas/persisters/persister-powersync.d.ts +4 -4
  314. package/lib/types/with-schemas/persisters/persister-remote.d.ts +2 -2
  315. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +2 -2
  316. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +2 -2
  317. package/lib/types/with-schemas/persisters.d.ts +6 -5
  318. package/lib/types/with-schemas/queries.d.ts +2 -2
  319. package/lib/types/with-schemas/relationships.d.ts +2 -2
  320. package/lib/types/with-schemas/store.d.ts +1 -1
  321. package/lib/types/with-schemas/synchronizers/synchronizer-local.d.ts +3 -3
  322. package/lib/types/with-schemas/synchronizers/synchronizer-ws-client.d.ts +3 -3
  323. package/lib/types/with-schemas/synchronizers/synchronizer-ws-server.d.ts +2 -2
  324. package/lib/types/with-schemas/synchronizers.d.ts +13 -9
  325. package/lib/types/with-schemas/ui-react-dom.d.ts +5 -5
  326. package/lib/types/with-schemas/ui-react.d.ts +8 -10
  327. package/lib/ui-react-dom.js +1 -1
  328. package/lib/ui-react-dom.js.gz +0 -0
  329. package/lib/umd/common.js +1 -1
  330. package/lib/umd/common.js.gz +0 -0
  331. package/lib/umd/indexes.js +1 -1
  332. package/lib/umd/indexes.js.gz +0 -0
  333. package/lib/umd/mergeable-store.js +1 -1
  334. package/lib/umd/mergeable-store.js.gz +0 -0
  335. package/lib/umd/metrics.js +1 -1
  336. package/lib/umd/metrics.js.gz +0 -0
  337. package/lib/umd/persisters/persister-automerge.js +1 -1
  338. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  339. package/lib/umd/persisters/persister-browser.js +1 -1
  340. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  341. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  342. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  343. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  344. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  345. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  346. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  347. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  348. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  349. package/lib/umd/persisters/persister-file.js +1 -1
  350. package/lib/umd/persisters/persister-file.js.gz +0 -0
  351. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  352. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  353. package/lib/umd/persisters/persister-libsql.js +1 -1
  354. package/lib/umd/persisters/persister-libsql.js.gz +0 -0
  355. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  356. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  357. package/lib/umd/persisters/persister-powersync.js +1 -1
  358. package/lib/umd/persisters/persister-powersync.js.gz +0 -0
  359. package/lib/umd/persisters/persister-remote.js +1 -1
  360. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  361. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  362. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  363. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  364. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  365. package/lib/umd/persisters/persister-yjs.js +1 -1
  366. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  367. package/lib/umd/persisters.js +1 -1
  368. package/lib/umd/persisters.js.gz +0 -0
  369. package/lib/umd/queries.js +1 -1
  370. package/lib/umd/queries.js.gz +0 -0
  371. package/lib/umd/relationships.js +1 -1
  372. package/lib/umd/relationships.js.gz +0 -0
  373. package/lib/umd/store.js +1 -1
  374. package/lib/umd/store.js.gz +0 -0
  375. package/lib/umd/synchronizers/synchronizer-local.js +1 -1
  376. package/lib/umd/synchronizers/synchronizer-local.js.gz +0 -0
  377. package/lib/umd/synchronizers/synchronizer-ws-client.js +1 -1
  378. package/lib/umd/synchronizers/synchronizer-ws-client.js.gz +0 -0
  379. package/lib/umd/synchronizers.js +1 -1
  380. package/lib/umd/synchronizers.js.gz +0 -0
  381. package/lib/umd/tinybase.js +1 -1
  382. package/lib/umd/tinybase.js.gz +0 -0
  383. package/lib/umd/tools.js +1 -1
  384. package/lib/umd/tools.js.gz +0 -0
  385. package/lib/umd/ui-react-dom-debug.js +1 -1
  386. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  387. package/lib/umd/ui-react-dom.js +1 -1
  388. package/lib/umd/ui-react-dom.js.gz +0 -0
  389. package/lib/umd-es6/checkpoints.js +1 -1
  390. package/lib/umd-es6/checkpoints.js.gz +0 -0
  391. package/lib/umd-es6/common.js +1 -1
  392. package/lib/umd-es6/common.js.gz +0 -0
  393. package/lib/umd-es6/indexes.js +1 -1
  394. package/lib/umd-es6/indexes.js.gz +0 -0
  395. package/lib/umd-es6/mergeable-store.js +1 -1
  396. package/lib/umd-es6/mergeable-store.js.gz +0 -0
  397. package/lib/umd-es6/metrics.js +1 -1
  398. package/lib/umd-es6/metrics.js.gz +0 -0
  399. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  400. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  401. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  402. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  403. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  404. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  405. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  406. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  407. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  408. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  409. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  410. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  411. package/lib/umd-es6/persisters/persister-file.js +1 -1
  412. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  413. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  414. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  415. package/lib/umd-es6/persisters/persister-libsql.js +1 -1
  416. package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
  417. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  418. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  419. package/lib/umd-es6/persisters/persister-powersync.js +1 -1
  420. package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
  421. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  422. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  423. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  424. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  425. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  426. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  427. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  428. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  429. package/lib/umd-es6/persisters.js +1 -1
  430. package/lib/umd-es6/persisters.js.gz +0 -0
  431. package/lib/umd-es6/queries.js +1 -1
  432. package/lib/umd-es6/queries.js.gz +0 -0
  433. package/lib/umd-es6/relationships.js +1 -1
  434. package/lib/umd-es6/relationships.js.gz +0 -0
  435. package/lib/umd-es6/store.js +1 -1
  436. package/lib/umd-es6/store.js.gz +0 -0
  437. package/lib/umd-es6/synchronizers/synchronizer-local.js +1 -1
  438. package/lib/umd-es6/synchronizers/synchronizer-local.js.gz +0 -0
  439. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js +1 -1
  440. package/lib/umd-es6/synchronizers/synchronizer-ws-client.js.gz +0 -0
  441. package/lib/umd-es6/synchronizers.js +1 -1
  442. package/lib/umd-es6/synchronizers.js.gz +0 -0
  443. package/lib/umd-es6/tinybase.js +1 -1
  444. package/lib/umd-es6/tinybase.js.gz +0 -0
  445. package/lib/umd-es6/tools.js +1 -1
  446. package/lib/umd-es6/tools.js.gz +0 -0
  447. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  448. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  449. package/lib/umd-es6/ui-react-dom.js +1 -1
  450. package/lib/umd-es6/ui-react-dom.js.gz +0 -0
  451. package/package.json +17 -17
  452. package/readme.md +2 -2
@@ -1 +1 @@
1
- "use strict";var e=require("react"),l=require("./ui-react");const t=e=>typeof e,r=t(""),o=t(!0),a=t(0),n="Value",s="currentTarget",i="value",d=isFinite,u=e=>null==e,{PureComponent:c,Fragment:m,createElement:h,useCallback:b,useLayoutEffect:p,useRef:g,useState:f}=e,w=(e,...l)=>u(e)?{}:e(...l),v=(e,l)=>e.map(l),I=Object,y=I.entries,C=(e=[])=>I.fromEntries(e),x=(e,l)=>v(y(e),(([e,t])=>l(t,e))),k="tinybaseStoreInspector",T="M20 80l5-15l40-40l10 10l-40 40l-15 5m5-15l10 10",O='content:url("',R=O+"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' stroke-width='4' stroke='white' fill='none'>",S='</svg>")',N=O+"data:image/svg+xml,%3csvg viewBox='0 0 680 680' xmlns='http://www.w3.org/2000/svg' style='width:680px%3bheight:680px'%3e %3cpath stroke='white' stroke-width='80' fill='none' d='M340 617a84 241 90 11.01 0zM131 475a94 254 70 10428-124 114 286 70 01-428 124zm0-140a94 254 70 10428-124 114 286 70 01-428 124zm-12-127a94 254 70 00306 38 90 260 90 01-306-38zm221 3a74 241 90 11.01 0z' /%3e %3cpath fill='%23d81b60' d='M131 475a94 254 70 10428-124 114 286 70 01-428 124zm0-140a94 254 70 10428-124 114 286 70 01-428 124z' /%3e %3cpath d='M249 619a94 240 90 00308-128 114 289 70 01-308 128zM119 208a94 254 70 00306 38 90 260 90 01-306-38zm221 3a74 241 90 11.01 0z' /%3e%3c/svg%3e\")",V=v([[20,20,20,60],[20,20,60,20],[20,60,60,20],[60,20,20,60],[30,30,40,40]],(([e,l,t,r])=>R+`<rect x='20' y='20' width='60' height='60' fill='grey'/><rect x='${e}' y='${l}' width='${t}' height='${r}' fill='white'/>`+S)),z=R+"<path d='M20 20l60 60M20 80l60-60' />"+S,P=R+`<path d='${T}' />`+S,j=R+`<path d='${T}M20 20l60 60' />`+S;var $=Object.defineProperty,q=Object.defineProperties,M=Object.getOwnPropertyDescriptors,E=Object.getOwnPropertySymbols,H=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable,F=(e,l,t)=>l in e?$(e,l,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[l]=t,A=(e,l)=>{for(var t in l||(l={}))H.call(l,t)&&F(e,t,l[t]);if(E)for(var t of E(l))B.call(l,t)&&F(e,t,l[t]);return e},D=(e,l)=>q(e,M(l));const L="*::-webkit-scrollbar";((e,l="")=>{e.join(l)})(x(D(A(D(A(D(A({"":"all:initial;font-family:sans-serif;font-size:0.75rem;position:fixed;z-index:999999","*":"all:revert","*::before":"all:revert","*::after":"all:revert",[L]:"width:0.5rem;height:0.5rem;",[L+"-track"]:"background:#111",[L+"-thumb"]:"background:#999;border:1px solid #111",[L+"-thumb:hover"]:"background:#fff",[L+"-corner"]:"background:#111",img:"width:1rem;height:1rem;background:#111;border:0;vertical-align:text-bottom",">img":"padding:0.25rem;bottom:0;right:0;position:fixed;"+N},C(v(["bottom:0;left:0","top:0;right:0"],((e,l)=>[`>img[data-position='${l}']`,e])))),{main:"display:flex;flex-direction:column;background:#111d;color:#fff;position:fixed;"}),C(v(["bottom:0;left:0;width:35vw;height:100vh","top:0;right:0;width:100vw;height:30vh","bottom:0;left:0;width:100vw;height:30vh","top:0;right:0;width:35vw;height:100vh","top:0;right:0;width:100vw;height:100vh"],((e,l)=>[`main[data-position='${l}']`,e])))),{header:"display:flex;padding:0.25rem;background:#000;align-items:center","header>img:nth-of-type(1)":N,"header>img:nth-of-type(6)":z}),C(v(V,((e,l)=>[`header>img[data-id='${l}']`,e])))),{"header>span":"flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-left:0.25rem",article:"padding:0.25rem 0.25rem 0.25rem 0.5rem;overflow:auto;flex:1",details:"margin-left:0.75rem;width:fit-content;","details img":"display:none","details[open]>summary img":"display:unset;background:none;margin-left:0.25rem","details[open]>summary img.edit":P,"details[open]>summary img.done":j,summary:"margin-left:-0.75rem;line-height:1.25rem;user-select:none;width:fit-content",table:"border-collapse:collapse;table-layout:fixed;margin-bottom:0.5rem","table input":"background:#111;color:unset;padding:0 0.25rem;border:0;font-size:unset;vertical-align:top;margin:0",'table input[type="number"]':"width:4rem","table tbody button":"font-size:0;background:#fff;border-radius:50%;margin:0 0.125rem 0 0;width:0.85rem;color:#111","table button:first-letter":"font-size:0.75rem",thead:"background:#222","th:nth-of-type(1)":"min-width:2rem;","th.sorted":"background:#000","table caption":"text-align:left;white-space:nowrap;line-height:1.25rem",button:"width:1.5rem;border:none;background:none;color:#fff;padding:0","button[disabled]":"color:#777","button.next":"margin-right:0.5rem",[`th,#${k} td`]:"overflow:hidden;text-overflow:ellipsis;padding:0.25rem 0.5rem;max-width:12rem;white-space:nowrap;border-width:1px 0;border-style:solid;border-color:#777;text-align:left","span.warn":"margin:0.25rem;color:#d81b60"}),((e,l)=>e?`#${k} ${l}{${e}}`:"")));const G=(e,l,t,o)=>e==r?l:e==a?t:o;var J=Object.defineProperty,K=Object.defineProperties,Q=Object.getOwnPropertyDescriptors,U=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable,Y=(e,l,t)=>l in e?J(e,l,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[l]=t,Z=(e,l)=>{for(var t in l||(l={}))W.call(l,t)&&Y(e,t,l[t]);if(U)for(var t of U(l))X.call(l,t)&&Y(e,t,l[t]);return e},_=(e,l)=>K(e,Q(l)),ee=(e,l)=>{var t={};for(var r in e)W.call(e,r)&&l.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&U)for(var r of U(e))l.indexOf(r)<0&&X.call(e,r)&&(t[r]=e[r]);return t};const{useCallback:le,useMemo:te,useState:re}=e,oe="editable",ae=(e,t)=>v(l.useTableCellIds(e,t),(l=>e+"."+l)),ne=(e,l,t)=>{const r=le(e,l);return t?r:void 0},se=(...e)=>te((()=>e),e),ie=(e,l)=>te((()=>({store:e,tableId:l})),[e,l]),de=(e,l)=>te((()=>({queries:e,queryId:l})),[e,l]),ue=(e,l=!1,t,r=0,o,a,n,s)=>{const[[i,d,u],c]=re([e,l,r]),m=le((e=>{c(e),null==s||s(e)}),[s]),b=ne((e=>m([e,e==i&&!d,u])),[m,i,d,u],t),p=le((e=>m([i,d,e])),[m,i,d]),g=!0===n?we:n;return[[i,d,u],b,te((()=>!1===n?null:h(g,{offset:u,limit:o,total:a,onChange:p})),[n,g,u,o,a,p])]},ce=(e,l,o)=>te((()=>{const a=null!=l?l:e;return n=Array.isArray(a)?C(v(a,(e=>[e,e]))):a,s=(e,l)=>Z(Z({},{label:l,component:o}),t(e)==r?{label:e}:e),C(x(n,((e,l)=>[l,s(e,l)])));var n,s}),[l,o,e]),me=({className:e,headerRow:l,idColumn:t,params:[r,o,a,n,s,i]})=>h("table",{className:e},i?h("caption",null,i):null,!1===l?null:h("thead",null,h("tr",null,!1===t?null:h(he,{sort:null!=n?n:[],label:"Id",onClick:s}),x(r,(({label:e},l)=>h(he,{key:l,cellId:l,label:e,sort:null!=n?n:[],onClick:s}))))),h("tbody",null,v(a,(e=>h("tr",{key:e},!1===t?null:h("th",null,e),x(r,(({component:l,getComponentProps:t},r)=>h("td",{key:r},h(l,_(Z(Z({},w(t,e,r)),o),{rowId:e,cellId:r})))))))))),he=({cellId:e,sort:[l,t],label:r=(null!=e?e:""),onClick:o})=>h("th",{onClick:ne((()=>null==o?void 0:o(e)),[o,e],o),className:u(t)||l!=e?void 0:`sorted ${t?"de":"a"}scending`},u(t)||l!=e?null:(t?"↓":"↑")+" ",r),be=({localRowId:t,params:[r,o,a,n,s,i,d]})=>{const c=l.useRemoteRowId(s,t,i);return h("tr",null,!1===r?null:h(e.Fragment,null,h("th",null,t),h("th",null,c)),x(o,(({component:e,getComponentProps:l},r)=>{const[o,s]=r.split(".",2),i=o===a?t:o===n?c:null;return u(i)?null:h("td",{key:r},h(e,_(Z({},w(l,i,s)),{store:d,tableId:o,rowId:i,cellId:s})))})))},pe=({thing:e,onThingChange:l,className:n,hasSchema:u,showType:c=!0})=>{const[m,b]=re(),[p,g]=re(),[f,w]=re(),[v,I]=re(),[y,C]=re();p!==e&&(b((e=>{const l=t(e);return(e=>e==r||e==o)(l)||l==a&&d(e)?l:void 0})(e)),g(e),w(e+""),I(Number(e)||0),C(!!e));const x=le(((e,t)=>{t(e),g(e),l(e)}),[l]),k=le((()=>{if(!(null==u?void 0:u())){const e=G(m,a,o,r),t=G(e,f,v,y);b(e),g(t),l(t)}}),[u,l,f,v,y,m]);return h("div",{className:n},c?h("button",{className:m,onClick:k},m):null,G(m,h("input",{key:m,value:f,onChange:le((e=>x(e[s][i]+"",w)),[x])}),h("input",{key:m,type:"number",value:v,onChange:le((e=>x(Number(e[s][i]||0),I)),[x])}),h("input",{key:m,type:"checkbox",checked:y,onChange:le((e=>x(!!e[s].checked,C)),[x])})))},ge=({tableId:e,rowId:t,cellId:r,store:o,className:a,showType:n})=>{var s;return h(pe,{thing:l.useCell(e,t,r,o),onThingChange:l.useSetCellCallback(e,t,r,(e=>e),[],o),className:null!=a?a:oe+"Cell",showType:n,hasSchema:null==(s=l.useStoreOrStoreById(o))?void 0:s.hasTablesSchema})},fe=({valueId:e,store:t,className:r,showType:o})=>{var a;return h(pe,{thing:l.useValue(e,t),onThingChange:l.useSetValueCallback(e,(e=>e),[],t),className:null!=r?r:oe+n,showType:o,hasSchema:null==(a=l.useStoreOrStoreById(t))?void 0:a.hasValuesSchema})},we=({onChange:l,total:t,offset:r=0,limit:o=t,singular:a="row",plural:n=a+"s"})=>{(r>t||r<0)&&(r=0,l(0));const s=ne((()=>l(r-o)),[l,r,o],r>0),i=ne((()=>l(r+o)),[l,r,o],r+o<t);return h(e.Fragment,null,t>o&&h(e.Fragment,null,h("button",{className:"previous",disabled:0==r,onClick:s},"←"),h("button",{className:"next",disabled:r+o>=t,onClick:i},"→"),r+1," to ",Math.min(t,r+o)," of "),t," ",1!=t?n:a)},ve=e=>new Map(e);ve(),ve(),exports.EditableCellView=ge,exports.EditableValueView=fe,exports.RelationshipInHtmlTable=({relationshipId:t,relationships:r,editable:o,customCells:a,className:n,headerRow:s,idColumn:i=!0})=>{const[d,u,c,m]=((e,l)=>[e,null==e?void 0:e.getStore(),null==e?void 0:e.getLocalTableId(l),null==e?void 0:e.getRemoteTableId(l)])(l.useRelationshipsOrRelationshipsById(r),t),b=ce([...ae(c,u),...ae(m,u)],a,o?ge:l.CellView),p=se(i,b,c,m,t,d,u);return h("table",{className:n},!1===s?null:h("thead",null,h("tr",null,!1===i?null:h(e.Fragment,null,h("th",null,c,".Id"),h("th",null,m,".Id")),x(b,(({label:e},l)=>h("th",{key:l},e))))),h("tbody",null,v(l.useRowIds(c,u),(e=>h(be,{key:e,localRowId:e,params:p})))))},exports.ResultSortedTableInHtmlTable=e=>{var t=e,{queryId:r,cellId:o,descending:a,offset:n,limit:s,queries:i,sortOnClick:d,paginator:u=!1,customCells:c,onChange:m}=t,b=ee(t,["queryId","cellId","descending","offset","limit","queries","sortOnClick","paginator","customCells","onChange"]);const[p,g,f]=ue(o,a,d,n,s,l.useResultRowCount(r,i),u,m);return h(me,_(Z({},b),{params:se(ce(l.useResultTableCellIds(r,i),c,l.ResultCellView),de(i,r),l.useResultSortedRowIds(r,...p,s,i),p,g,f)}))},exports.ResultTableInHtmlTable=e=>{var t=e,{queryId:r,queries:o,customCells:a}=t,n=ee(t,["queryId","queries","customCells"]);return h(me,_(Z({},n),{params:se(ce(l.useResultTableCellIds(r,o),a,l.ResultCellView),de(o,r),l.useResultRowIds(r,o))}))},exports.SliceInHtmlTable=e=>{var t=e,{indexId:r,sliceId:o,indexes:a,editable:n,customCells:s}=t,i=ee(t,["indexId","sliceId","indexes","editable","customCells"]);const[d,u,c]=((e,l)=>[e,null==e?void 0:e.getStore(),null==e?void 0:e.getTableId(l)])(l.useIndexesOrIndexesById(a),r);return h(me,_(Z({},i),{params:se(ce(l.useTableCellIds(c,u),s,n?ge:l.CellView),ie(u,c),l.useSliceRowIds(r,o,d))}))},exports.SortedTableInHtmlTable=e=>{var t=e,{tableId:r,cellId:o,descending:a,offset:n,limit:s,store:i,editable:d,sortOnClick:u,paginator:c=!1,onChange:m,customCells:b}=t,p=ee(t,["tableId","cellId","descending","offset","limit","store","editable","sortOnClick","paginator","onChange","customCells"]);const[g,f,w]=ue(o,a,u,n,s,l.useRowCount(r,i),c,m);return h(me,_(Z({},p),{params:se(ce(l.useTableCellIds(r,i),b,d?ge:l.CellView),ie(i,r),l.useSortedRowIds(r,...g,s,i),g,f,w)}))},exports.SortedTablePaginator=we,exports.StoreInspector=e=>null,exports.TableInHtmlTable=e=>{var t=e,{tableId:r,store:o,editable:a,customCells:n}=t,s=ee(t,["tableId","store","editable","customCells"]);return h(me,_(Z({},s),{params:se(ce(l.useTableCellIds(r,o),n,a?ge:l.CellView),ie(o,r),l.useRowIds(r,o))}))},exports.ValuesInHtmlTable=({store:e,editable:t=!1,valueComponent:r=(t?fe:l.ValueView),getValueComponentProps:o,className:a,headerRow:s,idColumn:i})=>h("table",{className:a},!1===s?null:h("thead",null,h("tr",null,!1===i?null:h("th",null,"Id"),h("th",null,n))),h("tbody",null,v(l.useValueIds(e),(l=>h("tr",{key:l},!1===i?null:h("th",null,l),h("td",null,h(r,_(Z({},w(o,l)),{valueId:l,store:e}))))))));
1
+ "use strict";var e=require("react"),l=require("./ui-react");const t=e=>typeof e,r=t(""),o=t(!0),a=t(0),n="Value",s="currentTarget",i="value",d=isFinite,u=e=>null==e,{PureComponent:c,Fragment:m,createElement:h,useCallback:b,useLayoutEffect:p,useRef:g,useState:f}=e,w=(e,...l)=>u(e)?{}:e(...l),v=(e,l)=>e.map(l),I=Object,y=I.entries,C=(e=[])=>I.fromEntries(e),x=(e,l)=>v(y(e),(([e,t])=>l(t,e))),k="tinybaseStoreInspector",T="M20 80l5-15l40-40l10 10l-40 40l-15 5m5-15l10 10",O='content:url("',R=O+"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' stroke-width='4' stroke='white' fill='none'>",S='</svg>")',N=O+"data:image/svg+xml,%3csvg viewBox='0 0 680 680' xmlns='http://www.w3.org/2000/svg' style='width:680px%3bheight:680px'%3e %3cpath stroke='white' stroke-width='80' fill='none' d='M340 617a84 241 90 11.01 0zM131 475a94 254 70 10428-124 114 286 70 01-428 124zm0-140a94 254 70 10428-124 114 286 70 01-428 124zm-12-127a94 254 70 00306 38 90 260 90 01-306-38zm221 3a74 241 90 11.01 0z' /%3e %3cpath fill='%23d81b60' d='M131 475a94 254 70 10428-124 114 286 70 01-428 124zm0-140a94 254 70 10428-124 114 286 70 01-428 124z' /%3e %3cpath d='M249 619a94 240 90 00308-128 114 289 70 01-308 128zM119 208a94 254 70 00306 38 90 260 90 01-306-38zm221 3a74 241 90 11.01 0z' /%3e%3c/svg%3e\")",V=v([[20,20,20,60],[20,20,60,20],[20,60,60,20],[60,20,20,60],[30,30,40,40]],(([e,l,t,r])=>R+`<rect x='20' y='20' width='60' height='60' fill='grey'/><rect x='${e}' y='${l}' width='${t}' height='${r}' fill='white'/>`+S)),z=R+"<path d='M20 20l60 60M20 80l60-60' />"+S,P=R+`<path d='${T}' />`+S,j=R+`<path d='${T}M20 20l60 60' />`+S;var $=Object.defineProperty,q=Object.defineProperties,M=Object.getOwnPropertyDescriptors,E=Object.getOwnPropertySymbols,H=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable,F=(e,l,t)=>l in e?$(e,l,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[l]=t,A=(e,l)=>{for(var t in l||(l={}))H.call(l,t)&&F(e,t,l[t]);if(E)for(var t of E(l))B.call(l,t)&&F(e,t,l[t]);return e},D=(e,l)=>q(e,M(l));const L="*::-webkit-scrollbar";((e,l="")=>{e.join(l)})(x(D(A(D(A(D(A({"":"all:initial;font-family:sans-serif;font-size:0.75rem;position:fixed;z-index:999999","*":"all:revert","*::before":"all:revert","*::after":"all:revert",[L]:"width:0.5rem;height:0.5rem;",[L+"-track"]:"background:#111",[L+"-thumb"]:"background:#999;border:1px solid #111",[L+"-thumb:hover"]:"background:#fff",[L+"-corner"]:"background:#111",img:"width:1rem;height:1rem;background:#111;border:0;vertical-align:text-bottom",">img":"padding:0.25rem;bottom:0;right:0;position:fixed;"+N},C(v(["bottom:0;left:0","top:0;right:0"],((e,l)=>[`>img[data-position='${l}']`,e])))),{main:"display:flex;flex-direction:column;background:#111d;color:#fff;position:fixed;"}),C(v(["bottom:0;left:0;width:35vw;height:100vh","top:0;right:0;width:100vw;height:30vh","bottom:0;left:0;width:100vw;height:30vh","top:0;right:0;width:35vw;height:100vh","top:0;right:0;width:100vw;height:100vh"],((e,l)=>[`main[data-position='${l}']`,e])))),{header:"display:flex;padding:0.25rem;background:#000;align-items:center","header>img:nth-of-type(1)":N,"header>img:nth-of-type(6)":z}),C(v(V,((e,l)=>[`header>img[data-id='${l}']`,e])))),{"header>span":"flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-left:0.25rem",article:"padding:0.25rem 0.25rem 0.25rem 0.5rem;overflow:auto;flex:1",details:"margin-left:0.75rem;width:fit-content;","details img":"display:none","details[open]>summary img":"display:unset;background:none;margin-left:0.25rem","details[open]>summary img.edit":P,"details[open]>summary img.done":j,summary:"margin-left:-0.75rem;line-height:1.25rem;user-select:none;width:fit-content",table:"border-collapse:collapse;table-layout:fixed;margin-bottom:0.5rem","table input":"background:#111;color:unset;padding:0 0.25rem;border:0;font-size:unset;vertical-align:top;margin:0",'table input[type="number"]':"width:4rem","table tbody button":"font-size:0;background:#fff;border-radius:50%;margin:0 0.125rem 0 0;width:0.85rem;color:#111","table button:first-letter":"font-size:0.75rem",thead:"background:#222","th:nth-of-type(1)":"min-width:2rem;","th.sorted":"background:#000","table caption":"text-align:left;white-space:nowrap;line-height:1.25rem",button:"width:1.5rem;border:none;background:none;color:#fff;padding:0","button[disabled]":"color:#777","button.next":"margin-right:0.5rem",[`th,#${k} td`]:"overflow:hidden;text-overflow:ellipsis;padding:0.25rem 0.5rem;max-width:12rem;white-space:nowrap;border-width:1px 0;border-style:solid;border-color:#777;text-align:left","span.warn":"margin:0.25rem;color:#d81b60"}),((e,l)=>e?`#${k} ${l}{${e}}`:"")));const G=(e,l,t,o)=>e==r?l:e==a?t:o;var J=Object.defineProperty,K=Object.defineProperties,Q=Object.getOwnPropertyDescriptors,U=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable,Y=(e,l,t)=>l in e?J(e,l,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[l]=t,Z=(e,l)=>{for(var t in l||(l={}))W.call(l,t)&&Y(e,t,l[t]);if(U)for(var t of U(l))X.call(l,t)&&Y(e,t,l[t]);return e},_=(e,l)=>K(e,Q(l)),ee=(e,l)=>{var t={};for(var r in e)W.call(e,r)&&l.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&U)for(var r of U(e))l.indexOf(r)<0&&X.call(e,r)&&(t[r]=e[r]);return t};const{useCallback:le,useMemo:te,useState:re}=e,oe="editable",ae=(e,t)=>v(l.useTableCellIds(e,t),(l=>e+"."+l)),ne=(e,l,t)=>{const r=le(e,l);return t?r:void 0},se=(...e)=>te((()=>e),e),ie=(e,l)=>te((()=>({store:e,tableId:l})),[e,l]),de=(e,l)=>te((()=>({queries:e,queryId:l})),[e,l]),ue=(e,l=!1,t,r=0,o,a,n,s)=>{const[[i,d,u],c]=re([e,l,r]),m=le((e=>{c(e),null==s||s(e)}),[s]),b=ne((e=>m([e,e==i&&!d,u])),[m,i,d,u],t),p=le((e=>m([i,d,e])),[m,i,d]),g=!0===n?we:n;return[[i,d,u],b,te((()=>!1===n?null:h(g,{offset:u,limit:o,total:a,onChange:p})),[n,g,u,o,a,p])]},ce=(e,l,o)=>te((()=>{const a=null!=l?l:e;return n=Array.isArray(a)?C(v(a,(e=>[e,e]))):a,s=(e,l)=>Z(Z({},{label:l,component:o}),t(e)==r?{label:e}:e),C(x(n,((e,l)=>[l,s(e,l)])));var n,s}),[l,o,e]),me=({className:e,headerRow:l,idColumn:t,params:[r,o,a,n,s,i]})=>h("table",{className:e},i?h("caption",null,i):null,!1===l?null:h("thead",null,h("tr",null,!1===t?null:h(he,{sort:null!=n?n:[],label:"Id",onClick:s}),x(r,(({label:e},l)=>h(he,{key:l,cellId:l,label:e,sort:null!=n?n:[],onClick:s}))))),h("tbody",null,v(a,(e=>h("tr",{key:e},!1===t?null:h("th",null,e),x(r,(({component:l,getComponentProps:t},r)=>h("td",{key:r},h(l,_(Z(Z({},w(t,e,r)),o),{rowId:e,cellId:r})))))))))),he=({cellId:e,sort:[l,t],label:r=(null!=e?e:""),onClick:o})=>h("th",{onClick:ne((()=>null==o?void 0:o(e)),[o,e],o),className:u(t)||l!=e?void 0:`sorted ${t?"de":"a"}scending`},u(t)||l!=e?null:(t?"↓":"↑")+" ",r),be=({localRowId:t,params:[r,o,a,n,s,i,d]})=>{const c=l.useRemoteRowId(s,t,i);return h("tr",null,!1===r?null:h(e.Fragment,null,h("th",null,t),h("th",null,c)),x(o,(({component:e,getComponentProps:l},r)=>{const[o,s]=r.split(".",2),i=o===a?t:o===n?c:null;return u(i)?null:h("td",{key:r},h(e,_(Z({},w(l,i,s)),{store:d,tableId:o,rowId:i,cellId:s})))})))},pe=({thing:e,onThingChange:l,className:n,hasSchema:u,showType:c=!0})=>{const[m,b]=re(),[p,g]=re(),[f,w]=re(),[v,I]=re(),[y,C]=re();p!==e&&(b((e=>{const l=t(e);return(e=>e==r||e==o)(l)||l==a&&d(e)?l:void 0})(e)),g(e),w(e+""),I(Number(e)||0),C(!!e));const x=le(((e,t)=>{t(e),g(e),l(e)}),[l]),k=le((()=>{if(!(null==u?void 0:u())){const e=G(m,a,o,r),t=G(e,f,v,y);b(e),g(t),l(t)}}),[u,l,f,v,y,m]);return h("div",{className:n},c?h("button",{className:m,onClick:k},m):null,G(m,h("input",{key:m,value:f,onChange:le((e=>x(e[s][i]+"",w)),[x])}),h("input",{key:m,type:"number",value:v,onChange:le((e=>x(Number(e[s][i]||0),I)),[x])}),h("input",{key:m,type:"checkbox",checked:y,onChange:le((e=>x(!!e[s].checked,C)),[x])})))},ge=({tableId:e,rowId:t,cellId:r,store:o,className:a,showType:n})=>{var s;return h(pe,{thing:l.useCell(e,t,r,o),onThingChange:l.useSetCellCallback(e,t,r,(e=>e),[],o),className:null!=a?a:oe+"Cell",showType:n,hasSchema:null==(s=l.useStoreOrStoreById(o))?void 0:s.hasTablesSchema})},fe=({valueId:e,store:t,className:r,showType:o})=>{var a;return h(pe,{thing:l.useValue(e,t),onThingChange:l.useSetValueCallback(e,(e=>e),[],t),className:null!=r?r:oe+n,showType:o,hasSchema:null==(a=l.useStoreOrStoreById(t))?void 0:a.hasValuesSchema})},we=({onChange:l,total:t,offset:r=0,limit:o=t,singular:a="row",plural:n=a+"s"})=>{(r>t||r<0)&&(r=0,l(0));const s=ne((()=>l(r-o)),[l,r,o],r>0),i=ne((()=>l(r+o)),[l,r,o],r+o<t);return h(e.Fragment,null,t>o&&h(e.Fragment,null,h("button",{className:"previous",disabled:0==r,onClick:s},"←"),h("button",{className:"next",disabled:r+o>=t,onClick:i},"→"),r+1," to ",Math.min(t,r+o)," of "),t," ",1!=t?n:a)},ve=e=>new Map(e);ve(),ve(),ve(v("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split(""),((e,l)=>[e,l]))),exports.EditableCellView=ge,exports.EditableValueView=fe,exports.RelationshipInHtmlTable=({relationshipId:t,relationships:r,editable:o,customCells:a,className:n,headerRow:s,idColumn:i=!0})=>{const[d,u,c,m]=((e,l)=>[e,null==e?void 0:e.getStore(),null==e?void 0:e.getLocalTableId(l),null==e?void 0:e.getRemoteTableId(l)])(l.useRelationshipsOrRelationshipsById(r),t),b=ce([...ae(c,u),...ae(m,u)],a,o?ge:l.CellView),p=se(i,b,c,m,t,d,u);return h("table",{className:n},!1===s?null:h("thead",null,h("tr",null,!1===i?null:h(e.Fragment,null,h("th",null,c,".Id"),h("th",null,m,".Id")),x(b,(({label:e},l)=>h("th",{key:l},e))))),h("tbody",null,v(l.useRowIds(c,u),(e=>h(be,{key:e,localRowId:e,params:p})))))},exports.ResultSortedTableInHtmlTable=e=>{var t=e,{queryId:r,cellId:o,descending:a,offset:n,limit:s,queries:i,sortOnClick:d,paginator:u=!1,customCells:c,onChange:m}=t,b=ee(t,["queryId","cellId","descending","offset","limit","queries","sortOnClick","paginator","customCells","onChange"]);const[p,g,f]=ue(o,a,d,n,s,l.useResultRowCount(r,i),u,m);return h(me,_(Z({},b),{params:se(ce(l.useResultTableCellIds(r,i),c,l.ResultCellView),de(i,r),l.useResultSortedRowIds(r,...p,s,i),p,g,f)}))},exports.ResultTableInHtmlTable=e=>{var t=e,{queryId:r,queries:o,customCells:a}=t,n=ee(t,["queryId","queries","customCells"]);return h(me,_(Z({},n),{params:se(ce(l.useResultTableCellIds(r,o),a,l.ResultCellView),de(o,r),l.useResultRowIds(r,o))}))},exports.SliceInHtmlTable=e=>{var t=e,{indexId:r,sliceId:o,indexes:a,editable:n,customCells:s}=t,i=ee(t,["indexId","sliceId","indexes","editable","customCells"]);const[d,u,c]=((e,l)=>[e,null==e?void 0:e.getStore(),null==e?void 0:e.getTableId(l)])(l.useIndexesOrIndexesById(a),r);return h(me,_(Z({},i),{params:se(ce(l.useTableCellIds(c,u),s,n?ge:l.CellView),ie(u,c),l.useSliceRowIds(r,o,d))}))},exports.SortedTableInHtmlTable=e=>{var t=e,{tableId:r,cellId:o,descending:a,offset:n,limit:s,store:i,editable:d,sortOnClick:u,paginator:c=!1,onChange:m,customCells:b}=t,p=ee(t,["tableId","cellId","descending","offset","limit","store","editable","sortOnClick","paginator","onChange","customCells"]);const[g,f,w]=ue(o,a,u,n,s,l.useRowCount(r,i),c,m);return h(me,_(Z({},p),{params:se(ce(l.useTableCellIds(r,i),b,d?ge:l.CellView),ie(i,r),l.useSortedRowIds(r,...g,s,i),g,f,w)}))},exports.SortedTablePaginator=we,exports.StoreInspector=e=>null,exports.TableInHtmlTable=e=>{var t=e,{tableId:r,store:o,editable:a,customCells:n}=t,s=ee(t,["tableId","store","editable","customCells"]);return h(me,_(Z({},s),{params:se(ce(l.useTableCellIds(r,o),n,a?ge:l.CellView),ie(o,r),l.useRowIds(r,o))}))},exports.ValuesInHtmlTable=({store:e,editable:t=!1,valueComponent:r=(t?fe:l.ValueView),getValueComponentProps:o,className:a,headerRow:s,idColumn:i})=>h("table",{className:a},!1===s?null:h("thead",null,h("tr",null,!1===i?null:h("th",null,"Id"),h("th",null,n))),h("tbody",null,v(l.useValueIds(e),(l=>h("tr",{key:l},!1===i?null:h("th",null,l),h("td",null,h(r,_(Z({},w(o,l)),{valueId:l,store:e}))))))));
Binary file
package/lib/common.js CHANGED
@@ -1 +1 @@
1
- const o=(o,t)=>(o??0)<(t??0)?-1:1;export{o as defaultSorter};
1
+ const e="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split("");var t,a;a=(e,t)=>[e,t],t=e.map(a),new Map(t);const n=(e,t)=>(e??0)<(t??0)?-1:1,r=(t=16)=>crypto.getRandomValues(new Uint8Array(t)).reduce(((t,a)=>t+e[63&a]),"");export{n as defaultSorter,r as getUniqueId};
package/lib/common.js.gz CHANGED
Binary file
@@ -1,4 +1,25 @@
1
+ const EMPTY_STRING = '';
2
+
3
+ const arrayMap = (array, cb) => array.map(cb);
4
+ const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
5
+
6
+ const mapNew = (entries) => new Map(entries);
7
+
8
+ const MASK6 = 63;
9
+ const ENCODE =
10
+ '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'.split(
11
+ EMPTY_STRING,
12
+ );
13
+ mapNew(arrayMap(ENCODE, (char, index) => [char, index]));
14
+ const encode = (num) => ENCODE[num & MASK6];
15
+
1
16
  const defaultSorter = (sortKey1, sortKey2) =>
2
17
  (sortKey1 ?? 0) < (sortKey2 ?? 0) ? -1 : 1;
18
+ const getUniqueId = (length = 16) =>
19
+ arrayReduce(
20
+ crypto.getRandomValues(new Uint8Array(length)),
21
+ (uniqueId, number) => uniqueId + encode(number),
22
+ '',
23
+ );
3
24
 
4
- export {defaultSorter};
25
+ export {defaultSorter, getUniqueId};
@@ -255,11 +255,16 @@ const getCreateFunction = (getFunction, initFunction) => {
255
255
  thingsByStore.set(store, getFunction(store));
256
256
  }
257
257
  const thing = thingsByStore.get(store);
258
- initFunction?.(thing);
259
258
  return thing;
260
259
  };
261
260
  };
262
261
 
262
+ const ENCODE =
263
+ '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'.split(
264
+ EMPTY_STRING,
265
+ );
266
+ mapNew(arrayMap(ENCODE, (char, index) => [char, index]));
267
+
263
268
  const defaultSorter = (sortKey1, sortKey2) =>
264
269
  (sortKey1 ?? 0) < (sortKey2 ?? 0) ? -1 : 1;
265
270
 
@@ -24,7 +24,6 @@ const VALUE_IDS = VALUE + IDS;
24
24
  const id = (key) => EMPTY_STRING + key;
25
25
  const strStartsWith = (str, prefix) => str.startsWith(prefix);
26
26
  const strEndsWith = (str, suffix) => str.endsWith(suffix);
27
- const strCharCodeAt = (str, position) => str.charCodeAt(position);
28
27
 
29
28
  const mathMax = Math.max;
30
29
  const isFiniteNumber = isFinite;
@@ -356,8 +355,23 @@ const jsonStringWithMap = (obj) =>
356
355
  );
357
356
  const jsonParse = JSON.parse;
358
357
 
358
+ const MASK6 = 63;
359
+ const ENCODE =
360
+ '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'.split(
361
+ EMPTY_STRING,
362
+ );
363
+ const DECODE = mapNew(arrayMap(ENCODE, (char, index) => [char, index]));
364
+ const encode = (num) => ENCODE[num & MASK6];
365
+ const decode = (str, pos) => mapGet(DECODE, str[pos]) ?? 0;
366
+
359
367
  const defaultSorter = (sortKey1, sortKey2) =>
360
368
  (sortKey1 ?? 0) < (sortKey2 ?? 0) ? -1 : 1;
369
+ const getUniqueId = (length = 16) =>
370
+ arrayReduce(
371
+ crypto.getRandomValues(new Uint8Array(length)),
372
+ (uniqueId, number) => uniqueId + encode(number),
373
+ '',
374
+ );
361
375
 
362
376
  const idsChanged = (changedIds, id2, addedOrRemoved) =>
363
377
  mapSet(
@@ -1682,62 +1696,62 @@ const createStore = () => {
1682
1696
  return objFreeze(store);
1683
1697
  };
1684
1698
 
1685
- const MASK6 = 63;
1686
1699
  const SHIFT36 = 2 ** 36;
1687
1700
  const SHIFT30 = 2 ** 30;
1688
1701
  const SHIFT24 = 2 ** 24;
1689
1702
  const SHIFT18 = 2 ** 18;
1690
1703
  const SHIFT12 = 2 ** 12;
1691
1704
  const SHIFT6 = 2 ** 6;
1692
- const toB64 = (num) => String.fromCharCode(48 + (num & MASK6));
1693
- const fromB64 = (str, pos) => strCharCodeAt(str, pos) - 48;
1694
- const encodeHlc = (logicalTime42, counter24, clientHash30) =>
1695
- toB64(logicalTime42 / SHIFT36) +
1696
- toB64(logicalTime42 / SHIFT30) +
1697
- toB64(logicalTime42 / SHIFT24) +
1698
- toB64(logicalTime42 / SHIFT18) +
1699
- toB64(logicalTime42 / SHIFT12) +
1700
- toB64(logicalTime42 / SHIFT6) +
1701
- toB64(logicalTime42) +
1702
- toB64(counter24 / SHIFT18) +
1703
- toB64(counter24 / SHIFT12) +
1704
- toB64(counter24 / SHIFT6) +
1705
- toB64(counter24) +
1706
- toB64(clientHash30 / SHIFT24) +
1707
- toB64(clientHash30 / SHIFT18) +
1708
- toB64(clientHash30 / SHIFT12) +
1709
- toB64(clientHash30 / SHIFT6) +
1710
- toB64(clientHash30);
1711
- const decodeHlc = (hlc16) => [
1712
- fromB64(hlc16, 0) * SHIFT36 +
1713
- fromB64(hlc16, 1) * SHIFT30 +
1714
- fromB64(hlc16, 2) * SHIFT24 +
1715
- fromB64(hlc16, 3) * SHIFT18 +
1716
- fromB64(hlc16, 4) * SHIFT12 +
1717
- fromB64(hlc16, 5) * SHIFT6 +
1718
- fromB64(hlc16, 6),
1719
- fromB64(hlc16, 7) * SHIFT18 +
1720
- fromB64(hlc16, 8) * SHIFT12 +
1721
- fromB64(hlc16, 9) * SHIFT6 +
1722
- fromB64(hlc16, 10),
1723
- fromB64(hlc16, 11) * SHIFT24 +
1724
- fromB64(hlc16, 12) * SHIFT18 +
1725
- fromB64(hlc16, 13) * SHIFT12 +
1726
- fromB64(hlc16, 14) * SHIFT6 +
1727
- fromB64(hlc16, 15),
1705
+ const encodeTimeAndCounter = (logicalTime42, counter24) =>
1706
+ encode(logicalTime42 / SHIFT36) +
1707
+ encode(logicalTime42 / SHIFT30) +
1708
+ encode(logicalTime42 / SHIFT24) +
1709
+ encode(logicalTime42 / SHIFT18) +
1710
+ encode(logicalTime42 / SHIFT12) +
1711
+ encode(logicalTime42 / SHIFT6) +
1712
+ encode(logicalTime42) +
1713
+ encode(counter24 / SHIFT18) +
1714
+ encode(counter24 / SHIFT12) +
1715
+ encode(counter24 / SHIFT6) +
1716
+ encode(counter24);
1717
+ const decodeTimeAndCounter = (hlc16) => [
1718
+ decode(hlc16, 0) * SHIFT36 +
1719
+ decode(hlc16, 1) * SHIFT30 +
1720
+ decode(hlc16, 2) * SHIFT24 +
1721
+ decode(hlc16, 3) * SHIFT18 +
1722
+ decode(hlc16, 4) * SHIFT12 +
1723
+ decode(hlc16, 5) * SHIFT6 +
1724
+ decode(hlc16, 6),
1725
+ decode(hlc16, 7) * SHIFT18 +
1726
+ decode(hlc16, 8) * SHIFT12 +
1727
+ decode(hlc16, 9) * SHIFT6 +
1728
+ decode(hlc16, 10),
1728
1729
  ];
1729
1730
  const getHlcFunctions = (uniqueId) => {
1730
1731
  let logicalTime = 0;
1731
1732
  let lastCounter = -1;
1732
- const uniqueIdHash = getHash(uniqueId);
1733
+ const clientPart = ifNotUndefined(
1734
+ uniqueId,
1735
+ (uniqueId2) => {
1736
+ const clientHash30 = getHash(uniqueId2);
1737
+ return (
1738
+ encode(clientHash30 / SHIFT24) +
1739
+ encode(clientHash30 / SHIFT18) +
1740
+ encode(clientHash30 / SHIFT12) +
1741
+ encode(clientHash30 / SHIFT6) +
1742
+ encode(clientHash30)
1743
+ );
1744
+ },
1745
+ () => getUniqueId(5),
1746
+ );
1733
1747
  const getHlc = () => {
1734
1748
  seenHlc();
1735
- return encodeHlc(logicalTime, ++lastCounter, uniqueIdHash);
1749
+ return encodeTimeAndCounter(logicalTime, ++lastCounter) + clientPart;
1736
1750
  };
1737
1751
  const seenHlc = (hlc) => {
1738
1752
  const previousLogicalTime = logicalTime;
1739
1753
  const [remoteLogicalTime, remoteCounter] =
1740
- isUndefined(hlc) || hlc == '' ? [0, 0] : decodeHlc(hlc);
1754
+ isUndefined(hlc) || hlc == '' ? [0, 0] : decodeTimeAndCounter(hlc);
1741
1755
  logicalTime = mathMax(
1742
1756
  previousLogicalTime,
1743
1757
  remoteLogicalTime,
@@ -1813,13 +1827,13 @@ const validateMergeableContent = (mergeableContent) =>
1813
1827
  1,
1814
1828
  ),
1815
1829
  );
1816
- const createMergeableStore = (id) => {
1830
+ const createMergeableStore = (uniqueId) => {
1817
1831
  let listeningToRawStoreChanges = 1;
1818
1832
  let contentStampMap = newContentStampMap();
1819
1833
  let defaultingContent = 0;
1820
1834
  const touchedCells = mapNew();
1821
1835
  const touchedValues = setNew();
1822
- const [getHlc, seenHlc] = getHlcFunctions(id);
1836
+ const [getHlc, seenHlc] = getHlcFunctions(uniqueId);
1823
1837
  const store = createStore();
1824
1838
  const disableListeningToRawStoreChanges = (actions) => {
1825
1839
  const wasListening = listeningToRawStoreChanges;
@@ -1977,7 +1991,6 @@ const createMergeableStore = (id) => {
1977
1991
  ]);
1978
1992
  }
1979
1993
  };
1980
- const getId = () => id;
1981
1994
  const getMergeableContent = () => [
1982
1995
  stampMapToObjWithHash(contentStampMap[0], (tableStampMap) =>
1983
1996
  stampMapToObjWithHash(tableStampMap, (rowStampMap) =>
@@ -2177,7 +2190,6 @@ const createMergeableStore = (id) => {
2177
2190
  return applyMergeableChanges(mergeableChanges2);
2178
2191
  };
2179
2192
  const mergeableStore = {
2180
- getId,
2181
2193
  getMergeableContent,
2182
2194
  getMergeableContentHashes,
2183
2195
  getMergeableTableHashes,
@@ -326,7 +326,6 @@ const getCreateFunction = (getFunction, initFunction) => {
326
326
  thingsByStore.set(store, getFunction(store));
327
327
  }
328
328
  const thing = thingsByStore.get(store);
329
- initFunction?.(thing);
330
329
  return thing;
331
330
  };
332
331
  };
@@ -52,8 +52,6 @@ const mapSet = (map, key, value) =>
52
52
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
53
53
  if (!collHas(map, key)) {
54
54
  mapSet(map, key, getDefaultValue());
55
- } else {
56
- hadExistingValue?.(mapGet(map, key));
57
55
  }
58
56
  return mapGet(map, key);
59
57
  };
@@ -61,7 +59,7 @@ const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
61
59
  const scheduleRunning = mapNew();
62
60
  const scheduleActions = mapNew();
63
61
  const getStoreFunctions = (supportedStoreType = 1, store) =>
64
- supportedStoreType > 1 && 'getMergeableContent' in store
62
+ supportedStoreType > 1 && 'merge' in store
65
63
  ? [
66
64
  1,
67
65
  store.getMergeableContent,
@@ -45,8 +45,6 @@ const mapSet = (map, key, value) =>
45
45
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
46
46
  if (!collHas(map, key)) {
47
47
  mapSet(map, key, getDefaultValue());
48
- } else {
49
- hadExistingValue?.(mapGet(map, key));
50
48
  }
51
49
  return mapGet(map, key);
52
50
  };
@@ -54,7 +52,7 @@ const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
54
52
  const scheduleRunning = mapNew();
55
53
  const scheduleActions = mapNew();
56
54
  const getStoreFunctions = (supportedStoreType = 1, store) =>
57
- supportedStoreType > 1 && 'getMergeableContent' in store
55
+ supportedStoreType > 1 && 'merge' in store
58
56
  ? [
59
57
  1,
60
58
  store.getMergeableContent,
@@ -7,7 +7,7 @@ const strRepeat = (str, count) => str.repeat(count);
7
7
 
8
8
  const promise = Promise;
9
9
  const startInterval = (callback, sec, immediate) => {
10
- immediate && callback();
10
+ callback();
11
11
  return setInterval(callback, sec * 1e3);
12
12
  };
13
13
  const stopInterval = clearInterval;
@@ -78,8 +78,6 @@ const mapSet = (map, key, value) =>
78
78
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
79
79
  if (!collHas(map, key)) {
80
80
  mapSet(map, key, getDefaultValue());
81
- } else {
82
- hadExistingValue?.(mapGet(map, key));
83
81
  }
84
82
  return mapGet(map, key);
85
83
  };
@@ -389,7 +387,7 @@ const jsonParse = JSON.parse;
389
387
  const scheduleRunning = mapNew();
390
388
  const scheduleActions = mapNew();
391
389
  const getStoreFunctions = (supportedStoreType = 1, store) =>
392
- supportedStoreType > 1 && 'getMergeableContent' in store
390
+ supportedStoreType > 1 && 'merge' in store
393
391
  ? [
394
392
  1,
395
393
  store.getMergeableContent,
@@ -848,32 +846,28 @@ const createSqlitePersister = (
848
846
  managedTableNamesSet,
849
847
  ] = getConfigStructures(configOrStoreTableName);
850
848
  const addPersisterListener = (listener) => [
851
- startInterval(
852
- async () => {
853
- try {
854
- const newDataVersion = (await cmd(PRAGMA + DATA_VERSION))[0][
855
- DATA_VERSION
856
- ];
857
- const newSchemaVersion = (await cmd(PRAGMA + SCHEMA_VERSION))[0][
858
- SCHEMA_VERSION
859
- ];
860
- const newTotalChanges = (
861
- await cmd(SELECT + ' TOTAL_CHANGES() ' + CHANGES_COLUMN)
862
- )[0][CHANGES_COLUMN];
863
- if (
864
- newDataVersion != (dataVersion ??= newDataVersion) ||
865
- newSchemaVersion != (schemaVersion ??= newSchemaVersion) ||
866
- newTotalChanges != (totalChanges ??= newTotalChanges)
867
- ) {
868
- listener();
869
- dataVersion = newDataVersion;
870
- schemaVersion = newSchemaVersion;
871
- }
872
- } catch {}
873
- },
874
- autoLoadIntervalSeconds,
875
- 1,
876
- ),
849
+ startInterval(async () => {
850
+ try {
851
+ const newDataVersion = (await cmd(PRAGMA + DATA_VERSION))[0][
852
+ DATA_VERSION
853
+ ];
854
+ const newSchemaVersion = (await cmd(PRAGMA + SCHEMA_VERSION))[0][
855
+ SCHEMA_VERSION
856
+ ];
857
+ const newTotalChanges = (
858
+ await cmd(SELECT + ' TOTAL_CHANGES() ' + CHANGES_COLUMN)
859
+ )[0][CHANGES_COLUMN];
860
+ if (
861
+ newDataVersion != (dataVersion ??= newDataVersion) ||
862
+ newSchemaVersion != (schemaVersion ??= newSchemaVersion) ||
863
+ newTotalChanges != (totalChanges ??= newTotalChanges)
864
+ ) {
865
+ listener();
866
+ dataVersion = newDataVersion;
867
+ schemaVersion = newSchemaVersion;
868
+ }
869
+ } catch {}
870
+ }, autoLoadIntervalSeconds),
877
871
  addUpdateListener((tableName) =>
878
872
  managedTableNamesSet.has(tableName) ? listener() : 0,
879
873
  ),
@@ -7,7 +7,7 @@ const strRepeat = (str, count) => str.repeat(count);
7
7
 
8
8
  const promise = Promise;
9
9
  const startInterval = (callback, sec, immediate) => {
10
- immediate && callback();
10
+ callback();
11
11
  return setInterval(callback, sec * 1e3);
12
12
  };
13
13
  const stopInterval = clearInterval;
@@ -79,8 +79,6 @@ const mapSet = (map, key, value) =>
79
79
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
80
80
  if (!collHas(map, key)) {
81
81
  mapSet(map, key, getDefaultValue());
82
- } else {
83
- hadExistingValue?.(mapGet(map, key));
84
82
  }
85
83
  return mapGet(map, key);
86
84
  };
@@ -390,7 +388,7 @@ const jsonParse = JSON.parse;
390
388
  const scheduleRunning = mapNew();
391
389
  const scheduleActions = mapNew();
392
390
  const getStoreFunctions = (supportedStoreType = 1, store) =>
393
- supportedStoreType > 1 && 'getMergeableContent' in store
391
+ supportedStoreType > 1 && 'merge' in store
394
392
  ? [
395
393
  1,
396
394
  store.getMergeableContent,
@@ -849,32 +847,28 @@ const createSqlitePersister = (
849
847
  managedTableNamesSet,
850
848
  ] = getConfigStructures(configOrStoreTableName);
851
849
  const addPersisterListener = (listener) => [
852
- startInterval(
853
- async () => {
854
- try {
855
- const newDataVersion = (await cmd(PRAGMA + DATA_VERSION))[0][
856
- DATA_VERSION
857
- ];
858
- const newSchemaVersion = (await cmd(PRAGMA + SCHEMA_VERSION))[0][
859
- SCHEMA_VERSION
860
- ];
861
- const newTotalChanges = (
862
- await cmd(SELECT + ' TOTAL_CHANGES() ' + CHANGES_COLUMN)
863
- )[0][CHANGES_COLUMN];
864
- if (
865
- newDataVersion != (dataVersion ??= newDataVersion) ||
866
- newSchemaVersion != (schemaVersion ??= newSchemaVersion) ||
867
- newTotalChanges != (totalChanges ??= newTotalChanges)
868
- ) {
869
- listener();
870
- dataVersion = newDataVersion;
871
- schemaVersion = newSchemaVersion;
872
- }
873
- } catch {}
874
- },
875
- autoLoadIntervalSeconds,
876
- 1,
877
- ),
850
+ startInterval(async () => {
851
+ try {
852
+ const newDataVersion = (await cmd(PRAGMA + DATA_VERSION))[0][
853
+ DATA_VERSION
854
+ ];
855
+ const newSchemaVersion = (await cmd(PRAGMA + SCHEMA_VERSION))[0][
856
+ SCHEMA_VERSION
857
+ ];
858
+ const newTotalChanges = (
859
+ await cmd(SELECT + ' TOTAL_CHANGES() ' + CHANGES_COLUMN)
860
+ )[0][CHANGES_COLUMN];
861
+ if (
862
+ newDataVersion != (dataVersion ??= newDataVersion) ||
863
+ newSchemaVersion != (schemaVersion ??= newSchemaVersion) ||
864
+ newTotalChanges != (totalChanges ??= newTotalChanges)
865
+ ) {
866
+ listener();
867
+ dataVersion = newDataVersion;
868
+ schemaVersion = newSchemaVersion;
869
+ }
870
+ } catch {}
871
+ }, autoLoadIntervalSeconds),
878
872
  addUpdateListener((tableName) =>
879
873
  managedTableNamesSet.has(tableName) ? listener() : 0,
880
874
  ),
@@ -9,7 +9,7 @@ const strRepeat = (str, count) => str.repeat(count);
9
9
 
10
10
  const promise = Promise;
11
11
  const startInterval = (callback, sec, immediate) => {
12
- immediate && callback();
12
+ callback();
13
13
  return setInterval(callback, sec * 1e3);
14
14
  };
15
15
  const stopInterval = clearInterval;
@@ -80,8 +80,6 @@ const mapSet = (map, key, value) =>
80
80
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
81
81
  if (!collHas(map, key)) {
82
82
  mapSet(map, key, getDefaultValue());
83
- } else {
84
- hadExistingValue?.(mapGet(map, key));
85
83
  }
86
84
  return mapGet(map, key);
87
85
  };
@@ -391,7 +389,7 @@ const jsonParse = JSON.parse;
391
389
  const scheduleRunning = mapNew();
392
390
  const scheduleActions = mapNew();
393
391
  const getStoreFunctions = (supportedStoreType = 1, store) =>
394
- supportedStoreType > 1 && 'getMergeableContent' in store
392
+ supportedStoreType > 1 && 'merge' in store
395
393
  ? [
396
394
  1,
397
395
  store.getMergeableContent,
@@ -850,32 +848,28 @@ const createSqlitePersister = (
850
848
  managedTableNamesSet,
851
849
  ] = getConfigStructures(configOrStoreTableName);
852
850
  const addPersisterListener = (listener) => [
853
- startInterval(
854
- async () => {
855
- try {
856
- const newDataVersion = (await cmd(PRAGMA + DATA_VERSION))[0][
857
- DATA_VERSION
858
- ];
859
- const newSchemaVersion = (await cmd(PRAGMA + SCHEMA_VERSION))[0][
860
- SCHEMA_VERSION
861
- ];
862
- const newTotalChanges = (
863
- await cmd(SELECT + ' TOTAL_CHANGES() ' + CHANGES_COLUMN)
864
- )[0][CHANGES_COLUMN];
865
- if (
866
- newDataVersion != (dataVersion ??= newDataVersion) ||
867
- newSchemaVersion != (schemaVersion ??= newSchemaVersion) ||
868
- newTotalChanges != (totalChanges ??= newTotalChanges)
869
- ) {
870
- listener();
871
- dataVersion = newDataVersion;
872
- schemaVersion = newSchemaVersion;
873
- }
874
- } catch {}
875
- },
876
- autoLoadIntervalSeconds,
877
- 1,
878
- ),
851
+ startInterval(async () => {
852
+ try {
853
+ const newDataVersion = (await cmd(PRAGMA + DATA_VERSION))[0][
854
+ DATA_VERSION
855
+ ];
856
+ const newSchemaVersion = (await cmd(PRAGMA + SCHEMA_VERSION))[0][
857
+ SCHEMA_VERSION
858
+ ];
859
+ const newTotalChanges = (
860
+ await cmd(SELECT + ' TOTAL_CHANGES() ' + CHANGES_COLUMN)
861
+ )[0][CHANGES_COLUMN];
862
+ if (
863
+ newDataVersion != (dataVersion ??= newDataVersion) ||
864
+ newSchemaVersion != (schemaVersion ??= newSchemaVersion) ||
865
+ newTotalChanges != (totalChanges ??= newTotalChanges)
866
+ ) {
867
+ listener();
868
+ dataVersion = newDataVersion;
869
+ schemaVersion = newSchemaVersion;
870
+ }
871
+ } catch {}
872
+ }, autoLoadIntervalSeconds),
879
873
  addUpdateListener((tableName) =>
880
874
  managedTableNamesSet.has(tableName) ? listener() : 0,
881
875
  ),