tinybase 5.0.0-beta.0 → 5.0.0-beta.1

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 (284) hide show
  1. package/bin/cli.js +1 -1
  2. package/lib/checkpoints.js +1 -1
  3. package/lib/checkpoints.js.gz +0 -0
  4. package/lib/cjs/checkpoints.cjs +1 -1
  5. package/lib/cjs/checkpoints.cjs.gz +0 -0
  6. package/lib/cjs/indexes.cjs +1 -1
  7. package/lib/cjs/indexes.cjs.gz +0 -0
  8. package/lib/cjs/metrics.cjs +1 -1
  9. package/lib/cjs/metrics.cjs.gz +0 -0
  10. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  11. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  12. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  13. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  14. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  15. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  16. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  17. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  18. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  19. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  20. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  21. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  22. package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
  23. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  24. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  25. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  26. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  27. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  28. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  29. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  30. package/lib/cjs/queries.cjs +1 -1
  31. package/lib/cjs/queries.cjs.gz +0 -0
  32. package/lib/cjs/relationships.cjs +1 -1
  33. package/lib/cjs/relationships.cjs.gz +0 -0
  34. package/lib/cjs/store.cjs +1 -1
  35. package/lib/cjs/store.cjs.gz +0 -0
  36. package/lib/cjs/tinybase.cjs +1 -1
  37. package/lib/cjs/tinybase.cjs.gz +0 -0
  38. package/lib/cjs/tools.cjs +1 -1
  39. package/lib/cjs/tools.cjs.gz +0 -0
  40. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  41. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  42. package/lib/cjs/ui-react-dom.cjs +1 -1
  43. package/lib/cjs/ui-react-dom.cjs.gz +0 -0
  44. package/lib/cjs/ui-react.cjs +1 -1
  45. package/lib/cjs/ui-react.cjs.gz +0 -0
  46. package/lib/cjs-es6/checkpoints.cjs +1 -1
  47. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  48. package/lib/cjs-es6/indexes.cjs +1 -1
  49. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  50. package/lib/cjs-es6/metrics.cjs +1 -1
  51. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  52. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  53. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  54. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  55. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  56. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  57. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  58. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  59. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  60. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  61. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  62. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  63. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  64. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
  65. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  66. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  67. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  68. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  69. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  70. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  71. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  72. package/lib/cjs-es6/queries.cjs +1 -1
  73. package/lib/cjs-es6/queries.cjs.gz +0 -0
  74. package/lib/cjs-es6/relationships.cjs +1 -1
  75. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  76. package/lib/cjs-es6/store.cjs +1 -1
  77. package/lib/cjs-es6/store.cjs.gz +0 -0
  78. package/lib/cjs-es6/tinybase.cjs +1 -1
  79. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  80. package/lib/cjs-es6/tools.cjs +1 -1
  81. package/lib/cjs-es6/tools.cjs.gz +0 -0
  82. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  83. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  84. package/lib/cjs-es6/ui-react-dom.cjs +1 -1
  85. package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
  86. package/lib/cjs-es6/ui-react.cjs +1 -1
  87. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  88. package/lib/debug/checkpoints.js +251 -234
  89. package/lib/debug/indexes.js +7 -5
  90. package/lib/debug/metrics.js +7 -5
  91. package/lib/debug/persisters/persister-automerge.js +3 -1
  92. package/lib/debug/persisters/persister-browser.js +1 -0
  93. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +10 -6
  94. package/lib/debug/persisters/persister-electric-sql.js +11 -6
  95. package/lib/debug/persisters/persister-expo-sqlite-next.js +11 -7
  96. package/lib/debug/persisters/persister-expo-sqlite.js +10 -6
  97. package/lib/debug/persisters/persister-file.js +1 -0
  98. package/lib/debug/persisters/persister-indexed-db.js +4 -1
  99. package/lib/debug/persisters/persister-partykit-client.js +1 -0
  100. package/lib/debug/persisters/persister-partykit-server.js +2 -1
  101. package/lib/debug/persisters/persister-remote.js +1 -0
  102. package/lib/debug/persisters/persister-sqlite-wasm.js +10 -6
  103. package/lib/debug/persisters/persister-sqlite3.js +10 -6
  104. package/lib/debug/persisters/persister-yjs.js +3 -1
  105. package/lib/debug/persisters.js +1 -0
  106. package/lib/debug/queries.js +9 -6
  107. package/lib/debug/relationships.js +7 -5
  108. package/lib/debug/store.js +3 -1
  109. package/lib/debug/tinybase.js +254 -235
  110. package/lib/debug/tools.js +19 -43
  111. package/lib/debug/ui-react-dom.js +3 -1
  112. package/lib/debug/ui-react.js +166 -200
  113. package/lib/es6/checkpoints.js +1 -1
  114. package/lib/es6/checkpoints.js.gz +0 -0
  115. package/lib/es6/indexes.js +1 -1
  116. package/lib/es6/indexes.js.gz +0 -0
  117. package/lib/es6/metrics.js +1 -1
  118. package/lib/es6/metrics.js.gz +0 -0
  119. package/lib/es6/persisters/persister-automerge.js +1 -1
  120. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  121. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  122. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  123. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  124. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  125. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  126. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  127. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  128. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  129. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  130. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  131. package/lib/es6/persisters/persister-partykit-server.js +1 -1
  132. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  133. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  134. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  135. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  136. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  137. package/lib/es6/persisters/persister-yjs.js +1 -1
  138. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  139. package/lib/es6/queries.js +1 -1
  140. package/lib/es6/queries.js.gz +0 -0
  141. package/lib/es6/relationships.js +1 -1
  142. package/lib/es6/relationships.js.gz +0 -0
  143. package/lib/es6/store.js +1 -1
  144. package/lib/es6/store.js.gz +0 -0
  145. package/lib/es6/tinybase.js +1 -1
  146. package/lib/es6/tinybase.js.gz +0 -0
  147. package/lib/es6/tools.js +1 -1
  148. package/lib/es6/tools.js.gz +0 -0
  149. package/lib/es6/ui-react-dom-debug.js +1 -1
  150. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  151. package/lib/es6/ui-react-dom.js +1 -1
  152. package/lib/es6/ui-react-dom.js.gz +0 -0
  153. package/lib/es6/ui-react.js +1 -1
  154. package/lib/es6/ui-react.js.gz +0 -0
  155. package/lib/indexes.js +1 -1
  156. package/lib/indexes.js.gz +0 -0
  157. package/lib/metrics.js +1 -1
  158. package/lib/metrics.js.gz +0 -0
  159. package/lib/persisters/persister-automerge.js +1 -1
  160. package/lib/persisters/persister-automerge.js.gz +0 -0
  161. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  162. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  163. package/lib/persisters/persister-electric-sql.js +1 -1
  164. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  165. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  166. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  167. package/lib/persisters/persister-expo-sqlite.js +1 -1
  168. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  169. package/lib/persisters/persister-indexed-db.js +1 -1
  170. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  171. package/lib/persisters/persister-partykit-server.js +1 -1
  172. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  173. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  174. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  175. package/lib/persisters/persister-sqlite3.js +1 -1
  176. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  177. package/lib/persisters/persister-yjs.js +1 -1
  178. package/lib/persisters/persister-yjs.js.gz +0 -0
  179. package/lib/queries.js +1 -1
  180. package/lib/queries.js.gz +0 -0
  181. package/lib/relationships.js +1 -1
  182. package/lib/relationships.js.gz +0 -0
  183. package/lib/store.js +1 -1
  184. package/lib/store.js.gz +0 -0
  185. package/lib/tinybase.js +1 -1
  186. package/lib/tinybase.js.gz +0 -0
  187. package/lib/tools.js +1 -1
  188. package/lib/tools.js.gz +0 -0
  189. package/lib/types/persisters/persister-expo-sqlite-next.d.ts +3 -3
  190. package/lib/types/ui-react.d.ts +77 -88
  191. package/lib/types/with-schemas/internal/queries.d.ts +4 -3
  192. package/lib/types/with-schemas/internal/store.d.ts +4 -3
  193. package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +4 -4
  194. package/lib/types/with-schemas/ui-react.d.ts +84 -95
  195. package/lib/ui-react-dom.js +1 -1
  196. package/lib/ui-react-dom.js.gz +0 -0
  197. package/lib/ui-react.js +1 -1
  198. package/lib/ui-react.js.gz +0 -0
  199. package/lib/umd/checkpoints.js +1 -1
  200. package/lib/umd/checkpoints.js.gz +0 -0
  201. package/lib/umd/indexes.js +1 -1
  202. package/lib/umd/indexes.js.gz +0 -0
  203. package/lib/umd/metrics.js +1 -1
  204. package/lib/umd/metrics.js.gz +0 -0
  205. package/lib/umd/persisters/persister-automerge.js +1 -1
  206. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  207. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  208. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  209. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  210. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  211. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  212. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  213. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  214. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  215. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  216. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  217. package/lib/umd/persisters/persister-partykit-server.js +1 -1
  218. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  219. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  220. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  221. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  222. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  223. package/lib/umd/persisters/persister-yjs.js +1 -1
  224. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  225. package/lib/umd/queries.js +1 -1
  226. package/lib/umd/queries.js.gz +0 -0
  227. package/lib/umd/relationships.js +1 -1
  228. package/lib/umd/relationships.js.gz +0 -0
  229. package/lib/umd/store.js +1 -1
  230. package/lib/umd/store.js.gz +0 -0
  231. package/lib/umd/tinybase.js +1 -1
  232. package/lib/umd/tinybase.js.gz +0 -0
  233. package/lib/umd/tools.js +1 -1
  234. package/lib/umd/tools.js.gz +0 -0
  235. package/lib/umd/ui-react-dom-debug.js +1 -1
  236. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  237. package/lib/umd/ui-react-dom.js +1 -1
  238. package/lib/umd/ui-react-dom.js.gz +0 -0
  239. package/lib/umd/ui-react.js +1 -1
  240. package/lib/umd/ui-react.js.gz +0 -0
  241. package/lib/umd-es6/checkpoints.js +1 -1
  242. package/lib/umd-es6/checkpoints.js.gz +0 -0
  243. package/lib/umd-es6/indexes.js +1 -1
  244. package/lib/umd-es6/indexes.js.gz +0 -0
  245. package/lib/umd-es6/metrics.js +1 -1
  246. package/lib/umd-es6/metrics.js.gz +0 -0
  247. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  248. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  249. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  250. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  251. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  252. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  253. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  254. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  255. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  256. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  257. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  258. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  259. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
  260. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  261. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  262. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  263. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  264. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  265. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  266. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  267. package/lib/umd-es6/queries.js +1 -1
  268. package/lib/umd-es6/queries.js.gz +0 -0
  269. package/lib/umd-es6/relationships.js +1 -1
  270. package/lib/umd-es6/relationships.js.gz +0 -0
  271. package/lib/umd-es6/store.js +1 -1
  272. package/lib/umd-es6/store.js.gz +0 -0
  273. package/lib/umd-es6/tinybase.js +1 -1
  274. package/lib/umd-es6/tinybase.js.gz +0 -0
  275. package/lib/umd-es6/tools.js +1 -1
  276. package/lib/umd-es6/tools.js.gz +0 -0
  277. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  278. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  279. package/lib/umd-es6/ui-react-dom.js +1 -1
  280. package/lib/umd-es6/ui-react-dom.js.gz +0 -0
  281. package/lib/umd-es6/ui-react.js +1 -1
  282. package/lib/umd-es6/ui-react.js.gz +0 -0
  283. package/package.json +21 -21
  284. package/readme.md +2 -2
