tinybase 7.0.0-beta.2 → 7.0.0

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 (292) hide show
  1. package/@types/common/index.d.ts +1 -1
  2. package/@types/mergeable-store/index.d.ts +1 -1
  3. package/@types/mergeable-store/with-schemas/index.d.ts +1 -1
  4. package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +4 -0
  5. package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +4 -0
  6. package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +4 -0
  7. package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +4 -0
  8. package/@types/persisters/persister-electric-sql/index.d.ts +4 -0
  9. package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +4 -0
  10. package/@types/persisters/persister-expo-sqlite/index.d.ts +4 -0
  11. package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +4 -0
  12. package/@types/persisters/persister-libsql/index.d.ts +4 -0
  13. package/@types/persisters/persister-libsql/with-schemas/index.d.ts +4 -0
  14. package/@types/persisters/persister-pglite/index.d.ts +5 -1
  15. package/@types/persisters/persister-pglite/with-schemas/index.d.ts +5 -1
  16. package/@types/persisters/persister-postgres/index.d.ts +4 -0
  17. package/@types/persisters/persister-postgres/with-schemas/index.d.ts +4 -0
  18. package/@types/persisters/persister-powersync/index.d.ts +4 -0
  19. package/@types/persisters/persister-powersync/with-schemas/index.d.ts +4 -0
  20. package/@types/persisters/persister-react-native-sqlite/index.d.ts +4 -0
  21. package/@types/persisters/persister-react-native-sqlite/with-schemas/index.d.ts +4 -0
  22. package/@types/persisters/persister-sqlite-bun/index.d.ts +4 -0
  23. package/@types/persisters/persister-sqlite-bun/with-schemas/index.d.ts +4 -0
  24. package/@types/persisters/persister-sqlite-wasm/index.d.ts +4 -0
  25. package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +4 -0
  26. package/@types/persisters/persister-sqlite3/index.d.ts +4 -0
  27. package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +4 -0
  28. package/@types/queries/index.d.ts +1 -1
  29. package/@types/store/index.d.ts +21 -19
  30. package/@types/store/with-schemas/index.d.ts +15 -13
  31. package/agents.md +62 -0
  32. package/checkpoints/index.js +8 -6
  33. package/checkpoints/with-schemas/index.js +8 -6
  34. package/common/index.js +4 -3
  35. package/common/with-schemas/index.js +4 -3
  36. package/index.js +60 -30
  37. package/indexes/index.js +7 -5
  38. package/indexes/with-schemas/index.js +7 -5
  39. package/mergeable-store/index.js +51 -21
  40. package/mergeable-store/with-schemas/index.js +51 -21
  41. package/metrics/index.js +7 -5
  42. package/metrics/with-schemas/index.js +7 -5
  43. package/min/checkpoints/index.js +1 -1
  44. package/min/checkpoints/index.js.gz +0 -0
  45. package/min/checkpoints/with-schemas/index.js +1 -1
  46. package/min/checkpoints/with-schemas/index.js.gz +0 -0
  47. package/min/common/index.js +1 -1
  48. package/min/common/index.js.gz +0 -0
  49. package/min/common/with-schemas/index.js +1 -1
  50. package/min/common/with-schemas/index.js.gz +0 -0
  51. package/min/index.js +1 -1
  52. package/min/index.js.gz +0 -0
  53. package/min/indexes/index.js +1 -1
  54. package/min/indexes/index.js.gz +0 -0
  55. package/min/indexes/with-schemas/index.js +1 -1
  56. package/min/indexes/with-schemas/index.js.gz +0 -0
  57. package/min/mergeable-store/index.js +1 -1
  58. package/min/mergeable-store/index.js.gz +0 -0
  59. package/min/mergeable-store/with-schemas/index.js +1 -1
  60. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  61. package/min/metrics/index.js +1 -1
  62. package/min/metrics/index.js.gz +0 -0
  63. package/min/metrics/with-schemas/index.js +1 -1
  64. package/min/metrics/with-schemas/index.js.gz +0 -0
  65. package/min/omni/index.js +1 -1
  66. package/min/omni/index.js.gz +0 -0
  67. package/min/omni/with-schemas/index.js +1 -1
  68. package/min/omni/with-schemas/index.js.gz +0 -0
  69. package/min/persisters/index.js +1 -1
  70. package/min/persisters/index.js.gz +0 -0
  71. package/min/persisters/persister-automerge/index.js +1 -1
  72. package/min/persisters/persister-automerge/index.js.gz +0 -0
  73. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  74. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  75. package/min/persisters/persister-browser/index.js +1 -1
  76. package/min/persisters/persister-browser/index.js.gz +0 -0
  77. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  78. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  79. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  80. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  81. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  82. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  83. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  84. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  85. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  86. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  87. package/min/persisters/persister-durable-object-storage/index.js +1 -1
  88. package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  89. package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
  90. package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  91. package/min/persisters/persister-electric-sql/index.js +1 -1
  92. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  93. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  94. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  95. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  96. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  97. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  98. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  99. package/min/persisters/persister-file/index.js +1 -1
  100. package/min/persisters/persister-file/index.js.gz +0 -0
  101. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  102. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  103. package/min/persisters/persister-indexed-db/index.js +1 -1
  104. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  105. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  106. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  107. package/min/persisters/persister-libsql/index.js +1 -1
  108. package/min/persisters/persister-libsql/index.js.gz +0 -0
  109. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  110. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  111. package/min/persisters/persister-partykit-client/index.js +1 -1
  112. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  113. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  114. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  115. package/min/persisters/persister-partykit-server/index.js +1 -1
  116. package/min/persisters/persister-partykit-server/index.js.gz +0 -0
  117. package/min/persisters/persister-partykit-server/with-schemas/index.js +1 -1
  118. package/min/persisters/persister-partykit-server/with-schemas/index.js.gz +0 -0
  119. package/min/persisters/persister-pglite/index.js +1 -1
  120. package/min/persisters/persister-pglite/index.js.gz +0 -0
  121. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  122. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  123. package/min/persisters/persister-postgres/index.js +1 -1
  124. package/min/persisters/persister-postgres/index.js.gz +0 -0
  125. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  126. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  127. package/min/persisters/persister-powersync/index.js +1 -1
  128. package/min/persisters/persister-powersync/index.js.gz +0 -0
  129. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  130. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  131. package/min/persisters/persister-react-native-mmkv/index.js +1 -1
  132. package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
  133. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
  134. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
  135. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  136. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  137. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  138. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  139. package/min/persisters/persister-remote/index.js +1 -1
  140. package/min/persisters/persister-remote/index.js.gz +0 -0
  141. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  142. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  143. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  144. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  145. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  146. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  147. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  148. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  149. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  150. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  151. package/min/persisters/persister-sqlite3/index.js +1 -1
  152. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  153. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  154. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  155. package/min/persisters/persister-yjs/index.js +1 -1
  156. package/min/persisters/persister-yjs/index.js.gz +0 -0
  157. package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  158. package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  159. package/min/persisters/with-schemas/index.js +1 -1
  160. package/min/persisters/with-schemas/index.js.gz +0 -0
  161. package/min/queries/index.js +1 -1
  162. package/min/queries/index.js.gz +0 -0
  163. package/min/queries/with-schemas/index.js +1 -1
  164. package/min/queries/with-schemas/index.js.gz +0 -0
  165. package/min/relationships/index.js +1 -1
  166. package/min/relationships/index.js.gz +0 -0
  167. package/min/relationships/with-schemas/index.js +1 -1
  168. package/min/relationships/with-schemas/index.js.gz +0 -0
  169. package/min/store/index.js +1 -1
  170. package/min/store/index.js.gz +0 -0
  171. package/min/store/with-schemas/index.js +1 -1
  172. package/min/store/with-schemas/index.js.gz +0 -0
  173. package/min/synchronizers/index.js +1 -1
  174. package/min/synchronizers/index.js.gz +0 -0
  175. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  176. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  177. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  178. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  179. package/min/synchronizers/synchronizer-local/index.js +1 -1
  180. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  181. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  182. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  183. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  184. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  185. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  186. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  187. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  188. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  189. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  190. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  191. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  192. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  193. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  194. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  195. package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
  196. package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
  197. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
  198. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
  199. package/min/synchronizers/with-schemas/index.js +1 -1
  200. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  201. package/min/ui-react/index.js +1 -1
  202. package/min/ui-react/index.js.gz +0 -0
  203. package/min/ui-react/with-schemas/index.js +1 -1
  204. package/min/ui-react/with-schemas/index.js.gz +0 -0
  205. package/min/ui-react-dom/index.js +1 -1
  206. package/min/ui-react-dom/index.js.gz +0 -0
  207. package/min/ui-react-dom/with-schemas/index.js +1 -1
  208. package/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  209. package/min/ui-react-inspector/index.js +1 -1
  210. package/min/ui-react-inspector/index.js.gz +0 -0
  211. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  212. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  213. package/min/with-schemas/index.js +1 -1
  214. package/min/with-schemas/index.js.gz +0 -0
  215. package/omni/index.js +78 -46
  216. package/omni/with-schemas/index.js +78 -46
  217. package/package.json +3 -3
  218. package/persisters/index.js +14 -10
  219. package/persisters/persister-automerge/index.js +12 -8
  220. package/persisters/persister-automerge/with-schemas/index.js +12 -8
  221. package/persisters/persister-browser/index.js +12 -8
  222. package/persisters/persister-browser/with-schemas/index.js +12 -8
  223. package/persisters/persister-cr-sqlite-wasm/index.js +14 -10
  224. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +14 -10
  225. package/persisters/persister-durable-object-sql-storage/index.js +14 -10
  226. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +14 -10
  227. package/persisters/persister-durable-object-storage/index.js +12 -8
  228. package/persisters/persister-durable-object-storage/with-schemas/index.js +12 -8
  229. package/persisters/persister-electric-sql/index.js +14 -10
  230. package/persisters/persister-electric-sql/with-schemas/index.js +14 -10
  231. package/persisters/persister-expo-sqlite/index.js +14 -10
  232. package/persisters/persister-expo-sqlite/with-schemas/index.js +14 -10
  233. package/persisters/persister-file/index.js +12 -8
  234. package/persisters/persister-file/with-schemas/index.js +12 -8
  235. package/persisters/persister-indexed-db/index.js +12 -8
  236. package/persisters/persister-indexed-db/with-schemas/index.js +12 -8
  237. package/persisters/persister-libsql/index.js +14 -10
  238. package/persisters/persister-libsql/with-schemas/index.js +14 -10
  239. package/persisters/persister-partykit-client/index.js +12 -8
  240. package/persisters/persister-partykit-client/with-schemas/index.js +12 -8
  241. package/persisters/persister-partykit-server/index.js +4 -3
  242. package/persisters/persister-partykit-server/with-schemas/index.js +4 -3
  243. package/persisters/persister-pglite/index.js +13 -9
  244. package/persisters/persister-pglite/with-schemas/index.js +13 -9
  245. package/persisters/persister-postgres/index.js +13 -9
  246. package/persisters/persister-postgres/with-schemas/index.js +13 -9
  247. package/persisters/persister-powersync/index.js +14 -10
  248. package/persisters/persister-powersync/with-schemas/index.js +14 -10
  249. package/persisters/persister-react-native-mmkv/index.js +12 -8
  250. package/persisters/persister-react-native-mmkv/with-schemas/index.js +12 -8
  251. package/persisters/persister-react-native-sqlite/index.js +14 -10
  252. package/persisters/persister-react-native-sqlite/with-schemas/index.js +14 -10
  253. package/persisters/persister-remote/index.js +14 -10
  254. package/persisters/persister-remote/with-schemas/index.js +14 -10
  255. package/persisters/persister-sqlite-bun/index.js +14 -10
  256. package/persisters/persister-sqlite-bun/with-schemas/index.js +14 -10
  257. package/persisters/persister-sqlite-wasm/index.js +14 -10
  258. package/persisters/persister-sqlite-wasm/with-schemas/index.js +14 -10
  259. package/persisters/persister-sqlite3/index.js +14 -10
  260. package/persisters/persister-sqlite3/with-schemas/index.js +14 -10
  261. package/persisters/persister-yjs/index.js +18 -12
  262. package/persisters/persister-yjs/with-schemas/index.js +18 -12
  263. package/persisters/with-schemas/index.js +14 -10
  264. package/queries/index.js +17 -12
  265. package/queries/with-schemas/index.js +17 -12
  266. package/readme.md +2 -2
  267. package/relationships/index.js +7 -5
  268. package/relationships/with-schemas/index.js +7 -5
  269. package/releases.md +100 -12
  270. package/store/index.js +48 -18
  271. package/store/with-schemas/index.js +48 -18
  272. package/synchronizers/index.js +13 -9
  273. package/synchronizers/synchronizer-broadcast-channel/index.js +14 -10
  274. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +14 -10
  275. package/synchronizers/synchronizer-local/index.js +14 -10
  276. package/synchronizers/synchronizer-local/with-schemas/index.js +14 -10
  277. package/synchronizers/synchronizer-ws-client/index.js +13 -9
  278. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +13 -9
  279. package/synchronizers/synchronizer-ws-server/index.js +13 -9
  280. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +13 -9
  281. package/synchronizers/synchronizer-ws-server-durable-object/index.js +13 -9
  282. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +13 -9
  283. package/synchronizers/synchronizer-ws-server-simple/index.js +5 -4
  284. package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +5 -4
  285. package/synchronizers/with-schemas/index.js +13 -9
  286. package/ui-react/index.js +9 -6
  287. package/ui-react/with-schemas/index.js +9 -6
  288. package/ui-react-dom/index.js +14 -7
  289. package/ui-react-dom/with-schemas/index.js +14 -7
  290. package/ui-react-inspector/index.js +53 -23
  291. package/ui-react-inspector/with-schemas/index.js +53 -23
  292. package/with-schemas/index.js +60 -30
@@ -6,6 +6,7 @@ const NUMBER = getTypeOf(0);
6
6
  const FUNCTION = getTypeOf(getTypeOf);
7
7
  const TYPE = 'type';
8
8
  const DEFAULT = 'default';
9
+ const ALLOW_NULL = 'allowNull';
9
10
  const LISTENER = 'Listener';
10
11
  const SET = 'set';
11
12
  const ADD = 'add';
@@ -30,15 +31,19 @@ const strEndsWith = (str, suffix) => str.endsWith(suffix);
30
31
  const strSplit = (str, separator = EMPTY_STRING, limit) =>
31
32
  str.split(separator, limit);
32
33
 
34
+ const getIfNotFunction = (predicate) => (value, then, otherwise) =>
35
+ predicate(value) ? otherwise?.() : then(value);
33
36
  const GLOBAL = globalThis;
34
37
  const math = Math;
35
38
  const mathMax = math.max;
36
39
  const mathFloor = math.floor;
37
40
  const isFiniteNumber = isFinite;
38
41
  const isInstanceOf = (thing, cls) => thing instanceof cls;
39
- const isUndefined = (thing) => thing == void 0;
40
- const ifNotUndefined = (value, then, otherwise) =>
41
- isUndefined(value) ? otherwise?.() : then(value);
42
+ const isNullish = (thing) => thing == null;
43
+ const isUndefined = (thing) => thing === void 0;
44
+ const isNull = (thing) => thing === null;
45
+ const ifNotNullish = getIfNotFunction(isNullish);
46
+ const ifNotUndefined = getIfNotFunction(isUndefined);
42
47
  const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
43
48
  const isString = (thing) => getTypeOf(thing) == STRING;
44
49
  const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
@@ -57,13 +62,16 @@ const tryCatch = async (action, then1, then2) => {
57
62
  };
58
63
 
59
64
  const getCellOrValueType = (cellOrValue) => {
65
+ if (isNull(cellOrValue)) {
66
+ return 'null';
67
+ }
60
68
  const type = getTypeOf(cellOrValue);
61
69
  return isTypeStringOrBoolean(type) ||
62
70
  (type == NUMBER && isFiniteNumber(cellOrValue))
63
71
  ? type
64
72
  : void 0;
65
73
  };
66
- const isCellOrValueOrNullOrUndefined = (cellOrValue) =>
74
+ const isCellOrValueOrUndefined = (cellOrValue) =>
67
75
  isUndefined(cellOrValue) || !isUndefined(getCellOrValueType(cellOrValue));
68
76
  const setOrDelCell = (store, tableId, rowId, cellId, cell) =>
69
77
  isUndefined(cell)
@@ -102,12 +110,12 @@ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
102
110
  const objFrozen = object.isFrozen;
103
111
  const objEntries = object.entries;
104
112
  const isObject = (obj) =>
