tinybase 5.0.0-beta.0 → 5.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/bin/cli.js +1 -1
  2. package/lib/checkpoints.js +1 -1
  3. package/lib/checkpoints.js.gz +0 -0
  4. package/lib/cjs/checkpoints.cjs +1 -1
  5. package/lib/cjs/checkpoints.cjs.gz +0 -0
  6. package/lib/cjs/indexes.cjs +1 -1
  7. package/lib/cjs/indexes.cjs.gz +0 -0
  8. package/lib/cjs/mergeable-store.cjs +1 -0
  9. package/lib/cjs/mergeable-store.cjs.gz +0 -0
  10. package/lib/cjs/metrics.cjs +1 -1
  11. package/lib/cjs/metrics.cjs.gz +0 -0
  12. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  13. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  14. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  15. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  16. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  17. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  18. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  19. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  20. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  21. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  22. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  23. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  24. package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
  25. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  26. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  27. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  28. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  29. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  30. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  31. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  32. package/lib/cjs/queries.cjs +1 -1
  33. package/lib/cjs/queries.cjs.gz +0 -0
  34. package/lib/cjs/relationships.cjs +1 -1
  35. package/lib/cjs/relationships.cjs.gz +0 -0
  36. package/lib/cjs/store.cjs +1 -1
  37. package/lib/cjs/store.cjs.gz +0 -0
  38. package/lib/cjs/tinybase.cjs +1 -1
  39. package/lib/cjs/tinybase.cjs.gz +0 -0
  40. package/lib/cjs/tools.cjs +1 -1
  41. package/lib/cjs/tools.cjs.gz +0 -0
  42. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  43. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  44. package/lib/cjs/ui-react-dom.cjs +1 -1
  45. package/lib/cjs/ui-react-dom.cjs.gz +0 -0
  46. package/lib/cjs/ui-react.cjs +1 -1
  47. package/lib/cjs/ui-react.cjs.gz +0 -0
  48. package/lib/cjs-es6/checkpoints.cjs +1 -1
  49. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  50. package/lib/cjs-es6/indexes.cjs +1 -1
  51. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  52. package/lib/cjs-es6/mergeable-store.cjs +1 -0
  53. package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
  54. package/lib/cjs-es6/metrics.cjs +1 -1
  55. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  56. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  57. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  58. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  59. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  60. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  61. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  62. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  63. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  64. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  65. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  66. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  67. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  68. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
  69. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  70. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  71. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  72. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  73. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  74. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  75. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  76. package/lib/cjs-es6/queries.cjs +1 -1
  77. package/lib/cjs-es6/queries.cjs.gz +0 -0
  78. package/lib/cjs-es6/relationships.cjs +1 -1
  79. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  80. package/lib/cjs-es6/store.cjs +1 -1
  81. package/lib/cjs-es6/store.cjs.gz +0 -0
  82. package/lib/cjs-es6/tinybase.cjs +1 -1
  83. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  84. package/lib/cjs-es6/tools.cjs +1 -1
  85. package/lib/cjs-es6/tools.cjs.gz +0 -0
  86. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  87. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  88. package/lib/cjs-es6/ui-react-dom.cjs +1 -1
  89. package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
  90. package/lib/cjs-es6/ui-react.cjs +1 -1
  91. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  92. package/lib/debug/checkpoints.js +251 -234
  93. package/lib/debug/indexes.js +7 -5
  94. package/lib/debug/mergeable-store.js +1892 -0
  95. package/lib/debug/metrics.js +7 -5
  96. package/lib/debug/persisters/persister-automerge.js +15 -11
  97. package/lib/debug/persisters/persister-browser.js +1 -0
  98. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +16 -12
  99. package/lib/debug/persisters/persister-electric-sql.js +17 -12
  100. package/lib/debug/persisters/persister-expo-sqlite-next.js +17 -13
  101. package/lib/debug/persisters/persister-expo-sqlite.js +16 -12
  102. package/lib/debug/persisters/persister-file.js +1 -0
  103. package/lib/debug/persisters/persister-indexed-db.js +10 -4
  104. package/lib/debug/persisters/persister-partykit-client.js +1 -0
  105. package/lib/debug/persisters/persister-partykit-server.js +7 -6
  106. package/lib/debug/persisters/persister-remote.js +1 -0
  107. package/lib/debug/persisters/persister-sqlite-wasm.js +16 -12
  108. package/lib/debug/persisters/persister-sqlite3.js +16 -12
  109. package/lib/debug/persisters/persister-yjs.js +9 -7
  110. package/lib/debug/persisters.js +1 -0
  111. package/lib/debug/queries.js +11 -8
  112. package/lib/debug/relationships.js +7 -5
  113. package/lib/debug/store.js +23 -11
  114. package/lib/debug/tinybase.js +554 -246
  115. package/lib/debug/tools.js +23 -47
  116. package/lib/debug/ui-react-dom.js +51 -40
  117. package/lib/debug/ui-react.js +166 -200
  118. package/lib/es6/checkpoints.js +1 -1
  119. package/lib/es6/checkpoints.js.gz +0 -0
  120. package/lib/es6/indexes.js +1 -1
  121. package/lib/es6/indexes.js.gz +0 -0
  122. package/lib/es6/mergeable-store.js +1 -0
  123. package/lib/es6/mergeable-store.js.gz +0 -0
  124. package/lib/es6/metrics.js +1 -1
  125. package/lib/es6/metrics.js.gz +0 -0
  126. package/lib/es6/persisters/persister-automerge.js +1 -1
  127. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  128. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  129. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  130. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  131. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  132. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  133. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  134. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  135. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  136. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  137. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  138. package/lib/es6/persisters/persister-partykit-server.js +1 -1
  139. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  140. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  141. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  142. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  143. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  144. package/lib/es6/persisters/persister-yjs.js +1 -1
  145. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  146. package/lib/es6/queries.js +1 -1
  147. package/lib/es6/queries.js.gz +0 -0
  148. package/lib/es6/relationships.js +1 -1
  149. package/lib/es6/relationships.js.gz +0 -0
  150. package/lib/es6/store.js +1 -1
  151. package/lib/es6/store.js.gz +0 -0
  152. package/lib/es6/tinybase.js +1 -1
  153. package/lib/es6/tinybase.js.gz +0 -0
  154. package/lib/es6/tools.js +1 -1
  155. package/lib/es6/tools.js.gz +0 -0
  156. package/lib/es6/ui-react-dom-debug.js +1 -1
  157. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  158. package/lib/es6/ui-react-dom.js +1 -1
  159. package/lib/es6/ui-react-dom.js.gz +0 -0
  160. package/lib/es6/ui-react.js +1 -1
  161. package/lib/es6/ui-react.js.gz +0 -0
  162. package/lib/indexes.js +1 -1
  163. package/lib/indexes.js.gz +0 -0
  164. package/lib/mergeable-store.js +1 -0
  165. package/lib/mergeable-store.js.gz +0 -0
  166. package/lib/metrics.js +1 -1
  167. package/lib/metrics.js.gz +0 -0
  168. package/lib/persisters/persister-automerge.js +1 -1
  169. package/lib/persisters/persister-automerge.js.gz +0 -0
  170. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  171. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  172. package/lib/persisters/persister-electric-sql.js +1 -1
  173. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  174. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  175. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  176. package/lib/persisters/persister-expo-sqlite.js +1 -1
  177. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  178. package/lib/persisters/persister-indexed-db.js +1 -1
  179. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  180. package/lib/persisters/persister-partykit-server.js +1 -1
  181. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  182. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  183. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  184. package/lib/persisters/persister-sqlite3.js +1 -1
  185. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  186. package/lib/persisters/persister-yjs.js +1 -1
  187. package/lib/persisters/persister-yjs.js.gz +0 -0
  188. package/lib/queries.js +1 -1
  189. package/lib/queries.js.gz +0 -0
  190. package/lib/relationships.js +1 -1
  191. package/lib/relationships.js.gz +0 -0
  192. package/lib/store.js +1 -1
  193. package/lib/store.js.gz +0 -0
  194. package/lib/tinybase.js +1 -1
  195. package/lib/tinybase.js.gz +0 -0
  196. package/lib/tools.js +1 -1
  197. package/lib/tools.js.gz +0 -0
  198. package/lib/types/mergeable-store.d.ts +55 -0
  199. package/lib/types/persisters/persister-automerge.d.ts +8 -7
  200. package/lib/types/persisters/persister-browser.d.ts +2 -0
  201. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +1 -0
  202. package/lib/types/persisters/persister-electric-sql.d.ts +1 -0
  203. package/lib/types/persisters/persister-expo-sqlite-next.d.ts +4 -3
  204. package/lib/types/persisters/persister-expo-sqlite.d.ts +1 -0
  205. package/lib/types/persisters/persister-file.d.ts +1 -0
  206. package/lib/types/persisters/persister-indexed-db.d.ts +1 -0
  207. package/lib/types/persisters/persister-partykit-client.d.ts +1 -0
  208. package/lib/types/persisters/persister-partykit-server.d.ts +5 -0
  209. package/lib/types/persisters/persister-remote.d.ts +1 -0
  210. package/lib/types/persisters/persister-sqlite-wasm.d.ts +1 -0
  211. package/lib/types/persisters/persister-sqlite3.d.ts +1 -0
  212. package/lib/types/persisters/persister-yjs.d.ts +1 -0
  213. package/lib/types/persisters.d.ts +3 -3
  214. package/lib/types/store.d.ts +90 -77
  215. package/lib/types/tinybase.d.ts +1 -0
  216. package/lib/types/ui-react.d.ts +78 -88
  217. package/lib/types/with-schemas/internal/queries.d.ts +4 -3
  218. package/lib/types/with-schemas/internal/store.d.ts +8 -3
  219. package/lib/types/with-schemas/mergeable-store.d.ts +85 -0
  220. package/lib/types/with-schemas/persisters/persister-automerge.d.ts +8 -7
  221. package/lib/types/with-schemas/persisters/persister-browser.d.ts +2 -0
  222. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +1 -0
  223. package/lib/types/with-schemas/persisters/persister-electric-sql.d.ts +1 -0
  224. package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +5 -4
  225. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +1 -0
  226. package/lib/types/with-schemas/persisters/persister-file.d.ts +1 -0
  227. package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +1 -0
  228. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +1 -0
  229. package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +5 -0
  230. package/lib/types/with-schemas/persisters/persister-remote.d.ts +1 -0
  231. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +1 -0
  232. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +1 -0
  233. package/lib/types/with-schemas/persisters/persister-yjs.d.ts +1 -0
  234. package/lib/types/with-schemas/persisters.d.ts +3 -3
  235. package/lib/types/with-schemas/store.d.ts +203 -141
  236. package/lib/types/with-schemas/tinybase.d.ts +1 -0
  237. package/lib/types/with-schemas/ui-react.d.ts +84 -95
  238. package/lib/ui-react-dom.js +1 -1
  239. package/lib/ui-react-dom.js.gz +0 -0
  240. package/lib/ui-react.js +1 -1
  241. package/lib/ui-react.js.gz +0 -0
  242. package/lib/umd/checkpoints.js +1 -1
  243. package/lib/umd/checkpoints.js.gz +0 -0
  244. package/lib/umd/indexes.js +1 -1
  245. package/lib/umd/indexes.js.gz +0 -0
  246. package/lib/umd/mergeable-store.js +1 -0
  247. package/lib/umd/mergeable-store.js.gz +0 -0
  248. package/lib/umd/metrics.js +1 -1
  249. package/lib/umd/metrics.js.gz +0 -0
  250. package/lib/umd/persisters/persister-automerge.js +1 -1
  251. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  252. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  253. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  254. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  255. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  256. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  257. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  258. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  259. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  260. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  261. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  262. package/lib/umd/persisters/persister-partykit-server.js +1 -1
  263. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  264. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  265. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  266. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  267. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  268. package/lib/umd/persisters/persister-yjs.js +1 -1
  269. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  270. package/lib/umd/queries.js +1 -1
  271. package/lib/umd/queries.js.gz +0 -0
  272. package/lib/umd/relationships.js +1 -1
  273. package/lib/umd/relationships.js.gz +0 -0
  274. package/lib/umd/store.js +1 -1
  275. package/lib/umd/store.js.gz +0 -0
  276. package/lib/umd/tinybase.js +1 -1
  277. package/lib/umd/tinybase.js.gz +0 -0
  278. package/lib/umd/tools.js +1 -1
  279. package/lib/umd/tools.js.gz +0 -0
  280. package/lib/umd/ui-react-dom-debug.js +1 -1
  281. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  282. package/lib/umd/ui-react-dom.js +1 -1
  283. package/lib/umd/ui-react-dom.js.gz +0 -0
  284. package/lib/umd/ui-react.js +1 -1
  285. package/lib/umd/ui-react.js.gz +0 -0
  286. package/lib/umd-es6/checkpoints.js +1 -1
  287. package/lib/umd-es6/checkpoints.js.gz +0 -0
  288. package/lib/umd-es6/indexes.js +1 -1
  289. package/lib/umd-es6/indexes.js.gz +0 -0
  290. package/lib/umd-es6/mergeable-store.js +1 -0
  291. package/lib/umd-es6/mergeable-store.js.gz +0 -0
  292. package/lib/umd-es6/metrics.js +1 -1
  293. package/lib/umd-es6/metrics.js.gz +0 -0
  294. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  295. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  296. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  297. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  298. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  299. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  300. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  301. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  302. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  303. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  304. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  305. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  306. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
  307. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  308. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  309. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  310. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  311. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  312. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  313. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  314. package/lib/umd-es6/queries.js +1 -1
  315. package/lib/umd-es6/queries.js.gz +0 -0
  316. package/lib/umd-es6/relationships.js +1 -1
  317. package/lib/umd-es6/relationships.js.gz +0 -0
  318. package/lib/umd-es6/store.js +1 -1
  319. package/lib/umd-es6/store.js.gz +0 -0
  320. package/lib/umd-es6/tinybase.js +1 -1
  321. package/lib/umd-es6/tinybase.js.gz +0 -0
  322. package/lib/umd-es6/tools.js +1 -1
  323. package/lib/umd-es6/tools.js.gz +0 -0
  324. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  325. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  326. package/lib/umd-es6/ui-react-dom.js +1 -1
  327. package/lib/umd-es6/ui-react-dom.js.gz +0 -0
  328. package/lib/umd-es6/ui-react.js +1 -1
  329. package/lib/umd-es6/ui-react.js.gz +0 -0
  330. package/package.json +37 -37
  331. package/readme.md +2 -2