@@ -123,6 +123,7 @@ const arrayShift = (array) => array.shift();
123
123
 
124
124
  const object = Object;
125
125
  const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
126
+ const objEntries = object.entries;
126
127
  const objIds = object.keys;
127
128
  const objFrozen = object.isFrozen;
128
129
  const objFreeze = object.freeze;
@@ -133,6 +134,7 @@ const isObject = (obj) =>
133
134
  (objPrototype) =>
134
135
  objPrototype == object.prototype ||
135
136
  isUndefined(getPrototypeOf(objPrototype)),
137
+ /* istanbul ignore next */
136
138
  () => true,
137
139
  );
138
140
  const objNew = (entries = []) => object.fromEntries(entries);
@@ -143,7 +145,7 @@ const objDel = (obj, id) => {
143
145
  return obj;
144
146
  };
145
147
  const objMap = (obj, cb) =>
146
- arrayMap(object.entries(obj), ([id, value]) => cb(value, id));
148
+ arrayMap(objEntries(obj), ([id, value]) => cb(value, id));
147
149
  const objSize = (obj) => size(objIds(obj));
148
150
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
149
151
 
@@ -33,16 +33,46 @@ const isArray = (thing) => Array.isArray(thing);
33
33
  const size = (arrayOrString) => arrayOrString.length;
34
34
  const getUndefined = () => void 0;
35
35
 
36
+ const arrayEvery = (array, cb) => array.every(cb);
37
+ const arrayIsEqual = (array1, array2) =>
38
+ size(array1) === size(array2) &&
39
+ arrayEvery(array1, (value1, index) => array2[index] === value1);
36
40
  const arrayMap = (array, cb) => array.map(cb);
37
41
  const arrayIsEmpty = (array) => size(array) == 0;
38
42
 
39
43
  const object = Object;
44
+ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
45
+ const objEntries = object.entries;
40
46
  const objIds = object.keys;
47
+ const isObject = (obj) =>
48
+ !isUndefined(obj) &&
49
+ ifNotUndefined(
50
+ getPrototypeOf(obj),
51
+ (objPrototype) =>
52
+ objPrototype == object.prototype ||
53
+ isUndefined(getPrototypeOf(objPrototype)),
54
+ /* istanbul ignore next */
55
+ () => true,
56
+ );
41
57
  const objGet = (obj, id) => ifNotUndefined(obj, (obj2) => obj2[id]);
42
58
  const objDel = (obj, id) => {
43
59
  delete obj[id];
44
60
  return obj;
45
61
  };
62
+ const objSize = (obj) => size(objIds(obj));
63
+ const objIsEqual = (obj1, obj2) => {
64
+ const entries1 = objEntries(obj1);
65
+ return (
66
+ size(entries1) === objSize(obj2) &&
67
+ arrayEvery(entries1, ([index, value1]) =>
68
+ isObject(value1)
69
+ ? isObject(obj2[index])
70
+ ? objIsEqual(obj2[index], value1)
71
+ : false
72
+ : obj2[index] === value1,
73
+ )
74
+ );
75
+ };
46
76
 
47
77
  const {createContext, useContext: useContext$1, useEffect: useEffect$1} = React;
48
78
  const Context = createContext([]);
@@ -99,49 +129,67 @@ const {
99
129
  useLayoutEffect: useLayoutEffect$1,
100
130
  useRef: useRef$1,
101
131
  useState: useState$2,
132
+ useSyncExternalStore,
102
133
  } = React;
103
134
  const EMPTY_ARRAY = [];