105
- !isUndefined(obj) &&
106
- ifNotUndefined(
113
+ !isNullish(obj) &&
114
+ ifNotNullish(
107
115
  getPrototypeOf(obj),
108
116
  (objPrototype) =>
109
117
  objPrototype == object.prototype ||
110
- isUndefined(getPrototypeOf(objPrototype)),
118
+ isNullish(getPrototypeOf(objPrototype)),
111
119
 
112
120
  /* istanbul ignore next */
113
121
  () => true,
@@ -136,7 +144,7 @@ const objEnsure = (obj, id, getDefaultValue) => {
136
144
  };
137
145
  const objValidate = (obj, validateChild, onInvalidObj, emptyIsValid = 0) => {
138
146
  if (
139
- isUndefined(obj) ||
147
+ isNullish(obj) ||
140
148
  !isObject(obj) ||
141
149
  (!emptyIsValid && objIsEmpty(obj)) ||
142
150
  objFrozen(obj)
@@ -183,7 +191,7 @@ const mapForEach = (map, cb) =>
183
191
  const mapMap = (coll, cb) =>
184
192
  arrayMap([...(coll?.entries() ?? [])], ([key, value]) => cb(value, key));
185
193
  const mapSet = (map, key, value) =>
186
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
194
+ value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
187
195
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
188
196
  if (!collHas(map, key)) {
189
197
  mapSet(map, key, getDefaultValue());
@@ -468,7 +476,7 @@ const getListenerFunctions = (getThing) => {
468
476
  const index = size(ids);
469
477
  if (index == size(path)) {
470
478
  listener(thing, ...ids, ...extraArgsGetter(ids));
471
- } else if (isUndefined(path[index])) {
479
+ } else if (isNull(path[index])) {
472
480
  arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
473
481
  callWithIds(...ids, id2),
474
482
  );
@@ -553,14 +561,22 @@ const createStore = () => {
553
561
  const validateValuesSchema = (valuesSchema) =>
554
562
  objValidate(valuesSchema, validateCellOrValueSchema);
555
563
  const validateCellOrValueSchema = (schema) => {
556
- if (!objValidate(schema, (_child, id2) => arrayHas([TYPE, DEFAULT], id2))) {
564
+ if (
565
+ !objValidate(schema, (_child, id2) =>
566
+ arrayHas([TYPE, DEFAULT, ALLOW_NULL], id2),
567
+ )
568
+ ) {
557
569
  return false;
558
570
  }
559
571
  const type = schema[TYPE];
560
572
  if (!isTypeStringOrBoolean(type) && type != NUMBER) {
561
573
  return false;
562
574
  }
563
- if (getCellOrValueType(schema[DEFAULT]) != type) {
575
+ const defaultValue = schema[DEFAULT];
576
+ if (isNull(defaultValue) && !schema[ALLOW_NULL]) {
577
+ return false;
578
+ }
579
+ if (!isNull(defaultValue) && getCellOrValueType(defaultValue) != type) {
564
580
  objDel(schema, DEFAULT);
565
581
  }
566
582
  return true;
@@ -597,9 +613,19 @@ const createStore = () => {
597
613
  ? ifNotUndefined(
598
614
  mapGet(mapGet(tablesSchemaMap, tableId), cellId),
599
615
  (cellSchema) =>
600
- getCellOrValueType(cell) != cellSchema[TYPE]
601
- ? cellInvalid(tableId, rowId, cellId, cell, cellSchema[DEFAULT])
602
- : cell,
616
+ isNull(cell)
617
+ ? cellSchema[ALLOW_NULL]
618
+ ? cell
619
+ : cellInvalid(tableId, rowId, cellId, cell, cellSchema[DEFAULT])
620
+ : getCellOrValueType(cell) == cellSchema[TYPE]
621
+ ? cell
622
+ : cellInvalid(
623
+ tableId,
624
+ rowId,
625
+ cellId,
626
+ cell,
627
+ cellSchema[DEFAULT],
628
+ ),
603
629
  () => cellInvalid(tableId, rowId, cellId, cell),
604
630
  )
605
631
  : isUndefined(getCellOrValueType(cell))
@@ -624,9 +650,13 @@ const createStore = () => {
624
650
  ? ifNotUndefined(
625
651
  mapGet(valuesSchemaMap, valueId),
626
652
  (valueSchema) =>
627
- getCellOrValueType(value) != valueSchema[TYPE]
628
- ? valueInvalid(valueId, value, valueSchema[DEFAULT])
629
- : value,
653
+ isNull(value)
654
+ ? valueSchema[ALLOW_NULL]
655
+ ? value
656
+ : valueInvalid(valueId, value, valueSchema[DEFAULT])
657
+ : getCellOrValueType(value) == valueSchema[TYPE]
658
+ ? value
659
+ : valueInvalid(valueId, value, valueSchema[DEFAULT]),
630
660
  () => valueInvalid(valueId, value),
631
661
  )
632
662
  : isUndefined(getCellOrValueType(value))
@@ -869,7 +899,7 @@ const createStore = () => {
869
899
  mapSet(
870
900
  cellIds,
871
901
  cellId,
872
- count != -addedOrRemoved ? count + addedOrRemoved : null,
902
+ count != -addedOrRemoved ? count + addedOrRemoved : void 0,
873
903
  );
874
904
  idsChanged(
875
905
  mapEnsure(mapEnsure(changedCellIds, tableId, mapNew), rowId, mapNew),
@@ -1878,7 +1908,7 @@ const validateMergeableContent = (mergeableContent) =>
1878
1908
  objValidate(
1879
1909
  cellStamps,
1880
1910
  (cellStamp) =>
1881
- stampValidate(cellStamp, isCellOrValueOrNullOrUndefined),
1911
+ stampValidate(cellStamp, isCellOrValueOrUndefined),
1882
1912
  void 0,
1883
1913
  1,
1884
1914
  ),
@@ -1894,7 +1924,7 @@ const validateMergeableContent = (mergeableContent) =>
1894
1924
  stampValidate(mergeableContent[1], (values) =>
1895
1925
  objValidate(
1896
1926
  values,
1897
- (value) => stampValidate(value, isCellOrValueOrNullOrUndefined),
1927
+ (value) => stampValidate(value, isCellOrValueOrUndefined),
1898
1928
  void 0,
1899
1929
  1,
1900
1930
  ),
package/metrics/index.js CHANGED
@@ -7,13 +7,15 @@ const AVG = 'avg';
7
7
  const MIN = 'min';
8
8
  const MAX = 'max';
9
9
 
10
+ const getIfNotFunction = (predicate) => (value, then, otherwise) =>
11
+ predicate(value) ? otherwise?.() : then(value);
10
12
  const math = Math;
11
13
  const mathMax = math.max;
12
14
  const mathMin = math.min;
13
15
  const isFiniteNumber = isFinite;
14
- const isUndefined = (thing) => thing == void 0;
15
- const ifNotUndefined = (value, then, otherwise) =>
16
- isUndefined(value) ? otherwise?.() : then(value);
16
+ const isUndefined = (thing) => thing === void 0;
17
+ const isNull = (thing) => thing === null;
18
+ const ifNotUndefined = getIfNotFunction(isUndefined);
17
19
  const isString = (thing) => getTypeOf(thing) == STRING;
18
20
  const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
19
21
  const isArray = (thing) => Array.isArray(thing);
@@ -52,7 +54,7 @@ const mapGet = (map, key) => map?.get(key);
52
54
  const mapForEach = (map, cb) =>
53
55
  collForEach(map, (value, key) => cb(key, value));
54
56
  const mapSet = (map, key, value) =>
55
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
57
+ value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
56
58
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
57
59
  if (!collHas(map, key)) {
58
60
  mapSet(map, key, getDefaultValue());
@@ -403,7 +405,7 @@ const getListenerFunctions = (getThing) => {
403
405
  const index = size(ids);
404
406
  if (index == size(path)) {
405
407
  listener(thing, ...ids, ...extraArgsGetter(ids));
406
- } else if (isUndefined(path[index])) {
408
+ } else if (isNull(path[index])) {
407
409
  arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
408
410
  callWithIds(...ids, id2),
409
411
  );
@@ -7,13 +7,15 @@ const AVG = 'avg';
7
7
  const MIN = 'min';
8
8
  const MAX = 'max';
9
9
 
10
+ const getIfNotFunction = (predicate) => (value, then, otherwise) =>
11
+ predicate(value) ? otherwise?.() : then(value);
10
12
  const math = Math;
11
13
  const mathMax = math.max;
12
14
  const mathMin = math.min;
13
15
  const isFiniteNumber = isFinite;
14
- const isUndefined = (thing) => thing == void 0;
15
- const ifNotUndefined = (value, then, otherwise) =>
16
- isUndefined(value) ? otherwise?.() : then(value);
16
+ const isUndefined = (thing) => thing === void 0;
17
+ const isNull = (thing) => thing === null;
18
+ const ifNotUndefined = getIfNotFunction(isUndefined);
17
19
  const isString = (thing) => getTypeOf(thing) == STRING;
18
20
  const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
19
21
  const isArray = (thing) => Array.isArray(thing);
@@ -52,7 +54,7 @@ const mapGet = (map, key) => map?.get(key);
52
54
  const mapForEach = (map, cb) =>
53
55
  collForEach(map, (value, key) => cb(key, value));
54
56
  const mapSet = (map, key, value) =>
55
- isUndefined(value) ? (collDel(map, key), map) : map?.set(key, value);
57
+ value === void 0 ? (collDel(map, key), map) : map?.set(key, value);
56
58
  const mapEnsure = (map, key, getDefaultValue, hadExistingValue) => {
57
59
  if (!collHas(map, key)) {
58
60
  mapSet(map, key, getDefaultValue());
@@ -403,7 +405,7 @@ const getListenerFunctions = (getThing) => {
403
405
  const index = size(ids);
404
406
  if (index == size(path)) {
405
407
  listener(thing, ...ids, ...extraArgsGetter(ids));
406
- } else if (isUndefined(path[index])) {
408
+ } else if (isNull(path[index])) {
407
409
  arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
408
410
  callWithIds(...ids, id2),
409
411
  );
@@ -1 +1 @@
1
- const e=e=>null==e,t=(t,n,r)=>e(t)?r?.():n(t),n=e=>e.length,r=(e,t)=>e.includes(t),s=(e,t)=>e.forEach(t),o=e=>0==n(e),l=(e,...t)=>e.push(...t),c=e=>e.pop(),i=e=>e.shift(),a=e=>e?.size??0,d=(u=a,e=>{return t=(e,t)=>e+u(t),g(e).reduce(t,0);var t});var u;const h=(e,t)=>e?.has(t)??!1,p=t=>e(t)||0==a(t),g=e=>[...e?.values()??[]],k=(e,t)=>e?.forEach(t),C=(e,t)=>e?.delete(t),f=Object.freeze,v=e=>new Map(e),L=(e,t)=>e?.get(t),w=(t,n,r)=>e(r)?(C(t,n),t):t?.set(n,r),S=(e,t,n,r)=>(h(e,t)?r?.(L(e,t)):w(e,t,n()),L(e,t)),y=(e,r,s,o,l=0)=>t((s?S:L)(e,r[l],l>n(r)-2?s:v),t=>{if(l>n(r)-2)return o?.(t)&&w(e,r[l]),t;const c=y(t,r,s,o,l+1);return p(t)&&w(e,r[l]),c}),z=t=>new Set(Array.isArray(t)||e(t)?t:[t]),E=/^\d+$/,I=(()=>{const a=new WeakMap;return u=>{a.has(u)||a.set(u,(a=>{let u,g,I,V=100,A=v(),F=v(),M=1;const _=v(),b=v(),[j,x,B]=(()=>{let r;const[o,c]=(()=>{const e=[];let t=0;return[n=>(n?i(e):null)??""+t++,t=>{E.test(t)&&n(e)<1e3&&l(e,t)}]})(),a=v();return[(e,t,n,s=[],l=()=>[])=>{r??=ee;const c=o(1);var i,d;return w(a,c,[e,t,n,s,l]),i=y(t,n??[""],z),d=c,i?.add(d),c},(e,t,...o)=>s(((e,t=[""])=>{const r=[],o=(e,c)=>c==n(t)?l(r,e):null===t[c]?k(e,e=>o(e,c+1)):s([t[c],null],t=>o(L(e,t),c+1));return o(e,0),r})(e,t),e=>k(e,e=>L(a,e)[0](r,...t??[],...o))),e=>t(L(a,e),([,t,n])=>(y(t,n??[""],void 0,t=>(C(t,e),p(t)?1:0)),w(a,e),c(e),n)),o=>t(L(a,o),([t,,o=[],l,c])=>{const i=(...a)=>{const d=n(a);d==n(o)?t(r,...a,...c(a)):e(o[d])?s(l[d]?.(...a)??[],e=>i(...a,e)):i(...a,o[d])};i()})]})(),O=v(),T=v(),W=[],$=[],m=(t,n)=>{M=0,a.transaction(()=>{const[r,s]=L(O,n);k(r,(n,r)=>k(n,(n,s)=>k(n,(n,o)=>((t,n,r,s,o)=>e(o)?t.delCell(n,r,s,!0):t.setCell(n,r,s,o))(a,r,s,o,n[t])))),k(s,(n,r)=>((t,n,r)=>e(r)?t.delValue(n):t.setValue(n,r))(a,r,n[t]))}),M=1},q=e=>{w(O,e),w(T,e),x(b,[e])},D=(e,t)=>s(((e,t)=>e.splice(0,t))(e,t??n(e)),q),G=()=>D(W,n(W)-V),H=()=>t(u,()=>{l(W,u),G(),D($),u=void 0,I=1}),J=()=>{u=c(W),I=1};let K,N;const P=(t="")=>(e(u)&&(u=""+g++,w(O,u,[A,F]),Y(u,t),A=v(),F=v(),I=1),u),Q=()=>{o(W)||(((e,...t)=>{e.unshift(...t)})($,P()),m(0,u),u=c(W),I=1)},R=()=>{o($)||(l(W,u),u=i($),m(1,u),I=1)},U=()=>{I&&(x(_),I=0)},X=e=>{const t=P(e);return U(),t},Y=(e,t)=>(Z(e)&&L(T,e)!==t&&(w(T,e,t),x(b,[e])),ee),Z=e=>h(O,e),ee={setSize:e=>(V=e,G(),ee),addCheckpoint:X,setCheckpoint:Y,getStore:()=>a,getCheckpointIds:()=>[[...W],u,[...$]],forEachCheckpoint:e=>{return t=e,k(T,(e,n)=>t(n,e));var t},hasCheckpoint:Z,getCheckpoint:e=>L(T,e),goBackward:()=>(Q(),U(),ee),goForward:()=>(R(),U(),ee),goTo:t=>{const n=r(W,t)?Q:r($,t)?R:null;for(;!e(n)&&t!=u;)n();return U(),ee},addCheckpointIdsListener:e=>j(e,_),addCheckpointListener:(e,t)=>j(t,b,[e]),delListener:e=>(B(e),ee),clear:()=>(D(W),D($),e(u)||q(u),u=void 0,g=0,X(),ee),clearForward:()=>(o($)||(D($),x(_)),ee),destroy:()=>{a.delListener(K),a.delListener(N)},getListenerStats:()=>({checkpointIds:d(_),checkpoint:d(b)}),_registerListeners:()=>{K=a.addCellListener(null,null,null,(e,t,n,r,s,o)=>{if(M){H();const e=S(A,t,v),l=S(e,n,v),c=S(l,r,()=>[o,void 0]);c[1]=s,c[0]===s&&p(w(l,r))&&p(w(e,n))&&p(w(A,t))&&J(),U()}}),N=a.addValueListener(null,(e,t,n,r)=>{if(M){H();const e=S(F,t,()=>[r,void 0]);e[1]=n,e[0]===n&&p(w(F,t))&&J(),U()}})}};return f(ee.clear())})(u));const g=a.get(u);return g._registerListeners(),g}})();export{I as createCheckpoints};
1
+ const e=e=>void 0===e,t=(n=e,(e,t,r)=>n(e)?r?.():t(e));var n;const r=e=>e.length,s=(e,t)=>e.includes(t),o=(e,t)=>e.forEach(t),c=e=>0==r(e),l=(e,...t)=>e.push(...t),i=e=>e.pop(),a=e=>e.shift(),d=e=>e?.size??0,u=(h=d,e=>{return t=(e,t)=>e+h(t),g(e).reduce(t,0);var t});var h;const p=(e,t)=>e?.has(t)??!1,v=t=>e(t)||0==d(t),g=e=>[...e?.values()??[]],k=(e,t)=>e?.forEach(t),C=(e,t)=>e?.delete(t),f=Object.freeze,L=e=>new Map(e),w=(e,t)=>e?.get(t),S=(e,t,n)=>void 0===n?(C(e,t),e):e?.set(t,n),y=(e,t,n,r)=>(p(e,t)?r?.(w(e,t)):S(e,t,n()),w(e,t)),z=(e,n,s,o,c=0)=>t((s?y:w)(e,n[c],c>r(n)-2?s:L),t=>{if(c>r(n)-2)return o?.(t)&&S(e,n[c]),t;const l=z(t,n,s,o,c+1);return v(t)&&S(e,n[c]),l}),E=t=>new Set(Array.isArray(t)||e(t)?t:[t]),I=/^\d+$/,V=(()=>{const n=new WeakMap;return d=>{n.has(d)||n.set(d,(n=>{let d,h,g,V=100,A=L(),F=L(),M=1;const _=L(),b=L(),[j,x,B]=(()=>{let e;const[n,s]=(()=>{const e=[];let t=0;return[n=>(n?a(e):null)??""+t++,t=>{I.test(t)&&r(e)<1e3&&l(e,t)}]})(),c=L();return[(t,r,s,o=[],l=()=>[])=>{e??=ee;const i=n(1);var a,d;return S(c,i,[t,r,s,o,l]),a=z(r,s??[""],E),d=i,a?.add(d),i},(t,n,...s)=>o(((e,t=[""])=>{const n=[],s=(e,c)=>c==r(t)?l(n,e):null===t[c]?k(e,e=>s(e,c+1)):o([t[c],null],t=>s(w(e,t),c+1));return s(e,0),n})(t,n),t=>k(t,t=>w(c,t)[0](e,...n??[],...s))),e=>t(w(c,e),([,t,n])=>(z(t,n??[""],void 0,t=>(C(t,e),v(t)?1:0)),S(c,e),s(e),n)),n=>t(w(c,n),([t,,n=[],s,c])=>{const l=(...i)=>{const a=r(i);a==r(n)?t(e,...i,...c(i)):(e=>null===e)(n[a])?o(s[a]?.(...i)??[],e=>l(...i,e)):l(...i,n[a])};l()})]})(),O=L(),T=L(),W=[],$=[],m=(t,r)=>{M=0,n.transaction(()=>{const[s,o]=w(O,r);k(s,(r,s)=>k(r,(r,o)=>k(r,(r,c)=>((t,n,r,s,o)=>e(o)?t.delCell(n,r,s,!0):t.setCell(n,r,s,o))(n,s,o,c,r[t])))),k(o,(r,s)=>((t,n,r)=>e(r)?t.delValue(n):t.setValue(n,r))(n,s,r[t]))}),M=1},q=e=>{S(O,e),S(T,e),x(b,[e])},D=(e,t)=>o(((e,t)=>e.splice(0,t))(e,t??r(e)),q),G=()=>D(W,r(W)-V),H=()=>t(d,()=>{l(W,d),G(),D($),d=void 0,g=1}),J=()=>{d=i(W),g=1};let K,N;const P=(t="")=>(e(d)&&(d=""+h++,S(O,d,[A,F]),Y(d,t),A=L(),F=L(),g=1),d),Q=()=>{c(W)||(((e,...t)=>{e.unshift(...t)})($,P()),m(0,d),d=i(W),g=1)},R=()=>{c($)||(l(W,d),d=a($),m(1,d),g=1)},U=()=>{g&&(x(_),g=0)},X=e=>{const t=P(e);return U(),t},Y=(e,t)=>(Z(e)&&w(T,e)!==t&&(S(T,e,t),x(b,[e])),ee),Z=e=>p(O,e),ee={setSize:e=>(V=e,G(),ee),addCheckpoint:X,setCheckpoint:Y,getStore:()=>n,getCheckpointIds:()=>[[...W],d,[...$]],forEachCheckpoint:e=>{return t=e,k(T,(e,n)=>t(n,e));var t},hasCheckpoint:Z,getCheckpoint:e=>w(T,e),goBackward:()=>(Q(),U(),ee),goForward:()=>(R(),U(),ee),goTo:t=>{const n=s(W,t)?Q:s($,t)?R:void 0;for(;!e(n)&&t!=d;)n();return U(),ee},addCheckpointIdsListener:e=>j(e,_),addCheckpointListener:(e,t)=>j(t,b,[e]),delListener:e=>(B(e),ee),clear:()=>(D(W),D($),e(d)||q(d),d=void 0,h=0,X(),ee),clearForward:()=>(c($)||(D($),x(_)),ee),destroy:()=>{n.delListener(K),n.delListener(N)},getListenerStats:()=>({checkpointIds:u(_),checkpoint:u(b)}),_registerListeners:()=>{K=n.addCellListener(null,null,null,(e,t,n,r,s,o)=>{if(M){H();const e=y(A,t,L),c=y(e,n,L),l=y(c,r,()=>[o,void 0]);l[1]=s,l[0]===s&&v(S(c,r))&&v(S(e,n))&&v(S(A,t))&&J(),U()}}),N=n.addValueListener(null,(e,t,n,r)=>{if(M){H();const e=y(F,t,()=>[r,void 0]);e[1]=n,e[0]===n&&v(S(F,t))&&J(),U()}})}};return f(ee.clear())})(d));const h=n.get(d);return h._registerListeners(),h}})();export{V as createCheckpoints};
Binary file
@@ -1 +1 @@
1
- const e=e=>null==e,t=(t,n,r)=>e(t)?r?.():n(t),n=e=>e.length,r=(e,t)=>e.includes(t),s=(e,t)=>e.forEach(t),o=e=>0==n(e),l=(e,...t)=>e.push(...t),c=e=>e.pop(),i=e=>e.shift(),a=e=>e?.size??0,d=(u=a,e=>{return t=(e,t)=>e+u(t),g(e).reduce(t,0);var t});var u;const h=(e,t)=>e?.has(t)??!1,p=t=>e(t)||0==a(t),g=e=>[...e?.values()??[]],k=(e,t)=>e?.forEach(t),C=(e,t)=>e?.delete(t),f=Object.freeze,v=e=>new Map(e),L=(e,t)=>e?.get(t),w=(t,n,r)=>e(r)?(C(t,n),t):t?.set(n,r),S=(e,t,n,r)=>(h(e,t)?r?.(L(e,t)):w(e,t,n()),L(e,t)),y=(e,r,s,o,l=0)=>t((s?S:L)(e,r[l],l>n(r)-2?s:v),t=>{if(l>n(r)-2)return o?.(t)&&w(e,r[l]),t;const c=y(t,r,s,o,l+1);return p(t)&&w(e,r[l]),c}),z=t=>new Set(Array.isArray(t)||e(t)?t:[t]),E=/^\d+$/,I=(()=>{const a=new WeakMap;return u=>{a.has(u)||a.set(u,(a=>{let u,g,I,V=100,A=v(),F=v(),M=1;const _=v(),b=v(),[j,x,B]=(()=>{let r;const[o,c]=(()=>{const e=[];let t=0;return[n=>(n?i(e):null)??""+t++,t=>{E.test(t)&&n(e)<1e3&&l(e,t)}]})(),a=v();return[(e,t,n,s=[],l=()=>[])=>{r??=ee;const c=o(1);var i,d;return w(a,c,[e,t,n,s,l]),i=y(t,n??[""],z),d=c,i?.add(d),c},(e,t,...o)=>s(((e,t=[""])=>{const r=[],o=(e,c)=>c==n(t)?l(r,e):null===t[c]?k(e,e=>o(e,c+1)):s([t[c],null],t=>o(L(e,t),c+1));return o(e,0),r})(e,t),e=>k(e,e=>L(a,e)[0](r,...t??[],...o))),e=>t(L(a,e),([,t,n])=>(y(t,n??[""],void 0,t=>(C(t,e),p(t)?1:0)),w(a,e),c(e),n)),o=>t(L(a,o),([t,,o=[],l,c])=>{const i=(...a)=>{const d=n(a);d==n(o)?t(r,...a,...c(a)):e(o[d])?s(l[d]?.(...a)??[],e=>i(...a,e)):i(...a,o[d])};i()})]})(),O=v(),T=v(),W=[],$=[],m=(t,n)=>{M=0,a.transaction(()=>{const[r,s]=L(O,n);k(r,(n,r)=>k(n,(n,s)=>k(n,(n,o)=>((t,n,r,s,o)=>e(o)?t.delCell(n,r,s,!0):t.setCell(n,r,s,o))(a,r,s,o,n[t])))),k(s,(n,r)=>((t,n,r)=>e(r)?t.delValue(n):t.setValue(n,r))(a,r,n[t]))}),M=1},q=e=>{w(O,e),w(T,e),x(b,[e])},D=(e,t)=>s(((e,t)=>e.splice(0,t))(e,t??n(e)),q),G=()=>D(W,n(W)-V),H=()=>t(u,()=>{l(W,u),G(),D($),u=void 0,I=1}),J=()=>{u=c(W),I=1};let K,N;const P=(t="")=>(e(u)&&(u=""+g++,w(O,u,[A,F]),Y(u,t),A=v(),F=v(),I=1),u),Q=()=>{o(W)||(((e,...t)=>{e.unshift(...t)})($,P()),m(0,u),u=c(W),I=1)},R=()=>{o($)||(l(W,u),u=i($),m(1,u),I=1)},U=()=>{I&&(x(_),I=0)},X=e=>{const t=P(e);return U(),t},Y=(e,t)=>(Z(e)&&L(T,e)!==t&&(w(T,e,t),x(b,[e])),ee),Z=e=>h(O,e),ee={setSize:e=>(V=e,G(),ee),addCheckpoint:X,setCheckpoint:Y,getStore:()=>a,getCheckpointIds:()=>[[...W],u,[...$]],forEachCheckpoint:e=>{return t=e,k(T,(e,n)=>t(n,e));var t},hasCheckpoint:Z,getCheckpoint:e=>L(T,e),goBackward:()=>(Q(),U(),ee),goForward:()=>(R(),U(),ee),goTo:t=>{const n=r(W,t)?Q:r($,t)?R:null;for(;!e(n)&&t!=u;)n();return U(),ee},addCheckpointIdsListener:e=>j(e,_),addCheckpointListener:(e,t)=>j(t,b,[e]),delListener:e=>(B(e),ee),clear:()=>(D(W),D($),e(u)||q(u),u=void 0,g=0,X(),ee),clearForward:()=>(o($)||(D($),x(_)),ee),destroy:()=>{a.delListener(K),a.delListener(N)},getListenerStats:()=>({checkpointIds:d(_),checkpoint:d(b)}),_registerListeners:()=>{K=a.addCellListener(null,null,null,(e,t,n,r,s,o)=>{if(M){H();const e=S(A,t,v),l=S(e,n,v),c=S(l,r,()=>[o,void 0]);c[1]=s,c[0]===s&&p(w(l,r))&&p(w(e,n))&&p(w(A,t))&&J(),U()}}),N=a.addValueListener(null,(e,t,n,r)=>{if(M){H();const e=S(F,t,()=>[r,void 0]);e[1]=n,e[0]===n&&p(w(F,t))&&J(),U()}})}};return f(ee.clear())})(u));const g=a.get(u);return g._registerListeners(),g}})();export{I as createCheckpoints};
1
+ const e=e=>void 0===e,t=(n=e,(e,t,r)=>n(e)?r?.():t(e));var n;const r=e=>e.length,s=(e,t)=>e.includes(t),o=(e,t)=>e.forEach(t),c=e=>0==r(e),l=(e,...t)=>e.push(...t),i=e=>e.pop(),a=e=>e.shift(),d=e=>e?.size??0,u=(h=d,e=>{return t=(e,t)=>e+h(t),g(e).reduce(t,0);var t});var h;const p=(e,t)=>e?.has(t)??!1,v=t=>e(t)||0==d(t),g=e=>[...e?.values()??[]],k=(e,t)=>e?.forEach(t),C=(e,t)=>e?.delete(t),f=Object.freeze,L=e=>new Map(e),w=(e,t)=>e?.get(t),S=(e,t,n)=>void 0===n?(C(e,t),e):e?.set(t,n),y=(e,t,n,r)=>(p(e,t)?r?.(w(e,t)):S(e,t,n()),w(e,t)),z=(e,n,s,o,c=0)=>t((s?y:w)(e,n[c],c>r(n)-2?s:L),t=>{if(c>r(n)-2)return o?.(t)&&S(e,n[c]),t;const l=z(t,n,s,o,c+1);return v(t)&&S(e,n[c]),l}),E=t=>new Set(Array.isArray(t)||e(t)?t:[t]),I=/^\d+$/,V=(()=>{const n=new WeakMap;return d=>{n.has(d)||n.set(d,(n=>{let d,h,g,V=100,A=L(),F=L(),M=1;const _=L(),b=L(),[j,x,B]=(()=>{let e;const[n,s]=(()=>{const e=[];let t=0;return[n=>(n?a(e):null)??""+t++,t=>{I.test(t)&&r(e)<1e3&&l(e,t)}]})(),c=L();return[(t,r,s,o=[],l=()=>[])=>{e??=ee;const i=n(1);var a,d;return S(c,i,[t,r,s,o,l]),a=z(r,s??[""],E),d=i,a?.add(d),i},(t,n,...s)=>o(((e,t=[""])=>{const n=[],s=(e,c)=>c==r(t)?l(n,e):null===t[c]?k(e,e=>s(e,c+1)):o([t[c],null],t=>s(w(e,t),c+1));return s(e,0),n})(t,n),t=>k(t,t=>w(c,t)[0](e,...n??[],...s))),e=>t(w(c,e),([,t,n])=>(z(t,n??[""],void 0,t=>(C(t,e),v(t)?1:0)),S(c,e),s(e),n)),n=>t(w(c,n),([t,,n=[],s,c])=>{const l=(...i)=>{const a=r(i);a==r(n)?t(e,...i,...c(i)):(e=>null===e)(n[a])?o(s[a]?.(...i)??[],e=>l(...i,e)):l(...i,n[a])};l()})]})(),O=L(),T=L(),W=[],$=[],m=(t,r)=>{M=0,n.transaction(()=>{const[s,o]=w(O,r);k(s,(r,s)=>k(r,(r,o)=>k(r,(r,c)=>((t,n,r,s,o)=>e(o)?t.delCell(n,r,s,!0):t.setCell(n,r,s,o))(n,s,o,c,r[t])))),k(o,(r,s)=>((t,n,r)=>e(r)?t.delValue(n):t.setValue(n,r))(n,s,r[t]))}),M=1},q=e=>{S(O,e),S(T,e),x(b,[e])},D=(e,t)=>o(((e,t)=>e.splice(0,t))(e,t??r(e)),q),G=()=>D(W,r(W)-V),H=()=>t(d,()=>{l(W,d),G(),D($),d=void 0,g=1}),J=()=>{d=i(W),g=1};let K,N;const P=(t="")=>(e(d)&&(d=""+h++,S(O,d,[A,F]),Y(d,t),A=L(),F=L(),g=1),d),Q=()=>{c(W)||(((e,...t)=>{e.unshift(...t)})($,P()),m(0,d),d=i(W),g=1)},R=()=>{c($)||(l(W,d),d=a($),m(1,d),g=1)},U=()=>{g&&(x(_),g=0)},X=e=>{const t=P(e);return U(),t},Y=(e,t)=>(Z(e)&&w(T,e)!==t&&(S(T,e,t),x(b,[e])),ee),Z=e=>p(O,e),ee={setSize:e=>(V=e,G(),ee),addCheckpoint:X,setCheckpoint:Y,getStore:()=>n,getCheckpointIds:()=>[[...W],d,[...$]],forEachCheckpoint:e=>{return t=e,k(T,(e,n)=>t(n,e));var t},hasCheckpoint:Z,getCheckpoint:e=>w(T,e),goBackward:()=>(Q(),U(),ee),goForward:()=>(R(),U(),ee),goTo:t=>{const n=s(W,t)?Q:s($,t)?R:void 0;for(;!e(n)&&t!=d;)n();return U(),ee},addCheckpointIdsListener:e=>j(e,_),addCheckpointListener:(e,t)=>j(t,b,[e]),delListener:e=>(B(e),ee),clear:()=>(D(W),D($),e(d)||q(d),d=void 0,h=0,X(),ee),clearForward:()=>(c($)||(D($),x(_)),ee),destroy:()=>{n.delListener(K),n.delListener(N)},getListenerStats:()=>({checkpointIds:u(_),checkpoint:u(b)}),_registerListeners:()=>{K=n.addCellListener(null,null,null,(e,t,n,r,s,o)=>{if(M){H();const e=y(A,t,L),c=y(e,n,L),l=y(c,r,()=>[o,void 0]);l[1]=s,l[0]===s&&v(S(c,r))&&v(S(e,n))&&v(S(A,t))&&J(),U()}}),N=n.addValueListener(null,(e,t,n,r)=>{if(M){H();const e=y(F,t,()=>[r,void 0]);e[1]=n,e[0]===n&&v(S(F,t))&&J(),U()}})}};return f(ee.clear())})(d));const h=n.get(d);return h._registerListeners(),h}})();export{V as createCheckpoints};
@@ -1 +1 @@
1
- const e=(e,t="",n)=>e.split(t,n),t=globalThis,n=Math,r=n.max,o=n.floor,a=e=>null==e,c=(e,t)=>e.map(t),s=(e,t,n)=>e.reduce(t,n),l=Object,i=l.entries,u=e=>new Map(e),p=e("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),d=u(c(p,(e,t)=>[e,t])),f=e=>p[63&e],m=(e,t)=>{return n=d,r=e[t],n?.get(r)??0;var n,r},g=t.crypto?e=>t.crypto.getRandomValues(e):e=>c(e,()=>o(256*n.random())),w=(e=16)=>s(g(new Uint8Array(e)),(e,t)=>e+f(t),""),y=JSON.stringify,h=new t.TextEncoder,v=e=>{let t=2166136261;var n;return n=e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)},h.encode(e).forEach(n),t>>>0},x=(e,t)=>(e^t)>>>0,E=e=>s(i(e),(e,[t,n])=>x(e,M(t,n)^M(t,0)),0),M=(e,t)=>v(e+":"+t),b=(e,t)=>v(y(e??null,(e,t)=>t instanceof Map?l.fromEntries([...t]):t)+":"+t),O=b,T=M,j=E,A=M,D=e=>s(i(e),(e,[t,n])=>x(e,M(t,n)),0),J=M,N=D,R=2**36,S=2**30,U=2**24,V=2**18,k=4096,q=e=>{const t=v(e);return f(t/U)+f(t/V)+f(t/k)+f(t/64)+f(t)},z=(e,t=Date.now)=>{let n=0,o=-1;const c=(l=q,i=()=>w(5),a(s=e)?i?.():l(s));var s,l,i;const u=e=>{const c=n,[s,l]=a(e)||""==e?[0,0]:d(e);n=r(c,s,t()),o=n==c?n==s?r(o,l):o:n==s?l:-1},p=(e,t,n)=>f(e/R)+f(e/S)+f(e/U)+f(e/V)+f(e/k)+f(e/64)+f(e)+f(t/V)+f(t/k)+f(t/64)+f(t)+(a(n)?c:q(n)),d=e=>[m(e,0)*R+m(e,1)*S+m(e,2)*U+m(e,3)*V+m(e,4)*k+64*m(e,5)+m(e,6),m(e,7)*V+m(e,8)*k+64*m(e,9)+m(e,10),e.slice(11)];return[()=>(u(),p(n,++o)),u,p,d,()=>n,()=>o,()=>c]},B=(e,t)=>(e??0)<(t??0)?-1:1;export{x as addOrRemoveHash,B as defaultSorter,O as getCellHash,T as getCellInRowHash,v as getHash,z as getHlcFunctions,j as getRowHash,A as getRowInTableHash,D as getTableHash,J as getTableInTablesHash,N as getTablesHash,w as getUniqueId,b as getValueHash,M as getValueInValuesHash,E as getValuesHash};
1
+ const e=(e,t="",r)=>e.split(t,r),t=globalThis,r=Math,n=r.max,o=r.floor,a=e=>void 0===e,c=(s=a,(e,t,r)=>s(e)?r?.():t(e));var s;const i=(e,t)=>e.map(t),l=(e,t,r)=>e.reduce(t,r),p=Object,u=p.entries,d=e=>new Map(e),f=e("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),m=d(i(f,(e,t)=>[e,t])),g=e=>f[63&e],v=(e,t)=>{return r=m,n=e[t],r?.get(n)??0;var r,n},w=t.crypto?e=>t.crypto.getRandomValues(e):e=>i(e,()=>o(256*r.random())),y=(e=16)=>l(w(new Uint8Array(e)),(e,t)=>e+g(t),""),h=JSON.stringify,x=new t.TextEncoder,E=e=>{let t=2166136261;var r;return r=e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)},x.encode(e).forEach(r),t>>>0},M=(e,t)=>(e^t)>>>0,b=e=>l(u(e),(e,[t,r])=>M(e,O(t,r)^O(t,0)),0),O=(e,t)=>E(e+":"+t),T=(e,t)=>E(h(e??null,(e,t)=>t instanceof Map?p.fromEntries([...t]):t)+":"+t),j=T,A=O,D=b,J=O,N=e=>l(u(e),(e,[t,r])=>M(e,O(t,r)),0),R=O,S=N,U=2**36,V=2**30,k=2**24,q=2**18,z=4096,B=e=>{const t=E(e);return g(t/k)+g(t/q)+g(t/z)+g(t/64)+g(t)},C=(e,t=Date.now)=>{let r=0,o=-1;const s=c(e,B,()=>y(5)),i=e=>{const c=r,[s,i]=a(e)||""==e?[0,0]:p(e);r=n(c,s,t()),o=r==c?r==s?n(o,i):o:r==s?i:-1},l=(e,t,r)=>g(e/U)+g(e/V)+g(e/k)+g(e/q)+g(e/z)+g(e/64)+g(e)+g(t/q)+g(t/z)+g(t/64)+g(t)+(a(r)?s:B(r)),p=e=>[v(e,0)*U+v(e,1)*V+v(e,2)*k+v(e,3)*q+v(e,4)*z+64*v(e,5)+v(e,6),v(e,7)*q+v(e,8)*z+64*v(e,9)+v(e,10),e.slice(11)];return[()=>(i(),l(r,++o)),i,l,p,()=>r,()=>o,()=>s]},F=(e,t)=>(e??0)<(t??0)?-1:1;export{M as addOrRemoveHash,F as defaultSorter,j as getCellHash,A as getCellInRowHash,E as getHash,C as getHlcFunctions,D as getRowHash,J as getRowInTableHash,N as getTableHash,R as getTableInTablesHash,S as getTablesHash,y as getUniqueId,T as getValueHash,O as getValueInValuesHash,b as getValuesHash};
Binary file
@@ -1 +1 @@
1
- const e=(e,t="",n)=>e.split(t,n),t=globalThis,n=Math,r=n.max,o=n.floor,a=e=>null==e,c=(e,t)=>e.map(t),s=(e,t,n)=>e.reduce(t,n),l=Object,i=l.entries,u=e=>new Map(e),p=e("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),d=u(c(p,(e,t)=>[e,t])),f=e=>p[63&e],m=(e,t)=>{return n=d,r=e[t],n?.get(r)??0;var n,r},g=t.crypto?e=>t.crypto.getRandomValues(e):e=>c(e,()=>o(256*n.random())),w=(e=16)=>s(g(new Uint8Array(e)),(e,t)=>e+f(t),""),y=JSON.stringify,h=new t.TextEncoder,v=e=>{let t=2166136261;var n;return n=e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)},h.encode(e).forEach(n),t>>>0},x=(e,t)=>(e^t)>>>0,E=e=>s(i(e),(e,[t,n])=>x(e,M(t,n)^M(t,0)),0),M=(e,t)=>v(e+":"+t),b=(e,t)=>v(y(e??null,(e,t)=>t instanceof Map?l.fromEntries([...t]):t)+":"+t),O=b,T=M,j=E,A=M,D=e=>s(i(e),(e,[t,n])=>x(e,M(t,n)),0),J=M,N=D,R=2**36,S=2**30,U=2**24,V=2**18,k=4096,q=e=>{const t=v(e);return f(t/U)+f(t/V)+f(t/k)+f(t/64)+f(t)},z=(e,t=Date.now)=>{let n=0,o=-1;const c=(l=q,i=()=>w(5),a(s=e)?i?.():l(s));var s,l,i;const u=e=>{const c=n,[s,l]=a(e)||""==e?[0,0]:d(e);n=r(c,s,t()),o=n==c?n==s?r(o,l):o:n==s?l:-1},p=(e,t,n)=>f(e/R)+f(e/S)+f(e/U)+f(e/V)+f(e/k)+f(e/64)+f(e)+f(t/V)+f(t/k)+f(t/64)+f(t)+(a(n)?c:q(n)),d=e=>[m(e,0)*R+m(e,1)*S+m(e,2)*U+m(e,3)*V+m(e,4)*k+64*m(e,5)+m(e,6),m(e,7)*V+m(e,8)*k+64*m(e,9)+m(e,10),e.slice(11)];return[()=>(u(),p(n,++o)),u,p,d,()=>n,()=>o,()=>c]},B=(e,t)=>(e??0)<(t??0)?-1:1;export{x as addOrRemoveHash,B as defaultSorter,O as getCellHash,T as getCellInRowHash,v as getHash,z as getHlcFunctions,j as getRowHash,A as getRowInTableHash,D as getTableHash,J as getTableInTablesHash,N as getTablesHash,w as getUniqueId,b as getValueHash,M as getValueInValuesHash,E as getValuesHash};
1
+ const e=(e,t="",r)=>e.split(t,r),t=globalThis,r=Math,n=r.max,o=r.floor,a=e=>void 0===e,c=(s=a,(e,t,r)=>s(e)?r?.():t(e));var s;const i=(e,t)=>e.map(t),l=(e,t,r)=>e.reduce(t,r),p=Object,u=p.entries,d=e=>new Map(e),f=e("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),m=d(i(f,(e,t)=>[e,t])),g=e=>f[63&e],v=(e,t)=>{return r=m,n=e[t],r?.get(n)??0;var r,n},w=t.crypto?e=>t.crypto.getRandomValues(e):e=>i(e,()=>o(256*r.random())),y=(e=16)=>l(w(new Uint8Array(e)),(e,t)=>e+g(t),""),h=JSON.stringify,x=new t.TextEncoder,E=e=>{let t=2166136261;var r;return r=e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)},x.encode(e).forEach(r),t>>>0},M=(e,t)=>(e^t)>>>0,b=e=>l(u(e),(e,[t,r])=>M(e,O(t,r)^O(t,0)),0),O=(e,t)=>E(e+":"+t),T=(e,t)=>E(h(e??null,(e,t)=>t instanceof Map?p.fromEntries([...t]):t)+":"+t),j=T,A=O,D=b,J=O,N=e=>l(u(e),(e,[t,r])=>M(e,O(t,r)),0),R=O,S=N,U=2**36,V=2**30,k=2**24,q=2**18,z=4096,B=e=>{const t=E(e);return g(t/k)+g(t/q)+g(t/z)+g(t/64)+g(t)},C=(e,t=Date.now)=>{let r=0,o=-1;const s=c(e,B,()=>y(5)),i=e=>{const c=r,[s,i]=a(e)||""==e?[0,0]:p(e);r=n(c,s,t()),o=r==c?r==s?n(o,i):o:r==s?i:-1},l=(e,t,r)=>g(e/U)+g(e/V)+g(e/k)+g(e/q)+g(e/z)+g(e/64)+g(e)+g(t/q)+g(t/z)+g(t/64)+g(t)+(a(r)?s:B(r)),p=e=>[v(e,0)*U+v(e,1)*V+v(e,2)*k+v(e,3)*q+v(e,4)*z+64*v(e,5)+v(e,6),v(e,7)*q+v(e,8)*z+64*v(e,9)+v(e,10),e.slice(11)];return[()=>(i(),l(r,++o)),i,l,p,()=>r,()=>o,()=>s]},F=(e,t)=>(e??0)<(t??0)?-1:1;export{M as addOrRemoveHash,F as defaultSorter,j as getCellHash,A as getCellInRowHash,E as getHash,C as getHlcFunctions,D as getRowHash,J as getRowInTableHash,N as getTableHash,R as getTableInTablesHash,S as getTablesHash,y as getUniqueId,T as getValueHash,O as getValueInValuesHash,b as getValuesHash};
Binary file
package/min/index.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",s=e(t),n=e(!0),l=e(0),o=e(e),a="type",r="default",i="Listener",d="Result",c="add",u="Has",g="Ids",h="Table",f=h+"s",I=h+g,b="Row",w=b+"Count",L=b+g,C="Sorted"+b+g,R="Cell",T=R+g,v="Value",p=v+"s",S=v+g,y=e=>t+e,V=(e,t)=>e.startsWith(t),m=(e,t)=>e.endsWith(t),M=(e,s=t,n)=>e.split(s,n),E=globalThis,k=Math,D=k.max,H=k.min,J=k.floor,x=isFinite,F=e=>null==e,Q=(e,t,s)=>F(e)?s?.():t(e),z=e=>e==s||e==n,N=t=>e(t)==s,O=t=>e(t)==o,W=e=>Array.isArray(e),A=(e,t,s)=>e.slice(t,s),P=e=>e.length,j=()=>{},_=()=>{},B=async(e,t,s)=>{try{return await e()}catch(e){t?.(e)}},U=(e,t)=>e.includes(t),q=(e,t)=>e.every(t),G=(e,t)=>P(e)===P(t)&&q(e,(e,s)=>t[s]===e),K=(e,t)=>q(e,(s,n)=>0==n||t(e[n-1],s)<=0),X=(e,t)=>e.sort(t),Y=(e,t)=>e.forEach(t),Z=(e,t)=>e.map(t),$=e=>te(e,(e,t)=>e+t,0),ee=e=>0==P(e),te=(e,t,s)=>e.reduce(t,s),se=(e,...t)=>e.push(...t),ne=e=>e.pop(),le=e=>e.shift(),oe=t=>{const s=e(t);return z(s)||s==l&&x(t)?s:void 0},ae=e=>F(e)||!F(oe(e)),re=(e,t,s,n,l)=>F(l)?e.delCell(t,s,n,!0):e.setCell(t,s,n,l),ie=(e,t,s)=>F(s)?e.delValue(t):e.setValue(t,s),de=e=>t=>te(be(t),(t,s)=>t+e(s),0),ce=e=>e?.size??0,ue=de(ce),ge=de(ue),he=de(ge),fe=(e,t)=>e?.has(t)??!1,Ie=e=>F(e)||0==ce(e),be=e=>[...e?.values()??[]],we=e=>e.clear(),Le=(e,t)=>e?.forEach(t),Ce=(e,t)=>e?.delete(t),Re=Object,Te=e=>Re.getPrototypeOf(e),ve=Re.isFrozen,pe=Re.entries,Se=e=>!F(e)&&Q(Te(e),e=>e==Re.prototype||F(Te(e)),()=>!0),ye=Re.keys,Ve=Re.freeze,me=(e=[])=>Re.fromEntries(e),Me=(e,t)=>t in e,Ee=(e,t)=>(delete e[t],e),ke=(e,t)=>Y(pe(e),([e,s])=>t(s,e)),De=(e,t)=>me(((e,t)=>Z(pe(e),([e,s])=>t(s,e)))(e,(e,s)=>[s,t(e,s)])),He=e=>Se(e)&&0==(e=>P(ye(e)))(e),Je=(e,t,s)=>(Me(e,t)||(e[t]=s()),e[t]),xe=(e,t,s,n=0)=>F(e)||!Se(e)||!n&&He(e)||ve(e)?(s?.(),!1):(ke(e,(s,n)=>{t(s,n)||Ee(e,n)}),!!n||!He(e)),Fe=e=>new Map(e),Qe=e=>[...e?.keys()??[]],ze=(e,t)=>e?.get(t),Ne=(e,t)=>Le(e,(e,s)=>t(s,e)),Oe=(e,t,s)=>F(s)?(Ce(e,t),e):e?.set(t,s),We=(e,t,s,n)=>(fe(e,t)?n?.(ze(e,t)):Oe(e,t,s()),ze(e,t)),Ae=(e,t,s,n=Oe)=>(De(t,(t,n)=>s(e,n,t)),Ne(e,s=>Me(t,s)?0:n(e,s)),e),Pe=(e,t,s,n)=>{const l={};return Le(e,(e,o)=>{if(!s?.(e,o)){const s=t?t(e,o):e;n?.(s)||(l[o]=s)}}),l},je=(e,t,s)=>Pe(e,e=>Pe(e,t,s),Ie,He),_e=(e,t,s)=>Pe(e,e=>je(e,t,s),Ie,He),Be=(e,t)=>{const s=Fe();return Le(e,(e,n)=>s.set(n,t?.(e)??e)),s},Ue=e=>Be(e,Be),qe=e=>Be(e,Ue),Ge=(e,t,s,n,l=0)=>Q((s?We:ze)(e,t[l],l>P(t)-2?s:Fe),o=>{if(l>P(t)-2)return n?.(o)&&Oe(e,t[l]),o;const a=Ge(o,t,s,n,l+1);return Ie(o)&&Oe(e,t[l]),a}),Ke=e=>new Set(W(e)||F(e)?e:[e]),Xe=(e,t)=>e?.add(t),Ye=(e,t,s,n,l)=>{const o=e.hasRow,a=Fe(),r=Fe(),i=Fe(),d=Fe(),c=Fe(),u=Fe(),g=(t,s,...n)=>{const l=We(u,t,Ke);return Y(n,t=>Xe(l,t)&&s&&e.callListener(t)),n},h=(t,...s)=>Q(ze(u,t),n=>{Y(ee(s)?be(n):s,t=>{e.delListener(t),Ce(n,t)}),Ie(n)&&Oe(u,t)}),f=(e,s)=>{Oe(a,e,s),fe(r,e)||(Oe(r,e,t()),Oe(d,e,Fe()),Oe(c,e,Fe()),l(i))},I=e=>{Oe(a,e),Oe(r,e),Oe(d,e),Oe(c,e),h(e),l(i)};return[()=>e,()=>Qe(a),e=>Ne(r,e),e=>fe(r,e),e=>ze(a,e),e=>ze(r,e),(e,t)=>Oe(r,e,t),f,(t,n,l,a,r)=>{f(t,n);const i=Fe(),u=Fe(),I=ze(d,t),b=ze(c,t),w=t=>{const l=s=>e.getCell(n,t,s),d=ze(I,t),c=o(n,t)?s(a(l,t)):void 0;if(d===c||W(d)&&W(c)&&G(d,c)||Oe(i,t,[d,c]),!F(r)){const e=ze(b,t),s=o(n,t)?r(l,t):void 0;e!=s&&Oe(u,t,s)}},L=e=>{l(()=>{Le(i,([,e],t)=>Oe(I,t,e)),Le(u,(e,t)=>Oe(b,t,e))},i,u,I,b,e),we(i),we(u)};Ne(I,w),e.hasTable(n)&&Y(e.getRowIds(n),e=>{fe(I,e)||w(e)}),L(!0),h(t),g(t,0,e.addRowListener(n,null,(e,t,s)=>w(s)),e.addTableListener(n,()=>L()))},I,e=>n(e,i),()=>Ne(u,I),g,h]},Ze=(e,s)=>N(e)?t=>t(e):e??(()=>s??t),$e=(e,t)=>{const s=new WeakMap;return n=>{s.has(n)||s.set(n,e(n));const l=s.get(n);return t?.(l),l}},et=/^\d+$/,tt=()=>{const e=[];let s=0;return[n=>(n?le(e):null)??t+s++,t=>{et.test(t)&&P(e)<1e3&&se(e,t)}]},st=e=>{let s;const[n,l]=tt(),o=Fe();return[(l,a,r,i=[],d=()=>[])=>{s??=e();const c=n(1);return Oe(o,c,[l,a,r,i,d]),Xe(Ge(a,r??[t],Ke),c),c},(e,n,...l)=>Y(((e,s=[t])=>{const n=[],l=(e,t)=>t==P(s)?se(n,e):null===s[t]?Le(e,e=>l(e,t+1)):Y([s[t],null],s=>l(ze(e,s),t+1));return l(e,0),n})(e,n),e=>Le(e,e=>ze(o,e)[0](s,...n??[],...l))),e=>Q(ze(o,e),([,s,n])=>(Ge(s,n??[t],void 0,t=>(Ce(t,e),Ie(t)?1:0)),Oe(o,e),l(e),n)),e=>Q(ze(o,e),([e,,t=[],n,l])=>{const o=(...a)=>{const r=P(a);r==P(t)?e(s,...a,...l(a)):F(t[r])?Y(n[r]?.(...a)??[],e=>o(...a,e)):o(...a,t[r])};o()})]},nt=$e(e=>{let s,n,l,o=100,a=Fe(),r=Fe(),i=1;const d=Fe(),c=Fe(),[u,g,h]=st(()=>J),f=Fe(),I=Fe(),b=[],w=[],L=(t,s)=>{i=0,e.transaction(()=>{const[n,l]=ze(f,s);Le(n,(s,n)=>Le(s,(s,l)=>Le(s,(s,o)=>re(e,n,l,o,s[t])))),Le(l,(s,n)=>ie(e,n,s[t]))}),i=1},C=e=>{Oe(f,e),Oe(I,e),g(c,[e])},R=(e,t)=>Y(((e,t)=>e.splice(0,t))(e,t??P(e)),C),T=()=>R(b,P(b)-o),v=()=>Q(s,()=>{se(b,s),T(),R(w),s=void 0,l=1}),p=()=>{s=ne(b),l=1};let S,y;const V=(e=t)=>(F(s)&&(s=t+n++,Oe(f,s,[a,r]),D(s,e),a=Fe(),r=Fe(),l=1),s),m=()=>{ee(b)||(((e,...t)=>{e.unshift(...t)})(w,V()),L(0,s),s=ne(b),l=1)},M=()=>{ee(w)||(se(b,s),s=le(w),L(1,s),l=1)},E=()=>{l&&(g(d),l=0)},k=e=>{const t=V(e);return E(),t},D=(e,t)=>(H(e)&&ze(I,e)!==t&&(Oe(I,e,t),g(c,[e])),J),H=e=>fe(f,e),J={setSize:e=>(o=e,T(),J),addCheckpoint:k,setCheckpoint:D,getStore:()=>e,getCheckpointIds:()=>[[...b],s,[...w]],forEachCheckpoint:e=>Ne(I,e),hasCheckpoint:H,getCheckpoint:e=>ze(I,e),goBackward:()=>(m(),E(),J),goForward:()=>(M(),E(),J),goTo:e=>{const t=U(b,e)?m:U(w,e)?M:null;for(;!F(t)&&e!=s;)t();return E(),J},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(h(e),J),clear:()=>(R(b),R(w),F(s)||C(s),s=void 0,n=0,k(),J),clearForward:()=>(ee(w)||(R(w),g(d)),J),destroy:()=>{e.delListener(S),e.delListener(y)},getListenerStats:()=>({checkpointIds:ue(d),checkpoint:ue(c)}),_registerListeners:()=>{S=e.addCellListener(null,null,null,(e,t,s,n,l,o)=>{if(i){v();const e=We(a,t,Fe),r=We(e,s,Fe),i=We(r,n,()=>[o,void 0]);i[1]=l,i[0]===l&&Ie(Oe(r,n))&&Ie(Oe(e,s))&&Ie(Oe(a,t))&&p(),E()}}),y=e.addValueListener(null,(e,t,s,n)=>{if(i){v();const e=We(r,t,()=>[n,void 0]);e[1]=s,e[0]===s&&Ie(Oe(r,t))&&p(),E()}})}};return Ve(J.clear())},e=>e._registerListeners()),lt=M("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),ot=Fe(Z(lt,(e,t)=>[e,t])),at=e=>lt[63&e],rt=(e,t)=>ze(ot,e[t])??0,it=E.crypto?e=>E.crypto.getRandomValues(e):e=>Z(e,()=>J(256*k.random())),dt=(e=16)=>te(it(new Uint8Array(e)),(e,t)=>e+at(t),t),ct=JSON.stringify,ut=JSON.parse,gt=e=>ct(e,(e,t)=>t instanceof Map?Re.fromEntries([...t]):t),ht=new E.TextEncoder,ft=e=>{let t=2166136261;return Y(ht.encode(e),e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},It=(e,t)=>(e^t)>>>0,bt=e=>te(pe(e),(e,[t,s])=>It(e,wt(t,s)^wt(t,0)),0),wt=(e,t)=>ft(e+":"+t),Lt=(e,t)=>ft(gt(e??null)+":"+t),Ct=Lt,Rt=wt,Tt=bt,vt=wt,pt=e=>te(pe(e),(e,[t,s])=>It(e,wt(t,s)),0),St=wt,yt=pt,Vt=2**36,mt=2**30,Mt=2**24,Et=2**18,kt=4096,Dt=e=>{const t=ft(e);return at(t/Mt)+at(t/Et)+at(t/kt)+at(t/64)+at(t)},Ht=(e,t=Date.now)=>{let s=0,n=-1;const l=Q(e,Dt,()=>dt(5)),o=e=>{const l=s,[o,a]=F(e)||""==e?[0,0]:r(e);s=D(l,o,t()),n=s==l?s==o?D(n,a):n:s==o?a:-1},a=(e,t,s)=>at(e/Vt)+at(e/mt)+at(e/Mt)+at(e/Et)+at(e/kt)+at(e/64)+at(e)+at(t/Et)+at(t/kt)+at(t/64)+at(t)+(F(s)?l:Dt(s)),r=e=>[rt(e,0)*Vt+rt(e,1)*mt+rt(e,2)*Mt+rt(e,3)*Et+rt(e,4)*kt+64*rt(e,5)+rt(e,6),rt(e,7)*Et+rt(e,8)*kt+64*rt(e,9)+rt(e,10),e.slice(11)];return[()=>(o(),a(s,++n)),o,a,r,()=>s,()=>n,()=>l]},Jt=(e,t)=>(e??0)<(t??0)?-1:1,xt=$e(e=>{const s=Fe(),n=Fe(),[l,o,a]=st(()=>C),[r,i,d,c,u,g,h,,f,I,b,w]=Ye(e,Fe,e=>F(e)?t:W(e)?Z(e,y):y(e),l,o),L=(t,s,n)=>{const l=u(t);Le(n,(t,n)=>s(n,s=>Le(t,t=>s(t,s=>e.forEachCell(l,t,s)))))},C={setIndexDefinition:(e,t,l,a,r,i=Jt)=>{const d=F(r)?void 0:([e],[t])=>r(e,t);return f(e,t,(t,l,r,c,u,f)=>{let I=0;const b=Ke(),w=Ke(),L=g(e);if(Le(l,([e,t],s)=>{const n=Ke(e),l=Ke(t);Le(n,e=>Ce(l,e)?Ce(n,e):0),Le(n,e=>{Xe(b,e),Q(ze(L,e),t=>{Ce(t,s),Ie(t)&&(Oe(L,e),I=1)})}),Le(l,e=>{Xe(b,e),fe(L,e)||(Oe(L,e,Ke()),I=1),Xe(ze(L,e),s),F(a)||Xe(w,e)})}),t(),Ie(u)||(f?Ne(L,e=>Xe(w,e)):Ne(r,e=>Q(ze(c,e),e=>Y(W(e)?e:[e],e=>Xe(w,e)))),Le(w,e=>{const t=(t,s)=>i(ze(u,t),ze(u,s),e),s=[...ze(L,e)];K(s,t)||(Oe(L,e,Ke(X(s,t))),Xe(b,e))})),(I||f)&&!F(d)){const t=[...L];K(t,d)||(h(e,Fe(X(t,d))),I=1)}I&&o(s,[e]),Le(b,t=>o(n,[e,t]))},Ze(l),Q(a,Ze)),C},delIndexDefinition:e=>(I(e),C),getStore:r,getIndexIds:i,forEachIndex:e=>d((t,s)=>e(t,e=>L(t,e,s))),forEachSlice:(e,t)=>L(e,t,g(e)),hasIndex:c,hasSlice:(e,t)=>fe(g(e),t),getTableId:u,getSliceIds:e=>Qe(g(e)),getSliceRowIds:(e,t)=>be(ze(g(e),t)),addIndexIdsListener:b,addSliceIdsListener:(e,t)=>l(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>l(s,n,[e,t]),delListener:e=>(a(e),C),destroy:w,getListenerStats:()=>({sliceIds:ue(s),sliceRowIds:ge(n)})};return Ve(C)}),Ft=([e,t])=>zt(e,t),Qt=([e,t,s])=>[e,t,s],zt=(e,t)=>t?[e,t]:[e],Nt=(e,t,s)=>[e,t,s],Ot=e=>e[2],Wt=(e,t)=>t>e?(e?ft(e):0)^ft(t):0,At=(e,t)=>((e??"")>(t??"")?e:t)??"",Pt=(e,t,s)=>{t>e[1]&&(e[1]=t),e[2]=s>>>0},jt=(e=t)=>zt(me(),e),_t=(e=t)=>[Fe(),e,0],Bt=([e,t,s],n=Qt)=>[Pe(e,n),t,s],Ut=([e,t],s=Ft)=>zt(Pe(e,s),t),qt=(t,s)=>W(t)&&3==P(t)&&N(t[1])&&e(t[2])==l&&x(t[2])&&s(t[0]),Gt=e=>[e,e],Kt=(e,t=ue)=>t(e[0])+t(e[1]),Xt=()=>[Fe(),Fe()],Yt=e=>[...e],Zt=([e,t])=>e===t,$t=(e,t,s)=>Oe(e,t,ze(e,t)==-s?void 0:s),es=()=>{let e,t,s=!1,n=!1,o=0,d=[];const g=Fe(),C=Fe(),V=Fe(),m=Fe(),M=Fe(),E=Fe(),k=Fe(),D=Fe(),H=Fe(),J=Fe(),x=Fe(),N=Fe(),P=Fe(),j=Fe(),_=Ke(),q=Fe(),K=Fe(),$=Fe(),ee=Fe(),te=Xt(),ne=Xt(),le=Xt(),ae=Xt(),de=Xt(),be=Xt(),Re=Xt(),Te=Xt(),ve=Xt(),pe=Xt(),ye=Xt(),me=Xt(),ke=Xt(),Je=Xt(),Ge=Xt(),Ye=Xt(),Ze=Xt(),$e=Xt(),et=Xt(),nt=Xt(),lt=Xt(),ot=Xt(),at=Fe(),rt=Xt(),[it,dt,ct,ht]=st(()=>Ps),ft=e=>{if(!xe(e,(e,t)=>U([a,r],t)))return!1;const t=e[a];return!(!z(t)&&t!=l||(oe(e[r])!=t&&Ee(e,r),0))},It=W,bt=(t,s)=>(!e||fe(x,s)||Ut(s))&&xe(t,(e,t)=>wt(s,t,e),()=>Ut(s)),wt=(e,t,s,n)=>xe(n?s:Tt(s,e,t),(n,l)=>Q(Lt(e,t,l,n),e=>(s[l]=e,!0),()=>!1),()=>Ut(e,t)),Lt=(t,s,n,l)=>e?Q(ze(ze(x,t),n),e=>oe(l)!=e[a]?Ut(t,s,n,l,e[r]):l,()=>Ut(t,s,n,l)):F(oe(l))?Ut(t,s,n,l):l,Ct=(e,t)=>xe(t?e:vt(e),(t,s)=>Q(Rt(s,t),t=>(e[s]=t,!0),()=>!1),()=>qt()),Rt=(e,s)=>t?Q(ze(P,e),t=>oe(s)!=t[a]?qt(e,s,t[r]):s,()=>qt(e,s)):F(oe(s))?qt(e,s):s,Tt=(e,t,s)=>(Q(ze(N,t),([n,l])=>{Le(n,(t,s)=>{Me(e,s)||(e[s]=t)}),Le(l,n=>{Me(e,n)||Ut(t,s,n)})}),e),vt=e=>(t&&(Le(j,(t,s)=>{Me(e,s)||(e[s]=t)}),Le(_,t=>{Me(e,t)||qt(t)})),e),pt=e=>Ae(x,e,(e,t,s)=>{const n=Fe(),l=Ke();Ae(We(x,t,Fe),s,(e,t,s)=>{Oe(e,t,s),Q(s[r],e=>Oe(n,t,e),()=>Xe(l,t))}),Oe(N,t,[n,l])},(e,t)=>{Oe(x,t),Oe(N,t)}),St=e=>Ae(P,e,(e,t,s)=>{Oe(P,t,s),Q(s[r],e=>Oe(j,t,e),()=>Xe(_,t))},(e,t)=>{Oe(P,t),Oe(j,t),Ce(_,t)}),yt=e=>He(e)?Js():Ms(e),Vt=e=>Ae($,e,(e,t,s)=>mt(t,s),(e,t)=>Qt(t)),mt=(e,t)=>Ae(We($,e,()=>(Wt(e,1),Oe(q,e,tt()),Oe(K,e,Fe()),Fe())),t,(t,s,n)=>Mt(e,t,s,n),(t,s)=>zt(e,t,s)),Mt=(e,t,s,n,l)=>Ae(We(t,s,()=>(At(e,s,1),Fe())),n,(t,n,l)=>Et(e,s,t,n,l),(n,o)=>Nt(e,t,s,n,o,l)),Et=(e,t,s,n,l)=>{fe(s,n)||Pt(e,t,n,1);const o=ze(s,n);l!==o&&(jt(e,t,n,o,l),Oe(s,n,l))},kt=(e,t,s,n,l)=>Q(ze(t,s),t=>Et(e,s,t,n,l),()=>Mt(e,t,s,Tt({[n]:l},e,s))),Dt=e=>He(e)?Qs():Es(e),Ht=e=>Ae(ee,e,(e,t,s)=>xt(t,s),(e,t)=>Ot(t)),xt=(e,t)=>{fe(ee,e)||_t(e,1);const s=ze(ee,e);t!==s&&(Bt(e,s,t),Oe(ee,e,t))},Ft=e=>ze($,e)??mt(e,{}),Qt=e=>mt(e,{}),zt=(e,t,s)=>{const[,n]=ze(q,e);n(s),Mt(e,t,s,{},!0)},Nt=(e,t,s,n,l,o)=>{const a=ze(ze(N,e)?.[0],l);if(!F(a)&&!o)return Et(e,s,n,l,a);const r=t=>{jt(e,s,t,ze(n,t)),Pt(e,s,t,-1),Oe(n,t)};F(a)?r(l):Ne(n,r),Ie(n)&&(At(e,s,-1),Ie(Oe(t,s))&&(Wt(e,-1),Oe($,e),Oe(q,e),Oe(K,e)))},Ot=e=>{const t=ze(j,e);if(!F(t))return xt(e,t);Bt(e,ze(ee,e)),_t(e,-1),Oe(ee,e)},Wt=(e,t)=>$t(g,e,t),At=(e,t,s)=>$t(We(m,e,Fe),t,s)&&Oe(V,e,We(V,e,()=>0)+s),Pt=(e,t,s,n)=>{const l=ze(K,e),o=ze(l,s)??0;(0==o&&1==n||1==o&&-1==n)&&$t(We(C,e,Fe),s,n),Oe(l,s,o!=-n?o+n:null),$t(We(We(M,e,Fe),t,Fe),s,n)},jt=(e,t,s,n,l)=>{We(We(We(E,e,Fe),t,Fe),s,()=>[n,0])[1]=l,d[3]?.(e,t,s,l)},_t=(e,t)=>$t(k,e,t),Bt=(e,t,s)=>{We(D,e,()=>[t,0])[1]=s,d[4]?.(e,s)},Ut=(e,t,s,n,l)=>(se(We(We(We(H,e,Fe),t,Fe),s,()=>[]),n),l),qt=(e,t,s)=>(se(We(J,e,()=>[]),t),s),ts=(e,t,s)=>Q(ze(ze(ze(E,e),t),s),([e,t])=>[!0,e,t],()=>[!1,...Gt(ws(e,t,s))]),ss=e=>Q(ze(D,e),([e,t])=>[!0,e,t],()=>[!1,...Gt(Rs(e))]),ns=e=>Ie(H)||Ie(Ye[e])?0:Le(e?qe(H):H,(t,s)=>Le(t,(t,n)=>Le(t,(t,l)=>dt(Ye[e],[s,n,l],t)))),ls=e=>Ie(J)||Ie(Ze[e])?0:Le(e?Be(J):J,(t,s)=>dt(Ze[e],[s],t)),os=(e,t,s,n)=>{if(!Ie(e))return dt(t,n,()=>Pe(e)),Ne(e,(e,t)=>dt(s,[...n??[],e],1==t)),1},as=e=>{const t=Ts();t!=s&&dt(te[e],void 0,t);const n=Ie(pe[e]),l=Ie(ke[e])&&Ie(Je[e])&&Ie(ve[e])&&Ie(ye[e])&&Ie(be[e])&&Ie(Re[e])&&Ie(Te[e])&&n&&Ie(le[e])&&Ie(ae[e]),o=Ie(Ge[e])&&Ie(me[e])&&Ie(de[e])&&Ie(ne[e]);if(!l||!o){const t=e?[Be(g),Ue(C),Be(V),Ue(m),qe(M),qe(E)]:[g,C,V,m,M,E];if(!l){os(t[0],le[e],ae[e]),Le(t[1],(t,s)=>os(t,be[e],Re[e],[s])),Le(t[2],(t,s)=>{0!=t&&dt(Te[e],[s],hs(s))});const s=Ke();Le(t[3],(t,l)=>{os(t,ve[e],ye[e],[l])&&!n&&(dt(pe[e],[l,null]),Xe(s,l))}),n||Le(t[5],(t,n)=>{if(!fe(s,n)){const s=Ke();Le(t,e=>Le(e,([t,n],l)=>n!==t?Xe(s,l):Ce(e,l))),Le(s,t=>dt(pe[e],[n,t]))}}),Le(t[4],(t,s)=>Le(t,(t,n)=>os(t,ke[e],Je[e],[s,n])))}if(!o){let s;Le(t[5],(t,n)=>{let l;Le(t,(t,o)=>{let a;Le(t,([t,r],i)=>{r!==t&&(dt(Ge[e],[n,o,i],r,t,ts),s=l=a=1)}),a&&dt(me[e],[n,o],ts)}),l&&dt(de[e],[n],ts)}),s&&dt(ne[e],void 0,ts)}}},rs=e=>{const t=Vs();t!=n&&dt($e[e],void 0,t);const s=Ie(nt[e])&&Ie(lt[e]),l=Ie(ot[e])&&Ie(et[e]);if(!s||!l){const t=e?[Be(k),Be(D)]:[k,D];if(s||os(t[0],nt[e],lt[e]),!l){let s;Le(t[1],([t,n],l)=>{n!==t&&(dt(ot[e],[l],n,t,ss),s=1)}),s&&dt(et[e],void 0,ss)}}},is=(e,...t)=>(Os(()=>e(...Z(t,y))),Ps),ds=(e,t,s,n,l)=>{let o=Is(e,t,...s);return it(()=>{const l=Is(e,t,...s);G(l,o)||(o=l,n(Ps,e,t,...s,o))},pe[l?1:0],[e,t],[us])},cs=()=>_e($),us=()=>Qe($),gs=e=>Qe(ze(K,y(e))),hs=e=>ce(ze($,y(e))),fs=e=>Qe(ze($,y(e))),Is=(e,t,s,n=0,l)=>{return Se(e)?Is(e.tableId,e.cellId,e.descending,e.offset,e.limit):Z(A(X((o=ze($,y(e)),a=(e,s)=>[F(t)?s:ze(e,y(t)),s],Z([...o?.entries()??[]],([e,t])=>a(t,e))),([e],[t])=>Jt(e,t)*(s?-1:1)),n,F(l)?l:n+l),([,e])=>e);var o,a},bs=(e,t)=>Qe(ze(ze($,y(e)),y(t))),ws=(e,t,s)=>ze(ze(ze($,y(e)),y(t)),y(s)),Ls=()=>Pe(ee),Cs=()=>Qe(ee),Rs=e=>ze(ee,y(e)),Ts=()=>!Ie($),vs=e=>fe($,y(e)),ps=(e,t)=>fe(ze(K,y(e)),y(t)),Ss=(e,t)=>fe(ze($,y(e)),y(t)),ys=(e,t,s)=>fe(ze(ze($,y(e)),y(t)),y(s)),Vs=()=>!Ie(ee),ms=e=>fe(ee,y(e)),Ms=e=>is(()=>(e=>xe(e,bt,Ut))(e)?Vt(e):0),Es=e=>is(()=>Ct(e)?Ht(e):0),ks=e=>(B(()=>yt(ut(e))),Ps),Ds=t=>is(()=>{if((e=xe(t,e=>xe(e,ft)))&&(pt(t),!Ie($))){const e=cs();Js(),Ms(e)}}),Hs=e=>is(()=>{if(t=(e=>xe(e,ft))(e)){const s=Ls();Ns(),Qs(),t=!0,St(e),Es(s)}}),Js=()=>is(()=>Vt({})),xs=e=>is(e=>fe($,e)?Qt(e):0,e),Fs=(e,t)=>is((e,t)=>Q(ze($,e),s=>fe(s,t)?zt(e,s,t):0),e,t),Qs=()=>is(()=>Ht({})),zs=()=>is(()=>{pt({}),e=!1}),Ns=()=>is(()=>{St({}),t=!1}),Os=(e,t)=>{if(-1!=o){Ws();const s=e();return As(t),s}},Ws=()=>(-1!=o&&o++,1==o&&(d[0]?.(),dt(at)),Ps),As=e=>(o>0&&(o--,0==o&&(o=1,ns(1),Ie(E)||as(1),ls(1),Ie(D)||rs(1),e?.(Ps)&&(Le(E,(e,t)=>Le(e,(e,s)=>Le(e,([e],n)=>re(Ps,t,s,n,e)))),we(E),Le(D,([e],t)=>ie(Ps,t,e)),we(D)),dt(rt[0],void 0),o=-1,ns(0),Ie(E)||as(0),ls(0),Ie(D)||rs(0),d[1]?.(),dt(rt[1],void 0),d[2]?.(),o=0,s=Ts(),n=Vs(),Y([g,C,V,m,M,E,H,k,D,J],we))),Ps),Ps={getContent:()=>[cs(),Ls()],getTables:cs,getTableIds:us,getTable:e=>je(ze($,y(e))),getTableCellIds:gs,getRowCount:hs,getRowIds:fs,getSortedRowIds:Is,getRow:(e,t)=>Pe(ze(ze($,y(e)),y(t))),getCellIds:bs,getCell:ws,getValues:Ls,getValueIds:Cs,getValue:Rs,hasTables:Ts,hasTable:vs,hasTableCell:ps,hasRow:Ss,hasCell:ys,hasValues:Vs,hasValue:ms,getTablesJson:()=>gt($),getValuesJson:()=>gt(ee),getJson:()=>gt([$,ee]),getTablesSchemaJson:()=>gt(x),getValuesSchemaJson:()=>gt(P),getSchemaJson:()=>gt([x,P]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>is(()=>{const t=O(e)?e():e;It(t)&&(([e,t])=>{(He(e)?Js:Ms)(e),(He(t)?Qs:Es)(t)})(t)}),setTables:Ms,setTable:(e,t)=>is(e=>bt(t,e)?mt(e,t):0,e),setRow:(e,t,s)=>is((e,t)=>wt(e,t,s)?Mt(e,Ft(e),t,s):0,e,t),addRow:(e,t,s=!0)=>Os(()=>{let n;return wt(e,n,t)&&(e=y(e),Mt(e,Ft(e),n=((e,t)=>{const[s]=ze(q,e);let n;do{n=s(t)}while(fe(ze($,e),n));return n})(e,s?1:0),t)),n}),setPartialRow:(e,t,s)=>is((e,t)=>{if(wt(e,t,s,1)){const n=Ft(e);De(s,(s,l)=>kt(e,n,t,l,s))}},e,t),setCell:(e,t,s,n)=>is((e,t,s)=>Q(Lt(e,t,s,O(n)?n(ws(e,t,s)):n),n=>kt(e,Ft(e),t,s,n)),e,t,s),setValues:Es,setPartialValues:e=>is(()=>Ct(e,1)?De(e,(e,t)=>xt(t,e)):0),setValue:(e,t)=>is(e=>Q(Rt(e,O(t)?t(Rs(e)):t),t=>xt(e,t)),e),applyChanges:e=>is(()=>{De(e[0],(e,t)=>F(e)?xs(t):De(e,(e,s)=>F(e)?Fs(t,s):De(e,(e,n)=>re(Ps,t,s,n,e)))),De(e[1],(e,t)=>ie(Ps,t,e))}),setTablesJson:ks,setValuesJson:e=>(B(()=>Dt(ut(e))),Ps),setJson:e=>is(()=>B(()=>{const[t,s]=ut(e);yt(t),Dt(s)},()=>ks(e))),setTablesSchema:Ds,setValuesSchema:Hs,setSchema:(e,t)=>is(()=>{Ds(e),Hs(t)}),delTables:Js,delTable:xs,delRow:Fs,delCell:(e,t,s,n)=>is((e,t,s)=>Q(ze($,e),l=>Q(ze(l,t),o=>fe(o,s)?Nt(e,l,t,o,s,n):0)),e,t,s),delValues:Qs,delValue:e=>is(e=>fe(ee,e)?Ot(e):0,e),delTablesSchema:zs,delValuesSchema:Ns,delSchema:()=>is(()=>{zs(),Ns()}),transaction:Os,startTransaction:Ws,getTransactionChanges:()=>[Pe(E,(e,t)=>-1===ze(g,t)?void 0:Pe(e,(e,s)=>-1===ze(ze(m,t),s)?void 0:Pe(e,([,e])=>e,e=>Zt(e)),Ie,He),Ie,He),Pe(D,([,e])=>e,e=>Zt(e)),1],getTransactionLog:()=>[!Ie(E),!Ie(D),_e(E,Yt,Zt),_e(H),Pe(D,Yt,Zt),Pe(J),Pe(g),je(m),_e(M),Pe(k)],finishTransaction:As,forEachTable:e=>Le($,(t,s)=>e(s,e=>Le(t,(t,s)=>e(s,e=>Ne(t,e))))),forEachTableCell:(e,t)=>Ne(ze(K,y(e)),t),forEachRow:(e,t)=>Le(ze($,y(e)),(e,s)=>t(s,t=>Ne(e,t))),forEachCell:(e,t,s)=>Ne(ze(ze($,y(e)),y(t)),s),forEachValue:e=>Ne(ee,e),addSortedRowIdsListener:(e,t,s,n,l,o,a)=>Se(e)?ds(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit],t,s):ds(e,t,[s,n,l],o,a),addStartTransactionListener:e=>it(e,at),addWillFinishTransactionListener:e=>it(e,rt[0]),addDidFinishTransactionListener:e=>it(e,rt[1]),callListener:e=>(ht(e),Ps),delListener:e=>(ct(e),Ps),getListenerStats:()=>({hasTables:Kt(te),tables:Kt(ne),tableIds:Kt(le),hasTable:Kt(ae),table:Kt(de),tableCellIds:Kt(be),hasTableCell:Kt(Re,ge),rowCount:Kt(Te),rowIds:Kt(ve),sortedRowIds:Kt(pe),hasRow:Kt(ye,ge),row:Kt(me,ge),cellIds:Kt(ke,ge),hasCell:Kt(Je,he),cell:Kt(Ge,he),invalidCell:Kt(Ye,he),hasValues:Kt($e),values:Kt(et),valueIds:Kt(nt),hasValue:Kt(lt),value:Kt(ot),invalidValue:Kt(Ze),transaction:ue(at)+Kt(rt)}),isMergeable:()=>!1,createStore:es,addListener:it,callListeners:dt,setInternalListeners:(e,t,s,n,l)=>d=[e,t,s,n,l]};return De({[u+f]:[0,te,[],()=>[Ts()]],[f]:[0,ne],[I]:[0,le],[u+h]:[1,ae,[us],e=>[vs(...e)]],[h]:[1,de,[us]],[h+T]:[1,be,[us]],[u+h+R]:[2,Re,[us,gs],e=>[ps(...e)]],[w]:[1,Te,[us]],[L]:[1,ve,[us]],[u+b]:[2,ye,[us,fs],e=>[Ss(...e)]],[b]:[2,me,[us,fs]],[T]:[2,ke,[us,fs]],[u+R]:[3,Je,[us,fs,bs],e=>[ys(...e)]],[R]:[3,Ge,[us,fs,bs],e=>Gt(ws(...e))],InvalidCell:[3,Ye],[u+p]:[0,$e,[],()=>[Vs()]],[p]:[0,et],[S]:[0,nt],[u+v]:[1,lt,[Cs],e=>[ms(...e)]],[v]:[1,ot,[Cs],e=>Gt(Rs(e[0]))],InvalidValue:[1,Ze]},([e,t,s,n],l)=>{Ps[c+l+i]=(...l)=>it(l[e],t[l[e+1]?1:0],e>0?A(l,0,e):void 0,s,n)}),Ve(Ps)},ts={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},ss=(e=t)=>[_t(e),_t(e)],ns=(e,s)=>{let n=1,l=ss(),o=0;const a=Fe(),r=Ke(),[d,u]=Ht(e,s),g=es(),h=e=>{const t=n;return n=0,e(),n=t,R},f=(e,s=0)=>{const n={},o={},[[a,r=t,i=0],d]=e,[c,g]=l,[h,f,b]=c;let w=s?i:b,L=r;ke(a,([e,l=t,o=0],a)=>{const r=We(h,a,_t),[i,d,c]=r;let u=s?o:c,g=l;ke(e,(e,t)=>{const[l,o,r]=I(e,We(i,t,_t),Je(Je(n,a,me),t,me),s);u^=s?0:It(o?wt(t,o):0,wt(t,r)),g=At(g,l)}),u^=s?0:Wt(d,l),Pt(r,l,u),w^=s?0:It(c?wt(a,c):0,wt(a,r[2])),L=At(L,g)}),w^=s?0:Wt(f,r),Pt(c,r,w);const[C]=I(d,g,o,s);return u(At(L,C)),[n,o,1]},I=(e,s,n,l)=>{const[o,a=t,r=0]=e,[i,d,c]=s;let u=a,g=l?r:c;return ke(o,([e,s=t,o=0],a)=>{const r=We(i,a,()=>[void 0,t,0]),[,d,c]=r;(!d||s>d)&&(Pt(r,s,l?o:Lt(e,s)),r[0]=e,n[a]=e,g^=l?0:It(wt(a,c),wt(a,r[2])),u=At(u,s))}),g^=l?0:Wt(d,a),Pt(s,a,g),[u,c,s[2]]},b=_,w=_,L=()=>[Bt(l[0],e=>Bt(e,e=>Bt(e))),Bt(l[1])],C=e=>h(()=>g.applyChanges(f(e))),R={getMergeableContent:L,getMergeableContentHashes:()=>[l[0][2],l[1][2]],getMergeableTableHashes:()=>Pe(l[0][0],Ot),getMergeableTableDiff:e=>{const t=jt(l[0][1]),s={};return Ne(l[0][0],(n,[l,o,a])=>Me(e,n)?a!=e[n]?s[n]=a:0:t[0][n]=Ut([l,o],e=>Ut(e))),[t,s]},getMergeableRowHashes:e=>{const t={};return ke(e,(e,s)=>Q(ze(l[0][0],s),([n,,l])=>l!=e?Ne(n,(e,[,,n])=>Je(t,s,me)[e]=n):0)),t},getMergeableRowDiff:e=>{const t=jt(l[0][1]),s={};return ke(e,(e,n)=>Ne(ze(l[0][0],n)?.[0],(l,[o,a,r])=>Me(e,l)?r!==e[l]?Je(s,n,me)[l]=r:0:Je(t[0],n,jt)[0][l]=Ut([o,a]))),[t,s]},getMergeableCellHashes:e=>{const t={};return ke(e,(e,s)=>Q(ze(l[0][0],s),([n])=>ke(e,(e,l)=>Q(ze(n,l),([n,,o])=>o!==e?Ne(n,(e,[,,n])=>Je(Je(t,s,me),l,me)[e]=n):0)))),t},getMergeableCellDiff:e=>{const[[t,s]]=l,n={};return ke(e,(e,s)=>ke(e,(e,l)=>Q(ze(t,s),([t,o])=>Q(ze(t,l),([t,a])=>Ne(t,(t,[r,i,d])=>d!==e[t]?Je(Je(n,s,()=>jt(o))[0],l,()=>jt(a))[0][t]=[r,i]:0))))),zt(n,s)},getMergeableValueHashes:()=>Pe(l[1][0],Ot),getMergeableValueDiff:e=>{const[,[t,s]]=l,n=Pe(t,Ft,([,,t],s)=>t==e?.[s]);return zt(n,s)},setMergeableContent:e=>h(()=>(e=>W(e)&&2==P(e)&&qt(e[0],e=>xe(e,e=>qt(e,e=>xe(e,e=>qt(e,e=>xe(e,e=>qt(e,ae),void 0,1)),void 0,1)),void 0,1))&&qt(e[1],e=>xe(e,e=>qt(e,ae),void 0,1)))(e)?g.transaction(()=>{g.delTables().delValues(),l=ss(),g.applyChanges(f(e,1))}):0),setDefaultContent:e=>(g.transaction(()=>{o=1,g.setContent(e),o=0}),R),getTransactionMergeableChanges:(e=!1)=>{const[[t,s,n],[o,i,d]]=l,c=e?Nt:zt,u={};Le(a,(e,s)=>Q(ze(t,s),([t,n,l])=>{const o={};Le(e,(e,s)=>Q(ze(t,s),([t,n,l])=>{const a={};Le(e,e=>{Q(ze(t,e),([t,s,n])=>a[e]=c(t,s,n))}),o[s]=c(a,n,l)})),u[s]=c(o,n,l)}));const g={};return Le(r,e=>Q(ze(o,e),([t,s,n])=>g[e]=c(t,s,n))),[c(u,s,n),c(g,i,d),1]},applyMergeableChanges:C,merge:e=>{const t=L(),s=e.getMergeableContent();return e.applyMergeableChanges(t),C(s)}};return g.setInternalListeners(b,w,()=>{we(a),we(r)},(e,s,l,r)=>{Xe(We(We(a,e,Fe),s,Ke),l),n&&f([[{[e]:[{[s]:[{[l]:[r,o?t:d()]}]}]}],[{}],1])},(e,s)=>{Xe(r,e),n&&f([[{}],[{[e]:[s,o?t:d()]}],1])}),De(g,(e,t)=>R[t]=V(t,"set")||V(t,"del")||V(t,"apply")||m(t,"Transaction")||t=="call"+i?(...t)=>(e(...t),R):V(t,c)&&m(t,i)?(...s)=>{const n=ts[A(t,3,-8)]??0,l=s[n];return s[n]=(e,...t)=>l(R,...t),e(...s)}:"isMergeable"==t?()=>!0:e),Ve(R)},ls=Fe([["avg",[(e,t)=>$(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>D(...e),(e,t)=>D(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:D(t,e)]],["min",[e=>H(...e),(e,t)=>H(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:H(t,e)]],["sum",[e=>$(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),os=(e,t,s,n,l,o=!1)=>{if(Ie(s))return;const[a,r,i,d]=l;return o||=F(e),Le(n,([s,n])=>{o||(e=F(s)?r?.(e,n,t++):F(n)?i?.(e,s,t--):d?.(e,n,s,t),o||=F(e))}),o?a(be(s),ce(s)):e},as=$e(e=>{const s=Fe(),[n,l,o]=st(()=>w),[a,r,i,d,c,u,g,,h,f,I,b]=Ye(e,j,e=>isNaN(e)||F(e)||!0===e||!1===e||e===t?void 0:1*e,n,l),w={setMetricDefinition:(e,t,n,o,a,r,i)=>{const d=O(n)?[n,a,r,i]:ze(ls,n)??ze(ls,"sum");return h(e,t,(t,n,o,a,r,i)=>{const c=u(e),h=ce(a);i||=F(c),t();let f=os(c,h,a,n,d,i);x(f)||(f=void 0),f!=c&&(g(e,f),l(s,[e],f,c))},Ze(o,1)),w},delMetricDefinition:e=>(f(e),w),getStore:a,getMetricIds:r,forEachMetric:i,hasMetric:d,getTableId:c,getMetric:u,addMetricIdsListener:I,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(o(e),w),destroy:b,getListenerStats:()=>({metric:ue(s)})};return Ve(w)}),rs=$e(e=>{const s=e.createStore,n=s(),l=s(),o=Fe(),{addListener:a,callListeners:r,delListener:u}=l,[g,f,I,v,p,,,S,,y,V,m,M,E]=Ye(e,()=>!0,j,a,r),k=(e,t,...s)=>Y(s,s=>Xe(We(We(o,t,Fe),e,Ke),s)),D=e=>{Q(ze(o,e),e=>{Ne(e,(e,t)=>Le(t,t=>e.delListener(t))),we(e)}),Y([l,n],t=>t.delTable(e))},H=(e,t,s)=>k(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener(()=>s.finishTransaction())),J={setQueryDefinition:(s,o,a)=>{S(s,o),D(s);const r=[],i=[[null,[o,null,null,[],Fe()]]],d=[],c=[],u=[];a({select:(e,s)=>{const n=O(e)?[P(r)+t,e]:[F(s)?e:s,t=>t(e,s)];return se(r,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=F(s)||O(t)?null:t,l=F(n)?t:s,o=[e,[e,n,O(l)?l:e=>e(l),[],Fe()]];return se(i,o),{as:e=>o[0]=e}},where:(e,t,s)=>se(d,O(e)?e:F(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,l)=>{const o=[e,[e,O(t)?[t,s,n,l]:ze(ls,t)??[(e,t)=>t]]];return se(c,o),{as:e=>o[0]=e}},having:(e,t)=>se(u,O(e)?e:s=>s(e)===t)});const g=Fe(r);if(Ie(g))return J;const h=Fe(i);Ne(h,(e,[,t])=>Q(ze(h,t),({3:t})=>F(e)?0:se(t,e)));const f=Fe(c);let I=n;if(Ie(f)&&ee(u))I=l;else{H(s,I,l);const e=Fe();Ne(f,(t,[s,n])=>Xe(We(e,s,Ke),[t,n]));const t=Ke();Ne(g,s=>fe(e,s)?0:Xe(t,s));const n=Fe(),o=(t,n,o,a)=>Q(t,([r,i,d,c])=>{Ne(n,(t,[s])=>{const n=We(r,t,Fe),l=ze(n,o),i=a?void 0:s;if(l!==i){const s=Ke([[l,i]]),a=ce(n);Oe(n,o,i),Le(ze(e,t),([e,t])=>{const l=os(c[e],a,n,s,t);c[e]=F(oe(l))?null:l})}}),Ie(i)||!q(u,e=>e(e=>c[e]))?l.delRow(s,d):F(d)?t[2]=l.addRow(s,c):l.setRow(s,d,c)});k(I,s,I.addRowListener(s,null,(l,a,r,i)=>{const d=[],c=[],u=Fe(),g=I.hasRow(s,r);let h=!g;Le(t,e=>{const[t,n,l]=i(s,r,e);se(d,n),se(c,l),h||=t}),Ne(e,e=>{const[t,,n]=i(s,r,e);(h||t)&&Oe(u,e,[n])}),h&&o(Ge(n,d,void 0,([,e])=>(Ce(e,r),Ie(e))),u,r,1),g&&o(Ge(n,c,()=>{const e={};return Le(t,t=>e[t]=I.getCell(s,r,t)),[Fe(),Ke(),void 0,e]},([,e])=>{Xe(e,r)}),u,r)}))}H(s,e,I);const b=(t,n,l,a)=>{const r=t=>e.getCell(n,l,t);Y(a,n=>{const[l,,o,a,i]=ze(h,n),d=o?.(r,t),[c,u]=ze(i,t)??[];d!=c&&(F(u)||E(s,u),Oe(i,t,F(d)?null:[d,...M(s,1,e.addRowListener(l,d,()=>b(t,l,d,a)))]))}),(t=>{const n=(s,n)=>e.getCell(...F(n)?[o,t,s]:s===o?[o,t,n]:[ze(h,s)?.[0],ze(ze(h,s)?.[4],t)?.[0],n]);I.transaction(()=>q(d,e=>e(n))?Ne(g,(e,l)=>re(I,s,t,e,l(n,t))):I.delRow(s,t))})(t)},{3:w}=ze(h,null);return I.transaction(()=>M(s,1,e.addRowListener(o,null,(t,n,l)=>{e.hasRow(o,l)?b(l,o,l,w):(I.delRow(s,l),Le(h,({4:e})=>Q(ze(e,l),([,t])=>{E(s,t),Oe(e,l)})))}))),J},delQueryDefinition:e=>(D(e),y(e),J),getStore:g,getQueryIds:f,forEachQuery:I,hasQuery:v,getTableId:p,addQueryIdsListener:e=>V(()=>e(J)),delListener:e=>(u(e),J),destroy:m,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=l.getListenerStats();return n}};return De({[h]:[1,1],[h+T]:[0,1],[w]:[0,1],[L]:[0,1],[C]:[0,5],[b]:[1,2],[T]:[0,2],[R]:[1,3]},([e,t],s)=>{Y(e?["get","has","forEach"]:["get"],e=>J[e+d+s]=(...t)=>l[e+s](...t)),J[c+d+s+i]=(...e)=>l[c+s+i](...A(e,0,t),(s,...n)=>e[t](J,...n),!0)}),Ve(J)}),is=$e(e=>{const s=Fe(),n=Fe(),l=Fe(),o=Fe(),[a,r,i]=st(()=>v),[d,c,u,g,h,f,,,I,b,w,L]=Ye(e,()=>[Fe(),Fe(),Fe(),Fe()],e=>F(e)?void 0:e+t,a,r),C=(e,t,s)=>Q(f(e),([n,,l])=>{if(!fe(l,t)){const o=Ke();if(h(e)!=T(e))Xe(o,t);else{let e=t;for(;!F(e)&&!fe(o,e);)Xe(o,e),e=ze(n,e)}if(s)return o;Oe(l,t,o)}return ze(l,t)}),R=(e,t)=>Q(f(e),([,,e])=>Oe(e,t)),T=e=>ze(s,e),v={setRelationshipDefinition:(e,t,a,i)=>(Oe(s,e,a),I(e,t,(t,s)=>{const a=Ke(),i=Ke(),d=Ke(),[c,u]=f(e);Le(s,([t,s],n)=>{F(t)||(Xe(i,t),Q(ze(u,t),e=>{Ce(e,n),Ie(e)&&Oe(u,t)})),F(s)||(Xe(i,s),fe(u,s)||Oe(u,s,Ke()),Xe(ze(u,s),n)),Xe(a,n),Oe(c,n,s),Ne(ze(o,e),t=>{fe(C(e,t),n)&&Xe(d,t)})}),t(),Le(a,t=>r(n,[e,t])),Le(i,t=>r(l,[e,t])),Le(d,t=>{R(e,t),r(o,[e,t])})},Ze(i)),v),delRelationshipDefinition:e=>(Oe(s,e),b(e),v),getStore:d,getRelationshipIds:c,forEachRelationship:t=>u(s=>t(s,t=>e.forEachRow(h(s),t))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:T,getRemoteRowId:(e,t)=>ze(f(e)?.[0],t),getLocalRowIds:(e,t)=>be(ze(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>F(f(e))?[t]:be(C(e,t,!0)),addRelationshipIdsListener:w,addRemoteRowIdListener:(e,t,s)=>a(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>a(s,l,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(C(e,t),a(s,o,[e,t])),delListener:e=>(R(...i(e)??[]),v),destroy:L,getListenerStats:()=>({remoteRowId:ge(n),localRowIds:ge(l),linkedRowIds:ge(o)})};return Ve(v)});export{It as addOrRemoveHash,nt as createCheckpoints,xt as createIndexes,ns as createMergeableStore,as as createMetrics,rs as createQueries,is as createRelationships,es as createStore,Jt as defaultSorter,Ct as getCellHash,Rt as getCellInRowHash,ft as getHash,Ht as getHlcFunctions,Tt as getRowHash,vt as getRowInTableHash,pt as getTableHash,St as getTableInTablesHash,yt as getTablesHash,dt as getUniqueId,Lt as getValueHash,wt as getValueInValuesHash,bt as getValuesHash};
1
+ const e=e=>typeof e,t="",s=e(t),n=e(!0),o=e(0),a=e(e),l="type",r="default",i="allowNull",d="Listener",c="Result",u="add",g="Has",h="Ids",f="Table",I=f+"s",b=f+h,w="Row",L=w+"Count",v=w+h,C="Sorted"+w+h,R="Cell",T=R+h,p="Value",S=p+"s",y=p+h,V=e=>t+e,m=(e,t)=>e.startsWith(t),M=(e,t)=>e.endsWith(t),E=(e,s=t,n)=>e.split(s,n),k=e=>(t,s,n)=>e(t)?n?.():s(t),D=globalThis,H=Math,J=H.max,x=H.min,F=H.floor,Q=isFinite,N=e=>null==e,z=e=>void 0===e,O=e=>null===e,W=k(N),A=k(z),P=e=>e==s||e==n,j=t=>e(t)==s,_=t=>e(t)==a,B=e=>Array.isArray(e),U=(e,t,s)=>e.slice(t,s),q=e=>e.length,G=()=>{},K=()=>{},X=async(e,t,s)=>{try{return await e()}catch(e){t?.(e)}},Y=(e,t)=>e.includes(t),Z=(e,t)=>e.every(t),$=(e,t)=>q(e)===q(t)&&Z(e,(e,s)=>t[s]===e),ee=(e,t)=>Z(e,(s,n)=>0==n||t(e[n-1],s)<=0),te=(e,t)=>e.sort(t),se=(e,t)=>e.forEach(t),ne=(e,t)=>e.map(t),oe=e=>le(e,(e,t)=>e+t,0),ae=e=>0==q(e),le=(e,t,s)=>e.reduce(t,s),re=(e,...t)=>e.push(...t),ie=e=>e.pop(),de=e=>e.shift(),ce=t=>{if(O(t))return"null";const s=e(t);return P(s)||s==o&&Q(t)?s:void 0},ue=e=>z(e)||!z(ce(e)),ge=(e,t,s,n,o)=>z(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),he=(e,t,s)=>z(s)?e.delValue(t):e.setValue(t,s),fe=e=>t=>le(Re(t),(t,s)=>t+e(s),0),Ie=e=>e?.size??0,be=fe(Ie),we=fe(be),Le=fe(we),ve=(e,t)=>e?.has(t)??!1,Ce=e=>z(e)||0==Ie(e),Re=e=>[...e?.values()??[]],Te=e=>e.clear(),pe=(e,t)=>e?.forEach(t),Se=(e,t)=>e?.delete(t),ye=Object,Ve=e=>ye.getPrototypeOf(e),me=ye.isFrozen,Me=ye.entries,Ee=e=>!N(e)&&W(Ve(e),e=>e==ye.prototype||N(Ve(e)),()=>!0),ke=ye.keys,De=ye.freeze,He=(e=[])=>ye.fromEntries(e),Je=(e,t)=>t in e,xe=(e,t)=>(delete e[t],e),Fe=(e,t)=>se(Me(e),([e,s])=>t(s,e)),Qe=(e,t)=>He(((e,t)=>ne(Me(e),([e,s])=>t(s,e)))(e,(e,s)=>[s,t(e,s)])),Ne=e=>Ee(e)&&0==(e=>q(ke(e)))(e),ze=(e,t,s)=>(Je(e,t)||(e[t]=s()),e[t]),Oe=(e,t,s,n=0)=>N(e)||!Ee(e)||!n&&Ne(e)||me(e)?(s?.(),!1):(Fe(e,(s,n)=>{t(s,n)||xe(e,n)}),!!n||!Ne(e)),We=e=>new Map(e),Ae=e=>[...e?.keys()??[]],Pe=(e,t)=>e?.get(t),je=(e,t)=>pe(e,(e,s)=>t(s,e)),_e=(e,t,s)=>void 0===s?(Se(e,t),e):e?.set(t,s),Be=(e,t,s,n)=>(ve(e,t)?n?.(Pe(e,t)):_e(e,t,s()),Pe(e,t)),Ue=(e,t,s,n=_e)=>(Qe(t,(t,n)=>s(e,n,t)),je(e,s=>Je(t,s)?0:n(e,s)),e),qe=(e,t,s,n)=>{const o={};return pe(e,(e,a)=>{if(!s?.(e,a)){const s=t?t(e,a):e;n?.(s)||(o[a]=s)}}),o},Ge=(e,t,s)=>qe(e,e=>qe(e,t,s),Ce,Ne),Ke=(e,t,s)=>qe(e,e=>Ge(e,t,s),Ce,Ne),Xe=(e,t)=>{const s=We();return pe(e,(e,n)=>s.set(n,t?.(e)??e)),s},Ye=e=>Xe(e,Xe),Ze=e=>Xe(e,Ye),$e=(e,t,s,n,o=0)=>A((s?Be:Pe)(e,t[o],o>q(t)-2?s:We),a=>{if(o>q(t)-2)return n?.(a)&&_e(e,t[o]),a;const l=$e(a,t,s,n,o+1);return Ce(a)&&_e(e,t[o]),l}),et=e=>new Set(B(e)||z(e)?e:[e]),tt=(e,t)=>e?.add(t),st=(e,t,s,n,o)=>{const a=e.hasRow,l=We(),r=We(),i=We(),d=We(),c=We(),u=We(),g=(t,s,...n)=>{const o=Be(u,t,et);return se(n,t=>tt(o,t)&&s&&e.callListener(t)),n},h=(t,...s)=>A(Pe(u,t),n=>{se(ae(s)?Re(n):s,t=>{e.delListener(t),Se(n,t)}),Ce(n)&&_e(u,t)}),f=(e,s)=>{_e(l,e,s),ve(r,e)||(_e(r,e,t()),_e(d,e,We()),_e(c,e,We()),o(i))},I=e=>{_e(l,e),_e(r,e),_e(d,e),_e(c,e),h(e),o(i)};return[()=>e,()=>Ae(l),e=>je(r,e),e=>ve(r,e),e=>Pe(l,e),e=>Pe(r,e),(e,t)=>_e(r,e,t),f,(t,n,o,l,r)=>{f(t,n);const i=We(),u=We(),I=Pe(d,t),b=Pe(c,t),w=t=>{const o=s=>e.getCell(n,t,s),d=Pe(I,t),c=a(n,t)?s(l(o,t)):void 0;if(d===c||B(d)&&B(c)&&$(d,c)||_e(i,t,[d,c]),!z(r)){const e=Pe(b,t),s=a(n,t)?r(o,t):void 0;e!=s&&_e(u,t,s)}},L=e=>{o(()=>{pe(i,([,e],t)=>_e(I,t,e)),pe(u,(e,t)=>_e(b,t,e))},i,u,I,b,e),Te(i),Te(u)};je(I,w),e.hasTable(n)&&se(e.getRowIds(n),e=>{ve(I,e)||w(e)}),L(!0),h(t),g(t,0,e.addRowListener(n,null,(e,t,s)=>w(s)),e.addTableListener(n,()=>L()))},I,e=>n(e,i),()=>je(u,I),g,h]},nt=(e,s)=>j(e)?t=>t(e):e??(()=>s??t),ot=(e,t)=>{const s=new WeakMap;return n=>{s.has(n)||s.set(n,e(n));const o=s.get(n);return t?.(o),o}},at=/^\d+$/,lt=()=>{const e=[];let s=0;return[n=>(n?de(e):null)??t+s++,t=>{at.test(t)&&q(e)<1e3&&re(e,t)}]},rt=e=>{let s;const[n,o]=lt(),a=We();return[(o,l,r,i=[],d=()=>[])=>{s??=e();const c=n(1);return _e(a,c,[o,l,r,i,d]),tt($e(l,r??[t],et),c),c},(e,n,...o)=>se(((e,s=[t])=>{const n=[],o=(e,t)=>t==q(s)?re(n,e):null===s[t]?pe(e,e=>o(e,t+1)):se([s[t],null],s=>o(Pe(e,s),t+1));return o(e,0),n})(e,n),e=>pe(e,e=>Pe(a,e)[0](s,...n??[],...o))),e=>A(Pe(a,e),([,s,n])=>($e(s,n??[t],void 0,t=>(Se(t,e),Ce(t)?1:0)),_e(a,e),o(e),n)),e=>A(Pe(a,e),([e,,t=[],n,o])=>{const a=(...l)=>{const r=q(l);r==q(t)?e(s,...l,...o(l)):O(t[r])?se(n[r]?.(...l)??[],e=>a(...l,e)):a(...l,t[r])};a()})]},it=ot(e=>{let s,n,o,a=100,l=We(),r=We(),i=1;const d=We(),c=We(),[u,g,h]=rt(()=>J),f=We(),I=We(),b=[],w=[],L=(t,s)=>{i=0,e.transaction(()=>{const[n,o]=Pe(f,s);pe(n,(s,n)=>pe(s,(s,o)=>pe(s,(s,a)=>ge(e,n,o,a,s[t])))),pe(o,(s,n)=>he(e,n,s[t]))}),i=1},v=e=>{_e(f,e),_e(I,e),g(c,[e])},C=(e,t)=>se(((e,t)=>e.splice(0,t))(e,t??q(e)),v),R=()=>C(b,q(b)-a),T=()=>A(s,()=>{re(b,s),R(),C(w),s=void 0,o=1}),p=()=>{s=ie(b),o=1};let S,y;const V=(e=t)=>(z(s)&&(s=t+n++,_e(f,s,[l,r]),D(s,e),l=We(),r=We(),o=1),s),m=()=>{ae(b)||(((e,...t)=>{e.unshift(...t)})(w,V()),L(0,s),s=ie(b),o=1)},M=()=>{ae(w)||(re(b,s),s=de(w),L(1,s),o=1)},E=()=>{o&&(g(d),o=0)},k=e=>{const t=V(e);return E(),t},D=(e,t)=>(H(e)&&Pe(I,e)!==t&&(_e(I,e,t),g(c,[e])),J),H=e=>ve(f,e),J={setSize:e=>(a=e,R(),J),addCheckpoint:k,setCheckpoint:D,getStore:()=>e,getCheckpointIds:()=>[[...b],s,[...w]],forEachCheckpoint:e=>je(I,e),hasCheckpoint:H,getCheckpoint:e=>Pe(I,e),goBackward:()=>(m(),E(),J),goForward:()=>(M(),E(),J),goTo:e=>{const t=Y(b,e)?m:Y(w,e)?M:void 0;for(;!z(t)&&e!=s;)t();return E(),J},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(h(e),J),clear:()=>(C(b),C(w),z(s)||v(s),s=void 0,n=0,k(),J),clearForward:()=>(ae(w)||(C(w),g(d)),J),destroy:()=>{e.delListener(S),e.delListener(y)},getListenerStats:()=>({checkpointIds:be(d),checkpoint:be(c)}),_registerListeners:()=>{S=e.addCellListener(null,null,null,(e,t,s,n,o,a)=>{if(i){T();const e=Be(l,t,We),r=Be(e,s,We),i=Be(r,n,()=>[a,void 0]);i[1]=o,i[0]===o&&Ce(_e(r,n))&&Ce(_e(e,s))&&Ce(_e(l,t))&&p(),E()}}),y=e.addValueListener(null,(e,t,s,n)=>{if(i){T();const e=Be(r,t,()=>[n,void 0]);e[1]=s,e[0]===s&&Ce(_e(r,t))&&p(),E()}})}};return De(J.clear())},e=>e._registerListeners()),dt=E("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),ct=We(ne(dt,(e,t)=>[e,t])),ut=e=>dt[63&e],gt=(e,t)=>Pe(ct,e[t])??0,ht=D.crypto?e=>D.crypto.getRandomValues(e):e=>ne(e,()=>F(256*H.random())),ft=(e=16)=>le(ht(new Uint8Array(e)),(e,t)=>e+ut(t),t),It=JSON.stringify,bt=JSON.parse,wt=e=>It(e,(e,t)=>t instanceof Map?ye.fromEntries([...t]):t),Lt=new D.TextEncoder,vt=e=>{let t=2166136261;return se(Lt.encode(e),e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)}),t>>>0},Ct=(e,t)=>(e^t)>>>0,Rt=e=>le(Me(e),(e,[t,s])=>Ct(e,Tt(t,s)^Tt(t,0)),0),Tt=(e,t)=>vt(e+":"+t),pt=(e,t)=>vt(wt(e??null)+":"+t),St=pt,yt=Tt,Vt=Rt,mt=Tt,Mt=e=>le(Me(e),(e,[t,s])=>Ct(e,Tt(t,s)),0),Et=Tt,kt=Mt,Dt=2**36,Ht=2**30,Jt=2**24,xt=2**18,Ft=4096,Qt=e=>{const t=vt(e);return ut(t/Jt)+ut(t/xt)+ut(t/Ft)+ut(t/64)+ut(t)},Nt=(e,t=Date.now)=>{let s=0,n=-1;const o=A(e,Qt,()=>ft(5)),a=e=>{const o=s,[a,l]=z(e)||""==e?[0,0]:r(e);s=J(o,a,t()),n=s==o?s==a?J(n,l):n:s==a?l:-1},l=(e,t,s)=>ut(e/Dt)+ut(e/Ht)+ut(e/Jt)+ut(e/xt)+ut(e/Ft)+ut(e/64)+ut(e)+ut(t/xt)+ut(t/Ft)+ut(t/64)+ut(t)+(z(s)?o:Qt(s)),r=e=>[gt(e,0)*Dt+gt(e,1)*Ht+gt(e,2)*Jt+gt(e,3)*xt+gt(e,4)*Ft+64*gt(e,5)+gt(e,6),gt(e,7)*xt+gt(e,8)*Ft+64*gt(e,9)+gt(e,10),e.slice(11)];return[()=>(a(),l(s,++n)),a,l,r,()=>s,()=>n,()=>o]},zt=(e,t)=>(e??0)<(t??0)?-1:1,Ot=ot(e=>{const s=We(),n=We(),[o,a,l]=rt(()=>v),[r,i,d,c,u,g,h,,f,I,b,w]=st(e,We,e=>z(e)?t:B(e)?ne(e,V):V(e),o,a),L=(t,s,n)=>{const o=u(t);pe(n,(t,n)=>s(n,s=>pe(t,t=>s(t,s=>e.forEachCell(o,t,s)))))},v={setIndexDefinition:(e,t,o,l,r,i=zt)=>{const d=z(r)?void 0:([e],[t])=>r(e,t);return f(e,t,(t,o,r,c,u,f)=>{let I=0;const b=et(),w=et(),L=g(e);if(pe(o,([e,t],s)=>{const n=et(e),o=et(t);pe(n,e=>Se(o,e)?Se(n,e):0),pe(n,e=>{tt(b,e),A(Pe(L,e),t=>{Se(t,s),Ce(t)&&(_e(L,e),I=1)})}),pe(o,e=>{tt(b,e),ve(L,e)||(_e(L,e,et()),I=1),tt(Pe(L,e),s),z(l)||tt(w,e)})}),t(),Ce(u)||(f?je(L,e=>tt(w,e)):je(r,e=>A(Pe(c,e),e=>se(B(e)?e:[e],e=>tt(w,e)))),pe(w,e=>{const t=(t,s)=>i(Pe(u,t),Pe(u,s),e),s=[...Pe(L,e)];ee(s,t)||(_e(L,e,et(te(s,t))),tt(b,e))})),(I||f)&&!z(d)){const t=[...L];ee(t,d)||(h(e,We(te(t,d))),I=1)}I&&a(s,[e]),pe(b,t=>a(n,[e,t]))},nt(o),A(l,nt)),v},delIndexDefinition:e=>(I(e),v),getStore:r,getIndexIds:i,forEachIndex:e=>d((t,s)=>e(t,e=>L(t,e,s))),forEachSlice:(e,t)=>L(e,t,g(e)),hasIndex:c,hasSlice:(e,t)=>ve(g(e),t),getTableId:u,getSliceIds:e=>Ae(g(e)),getSliceRowIds:(e,t)=>Re(Pe(g(e),t)),addIndexIdsListener:b,addSliceIdsListener:(e,t)=>o(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>o(s,n,[e,t]),delListener:e=>(l(e),v),destroy:w,getListenerStats:()=>({sliceIds:be(s),sliceRowIds:we(n)})};return De(v)}),Wt=([e,t])=>Pt(e,t),At=([e,t,s])=>[e,t,s],Pt=(e,t)=>t?[e,t]:[e],jt=(e,t,s)=>[e,t,s],_t=e=>e[2],Bt=(e,t)=>t>e?(e?vt(e):0)^vt(t):0,Ut=(e,t)=>((e??"")>(t??"")?e:t)??"",qt=(e,t,s)=>{t>e[1]&&(e[1]=t),e[2]=s>>>0},Gt=(e=t)=>Pt(He(),e),Kt=(e=t)=>[We(),e,0],Xt=([e,t,s],n=At)=>[qe(e,n),t,s],Yt=([e,t],s=Wt)=>Pt(qe(e,s),t),Zt=(t,s)=>B(t)&&3==q(t)&&j(t[1])&&e(t[2])==o&&Q(t[2])&&s(t[0]),$t=e=>[e,e],es=(e,t=be)=>t(e[0])+t(e[1]),ts=()=>[We(),We()],ss=e=>[...e],ns=([e,t])=>e===t,os=(e,t,s)=>_e(e,t,Pe(e,t)==-s?void 0:s),as=()=>{let e,t,s=!1,n=!1,a=0,c=[];const h=We(),C=We(),m=We(),M=We(),E=We(),k=We(),D=We(),H=We(),J=We(),x=We(),F=We(),Q=We(),N=We(),W=We(),j=et(),q=We(),G=We(),K=We(),Z=We(),ee=ts(),oe=ts(),ae=ts(),le=ts(),ie=ts(),de=ts(),ue=ts(),fe=ts(),Re=ts(),ye=ts(),Ve=ts(),me=ts(),Me=ts(),ke=ts(),He=ts(),Fe=ts(),ze=ts(),$e=ts(),st=ts(),nt=ts(),ot=ts(),at=ts(),it=We(),dt=ts(),[ct,ut,gt,ht]=rt(()=>_s),ft=e=>{if(!Oe(e,(e,t)=>Y([l,r,i],t)))return!1;const t=e[l];if(!P(t)&&t!=o)return!1;const s=e[r];return!(O(s)&&!e[i]||(O(s)||ce(s)==t||xe(e,r),0))},It=B,Lt=(t,s)=>(!e||ve(F,s)||Gt(s))&&Oe(t,(e,t)=>vt(s,t,e),()=>Gt(s)),vt=(e,t,s,n)=>Oe(n?s:pt(s,e,t),(n,o)=>A(Ct(e,t,o,n),e=>(s[o]=e,!0),()=>!1),()=>Gt(e,t)),Ct=(t,s,n,o)=>e?A(Pe(Pe(F,t),n),e=>O(o)?e[i]?o:Gt(t,s,n,o,e[r]):ce(o)==e[l]?o:Gt(t,s,n,o,e[r]),()=>Gt(t,s,n,o)):z(ce(o))?Gt(t,s,n,o):o,Rt=(e,t)=>Oe(t?e:St(e),(t,s)=>A(Tt(s,t),t=>(e[s]=t,!0),()=>!1),()=>Kt()),Tt=(e,s)=>t?A(Pe(N,e),t=>O(s)?t[i]?s:Kt(e,s,t[r]):ce(s)==t[l]?s:Kt(e,s,t[r]),()=>Kt(e,s)):z(ce(s))?Kt(e,s):s,pt=(e,t,s)=>(A(Pe(Q,t),([n,o])=>{pe(n,(t,s)=>{Je(e,s)||(e[s]=t)}),pe(o,n=>{Je(e,n)||Gt(t,s,n)})}),e),St=e=>(t&&(pe(W,(t,s)=>{Je(e,s)||(e[s]=t)}),pe(j,t=>{Je(e,t)||Kt(t)})),e),yt=e=>Ue(F,e,(e,t,s)=>{const n=We(),o=et();Ue(Be(F,t,We),s,(e,t,s)=>{_e(e,t,s),A(s[r],e=>_e(n,t,e),()=>tt(o,t))}),_e(Q,t,[n,o])},(e,t)=>{_e(F,t),_e(Q,t)}),Vt=e=>Ue(N,e,(e,t,s)=>{_e(N,t,s),A(s[r],e=>_e(W,t,e),()=>tt(j,t))},(e,t)=>{_e(N,t),_e(W,t),Se(j,t)}),mt=e=>Ne(e)?Fs():ks(e),Mt=e=>Ue(K,e,(e,t,s)=>Et(t,s),(e,t)=>Nt(t)),Et=(e,t)=>Ue(Be(K,e,()=>(Pt(e,1),_e(q,e,lt()),_e(G,e,We()),We())),t,(t,s,n)=>kt(e,t,s,n),(t,s)=>Ot(e,t,s)),kt=(e,t,s,n,o)=>Ue(Be(t,s,()=>(jt(e,s,1),We())),n,(t,n,o)=>Dt(e,s,t,n,o),(n,a)=>Wt(e,t,s,n,a,o)),Dt=(e,t,s,n,o)=>{ve(s,n)||_t(e,t,n,1);const a=Pe(s,n);o!==a&&(Bt(e,t,n,a,o),_e(s,n,o))},Ht=(e,t,s,n,o)=>A(Pe(t,s),t=>Dt(e,s,t,n,o),()=>kt(e,t,s,pt({[n]:o},e,s))),Jt=e=>Ne(e)?zs():Ds(e),xt=e=>Ue(Z,e,(e,t,s)=>Ft(t,s),(e,t)=>At(t)),Ft=(e,t)=>{ve(Z,e)||Ut(e,1);const s=Pe(Z,e);t!==s&&(qt(e,s,t),_e(Z,e,t))},Qt=e=>Pe(K,e)??Et(e,{}),Nt=e=>Et(e,{}),Ot=(e,t,s)=>{const[,n]=Pe(q,e);n(s),kt(e,t,s,{},!0)},Wt=(e,t,s,n,o,a)=>{const l=Pe(Pe(Q,e)?.[0],o);if(!z(l)&&!a)return Dt(e,s,n,o,l);const r=t=>{Bt(e,s,t,Pe(n,t)),_t(e,s,t,-1),_e(n,t)};z(l)?r(o):je(n,r),Ce(n)&&(jt(e,s,-1),Ce(_e(t,s))&&(Pt(e,-1),_e(K,e),_e(q,e),_e(G,e)))},At=e=>{const t=Pe(W,e);if(!z(t))return Ft(e,t);qt(e,Pe(Z,e)),Ut(e,-1),_e(Z,e)},Pt=(e,t)=>os(h,e,t),jt=(e,t,s)=>os(Be(M,e,We),t,s)&&_e(m,e,Be(m,e,()=>0)+s),_t=(e,t,s,n)=>{const o=Pe(G,e),a=Pe(o,s)??0;(0==a&&1==n||1==a&&-1==n)&&os(Be(C,e,We),s,n),_e(o,s,a!=-n?a+n:void 0),os(Be(Be(E,e,We),t,We),s,n)},Bt=(e,t,s,n,o)=>{Be(Be(Be(k,e,We),t,We),s,()=>[n,0])[1]=o,c[3]?.(e,t,s,o)},Ut=(e,t)=>os(D,e,t),qt=(e,t,s)=>{Be(H,e,()=>[t,0])[1]=s,c[4]?.(e,s)},Gt=(e,t,s,n,o)=>(re(Be(Be(Be(J,e,We),t,We),s,()=>[]),n),o),Kt=(e,t,s)=>(re(Be(x,e,()=>[]),t),s),Xt=(e,t,s)=>A(Pe(Pe(Pe(k,e),t),s),([e,t])=>[!0,e,t],()=>[!1,...$t(vs(e,t,s))]),Yt=e=>A(Pe(H,e),([e,t])=>[!0,e,t],()=>[!1,...$t(Ts(e))]),Zt=e=>Ce(J)||Ce(Fe[e])?0:pe(e?Ze(J):J,(t,s)=>pe(t,(t,n)=>pe(t,(t,o)=>ut(Fe[e],[s,n,o],t)))),ls=e=>Ce(x)||Ce(ze[e])?0:pe(e?Xe(x):x,(t,s)=>ut(ze[e],[s],t)),rs=(e,t,s,n)=>{if(!Ce(e))return ut(t,n,()=>qe(e)),je(e,(e,t)=>ut(s,[...n??[],e],1==t)),1},is=e=>{const t=ps();t!=s&&ut(ee[e],void 0,t);const n=Ce(ye[e]),o=Ce(Me[e])&&Ce(ke[e])&&Ce(Re[e])&&Ce(Ve[e])&&Ce(de[e])&&Ce(ue[e])&&Ce(fe[e])&&n&&Ce(ae[e])&&Ce(le[e]),a=Ce(He[e])&&Ce(me[e])&&Ce(ie[e])&&Ce(oe[e]);if(!o||!a){const t=e?[Xe(h),Ye(C),Xe(m),Ye(M),Ze(E),Ze(k)]:[h,C,m,M,E,k];if(!o){rs(t[0],ae[e],le[e]),pe(t[1],(t,s)=>rs(t,de[e],ue[e],[s])),pe(t[2],(t,s)=>{0!=t&&ut(fe[e],[s],Is(s))});const s=et();pe(t[3],(t,o)=>{rs(t,Re[e],Ve[e],[o])&&!n&&(ut(ye[e],[o,null]),tt(s,o))}),n||pe(t[5],(t,n)=>{if(!ve(s,n)){const s=et();pe(t,e=>pe(e,([t,n],o)=>n!==t?tt(s,o):Se(e,o))),pe(s,t=>ut(ye[e],[n,t]))}}),pe(t[4],(t,s)=>pe(t,(t,n)=>rs(t,Me[e],ke[e],[s,n])))}if(!a){let s;pe(t[5],(t,n)=>{let o;pe(t,(t,a)=>{let l;pe(t,([t,r],i)=>{r!==t&&(ut(He[e],[n,a,i],r,t,Xt),s=o=l=1)}),l&&ut(me[e],[n,a],Xt)}),o&&ut(ie[e],[n],Xt)}),s&&ut(oe[e],void 0,Xt)}}},ds=e=>{const t=Ms();t!=n&&ut($e[e],void 0,t);const s=Ce(nt[e])&&Ce(ot[e]),o=Ce(at[e])&&Ce(st[e]);if(!s||!o){const t=e?[Xe(D),Xe(H)]:[D,H];if(s||rs(t[0],nt[e],ot[e]),!o){let s;pe(t[1],([t,n],o)=>{n!==t&&(ut(at[e],[o],n,t,Yt),s=1)}),s&&ut(st[e],void 0,Yt)}}},cs=(e,...t)=>(As(()=>e(...ne(t,V))),_s),us=(e,t,s,n,o)=>{let a=ws(e,t,...s);return ct(()=>{const o=ws(e,t,...s);$(o,a)||(a=o,n(_s,e,t,...s,a))},ye[o?1:0],[e,t],[hs])},gs=()=>Ke(K),hs=()=>Ae(K),fs=e=>Ae(Pe(G,V(e))),Is=e=>Ie(Pe(K,V(e))),bs=e=>Ae(Pe(K,V(e))),ws=(e,t,s,n=0,o)=>{return Ee(e)?ws(e.tableId,e.cellId,e.descending,e.offset,e.limit):ne(U(te((a=Pe(K,V(e)),l=(e,s)=>[z(t)?s:Pe(e,V(t)),s],ne([...a?.entries()??[]],([e,t])=>l(t,e))),([e],[t])=>zt(e,t)*(s?-1:1)),n,z(o)?o:n+o),([,e])=>e);var a,l},Ls=(e,t)=>Ae(Pe(Pe(K,V(e)),V(t))),vs=(e,t,s)=>Pe(Pe(Pe(K,V(e)),V(t)),V(s)),Cs=()=>qe(Z),Rs=()=>Ae(Z),Ts=e=>Pe(Z,V(e)),ps=()=>!Ce(K),Ss=e=>ve(K,V(e)),ys=(e,t)=>ve(Pe(G,V(e)),V(t)),Vs=(e,t)=>ve(Pe(K,V(e)),V(t)),ms=(e,t,s)=>ve(Pe(Pe(K,V(e)),V(t)),V(s)),Ms=()=>!Ce(Z),Es=e=>ve(Z,V(e)),ks=e=>cs(()=>(e=>Oe(e,Lt,Gt))(e)?Mt(e):0),Ds=e=>cs(()=>Rt(e)?xt(e):0),Hs=e=>(X(()=>mt(bt(e))),_s),Js=t=>cs(()=>{if((e=Oe(t,e=>Oe(e,ft)))&&(yt(t),!Ce(K))){const e=gs();Fs(),ks(e)}}),xs=e=>cs(()=>{if(t=(e=>Oe(e,ft))(e)){const s=Cs();Ws(),zs(),t=!0,Vt(e),Ds(s)}}),Fs=()=>cs(()=>Mt({})),Qs=e=>cs(e=>ve(K,e)?Nt(e):0,e),Ns=(e,t)=>cs((e,t)=>A(Pe(K,e),s=>ve(s,t)?Ot(e,s,t):0),e,t),zs=()=>cs(()=>xt({})),Os=()=>cs(()=>{yt({}),e=!1}),Ws=()=>cs(()=>{Vt({}),t=!1}),As=(e,t)=>{if(-1!=a){Ps();const s=e();return js(t),s}},Ps=()=>(-1!=a&&a++,1==a&&(c[0]?.(),ut(it)),_s),js=e=>(a>0&&(a--,0==a&&(a=1,Zt(1),Ce(k)||is(1),ls(1),Ce(H)||ds(1),e?.(_s)&&(pe(k,(e,t)=>pe(e,(e,s)=>pe(e,([e],n)=>ge(_s,t,s,n,e)))),Te(k),pe(H,([e],t)=>he(_s,t,e)),Te(H)),ut(dt[0],void 0),a=-1,Zt(0),Ce(k)||is(0),ls(0),Ce(H)||ds(0),c[1]?.(),ut(dt[1],void 0),c[2]?.(),a=0,s=ps(),n=Ms(),se([h,C,m,M,E,k,J,D,H,x],Te))),_s),_s={getContent:()=>[gs(),Cs()],getTables:gs,getTableIds:hs,getTable:e=>Ge(Pe(K,V(e))),getTableCellIds:fs,getRowCount:Is,getRowIds:bs,getSortedRowIds:ws,getRow:(e,t)=>qe(Pe(Pe(K,V(e)),V(t))),getCellIds:Ls,getCell:vs,getValues:Cs,getValueIds:Rs,getValue:Ts,hasTables:ps,hasTable:Ss,hasTableCell:ys,hasRow:Vs,hasCell:ms,hasValues:Ms,hasValue:Es,getTablesJson:()=>wt(K),getValuesJson:()=>wt(Z),getJson:()=>wt([K,Z]),getTablesSchemaJson:()=>wt(F),getValuesSchemaJson:()=>wt(N),getSchemaJson:()=>wt([F,N]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>cs(()=>{const t=_(e)?e():e;It(t)&&(([e,t])=>{(Ne(e)?Fs:ks)(e),(Ne(t)?zs:Ds)(t)})(t)}),setTables:ks,setTable:(e,t)=>cs(e=>Lt(t,e)?Et(e,t):0,e),setRow:(e,t,s)=>cs((e,t)=>vt(e,t,s)?kt(e,Qt(e),t,s):0,e,t),addRow:(e,t,s=!0)=>As(()=>{let n;return vt(e,n,t)&&(e=V(e),kt(e,Qt(e),n=((e,t)=>{const[s]=Pe(q,e);let n;do{n=s(t)}while(ve(Pe(K,e),n));return n})(e,s?1:0),t)),n}),setPartialRow:(e,t,s)=>cs((e,t)=>{if(vt(e,t,s,1)){const n=Qt(e);Qe(s,(s,o)=>Ht(e,n,t,o,s))}},e,t),setCell:(e,t,s,n)=>cs((e,t,s)=>A(Ct(e,t,s,_(n)?n(vs(e,t,s)):n),n=>Ht(e,Qt(e),t,s,n)),e,t,s),setValues:Ds,setPartialValues:e=>cs(()=>Rt(e,1)?Qe(e,(e,t)=>Ft(t,e)):0),setValue:(e,t)=>cs(e=>A(Tt(e,_(t)?t(Ts(e)):t),t=>Ft(e,t)),e),applyChanges:e=>cs(()=>{Qe(e[0],(e,t)=>z(e)?Qs(t):Qe(e,(e,s)=>z(e)?Ns(t,s):Qe(e,(e,n)=>ge(_s,t,s,n,e)))),Qe(e[1],(e,t)=>he(_s,t,e))}),setTablesJson:Hs,setValuesJson:e=>(X(()=>Jt(bt(e))),_s),setJson:e=>cs(()=>X(()=>{const[t,s]=bt(e);mt(t),Jt(s)},()=>Hs(e))),setTablesSchema:Js,setValuesSchema:xs,setSchema:(e,t)=>cs(()=>{Js(e),xs(t)}),delTables:Fs,delTable:Qs,delRow:Ns,delCell:(e,t,s,n)=>cs((e,t,s)=>A(Pe(K,e),o=>A(Pe(o,t),a=>ve(a,s)?Wt(e,o,t,a,s,n):0)),e,t,s),delValues:zs,delValue:e=>cs(e=>ve(Z,e)?At(e):0,e),delTablesSchema:Os,delValuesSchema:Ws,delSchema:()=>cs(()=>{Os(),Ws()}),transaction:As,startTransaction:Ps,getTransactionChanges:()=>[qe(k,(e,t)=>-1===Pe(h,t)?void 0:qe(e,(e,s)=>-1===Pe(Pe(M,t),s)?void 0:qe(e,([,e])=>e,e=>ns(e)),Ce,Ne),Ce,Ne),qe(H,([,e])=>e,e=>ns(e)),1],getTransactionLog:()=>[!Ce(k),!Ce(H),Ke(k,ss,ns),Ke(J),qe(H,ss,ns),qe(x),qe(h),Ge(M),Ke(E),qe(D)],finishTransaction:js,forEachTable:e=>pe(K,(t,s)=>e(s,e=>pe(t,(t,s)=>e(s,e=>je(t,e))))),forEachTableCell:(e,t)=>je(Pe(G,V(e)),t),forEachRow:(e,t)=>pe(Pe(K,V(e)),(e,s)=>t(s,t=>je(e,t))),forEachCell:(e,t,s)=>je(Pe(Pe(K,V(e)),V(t)),s),forEachValue:e=>je(Z,e),addSortedRowIdsListener:(e,t,s,n,o,a,l)=>Ee(e)?us(e.tableId,e.cellId,[e.descending??!1,e.offset??0,e.limit],t,s):us(e,t,[s,n,o],a,l),addStartTransactionListener:e=>ct(e,it),addWillFinishTransactionListener:e=>ct(e,dt[0]),addDidFinishTransactionListener:e=>ct(e,dt[1]),callListener:e=>(ht(e),_s),delListener:e=>(gt(e),_s),getListenerStats:()=>({hasTables:es(ee),tables:es(oe),tableIds:es(ae),hasTable:es(le),table:es(ie),tableCellIds:es(de),hasTableCell:es(ue,we),rowCount:es(fe),rowIds:es(Re),sortedRowIds:es(ye),hasRow:es(Ve,we),row:es(me,we),cellIds:es(Me,we),hasCell:es(ke,Le),cell:es(He,Le),invalidCell:es(Fe,Le),hasValues:es($e),values:es(st),valueIds:es(nt),hasValue:es(ot),value:es(at),invalidValue:es(ze),transaction:be(it)+es(dt)}),isMergeable:()=>!1,createStore:as,addListener:ct,callListeners:ut,setInternalListeners:(e,t,s,n,o)=>c=[e,t,s,n,o]};return Qe({[g+I]:[0,ee,[],()=>[ps()]],[I]:[0,oe],[b]:[0,ae],[g+f]:[1,le,[hs],e=>[Ss(...e)]],[f]:[1,ie,[hs]],[f+T]:[1,de,[hs]],[g+f+R]:[2,ue,[hs,fs],e=>[ys(...e)]],[L]:[1,fe,[hs]],[v]:[1,Re,[hs]],[g+w]:[2,Ve,[hs,bs],e=>[Vs(...e)]],[w]:[2,me,[hs,bs]],[T]:[2,Me,[hs,bs]],[g+R]:[3,ke,[hs,bs,Ls],e=>[ms(...e)]],[R]:[3,He,[hs,bs,Ls],e=>$t(vs(...e))],InvalidCell:[3,Fe],[g+S]:[0,$e,[],()=>[Ms()]],[S]:[0,st],[y]:[0,nt],[g+p]:[1,ot,[Rs],e=>[Es(...e)]],[p]:[1,at,[Rs],e=>$t(Ts(e[0]))],InvalidValue:[1,ze]},([e,t,s,n],o)=>{_s[u+o+d]=(...o)=>ct(o[e],t[o[e+1]?1:0],e>0?U(o,0,e):void 0,s,n)}),De(_s)},ls={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},rs=(e=t)=>[Kt(e),Kt(e)],is=(e,s)=>{let n=1,o=rs(),a=0;const l=We(),r=et(),[i,c]=Nt(e,s),g=as(),h=e=>{const t=n;return n=0,e(),n=t,C},f=(e,s=0)=>{const n={},a={},[[l,r=t,i=0],d]=e,[u,g]=o,[h,f,b]=u;let w=s?i:b,L=r;Fe(l,([e,o=t,a=0],l)=>{const r=Be(h,l,Kt),[i,d,c]=r;let u=s?a:c,g=o;Fe(e,(e,t)=>{const[o,a,r]=I(e,Be(i,t,Kt),ze(ze(n,l,He),t,He),s);u^=s?0:Ct(a?Tt(t,a):0,Tt(t,r)),g=Ut(g,o)}),u^=s?0:Bt(d,o),qt(r,o,u),w^=s?0:Ct(c?Tt(l,c):0,Tt(l,r[2])),L=Ut(L,g)}),w^=s?0:Bt(f,r),qt(u,r,w);const[v]=I(d,g,a,s);return c(Ut(L,v)),[n,a,1]},I=(e,s,n,o)=>{const[a,l=t,r=0]=e,[i,d,c]=s;let u=l,g=o?r:c;return Fe(a,([e,s=t,a=0],l)=>{const r=Be(i,l,()=>[void 0,t,0]),[,d,c]=r;(!d||s>d)&&(qt(r,s,o?a:pt(e,s)),r[0]=e,n[l]=e,g^=o?0:Ct(Tt(l,c),Tt(l,r[2])),u=Ut(u,s))}),g^=o?0:Bt(d,l),qt(s,l,g),[u,c,s[2]]},b=K,w=K,L=()=>[Xt(o[0],e=>Xt(e,e=>Xt(e))),Xt(o[1])],v=e=>h(()=>g.applyChanges(f(e))),C={getMergeableContent:L,getMergeableContentHashes:()=>[o[0][2],o[1][2]],getMergeableTableHashes:()=>qe(o[0][0],_t),getMergeableTableDiff:e=>{const t=Gt(o[0][1]),s={};return je(o[0][0],(n,[o,a,l])=>Je(e,n)?l!=e[n]?s[n]=l:0:t[0][n]=Yt([o,a],e=>Yt(e))),[t,s]},getMergeableRowHashes:e=>{const t={};return Fe(e,(e,s)=>A(Pe(o[0][0],s),([n,,o])=>o!=e?je(n,(e,[,,n])=>ze(t,s,He)[e]=n):0)),t},getMergeableRowDiff:e=>{const t=Gt(o[0][1]),s={};return Fe(e,(e,n)=>je(Pe(o[0][0],n)?.[0],(o,[a,l,r])=>Je(e,o)?r!==e[o]?ze(s,n,He)[o]=r:0:ze(t[0],n,Gt)[0][o]=Yt([a,l]))),[t,s]},getMergeableCellHashes:e=>{const t={};return Fe(e,(e,s)=>A(Pe(o[0][0],s),([n])=>Fe(e,(e,o)=>A(Pe(n,o),([n,,a])=>a!==e?je(n,(e,[,,n])=>ze(ze(t,s,He),o,He)[e]=n):0)))),t},getMergeableCellDiff:e=>{const[[t,s]]=o,n={};return Fe(e,(e,s)=>Fe(e,(e,o)=>A(Pe(t,s),([t,a])=>A(Pe(t,o),([t,l])=>je(t,(t,[r,i,d])=>d!==e[t]?ze(ze(n,s,()=>Gt(a))[0],o,()=>Gt(l))[0][t]=[r,i]:0))))),Pt(n,s)},getMergeableValueHashes:()=>qe(o[1][0],_t),getMergeableValueDiff:e=>{const[,[t,s]]=o,n=qe(t,Wt,([,,t],s)=>t==e?.[s]);return Pt(n,s)},setMergeableContent:e=>h(()=>(e=>B(e)&&2==q(e)&&Zt(e[0],e=>Oe(e,e=>Zt(e,e=>Oe(e,e=>Zt(e,e=>Oe(e,e=>Zt(e,ue),void 0,1)),void 0,1)),void 0,1))&&Zt(e[1],e=>Oe(e,e=>Zt(e,ue),void 0,1)))(e)?g.transaction(()=>{g.delTables().delValues(),o=rs(),g.applyChanges(f(e,1))}):0),setDefaultContent:e=>(g.transaction(()=>{a=1,g.setContent(e),a=0}),C),getTransactionMergeableChanges:(e=!1)=>{const[[t,s,n],[a,i,d]]=o,c=e?jt:Pt,u={};pe(l,(e,s)=>A(Pe(t,s),([t,n,o])=>{const a={};pe(e,(e,s)=>A(Pe(t,s),([t,n,o])=>{const l={};pe(e,e=>{A(Pe(t,e),([t,s,n])=>l[e]=c(t,s,n))}),a[s]=c(l,n,o)})),u[s]=c(a,n,o)}));const g={};return pe(r,e=>A(Pe(a,e),([t,s,n])=>g[e]=c(t,s,n))),[c(u,s,n),c(g,i,d),1]},applyMergeableChanges:v,merge:e=>{const t=L(),s=e.getMergeableContent();return e.applyMergeableChanges(t),v(s)}};return g.setInternalListeners(b,w,()=>{Te(l),Te(r)},(e,s,o,r)=>{tt(Be(Be(l,e,We),s,et),o),n&&f([[{[e]:[{[s]:[{[o]:[r,a?t:i()]}]}]}],[{}],1])},(e,s)=>{tt(r,e),n&&f([[{}],[{[e]:[s,a?t:i()]}],1])}),Qe(g,(e,t)=>C[t]=m(t,"set")||m(t,"del")||m(t,"apply")||M(t,"Transaction")||t=="call"+d?(...t)=>(e(...t),C):m(t,u)&&M(t,d)?(...s)=>{const n=ls[U(t,3,-8)]??0,o=s[n];return s[n]=(e,...t)=>o(C,...t),e(...s)}:"isMergeable"==t?()=>!0:e),De(C)},ds=We([["avg",[(e,t)=>oe(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>J(...e),(e,t)=>J(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:J(t,e)]],["min",[e=>x(...e),(e,t)=>x(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:x(t,e)]],["sum",[e=>oe(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),cs=(e,t,s,n,o,a=!1)=>{if(Ce(s))return;const[l,r,i,d]=o;return a||=z(e),pe(n,([s,n])=>{a||(e=z(s)?r?.(e,n,t++):z(n)?i?.(e,s,t--):d?.(e,n,s,t),a||=z(e))}),a?l(Re(s),Ie(s)):e},us=ot(e=>{const s=We(),[n,o,a]=rt(()=>w),[l,r,i,d,c,u,g,,h,f,I,b]=st(e,G,e=>isNaN(e)||z(e)||!0===e||!1===e||e===t?void 0:1*e,n,o),w={setMetricDefinition:(e,t,n,a,l,r,i)=>{const d=_(n)?[n,l,r,i]:Pe(ds,n)??Pe(ds,"sum");return h(e,t,(t,n,a,l,r,i)=>{const c=u(e),h=Ie(l);i||=z(c),t();let f=cs(c,h,l,n,d,i);Q(f)||(f=void 0),f!=c&&(g(e,f),o(s,[e],f,c))},nt(a,1)),w},delMetricDefinition:e=>(f(e),w),getStore:l,getMetricIds:r,forEachMetric:i,hasMetric:d,getTableId:c,getMetric:u,addMetricIdsListener:I,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(a(e),w),destroy:b,getListenerStats:()=>({metric:be(s)})};return De(w)}),gs=ot(e=>{const s=e.createStore,n=s(),o=s(),a=We(),{addListener:l,callListeners:r,delListener:i}=o,[g,h,I,b,p,,,S,,y,V,m,M,E]=st(e,()=>!0,G,l,r),k=(e,t,...s)=>se(s,s=>tt(Be(Be(a,t,We),e,et),s)),D=e=>{A(Pe(a,e),e=>{je(e,(e,t)=>pe(t,t=>e.delListener(t))),Te(e)}),se([o,n],t=>t.delTable(e))},H=(e,t,s)=>k(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener(()=>s.finishTransaction())),J={setQueryDefinition:(s,a,l)=>{S(s,a),D(s);const r=[],i=[[void 0,[a,void 0,void 0,[],We()]]],d=[],c=[],u=[];l({select:(e,s)=>{const n=_(e)?[q(r)+t,e]:[z(s)?e:s,t=>t(e,s)];return re(r,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=z(s)||_(t)?void 0:t,o=z(n)?t:s,a=[e,[e,n,_(o)?o:e=>e(o),[],We()]];return re(i,a),{as:e=>a[0]=e}},where:(e,t,s)=>re(d,_(e)?e:z(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const a=[e,[e,_(t)?[t,s,n,o]:Pe(ds,t)??[(e,t)=>t]]];return re(c,a),{as:e=>a[0]=e}},having:(e,t)=>re(u,_(e)?e:s=>s(e)===t)});const g=We(r);if(Ce(g))return J;const h=We(i);je(h,(e,[,t])=>A(Pe(h,t),({3:t})=>z(e)?0:re(t,e)));const f=We(c);let I=n;if(Ce(f)&&ae(u))I=o;else{H(s,I,o);const e=We();je(f,(t,[s,n])=>tt(Be(e,s,et),[t,n]));const t=et();je(g,s=>ve(e,s)?0:tt(t,s));const n=We(),a=(t,n,a,l)=>A(t,([r,i,d,c])=>{je(n,(t,[s])=>{const n=Be(r,t,We),o=Pe(n,a),i=l?void 0:s;if(o!==i){const s=et([[o,i]]),l=Ie(n);_e(n,a,i),pe(Pe(e,t),([e,t])=>{const o=cs(c[e],l,n,s,t);c[e]=z(ce(o))?void 0:o})}}),Ce(i)||!Z(u,e=>e(e=>c[e]))?o.delRow(s,d):z(d)?t[2]=o.addRow(s,c):o.setRow(s,d,c)});k(I,s,I.addRowListener(s,null,(o,l,r,i)=>{const d=[],c=[],u=We(),g=I.hasRow(s,r);let h=!g;pe(t,e=>{const[t,n,o]=i(s,r,e);re(d,n),re(c,o),h||=t}),je(e,e=>{const[t,,n]=i(s,r,e);(h||t)&&_e(u,e,[n])}),h&&a($e(n,d,void 0,([,e])=>(Se(e,r),Ce(e))),u,r,1),g&&a($e(n,c,()=>{const e={};return pe(t,t=>e[t]=I.getCell(s,r,t)),[We(),et(),void 0,e]},([,e])=>{tt(e,r)}),u,r)}))}H(s,e,I);const b=(t,n,o,l)=>{const r=t=>e.getCell(n,o,t);se(l,n=>{const[o,,a,l,i]=Pe(h,n),d=a?.(r,t),[c,u]=Pe(i,t)??[];d!=c&&(z(u)||E(s,u),_e(i,t,z(d)?void 0:[d,...M(s,1,e.addRowListener(o,d,()=>b(t,o,d,l)))]))}),(t=>{const n=(s,n)=>e.getCell(...z(n)?[a,t,s]:s===a?[a,t,n]:[Pe(h,s)?.[0],Pe(Pe(h,s)?.[4],t)?.[0],n]);I.transaction(()=>Z(d,e=>e(n))?je(g,(e,o)=>ge(I,s,t,e,o(n,t))):I.delRow(s,t))})(t)},{3:w}=Pe(h,void 0);return I.transaction(()=>M(s,1,e.addRowListener(a,null,(t,n,o)=>{e.hasRow(a,o)?b(o,a,o,w):(I.delRow(s,o),pe(h,({4:e})=>A(Pe(e,o),([,t])=>{E(s,t),_e(e,o)})))}))),J},delQueryDefinition:e=>(D(e),y(e),J),getStore:g,getQueryIds:h,forEachQuery:I,hasQuery:b,getTableId:p,addQueryIdsListener:e=>V(()=>e(J)),delListener:e=>(i(e),J),destroy:m,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=o.getListenerStats();return n}};return Qe({[f]:[1,1],[f+T]:[0,1],[L]:[0,1],[v]:[0,1],[C]:[0,5],[w]:[1,2],[T]:[0,2],[R]:[1,3]},([e,t],s)=>{se(e?["get","has","forEach"]:["get"],e=>J[e+c+s]=(...t)=>o[e+s](...t)),J[u+c+s+d]=(...e)=>o[u+s+d](...U(e,0,t),(s,...n)=>e[t](J,...n),!0)}),De(J)}),hs=ot(e=>{const s=We(),n=We(),o=We(),a=We(),[l,r,i]=rt(()=>T),[d,c,u,g,h,f,,,I,b,w,L]=st(e,()=>[We(),We(),We(),We()],e=>z(e)?void 0:e+t,l,r),v=(e,t,s)=>A(f(e),([n,,o])=>{if(!ve(o,t)){const a=et();if(h(e)!=R(e))tt(a,t);else{let e=t;for(;!z(e)&&!ve(a,e);)tt(a,e),e=Pe(n,e)}if(s)return a;_e(o,t,a)}return Pe(o,t)}),C=(e,t)=>A(f(e),([,,e])=>_e(e,t)),R=e=>Pe(s,e),T={setRelationshipDefinition:(e,t,l,i)=>(_e(s,e,l),I(e,t,(t,s)=>{const l=et(),i=et(),d=et(),[c,u]=f(e);pe(s,([t,s],n)=>{z(t)||(tt(i,t),A(Pe(u,t),e=>{Se(e,n),Ce(e)&&_e(u,t)})),z(s)||(tt(i,s),ve(u,s)||_e(u,s,et()),tt(Pe(u,s),n)),tt(l,n),_e(c,n,s),je(Pe(a,e),t=>{ve(v(e,t),n)&&tt(d,t)})}),t(),pe(l,t=>r(n,[e,t])),pe(i,t=>r(o,[e,t])),pe(d,t=>{C(e,t),r(a,[e,t])})},nt(i)),T),delRelationshipDefinition:e=>(_e(s,e),b(e),T),getStore:d,getRelationshipIds:c,forEachRelationship:t=>u(s=>t(s,t=>e.forEachRow(h(s),t))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:R,getRemoteRowId:(e,t)=>Pe(f(e)?.[0],t),getLocalRowIds:(e,t)=>Re(Pe(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>z(f(e))?[t]:Re(v(e,t,!0)),addRelationshipIdsListener:w,addRemoteRowIdListener:(e,t,s)=>l(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>l(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(v(e,t),l(s,a,[e,t])),delListener:e=>(C(...i(e)??[]),T),destroy:L,getListenerStats:()=>({remoteRowId:we(n),localRowIds:we(o),linkedRowIds:we(a)})};return De(T)});export{Ct as addOrRemoveHash,it as createCheckpoints,Ot as createIndexes,is as createMergeableStore,us as createMetrics,gs as createQueries,hs as createRelationships,as as createStore,zt as defaultSorter,St as getCellHash,yt as getCellInRowHash,vt as getHash,Nt as getHlcFunctions,Vt as getRowHash,mt as getRowInTableHash,Mt as getTableHash,Et as getTableInTablesHash,kt as getTablesHash,ft as getUniqueId,pt as getValueHash,Tt as getValueInValuesHash,Rt as getValuesHash};
package/min/index.js.gz CHANGED
Binary file
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",n=e(t),s=e=>t+e,r=e=>null==e,o=(e,t,n)=>r(e)?n?.():t(e),d=e=>Array.isArray(e),c=e=>e.length,l=(e,t)=>e.every(t),a=(e,t)=>l(e,(n,s)=>0==s||t(e[s-1],n)<=0),i=(e,t)=>e.sort(t),u=(e,t)=>e.forEach(t),I=(e,...t)=>e.push(...t),h=e=>t=>{return n=(t,n)=>t+e(n),S(t).reduce(n,0);var n},f=e=>e?.size??0,g=h(f),v=h(g),w=(e,t)=>e?.has(t)??!1,L=e=>r(e)||0==f(e),S=e=>[...e?.values()??[]],x=e=>e.clear(),p=(e,t)=>e?.forEach(t),y=(e,t)=>e?.delete(t),R=Object.freeze,E=e=>new Map(e),b=e=>[...e?.keys()??[]],T=(e,t)=>e?.get(t),k=(e,t)=>p(e,(e,n)=>t(n,e)),z=(e,t,n)=>r(n)?(y(e,t),e):e?.set(t,n),A=(e,t,n,s)=>(w(e,t)?s?.(T(e,t)):z(e,t,n()),T(e,t)),C=(e,t,n,s,r=0)=>o((n?A:T)(e,t[r],r>c(t)-2?n:E),o=>{if(r>c(t)-2)return s?.(o)&&z(e,t[r]),o;const d=C(o,t,n,s,r+1);return L(o)&&z(e,t[r]),d}),D=e=>new Set(d(e)||r(e)?e:[e]),M=(e,t)=>e?.add(t),j=(s,r)=>e(s)==n?e=>e(s):s??(()=>r??t),m=(e,t)=>(e??0)<(t??0)?-1:1,O=/^\d+$/,W=(()=>{const e=new WeakMap;return n=>(e.has(n)||e.set(n,(e=>{const n=E(),h=E(),[f,W,$]=(()=>{let e;const[n,s]=(()=>{const e=[];let n=0;return[s=>(s?e.shift():null)??t+n++,t=>{O.test(t)&&c(e)<1e3&&I(e,t)}]})(),d=E();return[(s,r,o,c=[],l=()=>[])=>{e??=X;const a=n(1);return z(d,a,[s,r,o,c,l]),M(C(r,o??[t],D),a),a},(n,s,...r)=>u(((e,n=[t])=>{const s=[],r=(e,t)=>t==c(n)?I(s,e):null===n[t]?p(e,e=>r(e,t+1)):u([n[t],null],n=>r(T(e,n),t+1));return r(e,0),s})(n,s),t=>p(t,t=>T(d,t)[0](e,...s??[],...r))),e=>o(T(d,e),([,n,r])=>(C(n,r??[t],void 0,t=>(y(t,e),L(t)?1:0)),z(d,e),s(e),r)),t=>o(T(d,t),([t,,n=[],s,o])=>{const d=(...l)=>{const a=c(l);a==c(n)?t(e,...l,...o(l)):r(n[a])?u(s[a]?.(...l)??[],e=>d(...l,e)):d(...l,n[a])};d()})]})(),[q,B,F,G,H,J,K,,N,P,Q,U]=((e,t,n,s,a)=>{const i=e.hasRow,I=E(),h=E(),f=E(),g=E(),v=E(),R=E(),C=(t,n,...s)=>{const r=A(R,t,D);return u(s,t=>M(r,t)&&n&&e.callListener(t)),s},j=(t,...n)=>o(T(R,t),s=>{u(0==c(n)?S(s):n,t=>{e.delListener(t),y(s,t)}),L(s)&&z(R,t)}),m=(e,n)=>{z(I,e,n),w(h,e)||(z(h,e,t()),z(g,e,E()),z(v,e,E()),a(f))},O=e=>{z(I,e),z(h,e),z(g,e),z(v,e),j(e),a(f)};return[()=>e,()=>b(I),e=>k(h,e),e=>w(h,e),e=>T(I,e),e=>T(h,e),(e,t)=>z(h,e,t),m,(t,s,o,a,I)=>{m(t,s);const h=E(),f=E(),L=T(g,t),S=T(v,t),y=t=>{const o=n=>e.getCell(s,t,n),u=T(L,t),g=i(s,t)?n(a(o,t)):void 0;var v,w;if(u===g||d(u)&&d(g)&&(w=g,c(v=u)===c(w)&&l(v,(e,t)=>w[t]===e))||z(h,t,[u,g]),!r(I)){const e=T(S,t),n=i(s,t)?I(o,t):void 0;e!=n&&z(f,t,n)}},R=e=>{o(()=>{p(h,([,e],t)=>z(L,t,e)),p(f,(e,t)=>z(S,t,e))},h,f,L,S,e),x(h),x(f)};k(L,y),e.hasTable(s)&&u(e.getRowIds(s),e=>{w(L,e)||y(e)}),R(!0),j(t),C(t,0,e.addRowListener(s,null,(e,t,n)=>y(n)),e.addTableListener(s,()=>R()))},O,e=>s(e,f),()=>k(R,O),C,j]})(e,E,e=>{return r(e)?t:d(e)?(n=s,e.map(n)):s(e);var n},f,W),V=(t,n,s)=>{const r=H(t);p(s,(t,s)=>n(s,n=>p(t,t=>n(t,n=>e.forEachCell(r,t,n)))))},X={setIndexDefinition:(e,t,s,c,l,I=m)=>{const f=r(l)?void 0:([e],[t])=>l(e,t);return N(e,t,(t,s,l,g,v,S)=>{let x=0;const R=D(),b=D(),A=J(e);if(p(s,([e,t],n)=>{const s=D(e),d=D(t);p(s,e=>y(d,e)?y(s,e):0),p(s,e=>{M(R,e),o(T(A,e),t=>{y(t,n),L(t)&&(z(A,e),x=1)})}),p(d,e=>{M(R,e),w(A,e)||(z(A,e,D()),x=1),M(T(A,e),n),r(c)||M(b,e)})}),t(),L(v)||(S?k(A,e=>M(b,e)):k(l,e=>o(T(g,e),e=>u(d(e)?e:[e],e=>M(b,e)))),p(b,e=>{const t=(t,n)=>I(T(v,t),T(v,n),e),n=[...T(A,e)];a(n,t)||(z(A,e,D(i(n,t))),M(R,e))})),(x||S)&&!r(f)){const t=[...A];a(t,f)||(K(e,E(i(t,f))),x=1)}x&&W(n,[e]),p(R,t=>W(h,[e,t]))},j(s),o(c,j)),X},delIndexDefinition:e=>(P(e),X),getStore:q,getIndexIds:B,forEachIndex:e=>F((t,n)=>e(t,e=>V(t,e,n))),forEachSlice:(e,t)=>V(e,t,J(e)),hasIndex:G,hasSlice:(e,t)=>w(J(e),t),getTableId:H,getSliceIds:e=>b(J(e)),getSliceRowIds:(e,t)=>S(T(J(e),t)),addIndexIdsListener:Q,addSliceIdsListener:(e,t)=>f(t,n,[e]),addSliceRowIdsListener:(e,t,n)=>f(n,h,[e,t]),delListener:e=>($(e),X),destroy:U,getListenerStats:()=>({sliceIds:g(n),sliceRowIds:v(h)})};return R(X)})(n)),e.get(n))})();export{W as createIndexes};
1
+ const e=e=>typeof e,t="",n=e(t),s=e=>t+e,r=e=>void 0===e,o=(d=r,(e,t,n)=>d(e)?n?.():t(e));var d;const c=e=>Array.isArray(e),l=e=>e.length,i=(e,t)=>e.every(t),a=(e,t)=>i(e,(n,s)=>0==s||t(e[s-1],n)<=0),u=(e,t)=>e.sort(t),I=(e,t)=>e.forEach(t),h=(e,...t)=>e.push(...t),f=e=>t=>{return n=(t,n)=>t+e(n),x(t).reduce(n,0);var n},v=e=>e?.size??0,g=f(v),w=f(g),L=(e,t)=>e?.has(t)??!1,S=e=>r(e)||0==v(e),x=e=>[...e?.values()??[]],p=e=>e.clear(),y=(e,t)=>e?.forEach(t),R=(e,t)=>e?.delete(t),E=Object.freeze,b=e=>new Map(e),T=e=>[...e?.keys()??[]],k=(e,t)=>e?.get(t),z=(e,t)=>y(e,(e,n)=>t(n,e)),A=(e,t,n)=>void 0===n?(R(e,t),e):e?.set(t,n),C=(e,t,n,s)=>(L(e,t)?s?.(k(e,t)):A(e,t,n()),k(e,t)),D=(e,t,n,s,r=0)=>o((n?C:k)(e,t[r],r>l(t)-2?n:b),o=>{if(r>l(t)-2)return s?.(o)&&A(e,t[r]),o;const d=D(o,t,n,s,r+1);return S(o)&&A(e,t[r]),d}),M=e=>new Set(c(e)||r(e)?e:[e]),j=(e,t)=>e?.add(t),m=(s,r)=>e(s)==n?e=>e(s):s??(()=>r??t),O=(e,t)=>(e??0)<(t??0)?-1:1,W=/^\d+$/,$=(()=>{const e=new WeakMap;return n=>(e.has(n)||e.set(n,(e=>{const n=b(),d=b(),[f,v,$]=(()=>{let e;const[n,s]=(()=>{const e=[];let n=0;return[s=>(s?e.shift():null)??t+n++,t=>{W.test(t)&&l(e)<1e3&&h(e,t)}]})(),r=b();return[(s,o,d,c=[],l=()=>[])=>{e??=X;const i=n(1);return A(r,i,[s,o,d,c,l]),j(D(o,d??[t],M),i),i},(n,s,...o)=>I(((e,n=[t])=>{const s=[],r=(e,t)=>t==l(n)?h(s,e):null===n[t]?y(e,e=>r(e,t+1)):I([n[t],null],n=>r(k(e,n),t+1));return r(e,0),s})(n,s),t=>y(t,t=>k(r,t)[0](e,...s??[],...o))),e=>o(k(r,e),([,n,o])=>(D(n,o??[t],void 0,t=>(R(t,e),S(t)?1:0)),A(r,e),s(e),o)),t=>o(k(r,t),([t,,n=[],s,r])=>{const o=(...d)=>{const c=l(d);c==l(n)?t(e,...d,...r(d)):(e=>null===e)(n[c])?I(s[c]?.(...d)??[],e=>o(...d,e)):o(...d,n[c])};o()})]})(),[q,B,F,G,H,J,K,,N,P,Q,U]=((e,t,n,s,d)=>{const a=e.hasRow,u=b(),h=b(),f=b(),v=b(),g=b(),w=b(),E=(t,n,...s)=>{const r=C(w,t,M);return I(s,t=>j(r,t)&&n&&e.callListener(t)),s},D=(t,...n)=>o(k(w,t),s=>{I(0==l(n)?x(s):n,t=>{e.delListener(t),R(s,t)}),S(s)&&A(w,t)}),m=(e,n)=>{A(u,e,n),L(h,e)||(A(h,e,t()),A(v,e,b()),A(g,e,b()),d(f))},O=e=>{A(u,e),A(h,e),A(v,e),A(g,e),D(e),d(f)};return[()=>e,()=>T(u),e=>z(h,e),e=>L(h,e),e=>k(u,e),e=>k(h,e),(e,t)=>A(h,e,t),m,(t,s,o,d,u)=>{m(t,s);const h=b(),f=b(),w=k(v,t),S=k(g,t),x=t=>{const o=n=>e.getCell(s,t,n),I=k(w,t),v=a(s,t)?n(d(o,t)):void 0;var g,L;if(I===v||c(I)&&c(v)&&(L=v,l(g=I)===l(L)&&i(g,(e,t)=>L[t]===e))||A(h,t,[I,v]),!r(u)){const e=k(S,t),n=a(s,t)?u(o,t):void 0;e!=n&&A(f,t,n)}},R=e=>{o(()=>{y(h,([,e],t)=>A(w,t,e)),y(f,(e,t)=>A(S,t,e))},h,f,w,S,e),p(h),p(f)};z(w,x),e.hasTable(s)&&I(e.getRowIds(s),e=>{L(w,e)||x(e)}),R(!0),D(t),E(t,0,e.addRowListener(s,null,(e,t,n)=>x(n)),e.addTableListener(s,()=>R()))},O,e=>s(e,f),()=>z(w,O),E,D]})(e,b,e=>{return r(e)?t:c(e)?(n=s,e.map(n)):s(e);var n},f,v),V=(t,n,s)=>{const r=H(t);y(s,(t,s)=>n(s,n=>y(t,t=>n(t,n=>e.forEachCell(r,t,n)))))},X={setIndexDefinition:(e,t,s,l,i,h=O)=>{const f=r(i)?void 0:([e],[t])=>i(e,t);return N(e,t,(t,s,i,g,w,x)=>{let p=0;const E=M(),T=M(),C=J(e);if(y(s,([e,t],n)=>{const s=M(e),d=M(t);y(s,e=>R(d,e)?R(s,e):0),y(s,e=>{j(E,e),o(k(C,e),t=>{R(t,n),S(t)&&(A(C,e),p=1)})}),y(d,e=>{j(E,e),L(C,e)||(A(C,e,M()),p=1),j(k(C,e),n),r(l)||j(T,e)})}),t(),S(w)||(x?z(C,e=>j(T,e)):z(i,e=>o(k(g,e),e=>I(c(e)?e:[e],e=>j(T,e)))),y(T,e=>{const t=(t,n)=>h(k(w,t),k(w,n),e),n=[...k(C,e)];a(n,t)||(A(C,e,M(u(n,t))),j(E,e))})),(p||x)&&!r(f)){const t=[...C];a(t,f)||(K(e,b(u(t,f))),p=1)}p&&v(n,[e]),y(E,t=>v(d,[e,t]))},m(s),o(l,m)),X},delIndexDefinition:e=>(P(e),X),getStore:q,getIndexIds:B,forEachIndex:e=>F((t,n)=>e(t,e=>V(t,e,n))),forEachSlice:(e,t)=>V(e,t,J(e)),hasIndex:G,hasSlice:(e,t)=>L(J(e),t),getTableId:H,getSliceIds:e=>T(J(e)),getSliceRowIds:(e,t)=>x(k(J(e),t)),addIndexIdsListener:Q,addSliceIdsListener:(e,t)=>f(t,n,[e]),addSliceRowIdsListener:(e,t,n)=>f(n,d,[e,t]),delListener:e=>($(e),X),destroy:U,getListenerStats:()=>({sliceIds:g(n),sliceRowIds:w(d)})};return E(X)})(n)),e.get(n))})();export{$ as createIndexes};
Binary file
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",n=e(t),s=e=>t+e,r=e=>null==e,o=(e,t,n)=>r(e)?n?.():t(e),d=e=>Array.isArray(e),c=e=>e.length,l=(e,t)=>e.every(t),a=(e,t)=>l(e,(n,s)=>0==s||t(e[s-1],n)<=0),i=(e,t)=>e.sort(t),u=(e,t)=>e.forEach(t),I=(e,...t)=>e.push(...t),h=e=>t=>{return n=(t,n)=>t+e(n),S(t).reduce(n,0);var n},f=e=>e?.size??0,g=h(f),v=h(g),w=(e,t)=>e?.has(t)??!1,L=e=>r(e)||0==f(e),S=e=>[...e?.values()??[]],x=e=>e.clear(),p=(e,t)=>e?.forEach(t),y=(e,t)=>e?.delete(t),R=Object.freeze,E=e=>new Map(e),b=e=>[...e?.keys()??[]],T=(e,t)=>e?.get(t),k=(e,t)=>p(e,(e,n)=>t(n,e)),z=(e,t,n)=>r(n)?(y(e,t),e):e?.set(t,n),A=(e,t,n,s)=>(w(e,t)?s?.(T(e,t)):z(e,t,n()),T(e,t)),C=(e,t,n,s,r=0)=>o((n?A:T)(e,t[r],r>c(t)-2?n:E),o=>{if(r>c(t)-2)return s?.(o)&&z(e,t[r]),o;const d=C(o,t,n,s,r+1);return L(o)&&z(e,t[r]),d}),D=e=>new Set(d(e)||r(e)?e:[e]),M=(e,t)=>e?.add(t),j=(s,r)=>e(s)==n?e=>e(s):s??(()=>r??t),m=(e,t)=>(e??0)<(t??0)?-1:1,O=/^\d+$/,W=(()=>{const e=new WeakMap;return n=>(e.has(n)||e.set(n,(e=>{const n=E(),h=E(),[f,W,$]=(()=>{let e;const[n,s]=(()=>{const e=[];let n=0;return[s=>(s?e.shift():null)??t+n++,t=>{O.test(t)&&c(e)<1e3&&I(e,t)}]})(),d=E();return[(s,r,o,c=[],l=()=>[])=>{e??=X;const a=n(1);return z(d,a,[s,r,o,c,l]),M(C(r,o??[t],D),a),a},(n,s,...r)=>u(((e,n=[t])=>{const s=[],r=(e,t)=>t==c(n)?I(s,e):null===n[t]?p(e,e=>r(e,t+1)):u([n[t],null],n=>r(T(e,n),t+1));return r(e,0),s})(n,s),t=>p(t,t=>T(d,t)[0](e,...s??[],...r))),e=>o(T(d,e),([,n,r])=>(C(n,r??[t],void 0,t=>(y(t,e),L(t)?1:0)),z(d,e),s(e),r)),t=>o(T(d,t),([t,,n=[],s,o])=>{const d=(...l)=>{const a=c(l);a==c(n)?t(e,...l,...o(l)):r(n[a])?u(s[a]?.(...l)??[],e=>d(...l,e)):d(...l,n[a])};d()})]})(),[q,B,F,G,H,J,K,,N,P,Q,U]=((e,t,n,s,a)=>{const i=e.hasRow,I=E(),h=E(),f=E(),g=E(),v=E(),R=E(),C=(t,n,...s)=>{const r=A(R,t,D);return u(s,t=>M(r,t)&&n&&e.callListener(t)),s},j=(t,...n)=>o(T(R,t),s=>{u(0==c(n)?S(s):n,t=>{e.delListener(t),y(s,t)}),L(s)&&z(R,t)}),m=(e,n)=>{z(I,e,n),w(h,e)||(z(h,e,t()),z(g,e,E()),z(v,e,E()),a(f))},O=e=>{z(I,e),z(h,e),z(g,e),z(v,e),j(e),a(f)};return[()=>e,()=>b(I),e=>k(h,e),e=>w(h,e),e=>T(I,e),e=>T(h,e),(e,t)=>z(h,e,t),m,(t,s,o,a,I)=>{m(t,s);const h=E(),f=E(),L=T(g,t),S=T(v,t),y=t=>{const o=n=>e.getCell(s,t,n),u=T(L,t),g=i(s,t)?n(a(o,t)):void 0;var v,w;if(u===g||d(u)&&d(g)&&(w=g,c(v=u)===c(w)&&l(v,(e,t)=>w[t]===e))||z(h,t,[u,g]),!r(I)){const e=T(S,t),n=i(s,t)?I(o,t):void 0;e!=n&&z(f,t,n)}},R=e=>{o(()=>{p(h,([,e],t)=>z(L,t,e)),p(f,(e,t)=>z(S,t,e))},h,f,L,S,e),x(h),x(f)};k(L,y),e.hasTable(s)&&u(e.getRowIds(s),e=>{w(L,e)||y(e)}),R(!0),j(t),C(t,0,e.addRowListener(s,null,(e,t,n)=>y(n)),e.addTableListener(s,()=>R()))},O,e=>s(e,f),()=>k(R,O),C,j]})(e,E,e=>{return r(e)?t:d(e)?(n=s,e.map(n)):s(e);var n},f,W),V=(t,n,s)=>{const r=H(t);p(s,(t,s)=>n(s,n=>p(t,t=>n(t,n=>e.forEachCell(r,t,n)))))},X={setIndexDefinition:(e,t,s,c,l,I=m)=>{const f=r(l)?void 0:([e],[t])=>l(e,t);return N(e,t,(t,s,l,g,v,S)=>{let x=0;const R=D(),b=D(),A=J(e);if(p(s,([e,t],n)=>{const s=D(e),d=D(t);p(s,e=>y(d,e)?y(s,e):0),p(s,e=>{M(R,e),o(T(A,e),t=>{y(t,n),L(t)&&(z(A,e),x=1)})}),p(d,e=>{M(R,e),w(A,e)||(z(A,e,D()),x=1),M(T(A,e),n),r(c)||M(b,e)})}),t(),L(v)||(S?k(A,e=>M(b,e)):k(l,e=>o(T(g,e),e=>u(d(e)?e:[e],e=>M(b,e)))),p(b,e=>{const t=(t,n)=>I(T(v,t),T(v,n),e),n=[...T(A,e)];a(n,t)||(z(A,e,D(i(n,t))),M(R,e))})),(x||S)&&!r(f)){const t=[...A];a(t,f)||(K(e,E(i(t,f))),x=1)}x&&W(n,[e]),p(R,t=>W(h,[e,t]))},j(s),o(c,j)),X},delIndexDefinition:e=>(P(e),X),getStore:q,getIndexIds:B,forEachIndex:e=>F((t,n)=>e(t,e=>V(t,e,n))),forEachSlice:(e,t)=>V(e,t,J(e)),hasIndex:G,hasSlice:(e,t)=>w(J(e),t),getTableId:H,getSliceIds:e=>b(J(e)),getSliceRowIds:(e,t)=>S(T(J(e),t)),addIndexIdsListener:Q,addSliceIdsListener:(e,t)=>f(t,n,[e]),addSliceRowIdsListener:(e,t,n)=>f(n,h,[e,t]),delListener:e=>($(e),X),destroy:U,getListenerStats:()=>({sliceIds:g(n),sliceRowIds:v(h)})};return R(X)})(n)),e.get(n))})();export{W as createIndexes};
1
+ const e=e=>typeof e,t="",n=e(t),s=e=>t+e,r=e=>void 0===e,o=(d=r,(e,t,n)=>d(e)?n?.():t(e));var d;const c=e=>Array.isArray(e),l=e=>e.length,i=(e,t)=>e.every(t),a=(e,t)=>i(e,(n,s)=>0==s||t(e[s-1],n)<=0),u=(e,t)=>e.sort(t),I=(e,t)=>e.forEach(t),h=(e,...t)=>e.push(...t),f=e=>t=>{return n=(t,n)=>t+e(n),x(t).reduce(n,0);var n},v=e=>e?.size??0,g=f(v),w=f(g),L=(e,t)=>e?.has(t)??!1,S=e=>r(e)||0==v(e),x=e=>[...e?.values()??[]],p=e=>e.clear(),y=(e,t)=>e?.forEach(t),R=(e,t)=>e?.delete(t),E=Object.freeze,b=e=>new Map(e),T=e=>[...e?.keys()??[]],k=(e,t)=>e?.get(t),z=(e,t)=>y(e,(e,n)=>t(n,e)),A=(e,t,n)=>void 0===n?(R(e,t),e):e?.set(t,n),C=(e,t,n,s)=>(L(e,t)?s?.(k(e,t)):A(e,t,n()),k(e,t)),D=(e,t,n,s,r=0)=>o((n?C:k)(e,t[r],r>l(t)-2?n:b),o=>{if(r>l(t)-2)return s?.(o)&&A(e,t[r]),o;const d=D(o,t,n,s,r+1);return S(o)&&A(e,t[r]),d}),M=e=>new Set(c(e)||r(e)?e:[e]),j=(e,t)=>e?.add(t),m=(s,r)=>e(s)==n?e=>e(s):s??(()=>r??t),O=(e,t)=>(e??0)<(t??0)?-1:1,W=/^\d+$/,$=(()=>{const e=new WeakMap;return n=>(e.has(n)||e.set(n,(e=>{const n=b(),d=b(),[f,v,$]=(()=>{let e;const[n,s]=(()=>{const e=[];let n=0;return[s=>(s?e.shift():null)??t+n++,t=>{W.test(t)&&l(e)<1e3&&h(e,t)}]})(),r=b();return[(s,o,d,c=[],l=()=>[])=>{e??=X;const i=n(1);return A(r,i,[s,o,d,c,l]),j(D(o,d??[t],M),i),i},(n,s,...o)=>I(((e,n=[t])=>{const s=[],r=(e,t)=>t==l(n)?h(s,e):null===n[t]?y(e,e=>r(e,t+1)):I([n[t],null],n=>r(k(e,n),t+1));return r(e,0),s})(n,s),t=>y(t,t=>k(r,t)[0](e,...s??[],...o))),e=>o(k(r,e),([,n,o])=>(D(n,o??[t],void 0,t=>(R(t,e),S(t)?1:0)),A(r,e),s(e),o)),t=>o(k(r,t),([t,,n=[],s,r])=>{const o=(...d)=>{const c=l(d);c==l(n)?t(e,...d,...r(d)):(e=>null===e)(n[c])?I(s[c]?.(...d)??[],e=>o(...d,e)):o(...d,n[c])};o()})]})(),[q,B,F,G,H,J,K,,N,P,Q,U]=((e,t,n,s,d)=>{const a=e.hasRow,u=b(),h=b(),f=b(),v=b(),g=b(),w=b(),E=(t,n,...s)=>{const r=C(w,t,M);return I(s,t=>j(r,t)&&n&&e.callListener(t)),s},D=(t,...n)=>o(k(w,t),s=>{I(0==l(n)?x(s):n,t=>{e.delListener(t),R(s,t)}),S(s)&&A(w,t)}),m=(e,n)=>{A(u,e,n),L(h,e)||(A(h,e,t()),A(v,e,b()),A(g,e,b()),d(f))},O=e=>{A(u,e),A(h,e),A(v,e),A(g,e),D(e),d(f)};return[()=>e,()=>T(u),e=>z(h,e),e=>L(h,e),e=>k(u,e),e=>k(h,e),(e,t)=>A(h,e,t),m,(t,s,o,d,u)=>{m(t,s);const h=b(),f=b(),w=k(v,t),S=k(g,t),x=t=>{const o=n=>e.getCell(s,t,n),I=k(w,t),v=a(s,t)?n(d(o,t)):void 0;var g,L;if(I===v||c(I)&&c(v)&&(L=v,l(g=I)===l(L)&&i(g,(e,t)=>L[t]===e))||A(h,t,[I,v]),!r(u)){const e=k(S,t),n=a(s,t)?u(o,t):void 0;e!=n&&A(f,t,n)}},R=e=>{o(()=>{y(h,([,e],t)=>A(w,t,e)),y(f,(e,t)=>A(S,t,e))},h,f,w,S,e),p(h),p(f)};z(w,x),e.hasTable(s)&&I(e.getRowIds(s),e=>{L(w,e)||x(e)}),R(!0),D(t),E(t,0,e.addRowListener(s,null,(e,t,n)=>x(n)),e.addTableListener(s,()=>R()))},O,e=>s(e,f),()=>z(w,O),E,D]})(e,b,e=>{return r(e)?t:c(e)?(n=s,e.map(n)):s(e);var n},f,v),V=(t,n,s)=>{const r=H(t);y(s,(t,s)=>n(s,n=>y(t,t=>n(t,n=>e.forEachCell(r,t,n)))))},X={setIndexDefinition:(e,t,s,l,i,h=O)=>{const f=r(i)?void 0:([e],[t])=>i(e,t);return N(e,t,(t,s,i,g,w,x)=>{let p=0;const E=M(),T=M(),C=J(e);if(y(s,([e,t],n)=>{const s=M(e),d=M(t);y(s,e=>R(d,e)?R(s,e):0),y(s,e=>{j(E,e),o(k(C,e),t=>{R(t,n),S(t)&&(A(C,e),p=1)})}),y(d,e=>{j(E,e),L(C,e)||(A(C,e,M()),p=1),j(k(C,e),n),r(l)||j(T,e)})}),t(),S(w)||(x?z(C,e=>j(T,e)):z(i,e=>o(k(g,e),e=>I(c(e)?e:[e],e=>j(T,e)))),y(T,e=>{const t=(t,n)=>h(k(w,t),k(w,n),e),n=[...k(C,e)];a(n,t)||(A(C,e,M(u(n,t))),j(E,e))})),(p||x)&&!r(f)){const t=[...C];a(t,f)||(K(e,b(u(t,f))),p=1)}p&&v(n,[e]),y(E,t=>v(d,[e,t]))},m(s),o(l,m)),X},delIndexDefinition:e=>(P(e),X),getStore:q,getIndexIds:B,forEachIndex:e=>F((t,n)=>e(t,e=>V(t,e,n))),forEachSlice:(e,t)=>V(e,t,J(e)),hasIndex:G,hasSlice:(e,t)=>L(J(e),t),getTableId:H,getSliceIds:e=>T(J(e)),getSliceRowIds:(e,t)=>x(k(J(e),t)),addIndexIdsListener:Q,addSliceIdsListener:(e,t)=>f(t,n,[e]),addSliceRowIdsListener:(e,t,n)=>f(n,d,[e,t]),delListener:e=>($(e),X),destroy:U,getListenerStats:()=>({sliceIds:g(n),sliceRowIds:w(d)})};return E(X)})(n)),e.get(n))})();export{$ as createIndexes};