@@ -33,16 +33,46 @@ const isArray = (thing) => Array.isArray(thing);
33
33
  const size = (arrayOrString) => arrayOrString.length;
34
34
  const getUndefined = () => void 0;
35
35
 
36
+ const arrayEvery = (array, cb) => array.every(cb);
37
+ const arrayIsEqual = (array1, array2) =>
38
+ size(array1) === size(array2) &&
39
+ arrayEvery(array1, (value1, index) => array2[index] === value1);
36
40
  const arrayMap = (array, cb) => array.map(cb);
37
41
  const arrayIsEmpty = (array) => size(array) == 0;
38
42
 
39
43
  const object = Object;
44
+ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
45
+ const objEntries = object.entries;
40
46
  const objIds = object.keys;
47
+ const isObject = (obj) =>
48
+ !isUndefined(obj) &&
49
+ ifNotUndefined(
50
+ getPrototypeOf(obj),
51
+ (objPrototype) =>
52
+ objPrototype == object.prototype ||
53
+ isUndefined(getPrototypeOf(objPrototype)),
54
+ /* istanbul ignore next */
55
+ () => true,
56
+ );
41
57
  const objGet = (obj, id) => ifNotUndefined(obj, (obj2) => obj2[id]);
42
58
  const objDel = (obj, id) => {
43
59
  delete obj[id];
44
60
  return obj;
45
61
  };
62
+ const objSize = (obj) => size(objIds(obj));
63
+ const objIsEqual = (obj1, obj2) => {
64
+ const entries1 = objEntries(obj1);
65
+ return (
66
+ size(entries1) === objSize(obj2) &&
67
+ arrayEvery(entries1, ([index, value1]) =>
68
+ isObject(value1)
69
+ ? isObject(obj2[index])
70
+ ? objIsEqual(obj2[index], value1)
71
+ : false
72
+ : obj2[index] === value1,
73
+ )
74
+ );
75
+ };
46
76
 
47
77
  const {createContext, useContext: useContext$1, useEffect: useEffect$1} = React;
48
78
  const Context = createContext([]);
@@ -99,49 +129,67 @@ const {
99
129
  useLayoutEffect: useLayoutEffect$1,
100
130
  useRef: useRef$1,
101
131
  useState: useState$2,
132
+ useSyncExternalStore,
102
133
  } = React;
103
134
  const EMPTY_ARRAY = [];