104
- const EMPTY_OBJECT = {};
105
- const DEFAULT_CHECKPOINT_IDS = [[], void 0, []];
135
+ const DEFAULTS = [{}, [], [EMPTY_ARRAY, void 0, EMPTY_ARRAY], void 0, false, 0];
136
+ const IS_EQUAL = (thing1, thing2) => thing1 === thing2;
137
+ const IS_EQUALS = [
138
+ objIsEqual,
139
+ arrayIsEqual,
140
+ (
141
+ [backwardIds1, currentId1, forwardIds1],
142
+ [backwardIds2, currentId2, forwardIds2],
143
+ ) =>
144
+ currentId1 === currentId2 &&
145
+ arrayIsEqual(backwardIds1, backwardIds2) &&
146
+ arrayIsEqual(forwardIds1, forwardIds2),
147
+ ];
106
148
  const useCreate = (store, create, createDeps = EMPTY_ARRAY) => {
107
- const thing = useMemo$1(
108
- () => create(store),
149
+ const [, rerender] = useState$2();
150
+ const [thing, setThing] = useState$2();
151
+ useEffect(
152
+ () => {
153
+ const newThing = create(store);
154
+ setThing(newThing);
155
+ rerender([]);
156
+ return newThing.destroy;
157
+ },
109
158
  // eslint-disable-next-line react-hooks/exhaustive-deps
110
159
  [store, ...createDeps],
111
160
  );
112
- useEffect(() => () => thing.destroy(), [thing]);
113
161
  return thing;
114
162
  };
115
- const useListenable = (
116
- listenable,
117
- thing,
118
- defaulted,
119
- args = EMPTY_ARRAY,
120
- getFromListenerArg,
121
- getterPrefix = GET,
122
- listenerPrefix = EMPTY_STRING,
123
- ) => {
124
- const [, rerender] = useState$2();
163
+ const addAndDelListener = (thing, listenable, ...args) => {
164
+ const listenerId = thing?.[ADD + listenable + LISTENER]?.(...args);
165
+ return () => thing?.delListener(listenerId);
166
+ };
167
+ const useListenable = (listenable, thing, type, args = EMPTY_ARRAY) => {
168
+ const lastResult = useRef$1(DEFAULTS[type]);
125
169
  const getResult = useCallback$2(
126
- () => thing?.[getterPrefix + listenable]?.(...args) ?? defaulted,
127
- /* eslint-disable-next-line react-hooks/exhaustive-deps */
128
- [thing, listenable, ...args, defaulted],
129
- );
130
- const result = useRef$1();
131
- useMemo$1(() => (result.current = getResult()), [getResult]);
132
- useListener(
133
- listenerPrefix + listenable,
134
- thing,
135
- (...listenerArgs) => {
136
- result.current = isUndefined(getFromListenerArg)
137
- ? getResult()
138
- : listenerArgs[getFromListenerArg];
139
- rerender([]);
170
+ () => {
171
+ const nextResult =
172
+ thing?.[(type == 4 ? _HAS : GET) + listenable]?.(...args) ??
173
+ DEFAULTS[type];
174
+ return !(IS_EQUALS[type] ?? IS_EQUAL)(nextResult, lastResult.current)
175
+ ? (lastResult.current = nextResult)
176
+ : lastResult.current;
140
177
  },
141
- [getResult, getFromListenerArg],
142
- args,
178
+ /* eslint-disable-next-line react-hooks/exhaustive-deps */
179
+ [thing, type, listenable, ...args],
180
+ );
181
+ const subscribe = useCallback$2(
182
+ (listener) =>
183
+ addAndDelListener(
184
+ thing,
185
+ (type == 4 ? HAS : EMPTY_STRING) + listenable,
186
+ ...args,
187
+ listener,
188
+ ),
189
+ /* eslint-disable-next-line react-hooks/exhaustive-deps */
190
+ [thing, type, listenable, ...args],
143
191
  );
144
- return result.current;
192
+ return useSyncExternalStore(subscribe, getResult);
145
193
  };
146
194
  const useListener = (
147
195
  listenable,
@@ -151,14 +199,12 @@ const useListener = (
151
199
  preArgs = EMPTY_ARRAY,
152
200
  ...postArgs
153
201
  ) =>
154
- useLayoutEffect$1(() => {
155
- const listenerId = thing?.[ADD + listenable + LISTENER]?.(
156
- ...preArgs,
157
- listener,
158
- ...postArgs,
159
- );
160
- return () => thing?.delListener(listenerId);
161
- }, [thing, listenable, ...preArgs, ...listenerDeps, ...postArgs]);
202
+ useLayoutEffect$1(
203
+ () =>
204
+ addAndDelListener(thing, listenable, ...preArgs, listener, ...postArgs),
205
+ // eslint-disable-next-line react-hooks/exhaustive-deps
206
+ [thing, listenable, ...preArgs, ...listenerDeps, ...postArgs],
207
+ );
162
208
  const useSetCallback = (
163
209
  storeOrStoreId,
164
210
  settable,
@@ -216,56 +262,28 @@ const useCreateStore = (create, createDeps = EMPTY_ARRAY) =>
216
262
  useMemo$1(create, createDeps);
217
263
  const useStoreIds = () => useThingIds(1);
218
264
  const useHasTables = (storeOrStoreId) =>
219
- useListenable(
220
- TABLES,
221
- useStoreOrStoreById(storeOrStoreId),
222
- false,
223
- [],
224
- 1,
225
- _HAS,
226
- HAS,
227
- );
265
+ useListenable(TABLES, useStoreOrStoreById(storeOrStoreId), 4, []);
228
266
  const useTables = (storeOrStoreId) =>
229
- useListenable(TABLES, useStoreOrStoreById(storeOrStoreId), EMPTY_OBJECT);
267
+ useListenable(TABLES, useStoreOrStoreById(storeOrStoreId), 0);
230
268
  const useTableIds = (storeOrStoreId) =>
231
- useListenable(TABLE_IDS, useStoreOrStoreById(storeOrStoreId), EMPTY_ARRAY);
269
+ useListenable(TABLE_IDS, useStoreOrStoreById(storeOrStoreId), 1);
232
270
  const useHasTable = (tableId, storeOrStoreId) =>
233
- useListenable(
234
- TABLE,
235
- useStoreOrStoreById(storeOrStoreId),
236
- false,
237
- [tableId],
238
- 2,
239
- _HAS,
240
- HAS,
241
- );
271
+ useListenable(TABLE, useStoreOrStoreById(storeOrStoreId), 4, [tableId]);
242
272
  const useTable = (tableId, storeOrStoreId) =>
243
- useListenable(TABLE, useStoreOrStoreById(storeOrStoreId), EMPTY_OBJECT, [
273
+ useListenable(TABLE, useStoreOrStoreById(storeOrStoreId), 0, [tableId]);
274
+ const useTableCellIds = (tableId, storeOrStoreId) =>
275
+ useListenable(TABLE + CELL_IDS, useStoreOrStoreById(storeOrStoreId), 1, [
244
276
  tableId,
245
277
  ]);
246
- const useTableCellIds = (tableId, storeOrStoreId) =>
247
- useListenable(
248
- TABLE + CELL_IDS,
249
- useStoreOrStoreById(storeOrStoreId),
250
- EMPTY_ARRAY,
251
- [tableId],
252
- );
253
278
  const useHasTableCell = (tableId, cellId, storeOrStoreId) =>
254
- useListenable(
255
- TABLE + CELL,
256
- useStoreOrStoreById(storeOrStoreId),
257
- false,
258
- [tableId, cellId],
259
- 3,
260
- _HAS,
261
- HAS,
262
- );
263
- const useRowCount = (tableId, storeOrStoreId) =>
264
- useListenable(ROW_COUNT, useStoreOrStoreById(storeOrStoreId), 0, [tableId]);
265
- const useRowIds = (tableId, storeOrStoreId) =>
266
- useListenable(ROW_IDS, useStoreOrStoreById(storeOrStoreId), EMPTY_ARRAY, [
279
+ useListenable(TABLE + CELL, useStoreOrStoreById(storeOrStoreId), 4, [
267
280
  tableId,
281
+ cellId,
268
282
  ]);
283
+ const useRowCount = (tableId, storeOrStoreId) =>
284
+ useListenable(ROW_COUNT, useStoreOrStoreById(storeOrStoreId), 5, [tableId]);
285
+ const useRowIds = (tableId, storeOrStoreId) =>
286
+ useListenable(ROW_IDS, useStoreOrStoreById(storeOrStoreId), 1, [tableId]);
269
287
  const useSortedRowIds = (
270
288
  tableId,
271
289
  cellId,
@@ -274,77 +292,44 @@ const useSortedRowIds = (
274
292
  limit,
275
293
  storeOrStoreId,
276
294
  ) =>
277
- useListenable(
278
- SORTED_ROW_IDS,
279
- useStoreOrStoreById(storeOrStoreId),
280
- EMPTY_ARRAY,
281
- [tableId, cellId, descending, offset, limit],
282
- 6,
283
- );
295
+ useListenable(SORTED_ROW_IDS, useStoreOrStoreById(storeOrStoreId), 1, [
296
+ tableId,
297
+ cellId,
298
+ descending,
299
+ offset,
300
+ limit,
301
+ ]);
284
302
  const useHasRow = (tableId, rowId, storeOrStoreId) =>
285
- useListenable(
286
- ROW,
287
- useStoreOrStoreById(storeOrStoreId),
288
- false,
289
- [tableId, rowId],
290
- 3,
291
- _HAS,
292
- HAS,
293
- );
303
+ useListenable(ROW, useStoreOrStoreById(storeOrStoreId), 4, [tableId, rowId]);
294
304
  const useRow = (tableId, rowId, storeOrStoreId) =>
295
- useListenable(ROW, useStoreOrStoreById(storeOrStoreId), EMPTY_OBJECT, [
305
+ useListenable(ROW, useStoreOrStoreById(storeOrStoreId), 0, [tableId, rowId]);
306
+ const useCellIds = (tableId, rowId, storeOrStoreId) =>
307
+ useListenable(CELL_IDS, useStoreOrStoreById(storeOrStoreId), 1, [
296
308
  tableId,
297
309
  rowId,
298
310
  ]);
299
- const useCellIds = (tableId, rowId, storeOrStoreId) =>
300
- useListenable(CELL_IDS, useStoreOrStoreById(storeOrStoreId), EMPTY_ARRAY, [
311
+ const useHasCell = (tableId, rowId, cellId, storeOrStoreId) =>
312
+ useListenable(CELL, useStoreOrStoreById(storeOrStoreId), 4, [
301
313
  tableId,
302
314
  rowId,
315
+ cellId,
303
316
  ]);
304
- const useHasCell = (tableId, rowId, cellId, storeOrStoreId) =>
305
- useListenable(
306
- CELL,
307
- useStoreOrStoreById(storeOrStoreId),
308
- false,
309
- [tableId, rowId, cellId],
310
- 4,
311
- _HAS,
312
- HAS,
313
- );
314
317
  const useCell = (tableId, rowId, cellId, storeOrStoreId) =>
315
- useListenable(
316
- CELL,
317
- useStoreOrStoreById(storeOrStoreId),
318
- void 0,
319
- [tableId, rowId, cellId],
320
- 4,
321
- );
318
+ useListenable(CELL, useStoreOrStoreById(storeOrStoreId), 3, [
319
+ tableId,
320
+ rowId,
321
+ cellId,
322
+ ]);
322
323
  const useHasValues = (storeOrStoreId) =>
323
- useListenable(
324
- VALUES,
325
- useStoreOrStoreById(storeOrStoreId),
326
- false,
327
- [],
328
- 1,
329
- _HAS,
330
- HAS,
331
- );
324
+ useListenable(VALUES, useStoreOrStoreById(storeOrStoreId), 4, []);
332
325
  const useValues = (storeOrStoreId) =>
333
- useListenable(VALUES, useStoreOrStoreById(storeOrStoreId), EMPTY_OBJECT);
326
+ useListenable(VALUES, useStoreOrStoreById(storeOrStoreId), 0);
334
327
  const useValueIds = (storeOrStoreId) =>
335
- useListenable(VALUE_IDS, useStoreOrStoreById(storeOrStoreId), EMPTY_ARRAY);
328
+ useListenable(VALUE_IDS, useStoreOrStoreById(storeOrStoreId), 1);
336
329
  const useHasValue = (valueId, storeOrStoreId) =>
337
- useListenable(
338
- VALUE,
339
- useStoreOrStoreById(storeOrStoreId),
340
- false,
341
- [valueId],
342
- 2,
343
- _HAS,
344
- HAS,
345
- );
330
+ useListenable(VALUE, useStoreOrStoreById(storeOrStoreId), 4, [valueId]);
346
331
  const useValue = (valueId, storeOrStoreId) =>
347
- useListenable(VALUE, useStoreOrStoreById(storeOrStoreId), void 0, [valueId]);
332
+ useListenable(VALUE, useStoreOrStoreById(storeOrStoreId), 3, [valueId]);
348
333
  const useSetTablesCallback = (
349
334
  getTables,
350
335
  getTablesDeps,
@@ -860,13 +845,9 @@ const useCreateMetrics = (store, create, createDeps) =>
860
845
  useCreate(store, create, createDeps);
861
846
  const useMetricsIds = () => useThingIds(3);
862
847
  const useMetricIds = (metricsOrMetricsId) =>
863
- useListenable(
864
- 'MetricIds',
865
- useMetricsOrMetricsById(metricsOrMetricsId),
866
- EMPTY_ARRAY,
867
- );
848
+ useListenable('MetricIds', useMetricsOrMetricsById(metricsOrMetricsId), 1);
868
849
  const useMetric = (metricId, metricsOrMetricsId) =>
869
- useListenable('Metric', useMetricsOrMetricsById(metricsOrMetricsId), void 0, [
850
+ useListenable('Metric', useMetricsOrMetricsById(metricsOrMetricsId), 3, [
870
851
  metricId,
871
852
  ]);
872
853
  const useMetricListener = (
@@ -886,23 +867,16 @@ const useCreateIndexes = (store, create, createDeps) =>
886
867
  useCreate(store, create, createDeps);
887
868
  const useIndexesIds = () => useThingIds(5);
888
869
  const useSliceIds = (indexId, indexesOrIndexesId) =>
889
- useListenable(
890
- 'SliceIds',
891
- useIndexesOrIndexesById(indexesOrIndexesId),
892
- EMPTY_ARRAY,
893
- [indexId],
894
- );
870
+ useListenable('SliceIds', useIndexesOrIndexesById(indexesOrIndexesId), 1, [
871
+ indexId,
872
+ ]);
895
873
  const useIndexIds = (indexesOrIndexesId) =>
896
- useListenable(
897
- 'IndexIds',
898
- useIndexesOrIndexesById(indexesOrIndexesId),
899
- EMPTY_ARRAY,
900
- );
874
+ useListenable('IndexIds', useIndexesOrIndexesById(indexesOrIndexesId), 1);
901
875
  const useSliceRowIds = (indexId, sliceId, indexesOrIndexesId) =>
902
876
  useListenable(
903
877
  'Slice' + ROW_IDS,
904
878
  useIndexesOrIndexesById(indexesOrIndexesId),
905
- EMPTY_ARRAY,
879
+ 1,
906
880
  [indexId, sliceId],
907
881
  );
908
882
  const useSliceIdsListener = (
@@ -939,7 +913,7 @@ const useRelationshipIds = (relationshipsOrRelationshipsId) =>
939
913
  useListenable(
940
914
  'RelationshipIds',
941
915
  useRelationshipsOrRelationshipsById(relationshipsOrRelationshipsId),
942
- EMPTY_ARRAY,
916
+ 1,
943
917
  );
944
918
  const useRemoteRowId = (
945
919
  relationshipId,
@@ -949,7 +923,7 @@ const useRemoteRowId = (
949
923
  useListenable(
950
924
  'RemoteRowId',
951
925
  useRelationshipsOrRelationshipsById(relationshipsOrRelationshipsId),
952
- void 0,
926
+ 3,
953
927
  [relationshipId, localRowId],
954
928
  );
955
929
  const useLocalRowIds = (
@@ -960,7 +934,7 @@ const useLocalRowIds = (
960
934
  useListenable(
961
935
  'Local' + ROW_IDS,
962
936
  useRelationshipsOrRelationshipsById(relationshipsOrRelationshipsId),
963
- EMPTY_ARRAY,
937
+ 1,
964
938
  [relationshipId, remoteRowId],
965
939
  );
966
940
  const useLinkedRowIds = (
@@ -971,7 +945,7 @@ const useLinkedRowIds = (
971
945
  useListenable(
972
946
  'Linked' + ROW_IDS,
973
947
  useRelationshipsOrRelationshipsById(relationshipsOrRelationshipsId),
974
- EMPTY_ARRAY,
948
+ 1,
975
949
  [relationshipId, firstRowId],
976
950
  );
977
951
  const useRemoteRowIdListener = (
@@ -1020,37 +994,33 @@ const useCreateQueries = (store, create, createDeps) =>
1020
994
  useCreate(store, create, createDeps);
1021
995
  const useQueriesIds = () => useThingIds(9);
1022
996
  const useQueryIds = (queriesOrQueriesId) =>
1023
- useListenable(
1024
- 'QueryIds',
1025
- useQueriesOrQueriesById(queriesOrQueriesId),
1026
- EMPTY_ARRAY,
1027
- );
997
+ useListenable('QueryIds', useQueriesOrQueriesById(queriesOrQueriesId), 1);
1028
998
  const useResultTable = (queryId, queriesOrQueriesId) =>
1029
999
  useListenable(
1030
1000
  RESULT + TABLE,
1031
1001
  useQueriesOrQueriesById(queriesOrQueriesId),
1032
- EMPTY_OBJECT,
1002
+ 0,
1033
1003
  [queryId],
1034
1004
  );
1035
1005
  const useResultTableCellIds = (queryId, queriesOrQueriesId) =>
1036
1006
  useListenable(
1037
1007
  RESULT + TABLE + CELL_IDS,
1038
1008
  useQueriesOrQueriesById(queriesOrQueriesId),
1039
- EMPTY_ARRAY,
1009
+ 1,
1040
1010
  [queryId],
1041
1011
  );
1042
1012
  const useResultRowCount = (queryId, queriesOrQueriesId) =>
1043
1013
  useListenable(
1044
1014
  RESULT + ROW_COUNT,
1045
1015
  useQueriesOrQueriesById(queriesOrQueriesId),
1046
- 0,
1016
+ 5,
1047
1017
  [queryId],
1048
1018
  );
1049
1019
  const useResultRowIds = (queryId, queriesOrQueriesId) =>
1050
1020
  useListenable(
1051
1021
  RESULT + ROW_IDS,
1052
1022
  useQueriesOrQueriesById(queriesOrQueriesId),
1053
- EMPTY_ARRAY,
1023
+ 1,
1054
1024
  [queryId],
1055
1025
  );
1056
1026
  const useResultSortedRowIds = (
@@ -1064,31 +1034,27 @@ const useResultSortedRowIds = (
1064
1034
  useListenable(
1065
1035
  RESULT + SORTED_ROW_IDS,
1066
1036
  useQueriesOrQueriesById(queriesOrQueriesId),
1067
- EMPTY_ARRAY,
1037
+ 1,
1068
1038
  [queryId, cellId, descending, offset, limit],
1069
- 6,
1070
1039
  );
1071
1040
  const useResultRow = (queryId, rowId, queriesOrQueriesId) =>
1072
- useListenable(
1073
- RESULT + ROW,
1074
- useQueriesOrQueriesById(queriesOrQueriesId),
1075
- EMPTY_OBJECT,
1076
- [queryId, rowId],
1077
- );
1041
+ useListenable(RESULT + ROW, useQueriesOrQueriesById(queriesOrQueriesId), 0, [
1042
+ queryId,
1043
+ rowId,
1044
+ ]);
1078
1045
  const useResultCellIds = (queryId, rowId, queriesOrQueriesId) =>
1079
1046
  useListenable(
1080
1047
  RESULT + CELL_IDS,
1081
1048
  useQueriesOrQueriesById(queriesOrQueriesId),
1082
- EMPTY_ARRAY,
1049
+ 1,
1083
1050
  [queryId, rowId],
1084
1051
  );
1085
1052
  const useResultCell = (queryId, rowId, cellId, queriesOrQueriesId) =>
1086
- useListenable(
1087
- RESULT + CELL,
1088
- useQueriesOrQueriesById(queriesOrQueriesId),
1089
- void 0,
1090
- [queryId, rowId, cellId],
1091
- );
1053
+ useListenable(RESULT + CELL, useQueriesOrQueriesById(queriesOrQueriesId), 3, [
1054
+ queryId,
1055
+ rowId,
1056
+ cellId,
1057
+ ]);
1092
1058
  const useResultTableListener = (
1093
1059
  queryId,
1094
1060
  listener,
@@ -1208,13 +1174,13 @@ const useCheckpointIds = (checkpointsOrCheckpointsId) =>
1208
1174
  useListenable(
1209
1175
  'CheckpointIds',
1210
1176
  useCheckpointsOrCheckpointsById(checkpointsOrCheckpointsId),
1211
- DEFAULT_CHECKPOINT_IDS,
1177
+ 2,
1212
1178
  );
1213
1179
  const useCheckpoint = (checkpointId, checkpointsOrCheckpointsId) =>
1214
1180
  useListenable(
1215
1181
  'Checkpoint',
1216
1182
  useCheckpointsOrCheckpointsById(checkpointsOrCheckpointsId),
1217
- void 0,
1183
+ 3,
1218
1184
  [checkpointId],
1219
1185
  );
1220
1186
  const useSetCheckpointCallback = (
@@ -1322,26 +1288,26 @@ const useCreatePersister = (
1322
1288
  destroyDeps = EMPTY_ARRAY,
1323
1289
  ) => {
1324
1290
  const [, rerender] = useState$2();
1325
- const persister = useMemo$1(
1326
- () => create(store),
1327
- // eslint-disable-next-line react-hooks/exhaustive-deps
1328
- [store, ...createDeps],
1329
- );
1291
+ const [persister, setPersister] = useState$2();
1330
1292
  useEffect(
1331
1293
  () => {
1332
- (async () => {
1294
+ const newPersister = create(store);
1295
+ setPersister(newPersister);
1296
+ if (newPersister) {
1333
1297
  if (then) {
1334
- await then(persister);
1335
- rerender([]);
1298
+ (async () => {
1299
+ await then(newPersister);
1300
+ rerender([]);
1301
+ })();
1336
1302
  }
1337
- })();
1338
- return () => {
1339
- persister?.destroy();
1340
- destroy?.(persister);
1341
- };
1303
+ return () => {
1304
+ newPersister.destroy();
1305
+ destroy?.(newPersister);
1306
+ };
1307
+ }
1342
1308
  },
1343
1309
  // eslint-disable-next-line react-hooks/exhaustive-deps
1344
- [persister, ...thenDeps, ...destroyDeps],
1310
+ [store, ...createDeps, ...thenDeps, ...destroyDeps],
1345
1311
  );
1346
1312
  return persister;
1347
1313
  };
@@ -1 +1 @@
1
- const e=e=>null==e,l=(l,n,t)=>e(l)?null==t?void 0:t():n(l),n=e=>e.length,t=(e,l)=>e.includes(l),r=(e,l)=>e.forEach(l),o=e=>0==n(e),u=(e,...l)=>e.push(...l),s=e=>e.pop(),i=e=>e.shift(),d=Object.freeze,a=(e,l)=>{var n;return null!=(n=null==e?void 0:e.has(l))&&n},c=l=>e(l)||0==(e=>{var l;return null!=(l=null==e?void 0:e.size)?l:0})(l),v=(e,l)=>null==e?void 0:e.forEach(l),h=(e,l)=>null==e?void 0:e.delete(l),p=e=>new Map(e),C=(e,l)=>null==e?void 0:e.get(l),f=(l,n,t)=>e(t)?(h(l,n),l):null==l?void 0:l.set(n,t),g=(e,l,n)=>(a(e,l)||f(e,l,n()),C(e,l)),k=(e,t,r,o,u=0)=>l((r?g:C)(e,t[u],u>n(t)-2?r:p),(l=>{if(u>n(t)-2)return(null==o?void 0:o(l))&&f(e,t[u]),l;const s=k(l,t,r,o,u+1);return c(l)&&f(e,t[u]),s})),L=l=>new Set(Array.isArray(l)||e(l)?l:[l]),w=/^\d+$/,S=(S=>{const y=new WeakMap;return S=>(y.has(S)||y.set(S,(S=>{let y,z,E,V=100,A=p(),F=p(),I=1;const M=p(),b=p(),[j,x,B]=(t=>{let o;const[s,d]=(()=>{const e=[];let l=0;return[n=>{var t;return null!=(t=n?i(e):null)?t:""+l++},l=>{w.test(l)&&n(e)<1e3&&u(e,l)}]})(),a=p();return[(e,l,n,t=[],r=(()=>[]))=>{null!=o||(o=_);const u=s(1);var i,d;return f(a,u,[e,l,n,t,r]),d=u,null==(i=k(l,null!=n?n:[""],L))||i.add(d),u},(e,l,...t)=>r(((e,l=[""])=>{const t=[],o=(e,s)=>s==n(l)?u(t,e):null===l[s]?v(e,(e=>o(e,s+1))):r([l[s],null],(l=>o(C(e,l),s+1)));return o(e,0),t})(e,l),(e=>v(e,(e=>C(a,e)[0](o,...null!=l?l:[],...t))))),e=>l(C(a,e),(([,l,n])=>(k(l,null!=n?n:[""],void 0,(l=>(h(l,e),c(l)?1:0))),f(a,e),d(e),n))),t=>l(C(a,t),(([l,,t=[],u,s])=>{const i=(...d)=>{var a,c;const v=n(d);v==n(t)?l(o,...d,...s(d)):e(t[v])?r(null!=(c=null==(a=u[v])?void 0:a.call(u,...d))?c:[],(e=>i(...d,e))):i(...d,t[v])};i()}))]})(),O=p(),T=p(),W=[],$=[],m=(l,n)=>{I=0,S.transaction((()=>{const[t,r]=C(O,n);v(t,((n,t)=>v(n,((n,r)=>v(n,((n,o)=>((l,n,t,r,o)=>e(o)?l.delCell(n,t,r,!0):l.setCell(n,t,r,o))(S,t,r,o,n[l]))))))),v(r,((n,t)=>((l,n,t)=>e(t)?l.delValue(n):l.setValue(n,t))(S,t,n[l])))})),I=1},q=e=>{f(O,e),f(T,e),x(b,[e])},D=(e,l)=>r(((e,l)=>e.splice(0,l))(e,null!=l?l:n(e)),q),G=()=>D(W,n(W)-V),H=()=>l(y,(()=>{u(W,y),G(),D($),y=void 0,E=1})),J=()=>{y=s(W),E=1},K=S.addCellListener(null,null,null,((e,l,n,t,r,o)=>{if(I){H();const e=g(A,l,p),u=g(e,n,p),s=g(u,t,(()=>[o,void 0]));s[1]=r,s[0]===r&&c(f(u,t))&&c(f(e,n))&&c(f(A,l))&&J(),U()}})),N=S.addValueListener(null,((e,l,n,t)=>{if(I){H();const e=g(F,l,(()=>[t,void 0]));e[1]=n,e[0]===n&&c(f(F,l))&&J(),U()}})),P=(l="")=>(e(y)&&(y=""+z++,f(O,y,[A,F]),Y(y,l),A=p(),F=p(),E=1),y),Q=()=>{o(W)||(((e,...l)=>{e.unshift(...l)})($,P()),m(0,y),y=s(W),E=1)},R=()=>{o($)||(u(W,y),y=i($),m(1,y),E=1)},U=()=>{E&&(x(M),E=0)},X=e=>{const l=P(e);return U(),l},Y=(e,l)=>(Z(e)&&C(T,e)!==l&&(f(T,e,l),x(b,[e])),_),Z=e=>a(O,e),_={setSize:e=>(V=e,G(),_),addCheckpoint:X,setCheckpoint:Y,getStore:()=>S,getCheckpointIds:()=>[[...W],y,[...$]],forEachCheckpoint:e=>{return l=e,v(T,((e,n)=>l(n,e)));var l},hasCheckpoint:Z,getCheckpoint:e=>C(T,e),goBackward:()=>(Q(),U(),_),goForward:()=>(R(),U(),_),goTo:l=>{const n=t(W,l)?Q:t($,l)?R:null;for(;!e(n)&&l!=y;)n();return U(),_},addCheckpointIdsListener:e=>j(e,M),addCheckpointListener:(e,l)=>j(l,b,[e]),delListener:e=>(B(e),_),clear:()=>(D(W),D($),e(y)||q(y),y=void 0,z=0,X(),_),clearForward:()=>(o($)||(D($),x(M)),_),destroy:()=>{S.delListener(K),S.delListener(N)},getListenerStats:()=>({})};return d(_.clear())})(S)),y.get(S))})();export{S as createCheckpoints};
1
+ const e=e=>null==e,n=(n,l,t)=>e(n)?null==t?void 0:t():l(n),l=e=>e.length,t=(e,n)=>e.includes(n),r=(e,n)=>e.forEach(n),o=e=>0==l(e),s=(e,...n)=>e.push(...n),u=e=>e.pop(),i=e=>e.shift(),d=Object.freeze,a=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},c=n=>e(n)||0==(e=>{var n;return null!=(n=null==e?void 0:e.size)?n:0})(n),v=(e,n)=>null==e?void 0:e.forEach(n),h=(e,n)=>null==e?void 0:e.delete(n),p=e=>new Map(e),g=(e,n)=>null==e?void 0:e.get(n),C=(n,l,t)=>e(t)?(h(n,l),n):null==n?void 0:n.set(l,t),f=(e,n,l)=>(a(e,n)||C(e,n,l()),g(e,n)),k=(e,t,r,o,s=0)=>n((r?f:g)(e,t[s],s>l(t)-2?r:p),(n=>{if(s>l(t)-2)return(null==o?void 0:o(n))&&C(e,t[s]),n;const u=k(n,t,r,o,s+1);return c(n)&&C(e,t[s]),u})),L=n=>new Set(Array.isArray(n)||e(n)?n:[n]),w=/^\d+$/,S=((S,y)=>{const z=new WeakMap;return S=>{z.has(S)||z.set(S,(S=>{let y,z,E,V=100,A=p(),F=p(),I=1;const M=p(),_=p(),[b,j,x]=(t=>{let o;const[u,d]=(()=>{const e=[];let n=0;return[l=>{var t;return null!=(t=l?i(e):null)?t:""+n++},n=>{w.test(n)&&l(e)<1e3&&s(e,n)}]})(),a=p();return[(e,n,l,t=[],r=(()=>[]))=>{null!=o||(o=Z);const s=u(1);var i,d;return C(a,s,[e,n,l,t,r]),d=s,null==(i=k(n,null!=l?l:[""],L))||i.add(d),s},(e,n,...t)=>r(((e,n=[""])=>{const t=[],o=(e,u)=>u==l(n)?s(t,e):null===n[u]?v(e,(e=>o(e,u+1))):r([n[u],null],(n=>o(g(e,n),u+1)));return o(e,0),t})(e,n),(e=>v(e,(e=>g(a,e)[0](o,...null!=n?n:[],...t))))),e=>n(g(a,e),(([,n,l])=>(k(n,null!=l?l:[""],void 0,(n=>(h(n,e),c(n)?1:0))),C(a,e),d(e),l))),t=>n(g(a,t),(([n,,t=[],s,u])=>{const i=(...d)=>{var a,c;const v=l(d);v==l(t)?n(o,...d,...u(d)):e(t[v])?r(null!=(c=null==(a=s[v])?void 0:a.call(s,...d))?c:[],(e=>i(...d,e))):i(...d,t[v])};i()}))]})(),B=p(),O=p(),T=[],W=[],$=(n,l)=>{I=0,S.transaction((()=>{const[t,r]=g(B,l);v(t,((l,t)=>v(l,((l,r)=>v(l,((l,o)=>((n,l,t,r,o)=>e(o)?n.delCell(l,t,r,!0):n.setCell(l,t,r,o))(S,t,r,o,l[n]))))))),v(r,((l,t)=>((n,l,t)=>e(t)?n.delValue(l):n.setValue(l,t))(S,t,l[n])))})),I=1},m=e=>{C(B,e),C(O,e),j(_,[e])},q=(e,n)=>r(((e,n)=>e.splice(0,n))(e,null!=n?n:l(e)),m),D=()=>q(T,l(T)-V),G=()=>n(y,(()=>{s(T,y),D(),q(W),y=void 0,E=1})),H=()=>{y=u(T),E=1};let J,K;const N=(n="")=>(e(y)&&(y=""+z++,C(B,y,[A,F]),X(y,n),A=p(),F=p(),E=1),y),P=()=>{o(T)||(((e,...n)=>{e.unshift(...n)})(W,N()),$(0,y),y=u(T),E=1)},Q=()=>{o(W)||(s(T,y),y=i(W),$(1,y),E=1)},R=()=>{E&&(j(M),E=0)},U=e=>{const n=N(e);return R(),n},X=(e,n)=>(Y(e)&&g(O,e)!==n&&(C(O,e,n),j(_,[e])),Z),Y=e=>a(B,e),Z={setSize:e=>(V=e,D(),Z),addCheckpoint:U,setCheckpoint:X,getStore:()=>S,getCheckpointIds:()=>[[...T],y,[...W]],forEachCheckpoint:e=>{return n=e,v(O,((e,l)=>n(l,e)));var n},hasCheckpoint:Y,getCheckpoint:e=>g(O,e),goBackward:()=>(P(),R(),Z),goForward:()=>(Q(),R(),Z),goTo:n=>{const l=t(T,n)?P:t(W,n)?Q:null;for(;!e(l)&&n!=y;)l();return R(),Z},addCheckpointIdsListener:e=>b(e,M),addCheckpointListener:(e,n)=>b(n,_,[e]),delListener:e=>(x(e),Z),clear:()=>(q(T),q(W),e(y)||m(y),y=void 0,z=0,U(),Z),clearForward:()=>(o(W)||(q(W),j(M)),Z),destroy:()=>{S.delListener(J),S.delListener(K)},getListenerStats:()=>({}),_registerListeners:()=>{J=S.addCellListener(null,null,null,((e,n,l,t,r,o)=>{if(I){G();const e=f(A,n,p),s=f(e,l,p),u=f(s,t,(()=>[o,void 0]));u[1]=r,u[0]===r&&c(C(s,t))&&c(C(e,l))&&c(C(A,n))&&H(),R()}})),K=S.addValueListener(null,((e,n,l,t)=>{if(I){G();const e=f(F,n,(()=>[t,void 0]));e[1]=l,e[0]===l&&c(C(F,n))&&H(),R()}}))}};return d(Z.clear())})(S));const E=z.get(S);return null==y||y(E),E}})(0,(e=>e._registerListeners()));export{S as createCheckpoints};
Binary file
@@ -1 +1 @@
1
- const e=e=>typeof e,n="",l=e(n),t=e=>n+e,r=e=>null==e,s=(e,n,l)=>r(e)?null==l?void 0:l():n(e),o=e=>Array.isArray(e),u=e=>e.length,d=(e,n)=>e.every(n),i=(e,n)=>d(e,((l,t)=>0==t||n(e[t-1],l)<=0)),a=(e,n)=>e.sort(n),c=(e,n)=>e.forEach(n),v=(e,...n)=>e.push(...n),h=Object.freeze,I=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},f=e=>r(e)||0==(e=>{var n;return null!=(n=null==e?void 0:e.size)?n:0})(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},L=e=>e.clear(),S=(e,n)=>null==e?void 0:e.forEach(n),w=(e,n)=>null==e?void 0:e.delete(n),x=e=>new Map(e),p=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},y=(e,n)=>null==e?void 0:e.get(n),E=(e,n)=>S(e,((e,l)=>n(l,e))),R=(e,n,l)=>r(l)?(w(e,n),e):null==e?void 0:e.set(n,l),b=(e,n,l)=>(I(e,n)||R(e,n,l()),y(e,n)),T=(e,n,l,t,r=0)=>s((l?b:y)(e,n[r],r>u(n)-2?l:x),(s=>{if(r>u(n)-2)return(null==t?void 0:t(s))&&R(e,n[r]),s;const o=T(s,n,l,t,r+1);return f(s)&&R(e,n[r]),o})),k=e=>new Set(o(e)||r(e)?e:[e]),z=(e,n)=>null==e?void 0:e.add(n),A=(t,r)=>e(t)==l?e=>e(t):null!=t?t:()=>null!=r?r:n,C=(e,n)=>(null!=e?e:0)<(null!=n?n:0)?-1:1,D=/^\d+$/,M=(e=>{const l=new WeakMap;return e=>(l.has(e)||l.set(e,(e=>{const l=x(),M=x(),[j,m,O]=(e=>{let l;const[t,o]=(()=>{const e=[];let l=0;return[t=>{var r;return null!=(r=t?e.shift():null)?r:n+l++},n=>{D.test(n)&&u(e)<1e3&&v(e,n)}]})(),d=x();return[(e,r,s,o=[],u=(()=>[]))=>{null!=l||(l=U);const i=t(1);return R(d,i,[e,r,s,o,u]),z(T(r,null!=s?s:[n],k),i),i},(e,t,...r)=>c(((e,l=[n])=>{const t=[],r=(e,n)=>n==u(l)?v(t,e):null===l[n]?S(e,(e=>r(e,n+1))):c([l[n],null],(l=>r(y(e,l),n+1)));return r(e,0),t})(e,t),(e=>S(e,(e=>y(d,e)[0](l,...null!=t?t:[],...r))))),e=>s(y(d,e),(([,l,t])=>(T(l,null!=t?t:[n],void 0,(n=>(w(n,e),f(n)?1:0))),R(d,e),o(e),t))),e=>s(y(d,e),(([e,,n=[],t,s])=>{const o=(...d)=>{var i,a;const v=u(d);v==u(n)?e(l,...d,...s(d)):r(n[v])?c(null!=(a=null==(i=t[v])?void 0:i.call(t,...d))?a:[],(e=>o(...d,e))):o(...d,n[v])};o()}))]})(),[W,$,q,B,F,G,H,,J,K,N,P]=((e,n,l,t,i)=>{const a=e.hasRow,v=x(),h=x(),T=x(),A=x(),C=x(),D=x(),M=(n,l,...t)=>{const r=b(D,n,k);return c(t,(n=>z(r,n)&&l&&e.callListener(n))),t},j=(n,...l)=>s(y(D,n),(t=>{c(0==u(l)?g(t):l,(n=>{e.delListener(n),w(t,n)})),f(t)&&R(D,n)})),m=(e,l)=>{R(v,e,l),I(h,e)||(R(h,e,n()),R(A,e,x()),R(C,e,x()),i(T))},O=e=>{R(v,e),R(h,e),R(A,e),R(C,e),j(e),i(T)};return[()=>e,()=>p(v),e=>E(h,e),e=>I(h,e),e=>y(v,e),e=>y(h,e),(e,n)=>R(h,e,n),m,(n,t,s,i,v)=>{m(n,t);const h=x(),f=x(),g=y(A,n),w=y(C,n),p=n=>{const s=l=>e.getCell(t,n,l),c=y(g,n),I=a(t,n)?l(i(s,n)):void 0;var L,S;if(c===I||o(c)&&o(I)&&(S=I,u(L=c)===u(S)&&d(L,((e,n)=>S[n]===e)))||R(h,n,[c,I]),!r(v)){const e=y(w,n),l=a(t,n)?v(s,n):void 0;e!=l&&R(f,n,l)}},b=e=>{s((()=>{S(h,(([,e],n)=>R(g,n,e))),S(f,((e,n)=>R(w,n,e)))}),h,f,g,w,e),L(h),L(f)};E(g,p),e.hasTable(t)&&c(e.getRowIds(t),(e=>{I(g,e)||p(e)})),b(!0),j(n),M(n,0,e.addRowListener(t,null,((e,n,l)=>p(l))),e.addTableListener(t,(()=>b())))},O,e=>t(e,T),()=>E(D,O),M,j]})(e,x,(e=>{return r(e)?n:o(e)?(l=t,e.map(l)):t(e);var l}),j,m),Q=(n,l,t)=>{const r=F(n);S(t,((n,t)=>l(t,(l=>S(n,(n=>l(n,(l=>e.forEachCell(r,n,l)))))))))},U={setIndexDefinition:(e,n,t,o,u,d=C)=>{const c=r(u)?void 0:([e],[n])=>u(e,n);return J(e,n,((n,t,u,v,h,g)=>{let L=0;const p=k(),b=k(),T=G(e);if(S(t,(([e,n],l)=>{const t=k(e),u=k(n);S(t,(e=>w(u,e)?w(t,e):0)),S(t,(e=>{z(p,e),s(y(T,e),(n=>{w(n,l),f(n)&&(R(T,e),L=1)}))})),S(u,(e=>{z(p,e),I(T,e)||(R(T,e,k()),L=1),z(y(T,e),l),r(o)||z(b,e)}))})),n(),f(h)||(g?E(T,(e=>z(b,e))):E(u,(e=>s(y(v,e),(e=>z(b,e))))),S(b,(e=>{const n=(n,l)=>d(y(h,n),y(h,l),e),l=[...y(T,e)];i(l,n)||(R(T,e,k(a(l,n))),z(p,e))}))),(L||g)&&!r(c)){const n=[...T];i(n,c)||(H(e,x(a(n,c))),L=1)}L&&m(l,[e]),S(p,(n=>m(M,[e,n])))}),A(t),s(o,A)),U},delIndexDefinition:e=>(K(e),U),getStore:W,getIndexIds:$,forEachIndex:e=>q(((n,l)=>e(n,(e=>Q(n,e,l))))),forEachSlice:(e,n)=>Q(e,n,G(e)),hasIndex:B,hasSlice:(e,n)=>I(G(e),n),getTableId:F,getSliceIds:e=>p(G(e)),getSliceRowIds:(e,n)=>g(y(G(e),n)),addIndexIdsListener:N,addSliceIdsListener:(e,n)=>j(n,l,[e]),addSliceRowIdsListener:(e,n,l)=>j(l,M,[e,n]),delListener:e=>(O(e),U),destroy:P,getListenerStats:()=>({})};return h(U)})(e)),l.get(e))})();export{M as createIndexes};
1
+ const e=e=>typeof e,n="",l=e(n),t=e=>n+e,r=e=>null==e,s=(e,n,l)=>r(e)?null==l?void 0:l():n(e),o=e=>Array.isArray(e),u=e=>e.length,d=(e,n)=>e.every(n),i=(e,n)=>d(e,((l,t)=>0==t||n(e[t-1],l)<=0)),a=(e,n)=>e.sort(n),c=(e,n)=>e.forEach(n),v=(e,...n)=>e.push(...n),h=Object.freeze,I=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},f=e=>r(e)||0==(e=>{var n;return null!=(n=null==e?void 0:e.size)?n:0})(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},L=e=>e.clear(),S=(e,n)=>null==e?void 0:e.forEach(n),w=(e,n)=>null==e?void 0:e.delete(n),x=e=>new Map(e),p=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},y=(e,n)=>null==e?void 0:e.get(n),E=(e,n)=>S(e,((e,l)=>n(l,e))),R=(e,n,l)=>r(l)?(w(e,n),e):null==e?void 0:e.set(n,l),b=(e,n,l)=>(I(e,n)||R(e,n,l()),y(e,n)),T=(e,n,l,t,r=0)=>s((l?b:y)(e,n[r],r>u(n)-2?l:x),(s=>{if(r>u(n)-2)return(null==t?void 0:t(s))&&R(e,n[r]),s;const o=T(s,n,l,t,r+1);return f(s)&&R(e,n[r]),o})),k=e=>new Set(o(e)||r(e)?e:[e]),z=(e,n)=>null==e?void 0:e.add(n),A=(t,r)=>e(t)==l?e=>e(t):null!=t?t:()=>null!=r?r:n,C=(e,n)=>(null!=e?e:0)<(null!=n?n:0)?-1:1,D=/^\d+$/,M=((e,l)=>{const M=new WeakMap;return e=>{M.has(e)||M.set(e,(e=>{const l=x(),M=x(),[j,m,O]=(e=>{let l;const[t,o]=(()=>{const e=[];let l=0;return[t=>{var r;return null!=(r=t?e.shift():null)?r:n+l++},n=>{D.test(n)&&u(e)<1e3&&v(e,n)}]})(),d=x();return[(e,r,s,o=[],u=(()=>[]))=>{null!=l||(l=U);const i=t(1);return R(d,i,[e,r,s,o,u]),z(T(r,null!=s?s:[n],k),i),i},(e,t,...r)=>c(((e,l=[n])=>{const t=[],r=(e,n)=>n==u(l)?v(t,e):null===l[n]?S(e,(e=>r(e,n+1))):c([l[n],null],(l=>r(y(e,l),n+1)));return r(e,0),t})(e,t),(e=>S(e,(e=>y(d,e)[0](l,...null!=t?t:[],...r))))),e=>s(y(d,e),(([,l,t])=>(T(l,null!=t?t:[n],void 0,(n=>(w(n,e),f(n)?1:0))),R(d,e),o(e),t))),e=>s(y(d,e),(([e,,n=[],t,s])=>{const o=(...d)=>{var i,a;const v=u(d);v==u(n)?e(l,...d,...s(d)):r(n[v])?c(null!=(a=null==(i=t[v])?void 0:i.call(t,...d))?a:[],(e=>o(...d,e))):o(...d,n[v])};o()}))]})(),[W,$,q,B,F,G,H,,J,K,N,P]=((e,n,l,t,i)=>{const a=e.hasRow,v=x(),h=x(),T=x(),A=x(),C=x(),D=x(),M=(n,l,...t)=>{const r=b(D,n,k);return c(t,(n=>z(r,n)&&l&&e.callListener(n))),t},j=(n,...l)=>s(y(D,n),(t=>{c(0==u(l)?g(t):l,(n=>{e.delListener(n),w(t,n)})),f(t)&&R(D,n)})),m=(e,l)=>{R(v,e,l),I(h,e)||(R(h,e,n()),R(A,e,x()),R(C,e,x()),i(T))},O=e=>{R(v,e),R(h,e),R(A,e),R(C,e),j(e),i(T)};return[()=>e,()=>p(v),e=>E(h,e),e=>I(h,e),e=>y(v,e),e=>y(h,e),(e,n)=>R(h,e,n),m,(n,t,s,i,v)=>{m(n,t);const h=x(),f=x(),g=y(A,n),w=y(C,n),p=n=>{const s=l=>e.getCell(t,n,l),c=y(g,n),I=a(t,n)?l(i(s,n)):void 0;var L,S;if(c===I||o(c)&&o(I)&&(S=I,u(L=c)===u(S)&&d(L,((e,n)=>S[n]===e)))||R(h,n,[c,I]),!r(v)){const e=y(w,n),l=a(t,n)?v(s,n):void 0;e!=l&&R(f,n,l)}},b=e=>{s((()=>{S(h,(([,e],n)=>R(g,n,e))),S(f,((e,n)=>R(w,n,e)))}),h,f,g,w,e),L(h),L(f)};E(g,p),e.hasTable(t)&&c(e.getRowIds(t),(e=>{I(g,e)||p(e)})),b(!0),j(n),M(n,0,e.addRowListener(t,null,((e,n,l)=>p(l))),e.addTableListener(t,(()=>b())))},O,e=>t(e,T),()=>E(D,O),M,j]})(e,x,(e=>{return r(e)?n:o(e)?(l=t,e.map(l)):t(e);var l}),j,m),Q=(n,l,t)=>{const r=F(n);S(t,((n,t)=>l(t,(l=>S(n,(n=>l(n,(l=>e.forEachCell(r,n,l)))))))))},U={setIndexDefinition:(e,n,t,o,u,d=C)=>{const c=r(u)?void 0:([e],[n])=>u(e,n);return J(e,n,((n,t,u,v,h,g)=>{let L=0;const p=k(),b=k(),T=G(e);if(S(t,(([e,n],l)=>{const t=k(e),u=k(n);S(t,(e=>w(u,e)?w(t,e):0)),S(t,(e=>{z(p,e),s(y(T,e),(n=>{w(n,l),f(n)&&(R(T,e),L=1)}))})),S(u,(e=>{z(p,e),I(T,e)||(R(T,e,k()),L=1),z(y(T,e),l),r(o)||z(b,e)}))})),n(),f(h)||(g?E(T,(e=>z(b,e))):E(u,(e=>s(y(v,e),(e=>z(b,e))))),S(b,(e=>{const n=(n,l)=>d(y(h,n),y(h,l),e),l=[...y(T,e)];i(l,n)||(R(T,e,k(a(l,n))),z(p,e))}))),(L||g)&&!r(c)){const n=[...T];i(n,c)||(H(e,x(a(n,c))),L=1)}L&&m(l,[e]),S(p,(n=>m(M,[e,n])))}),A(t),s(o,A)),U},delIndexDefinition:e=>(K(e),U),getStore:W,getIndexIds:$,forEachIndex:e=>q(((n,l)=>e(n,(e=>Q(n,e,l))))),forEachSlice:(e,n)=>Q(e,n,G(e)),hasIndex:B,hasSlice:(e,n)=>I(G(e),n),getTableId:F,getSliceIds:e=>p(G(e)),getSliceRowIds:(e,n)=>g(y(G(e),n)),addIndexIdsListener:N,addSliceIdsListener:(e,n)=>j(n,l,[e]),addSliceRowIdsListener:(e,n,l)=>j(l,M,[e,n]),delListener:e=>(O(e),U),destroy:P,getListenerStats:()=>({})};return h(U)})(e));return M.get(e)}})();export{M as createIndexes};
Binary file
@@ -1 +1 @@
1
- const e=e=>typeof e,n="",t=e(n),l=e(e),r=Math.max,i=Math.min,u=isFinite,o=e=>null==e,s=(e,n,t)=>o(e)?null==t?void 0:t():n(e),d=e=>Array.isArray(e),a=e=>e.length,v=()=>{},c=(e,n)=>e.forEach(n),h=e=>M(e,((e,n)=>e+n),0),M=(e,n,t)=>e.reduce(n,t),f=(e,...n)=>e.push(...n),g=Object.freeze,L=e=>{var n;return null!=(n=null==e?void 0:e.size)?n:0},m=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},w=e=>o(e)||0==L(e),y=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},p=e=>e.clear(),b=(e,n)=>null==e?void 0:e.forEach(n),I=(e,n)=>null==e?void 0:e.delete(n),x=e=>new Map(e),E=(e,n)=>null==e?void 0:e.get(n),R=(e,n)=>b(e,((e,t)=>n(t,e))),S=(e,n,t)=>o(t)?(I(e,n),e):null==e?void 0:e.set(n,t),T=(e,n,t)=>(m(e,n)||S(e,n,t()),E(e,n)),k=(e,n,t,l,r=0)=>s((t?T:E)(e,n[r],r>a(n)-2?t:x),(i=>{if(r>a(n)-2)return(null==l?void 0:l(i))&&S(e,n[r]),i;const u=k(i,n,t,l,r+1);return w(i)&&S(e,n[r]),u})),z=x([["avg",[(e,n)=>h(e)/n,(e,n,t)=>e+(n-e)/(t+1),(e,n,t)=>e+(e-n)/(t-1),(e,n,t,l)=>e+(n-t)/l]],["max",[e=>r(...e),(e,n)=>r(n,e),(e,n)=>n==e?void 0:e,(e,n,t)=>t==e?void 0:r(n,e)]],["min",[e=>i(...e),(e,n)=>i(n,e),(e,n)=>n==e?void 0:e,(e,n,t)=>t==e?void 0:i(n,e)]],["sum",[e=>h(e),(e,n)=>e+n,(e,n)=>e-n,(e,n,t)=>e-t+n]]]),A=e=>new Set(d(e)||o(e)?e:[e]),D=(e,n)=>null==e?void 0:e.add(n),N=/^\d+$/,j=(r=>{const i=new WeakMap;return r=>(i.has(r)||i.set(r,(r=>{const i=x(),[h,M,j]=(e=>{let t;const[l,r]=(()=>{const e=[];let t=0;return[l=>{var r;return null!=(r=l?e.shift():null)?r:n+t++},n=>{N.test(n)&&a(e)<1e3&&f(e,n)}]})(),i=x();return[(e,r,u,o=[],s=(()=>[]))=>{null!=t||(t=P);const d=l(1);return S(i,d,[e,r,u,o,s]),D(k(r,null!=u?u:[n],A),d),d},(e,l,...r)=>c(((e,t=[n])=>{const l=[],r=(e,n)=>n==a(t)?f(l,e):null===t[n]?b(e,(e=>r(e,n+1))):c([t[n],null],(t=>r(E(e,t),n+1)));return r(e,0),l})(e,l),(e=>b(e,(e=>E(i,e)[0](t,...null!=l?l:[],...r))))),e=>s(E(i,e),(([,t,l])=>(k(t,null!=l?l:[n],void 0,(n=>(I(n,e),w(n)?1:0))),S(i,e),r(e),l))),e=>s(E(i,e),(([e,,n=[],l,r])=>{const i=(...u)=>{var s,d;const v=a(u);v==a(n)?e(t,...u,...r(u)):o(n[v])?c(null!=(d=null==(s=l[v])?void 0:s.call(l,...u))?d:[],(e=>i(...u,e))):i(...u,n[v])};i()}))]})(),[C,F,O,W,$,q,B,,G,H,J,K]=((e,t,l,r,i)=>{const u=e.hasRow,v=x(),h=x(),M=x(),f=x(),g=x(),L=x(),k=(n,t,...l)=>{const r=T(L,n,A);return c(l,(n=>D(r,n)&&t&&e.callListener(n))),l},z=(n,...t)=>s(E(L,n),(l=>{c(0==a(t)?y(l):t,(n=>{e.delListener(n),I(l,n)})),w(l)&&S(L,n)})),N=(e,n)=>{S(v,e,n),m(h,e)||(S(h,e,t()),S(f,e,x()),S(g,e,x()),i(M))},j=e=>{S(v,e),S(h,e),S(f,e),S(g,e),z(e),i(M)};return[()=>e,()=>{return[...null!=(n=null==(e=v)?void 0:e.keys())?n:[]];var e,n},e=>R(h,e),e=>m(h,e),e=>E(v,e),e=>E(h,e),(e,n)=>S(h,e,n),N,(t,l,r,i,s)=>{N(t,l);const v=x(),h=x(),M=E(f,t),L=E(g,t),w=t=>{const r=n=>e.getCell(l,t,n),c=E(M,t),f=u(l,t)?(g=i(r,t),isNaN(g)||o(g)||!0===g||!1===g||g===n?void 0:1*g):void 0;var g,m,w,y;if(c===f||d(c)&&d(f)&&(w=f,a(m=c)===a(w)&&(y=(e,n)=>w[n]===e,m.every(y)))||S(v,t,[c,f]),!o(s)){const e=E(L,t),n=u(l,t)?s(r,t):void 0;e!=n&&S(h,t,n)}},y=e=>{r((()=>{b(v,(([,e],n)=>S(M,n,e))),b(h,((e,n)=>S(L,n,e)))}),v,h,M,L,e),p(v),p(h)};R(M,w),e.hasTable(l)&&c(e.getRowIds(l),(e=>{m(M,e)||w(e)})),y(!0),z(t),k(t,0,e.addRowListener(l,null,((e,n,t)=>w(t))),e.addTableListener(l,(()=>y())))},j,e=>r(e,M),()=>R(L,j),k,z]})(r,v,0,h,M),P={setMetricDefinition:(n,r,s,d,a,v,c)=>{var h;const f=e(s)==l?[s,a,v,c]:null!=(h=E(z,s))?h:E(z,"sum");return G(n,r,((e,t,l,r,s,d)=>{const a=q(n),v=L(r);d||(d=o(a)),e();let c=((e,n,t,l,r,i=!1)=>{if(w(t))return;const[u,s,d,a]=r;return i||(i=o(e)),b(l,(([t,l])=>{i||(e=o(t)?null==s?void 0:s(e,l,n++):o(l)?null==d?void 0:d(e,t,n--):null==a?void 0:a(e,l,t,n),i||(i=o(e)))})),i?u(y(t),L(t)):e})(a,v,r,t,f,d);u(c)||(c=void 0),c!=a&&(B(n,c),M(i,[n],c,a))}),(1,e(g=d)==t?e=>e(g):null!=g?g:()=>1)),P;var g},delMetricDefinition:e=>(H(e),P),getStore:C,getMetricIds:F,forEachMetric:O,hasMetric:W,getTableId:$,getMetric:q,addMetricIdsListener:J,addMetricListener:(e,n)=>h(n,i,[e]),delListener:e=>(j(e),P),destroy:K,getListenerStats:()=>({})};return g(P)})(r)),i.get(r))})();export{j as createMetrics};
1
+ const e=e=>typeof e,n="",t=e(n),l=e(e),r=Math.max,i=Math.min,u=isFinite,o=e=>null==e,s=(e,n,t)=>o(e)?null==t?void 0:t():n(e),d=e=>Array.isArray(e),a=e=>e.length,v=()=>{},c=(e,n)=>e.forEach(n),h=e=>M(e,((e,n)=>e+n),0),M=(e,n,t)=>e.reduce(n,t),f=(e,...n)=>e.push(...n),g=Object.freeze,L=e=>{var n;return null!=(n=null==e?void 0:e.size)?n:0},m=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},w=e=>o(e)||0==L(e),y=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},p=e=>e.clear(),b=(e,n)=>null==e?void 0:e.forEach(n),I=(e,n)=>null==e?void 0:e.delete(n),x=e=>new Map(e),E=(e,n)=>null==e?void 0:e.get(n),R=(e,n)=>b(e,((e,t)=>n(t,e))),S=(e,n,t)=>o(t)?(I(e,n),e):null==e?void 0:e.set(n,t),T=(e,n,t)=>(m(e,n)||S(e,n,t()),E(e,n)),k=(e,n,t,l,r=0)=>s((t?T:E)(e,n[r],r>a(n)-2?t:x),(i=>{if(r>a(n)-2)return(null==l?void 0:l(i))&&S(e,n[r]),i;const u=k(i,n,t,l,r+1);return w(i)&&S(e,n[r]),u})),z=x([["avg",[(e,n)=>h(e)/n,(e,n,t)=>e+(n-e)/(t+1),(e,n,t)=>e+(e-n)/(t-1),(e,n,t,l)=>e+(n-t)/l]],["max",[e=>r(...e),(e,n)=>r(n,e),(e,n)=>n==e?void 0:e,(e,n,t)=>t==e?void 0:r(n,e)]],["min",[e=>i(...e),(e,n)=>i(n,e),(e,n)=>n==e?void 0:e,(e,n,t)=>t==e?void 0:i(n,e)]],["sum",[e=>h(e),(e,n)=>e+n,(e,n)=>e-n,(e,n,t)=>e-t+n]]]),A=e=>new Set(d(e)||o(e)?e:[e]),D=(e,n)=>null==e?void 0:e.add(n),N=/^\d+$/,j=((r,i)=>{const h=new WeakMap;return r=>{h.has(r)||h.set(r,(r=>{const i=x(),[h,M,j]=(e=>{let t;const[l,r]=(()=>{const e=[];let t=0;return[l=>{var r;return null!=(r=l?e.shift():null)?r:n+t++},n=>{N.test(n)&&a(e)<1e3&&f(e,n)}]})(),i=x();return[(e,r,u,o=[],s=(()=>[]))=>{null!=t||(t=P);const d=l(1);return S(i,d,[e,r,u,o,s]),D(k(r,null!=u?u:[n],A),d),d},(e,l,...r)=>c(((e,t=[n])=>{const l=[],r=(e,n)=>n==a(t)?f(l,e):null===t[n]?b(e,(e=>r(e,n+1))):c([t[n],null],(t=>r(E(e,t),n+1)));return r(e,0),l})(e,l),(e=>b(e,(e=>E(i,e)[0](t,...null!=l?l:[],...r))))),e=>s(E(i,e),(([,t,l])=>(k(t,null!=l?l:[n],void 0,(n=>(I(n,e),w(n)?1:0))),S(i,e),r(e),l))),e=>s(E(i,e),(([e,,n=[],l,r])=>{const i=(...u)=>{var s,d;const v=a(u);v==a(n)?e(t,...u,...r(u)):o(n[v])?c(null!=(d=null==(s=l[v])?void 0:s.call(l,...u))?d:[],(e=>i(...u,e))):i(...u,n[v])};i()}))]})(),[C,F,O,W,$,q,B,,G,H,J,K]=((e,t,l,r,i)=>{const u=e.hasRow,v=x(),h=x(),M=x(),f=x(),g=x(),L=x(),k=(n,t,...l)=>{const r=T(L,n,A);return c(l,(n=>D(r,n)&&t&&e.callListener(n))),l},z=(n,...t)=>s(E(L,n),(l=>{c(0==a(t)?y(l):t,(n=>{e.delListener(n),I(l,n)})),w(l)&&S(L,n)})),N=(e,n)=>{S(v,e,n),m(h,e)||(S(h,e,t()),S(f,e,x()),S(g,e,x()),i(M))},j=e=>{S(v,e),S(h,e),S(f,e),S(g,e),z(e),i(M)};return[()=>e,()=>{return[...null!=(n=null==(e=v)?void 0:e.keys())?n:[]];var e,n},e=>R(h,e),e=>m(h,e),e=>E(v,e),e=>E(h,e),(e,n)=>S(h,e,n),N,(t,l,r,i,s)=>{N(t,l);const v=x(),h=x(),M=E(f,t),L=E(g,t),w=t=>{const r=n=>e.getCell(l,t,n),c=E(M,t),f=u(l,t)?(g=i(r,t),isNaN(g)||o(g)||!0===g||!1===g||g===n?void 0:1*g):void 0;var g,m,w,y;if(c===f||d(c)&&d(f)&&(w=f,a(m=c)===a(w)&&(y=(e,n)=>w[n]===e,m.every(y)))||S(v,t,[c,f]),!o(s)){const e=E(L,t),n=u(l,t)?s(r,t):void 0;e!=n&&S(h,t,n)}},y=e=>{r((()=>{b(v,(([,e],n)=>S(M,n,e))),b(h,((e,n)=>S(L,n,e)))}),v,h,M,L,e),p(v),p(h)};R(M,w),e.hasTable(l)&&c(e.getRowIds(l),(e=>{m(M,e)||w(e)})),y(!0),z(t),k(t,0,e.addRowListener(l,null,((e,n,t)=>w(t))),e.addTableListener(l,(()=>y())))},j,e=>r(e,M),()=>R(L,j),k,z]})(r,v,0,h,M),P={setMetricDefinition:(n,r,s,d,a,v,c)=>{var h;const f=e(s)==l?[s,a,v,c]:null!=(h=E(z,s))?h:E(z,"sum");return G(n,r,((e,t,l,r,s,d)=>{const a=q(n),v=L(r);d||(d=o(a)),e();let c=((e,n,t,l,r,i=!1)=>{if(w(t))return;const[u,s,d,a]=r;return i||(i=o(e)),b(l,(([t,l])=>{i||(e=o(t)?null==s?void 0:s(e,l,n++):o(l)?null==d?void 0:d(e,t,n--):null==a?void 0:a(e,l,t,n),i||(i=o(e)))})),i?u(y(t),L(t)):e})(a,v,r,t,f,d);u(c)||(c=void 0),c!=a&&(B(n,c),M(i,[n],c,a))}),(1,e(g=d)==t?e=>e(g):null!=g?g:()=>1)),P;var g},delMetricDefinition:e=>(H(e),P),getStore:C,getMetricIds:F,forEachMetric:O,hasMetric:W,getTableId:$,getMetric:q,addMetricIdsListener:J,addMetricListener:(e,n)=>h(n,i,[e]),delListener:e=>(j(e),P),destroy:K,getListenerStats:()=>({})};return g(P)})(r));return h.get(r)}})();export{j as createMetrics};
Binary file