tinybase 5.0.0-beta.2 → 5.0.0-beta.4

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 (274) hide show
  1. package/lib/cjs/mergeable-store.cjs +1 -1
  2. package/lib/cjs/mergeable-store.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  4. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  6. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  8. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  10. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  12. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  14. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-file.cjs +1 -1
  16. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  18. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  20. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
  22. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  24. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  25. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  26. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  27. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  28. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  29. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  30. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  31. package/lib/cjs/persisters.cjs +1 -1
  32. package/lib/cjs/persisters.cjs.gz +0 -0
  33. package/lib/cjs/store.cjs +1 -1
  34. package/lib/cjs/store.cjs.gz +0 -0
  35. package/lib/cjs/tinybase.cjs +1 -1
  36. package/lib/cjs/tinybase.cjs.gz +0 -0
  37. package/lib/cjs/tools.cjs +1 -1
  38. package/lib/cjs/tools.cjs.gz +0 -0
  39. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  40. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  41. package/lib/cjs-es6/mergeable-store.cjs +1 -1
  42. package/lib/cjs-es6/mergeable-store.cjs.gz +0 -0
  43. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  44. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  45. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  46. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  47. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  48. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  49. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  50. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  51. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  52. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  53. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  54. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  55. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  56. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  57. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  58. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  59. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  60. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  61. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
  62. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  63. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  64. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  65. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  66. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  67. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  68. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  69. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  70. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  71. package/lib/cjs-es6/persisters.cjs +1 -1
  72. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  73. package/lib/cjs-es6/store.cjs +1 -1
  74. package/lib/cjs-es6/store.cjs.gz +0 -0
  75. package/lib/cjs-es6/tinybase.cjs +1 -1
  76. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  77. package/lib/cjs-es6/tools.cjs +1 -1
  78. package/lib/cjs-es6/tools.cjs.gz +0 -0
  79. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  80. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  81. package/lib/debug/mergeable-store.js +223 -211
  82. package/lib/debug/persisters/persister-automerge.js +62 -41
  83. package/lib/debug/persisters/persister-browser.js +48 -16
  84. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +97 -52
  85. package/lib/debug/persisters/persister-electric-sql.js +97 -52
  86. package/lib/debug/persisters/persister-expo-sqlite-next.js +97 -52
  87. package/lib/debug/persisters/persister-expo-sqlite.js +97 -52
  88. package/lib/debug/persisters/persister-file.js +47 -16
  89. package/lib/debug/persisters/persister-indexed-db.js +48 -18
  90. package/lib/debug/persisters/persister-partykit-client.js +46 -21
  91. package/lib/debug/persisters/persister-partykit-server.js +8 -18
  92. package/lib/debug/persisters/persister-remote.js +48 -16
  93. package/lib/debug/persisters/persister-sqlite-wasm.js +97 -52
  94. package/lib/debug/persisters/persister-sqlite3.js +97 -52
  95. package/lib/debug/persisters/persister-yjs.js +64 -40
  96. package/lib/debug/persisters.js +47 -16
  97. package/lib/debug/store.js +61 -83
  98. package/lib/debug/tinybase.js +264 -227
  99. package/lib/debug/tools.js +9 -11
  100. package/lib/debug/ui-react-dom.js +104 -99
  101. package/lib/es6/mergeable-store.js +1 -1
  102. package/lib/es6/mergeable-store.js.gz +0 -0
  103. package/lib/es6/persisters/persister-automerge.js +1 -1
  104. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  105. package/lib/es6/persisters/persister-browser.js +1 -1
  106. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  107. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  108. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  109. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  110. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  111. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  112. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  113. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  114. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  115. package/lib/es6/persisters/persister-file.js +1 -1
  116. package/lib/es6/persisters/persister-file.js.gz +0 -0
  117. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  118. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  119. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  120. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  121. package/lib/es6/persisters/persister-partykit-server.js +1 -1
  122. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  123. package/lib/es6/persisters/persister-remote.js +1 -1
  124. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  125. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  126. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  127. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  128. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  129. package/lib/es6/persisters/persister-yjs.js +1 -1
  130. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  131. package/lib/es6/persisters.js +1 -1
  132. package/lib/es6/persisters.js.gz +0 -0
  133. package/lib/es6/store.js +1 -1
  134. package/lib/es6/store.js.gz +0 -0
  135. package/lib/es6/tinybase.js +1 -1
  136. package/lib/es6/tinybase.js.gz +0 -0
  137. package/lib/es6/tools.js +1 -1
  138. package/lib/es6/tools.js.gz +0 -0
  139. package/lib/es6/ui-react-dom-debug.js +1 -1
  140. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  141. package/lib/mergeable-store.js +1 -1
  142. package/lib/mergeable-store.js.gz +0 -0
  143. package/lib/persisters/persister-automerge.js +1 -1
  144. package/lib/persisters/persister-automerge.js.gz +0 -0
  145. package/lib/persisters/persister-browser.js +1 -1
  146. package/lib/persisters/persister-browser.js.gz +0 -0
  147. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  148. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  149. package/lib/persisters/persister-electric-sql.js +1 -1
  150. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  151. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  152. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  153. package/lib/persisters/persister-expo-sqlite.js +1 -1
  154. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  155. package/lib/persisters/persister-file.js +1 -1
  156. package/lib/persisters/persister-file.js.gz +0 -0
  157. package/lib/persisters/persister-indexed-db.js +1 -1
  158. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  159. package/lib/persisters/persister-partykit-client.js +1 -1
  160. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  161. package/lib/persisters/persister-partykit-server.js +1 -1
  162. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  163. package/lib/persisters/persister-remote.js +1 -1
  164. package/lib/persisters/persister-remote.js.gz +0 -0
  165. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  166. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  167. package/lib/persisters/persister-sqlite3.js +1 -1
  168. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  169. package/lib/persisters/persister-yjs.js +1 -1
  170. package/lib/persisters/persister-yjs.js.gz +0 -0
  171. package/lib/persisters.js +1 -1
  172. package/lib/persisters.js.gz +0 -0
  173. package/lib/store.js +1 -1
  174. package/lib/store.js.gz +0 -0
  175. package/lib/tinybase.js +1 -1
  176. package/lib/tinybase.js.gz +0 -0
  177. package/lib/tools.js +1 -1
  178. package/lib/tools.js.gz +0 -0
  179. package/lib/types/mergeable-store.d.ts +43 -13
  180. package/lib/types/persisters/persister-browser.d.ts +2 -2
  181. package/lib/types/persisters/persister-file.d.ts +1 -1
  182. package/lib/types/persisters/persister-partykit-server.d.ts +7 -8
  183. package/lib/types/persisters.d.ts +61 -30
  184. package/lib/types/store.d.ts +153 -111
  185. package/lib/types/tools.d.ts +2 -2
  186. package/lib/types/with-schemas/mergeable-store.d.ts +46 -13
  187. package/lib/types/with-schemas/persisters/persister-browser.d.ts +2 -2
  188. package/lib/types/with-schemas/persisters/persister-file.d.ts +1 -1
  189. package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +10 -11
  190. package/lib/types/with-schemas/persisters.d.ts +88 -45
  191. package/lib/types/with-schemas/store.d.ts +165 -136
  192. package/lib/types/with-schemas/tools.d.ts +2 -2
  193. package/lib/umd/mergeable-store.js +1 -1
  194. package/lib/umd/mergeable-store.js.gz +0 -0
  195. package/lib/umd/persisters/persister-automerge.js +1 -1
  196. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  197. package/lib/umd/persisters/persister-browser.js +1 -1
  198. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  199. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  200. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  201. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  202. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  203. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  204. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  205. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  206. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  207. package/lib/umd/persisters/persister-file.js +1 -1
  208. package/lib/umd/persisters/persister-file.js.gz +0 -0
  209. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  210. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  211. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  212. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  213. package/lib/umd/persisters/persister-partykit-server.js +1 -1
  214. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  215. package/lib/umd/persisters/persister-remote.js +1 -1
  216. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  217. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  218. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  219. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  220. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  221. package/lib/umd/persisters/persister-yjs.js +1 -1
  222. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  223. package/lib/umd/persisters.js +1 -1
  224. package/lib/umd/persisters.js.gz +0 -0
  225. package/lib/umd/store.js +1 -1
  226. package/lib/umd/store.js.gz +0 -0
  227. package/lib/umd/tinybase.js +1 -1
  228. package/lib/umd/tinybase.js.gz +0 -0
  229. package/lib/umd/tools.js +1 -1
  230. package/lib/umd/tools.js.gz +0 -0
  231. package/lib/umd/ui-react-dom-debug.js +1 -1
  232. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  233. package/lib/umd-es6/mergeable-store.js +1 -1
  234. package/lib/umd-es6/mergeable-store.js.gz +0 -0
  235. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  236. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  237. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  238. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  239. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  240. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  241. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  242. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  243. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  244. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  245. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  246. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  247. package/lib/umd-es6/persisters/persister-file.js +1 -1
  248. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  249. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  250. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  251. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  252. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  253. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
  254. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  255. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  256. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  257. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  258. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  259. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  260. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  261. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  262. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  263. package/lib/umd-es6/persisters.js +1 -1
  264. package/lib/umd-es6/persisters.js.gz +0 -0
  265. package/lib/umd-es6/store.js +1 -1
  266. package/lib/umd-es6/store.js.gz +0 -0
  267. package/lib/umd-es6/tinybase.js +1 -1
  268. package/lib/umd-es6/tinybase.js.gz +0 -0
  269. package/lib/umd-es6/tools.js +1 -1
  270. package/lib/umd-es6/tools.js.gz +0 -0
  271. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  272. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  273. package/package.json +29 -25
  274. package/readme.md +2 -2
@@ -101,6 +101,7 @@ const A_FUNCTION_FOR = 'A function for';
101
101
  const AND_REGISTERS =
102
102
  ', and registers a listener so that any changes to that result will cause a re-render';
103
103
  const CALLBACK = 'Callback';
104
+ const CHANGES = 'Changes';
104
105
  const COUNT = 'Count';