104
- const EMPTY_OBJECT = {};
105
- const DEFAULT_CHECKPOINT_IDS = [[], void 0, []];
135
+ const DEFAULTS = [{}, [], [EMPTY_ARRAY, void 0, EMPTY_ARRAY], void 0, false, 0];
136
+ const IS_EQUAL = (thing1, thing2) => thing1 === thing2;
137
+ const IS_EQUALS = [
138
+ objIsEqual,
139
+ arrayIsEqual,
140
+ (
141
+ [backwardIds1, currentId1, forwardIds1],
142
+ [backwardIds2, currentId2, forwardIds2],
143
+ ) =>
144
+ currentId1 === currentId2 &&
145
+ arrayIsEqual(backwardIds1, backwardIds2) &&
146
+ arrayIsEqual(forwardIds1, forwardIds2),
147
+ ];
106
148
  const useCreate = (store, create, createDeps = EMPTY_ARRAY) => {
107
- const thing = useMemo$1(
108
- () => create(store),
149
+ const [, rerender] = useState$2();
150
+ const [thing, setThing] = useState$2();
151
+ useEffect(
152
+ () => {
153
+ const newThing = create(store);
154
+ setThing(newThing);
155
+ rerender([]);
156
+ return newThing.destroy;
157
+ },
109
158
  // eslint-disable-next-line react-hooks/exhaustive-deps
110
159
  [store, ...createDeps],
111
160
  );
112
- useEffect(() => () => thing.destroy(), [thing]);
113
161
  return thing;
114
162
  };
115
- const useListenable = (
116
- listenable,
117
- thing,
118
- defaulted,
119
- args = EMPTY_ARRAY,
120
- getFromListenerArg,
121
- getterPrefix = GET,
122
- listenerPrefix = EMPTY_STRING,
123
- ) => {
124
- const [, rerender] = useState$2();
163
+ const addAndDelListener = (thing, listenable, ...args) => {
164
+ const listenerId = thing?.[ADD + listenable + LISTENER]?.(...args);
165
+ return () => thing?.delListener(listenerId);
166
+ };
167
+ const useListenable = (listenable, thing, type, args = EMPTY_ARRAY) => {
168
+ const lastResult = useRef$1(DEFAULTS[type]);
125
169
  const getResult = useCallback$2(
126
- () => thing?.[getterPrefix + listenable]?.(...args) ?? defaulted,
127
- /* eslint-disable-next-line react-hooks/exhaustive-deps */
128
- [thing, listenable, ...args, defaulted],
129
- );
130
- const result = useRef$1();
131
- useMemo$1(() => (result.current = getResult()), [getResult]);
132
- useListener(
133
- listenerPrefix + listenable,
134
- thing,
135
- (...listenerArgs) => {
136
- result.current = isUndefined(getFromListenerArg)
137
- ? getResult()
138
- : listenerArgs[getFromListenerArg];
139
- rerender([]);
170
+ () => {
171
+ const nextResult =
172
+ thing?.[(type == 4 ? _HAS : GET) + listenable]?.(...args) ??
173
+ DEFAULTS[type];
174
+ return !(IS_EQUALS[type] ?? IS_EQUAL)(nextResult, lastResult.current)
175
+ ? (lastResult.current = nextResult)
176
+ : lastResult.current;
140
177
  },
141
- [getResult, getFromListenerArg],
142
- args,
178
+ /* eslint-disable-next-line react-hooks/exhaustive-deps */
179
+ [thing, type, listenable, ...args],
180
+ );
181
+ const subscribe = useCallback$2(
182
+ (listener) =>
183
+ addAndDelListener(
184
+ thing,
185
+ (type == 4 ? HAS : EMPTY_STRING) + listenable,
186
+ ...args,
187
+ listener,
188
+ ),
189
+ /* eslint-disable-next-line react-hooks/exhaustive-deps */
190
+ [thing, type, listenable, ...args],
143
191
  );
144
- return result.current;
192
+ return useSyncExternalStore(subscribe, getResult);
145
193
  };
146
194
  const useListener = (
147
195
  listenable,
@@ -151,14 +199,12 @@ const useListener = (
151
199
  preArgs = EMPTY_ARRAY,
152
200
  ...postArgs
153
201
  ) =>
154
- useLayoutEffect$1(() => {
155
- const listenerId = thing?.[ADD + listenable + LISTENER]?.(
156
- ...preArgs,
157
- listener,
158
- ...postArgs,
159
- );
160
- return () => thing?.delListener(listenerId);
161
- }, [thing, listenable, ...preArgs, ...listenerDeps, ...postArgs]);
202
+ useLayoutEffect$1(
203
+ () =>
204
+ addAndDelListener(thing, listenable, ...preArgs, listener, ...postArgs),
205
+ // eslint-disable-next-line react-hooks/exhaustive-deps
206
+ [thing, listenable, ...preArgs, ...listenerDeps, ...postArgs],
207
+ );
162
208
  const useSetCallback = (
163
209
  storeOrStoreId,
164
210
  settable,
@@ -216,56 +262,28 @@ const useCreateStore = (create, createDeps = EMPTY_ARRAY) =>
216
262
  useMemo$1(create, createDeps);
217
263
  const useStoreIds = () => useThingIds(1);
218
264
  const useHasTables = (storeOrStoreId) =>
219
- useListenable(
220
- TABLES,
221
- useStoreOrStoreById(storeOrStoreId),
222
- false,
223
- [],
224
- 1,
225
- _HAS,
226
- HAS,
227
- );
265
+ useListenable(TABLES, useStoreOrStoreById(storeOrStoreId), 4, []);
228
266
  const useTables = (storeOrStoreId) =>
229
- useListenable(TABLES, useStoreOrStoreById(storeOrStoreId), EMPTY_OBJECT);
267
+ useListenable(TABLES, useStoreOrStoreById(storeOrStoreId), 0);
230
268
  const useTableIds = (storeOrStoreId) =>
231
- useListenable(TABLE_IDS, useStoreOrStoreById(storeOrStoreId), EMPTY_ARRAY);
269
+ useListenable(TABLE_IDS, useStoreOrStoreById(storeOrStoreId), 1);
232
270
  const useHasTable = (tableId, storeOrStoreId) =>
233
- useListenable(
234
- TABLE,
235
- useStoreOrStoreById(storeOrStoreId),
236
- false,
237
- [tableId],
238
- 2,
239
- _HAS,
240
- HAS,
241
- );
271
+ useListenable(TABLE, useStoreOrStoreById(storeOrStoreId), 4, [tableId]);
242
272
  const useTable = (tableId, storeOrStoreId) =>
243
- useListenable(TABLE, useStoreOrStoreById(storeOrStoreId), EMPTY_OBJECT, [
273
+ useListenable(TABLE, useStoreOrStoreById(storeOrStoreId), 0, [tableId]);
274
+ const useTableCellIds = (tableId, storeOrStoreId) =>
275
+ useListenable(TABLE + CELL_IDS, useStoreOrStoreById(storeOrStoreId), 1, [
244
276
  tableId,
245
277
  ]);
246
- const useTableCellIds = (tableId, storeOrStoreId) =>
247
- useListenable(
248
- TABLE + CELL_IDS,
249
- useStoreOrStoreById(storeOrStoreId),
250
- EMPTY_ARRAY,
251
- [tableId],
252
- );
253
278
  const useHasTableCell = (tableId, cellId, storeOrStoreId) =>
254
- useListenable(
255
- TABLE + CELL,
256
- useStoreOrStoreById(storeOrStoreId),
257
- false,
258
- [tableId, cellId],
259
- 3,
260
- _HAS,
261
- HAS,
262
- );
263
- const useRowCount = (tableId, storeOrStoreId) =>
264
- useListenable(ROW_COUNT, useStoreOrStoreById(storeOrStoreId), 0, [tableId]);
265
- const useRowIds = (tableId, storeOrStoreId) =>
266
- useListenable(ROW_IDS, useStoreOrStoreById(storeOrStoreId), EMPTY_ARRAY, [
279
+ useListenable(TABLE + CELL, useStoreOrStoreById(storeOrStoreId), 4, [
267
280
  tableId,
281
+ cellId,
268
282
  ]);
283
+ const useRowCount = (tableId, storeOrStoreId) =>
284
+ useListenable(ROW_COUNT, useStoreOrStoreById(storeOrStoreId), 5, [tableId]);
285
+ const useRowIds = (tableId, storeOrStoreId) =>
286
+ useListenable(ROW_IDS, useStoreOrStoreById(storeOrStoreId), 1, [tableId]);
269
287
  const useSortedRowIds = (
270
288
  tableId,
271
289
  cellId,
@@ -274,77 +292,44 @@ const useSortedRowIds = (
274
292
  limit,
275
293
  storeOrStoreId,
276
294
  ) =>
277
- useListenable(
278
- SORTED_ROW_IDS,
279
- useStoreOrStoreById(storeOrStoreId),
280
- EMPTY_ARRAY,
281
- [tableId, cellId, descending, offset, limit],
282
- 6,
283
- );
295
+ useListenable(SORTED_ROW_IDS, useStoreOrStoreById(storeOrStoreId), 1, [
296
+ tableId,
297
+ cellId,
298
+ descending,
299
+ offset,
300
+ limit,
301
+ ]);
284
302
  const useHasRow = (tableId, rowId, storeOrStoreId) =>
285
- useListenable(
286
- ROW,
287
- useStoreOrStoreById(storeOrStoreId),
288
- false,
289
- [tableId, rowId],
290
- 3,
291
- _HAS,
292
- HAS,
293
- );
303
+ useListenable(ROW, useStoreOrStoreById(storeOrStoreId), 4, [tableId, rowId]);
294
304
  const useRow = (tableId, rowId, storeOrStoreId) =>
295
- useListenable(ROW, useStoreOrStoreById(storeOrStoreId), EMPTY_OBJECT, [
305
+ useListenable(ROW, useStoreOrStoreById(storeOrStoreId), 0, [tableId, rowId]);
306
+ const useCellIds = (tableId, rowId, storeOrStoreId) =>
307
+ useListenable(CELL_IDS, useStoreOrStoreById(storeOrStoreId), 1, [
296
308
  tableId,
297
309
  rowId,
298
310
  ]);
299
- const useCellIds = (tableId, rowId, storeOrStoreId) =>
300
- useListenable(CELL_IDS, useStoreOrStoreById(storeOrStoreId), EMPTY_ARRAY, [
311
+ const useHasCell = (tableId, rowId, cellId, storeOrStoreId) =>
312
+ useListenable(CELL, useStoreOrStoreById(storeOrStoreId), 4, [
301
313
  tableId,
302
314
  rowId,
315
+ cellId,
303
316
  ]);
304
- const useHasCell = (tableId, rowId, cellId, storeOrStoreId) =>
305
- useListenable(
306
- CELL,
307
- useStoreOrStoreById(storeOrStoreId),
308
- false,
309
- [tableId, rowId, cellId],
310
- 4,
311
- _HAS,
312
- HAS,
313
- );
314
317
  const useCell = (tableId, rowId, cellId, storeOrStoreId) =>
315
- useListenable(
316
- CELL,
317
- useStoreOrStoreById(storeOrStoreId),
318
- void 0,
319
- [tableId, rowId, cellId],
320
- 4,
321
- );
318
+ useListenable(CELL, useStoreOrStoreById(storeOrStoreId), 3, [
319
+ tableId,
320
+ rowId,
321
+ cellId,
322
+ ]);
322
323
  const useHasValues = (storeOrStoreId) =>
323
- useListenable(
324
- VALUES,
325
- useStoreOrStoreById(storeOrStoreId),
326
- false,
327
- [],
328
- 1,
329
- _HAS,
330
- HAS,
331
- );
324
+ useListenable(VALUES, useStoreOrStoreById(storeOrStoreId), 4, []);
332
325
  const useValues = (storeOrStoreId) =>
333
- useListenable(VALUES, useStoreOrStoreById(storeOrStoreId), EMPTY_OBJECT);
326
+ useListenable(VALUES, useStoreOrStoreById(storeOrStoreId), 0);
334
327
  const useValueIds = (storeOrStoreId) =>
335
- useListenable(VALUE_IDS, useStoreOrStoreById(storeOrStoreId), EMPTY_ARRAY);
328
+ useListenable(VALUE_IDS, useStoreOrStoreById(storeOrStoreId), 1);
336
329
  const useHasValue = (valueId, storeOrStoreId) =>
337
- useListenable(
338
- VALUE,
339
- useStoreOrStoreById(storeOrStoreId),
340
- false,
341
- [valueId],
342
- 2,
343
- _HAS,
344
- HAS,
345
- );
330
+ useListenable(VALUE, useStoreOrStoreById(storeOrStoreId), 4, [valueId]);
346
331
  const useValue = (valueId, storeOrStoreId) =>
347
- useListenable(VALUE, useStoreOrStoreById(storeOrStoreId), void 0, [valueId]);
332
+ useListenable(VALUE, useStoreOrStoreById(storeOrStoreId), 3, [valueId]);
348
333
  const useSetTablesCallback = (
349
334
  getTables,
350
335
  getTablesDeps,
@@ -860,13 +845,9 @@ const useCreateMetrics = (store, create, createDeps) =>
860
845
  useCreate(store, create, createDeps);
861
846
  const useMetricsIds = () => useThingIds(3);
862
847
  const useMetricIds = (metricsOrMetricsId) =>
863
- useListenable(
864
- 'MetricIds',
865
- useMetricsOrMetricsById(metricsOrMetricsId),
866
- EMPTY_ARRAY,
867
- );
848
+ useListenable('MetricIds', useMetricsOrMetricsById(metricsOrMetricsId), 1);
868
849
  const useMetric = (metricId, metricsOrMetricsId) =>
869
- useListenable('Metric', useMetricsOrMetricsById(metricsOrMetricsId), void 0, [
850
+ useListenable('Metric', useMetricsOrMetricsById(metricsOrMetricsId), 3, [
870
851
  metricId,
871
852
  ]);
872
853
  const useMetricListener = (
@@ -886,23 +867,16 @@ const useCreateIndexes = (store, create, createDeps) =>
886
867
  useCreate(store, create, createDeps);
887
868
  const useIndexesIds = () => useThingIds(5);
888
869
  const useSliceIds = (indexId, indexesOrIndexesId) =>
889
- useListenable(
890
- 'SliceIds',
891
- useIndexesOrIndexesById(indexesOrIndexesId),
892
- EMPTY_ARRAY,
893
- [indexId],
894
- );
870
+ useListenable('SliceIds', useIndexesOrIndexesById(indexesOrIndexesId), 1, [
871
+ indexId,
872
+ ]);
895
873
  const useIndexIds = (indexesOrIndexesId) =>
896
- useListenable(
897
- 'IndexIds',
898
- useIndexesOrIndexesById(indexesOrIndexesId),
899
- EMPTY_ARRAY,
900
- );
874
+ useListenable('IndexIds', useIndexesOrIndexesById(indexesOrIndexesId), 1);
901
875
  const useSliceRowIds = (indexId, sliceId, indexesOrIndexesId) =>
902
876
  useListenable(
903
877
  'Slice' + ROW_IDS,
904
878
  useIndexesOrIndexesById(indexesOrIndexesId),
905
- EMPTY_ARRAY,
879
+ 1,
906
880
  [indexId, sliceId],
907
881
  );
908
882
  const useSliceIdsListener = (
@@ -939,7 +913,7 @@ const useRelationshipIds = (relationshipsOrRelationshipsId) =>
939
913
  useListenable(
940
914
  'RelationshipIds',
941
915
  useRelationshipsOrRelationshipsById(relationshipsOrRelationshipsId),
942
- EMPTY_ARRAY,
916
+ 1,
943
917
  );
944
918
  const useRemoteRowId = (
945
919
  relationshipId,
@@ -949,7 +923,7 @@ const useRemoteRowId = (
949
923
  useListenable(
950
924
  'RemoteRowId',
951
925
  useRelationshipsOrRelationshipsById(relationshipsOrRelationshipsId),
952
- void 0,
926
+ 3,
953
927
  [relationshipId, localRowId],
954
928
  );
955
929
  const useLocalRowIds = (
@@ -960,7 +934,7 @@ const useLocalRowIds = (
960
934
  useListenable(
961
935
  'Local' + ROW_IDS,
962
936
  useRelationshipsOrRelationshipsById(relationshipsOrRelationshipsId),
963
- EMPTY_ARRAY,
937
+ 1,
964
938
  [relationshipId, remoteRowId],
965
939
  );
966
940
  const useLinkedRowIds = (
@@ -971,7 +945,7 @@ const useLinkedRowIds = (
971
945
  useListenable(
972
946
  'Linked' + ROW_IDS,
973
947
  useRelationshipsOrRelationshipsById(relationshipsOrRelationshipsId),
974
- EMPTY_ARRAY,
948
+ 1,
975
949
  [relationshipId, firstRowId],
976
950
  );
977
951
  const useRemoteRowIdListener = (
@@ -1020,37 +994,33 @@ const useCreateQueries = (store, create, createDeps) =>
1020
994
  useCreate(store, create, createDeps);
1021
995
  const useQueriesIds = () => useThingIds(9);
1022
996
  const useQueryIds = (queriesOrQueriesId) =>
1023
- useListenable(
1024
- 'QueryIds',
1025
- useQueriesOrQueriesById(queriesOrQueriesId),
1026
- EMPTY_ARRAY,
1027
- );
997
+ useListenable('QueryIds', useQueriesOrQueriesById(queriesOrQueriesId), 1);
1028
998
  const useResultTable = (queryId, queriesOrQueriesId) =>
1029
999
  useListenable(
1030
1000
  RESULT + TABLE,
1031
1001
  useQueriesOrQueriesById(queriesOrQueriesId),
1032
- EMPTY_OBJECT,
1002
+ 0,
1033
1003
  [queryId],
1034
1004
  );
1035
1005
  const useResultTableCellIds = (queryId, queriesOrQueriesId) =>
1036
1006
  useListenable(
1037
1007
  RESULT + TABLE + CELL_IDS,
1038
1008
  useQueriesOrQueriesById(queriesOrQueriesId),
1039
- EMPTY_ARRAY,
1009
+ 1,
1040
1010
  [queryId],
1041
1011
  );
1042
1012
  const useResultRowCount = (queryId, queriesOrQueriesId) =>
1043
1013
  useListenable(
1044
1014
  RESULT + ROW_COUNT,
1045
1015
  useQueriesOrQueriesById(queriesOrQueriesId),
1046
- 0,
1016
+ 5,
1047
1017
  [queryId],
1048
1018
  );
1049
1019
  const useResultRowIds = (queryId, queriesOrQueriesId) =>
1050
1020
  useListenable(
1051
1021
  RESULT + ROW_IDS,
1052
1022
  useQueriesOrQueriesById(queriesOrQueriesId),
1053
- EMPTY_ARRAY,
1023
+ 1,
1054
1024
  [queryId],
1055
1025
  );
1056
1026
  const useResultSortedRowIds = (
@@ -1064,31 +1034,27 @@ const useResultSortedRowIds = (
1064
1034
  useListenable(
1065
1035
  RESULT + SORTED_ROW_IDS,
1066
1036
  useQueriesOrQueriesById(queriesOrQueriesId),
1067
- EMPTY_ARRAY,
1037
+ 1,
1068
1038
  [queryId, cellId, descending, offset, limit],
1069
- 6,
1070
1039
  );
1071
1040
  const useResultRow = (queryId, rowId, queriesOrQueriesId) =>
1072
- useListenable(
1073
- RESULT + ROW,
1074
- useQueriesOrQueriesById(queriesOrQueriesId),
1075
- EMPTY_OBJECT,
1076
- [queryId, rowId],
1077
- );
1041
+ useListenable(RESULT + ROW, useQueriesOrQueriesById(queriesOrQueriesId), 0, [
1042
+ queryId,
1043
+ rowId,
1044
+ ]);
1078
1045
  const useResultCellIds = (queryId, rowId, queriesOrQueriesId) =>
1079
1046
  useListenable(
1080
1047
  RESULT + CELL_IDS,
1081
1048
  useQueriesOrQueriesById(queriesOrQueriesId),
1082
- EMPTY_ARRAY,
1049
+ 1,
1083
1050
  [queryId, rowId],
1084
1051
  );
1085
1052
  const useResultCell = (queryId, rowId, cellId, queriesOrQueriesId) =>
1086
- useListenable(
1087
- RESULT + CELL,
1088
- useQueriesOrQueriesById(queriesOrQueriesId),
1089
- void 0,
1090
- [queryId, rowId, cellId],
1091
- );
1053
+ useListenable(RESULT + CELL, useQueriesOrQueriesById(queriesOrQueriesId), 3, [
1054
+ queryId,
1055
+ rowId,
1056
+ cellId,
1057
+ ]);
1092
1058
  const useResultTableListener = (
1093
1059
  queryId,
1094
1060
  listener,
@@ -1208,13 +1174,13 @@ const useCheckpointIds = (checkpointsOrCheckpointsId) =>
1208
1174
  useListenable(
1209
1175
  'CheckpointIds',
1210
1176
  useCheckpointsOrCheckpointsById(checkpointsOrCheckpointsId),
1211
- DEFAULT_CHECKPOINT_IDS,
1177
+ 2,
1212
1178
  );
1213
1179
  const useCheckpoint = (checkpointId, checkpointsOrCheckpointsId) =>
1214
1180
  useListenable(
1215
1181
  'Checkpoint',
1216
1182
  useCheckpointsOrCheckpointsById(checkpointsOrCheckpointsId),
1217
- void 0,
1183
+ 3,
1218
1184
  [checkpointId],
1219
1185
  );
1220
1186
  const useSetCheckpointCallback = (
@@ -1322,26 +1288,26 @@ const useCreatePersister = (
1322
1288
  destroyDeps = EMPTY_ARRAY,
1323
1289
  ) => {
1324
1290
  const [, rerender] = useState$2();
1325
- const persister = useMemo$1(
1326
- () => create(store),
1327
- // eslint-disable-next-line react-hooks/exhaustive-deps
1328
- [store, ...createDeps],
1329
- );
1291
+ const [persister, setPersister] = useState$2();
1330
1292
  useEffect(
1331
1293
  () => {
1332
- (async () => {
1294
+ const newPersister = create(store);
1295
+ setPersister(newPersister);
1296
+ if (newPersister) {
1333
1297
  if (then) {
1334
- await then(persister);
1335
- rerender([]);
1298
+ (async () => {
1299
+ await then(newPersister);
1300
+ rerender([]);
1301
+ })();
1336
1302
  }
1337
- })();
1338
- return () => {
1339
- persister?.destroy();
1340
- destroy?.(persister);
1341
- };
1303
+ return () => {
1304
+ newPersister.destroy();
1305
+ destroy?.(newPersister);
1306
+ };
1307
+ }
1342
1308
  },
1343
1309
  // eslint-disable-next-line react-hooks/exhaustive-deps
1344
- [persister, ...thenDeps, ...destroyDeps],
1310
+ [store, ...createDeps, ...thenDeps, ...destroyDeps],
1345
1311
  );
1346
1312
  return persister;
1347
1313
  };
@@ -1 +1 @@
1
- const e=e=>null==e,l=(l,n,t)=>e(l)?null==t?void 0:t():n(l),n=e=>e.length,t=(e,l)=>e.includes(l),r=(e,l)=>e.forEach(l),o=e=>0==n(e),u=(e,...l)=>e.push(...l),s=e=>e.pop(),i=e=>e.shift(),d=Object.freeze,a=(e,l)=>{var n;return null!=(n=null==e?void 0:e.has(l))&&n},c=l=>e(l)||0==(e=>{var l;return null!=(l=null==e?void 0:e.size)?l:0})(l),v=(e,l)=>null==e?void 0:e.forEach(l),h=(e,l)=>null==e?void 0:e.delete(l),p=e=>new Map(e),C=(e,l)=>null==e?void 0:e.get(l),f=(l,n,t)=>e(t)?(h(l,n),l):null==l?void 0:l.set(n,t),g=(e,l,n)=>(a(e,l)||f(e,l,n()),C(e,l)),k=(e,t,r,o,u=0)=>l((r?g:C)(e,t[u],u>n(t)-2?r:p),(l=>{if(u>n(t)-2)return(null==o?void 0:o(l))&&f(e,t[u]),l;const s=k(l,t,r,o,u+1);return c(l)&&f(e,t[u]),s})),L=l=>new Set(Array.isArray(l)||e(l)?l:[l]),w=/^\d+$/,S=(S=>{const y=new WeakMap;return S=>(y.has(S)||y.set(S,(S=>{let y,z,E,V=100,A=p(),F=p(),I=1;const M=p(),b=p(),[j,x,B]=(t=>{let o;const[s,d]=(()=>{const e=[];let l=0;return[n=>{var t;return null!=(t=n?i(e):null)?t:""+l++},l=>{w.test(l)&&n(e)<1e3&&u(e,l)}]})(),a=p();return[(e,l,n,t=[],r=(()=>[]))=>{null!=o||(o=_);const u=s(1);var i,d;return f(a,u,[e,l,n,t,r]),d=u,null==(i=k(l,null!=n?n:[""],L))||i.add(d),u},(e,l,...t)=>r(((e,l=[""])=>{const t=[],o=(e,s)=>s==n(l)?u(t,e):null===l[s]?v(e,(e=>o(e,s+1))):r([l[s],null],(l=>o(C(e,l),s+1)));return o(e,0),t})(e,l),(e=>v(e,(e=>C(a,e)[0](o,...null!=l?l:[],...t))))),e=>l(C(a,e),(([,l,n])=>(k(l,null!=n?n:[""],void 0,(l=>(h(l,e),c(l)?1:0))),f(a,e),d(e),n))),t=>l(C(a,t),(([l,,t=[],u,s])=>{const i=(...d)=>{var a,c;const v=n(d);v==n(t)?l(o,...d,...s(d)):e(t[v])?r(null!=(c=null==(a=u[v])?void 0:a.call(u,...d))?c:[],(e=>i(...d,e))):i(...d,t[v])};i()}))]})(),O=p(),T=p(),W=[],$=[],m=(l,n)=>{I=0,S.transaction((()=>{const[t,r]=C(O,n);v(t,((n,t)=>v(n,((n,r)=>v(n,((n,o)=>((l,n,t,r,o)=>e(o)?l.delCell(n,t,r,!0):l.setCell(n,t,r,o))(S,t,r,o,n[l]))))))),v(r,((n,t)=>((l,n,t)=>e(t)?l.delValue(n):l.setValue(n,t))(S,t,n[l])))})),I=1},q=e=>{f(O,e),f(T,e),x(b,[e])},D=(e,l)=>r(((e,l)=>e.splice(0,l))(e,null!=l?l:n(e)),q),G=()=>D(W,n(W)-V),H=()=>l(y,(()=>{u(W,y),G(),D($),y=void 0,E=1})),J=()=>{y=s(W),E=1},K=S.addCellListener(null,null,null,((e,l,n,t,r,o)=>{if(I){H();const e=g(A,l,p),u=g(e,n,p),s=g(u,t,(()=>[o,void 0]));s[1]=r,s[0]===r&&c(f(u,t))&&c(f(e,n))&&c(f(A,l))&&J(),U()}})),N=S.addValueListener(null,((e,l,n,t)=>{if(I){H();const e=g(F,l,(()=>[t,void 0]));e[1]=n,e[0]===n&&c(f(F,l))&&J(),U()}})),P=(l="")=>(e(y)&&(y=""+z++,f(O,y,[A,F]),Y(y,l),A=p(),F=p(),E=1),y),Q=()=>{o(W)||(((e,...l)=>{e.unshift(...l)})($,P()),m(0,y),y=s(W),E=1)},R=()=>{o($)||(u(W,y),y=i($),m(1,y),E=1)},U=()=>{E&&(x(M),E=0)},X=e=>{const l=P(e);return U(),l},Y=(e,l)=>(Z(e)&&C(T,e)!==l&&(f(T,e,l),x(b,[e])),_),Z=e=>a(O,e),_={setSize:e=>(V=e,G(),_),addCheckpoint:X,setCheckpoint:Y,getStore:()=>S,getCheckpointIds:()=>[[...W],y,[...$]],forEachCheckpoint:e=>{return l=e,v(T,((e,n)=>l(n,e)));var l},hasCheckpoint:Z,getCheckpoint:e=>C(T,e),goBackward:()=>(Q(),U(),_),goForward:()=>(R(),U(),_),goTo:l=>{const n=t(W,l)?Q:t($,l)?R:null;for(;!e(n)&&l!=y;)n();return U(),_},addCheckpointIdsListener:e=>j(e,M),addCheckpointListener:(e,l)=>j(l,b,[e]),delListener:e=>(B(e),_),clear:()=>(D(W),D($),e(y)||q(y),y=void 0,z=0,X(),_),clearForward:()=>(o($)||(D($),x(M)),_),destroy:()=>{S.delListener(K),S.delListener(N)},getListenerStats:()=>({})};return d(_.clear())})(S)),y.get(S))})();export{S as createCheckpoints};
1
+ const e=e=>null==e,n=(n,l,t)=>e(n)?null==t?void 0:t():l(n),l=e=>e.length,t=(e,n)=>e.includes(n),r=(e,n)=>e.forEach(n),o=e=>0==l(e),s=(e,...n)=>e.push(...n),u=e=>e.pop(),i=e=>e.shift(),d=Object.freeze,a=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},c=n=>e(n)||0==(e=>{var n;return null!=(n=null==e?void 0:e.size)?n:0})(n),v=(e,n)=>null==e?void 0:e.forEach(n),h=(e,n)=>null==e?void 0:e.delete(n),p=e=>new Map(e),g=(e,n)=>null==e?void 0:e.get(n),C=(n,l,t)=>e(t)?(h(n,l),n):null==n?void 0:n.set(l,t),f=(e,n,l)=>(a(e,n)||C(e,n,l()),g(e,n)),k=(e,t,r,o,s=0)=>n((r?f:g)(e,t[s],s>l(t)-2?r:p),(n=>{if(s>l(t)-2)return(null==o?void 0:o(n))&&C(e,t[s]),n;const u=k(n,t,r,o,s+1);return c(n)&&C(e,t[s]),u})),L=n=>new Set(Array.isArray(n)||e(n)?n:[n]),w=/^\d+$/,S=((S,y)=>{const z=new WeakMap;return S=>{z.has(S)||z.set(S,(S=>{let y,z,E,V=100,A=p(),F=p(),I=1;const M=p(),_=p(),[b,j,x]=(t=>{let o;const[u,d]=(()=>{const e=[];let n=0;return[l=>{var t;return null!=(t=l?i(e):null)?t:""+n++},n=>{w.test(n)&&l(e)<1e3&&s(e,n)}]})(),a=p();return[(e,n,l,t=[],r=(()=>[]))=>{null!=o||(o=Z);const s=u(1);var i,d;return C(a,s,[e,n,l,t,r]),d=s,null==(i=k(n,null!=l?l:[""],L))||i.add(d),s},(e,n,...t)=>r(((e,n=[""])=>{const t=[],o=(e,u)=>u==l(n)?s(t,e):null===n[u]?v(e,(e=>o(e,u+1))):r([n[u],null],(n=>o(g(e,n),u+1)));return o(e,0),t})(e,n),(e=>v(e,(e=>g(a,e)[0](o,...null!=n?n:[],...t))))),e=>n(g(a,e),(([,n,l])=>(k(n,null!=l?l:[""],void 0,(n=>(h(n,e),c(n)?1:0))),C(a,e),d(e),l))),t=>n(g(a,t),(([n,,t=[],s,u])=>{const i=(...d)=>{var a,c;const v=l(d);v==l(t)?n(o,...d,...u(d)):e(t[v])?r(null!=(c=null==(a=s[v])?void 0:a.call(s,...d))?c:[],(e=>i(...d,e))):i(...d,t[v])};i()}))]})(),B=p(),O=p(),T=[],W=[],$=(n,l)=>{I=0,S.transaction((()=>{const[t,r]=g(B,l);v(t,((l,t)=>v(l,((l,r)=>v(l,((l,o)=>((n,l,t,r,o)=>e(o)?n.delCell(l,t,r,!0):n.setCell(l,t,r,o))(S,t,r,o,l[n]))))))),v(r,((l,t)=>((n,l,t)=>e(t)?n.delValue(l):n.setValue(l,t))(S,t,l[n])))})),I=1},m=e=>{C(B,e),C(O,e),j(_,[e])},q=(e,n)=>r(((e,n)=>e.splice(0,n))(e,null!=n?n:l(e)),m),D=()=>q(T,l(T)-V),G=()=>n(y,(()=>{s(T,y),D(),q(W),y=void 0,E=1})),H=()=>{y=u(T),E=1};let J,K;const N=(n="")=>(e(y)&&(y=""+z++,C(B,y,[A,F]),X(y,n),A=p(),F=p(),E=1),y),P=()=>{o(T)||(((e,...n)=>{e.unshift(...n)})(W,N()),$(0,y),y=u(T),E=1)},Q=()=>{o(W)||(s(T,y),y=i(W),$(1,y),E=1)},R=()=>{E&&(j(M),E=0)},U=e=>{const n=N(e);return R(),n},X=(e,n)=>(Y(e)&&g(O,e)!==n&&(C(O,e,n),j(_,[e])),Z),Y=e=>a(B,e),Z={setSize:e=>(V=e,D(),Z),addCheckpoint:U,setCheckpoint:X,getStore:()=>S,getCheckpointIds:()=>[[...T],y,[...W]],forEachCheckpoint:e=>{return n=e,v(O,((e,l)=>n(l,e)));var n},hasCheckpoint:Y,getCheckpoint:e=>g(O,e),goBackward:()=>(P(),R(),Z),goForward:()=>(Q(),R(),Z),goTo:n=>{const l=t(T,n)?P:t(W,n)?Q:null;for(;!e(l)&&n!=y;)l();return R(),Z},addCheckpointIdsListener:e=>b(e,M),addCheckpointListener:(e,n)=>b(n,_,[e]),delListener:e=>(x(e),Z),clear:()=>(q(T),q(W),e(y)||m(y),y=void 0,z=0,U(),Z),clearForward:()=>(o(W)||(q(W),j(M)),Z),destroy:()=>{S.delListener(J),S.delListener(K)},getListenerStats:()=>({}),_registerListeners:()=>{J=S.addCellListener(null,null,null,((e,n,l,t,r,o)=>{if(I){G();const e=f(A,n,p),s=f(e,l,p),u=f(s,t,(()=>[o,void 0]));u[1]=r,u[0]===r&&c(C(s,t))&&c(C(e,l))&&c(C(A,n))&&H(),R()}})),K=S.addValueListener(null,((e,n,l,t)=>{if(I){G();const e=f(F,n,(()=>[t,void 0]));e[1]=l,e[0]===l&&c(C(F,n))&&H(),R()}}))}};return d(Z.clear())})(S));const E=z.get(S);return null==y||y(E),E}})(0,(e=>e._registerListeners()));export{S as createCheckpoints};
Binary file
@@ -1 +1 @@
1
- const e=e=>typeof e,n="",l=e(n),t=e=>n+e,r=e=>null==e,s=(e,n,l)=>r(e)?null==l?void 0:l():n(e),o=e=>Array.isArray(e),u=e=>e.length,d=(e,n)=>e.every(n),i=(e,n)=>d(e,((l,t)=>0==t||n(e[t-1],l)<=0)),a=(e,n)=>e.sort(n),c=(e,n)=>e.forEach(n),v=(e,...n)=>e.push(...n),h=Object.freeze,I=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},f=e=>r(e)||0==(e=>{var n;return null!=(n=null==e?void 0:e.size)?n:0})(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},L=e=>e.clear(),S=(e,n)=>null==e?void 0:e.forEach(n),w=(e,n)=>null==e?void 0:e.delete(n),x=e=>new Map(e),p=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},y=(e,n)=>null==e?void 0:e.get(n),E=(e,n)=>S(e,((e,l)=>n(l,e))),R=(e,n,l)=>r(l)?(w(e,n),e):null==e?void 0:e.set(n,l),b=(e,n,l)=>(I(e,n)||R(e,n,l()),y(e,n)),T=(e,n,l,t,r=0)=>s((l?b:y)(e,n[r],r>u(n)-2?l:x),(s=>{if(r>u(n)-2)return(null==t?void 0:t(s))&&R(e,n[r]),s;const o=T(s,n,l,t,r+1);return f(s)&&R(e,n[r]),o})),k=e=>new Set(o(e)||r(e)?e:[e]),z=(e,n)=>null==e?void 0:e.add(n),A=(t,r)=>e(t)==l?e=>e(t):null!=t?t:()=>null!=r?r:n,C=(e,n)=>(null!=e?e:0)<(null!=n?n:0)?-1:1,D=/^\d+$/,M=(e=>{const l=new WeakMap;return e=>(l.has(e)||l.set(e,(e=>{const l=x(),M=x(),[j,m,O]=(e=>{let l;const[t,o]=(()=>{const e=[];let l=0;return[t=>{var r;return null!=(r=t?e.shift():null)?r:n+l++},n=>{D.test(n)&&u(e)<1e3&&v(e,n)}]})(),d=x();return[(e,r,s,o=[],u=(()=>[]))=>{null!=l||(l=U);const i=t(1);return R(d,i,[e,r,s,o,u]),z(T(r,null!=s?s:[n],k),i),i},(e,t,...r)=>c(((e,l=[n])=>{const t=[],r=(e,n)=>n==u(l)?v(t,e):null===l[n]?S(e,(e=>r(e,n+1))):c([l[n],null],(l=>r(y(e,l),n+1)));return r(e,0),t})(e,t),(e=>S(e,(e=>y(d,e)[0](l,...null!=t?t:[],...r))))),e=>s(y(d,e),(([,l,t])=>(T(l,null!=t?t:[n],void 0,(n=>(w(n,e),f(n)?1:0))),R(d,e),o(e),t))),e=>s(y(d,e),(([e,,n=[],t,s])=>{const o=(...d)=>{var i,a;const v=u(d);v==u(n)?e(l,...d,...s(d)):r(n[v])?c(null!=(a=null==(i=t[v])?void 0:i.call(t,...d))?a:[],(e=>o(...d,e))):o(...d,n[v])};o()}))]})(),[W,$,q,B,F,G,H,,J,K,N,P]=((e,n,l,t,i)=>{const a=e.hasRow,v=x(),h=x(),T=x(),A=x(),C=x(),D=x(),M=(n,l,...t)=>{const r=b(D,n,k);return c(t,(n=>z(r,n)&&l&&e.callListener(n))),t},j=(n,...l)=>s(y(D,n),(t=>{c(0==u(l)?g(t):l,(n=>{e.delListener(n),w(t,n)})),f(t)&&R(D,n)})),m=(e,l)=>{R(v,e,l),I(h,e)||(R(h,e,n()),R(A,e,x()),R(C,e,x()),i(T))},O=e=>{R(v,e),R(h,e),R(A,e),R(C,e),j(e),i(T)};return[()=>e,()=>p(v),e=>E(h,e),e=>I(h,e),e=>y(v,e),e=>y(h,e),(e,n)=>R(h,e,n),m,(n,t,s,i,v)=>{m(n,t);const h=x(),f=x(),g=y(A,n),w=y(C,n),p=n=>{const s=l=>e.getCell(t,n,l),c=y(g,n),I=a(t,n)?l(i(s,n)):void 0;var L,S;if(c===I||o(c)&&o(I)&&(S=I,u(L=c)===u(S)&&d(L,((e,n)=>S[n]===e)))||R(h,n,[c,I]),!r(v)){const e=y(w,n),l=a(t,n)?v(s,n):void 0;e!=l&&R(f,n,l)}},b=e=>{s((()=>{S(h,(([,e],n)=>R(g,n,e))),S(f,((e,n)=>R(w,n,e)))}),h,f,g,w,e),L(h),L(f)};E(g,p),e.hasTable(t)&&c(e.getRowIds(t),(e=>{I(g,e)||p(e)})),b(!0),j(n),M(n,0,e.addRowListener(t,null,((e,n,l)=>p(l))),e.addTableListener(t,(()=>b())))},O,e=>t(e,T),()=>E(D,O),M,j]})(e,x,(e=>{return r(e)?n:o(e)?(l=t,e.map(l)):t(e);var l}),j,m),Q=(n,l,t)=>{const r=F(n);S(t,((n,t)=>l(t,(l=>S(n,(n=>l(n,(l=>e.forEachCell(r,n,l)))))))))},U={setIndexDefinition:(e,n,t,o,u,d=C)=>{const c=r(u)?void 0:([e],[n])=>u(e,n);return J(e,n,((n,t,u,v,h,g)=>{let L=0;const p=k(),b=k(),T=G(e);if(S(t,(([e,n],l)=>{const t=k(e),u=k(n);S(t,(e=>w(u,e)?w(t,e):0)),S(t,(e=>{z(p,e),s(y(T,e),(n=>{w(n,l),f(n)&&(R(T,e),L=1)}))})),S(u,(e=>{z(p,e),I(T,e)||(R(T,e,k()),L=1),z(y(T,e),l),r(o)||z(b,e)}))})),n(),f(h)||(g?E(T,(e=>z(b,e))):E(u,(e=>s(y(v,e),(e=>z(b,e))))),S(b,(e=>{const n=(n,l)=>d(y(h,n),y(h,l),e),l=[...y(T,e)];i(l,n)||(R(T,e,k(a(l,n))),z(p,e))}))),(L||g)&&!r(c)){const n=[...T];i(n,c)||(H(e,x(a(n,c))),L=1)}L&&m(l,[e]),S(p,(n=>m(M,[e,n])))}),A(t),s(o,A)),U},delIndexDefinition:e=>(K(e),U),getStore:W,getIndexIds:$,forEachIndex:e=>q(((n,l)=>e(n,(e=>Q(n,e,l))))),forEachSlice:(e,n)=>Q(e,n,G(e)),hasIndex:B,hasSlice:(e,n)=>I(G(e),n),getTableId:F,getSliceIds:e=>p(G(e)),getSliceRowIds:(e,n)=>g(y(G(e),n)),addIndexIdsListener:N,addSliceIdsListener:(e,n)=>j(n,l,[e]),addSliceRowIdsListener:(e,n,l)=>j(l,M,[e,n]),delListener:e=>(O(e),U),destroy:P,getListenerStats:()=>({})};return h(U)})(e)),l.get(e))})();export{M as createIndexes};
1
+ const e=e=>typeof e,n="",l=e(n),t=e=>n+e,r=e=>null==e,s=(e,n,l)=>r(e)?null==l?void 0:l():n(e),o=e=>Array.isArray(e),u=e=>e.length,d=(e,n)=>e.every(n),i=(e,n)=>d(e,((l,t)=>0==t||n(e[t-1],l)<=0)),a=(e,n)=>e.sort(n),c=(e,n)=>e.forEach(n),v=(e,...n)=>e.push(...n),h=Object.freeze,I=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},f=e=>r(e)||0==(e=>{var n;return null!=(n=null==e?void 0:e.size)?n:0})(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},L=e=>e.clear(),S=(e,n)=>null==e?void 0:e.forEach(n),w=(e,n)=>null==e?void 0:e.delete(n),x=e=>new Map(e),p=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},y=(e,n)=>null==e?void 0:e.get(n),E=(e,n)=>S(e,((e,l)=>n(l,e))),R=(e,n,l)=>r(l)?(w(e,n),e):null==e?void 0:e.set(n,l),b=(e,n,l)=>(I(e,n)||R(e,n,l()),y(e,n)),T=(e,n,l,t,r=0)=>s((l?b:y)(e,n[r],r>u(n)-2?l:x),(s=>{if(r>u(n)-2)return(null==t?void 0:t(s))&&R(e,n[r]),s;const o=T(s,n,l,t,r+1);return f(s)&&R(e,n[r]),o})),k=e=>new Set(o(e)||r(e)?e:[e]),z=(e,n)=>null==e?void 0:e.add(n),A=(t,r)=>e(t)==l?e=>e(t):null!=t?t:()=>null!=r?r:n,C=(e,n)=>(null!=e?e:0)<(null!=n?n:0)?-1:1,D=/^\d+$/,M=((e,l)=>{const M=new WeakMap;return e=>{M.has(e)||M.set(e,(e=>{const l=x(),M=x(),[j,m,O]=(e=>{let l;const[t,o]=(()=>{const e=[];let l=0;return[t=>{var r;return null!=(r=t?e.shift():null)?r:n+l++},n=>{D.test(n)&&u(e)<1e3&&v(e,n)}]})(),d=x();return[(e,r,s,o=[],u=(()=>[]))=>{null!=l||(l=U);const i=t(1);return R(d,i,[e,r,s,o,u]),z(T(r,null!=s?s:[n],k),i),i},(e,t,...r)=>c(((e,l=[n])=>{const t=[],r=(e,n)=>n==u(l)?v(t,e):null===l[n]?S(e,(e=>r(e,n+1))):c([l[n],null],(l=>r(y(e,l),n+1)));return r(e,0),t})(e,t),(e=>S(e,(e=>y(d,e)[0](l,...null!=t?t:[],...r))))),e=>s(y(d,e),(([,l,t])=>(T(l,null!=t?t:[n],void 0,(n=>(w(n,e),f(n)?1:0))),R(d,e),o(e),t))),e=>s(y(d,e),(([e,,n=[],t,s])=>{const o=(...d)=>{var i,a;const v=u(d);v==u(n)?e(l,...d,...s(d)):r(n[v])?c(null!=(a=null==(i=t[v])?void 0:i.call(t,...d))?a:[],(e=>o(...d,e))):o(...d,n[v])};o()}))]})(),[W,$,q,B,F,G,H,,J,K,N,P]=((e,n,l,t,i)=>{const a=e.hasRow,v=x(),h=x(),T=x(),A=x(),C=x(),D=x(),M=(n,l,...t)=>{const r=b(D,n,k);return c(t,(n=>z(r,n)&&l&&e.callListener(n))),t},j=(n,...l)=>s(y(D,n),(t=>{c(0==u(l)?g(t):l,(n=>{e.delListener(n),w(t,n)})),f(t)&&R(D,n)})),m=(e,l)=>{R(v,e,l),I(h,e)||(R(h,e,n()),R(A,e,x()),R(C,e,x()),i(T))},O=e=>{R(v,e),R(h,e),R(A,e),R(C,e),j(e),i(T)};return[()=>e,()=>p(v),e=>E(h,e),e=>I(h,e),e=>y(v,e),e=>y(h,e),(e,n)=>R(h,e,n),m,(n,t,s,i,v)=>{m(n,t);const h=x(),f=x(),g=y(A,n),w=y(C,n),p=n=>{const s=l=>e.getCell(t,n,l),c=y(g,n),I=a(t,n)?l(i(s,n)):void 0;var L,S;if(c===I||o(c)&&o(I)&&(S=I,u(L=c)===u(S)&&d(L,((e,n)=>S[n]===e)))||R(h,n,[c,I]),!r(v)){const e=y(w,n),l=a(t,n)?v(s,n):void 0;e!=l&&R(f,n,l)}},b=e=>{s((()=>{S(h,(([,e],n)=>R(g,n,e))),S(f,((e,n)=>R(w,n,e)))}),h,f,g,w,e),L(h),L(f)};E(g,p),e.hasTable(t)&&c(e.getRowIds(t),(e=>{I(g,e)||p(e)})),b(!0),j(n),M(n,0,e.addRowListener(t,null,((e,n,l)=>p(l))),e.addTableListener(t,(()=>b())))},O,e=>t(e,T),()=>E(D,O),M,j]})(e,x,(e=>{return r(e)?n:o(e)?(l=t,e.map(l)):t(e);var l}),j,m),Q=(n,l,t)=>{const r=F(n);S(t,((n,t)=>l(t,(l=>S(n,(n=>l(n,(l=>e.forEachCell(r,n,l)))))))))},U={setIndexDefinition:(e,n,t,o,u,d=C)=>{const c=r(u)?void 0:([e],[n])=>u(e,n);return J(e,n,((n,t,u,v,h,g)=>{let L=0;const p=k(),b=k(),T=G(e);if(S(t,(([e,n],l)=>{const t=k(e),u=k(n);S(t,(e=>w(u,e)?w(t,e):0)),S(t,(e=>{z(p,e),s(y(T,e),(n=>{w(n,l),f(n)&&(R(T,e),L=1)}))})),S(u,(e=>{z(p,e),I(T,e)||(R(T,e,k()),L=1),z(y(T,e),l),r(o)||z(b,e)}))})),n(),f(h)||(g?E(T,(e=>z(b,e))):E(u,(e=>s(y(v,e),(e=>z(b,e))))),S(b,(e=>{const n=(n,l)=>d(y(h,n),y(h,l),e),l=[...y(T,e)];i(l,n)||(R(T,e,k(a(l,n))),z(p,e))}))),(L||g)&&!r(c)){const n=[...T];i(n,c)||(H(e,x(a(n,c))),L=1)}L&&m(l,[e]),S(p,(n=>m(M,[e,n])))}),A(t),s(o,A)),U},delIndexDefinition:e=>(K(e),U),getStore:W,getIndexIds:$,forEachIndex:e=>q(((n,l)=>e(n,(e=>Q(n,e,l))))),forEachSlice:(e,n)=>Q(e,n,G(e)),hasIndex:B,hasSlice:(e,n)=>I(G(e),n),getTableId:F,getSliceIds:e=>p(G(e)),getSliceRowIds:(e,n)=>g(y(G(e),n)),addIndexIdsListener:N,addSliceIdsListener:(e,n)=>j(n,l,[e]),addSliceRowIdsListener:(e,n,l)=>j(l,M,[e,n]),delListener:e=>(O(e),U),destroy:P,getListenerStats:()=>({})};return h(U)})(e));return M.get(e)}})();export{M as createIndexes};
Binary file
@@ -0,0 +1 @@
1
+ const e=e=>typeof e,l="",t=e(l),n=e(!0),s=e(0),a=e(e),r="type",o="default",u="Has",c="Ids",i="Table",d=i+"s",v=i+c,h="Row",g=h+"Count",C=h+c,T="Cell",f=T+c,b="Value",V=b+"s",w=b+c,S=e=>l+e,I=(e,l)=>e.startsWith(l),R=(e,l)=>e.endsWith(l),m=(e,l=0)=>e.charCodeAt(l),p=isFinite,y=e=>null==e,L=(e,l,t)=>y(e)?null==t?void 0:t():l(e),J=e=>e==t||e==n,M=l=>e(l)==a,E=(e,l,t)=>e.slice(l,t),H=e=>e.length,P=(e,l)=>e.forEach(l),F=(e,l)=>e.map(l),O=(e,...l)=>e.push(...l),x=Object,z=e=>x.getPrototypeOf(e),A=x.entries,W=x.keys,k=x.isFrozen,D=x.freeze,N=e=>!y(e)&&L(z(e),(e=>e==x.prototype||y(z(e))),(()=>!0)),j=(e,l)=>!y(((e,l)=>L(e,(e=>e[l])))(e,l)),$=(e,l)=>(delete e[l],e),q=(e,l)=>F(A(e),(([e,t])=>l(t,e))),B=e=>N(e)&&0==(e=>H(W(e)))(e),G=e=>{var l;return null!=(l=null==e?void 0:e.size)?l:0},K=(e,l)=>{var t;return null!=(t=null==e?void 0:e.has(l))&&t},Q=e=>y(e)||0==G(e),U=e=>e.clear(),X=(e,l)=>null==e?void 0:e.forEach(l),Y=(e,l)=>null==e?void 0:e.delete(l),Z=e=>new Map(e),_=e=>{var l;return[...null!=(l=null==e?void 0:e.keys())?l:[]]},ee=(e,l)=>null==e?void 0:e.get(l),le=(e,l)=>X(e,((e,t)=>l(t,e))),te=(e,l,t)=>y(t)?(Y(e,l),e):null==e?void 0:e.set(l,t),ne=(e,l,t)=>(K(e,l)||te(e,l,t()),ee(e,l)),se=(e,l,t,n=te)=>(q(l,((l,n)=>t(e,n,l))),le(e,(t=>j(l,t)?0:n(e,t))),e),ae=(e,l,t)=>{const n={};return X(e,((e,s)=>{const a=l?l(e,s):e;!(null==t?void 0:t(a,e))&&(n[s]=a)})),n},re=(e,l,t)=>ae(e,(e=>ae(e,l,t)),B),oe=(e,l,t)=>ae(e,(e=>re(e,l,t)),B),ue=(e,l)=>{const t=Z();return X(e,((e,n)=>{var s;return t.set(n,null!=(s=null==l?void 0:l(e))?s:e)})),t},ce=e=>ue(e,ue),ie=e=>ue(e,ce),de=(e,l,t,n,s=0)=>L((t?ne:ee)(e,l[s],s>H(l)-2?t:Z),(a=>{if(s>H(l)-2)return(null==n?void 0:n(a))&&te(e,l[s]),a;const r=de(a,l,t,n,s+1);return Q(a)&&te(e,l[s]),r})),ve=()=>[l,null],he=()=>[l,Z()],ge=(e,l)=>Ce(e,((e,t)=>[t,y(e)?null:ae(e,l)])),Ce=([e,l],t)=>t(l,e),Te=([e,l],t,n,s=0)=>{const a=e>t[0];return(!s&&null!==t[1]||a)&&(t[1]=n(l,t[1])),a&&(t[0]=e),t},fe=(e,l,t,n)=>{var s;return s=(e,s)=>Te(e,ne(l,s,ve),((e,l)=>!n||y(e)?t[s]=null!=e?e:null:(null!=l||(l=Z()),t[s]={},n(e,l,s),l)),n?0:1),P(A(e),(([e,l])=>s(l,e))),l},be=e=>new Set(Array.isArray(e)||y(e)?e:[e]),Ve=(e,l)=>null==e?void 0:e.add(l),we=/^\d+$/,Se=()=>{const e=[];let t=0;return[n=>{var s;return null!=(s=n?e.shift():null)?s:l+t++},l=>{we.test(l)&&H(e)<1e3&&O(e,l)}]},Ie=e=>[e,e],Re=()=>[Z(),Z()],me=e=>[...e],pe=([e,l])=>e===l,ye=l=>{const t=e(l);return J(t)||t==s&&p(l)?t:void 0},Le=(e,l,t,n,s)=>y(s)?e.delCell(l,t,n,!0):e.setCell(l,t,n,s),Je=(e,l,t)=>y(t)?e.delValue(l):e.setValue(l,t),Me=e=>JSON.stringify(e,((e,l)=>l instanceof Map?x.fromEntries([...l]):l)),Ee=JSON.parse,He=(e,l,t)=>y(e)||!N(e)||B(e)||k(e)?(null==t||t(),!1):(q(e,((t,n)=>{l(t,n)||$(e,n)})),!B(e)),Pe=(e,l,t)=>te(e,l,ee(e,l)==-t?void 0:t),Fe=()=>{let e,t,n,a=!1,c=!1,I=!1,R=!1,m=0;const p=Z(),x=Z(),z=Z(),A=Z(),W=Z(),k=Z(),N=Z(),ve=Z(),he=Z(),ge=Z(),Ce=Z(),Te=Z(),fe=Z(),we=Z(),Oe=be(),xe=Z(),ze=Z(),Ae=Z(),We=Z(),ke=Re(),De=Re(),Ne=Re(),je=Re(),$e=Re(),qe=Re(),Be=Re(),Ge=Re(),Ke=Re(),Qe=Re(),Ue=Re(),Xe=Re(),Ye=Re(),Ze=Re(),_e=Re(),el=Re(),ll=Re(),tl=Re(),nl=Re(),sl=Re(),al=Re(),rl=Re(),ol=Z(),ul=Re(),[cl,il,dl,vl]=(e=>{let t;const[n,s]=Se(),a=Z();return[(e,s,r,o=[],u=(()=>[]))=>{null!=t||(t=Ot);const c=n(1);return te(a,c,[e,s,r,o,u]),Ve(de(s,null!=r?r:[l],be),c),c},(e,n,...s)=>P(((e,t=[l])=>{const n=[],s=(e,l)=>l==H(t)?O(n,e):null===t[l]?X(e,(e=>s(e,l+1))):P([t[l],null],(t=>s(ee(e,t),l+1)));return s(e,0),n})(e,n),(e=>X(e,(e=>ee(a,e)[0](t,...null!=n?n:[],...s))))),e=>L(ee(a,e),(([,t,n])=>(de(t,null!=n?n:[l],void 0,(l=>(Y(l,e),Q(l)?1:0))),te(a,e),s(e),n))),e=>L(ee(a,e),(([e,,l=[],n,s])=>{const a=(...r)=>{var o,u;const c=H(r);c==H(l)?e(t,...r,...s(r)):y(l[c])?P(null!=(u=null==(o=n[c])?void 0:o.call(n,...r))?u:[],(e=>a(...r,e))):a(...r,l[c])};a()}))]})(),hl=e=>{if(!He(e,((e,l)=>[r,o].includes(l))))return!1;const l=e[r];return!(!J(l)&&l!=s||(ye(e[o])!=l&&$(e,o),0))},gl=(l,t)=>(!e||K(Ce,t)||ql(t))&&He(l,((e,l)=>Cl(t,l,e)),(()=>ql(t))),Cl=(e,l,t,n)=>He(n?t:Vl(t,e,l),((n,s)=>L(Tl(e,l,s,n),(e=>(t[s]=e,!0)),(()=>!1))),(()=>ql(e,l))),Tl=(l,t,n,s)=>e?L(ee(ee(Ce,l),n),(e=>ye(s)!=e[r]?ql(l,t,n,s,e[o]):s),(()=>ql(l,t,n,s))):y(ye(s))?ql(l,t,n,s):s,fl=(e,l)=>He(l?e:wl(e),((l,t)=>L(bl(t,l),(l=>(e[t]=l,!0)),(()=>!1))),(()=>Bl())),bl=(e,l)=>t?L(ee(fe,e),(t=>ye(l)!=t[r]?Bl(e,l,t[o]):l),(()=>Bl(e,l))):y(ye(l))?Bl(e,l):l,Vl=(e,l,t)=>(L(ee(Te,l),(([n,s])=>{X(n,((l,t)=>{j(e,t)||(e[t]=l)})),X(s,(n=>{j(e,n)||ql(l,t,n)}))})),e),wl=e=>(t&&(X(we,((l,t)=>{j(e,t)||(e[t]=l)})),X(Oe,(l=>{j(e,l)||Bl(l)}))),e),Sl=e=>se(Ce,e,((e,l,t)=>{const n=Z(),s=be();se(ne(Ce,l,Z),t,((e,l,t)=>{te(e,l,t),L(t[o],(e=>te(n,l,e)),(()=>Ve(s,l)))})),te(Te,l,[n,s])}),((e,l)=>{te(Ce,l),te(Te,l)})),Il=e=>se(fe,e,((e,l,t)=>{te(fe,l,t),L(t[o],(e=>te(we,l,e)),(()=>Ve(Oe,l)))}),((e,l)=>{te(fe,l),te(we,l),Y(Oe,l)})),Rl=e=>B(e)?pt():wt(e),ml=e=>se(Ae,e,((e,l,t)=>pl(l,t)),((e,l)=>Ol(l))),pl=(e,l)=>se(ne(Ae,e,(()=>(Wl(e,1),te(xe,e,Se()),te(ze,e,Z()),Z()))),l,((l,t,n)=>yl(e,l,t,n)),((l,t)=>xl(e,l,t))),yl=(e,l,t,n,s)=>se(ne(l,t,(()=>(kl(e,t,1),Z()))),n,((l,n,s)=>Ll(e,t,l,n,s)),((n,a)=>zl(e,l,t,n,a,s))),Ll=(e,l,t,n,s)=>{K(t,n)||Dl(e,l,n,1);const a=ee(t,n);s!==a&&(Nl(e,l,n,a,s),te(t,n,s))},Jl=(e,l,t,n,s)=>L(ee(l,t),(l=>Ll(e,t,l,n,s)),(()=>yl(e,l,t,Vl({[n]:s},e,t)))),Ml=e=>B(e)?Jt():St(e),El=e=>se(We,e,((e,l,t)=>Hl(l,t)),((e,l)=>Al(l))),Hl=(e,l)=>{K(We,e)||jl(e,1);const t=ee(We,e);l!==t&&($l(e,t,l),te(We,e,l))},Pl=(e,l)=>{const[t]=ee(xe,e),n=t(l);return K(ee(Ae,e),n)?Pl(e,l):n},Fl=e=>{var l;return null!=(l=ee(Ae,e))?l:pl(e,{})},Ol=e=>pl(e,{}),xl=(e,l,t)=>{const[,n]=ee(xe,e);n(t),yl(e,l,t,{},!0)},zl=(e,l,t,n,s,a)=>{var r;const o=ee(null==(r=ee(Te,e))?void 0:r[0],s);if(!y(o)&&!a)return Ll(e,t,n,s,o);const u=l=>{Nl(e,t,l,ee(n,l)),Dl(e,t,l,-1),te(n,l)};y(o)?u(s):le(n,u),Q(n)&&(kl(e,t,-1),Q(te(l,t))&&(Wl(e,-1),te(Ae,e),te(xe,e),te(ze,e)))},Al=e=>{const l=ee(we,e);if(!y(l))return Hl(e,l);$l(e,ee(We,e)),jl(e,-1),te(We,e)},Wl=(e,l)=>Pe(p,e,l),kl=(e,l,t)=>Pe(ne(A,e,Z),l,t)&&te(z,e,ne(z,e,(()=>0))+t),Dl=(e,l,t,n)=>{var s;const a=ee(ze,e),r=null!=(s=ee(a,t))?s:0;(0==r&&1==n||1==r&&-1==n)&&Pe(ne(x,e,Z),t,n),te(a,t,r!=-n?r+n:null),Pe(ne(ne(W,e,Z),l,Z),t,n)},Nl=(e,l,t,n,s)=>ne(ne(ne(k,e,Z),l,Z),t,(()=>[n,0]))[1]=s,jl=(e,l)=>Pe(N,e,l),$l=(e,l,t)=>ne(ve,e,(()=>[l,0]))[1]=t,ql=(e,l,t,n,s)=>(O(ne(ne(ne(he,e,Z),l,Z),t,(()=>[])),n),s),Bl=(e,l,t)=>(O(ne(ge,e,(()=>[])),l),t),Gl=(e,l,t)=>L(ee(ee(ee(k,e),l),t),(([e,l])=>[!0,e,l]),(()=>[!1,...Ie(ct(e,l,t))])),Kl=e=>L(ee(ve,e),(([e,l])=>[!0,e,l]),(()=>[!1,...Ie(vt(e))])),Ql=e=>Q(he)||Q(el[e])?0:X(e?ie(he):he,((l,t)=>X(l,((l,n)=>X(l,((l,s)=>il(el[e],[t,n,s],l))))))),Ul=e=>Q(ge)||Q(ll[e])?0:X(e?ue(ge):ge,((l,t)=>il(ll[e],[t],l))),Xl=(e,l,t,n)=>{if(!Q(e))return il(l,n,(()=>ae(e))),le(e,((e,l)=>il(t,[...null!=n?n:[],e],1==l))),1},Yl=e=>{const l=ht();l!=I&&il(ke[e],void 0,l);const t=Q(Qe[e]),n=Q(Ye[e])&&Q(Ze[e])&&Q(Ke[e])&&Q(Ue[e])&&Q(qe[e])&&Q(Be[e])&&Q(Ge[e])&&t&&Q(Ne[e])&&Q(je[e]),s=Q(_e[e])&&Q(Xe[e])&&Q($e[e])&&Q(De[e]);if(!n||!s){const l=e?[ue(p),ce(x),ue(z),ce(A),ie(W),ie(k)]:[p,x,z,A,W,k];if(!n){Xl(l[0],Ne[e],je[e]),X(l[1],((l,t)=>Xl(l,qe[e],Be[e],[t]))),X(l[2],((l,t)=>{0!=l&&il(Ge[e],[t],at(t))}));const n=be();X(l[3],((l,s)=>{Xl(l,Ke[e],Ue[e],[s])&&!t&&(il(Qe[e],[s,null]),Ve(n,s))})),t||X(l[5],((l,t)=>{if(!K(n,t)){const n=be();X(l,(e=>X(e,(([l,t],s)=>t!==l?Ve(n,s):Y(e,s))))),X(n,(l=>il(Qe[e],[t,l])))}})),X(l[4],((l,t)=>X(l,((l,n)=>Xl(l,Ye[e],Ze[e],[t,n])))))}if(!s){let t;X(l[5],((l,n)=>{let s;X(l,((l,a)=>{let r;X(l,(([l,o],u)=>{o!==l&&(il(_e[e],[n,a,u],o,l,Gl),t=s=r=1)})),r&&il(Xe[e],[n,a],Gl)})),s&&il($e[e],[n],Gl)})),t&&il(De[e],void 0,Gl)}}},Zl=e=>{const l=bt();l!=R&&il(tl[e],void 0,l);const t=Q(sl[e])&&Q(al[e]),n=Q(rl[e])&&Q(nl[e]);if(!t||!n){const l=e?[ue(N),ue(ve)]:[N,ve];if(t||Xl(l[0],sl[e],al[e]),!n){let t;X(l[1],(([l,n],s)=>{n!==l&&(il(rl[e],[s],n,l,Kl),t=1)})),t&&il(nl[e],void 0,Kl)}}},_l=(e,...l)=>(Ht((()=>e(...F(l,S)))),Ot),et=()=>[ae(k,((e,l)=>-1===ee(p,l)?null:ae(e,((e,t)=>-1===ee(ee(A,l),t)?null:ae(e,(([,e])=>null!=e?e:null),((e,l)=>pe(l)))),B)),B),ae(ve,(([,e])=>null!=e?e:null),((e,l)=>pe(l)))],lt=()=>({cellsTouched:a,valuesTouched:c,changedCells:oe(k,me,pe),invalidCells:oe(he),changedValues:ae(ve,me,pe),invalidValues:ae(ge),changedTableIds:ae(p),changedRowIds:re(A),changedCellIds:oe(W),changedValueIds:ae(N)}),tt=()=>oe(Ae),nt=()=>_(Ae),st=e=>_(ee(ze,S(e))),at=e=>G(ee(Ae,S(e))),rt=e=>_(ee(Ae,S(e))),ot=(e,l,t,n=0,s)=>{return F(E((r=ee(Ae,S(e)),o=(e,t)=>[y(l)?t:ee(e,S(l)),t],a=([e],[l])=>{return((null!=(n=e)?n:0)<(null!=(s=l)?s:0)?-1:1)*(t?-1:1);var n,s},F([...null!=(u=null==r?void 0:r.entries())?u:[]],(([e,l])=>o(l,e))).sort(a)),n,y(s)?s:n+s),(([,e])=>e));var a,r,o,u},ut=(e,l)=>_(ee(ee(Ae,S(e)),S(l))),ct=(e,l,t)=>ee(ee(ee(Ae,S(e)),S(l)),S(t)),it=()=>ae(We),dt=()=>_(We),vt=e=>ee(We,S(e)),ht=()=>!Q(Ae),gt=e=>K(Ae,S(e)),Ct=(e,l)=>K(ee(ze,S(e)),S(l)),Tt=(e,l)=>K(ee(Ae,S(e)),S(l)),ft=(e,l,t)=>K(ee(ee(Ae,S(e)),S(l)),S(t)),bt=()=>!Q(We),Vt=e=>K(We,S(e)),wt=e=>_l((()=>(e=>He(e,gl,ql))(e)?ml(e):0)),St=e=>_l((()=>fl(e)?El(e):0)),It=e=>{try{Rl(Ee(e))}catch(e){}return Ot},Rt=l=>_l((()=>{if((e=He(l,(e=>He(e,hl))))&&(Sl(l),!Q(Ae))){const e=tt();pt(),wt(e)}})),mt=e=>_l((()=>{if(t=(e=>He(e,hl))(e)){const l=it();Et(),Jt(),t=!0,Il(e),St(l)}})),pt=()=>_l((()=>ml({}))),yt=e=>_l((e=>K(Ae,e)?Ol(e):0),e),Lt=(e,l)=>_l(((e,l)=>L(ee(Ae,e),(t=>K(t,l)?xl(e,t,l):0))),e,l),Jt=()=>_l((()=>El({}))),Mt=()=>_l((()=>{Sl({}),e=!1})),Et=()=>_l((()=>{Il({}),t=!1})),Ht=(e,l)=>{if(-1!=m){Pt();const t=e();return Ft(l),t}},Pt=()=>(-1!=m&&m++,1==m&&il(ol,void 0,et,lt),Ot),Ft=e=>(m>0&&(m--,0==m&&(a=!Q(k),c=!Q(ve),m=1,Ql(1),a&&Yl(1),Ul(1),c&&Zl(1),(null==e?void 0:e(et,lt))&&(X(k,((e,l)=>X(e,((e,t)=>X(e,(([e],n)=>Le(Ot,l,t,n,e))))))),X(ve,(([e],l)=>Je(Ot,l,e))),a=c=!1),il(ul[0],void 0,et,lt),m=-1,Ql(0),a&&Yl(0),Ul(0),c&&Zl(0),il(ul[1],void 0,et,lt),null==n||n(Ot,et,lt),m=0,a=c=!1,I=ht(),R=bt(),P([p,x,z,A,W,k,he,N,ve,ge],U))),Ot),Ot={getContent:()=>[tt(),it()],getTables:tt,getTableIds:nt,getTable:e=>re(ee(Ae,S(e))),getTableCellIds:st,getRowCount:at,getRowIds:rt,getSortedRowIds:ot,getRow:(e,l)=>ae(ee(ee(Ae,S(e)),S(l))),getCellIds:ut,getCell:ct,getValues:it,getValueIds:dt,getValue:vt,hasTables:ht,hasTable:gt,hasTableCell:Ct,hasRow:Tt,hasCell:ft,hasValues:bt,hasValue:Vt,getTablesJson:()=>Me(Ae),getValuesJson:()=>Me(We),getJson:()=>Me([Ae,We]),getTablesSchemaJson:()=>Me(Ce),getValuesSchemaJson:()=>Me(fe),getSchemaJson:()=>Me([Ce,fe]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,l])=>_l((()=>{(B(e)?pt:wt)(e),(B(l)?Jt:St)(l)})),setTables:wt,setTable:(e,l)=>_l((e=>gl(l,e)?pl(e,l):0),e),setRow:(e,l,t)=>_l(((e,l)=>Cl(e,l,t)?yl(e,Fl(e),l,t):0),e,l),addRow:(e,l,t=!0)=>Ht((()=>{let n;return Cl(e,n,l)&&(e=S(e),yl(e,Fl(e),n=Pl(e,t?1:0),l)),n})),setPartialRow:(e,l,t)=>_l(((e,l)=>{if(Cl(e,l,t,1)){const n=Fl(e);q(t,((t,s)=>Jl(e,n,l,s,t)))}}),e,l),setCell:(e,l,t,n)=>_l(((e,l,t)=>L(Tl(e,l,t,M(n)?n(ct(e,l,t)):n),(n=>Jl(e,Fl(e),l,t,n)))),e,l,t),setValues:St,setPartialValues:e=>_l((()=>fl(e,1)?q(e,((e,l)=>Hl(l,e))):0)),setValue:(e,l)=>_l((e=>L(bl(e,M(l)?l(vt(e)):l),(l=>Hl(e,l)))),e),setTransactionChanges:e=>_l((()=>{q(e[0],((e,l)=>y(e)?yt(l):q(e,((e,t)=>y(e)?Lt(l,t):q(e,((e,n)=>Le(Ot,l,t,n,e))))))),q(e[1],((e,l)=>Je(Ot,l,e)))})),setTablesJson:It,setValuesJson:e=>{try{Ml(Ee(e))}catch(e){}return Ot},setJson:e=>_l((()=>{try{const[l,t]=Ee(e);Rl(l),Ml(t)}catch(l){It(e)}})),setTablesSchema:Rt,setValuesSchema:mt,setSchema:(e,l)=>_l((()=>{Rt(e),mt(l)})),delTables:pt,delTable:yt,delRow:Lt,delCell:(e,l,t,n)=>_l(((e,l,t)=>L(ee(Ae,e),(s=>L(ee(s,l),(a=>K(a,t)?zl(e,s,l,a,t,n):0))))),e,l,t),delValues:Jt,delValue:e=>_l((e=>K(We,e)?Al(e):0),e),delTablesSchema:Mt,delValuesSchema:Et,delSchema:()=>_l((()=>{Mt(),Et()})),transaction:Ht,startTransaction:Pt,finishTransaction:Ft,forEachTable:e=>X(Ae,((l,t)=>e(t,(e=>X(l,((l,t)=>e(t,(e=>le(l,e))))))))),forEachTableCell:(e,l)=>le(ee(ze,S(e)),l),forEachRow:(e,l)=>X(ee(Ae,S(e)),((e,t)=>l(t,(l=>le(e,l))))),forEachCell:(e,l,t)=>le(ee(ee(Ae,S(e)),S(l)),t),forEachValue:e=>le(We,e),addSortedRowIdsListener:(e,l,t,n,s,a,r)=>{let o=ot(e,l,t,n,s);return cl((()=>{const r=ot(e,l,t,n,s);var u,c,i;c=o,H(u=r)===H(c)&&(i=(e,l)=>c[l]===e,u.every(i))||(o=r,a(Ot,e,l,t,n,s,o))}),Qe[r?1:0],[e,l],[nt])},addStartTransactionListener:e=>cl(e,ol),addWillFinishTransactionListener:e=>cl(e,ul[0]),addDidFinishTransactionListener:e=>cl(e,ul[1]),callListener:e=>(vl(e),Ot),delListener:e=>(dl(e),Ot),getListenerStats:()=>({}),createStore:Fe,addListener:cl,callListeners:il,addPostTransactionListener:e=>{n=e}};return q({[u+d]:[0,ke,[],()=>[ht()]],[d]:[0,De],[v]:[0,Ne],[u+i]:[1,je,[nt],e=>[gt(...e)]],[i]:[1,$e,[nt]],[i+f]:[1,qe,[nt]],[u+i+T]:[2,Be,[nt,st],e=>[Ct(...e)]],[g]:[1,Ge,[nt]],[C]:[1,Ke,[nt]],[u+h]:[2,Ue,[nt,rt],e=>[Tt(...e)]],[h]:[2,Xe,[nt,rt]],[f]:[2,Ye,[nt,rt]],[u+T]:[3,Ze,[nt,rt,ut],e=>[ft(...e)]],[T]:[3,_e,[nt,rt,ut],e=>Ie(ct(...e))],InvalidCell:[3,el],[u+V]:[0,tl,[],()=>[bt()]],[V]:[0,nl],[w]:[0,sl],[u+b]:[1,al,[dt],e=>[Vt(...e)]],[b]:[1,rl,[dt],e=>Ie(vt(e[0]))],InvalidValue:[1,ll]},(([e,l,t,n],s)=>{Ot["add"+s+"Listener"]=(...s)=>cl(s[e],l[s[e+1]?1:0],e>0?E(s,0,e):void 0,t,n)})),D(Ot)};var Oe=Math.pow;const xe=Oe(2,36),ze=Oe(2,30),Ae=Oe(2,24),We=Oe(2,18),ke=Oe(2,12),De=Oe(2,6),Ne=e=>String.fromCharCode(48+(63&e)),je=(e,l)=>m(e,l)-48,$e={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},qe=e=>{let t=1;const[n,s]=(e=>{let l=0,t=0;const n=(s=(e,l)=>(e<<5)+e^m(l),((e,l="",t)=>e.split(l,t))(e).reduce(s,5381)>>>0);var s;const a=e=>{const n=l,[s,a]=y(e)?[0,0]:[je(r=e,0)*xe+je(r,1)*ze+je(r,2)*Ae+je(r,3)*We+je(r,4)*ke+je(r,5)*De+je(r,6),je(r,7)*We+je(r,8)*ke+je(r,9)*De+je(r,10),je(r,11)*Ae+je(r,12)*We+je(r,13)*ke+je(r,14)*De+je(r,15)];var r;l=Math.max(n,s,Date.now()),t=l==n?l==s?Math.max(t,a):t:l==s?a:-1};return[()=>{return a(),s=++t,r=n,Ne((e=l)/xe)+Ne(e/ze)+Ne(e/Ae)+Ne(e/We)+Ne(e/ke)+Ne(e/De)+Ne(e)+Ne(s/We)+Ne(s/ke)+Ne(s/De)+Ne(s)+Ne(r/Ae)+Ne(r/We)+Ne(r/ke)+Ne(r/De)+Ne(r);var e,s,r},a]})(e),a=Fe(),r=[l,[he(),he()]],o=e=>{const l=[{},{}];return s(e[0]),Te(e,r,(([e,t],[n,s])=>[Te(e,n,((e,t)=>fe(e,t,l[0],((e,t,n)=>fe(e,t,l[0][n],((e,t,s)=>fe(e,t,l[0][n][s]))))))),Te(t,s,((e,t)=>fe(e,t,l[1])))])),t=0,a.setTransactionChanges(l),t=1,u},u={getMergeableContent:()=>Ce(r,(([e,l],t)=>[t,[ge(e,(e=>ge(e,(e=>ge(e,me))))),ge(l,me)]])),applyMergeableContent:o,merge:e=>{const l=u.getMergeableContent(),t=e.getMergeableContent();return e.applyMergeableContent(l),o(t)}};return a.addPostTransactionListener(((e,l)=>{if(t){const e=n(),[t,s]=l(),[a,o]=r[1];r[0]=e,B(t)||(a[0]=e,q(t,((l,t)=>{var n;const s=ne(a[1],t,ve);if(s[0]=e,y(l))s[1]=null;else{const t=null!=(n=s[1])?n:s[1]=Z();q(l,((l,n)=>{var s;const a=ne(t,n,ve);if(a[0]=e,y(l))a[1]=null;else{const t=null!=(s=a[1])?s:a[1]=Z();q(l,((l,n)=>te(t,n,[e,l])))}}))}}))),B(s)||(o[0]=e,q(s,((l,t)=>{te(o[1],t,[e,l])})))}})),q(a,((e,l)=>u[l]=I(l,"set")||I(l,"del")||R(l,"Transaction")||"callListener"==l?(...l)=>(e(...l),u):I(l,"add")&&R(l,"Listener")?(...t)=>{var n;const s=null!=(n=$e[E(l,3,-8)])?n:0,a=t[s];return t[s]=(e,...l)=>a(u,...l),e(...t)}:e)),D(u)};export{qe as createMergeableStore};
Binary file