105
106
  const DEL = 'Del';
106
107
  const DEPS = 'Deps';
@@ -128,7 +129,6 @@ const SORTED_ARGS = ', descending?: boolean, offset?: number, limit?: number';
128
129
  const SQUARE_BRACKETS = '[]';
129
130
  const THE_STORE = 'the Store';
130
131
  const TRANSACTION = 'Transaction';
131
- const TRANSACTION_CHANGES = TRANSACTION + 'Changes';
132
132
  const TRANSACTION_ = lower(TRANSACTION);
133
133
  const TRANSACTION_DOC =
134
134
  'Execute a ' + TRANSACTION_ + ' to make multiple mutations';
@@ -890,8 +890,7 @@ const getTypeFunctions = (
890
890
  const getTransactionListenerType = (storeInstance, storeType) =>
891
891
  addType(
892
892
  TRANSACTION + LISTENER,
893
- `(${storeInstance}: ${storeType}, getTransactionChanges: GetTransactionChanges, getTransactionLog: GetTransactionLog)` +
894
- RETURNS_VOID,
893
+ `(${storeInstance}: ${storeType})` + RETURNS_VOID,
895
894
  A_FUNCTION_FOR + ' listening to the completion of a ' + TRANSACTION_,
896
895
  );
897
896
  return [getTablesTypes, getValuesTypes, getTransactionListenerType];
@@ -1701,13 +1700,13 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
1701
1700
  '[tables, values]',
1702
1701
  );
1703
1702
  addProxyMethod(
1704
- 2,
1703
+ 7,
1705
1704
  EMPTY_STRING,
1706
- TRANSACTION_CHANGES,
1705
+ 'applyChanges',
1707
1706
  storeType,
1708
- `Applies a set of ${TRANSACTION_CHANGES} to the Store`,
1709
- 'transactionChanges: ' + TRANSACTION_CHANGES,
1710
- 'transactionChanges',
1707
+ `Applies a set of ${CHANGES} to the Store`,
1708
+ 'changes: ' + CHANGES,
1709
+ 'changes',
1711
1710
  );
1712
1711
  mapForEach(mapCellOrValueTypes, (type, mapCellType) =>
1713
1712
  addType(
@@ -1724,9 +1723,8 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
1724
1723
  'IdOrNull',
1725
1724
  JSON$1,
1726
1725
  'Store',
1727
- TRANSACTION_CHANGES,
1726
+ CHANGES,
1728
1727
  );
1729
- addImport(0, TINYBASE, 'Get' + TRANSACTION_CHANGES, 'GetTransactionLog');
1730
1728
  addProxyMethod(
1731
1729
  0,
1732
1730
  EMPTY_STRING,
@@ -3111,7 +3109,7 @@ const getStoreUiReactApi = (
3111
3109
  PROVIDER,
3112
3110
  `{${storeInstance}, ${storeInstance}ById, children}: ` +
3113
3111
  providerPropsType +
3114
- ' & {children: React.ReactNode}',
3112
+ ' & {readonly children: React.ReactNode}',
3115
3113
  [
3116
3114
  '{',
3117
3115
  USE_CONTEXT,
@@ -138,8 +138,7 @@ const isObject = (obj) =>
138
138
  () => true,
139
139
  );
140
140
  const objNew = (entries = []) => object.fromEntries(entries);
141
- const objGet = (obj, id) => ifNotUndefined(obj, (obj2) => obj2[id]);
142
- const objHas = (obj, id) => !isUndefined(objGet(obj, id));
141
+ const objHas = (obj, id) => id in obj;
143
142
  const objDel = (obj, id) => {
144
143
  delete obj[id];
145
144
  return obj;
@@ -1592,6 +1591,23 @@ const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
1592
1591
 
1593
1592
  const scheduleRunning = mapNew();
1594
1593
  const scheduleActions = mapNew();
1594
+ const isMergeable = (contentOrChanges) => isString(contentOrChanges?.[0]);
1595
+ const getStoreFunctions = (supportsMergeableStore, store) =>
1596
+ !supportsMergeableStore || isUndefined(store.getMergeableContent)
1597
+ ? [
1598
+ 0,
1599
+ store.getContent,
1600
+ store.getTransactionChanges,
1601
+ ([changedTables, changedValues]) =>
1602
+ !objIsEmpty(changedTables) || !objIsEmpty(changedValues),
1603
+ ]
1604
+ : [
1605
+ 1,
1606
+ store.getMergeableContent,
1607
+ store.getTransactionMergeableChanges,
1608
+ ([, [[, changedTables], [, changedValues]]]) =>
1609
+ !objIsEmpty(changedTables) || !objIsEmpty(changedValues),
1610
+ ];
1595
1611
  const createCustomPersister = (
1596
1612
  store,
1597
1613
  getPersisted,
@@ -1599,6 +1615,7 @@ const createCustomPersister = (
1599
1615
  addPersisterListener,
1600
1616
  delPersisterListener,
1601
1617
  onIgnoredError,
1618
+ supportsMergeableStore,
1602
1619
  [getThing, thing] = [],
1603
1620
  scheduleId = [],
1604
1621
  ) => {
@@ -1611,6 +1628,8 @@ const createCustomPersister = (
1611
1628
  let listeningHandle;
1612
1629
  mapEnsure(scheduleRunning, scheduleId, () => 0);
1613
1630
  mapEnsure(scheduleActions, scheduleId, () => []);
1631
+ const [isMergeableStore, getContent, getChanges, hasChanges] =
1632
+ getStoreFunctions(supportsMergeableStore, store);
1614
1633
  const run = async () => {
1615
1634
  /* istanbul ignore else */
1616
1635
  if (!mapGet(scheduleRunning, scheduleId)) {
@@ -1646,7 +1665,10 @@ const createCustomPersister = (
1646
1665
  load: async (initialTables, initialValues) =>
1647
1666
  await loadLock(async () => {
1648
1667
  try {
1649
- store.setContent(await getPersisted());
1668
+ const content = await getPersisted();
1669
+ (isMergeableStore && isMergeable(content)
1670
+ ? store.setMergeableContent
1671
+ : store.setContent)(content);
1650
1672
  } catch {
1651
1673
  store.setContent([initialTables, initialValues]);
1652
1674
  }
@@ -1656,16 +1678,21 @@ const createCustomPersister = (
1656
1678
  await persister.load(initialTables, initialValues);
1657
1679
  listening = 1;
1658
1680
  listeningHandle = addPersisterListener(
1659
- async (getContent, getTransactionChanges) => {
1660
- if (getTransactionChanges) {
1661
- const transactionChanges = getTransactionChanges();
1681
+ async (getContent2, getChanges2) => {
1682
+ if (getChanges2) {
1683
+ const changes = getChanges2();
1662
1684
  await loadLock(async () =>
1663
- store.setTransactionChanges(transactionChanges),
1685
+ (isMergeableStore && isMergeable(changes)
1686
+ ? store.applyMergeableChanges
1687
+ : store.applyChanges)(changes),
1664
1688
  );
1665
1689
  } else {
1666
1690
  await loadLock(async () => {
1667
1691
  try {
1668
- store.setContent(getContent?.() ?? (await getPersisted()));
1692
+ const content = getContent2?.() ?? (await getPersisted());
1693
+ (isMergeableStore && isMergeable(content)
1694
+ ? store.setMergeableContent
1695
+ : store.setContent)(content);
1669
1696
  } catch (error) {
1670
1697
  onIgnoredError?.(error);
1671
1698
  }
@@ -1683,7 +1710,7 @@ const createCustomPersister = (
1683
1710
  }
1684
1711
  return persister;
1685
1712
  },
1686
- save: async (getTransactionChanges) => {
1713
+ save: async (getChanges2) => {
1687
1714
  /* istanbul ignore else */
1688
1715
  if (loadSave != 1) {
1689
1716
  loadSave = 2;
@@ -1692,7 +1719,7 @@ const createCustomPersister = (
1692
1719
  }
1693
1720
  await persister.schedule(async () => {
1694
1721
  try {
1695
- await setPersisted(store.getContent, getTransactionChanges);
1722
+ await setPersisted(getContent, getChanges2);
1696
1723
  } catch (error) {
1697
1724
  /* istanbul ignore next */
1698
1725
  onIgnoredError?.(error);
@@ -1704,14 +1731,12 @@ const createCustomPersister = (
1704
1731
  },
1705
1732
  startAutoSave: async () => {
1706
1733
  await persister.stopAutoSave().save();
1707
- listenerId = store.addDidFinishTransactionListener(
1708
- (_store, getTransactionChanges) => {
1709
- const [tableChanges, valueChanges] = getTransactionChanges();
1710
- if (!objIsEmpty(tableChanges) || !objIsEmpty(valueChanges)) {
1711
- persister.save(() => [tableChanges, valueChanges]);
1712
- }
1713
- },
1714
- );
1734
+ listenerId = store.addDidFinishTransactionListener(() => {
1735
+ const changes = getChanges();
1736
+ if (hasChanges(changes)) {
1737
+ persister.save(() => changes);
1738
+ }
1739
+ });
1715
1740
  return persister;
1716
1741
  },
1717
1742
  stopAutoSave: () => {
@@ -1763,6 +1788,7 @@ const createStoragePersister = (
1763
1788
  addPersisterListener,
1764
1789
  delPersisterListener,
1765
1790
  onIgnoredError,
1791
+ true,
1766
1792
  ['getStorageName', storageName],
1767
1793
  );
1768
1794
  };
@@ -1891,12 +1917,10 @@ const idsChanged = (changedIds, id2, addedOrRemoved) =>
1891
1917
  const createStore = () => {
1892
1918
  let hasTablesSchema;
1893
1919
  let hasValuesSchema;
1894
- let cellsTouched = false;
1895
- let valuesTouched = false;
1896
1920
  let hadTables = false;
1897
1921
  let hadValues = false;
1898
1922
  let transactions = 0;
1899
- let postTransactionListener;
1923
+ let internalListeners = [];
1900
1924
  const changedTableIds = mapNew();
1901
1925
  const changedTableCellIds = mapNew();
1902
1926
  const changedRowCount = mapNew();
@@ -2538,44 +2562,6 @@ const createStore = () => {
2538
2562
  transaction(() => actions(...arrayMap(args, id)));
2539
2563
  return store;
2540
2564
  };
2541
- const getTransactionChanges = () => [
2542
- mapToObj(
2543
- changedCells,
2544
- (table, tableId) =>
2545
- mapGet(changedTableIds, tableId) === -1
2546
- ? null
2547
- : mapToObj(
2548
- table,
2549
- (row, rowId) =>
2550
- mapGet(mapGet(changedRowIds, tableId), rowId) === -1
2551
- ? null
2552
- : mapToObj(
2553
- row,
2554
- ([, newCell]) => newCell ?? null,
2555
- (_, changedCell) => pairIsEqual(changedCell),
2556
- ),
2557
- objIsEmpty,
2558
- ),
2559
- objIsEmpty,
2560
- ),
2561
- mapToObj(
2562
- changedValues,
2563
- ([, newValue]) => newValue ?? null,
2564
- (_, changedValue) => pairIsEqual(changedValue),
2565
- ),
2566
- ];
2567
- const getTransactionLog = () => ({
2568
- cellsTouched,
2569
- valuesTouched,
2570
- changedCells: mapToObj3(changedCells, pairClone, pairIsEqual),
2571
- invalidCells: mapToObj3(invalidCells),
2572
- changedValues: mapToObj(changedValues, pairClone, pairIsEqual),
2573
- invalidValues: mapToObj(invalidValues),
2574
- changedTableIds: mapToObj(changedTableIds),
2575
- changedRowIds: mapToObj2(changedRowIds),
2576
- changedCellIds: mapToObj3(changedCellIds),
2577
- changedValueIds: mapToObj(changedValueIds),
2578
- });
2579
2565
  const getContent = () => [getTables(), getValues()];
2580
2566
  const getTables = () => mapToObj3(tablesMap);
2581
2567
  const getTableIds = () => mapKeys(tablesMap);
@@ -2723,9 +2709,9 @@ const createStore = () => {
2723
2709
  ),
2724
2710
  valueId,
2725
2711
  );
2726
- const setTransactionChanges = (transactionChanges) =>
2712
+ const applyChanges = (changes) =>
2727
2713
  fluentTransaction(() => {
2728
- objToArray(transactionChanges[0], (table, tableId) =>
2714
+ objToArray(changes[0], (table, tableId) =>
2729
2715
  isUndefined(table)
2730
2716
  ? delTable(tableId)
2731
2717
  : objToArray(table, (row, rowId) =>
@@ -2736,7 +2722,7 @@ const createStore = () => {
2736
2722
  ),
2737
2723
  ),
2738
2724
  );
2739
- objToArray(transactionChanges[1], (value, valueId) =>
2725
+ objToArray(changes[1], (value, valueId) =>
2740
2726
  setOrDelValue(store, valueId, value),
2741
2727
  );
2742
2728
  });
@@ -2863,31 +2849,62 @@ const createStore = () => {
2863
2849
  transactions++;
2864
2850
  }
2865
2851
  if (transactions == 1) {
2866
- callListeners(
2867
- startTransactionListeners,
2868
- void 0,
2869
- getTransactionChanges,
2870
- getTransactionLog,
2871
- );
2852
+ callListeners(startTransactionListeners, void 0);
2872
2853
  }
2873
2854
  return store;
2874
2855
  };
2856
+ const getTransactionChanges = () => [
2857
+ mapToObj(
2858
+ changedCells,
2859
+ (table, tableId) =>
2860
+ mapGet(changedTableIds, tableId) === -1
2861
+ ? void 0
2862
+ : mapToObj(
2863
+ table,
2864
+ (row, rowId) =>
2865
+ mapGet(mapGet(changedRowIds, tableId), rowId) === -1
2866
+ ? void 0
2867
+ : mapToObj(
2868
+ row,
2869
+ ([, newCell]) => newCell,
2870
+ (_, changedCell) => pairIsEqual(changedCell),
2871
+ ),
2872
+ objIsEmpty,
2873
+ ),
2874
+ objIsEmpty,
2875
+ ),
2876
+ mapToObj(
2877
+ changedValues,
2878
+ ([, newValue]) => newValue,
2879
+ (_, changedValue) => pairIsEqual(changedValue),
2880
+ ),
2881
+ ];
2882
+ const getTransactionLog = () => [
2883
+ !collIsEmpty(changedCells),
2884
+ !collIsEmpty(changedValues),
2885
+ mapToObj3(changedCells, pairClone, pairIsEqual),
2886
+ mapToObj3(invalidCells),
2887
+ mapToObj(changedValues, pairClone, pairIsEqual),
2888
+ mapToObj(invalidValues),
2889
+ mapToObj(changedTableIds),
2890
+ mapToObj2(changedRowIds),
2891
+ mapToObj3(changedCellIds),
2892
+ mapToObj(changedValueIds),
2893
+ ];
2875
2894
  const finishTransaction = (doRollback) => {
2876
2895
  if (transactions > 0) {
2877
2896
  transactions--;
2878
2897
  if (transactions == 0) {
2879
- cellsTouched = !collIsEmpty(changedCells);
2880
- valuesTouched = !collIsEmpty(changedValues);
2881
2898
  transactions = 1;
2882
2899
  callInvalidCellListeners(1);
2883
- if (cellsTouched) {
2900
+ if (!collIsEmpty(changedCells)) {
2884
2901
  callTabularListenersForChanges(1);
2885
2902
  }
2886
2903
  callInvalidValueListeners(1);
2887
- if (valuesTouched) {
2904
+ if (!collIsEmpty(changedValues)) {
2888
2905
  callValuesListenersForChanges(1);
2889
2906
  }
2890
- if (doRollback?.(getTransactionChanges, getTransactionLog)) {
2907
+ if (doRollback?.(store)) {
2891
2908
  collForEach(changedCells, (table, tableId) =>
2892
2909
  collForEach(table, (row, rowId) =>
2893
2910
  collForEach(row, ([oldCell], cellId) =>
@@ -2895,39 +2912,26 @@ const createStore = () => {
2895
2912
  ),
2896
2913
  ),
2897
2914
  );
2915
+ collClear(changedCells);
2898
2916
  collForEach(changedValues, ([oldValue], valueId) =>
2899
2917
  setOrDelValue(store, valueId, oldValue),
2900
2918
  );
2901
- cellsTouched = valuesTouched = false;
2919
+ collClear(changedValues);
2902
2920
  }
2903
- callListeners(
2904
- finishTransactionListeners[0],
2905
- void 0,
2906
- getTransactionChanges,
2907
- getTransactionLog,
2908
- );
2921
+ callListeners(finishTransactionListeners[0], void 0);
2909
2922
  transactions = -1;
2910
2923
  callInvalidCellListeners(0);
2911
- if (cellsTouched) {
2924
+ if (!collIsEmpty(changedCells)) {
2912
2925
  callTabularListenersForChanges(0);
2913
2926
  }
2914
2927
  callInvalidValueListeners(0);
2915
- if (valuesTouched) {
2928
+ if (!collIsEmpty(changedValues)) {
2916
2929
  callValuesListenersForChanges(0);
2917
2930
  }
2918
- callListeners(
2919
- finishTransactionListeners[1],
2920
- void 0,
2921
- getTransactionChanges,
2922
- getTransactionLog,
2923
- );
2924
- postTransactionListener?.(
2925
- store,
2926
- getTransactionChanges,
2927
- getTransactionLog,
2928
- );
2931
+ internalListeners[0]?.(store);
2932
+ callListeners(finishTransactionListeners[1], void 0);
2933
+ internalListeners[1]?.(store);
2929
2934
  transactions = 0;
2930
- cellsTouched = valuesTouched = false;
2931
2935
  hadTables = hasTables();
2932
2936
  hadValues = hasValues();
2933
2937
  arrayForEach(
@@ -3052,9 +3056,8 @@ const createStore = () => {
3052
3056
  collSize2(startTransactionListeners) +
3053
3057
  pairCollSize2(finishTransactionListeners),
3054
3058
  });
3055
- const addPostTransactionListener = (listener) => {
3056
- postTransactionListener = listener;
3057
- };
3059
+ const setInternalListeners = (preFinishTransaction, postFinishTransaction) =>
3060
+ (internalListeners = [preFinishTransaction, postFinishTransaction]);
3058
3061
  const store = {
3059
3062
  getContent,
3060
3063
  getTables,
@@ -3095,7 +3098,7 @@ const createStore = () => {
3095
3098
  setValues,
3096
3099
  setPartialValues,
3097
3100
  setValue,
3098
- setTransactionChanges,
3101
+ applyChanges,
3099
3102
  setTablesJson,
3100
3103
  setValuesJson,
3101
3104
  setJson,
@@ -3113,6 +3116,8 @@ const createStore = () => {
3113
3116
  delSchema,
3114
3117
  transaction,
3115
3118
  startTransaction,
3119
+ getTransactionChanges,
3120
+ getTransactionLog,
3116
3121
  finishTransaction,
3117
3122
  forEachTable,
3118
3123
  forEachTableCell,
@@ -3130,7 +3135,7 @@ const createStore = () => {
3130
3135
  createStore,
3131
3136
  addListener,
3132
3137
  callListeners,
3133
- addPostTransactionListener,
3138
+ setInternalListeners,
3134
3139
  };
3135
3140
  objToArray(
3136
3141
  {
@@ -1 +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};
1
+ const e=e=>typeof e,t="",l=e(t),n=e(!0),s=e(0),a=e(e),r="type",o="default",u="Has",i="Ids",c="Table",d=c+"s",v=c+i,g="Row",h=g+"Count",C=g+i,f="Cell",T=f+i,b="Value",V=b+"s",p=b+i,w=e=>t+e,S=(e,t)=>e.startsWith(t),y=(e,t)=>e.endsWith(t),I=(e,t=0)=>e.charCodeAt(t),m=Math.max,R=isFinite,L=e=>null==e,J=(e,t,l)=>L(e)?null==l?void 0:l():t(e),M=e=>e==l||e==n,E=t=>e(t)==a,H=(e,t,l)=>e.slice(t,l),F=e=>e.length,O=(e,t)=>e.forEach(t),z=(e,t)=>e.map(t),A=(e,...t)=>e.push(...t),P=Object,W=e=>P.getPrototypeOf(e),k=P.entries,x=P.keys,D=P.isFrozen,N=P.freeze,j=e=>!L(e)&&J(W(e),(e=>e==P.prototype||L(W(e))),(()=>!0)),$=(e=[])=>P.fromEntries(e),q=(e,t)=>t in e,B=(e,t)=>(delete e[t],e),G=(e,t)=>O(k(e),(([e,l])=>t(l,e))),K=(e,t)=>z(k(e),(([e,l])=>t(l,e))),Q=e=>j(e)&&0==(e=>F(x(e)))(e),U=e=>{var t;return null!=(t=null==e?void 0:e.size)?t:0},X=(e,t)=>{var l;return null!=(l=null==e?void 0:e.has(t))&&l},Y=e=>L(e)||0==U(e),Z=e=>e.clear(),_=(e,t)=>null==e?void 0:e.forEach(t),ee=(e,t)=>null==e?void 0:e.delete(t),te=e=>new Map(e),le=e=>{var t;return[...null!=(t=null==e?void 0:e.keys())?t:[]]},ne=(e,t)=>null==e?void 0:e.get(t),se=(e,t)=>_(e,((e,l)=>t(l,e))),ae=(e,t,l)=>L(l)?(ee(e,t),e):null==e?void 0:e.set(t,l),re=(e,t,l)=>(X(e,t)||ae(e,t,l()),ne(e,t)),oe=(e,t,l,n=ae)=>(K(t,((t,n)=>l(e,n,t))),se(e,(l=>q(t,l)?0:n(e,l))),e),ue=(e,t,l)=>{const n={};return _(e,((e,s)=>{const a=t?t(e,s):e;!(null==l?void 0:l(a,e))&&(n[s]=a)})),n},ie=(e,t,l)=>ue(e,(e=>ue(e,t,l)),Q),ce=(e,t,l)=>ue(e,(e=>ie(e,t,l)),Q),de=(e,t)=>{const l=te();return _(e,((e,n)=>{var s;return l.set(n,null!=(s=null==t?void 0:t(e))?s:e)})),l},ve=e=>de(e,de),ge=e=>de(e,ve),he=(e,t,l,n,s=0)=>J((l?re:ne)(e,t[s],s>F(t)-2?l:te),(a=>{if(s>F(t)-2)return(null==n?void 0:n(a))&&ae(e,t[s]),a;const r=he(a,t,l,n,s+1);return Y(a)&&ae(e,t[s]),r})),Ce=(e="",t)=>[e,t],fe=(e="")=>Ce(e,te()),Te=e=>Ce(e,$()),be=([e,t],l)=>[e,l(t,e)],Ve=([e,t])=>[e,t],pe=(e,t)=>be(e,(e=>ue(e,t))),we=(e,t,l,n)=>G(e,((e,s)=>Se(e,re(t,s,fe),l[s]=$(),n))),Se=([e,t],l,n,s)=>{e>l[0]&&(l[0]=e),s(t,l[1],n)},ye=(e,t,l)=>G(e,(([e,n],s)=>{const a=re(t,s,Ce);e>a[0]&&(a[0]=e,a[1]=l[s]=n)})),Ie=e=>new Set(Array.isArray(e)||L(e)?e:[e]),me=(e,t)=>null==e?void 0:e.add(t),Re=/^\d+$/,Le=()=>{const e=[];let l=0;return[n=>{var s;return null!=(s=n?e.shift():null)?s:t+l++},t=>{Re.test(t)&&F(e)<1e3&&A(e,t)}]},Je=e=>[e,e],Me=()=>[te(),te()],Ee=e=>[...e],He=([e,t])=>e===t,Fe=t=>{const l=e(t);return M(l)||l==s&&R(t)?l:void 0},Oe=(e,t,l,n,s)=>L(s)?e.delCell(t,l,n,!0):e.setCell(t,l,n,s),ze=(e,t,l)=>L(l)?e.delValue(t):e.setValue(t,l),Ae=e=>JSON.stringify(e,((e,t)=>t instanceof Map?P.fromEntries([...t]):t)),Pe=JSON.parse,We=(e,t,l)=>L(e)||!j(e)||Q(e)||D(e)?(null==l||l(),!1):(K(e,((l,n)=>{t(l,n)||B(e,n)})),!Q(e)),ke=(e,t,l)=>ae(e,t,ne(e,t)==-l?void 0:l),xe=()=>{let e,l,n=!1,a=!1,i=0,S=[];const y=te(),I=te(),m=te(),R=te(),P=te(),W=te(),k=te(),x=te(),D=te(),j=te(),$=te(),G=te(),Ce=te(),fe=te(),Te=Ie(),be=te(),Ve=te(),pe=te(),we=te(),Se=Me(),ye=Me(),Re=Me(),De=Me(),Ne=Me(),je=Me(),$e=Me(),qe=Me(),Be=Me(),Ge=Me(),Ke=Me(),Qe=Me(),Ue=Me(),Xe=Me(),Ye=Me(),Ze=Me(),_e=Me(),et=Me(),tt=Me(),lt=Me(),nt=Me(),st=Me(),at=te(),rt=Me(),[ot,ut,it,ct]=(e=>{let l;const[n,s]=Le(),a=te();return[(e,s,r,o=[],u=(()=>[]))=>{null!=l||(l=El);const i=n(1);return ae(a,i,[e,s,r,o,u]),me(he(s,null!=r?r:[t],Ie),i),i},(e,n,...s)=>O(((e,l=[t])=>{const n=[],s=(e,t)=>t==F(l)?A(n,e):null===l[t]?_(e,(e=>s(e,t+1))):O([l[t],null],(l=>s(ne(e,l),t+1)));return s(e,0),n})(e,n),(e=>_(e,(e=>ne(a,e)[0](l,...null!=n?n:[],...s))))),e=>J(ne(a,e),(([,l,n])=>(he(l,null!=n?n:[t],void 0,(t=>(ee(t,e),Y(t)?1:0))),ae(a,e),s(e),n))),e=>J(ne(a,e),(([e,,t=[],n,s])=>{const a=(...r)=>{var o,u;const i=F(r);i==F(t)?e(l,...r,...s(r)):L(t[i])?O(null!=(u=null==(o=n[i])?void 0:o.call(n,...r))?u:[],(e=>a(...r,e))):a(...r,t[i])};a()}))]})(),dt=e=>{if(!We(e,((e,t)=>[r,o].includes(t))))return!1;const t=e[r];return!(!M(t)&&t!=s||(Fe(e[o])!=t&&B(e,o),0))},vt=(t,l)=>(!e||X($,l)||jt(l))&&We(t,((e,t)=>gt(l,t,e)),(()=>jt(l))),gt=(e,t,l,n)=>We(n?l:Tt(l,e,t),((n,s)=>J(ht(e,t,s,n),(e=>(l[s]=e,!0)),(()=>!1))),(()=>jt(e,t))),ht=(t,l,n,s)=>e?J(ne(ne($,t),n),(e=>Fe(s)!=e[r]?jt(t,l,n,s,e[o]):s),(()=>jt(t,l,n,s))):L(Fe(s))?jt(t,l,n,s):s,Ct=(e,t)=>We(t?e:bt(e),((t,l)=>J(ft(l,t),(t=>(e[l]=t,!0)),(()=>!1))),(()=>$t())),ft=(e,t)=>l?J(ne(Ce,e),(l=>Fe(t)!=l[r]?$t(e,t,l[o]):t),(()=>$t(e,t))):L(Fe(t))?$t(e,t):t,Tt=(e,t,l)=>(J(ne(G,t),(([n,s])=>{_(n,((t,l)=>{q(e,l)||(e[l]=t)})),_(s,(n=>{q(e,n)||jt(t,l,n)}))})),e),bt=e=>(l&&(_(fe,((t,l)=>{q(e,l)||(e[l]=t)})),_(Te,(t=>{q(e,t)||$t(t)}))),e),Vt=e=>oe($,e,((e,t,l)=>{const n=te(),s=Ie();oe(re($,t,te),l,((e,t,l)=>{ae(e,t,l),J(l[o],(e=>ae(n,t,e)),(()=>me(s,t)))})),ae(G,t,[n,s])}),((e,t)=>{ae($,t),ae(G,t)})),pt=e=>oe(Ce,e,((e,t,l)=>{ae(Ce,t,l),J(l[o],(e=>ae(fe,t,e)),(()=>me(Te,t)))}),((e,t)=>{ae(Ce,t),ae(fe,t),ee(Te,t)})),wt=e=>Q(e)?wl():fl(e),St=e=>oe(pe,e,((e,t,l)=>yt(t,l)),((e,t)=>Ft(t))),yt=(e,t)=>oe(re(pe,e,(()=>(Pt(e,1),ae(be,e,Le()),ae(Ve,e,te()),te()))),t,((t,l,n)=>It(e,t,l,n)),((t,l)=>Ot(e,t,l))),It=(e,t,l,n,s)=>oe(re(t,l,(()=>(Wt(e,l,1),te()))),n,((t,n,s)=>mt(e,l,t,n,s)),((n,a)=>zt(e,t,l,n,a,s))),mt=(e,t,l,n,s)=>{X(l,n)||kt(e,t,n,1);const a=ne(l,n);s!==a&&(xt(e,t,n,a,s),ae(l,n,s))},Rt=(e,t,l,n,s)=>J(ne(t,l),(t=>mt(e,l,t,n,s)),(()=>It(e,t,l,Tt({[n]:s},e,l)))),Lt=e=>Q(e)?Il():Tl(e),Jt=e=>oe(we,e,((e,t,l)=>Mt(t,l)),((e,t)=>At(t))),Mt=(e,t)=>{X(we,e)||Dt(e,1);const l=ne(we,e);t!==l&&(Nt(e,l,t),ae(we,e,t))},Et=(e,t)=>{const[l]=ne(be,e),n=l(t);return X(ne(pe,e),n)?Et(e,t):n},Ht=e=>{var t;return null!=(t=ne(pe,e))?t:yt(e,{})},Ft=e=>yt(e,{}),Ot=(e,t,l)=>{const[,n]=ne(be,e);n(l),It(e,t,l,{},!0)},zt=(e,t,l,n,s,a)=>{var r;const o=ne(null==(r=ne(G,e))?void 0:r[0],s);if(!L(o)&&!a)return mt(e,l,n,s,o);const u=t=>{xt(e,l,t,ne(n,t)),kt(e,l,t,-1),ae(n,t)};L(o)?u(s):se(n,u),Y(n)&&(Wt(e,l,-1),Y(ae(t,l))&&(Pt(e,-1),ae(pe,e),ae(be,e),ae(Ve,e)))},At=e=>{const t=ne(fe,e);if(!L(t))return Mt(e,t);Nt(e,ne(we,e)),Dt(e,-1),ae(we,e)},Pt=(e,t)=>ke(y,e,t),Wt=(e,t,l)=>ke(re(R,e,te),t,l)&&ae(m,e,re(m,e,(()=>0))+l),kt=(e,t,l,n)=>{var s;const a=ne(Ve,e),r=null!=(s=ne(a,l))?s:0;(0==r&&1==n||1==r&&-1==n)&&ke(re(I,e,te),l,n),ae(a,l,r!=-n?r+n:null),ke(re(re(P,e,te),t,te),l,n)},xt=(e,t,l,n,s)=>re(re(re(W,e,te),t,te),l,(()=>[n,0]))[1]=s,Dt=(e,t)=>ke(k,e,t),Nt=(e,t,l)=>re(x,e,(()=>[t,0]))[1]=l,jt=(e,t,l,n,s)=>(A(re(re(re(D,e,te),t,te),l,(()=>[])),n),s),$t=(e,t,l)=>(A(re(j,e,(()=>[])),t),l),qt=(e,t,l)=>J(ne(ne(ne(W,e),t),l),(([e,t])=>[!0,e,t]),(()=>[!1,...Je(al(e,t,l))])),Bt=e=>J(ne(x,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Je(ul(e))])),Gt=e=>Y(D)||Y(Ze[e])?0:_(e?ge(D):D,((t,l)=>_(t,((t,n)=>_(t,((t,s)=>ut(Ze[e],[l,n,s],t))))))),Kt=e=>Y(j)||Y(_e[e])?0:_(e?de(j):j,((t,l)=>ut(_e[e],[l],t))),Qt=(e,t,l,n)=>{if(!Y(e))return ut(t,n,(()=>ue(e))),se(e,((e,t)=>ut(l,[...null!=n?n:[],e],1==t))),1},Ut=e=>{const t=il();t!=n&&ut(Se[e],void 0,t);const l=Y(Ge[e]),s=Y(Ue[e])&&Y(Xe[e])&&Y(Be[e])&&Y(Ke[e])&&Y(je[e])&&Y($e[e])&&Y(qe[e])&&l&&Y(Re[e])&&Y(De[e]),a=Y(Ye[e])&&Y(Qe[e])&&Y(Ne[e])&&Y(ye[e]);if(!s||!a){const t=e?[de(y),ve(I),de(m),ve(R),ge(P),ge(W)]:[y,I,m,R,P,W];if(!s){Qt(t[0],Re[e],De[e]),_(t[1],((t,l)=>Qt(t,je[e],$e[e],[l]))),_(t[2],((t,l)=>{0!=t&&ut(qe[e],[l],tl(l))}));const n=Ie();_(t[3],((t,s)=>{Qt(t,Be[e],Ke[e],[s])&&!l&&(ut(Ge[e],[s,null]),me(n,s))})),l||_(t[5],((t,l)=>{if(!X(n,l)){const n=Ie();_(t,(e=>_(e,(([t,l],s)=>l!==t?me(n,s):ee(e,s))))),_(n,(t=>ut(Ge[e],[l,t])))}})),_(t[4],((t,l)=>_(t,((t,n)=>Qt(t,Ue[e],Xe[e],[l,n])))))}if(!a){let l;_(t[5],((t,n)=>{let s;_(t,((t,a)=>{let r;_(t,(([t,o],u)=>{o!==t&&(ut(Ye[e],[n,a,u],o,t,qt),l=s=r=1)})),r&&ut(Qe[e],[n,a],qt)})),s&&ut(Ne[e],[n],qt)})),l&&ut(ye[e],void 0,qt)}}},Xt=e=>{const t=hl();t!=a&&ut(et[e],void 0,t);const l=Y(lt[e])&&Y(nt[e]),n=Y(st[e])&&Y(tt[e]);if(!l||!n){const t=e?[de(k),de(x)]:[k,x];if(l||Qt(t[0],lt[e],nt[e]),!n){let l;_(t[1],(([t,n],s)=>{n!==t&&(ut(st[e],[s],n,t,Bt),l=1)})),l&&ut(tt[e],void 0,Bt)}}},Yt=(e,...t)=>(Ll((()=>e(...z(t,w)))),El),Zt=()=>ce(pe),_t=()=>le(pe),el=e=>le(ne(Ve,w(e))),tl=e=>U(ne(pe,w(e))),ll=e=>le(ne(pe,w(e))),nl=(e,t,l,n=0,s)=>{return z(H((r=ne(pe,w(e)),o=(e,l)=>[L(t)?l:ne(e,w(t)),l],a=([e],[t])=>{return((null!=(n=e)?n:0)<(null!=(s=t)?s:0)?-1:1)*(l?-1:1);var n,s},z([...null!=(u=null==r?void 0:r.entries())?u:[]],(([e,t])=>o(t,e))).sort(a)),n,L(s)?s:n+s),(([,e])=>e));var a,r,o,u},sl=(e,t)=>le(ne(ne(pe,w(e)),w(t))),al=(e,t,l)=>ne(ne(ne(pe,w(e)),w(t)),w(l)),rl=()=>ue(we),ol=()=>le(we),ul=e=>ne(we,w(e)),il=()=>!Y(pe),cl=e=>X(pe,w(e)),dl=(e,t)=>X(ne(Ve,w(e)),w(t)),vl=(e,t)=>X(ne(pe,w(e)),w(t)),gl=(e,t,l)=>X(ne(ne(pe,w(e)),w(t)),w(l)),hl=()=>!Y(we),Cl=e=>X(we,w(e)),fl=e=>Yt((()=>(e=>We(e,vt,jt))(e)?St(e):0)),Tl=e=>Yt((()=>Ct(e)?Jt(e):0)),bl=e=>{try{wt(Pe(e))}catch(e){}return El},Vl=t=>Yt((()=>{if((e=We(t,(e=>We(e,dt))))&&(Vt(t),!Y(pe))){const e=Zt();wl(),fl(e)}})),pl=e=>Yt((()=>{if(l=(e=>We(e,dt))(e)){const t=rl();Rl(),Il(),l=!0,pt(e),Tl(t)}})),wl=()=>Yt((()=>St({}))),Sl=e=>Yt((e=>X(pe,e)?Ft(e):0),e),yl=(e,t)=>Yt(((e,t)=>J(ne(pe,e),(l=>X(l,t)?Ot(e,l,t):0))),e,t),Il=()=>Yt((()=>Jt({}))),ml=()=>Yt((()=>{Vt({}),e=!1})),Rl=()=>Yt((()=>{pt({}),l=!1})),Ll=(e,t)=>{if(-1!=i){Jl();const l=e();return Ml(t),l}},Jl=()=>(-1!=i&&i++,1==i&&ut(at,void 0),El),Ml=e=>{var t,l;return i>0&&(i--,0==i&&(i=1,Gt(1),Y(W)||Ut(1),Kt(1),Y(x)||Xt(1),(null==e?void 0:e(El))&&(_(W,((e,t)=>_(e,((e,l)=>_(e,(([e],n)=>Oe(El,t,l,n,e))))))),Z(W),_(x,(([e],t)=>ze(El,t,e))),Z(x)),ut(rt[0],void 0),i=-1,Gt(0),Y(W)||Ut(0),Kt(0),Y(x)||Xt(0),null==(t=S[0])||t.call(S,El),ut(rt[1],void 0),null==(l=S[1])||l.call(S,El),i=0,n=il(),a=hl(),O([y,I,m,R,P,W,D,k,x,j],Z))),El},El={getContent:()=>[Zt(),rl()],getTables:Zt,getTableIds:_t,getTable:e=>ie(ne(pe,w(e))),getTableCellIds:el,getRowCount:tl,getRowIds:ll,getSortedRowIds:nl,getRow:(e,t)=>ue(ne(ne(pe,w(e)),w(t))),getCellIds:sl,getCell:al,getValues:rl,getValueIds:ol,getValue:ul,hasTables:il,hasTable:cl,hasTableCell:dl,hasRow:vl,hasCell:gl,hasValues:hl,hasValue:Cl,getTablesJson:()=>Ae(pe),getValuesJson:()=>Ae(we),getJson:()=>Ae([pe,we]),getTablesSchemaJson:()=>Ae($),getValuesSchemaJson:()=>Ae(Ce),getSchemaJson:()=>Ae([$,Ce]),hasTablesSchema:()=>e,hasValuesSchema:()=>l,setContent:([e,t])=>Yt((()=>{(Q(e)?wl:fl)(e),(Q(t)?Il:Tl)(t)})),setTables:fl,setTable:(e,t)=>Yt((e=>vt(t,e)?yt(e,t):0),e),setRow:(e,t,l)=>Yt(((e,t)=>gt(e,t,l)?It(e,Ht(e),t,l):0),e,t),addRow:(e,t,l=!0)=>Ll((()=>{let n;return gt(e,n,t)&&(e=w(e),It(e,Ht(e),n=Et(e,l?1:0),t)),n})),setPartialRow:(e,t,l)=>Yt(((e,t)=>{if(gt(e,t,l,1)){const n=Ht(e);K(l,((l,s)=>Rt(e,n,t,s,l)))}}),e,t),setCell:(e,t,l,n)=>Yt(((e,t,l)=>J(ht(e,t,l,E(n)?n(al(e,t,l)):n),(n=>Rt(e,Ht(e),t,l,n)))),e,t,l),setValues:Tl,setPartialValues:e=>Yt((()=>Ct(e,1)?K(e,((e,t)=>Mt(t,e))):0)),setValue:(e,t)=>Yt((e=>J(ft(e,E(t)?t(ul(e)):t),(t=>Mt(e,t)))),e),applyChanges:e=>Yt((()=>{K(e[0],((e,t)=>L(e)?Sl(t):K(e,((e,l)=>L(e)?yl(t,l):K(e,((e,n)=>Oe(El,t,l,n,e))))))),K(e[1],((e,t)=>ze(El,t,e)))})),setTablesJson:bl,setValuesJson:e=>{try{Lt(Pe(e))}catch(e){}return El},setJson:e=>Yt((()=>{try{const[t,l]=Pe(e);wt(t),Lt(l)}catch(t){bl(e)}})),setTablesSchema:Vl,setValuesSchema:pl,setSchema:(e,t)=>Yt((()=>{Vl(e),pl(t)})),delTables:wl,delTable:Sl,delRow:yl,delCell:(e,t,l,n)=>Yt(((e,t,l)=>J(ne(pe,e),(s=>J(ne(s,t),(a=>X(a,l)?zt(e,s,t,a,l,n):0))))),e,t,l),delValues:Il,delValue:e=>Yt((e=>X(we,e)?At(e):0),e),delTablesSchema:ml,delValuesSchema:Rl,delSchema:()=>Yt((()=>{ml(),Rl()})),transaction:Ll,startTransaction:Jl,getTransactionChanges:()=>[ue(W,((e,t)=>-1===ne(y,t)?void 0:ue(e,((e,l)=>-1===ne(ne(R,t),l)?void 0:ue(e,(([,e])=>e),((e,t)=>He(t)))),Q)),Q),ue(x,(([,e])=>e),((e,t)=>He(t)))],getTransactionLog:()=>[!Y(W),!Y(x),ce(W,Ee,He),ce(D),ue(x,Ee,He),ue(j),ue(y),ie(R),ce(P),ue(k)],finishTransaction:Ml,forEachTable:e=>_(pe,((t,l)=>e(l,(e=>_(t,((t,l)=>e(l,(e=>se(t,e))))))))),forEachTableCell:(e,t)=>se(ne(Ve,w(e)),t),forEachRow:(e,t)=>_(ne(pe,w(e)),((e,l)=>t(l,(t=>se(e,t))))),forEachCell:(e,t,l)=>se(ne(ne(pe,w(e)),w(t)),l),forEachValue:e=>se(we,e),addSortedRowIdsListener:(e,t,l,n,s,a,r)=>{let o=nl(e,t,l,n,s);return ot((()=>{const r=nl(e,t,l,n,s);var u,i,c;i=o,F(u=r)===F(i)&&(c=(e,t)=>i[t]===e,u.every(c))||(o=r,a(El,e,t,l,n,s,o))}),Ge[r?1:0],[e,t],[_t])},addStartTransactionListener:e=>ot(e,at),addWillFinishTransactionListener:e=>ot(e,rt[0]),addDidFinishTransactionListener:e=>ot(e,rt[1]),callListener:e=>(ct(e),El),delListener:e=>(it(e),El),getListenerStats:()=>({}),createStore:xe,addListener:ot,callListeners:ut,setInternalListeners:(e,t)=>S=[e,t]};return K({[u+d]:[0,Se,[],()=>[il()]],[d]:[0,ye],[v]:[0,Re],[u+c]:[1,De,[_t],e=>[cl(...e)]],[c]:[1,Ne,[_t]],[c+T]:[1,je,[_t]],[u+c+f]:[2,$e,[_t,el],e=>[dl(...e)]],[h]:[1,qe,[_t]],[C]:[1,Be,[_t]],[u+g]:[2,Ke,[_t,ll],e=>[vl(...e)]],[g]:[2,Qe,[_t,ll]],[T]:[2,Ue,[_t,ll]],[u+f]:[3,Xe,[_t,ll,sl],e=>[gl(...e)]],[f]:[3,Ye,[_t,ll,sl],e=>Je(al(...e))],InvalidCell:[3,Ze],[u+V]:[0,et,[],()=>[hl()]],[V]:[0,tt],[p]:[0,lt],[u+b]:[1,nt,[ol],e=>[Cl(...e)]],[b]:[1,st,[ol],e=>Je(ul(e[0]))],InvalidValue:[1,_e]},(([e,t,l,n],s)=>{El["add"+s+"Listener"]=(...s)=>ot(s[e],t[s[e+1]?1:0],e>0?H(s,0,e):void 0,l,n)})),N(El)};var De=Math.pow;const Ne=De(2,36),je=De(2,30),$e=De(2,24),qe=De(2,18),Be=De(2,12),Ge=De(2,6),Ke=e=>String.fromCharCode(48+(63&e)),Qe=(e,t)=>I(e,t)-48,Ue={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},Xe=(e="")=>[e,[fe(e),fe(e)]],Ye=e=>{let l,n,s=1,a=Xe();const[r,o]=(e=>{let t=0,l=-1;const n=(s=(e,t)=>(e<<5)+e^I(t),((e,t="",l)=>e.split(t,l))(e).reduce(s,5381)>>>0);var s;const a=e=>{const n=t,[s,a]=L(e)?[0,0]:[Qe(r=e,0)*Ne+Qe(r,1)*je+Qe(r,2)*$e+Qe(r,3)*qe+Qe(r,4)*Be+Qe(r,5)*Ge+Qe(r,6),Qe(r,7)*qe+Qe(r,8)*Be+Qe(r,9)*Ge+Qe(r,10),Qe(r,11)*$e+Qe(r,12)*qe+Qe(r,13)*Be+Qe(r,14)*Ge+Qe(r,15)];var r;t=m(n,s,Date.now()),l=t==n?t==s?m(l,a):l:t==s?a:-1};return[()=>{return a(),s=++l,r=n,Ke((e=t)/Ne)+Ke(e/je)+Ke(e/$e)+Ke(e/qe)+Ke(e/Be)+Ke(e/Ge)+Ke(e)+Ke(s/qe)+Ke(s/Be)+Ke(s/Ge)+Ke(s)+Ke(r/$e)+Ke(r/qe)+Ke(r/Be)+Ke(r/Ge)+Ke(r);var e,s,r},a]})(e),u=xe(),i=e=>{const t=s;s=0,e(),s=t},c=()=>{if(L(n)){const[,,e,,n]=u.getTransactionLog(),s=Q(e)&&Q(n)?t:null!=l?l:l=r(),a=Ce(s,[Te(Q(e)?t:s),Te(Q(n)?t:s)]),[[,o],[,i]]=a[1];return K(e,((e,t)=>{const[,l]=o[t]=Te(s);K(e,((e,t)=>{const[,n]=l[t]=Te(s);K(e,(([,e],t)=>n[t]=Ce(s,e)))}))})),K(n,(([,e],t)=>i[t]=Ce(s,e))),a}return n},d=e=>{const t=[{},{}];return o(e[0]),Se(e,a,t,(([e,t],[l,n],[s,a])=>{Se(e,l,s,((e,t,l)=>we(e,t,l,((e,t,l)=>we(e,t,l,ye))))),Se(t,n,a,ye)})),i((()=>u.applyChanges(t))),v},v={getMergeableContent:()=>be(a,(([e,t])=>[pe(e,(e=>pe(e,(e=>pe(e,Ve))))),pe(t,Ve)])),setMergeableContent:e=>(i((()=>u.transaction((()=>{u.delTables().delValues(),a=Xe()})))),d(e),v),getTransactionMergeableChanges:c,applyMergeableChanges:d,merge:e=>{const t=v.getMergeableContent(),l=e.getMergeableContent();return e.applyMergeableChanges(t),d(l)}};return u.setInternalListeners((()=>{if(s){n=c();const[e,[t,l]]=n,s=!Q(t[1]),r=!Q(l[1]),[,[o,u]]=a;(s||r)&&(a[0]=e),s&&(o[0]=e,K(t[1],(([,t],l)=>{const n=re(o[1],l,fe);n[0]=e,K(t,(([,t],l)=>{const s=re(n[1],l,fe);s[0]=e,K(t,(([,t],l)=>ae(s[1],l,Ce(e,t))))}))}))),r&&(u[0]=e,K(l[1],(([,t],l)=>ae(u[1],l,Ce(e,t)))))}}),(()=>l=n=void 0)),K(u,((e,t)=>v[t]=S(t,"set")||S(t,"del")||S(t,"apply")||y(t,"Transaction")||"callListener"==t?(...t)=>(e(...t),v):S(t,"add")&&y(t,"Listener")?(...l)=>{var n;const s=null!=(n=Ue[H(t,3,-8)])?n:0,a=l[s];return l[s]=(e,...t)=>a(v,...t),e(...l)}:e)),N(v)};export{Ye as createMergeableStore};
Binary file
@@ -1 +1 @@
1
- const t=t=>null==t,e=(e,n,o)=>t(e)?null==o?void 0:o():n(e),n=Object,o=t=>n.getPrototypeOf(t),l=n.entries,i=n.keys,u=n.freeze,r=(t,n)=>e(t,(t=>t[n])),d=(e,n)=>!t(r(e,n)),c=(t,e)=>(delete t[e],t),a=(t,e)=>((t,e)=>t.map(e))(l(t),(([t,n])=>e(n,t))),s=t=>i(t).length,v=l=>(l=>!t(l)&&e(o(l),(e=>e==n.prototype||t(o(e))),(()=>!0)))(l)&&0==s(l),y=t=>new Map(t),h=(t,e)=>null==t?void 0:t.get(e),f=(e,n,o)=>{return t(o)?(i=n,null==(l=e)||l.delete(i),e):null==e?void 0:e.set(n,o);var l,i},p=(t,e,n)=>{var o,l,i;return l=e,null!=(i=null==(o=t)?void 0:o.has(l))&&i||f(t,e,n()),h(t,e)};var g=(t,e,n)=>new Promise(((o,l)=>{var i=t=>{try{r(n.next(t))}catch(t){l(t)}},u=t=>{try{r(n.throw(t))}catch(t){l(t)}},r=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,u);r((n=n.apply(t,e)).next())}));const A=y(),L=y();var m=(t,e,n)=>new Promise(((o,l)=>{var i=t=>{try{r(n.next(t))}catch(t){l(t)}},u=t=>{try{r(n.throw(t))}catch(t){l(t)}},r=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,u);r((n=n.apply(t,e)).next())}));const S=(t,e)=>[t[e].t,t[e].v],w=(e,n,o,l)=>{const i=t(n)?e:((t,e,n)=>(d(t,e)||(t[e]={}),t[e]))(e,n);let u;return a(o,((t,e)=>{l(i,e,t)&&(u=1)})),a(i,((t,e)=>{d(o,e)||(c(i,e),u=1)})),!t(n)&&v(i)&&c(e,n),u},x=(n,o,l="tinybase",i)=>(o.change((t=>t[l]={})),((n,o,l,i,r,d,[c,a]=[],s=[])=>{let y,m,S,w=0,x=0;p(A,s,(()=>0)),p(L,s,(()=>[]));const C=t=>g(void 0,null,(function*(){return 2!=w&&(w=1,yield P.schedule((()=>g(void 0,null,(function*(){yield t(),w=0}))))),P})),P={load:(t,e)=>g(void 0,null,(function*(){return yield C((()=>g(void 0,null,(function*(){try{n.setContent(yield o())}catch(o){n.setContent([t,e])}}))))})),startAutoLoad:(...t)=>g(void 0,[...t],(function*(t={},e={}){return P.stopAutoLoad(),yield P.load(t,e),x=1,S=i(((t,e)=>g(void 0,null,(function*(){if(e){const t=e();yield C((()=>g(void 0,null,(function*(){return n.setTransactionChanges(t)}))))}else yield C((()=>g(void 0,null,(function*(){var e;try{n.setContent(null!=(e=null==t?void 0:t())?e:yield o())}catch(t){null==d||d(t)}}))))})))),P})),stopAutoLoad:()=>(x&&(r(S),S=void 0,x=0),P),save:t=>g(void 0,null,(function*(){return 1!=w&&(w=2,yield P.schedule((()=>g(void 0,null,(function*(){try{yield l(n.getContent,t)}catch(t){null==d||d(t)}w=0}))))),P})),startAutoSave:()=>g(void 0,null,(function*(){return yield P.stopAutoSave().save(),y=n.addDidFinishTransactionListener(((t,e)=>{const[n,o]=e();v(n)&&v(o)||P.save((()=>[n,o]))})),P})),stopAutoSave:()=>(e(y,n.delListener),y=void 0,P),schedule:(...e)=>g(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(h(L,s),...e),yield g(void 0,null,(function*(){if(!h(A,s)){for(f(A,s,1);!t((e=h(L,s),m=e.shift()));)try{yield m()}catch(t){null==d||d(t)}f(A,s,0)}var e})),P})),getStore:()=>n,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(P[c]=()=>a),u(P)})(n,(()=>m(void 0,null,(function*(){const t=yield o.doc();return 2==s(t[l])?S(t,l):void 0}))),((n,i)=>m(void 0,null,(function*(){return o.change((o=>((n,o,l,i)=>{((t,e)=>{v(t[e])&&(t[e]={t:{},v:{}})})(n,o);const[u,d]=S(n,o),s=()=>{y=1};let y=1;if(e(null==i?void 0:i(),(([n,o])=>{y=0,a(n,((n,o)=>y?0:t(n)?c(u,o):e(u[o],(o=>a(n,((n,l)=>y?0:t(n)?c(o,l):e(r(o,l),(e=>a(n,((n,o)=>t(n)?c(e,o):e[o]=n))),s)))),s))),a(o,((e,n)=>y?0:t(e)?c(d,n):d[n]=e))})),y){const[t,e]=l();w(u,void 0,t,((t,e,n)=>w(u,e,n,((t,e,n)=>w(t,e,n,((t,e,n)=>{if(r(t,e)!==n)return t[e]=n,1})))))),w(d,void 0,e,((t,e,n)=>{r(d,e)!==n&&(d[e]=n)}))}})(o,l,n,i)))}))),(t=>{const e=({doc:e})=>t((()=>S(e,l)));return o.on("change",e),e}),(t=>{o.removeListener("change",t)}),i,["getDocHandle",o]));export{x as createAutomergePersister};
1
+ const e=e=>typeof e,t=e(""),n=e=>null==e,o=(e,t,o)=>n(e)?null==o?void 0:o():t(e),l=Object,r=e=>l.getPrototypeOf(e),i=l.entries,u=l.keys,a=l.freeze,d=(e,t)=>o(e,(e=>e[t])),s=(e,t)=>t in e,c=(e,t)=>(delete e[t],e),v=(e,t)=>((e,t)=>e.map(t))(i(e),(([e,n])=>t(n,e))),y=e=>u(e).length,h=e=>(e=>!n(e)&&o(r(e),(e=>e==l.prototype||n(r(e))),(()=>!0)))(e)&&0==y(e),g=e=>new Map(e),f=(e,t)=>null==e?void 0:e.get(t),p=(e,t,o)=>{return n(o)?(r=t,null==(l=e)||l.delete(r),e):null==e?void 0:e.set(t,o);var l,r},C=(e,t,n)=>{var o,l,r;return l=t,null!=(r=null==(o=e)?void 0:o.has(l))&&r||p(e,t,n()),f(e,t)};var b=(e,t,n)=>new Promise(((o,l)=>{var r=e=>{try{u(n.next(e))}catch(e){l(e)}},i=e=>{try{u(n.throw(e))}catch(e){l(e)}},u=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,i);u((n=n.apply(e,t)).next())}));const A=g(),L=g(),M=n=>{return o=null==n?void 0:n[0],e(o)==t;var o};var m=(e,t,n)=>new Promise(((o,l)=>{var r=e=>{try{u(n.next(e))}catch(e){l(e)}},i=e=>{try{u(n.throw(e))}catch(e){l(e)}},u=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,i);u((n=n.apply(e,t)).next())}));const S=(e,t)=>[e[t].t,e[t].v],w=(e,t,o,l)=>{const r=n(t)?e:((e,t,n)=>(s(e,t)||(e[t]={}),e[t]))(e,t);let i;return v(o,((e,t)=>{l(r,t,e)&&(i=1)})),v(r,((e,t)=>{s(o,t)||(c(r,t),i=1)})),!n(t)&&h(r)&&c(e,t),i},x=(e,t,l="tinybase",r)=>(t.change((e=>e[l]={})),((e,t,l,r,i,u,d,[s,c]=[],v=[])=>{let y,g,m,S=0,w=0;C(A,v,(()=>0)),C(L,v,(()=>[]));const[x,P,T,D]=((e,t)=>!e||n(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!h(e)||!h(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,e],[,t]]])=>!h(e)||!h(t)])(d,e),O=e=>b(void 0,null,(function*(){return 2!=S&&(S=1,yield j.schedule((()=>b(void 0,null,(function*(){yield e(),S=0}))))),j})),j={load:(n,o)=>b(void 0,null,(function*(){return yield O((()=>b(void 0,null,(function*(){try{const n=yield t();(x&&M(n)?e.setMergeableContent:e.setContent)(n)}catch(t){e.setContent([n,o])}}))))})),startAutoLoad:(...n)=>b(void 0,[...n],(function*(n={},o={}){return j.stopAutoLoad(),yield j.load(n,o),w=1,m=r(((n,o)=>b(void 0,null,(function*(){if(o){const t=o();yield O((()=>b(void 0,null,(function*(){return(x&&M(t)?e.applyMergeableChanges:e.applyChanges)(t)}))))}else yield O((()=>b(void 0,null,(function*(){var o;try{const l=null!=(o=null==n?void 0:n())?o:yield t();(x&&M(l)?e.setMergeableContent:e.setContent)(l)}catch(e){null==u||u(e)}}))))})))),j})),stopAutoLoad:()=>(w&&(i(m),m=void 0,w=0),j),save:e=>b(void 0,null,(function*(){return 1!=S&&(S=2,yield j.schedule((()=>b(void 0,null,(function*(){try{yield l(P,e)}catch(e){null==u||u(e)}S=0}))))),j})),startAutoSave:()=>b(void 0,null,(function*(){return yield j.stopAutoSave().save(),y=e.addDidFinishTransactionListener((()=>{const e=T();D(e)&&j.save((()=>e))})),j})),stopAutoSave:()=>(o(y,e.delListener),y=void 0,j),schedule:(...e)=>b(void 0,null,(function*(){return((e,...t)=>{e.push(...t)})(f(L,v),...e),yield b(void 0,null,(function*(){if(!f(A,v)){for(p(A,v,1);!n((e=f(L,v),g=e.shift()));)try{yield g()}catch(e){null==u||u(e)}p(A,v,0)}var e})),j})),getStore:()=>e,destroy:()=>j.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return s&&(j[s]=()=>c),a(j)})(e,(()=>m(void 0,null,(function*(){const e=yield t.doc();return 2==y(e[l])?S(e,l):void 0}))),((e,r)=>m(void 0,null,(function*(){return t.change((t=>((e,t,l,r)=>{((e,t)=>{h(e[t])&&(e[t]={t:{},v:{}})})(e,t);const[i,u]=S(e,t),a=()=>{s=1};let s=1;if(o(null==r?void 0:r(),(([e,t])=>{s=0,v(e,((e,t)=>s?0:n(e)?c(i,t):o(i[t],(t=>v(e,((e,l)=>s?0:n(e)?c(t,l):o(d(t,l),(t=>v(e,((e,o)=>n(e)?c(t,o):t[o]=e))),a)))),a))),v(t,((e,t)=>s?0:n(e)?c(u,t):u[t]=e))})),s){const[e,t]=l();w(i,void 0,e,((e,t,n)=>w(i,t,n,((e,t,n)=>w(e,t,n,((e,t,n)=>{if(d(e,t)!==n)return e[t]=n,1})))))),w(u,void 0,t,((e,t,n)=>{d(u,t)!==n&&(u[t]=n)}))}})(t,l,e,r)))}))),(e=>{const n=({doc:t})=>e((()=>S(t,l)));return t.on("change",n),n}),(e=>{t.removeListener("change",e)}),r,!1,["getDocHandle",t]));export{x as createAutomergePersister};
@@ -1 +1 @@
1
- const t=t=>null==t,e=(e,n,o)=>t(e)?null==o?void 0:o():n(e),n=Object,o=t=>n.getPrototypeOf(t),l=n.keys,r=n.freeze,i=r=>(l=>!t(l)&&e(o(l),(e=>e==n.prototype||t(o(e))),(()=>!0)))(r)&&0==(t=>l(t).length)(r),u=JSON.parse,a=t=>new Map(t),s=(t,e)=>null==t?void 0:t.get(e),d=(e,n,o)=>{return t(o)?(r=n,null==(l=e)||l.delete(r),e):null==e?void 0:e.set(n,o);var l,r},v=(t,e,n)=>{var o,l,r;return l=e,null!=(r=null==(o=t)?void 0:o.has(l))&&r||d(t,e,n()),s(t,e)};var c=(t,e,n)=>new Promise(((o,l)=>{var r=t=>{try{u(n.next(t))}catch(t){l(t)}},i=t=>{try{u(n.throw(t))}catch(t){l(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(r,i);u((n=n.apply(t,e)).next())}));const y=a(),f=a();var h=(t,e,n)=>new Promise(((o,l)=>{var r=t=>{try{u(n.next(t))}catch(t){l(t)}},i=t=>{try{u(n.throw(t))}catch(t){l(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(r,i);u((n=n.apply(t,e)).next())}));const p="storage",g=globalThis.window,S=(o,l,a,S)=>((n,o,l,u,a,h,[p,g]=[],S=[])=>{let m,A,w,L=0,x=0;v(y,S,(()=>0)),v(f,S,(()=>[]));const C=t=>c(void 0,null,(function*(){return 2!=L&&(L=1,yield P.schedule((()=>c(void 0,null,(function*(){yield t(),L=0}))))),P})),P={load:(t,e)=>c(void 0,null,(function*(){return yield C((()=>c(void 0,null,(function*(){try{n.setContent(yield o())}catch(o){n.setContent([t,e])}}))))})),startAutoLoad:(...t)=>c(void 0,[...t],(function*(t={},e={}){return P.stopAutoLoad(),yield P.load(t,e),x=1,w=u(((t,e)=>c(void 0,null,(function*(){if(e){const t=e();yield C((()=>c(void 0,null,(function*(){return n.setTransactionChanges(t)}))))}else yield C((()=>c(void 0,null,(function*(){var e;try{n.setContent(null!=(e=null==t?void 0:t())?e:yield o())}catch(t){null==h||h(t)}}))))})))),P})),stopAutoLoad:()=>(x&&(a(w),w=void 0,x=0),P),save:t=>c(void 0,null,(function*(){return 1!=L&&(L=2,yield P.schedule((()=>c(void 0,null,(function*(){try{yield l(n.getContent,t)}catch(t){null==h||h(t)}L=0}))))),P})),startAutoSave:()=>c(void 0,null,(function*(){return yield P.stopAutoSave().save(),m=n.addDidFinishTransactionListener(((t,e)=>{const[n,o]=e();i(n)&&i(o)||P.save((()=>[n,o]))})),P})),stopAutoSave:()=>(e(m,n.delListener),m=void 0,P),schedule:(...e)=>c(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(s(f,S),...e),yield c(void 0,null,(function*(){if(!s(y,S)){for(d(y,S,1);!t((e=s(f,S),A=e.shift()));)try{yield A()}catch(t){null==h||h(t)}d(y,S,0)}var e})),P})),getStore:()=>n,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return p&&(P[p]=()=>g),r(P)})(o,(()=>h(void 0,null,(function*(){return u(a.getItem(l))}))),(t=>h(void 0,null,(function*(){return a.setItem(l,(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?n.fromEntries([...e]):e))));var e}))),(t=>{const e=e=>{e.storageArea===a&&e.key===l&&t((()=>u(e.newValue)))};return g.addEventListener(p,e),e}),(t=>g.removeEventListener(p,t)),S,["getStorageName",l]),m=(t,e,n)=>S(t,e,localStorage,n),A=(t,e,n)=>S(t,e,sessionStorage,n);export{m as createLocalPersister,A as createSessionPersister};
1
+ const e=e=>typeof e,t=e(""),n=e=>null==e,o=(e,t,o)=>n(e)?null==o?void 0:o():t(e),l=Object,r=e=>l.getPrototypeOf(e),a=l.keys,i=l.freeze,u=e=>(e=>!n(e)&&o(r(e),(e=>e==l.prototype||n(r(e))),(()=>!0)))(e)&&0==(e=>a(e).length)(e),s=JSON.parse,d=e=>new Map(e),c=(e,t)=>null==e?void 0:e.get(t),v=(e,t,o)=>{return n(o)?(r=t,null==(l=e)||l.delete(r),e):null==e?void 0:e.set(t,o);var l,r},y=(e,t,n)=>{var o,l,r;return l=t,null!=(r=null==(o=e)?void 0:o.has(l))&&r||v(e,t,n()),c(e,t)};var g=(e,t,n)=>new Promise(((o,l)=>{var r=e=>{try{i(n.next(e))}catch(e){l(e)}},a=e=>{try{i(n.throw(e))}catch(e){l(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,a);i((n=n.apply(e,t)).next())}));const f=d(),h=d(),p=n=>{return o=null==n?void 0:n[0],e(o)==t;var o};var C=(e,t,n)=>new Promise(((o,l)=>{var r=e=>{try{i(n.next(e))}catch(e){l(e)}},a=e=>{try{i(n.throw(e))}catch(e){l(e)}},i=e=>e.done?o(e.value):Promise.resolve(e.value).then(r,a);i((n=n.apply(e,t)).next())}));const S="storage",m=globalThis.window,A=(e,t,r,a)=>((e,t,l,r,a,s,d,[C,S]=[],m=[])=>{let A,b,w,L=0,M=0;y(f,m,(()=>0)),y(h,m,(()=>[]));const[x,P,O,T]=((e,t)=>!e||n(t.getMergeableContent)?[0,t.getContent,t.getTransactionChanges,([e,t])=>!u(e)||!u(t)]:[1,t.getMergeableContent,t.getTransactionMergeableChanges,([,[[,e],[,t]]])=>!u(e)||!u(t)])(d,e),E=e=>g(void 0,null,(function*(){return 2!=L&&(L=1,yield N.schedule((()=>g(void 0,null,(function*(){yield e(),L=0}))))),N})),N={load:(n,o)=>g(void 0,null,(function*(){return yield E((()=>g(void 0,null,(function*(){try{const n=yield t();(x&&p(n)?e.setMergeableContent:e.setContent)(n)}catch(t){e.setContent([n,o])}}))))})),startAutoLoad:(...n)=>g(void 0,[...n],(function*(n={},o={}){return N.stopAutoLoad(),yield N.load(n,o),M=1,w=r(((n,o)=>g(void 0,null,(function*(){if(o){const t=o();yield E((()=>g(void 0,null,(function*(){return(x&&p(t)?e.applyMergeableChanges:e.applyChanges)(t)}))))}else yield E((()=>g(void 0,null,(function*(){var o;try{const l=null!=(o=null==n?void 0:n())?o:yield t();(x&&p(l)?e.setMergeableContent:e.setContent)(l)}catch(e){null==s||s(e)}}))))})))),N})),stopAutoLoad:()=>(M&&(a(w),w=void 0,M=0),N),save:e=>g(void 0,null,(function*(){return 1!=L&&(L=2,yield N.schedule((()=>g(void 0,null,(function*(){try{yield l(P,e)}catch(e){null==s||s(e)}L=0}))))),N})),startAutoSave:()=>g(void 0,null,(function*(){return yield N.stopAutoSave().save(),A=e.addDidFinishTransactionListener((()=>{const e=O();T(e)&&N.save((()=>e))})),N})),stopAutoSave:()=>(o(A,e.delListener),A=void 0,N),schedule:(...e)=>g(void 0,null,(function*(){return((e,...t)=>{e.push(...t)})(c(h,m),...e),yield g(void 0,null,(function*(){if(!c(f,m)){for(v(f,m,1);!n((e=c(h,m),b=e.shift()));)try{yield b()}catch(e){null==s||s(e)}v(f,m,0)}var e})),N})),getStore:()=>e,destroy:()=>N.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return C&&(N[C]=()=>S),i(N)})(e,(()=>C(void 0,null,(function*(){return s(r.getItem(t))}))),(e=>C(void 0,null,(function*(){return r.setItem(t,(n=e(),JSON.stringify(n,((e,t)=>t instanceof Map?l.fromEntries([...t]):t))));var n}))),(e=>{const n=n=>{n.storageArea===r&&n.key===t&&e((()=>s(n.newValue)))};return m.addEventListener(S,n),n}),(e=>m.removeEventListener(S,e)),a,!0,["getStorageName",t]),b=(e,t,n)=>A(e,t,localStorage,n),w=(e,t,n)=>A(e,t,sessionStorage,n);export{b as createLocalPersister,w as createSessionPersister};