tinybase 4.3.7 → 4.3.9

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 (245) hide show
  1. package/lib/checkpoints.js +1 -1
  2. package/lib/checkpoints.js.gz +0 -0
  3. package/lib/cjs/checkpoints.cjs +1 -1
  4. package/lib/cjs/checkpoints.cjs.gz +0 -0
  5. package/lib/cjs/indexes.cjs +1 -1
  6. package/lib/cjs/indexes.cjs.gz +0 -0
  7. package/lib/cjs/metrics.cjs +1 -1
  8. package/lib/cjs/metrics.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  10. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  12. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  14. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  16. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
  18. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  20. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  22. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  24. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  25. package/lib/cjs/queries.cjs +1 -1
  26. package/lib/cjs/queries.cjs.gz +0 -0
  27. package/lib/cjs/relationships.cjs +1 -1
  28. package/lib/cjs/relationships.cjs.gz +0 -0
  29. package/lib/cjs/store.cjs +1 -1
  30. package/lib/cjs/store.cjs.gz +0 -0
  31. package/lib/cjs/tinybase.cjs +1 -1
  32. package/lib/cjs/tinybase.cjs.gz +0 -0
  33. package/lib/cjs/tools.cjs +1 -1
  34. package/lib/cjs/tools.cjs.gz +0 -0
  35. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  36. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  37. package/lib/cjs/ui-react.cjs +1 -1
  38. package/lib/cjs/ui-react.cjs.gz +0 -0
  39. package/lib/cjs-es6/checkpoints.cjs +1 -1
  40. package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
  41. package/lib/cjs-es6/indexes.cjs +1 -1
  42. package/lib/cjs-es6/indexes.cjs.gz +0 -0
  43. package/lib/cjs-es6/metrics.cjs +1 -1
  44. package/lib/cjs-es6/metrics.cjs.gz +0 -0
  45. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  46. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  47. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  48. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  49. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  50. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  51. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  52. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  53. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
  54. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  55. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  56. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  57. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  58. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  59. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  60. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  61. package/lib/cjs-es6/queries.cjs +1 -1
  62. package/lib/cjs-es6/queries.cjs.gz +0 -0
  63. package/lib/cjs-es6/relationships.cjs +1 -1
  64. package/lib/cjs-es6/relationships.cjs.gz +0 -0
  65. package/lib/cjs-es6/store.cjs +1 -1
  66. package/lib/cjs-es6/store.cjs.gz +0 -0
  67. package/lib/cjs-es6/tinybase.cjs +1 -1
  68. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  69. package/lib/cjs-es6/tools.cjs +1 -1
  70. package/lib/cjs-es6/tools.cjs.gz +0 -0
  71. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  72. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  73. package/lib/cjs-es6/ui-react.cjs +1 -1
  74. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  75. package/lib/debug/checkpoints.js +12 -12
  76. package/lib/debug/indexes.js +9 -9
  77. package/lib/debug/metrics.js +9 -9
  78. package/lib/debug/persisters/persister-automerge.js +6 -6
  79. package/lib/debug/persisters/persister-browser.js +2 -2
  80. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +5 -5
  81. package/lib/debug/persisters/persister-expo-sqlite.js +5 -5
  82. package/lib/debug/persisters/persister-file.js +2 -2
  83. package/lib/debug/persisters/persister-indexed-db.js +6 -6
  84. package/lib/debug/persisters/persister-partykit-client.js +15 -5
  85. package/lib/debug/persisters/persister-partykit-server.js +44 -30
  86. package/lib/debug/persisters/persister-remote.js +2 -2
  87. package/lib/debug/persisters/persister-sqlite-wasm.js +5 -5
  88. package/lib/debug/persisters/persister-sqlite3.js +5 -5
  89. package/lib/debug/persisters/persister-yjs.js +9 -9
  90. package/lib/debug/persisters.js +2 -2
  91. package/lib/debug/queries.js +16 -15
  92. package/lib/debug/relationships.js +9 -9
  93. package/lib/debug/store.js +9 -9
  94. package/lib/debug/tinybase.js +16 -15
  95. package/lib/debug/tools.js +6 -7
  96. package/lib/debug/ui-react-dom.js +10 -10
  97. package/lib/debug/ui-react.js +2 -2
  98. package/lib/es6/checkpoints.js +1 -1
  99. package/lib/es6/checkpoints.js.gz +0 -0
  100. package/lib/es6/indexes.js +1 -1
  101. package/lib/es6/indexes.js.gz +0 -0
  102. package/lib/es6/metrics.js +1 -1
  103. package/lib/es6/metrics.js.gz +0 -0
  104. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  105. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  106. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  107. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  108. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  109. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  110. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  111. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  112. package/lib/es6/persisters/persister-partykit-server.js +1 -1
  113. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  114. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  115. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  116. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  117. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  118. package/lib/es6/persisters/persister-yjs.js +1 -1
  119. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  120. package/lib/es6/queries.js +1 -1
  121. package/lib/es6/queries.js.gz +0 -0
  122. package/lib/es6/relationships.js +1 -1
  123. package/lib/es6/relationships.js.gz +0 -0
  124. package/lib/es6/store.js +1 -1
  125. package/lib/es6/store.js.gz +0 -0
  126. package/lib/es6/tinybase.js +1 -1
  127. package/lib/es6/tinybase.js.gz +0 -0
  128. package/lib/es6/tools.js +1 -1
  129. package/lib/es6/tools.js.gz +0 -0
  130. package/lib/es6/ui-react-dom-debug.js +1 -1
  131. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  132. package/lib/es6/ui-react.js +1 -1
  133. package/lib/es6/ui-react.js.gz +0 -0
  134. package/lib/indexes.js +1 -1
  135. package/lib/indexes.js.gz +0 -0
  136. package/lib/metrics.js +1 -1
  137. package/lib/metrics.js.gz +0 -0
  138. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  139. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  140. package/lib/persisters/persister-expo-sqlite.js +1 -1
  141. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  142. package/lib/persisters/persister-indexed-db.js +1 -1
  143. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  144. package/lib/persisters/persister-partykit-client.js +1 -1
  145. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  146. package/lib/persisters/persister-partykit-server.js +1 -1
  147. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  148. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  149. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  150. package/lib/persisters/persister-sqlite3.js +1 -1
  151. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  152. package/lib/persisters/persister-yjs.js +1 -1
  153. package/lib/persisters/persister-yjs.js.gz +0 -0
  154. package/lib/queries.js +1 -1
  155. package/lib/queries.js.gz +0 -0
  156. package/lib/relationships.js +1 -1
  157. package/lib/relationships.js.gz +0 -0
  158. package/lib/store.js +1 -1
  159. package/lib/store.js.gz +0 -0
  160. package/lib/tinybase.js +1 -1
  161. package/lib/tinybase.js.gz +0 -0
  162. package/lib/tools.js +1 -1
  163. package/lib/tools.js.gz +0 -0
  164. package/lib/types/persisters/persister-partykit-client.d.ts +43 -4
  165. package/lib/types/persisters/persister-partykit-server.d.ts +66 -0
  166. package/lib/types/queries.d.ts +24 -0
  167. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +44 -5
  168. package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +66 -0
  169. package/lib/types/with-schemas/queries.d.ts +24 -0
  170. package/lib/ui-react.js +1 -1
  171. package/lib/ui-react.js.gz +0 -0
  172. package/lib/umd/checkpoints.js +1 -1
  173. package/lib/umd/checkpoints.js.gz +0 -0
  174. package/lib/umd/indexes.js +1 -1
  175. package/lib/umd/indexes.js.gz +0 -0
  176. package/lib/umd/metrics.js +1 -1
  177. package/lib/umd/metrics.js.gz +0 -0
  178. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  179. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  180. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  181. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  182. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  183. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  184. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  185. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  186. package/lib/umd/persisters/persister-partykit-server.js +1 -1
  187. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  188. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  189. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  190. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  191. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  192. package/lib/umd/persisters/persister-yjs.js +1 -1
  193. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  194. package/lib/umd/queries.js +1 -1
  195. package/lib/umd/queries.js.gz +0 -0
  196. package/lib/umd/relationships.js +1 -1
  197. package/lib/umd/relationships.js.gz +0 -0
  198. package/lib/umd/store.js +1 -1
  199. package/lib/umd/store.js.gz +0 -0
  200. package/lib/umd/tinybase.js +1 -1
  201. package/lib/umd/tinybase.js.gz +0 -0
  202. package/lib/umd/tools.js +1 -1
  203. package/lib/umd/tools.js.gz +0 -0
  204. package/lib/umd/ui-react-dom-debug.js +1 -1
  205. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  206. package/lib/umd/ui-react.js +1 -1
  207. package/lib/umd/ui-react.js.gz +0 -0
  208. package/lib/umd-es6/checkpoints.js +1 -1
  209. package/lib/umd-es6/checkpoints.js.gz +0 -0
  210. package/lib/umd-es6/indexes.js +1 -1
  211. package/lib/umd-es6/indexes.js.gz +0 -0
  212. package/lib/umd-es6/metrics.js +1 -1
  213. package/lib/umd-es6/metrics.js.gz +0 -0
  214. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  215. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  216. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  217. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  218. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  219. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  220. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  221. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  222. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
  223. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  224. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  225. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  226. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  227. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  228. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  229. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  230. package/lib/umd-es6/queries.js +1 -1
  231. package/lib/umd-es6/queries.js.gz +0 -0
  232. package/lib/umd-es6/relationships.js +1 -1
  233. package/lib/umd-es6/relationships.js.gz +0 -0
  234. package/lib/umd-es6/store.js +1 -1
  235. package/lib/umd-es6/store.js.gz +0 -0
  236. package/lib/umd-es6/tinybase.js +1 -1
  237. package/lib/umd-es6/tinybase.js.gz +0 -0
  238. package/lib/umd-es6/tools.js +1 -1
  239. package/lib/umd-es6/tools.js.gz +0 -0
  240. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  241. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  242. package/lib/umd-es6/ui-react.js +1 -1
  243. package/lib/umd-es6/ui-react.js.gz +0 -0
  244. package/package.json +7 -7
  245. package/readme.md +2 -2
@@ -15,13 +15,13 @@ const ifNotUndefined = (value, then, otherwise) =>
15
15
  const isString = (thing) => getTypeOf(thing) == STRING;
16
16
  const isArray = (thing) => Array.isArray(thing);
17
17
  const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
18
+ const size = (arrayOrString) => arrayOrString.length;
18
19
  const promiseNew = (resolver) => new promise(resolver);
19
20
  const promiseAll = async (promises) => promise.all(promises);
20
21
 
21
22
  const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
22
23
  const arrayMap = (array, cb) => array.map(cb);
23
- const arrayLength = (array) => array.length;
24
- const arrayIsEmpty = (array) => arrayLength(array) == 0;
24
+ const arrayIsEmpty = (array) => size(array) == 0;
25
25
  const arrayFilter = (array, cb) => array.filter(cb);
26
26
  const arrayPush = (array, ...values) => array.push(...values);
27
27
  const arrayShift = (array) => array.shift();
@@ -47,7 +47,7 @@ const objDel = (obj, id) => {
47
47
  const objMap = (obj, cb) =>
48
48
  arrayMap(object.entries(obj), ([id, value]) => cb(value, id));
49
49
  const objValues = (obj) => object.values(obj);
50
- const objSize = (obj) => arrayLength(objIds(obj));
50
+ const objSize = (obj) => size(objIds(obj));
51
51
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
52
52
 
53
53
  const mapNew = (entries) => new Map(entries);
@@ -318,8 +318,8 @@ const upsert = async (
318
318
  ')VALUES' +
319
319
  slice(
320
320
  strRepeat(
321
- `,(?${strRepeat(',?', arrayLength(changingColumnNames))})`,
322
- arrayLength(args) / (arrayLength(changingColumnNames) + 1),
321
+ `,(?${strRepeat(',?', size(changingColumnNames))})`,
322
+ size(args) / (size(changingColumnNames) + 1),
323
323
  ),
324
324
  1,
325
325
  ) +
@@ -4,17 +4,17 @@ const TINYBASE = 'tinybase';
4
4
  const T = 't';
5
5
  const V = 'v';
6
6
 
7
- const arrayForEach = (array, cb) => array.forEach(cb);
8
- const arrayMap = (array, cb) => array.map(cb);
9
- const arrayLength = (array) => array.length;
10
- const arrayIsEmpty = (array) => arrayLength(array) == 0;
11
- const arrayPush = (array, ...values) => array.push(...values);
12
- const arrayShift = (array) => array.shift();
13
-
14
7
  const isInstanceOf = (thing, cls) => thing instanceof cls;
15
8
  const isUndefined = (thing) => thing == void 0;
16
9
  const ifNotUndefined = (value, then, otherwise) =>
17
10
  isUndefined(value) ? otherwise?.() : then(value);
11
+ const size = (arrayOrString) => arrayOrString.length;
12
+
13
+ const arrayForEach = (array, cb) => array.forEach(cb);
14
+ const arrayMap = (array, cb) => array.map(cb);
15
+ const arrayIsEmpty = (array) => size(array) == 0;
16
+ const arrayPush = (array, ...values) => array.push(...values);
17
+ const arrayShift = (array) => array.shift();
18
18
 
19
19
  const object = Object;
20
20
  const objIds = object.keys;
@@ -26,7 +26,7 @@ const objGet = (obj, id) => ifNotUndefined(obj, (obj2) => obj2[id]);
26
26
  const objHas = (obj, id) => !isUndefined(objGet(obj, id));
27
27
  const objMap = (obj, cb) =>
28
28
  arrayMap(object.entries(obj), ([id, value]) => cb(value, id));
29
- const objSize = (obj) => arrayLength(objIds(obj));
29
+ const objSize = (obj) => size(objIds(obj));
30
30
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
31
31
  const objEnsure = (obj, id, getDefaultValue) => {
32
32
  if (!objHas(obj, id)) {
@@ -194,7 +194,7 @@ const createCustomPersister = (
194
194
  const DELETE = 'delete';
195
195
  const getYContent = (yContent) => [yContent.get(T), yContent.get(V)];
196
196
  const getTransactionChangesFromYDoc = (yContent, events) => {
197
- if (arrayLength(events) == 1 && arrayIsEmpty(events[0].path)) {
197
+ if (size(events) == 1 && arrayIsEmpty(events[0].path)) {
198
198
  return [yContent.get(T).toJSON(), yContent.get(V).toJSON()];
199
199
  }
200
200
  const [yTables, yValues] = getYContent(yContent);
@@ -2,8 +2,8 @@ const isInstanceOf = (thing, cls) => thing instanceof cls;
2
2
  const isUndefined = (thing) => thing == void 0;
3
3
  const ifNotUndefined = (value, then, otherwise) =>
4
4
  isUndefined(value) ? otherwise?.() : then(value);
5
+ const size = (arrayOrString) => arrayOrString.length;
5
6
 
6
- const arrayLength = (array) => array.length;
7
7
  const arrayPush = (array, ...values) => array.push(...values);
8
8
  const arrayShift = (array) => array.shift();
9
9
 
@@ -12,7 +12,7 @@ const objIds = object.keys;
12
12
  const objFreeze = object.freeze;
13
13
  const isObject = (obj) =>
14
14
  isInstanceOf(obj, object) && obj.constructor == object;
15
- const objSize = (obj) => arrayLength(objIds(obj));
15
+ const objSize = (obj) => size(objIds(obj));
16
16
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
17
17
 
18
18
  const collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;
@@ -21,18 +21,6 @@ const SORTED_ROW_IDS = 'Sorted' + ROW + IDS;
21
21
  const CELL = 'Cell';
22
22
  const CELL_IDS = CELL + IDS;
23
23
 
24
- const arrayEvery = (array, cb) => array.every(cb);
25
- const arrayIsEqual = (array1, array2) =>
26
- arrayLength(array1) === arrayLength(array2) &&
27
- arrayEvery(array1, (value1, index) => array2[index] === value1);
28
- const arrayForEach = (array, cb) => array.forEach(cb);
29
- const arrayMap = (array, cb) => array.map(cb);
30
- const arraySum = (array) => arrayReduce(array, (i, j) => i + j, 0);
31
- const arrayLength = (array) => array.length;
32
- const arrayIsEmpty = (array) => arrayLength(array) == 0;
33
- const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
34
- const arrayPush = (array, ...values) => array.push(...values);
35
-
36
24
  const mathMax = Math.max;
37
25
  const mathMin = Math.min;
38
26
  const isFiniteNumber = isFinite;
@@ -43,8 +31,20 @@ const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
43
31
  const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
44
32
  const isArray = (thing) => Array.isArray(thing);
45
33
  const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
34
+ const size = (arrayOrString) => arrayOrString.length;
46
35
  const getUndefined = () => void 0;
47
36
 
37
+ const arrayEvery = (array, cb) => array.every(cb);
38
+ const arrayIsEqual = (array1, array2) =>
39
+ size(array1) === size(array2) &&
40
+ arrayEvery(array1, (value1, index) => array2[index] === value1);
41
+ const arrayForEach = (array, cb) => array.forEach(cb);
42
+ const arrayMap = (array, cb) => array.map(cb);
43
+ const arraySum = (array) => arrayReduce(array, (i, j) => i + j, 0);
44
+ const arrayIsEmpty = (array) => size(array) == 0;
45
+ const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
46
+ const arrayPush = (array, ...values) => array.push(...values);
47
+
48
48
  const object = Object;
49
49
  const objFreeze = object.freeze;
50
50
  const objMap = (obj, cb) =>
@@ -76,10 +76,10 @@ const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
76
76
  (ensureLeaf ? mapEnsure : mapGet)(
77
77
  node,
78
78
  path[p],
79
- p > arrayLength(path) - 2 ? ensureLeaf : mapNew,
79
+ p > size(path) - 2 ? ensureLeaf : mapNew,
80
80
  ),
81
81
  (nodeOrLeaf) => {
82
- if (p > arrayLength(path) - 2) {
82
+ if (p > size(path) - 2) {
83
83
  if (pruneLeaf?.(nodeOrLeaf)) {
84
84
  mapSet(node, path[p]);
85
85
  }
@@ -423,7 +423,7 @@ const createQueries = getCreateFunction((store) => {
423
423
  const havings = [];
424
424
  const select = (arg1, arg2) => {
425
425
  const selectEntry = isFunction(arg1)
426
- ? [arrayLength(selectEntries) + EMPTY_STRING, arg1]
426
+ ? [size(selectEntries) + EMPTY_STRING, arg1]
427
427
  : [
428
428
  isUndefined(arg2) ? arg1 : arg2,
429
429
  (getTableCell) => getTableCell(arg1, arg2),
@@ -797,6 +797,7 @@ const createQueries = getCreateFunction((store) => {
797
797
  ...slice(args, 0, argumentCount),
798
798
  (_store, ...listenerArgs) =>
799
799
  args[argumentCount](queries, ...listenerArgs),
800
+ true,
800
801
  );
801
802
  },
802
803
  );
@@ -7,15 +7,15 @@ const ifNotUndefined = (value, then, otherwise) =>
7
7
  isUndefined(value) ? otherwise?.() : then(value);
8
8
  const isString = (thing) => getTypeOf(thing) == STRING;
9
9
  const isArray = (thing) => Array.isArray(thing);
10
+ const size = (arrayOrString) => arrayOrString.length;
10
11
  const test = (regex, subject) => regex.test(subject);
11
12
 
12
13
  const arrayEvery = (array, cb) => array.every(cb);
13
14
  const arrayIsEqual = (array1, array2) =>
14
- arrayLength(array1) === arrayLength(array2) &&
15
+ size(array1) === size(array2) &&
15
16
  arrayEvery(array1, (value1, index) => array2[index] === value1);
16
17
  const arrayForEach = (array, cb) => array.forEach(cb);
17
- const arrayLength = (array) => array.length;
18
- const arrayIsEmpty = (array) => arrayLength(array) == 0;
18
+ const arrayIsEmpty = (array) => size(array) == 0;
19
19
  const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
20
20
  const arrayPush = (array, ...values) => array.push(...values);
21
21
  const arrayShift = (array) => array.shift();
@@ -53,10 +53,10 @@ const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
53
53
  (ensureLeaf ? mapEnsure : mapGet)(
54
54
  node,
55
55
  path[p],
56
- p > arrayLength(path) - 2 ? ensureLeaf : mapNew,
56
+ p > size(path) - 2 ? ensureLeaf : mapNew,
57
57
  ),
58
58
  (nodeOrLeaf) => {
59
- if (p > arrayLength(path) - 2) {
59
+ if (p > size(path) - 2) {
60
60
  if (pruneLeaf?.(nodeOrLeaf)) {
61
61
  mapSet(node, path[p]);
62
62
  }
@@ -255,7 +255,7 @@ const getPoolFunctions = () => {
255
255
  return [
256
256
  (reuse) => (reuse ? arrayShift(pool) : null) ?? EMPTY_STRING + nextId++,
257
257
  (id) => {
258
- if (test(INTEGER, id) && arrayLength(pool) < 1e3) {
258
+ if (test(INTEGER, id) && size(pool) < 1e3) {
259
259
  arrayPush(pool, id);
260
260
  }
261
261
  },
@@ -265,7 +265,7 @@ const getPoolFunctions = () => {
265
265
  const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
266
266
  const leaves = [];
267
267
  const deep = (node, p) =>
268
- p == arrayLength(path)
268
+ p == size(path)
269
269
  ? arrayPush(leaves, node)
270
270
  : path[p] === null
271
271
  ? collForEach(node, (node2) => deep(node2, p + 1))
@@ -317,8 +317,8 @@ const getListenerFunctions = (getThing) => {
317
317
  mapGet(allListeners, id),
318
318
  ([listener, , path = [], pathGetters, extraArgsGetter]) => {
319
319
  const callWithIds = (...ids) => {
320
- const index = arrayLength(ids);
321
- index == arrayLength(path)
320
+ const index = size(ids);
321
+ index == size(path)
322
322
  ? listener(thing, ...ids, ...extraArgsGetter(ids))
323
323
  : isUndefined(path[index])
324
324
  ? arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
@@ -31,17 +31,17 @@ const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
31
31
  const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
32
32
  const isArray = (thing) => Array.isArray(thing);
33
33
  const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
34
+ const size = (arrayOrString) => arrayOrString.length;
34
35
  const test = (regex, subject) => regex.test(subject);
35
36
 
36
37
  const arrayHas = (array, value) => array.includes(value);
37
38
  const arrayEvery = (array, cb) => array.every(cb);
38
39
  const arrayIsEqual = (array1, array2) =>
39
- arrayLength(array1) === arrayLength(array2) &&
40
+ size(array1) === size(array2) &&
40
41
  arrayEvery(array1, (value1, index) => array2[index] === value1);
41
42
  const arraySort = (array, sorter) => array.sort(sorter);
42
43
  const arrayForEach = (array, cb) => array.forEach(cb);
43
44
  const arrayMap = (array, cb) => array.map(cb);
44
- const arrayLength = (array) => array.length;
45
45
  const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
46
46
  const arrayPush = (array, ...values) => array.push(...values);
47
47
  const arrayShift = (array) => array.shift();
@@ -60,7 +60,7 @@ const objDel = (obj, id) => {
60
60
  };
61
61
  const objMap = (obj, cb) =>
62
62
  arrayMap(object.entries(obj), ([id, value]) => cb(value, id));
63
- const objSize = (obj) => arrayLength(objIds(obj));
63
+ const objSize = (obj) => size(objIds(obj));
64
64
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
65
65
 
66
66
  const collSizeN = (collSizer) => (coll) =>
@@ -128,10 +128,10 @@ const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
128
128
  (ensureLeaf ? mapEnsure : mapGet)(
129
129
  node,
130
130
  path[p],
131
- p > arrayLength(path) - 2 ? ensureLeaf : mapNew,
131
+ p > size(path) - 2 ? ensureLeaf : mapNew,
132
132
  ),
133
133
  (nodeOrLeaf) => {
134
- if (p > arrayLength(path) - 2) {
134
+ if (p > size(path) - 2) {
135
135
  if (pruneLeaf?.(nodeOrLeaf)) {
136
136
  mapSet(node, path[p]);
137
137
  }
@@ -160,7 +160,7 @@ const getPoolFunctions = () => {
160
160
  return [
161
161
  (reuse) => (reuse ? arrayShift(pool) : null) ?? EMPTY_STRING + nextId++,
162
162
  (id) => {
163
- if (test(INTEGER, id) && arrayLength(pool) < 1e3) {
163
+ if (test(INTEGER, id) && size(pool) < 1e3) {
164
164
  arrayPush(pool, id);
165
165
  }
166
166
  },
@@ -170,7 +170,7 @@ const getPoolFunctions = () => {
170
170
  const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
171
171
  const leaves = [];
172
172
  const deep = (node, p) =>
173
- p == arrayLength(path)
173
+ p == size(path)
174
174
  ? arrayPush(leaves, node)
175
175
  : path[p] === null
176
176
  ? collForEach(node, (node2) => deep(node2, p + 1))
@@ -222,8 +222,8 @@ const getListenerFunctions = (getThing) => {
222
222
  mapGet(allListeners, id),
223
223
  ([listener, , path = [], pathGetters, extraArgsGetter]) => {
224
224
  const callWithIds = (...ids) => {
225
- const index = arrayLength(ids);
226
- index == arrayLength(path)
225
+ const index = size(ids);
226
+ index == size(path)
227
227
  ? listener(thing, ...ids, ...extraArgsGetter(ids))
228
228
  : isUndefined(path[index])
229
229
  ? arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
@@ -41,13 +41,14 @@ const isString = (thing) => getTypeOf(thing) == STRING;
41
41
  const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
42
42
  const isArray = (thing) => Array.isArray(thing);
43
43
  const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
44
+ const size = (arrayOrString) => arrayOrString.length;
44
45
  const test = (regex, subject) => regex.test(subject);
45
46
  const getUndefined = () => void 0;
46
47
 
47
48
  const arrayHas = (array, value) => array.includes(value);
48
49
  const arrayEvery = (array, cb) => array.every(cb);
49
50
  const arrayIsEqual = (array1, array2) =>
50
- arrayLength(array1) === arrayLength(array2) &&
51
+ size(array1) === size(array2) &&
51
52
  arrayEvery(array1, (value1, index) => array2[index] === value1);
52
53
  const arrayIsSorted = (array, sorter) =>
53
54
  arrayEvery(
@@ -58,8 +59,7 @@ const arraySort = (array, sorter) => array.sort(sorter);
58
59
  const arrayForEach = (array, cb) => array.forEach(cb);
59
60
  const arrayMap = (array, cb) => array.map(cb);
60
61
  const arraySum = (array) => arrayReduce(array, (i, j) => i + j, 0);
61
- const arrayLength = (array) => array.length;
62
- const arrayIsEmpty = (array) => arrayLength(array) == 0;
62
+ const arrayIsEmpty = (array) => size(array) == 0;
63
63
  const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
64
64
  const arrayClear = (array, to) => array.splice(0, to);
65
65
  const arrayPush = (array, ...values) => array.push(...values);
@@ -81,7 +81,7 @@ const objDel = (obj, id) => {
81
81
  };
82
82
  const objMap = (obj, cb) =>
83
83
  arrayMap(object.entries(obj), ([id, value]) => cb(value, id));
84
- const objSize = (obj) => arrayLength(objIds(obj));
84
+ const objSize = (obj) => size(objIds(obj));
85
85
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
86
86
 
87
87
  const collSizeN = (collSizer) => (coll) =>
@@ -149,10 +149,10 @@ const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
149
149
  (ensureLeaf ? mapEnsure : mapGet)(
150
150
  node,
151
151
  path[p],
152
- p > arrayLength(path) - 2 ? ensureLeaf : mapNew,
152
+ p > size(path) - 2 ? ensureLeaf : mapNew,
153
153
  ),
154
154
  (nodeOrLeaf) => {
155
- if (p > arrayLength(path) - 2) {
155
+ if (p > size(path) - 2) {
156
156
  if (pruneLeaf?.(nodeOrLeaf)) {
157
157
  mapSet(node, path[p]);
158
158
  }
@@ -364,7 +364,7 @@ const getPoolFunctions = () => {
364
364
  return [
365
365
  (reuse) => (reuse ? arrayShift(pool) : null) ?? EMPTY_STRING + nextId++,
366
366
  (id) => {
367
- if (test(INTEGER, id) && arrayLength(pool) < 1e3) {
367
+ if (test(INTEGER, id) && size(pool) < 1e3) {
368
368
  arrayPush(pool, id);
369
369
  }
370
370
  },
@@ -374,7 +374,7 @@ const getPoolFunctions = () => {
374
374
  const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
375
375
  const leaves = [];
376
376
  const deep = (node, p) =>
377
- p == arrayLength(path)
377
+ p == size(path)
378
378
  ? arrayPush(leaves, node)
379
379
  : path[p] === null
380
380
  ? collForEach(node, (node2) => deep(node2, p + 1))
@@ -426,8 +426,8 @@ const getListenerFunctions = (getThing) => {
426
426
  mapGet(allListeners, id),
427
427
  ([listener, , path = [], pathGetters, extraArgsGetter]) => {
428
428
  const callWithIds = (...ids) => {
429
- const index = arrayLength(ids);
430
- index == arrayLength(path)
429
+ const index = size(ids);
430
+ index == size(path)
431
431
  ? listener(thing, ...ids, ...extraArgsGetter(ids))
432
432
  : isUndefined(path[index])
433
433
  ? arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
@@ -482,11 +482,11 @@ const createCheckpoints = getCreateFunction((store) => {
482
482
  };
483
483
  const clearCheckpointIds = (checkpointIds, to) =>
484
484
  arrayForEach(
485
- arrayClear(checkpointIds, to ?? arrayLength(checkpointIds)),
485
+ arrayClear(checkpointIds, to ?? size(checkpointIds)),
486
486
  clearCheckpointId,
487
487
  );
488
488
  const trimBackwardsIds = () =>
489
- clearCheckpointIds(backwardIds, arrayLength(backwardIds) - backwardIdsSize);
489
+ clearCheckpointIds(backwardIds, size(backwardIds) - backwardIdsSize);
490
490
  const storeChanged = () =>
491
491
  ifNotUndefined(currentId, () => {
492
492
  arrayPush(backwardIds, currentId);
@@ -575,8 +575,8 @@ const createCheckpoints = getCreateFunction((store) => {
575
575
  checkpointsChanged = 0;
576
576
  }
577
577
  };
578
- const setSize = (size) => {
579
- backwardIdsSize = size;
578
+ const setSize = (size2) => {
579
+ backwardIdsSize = size2;
580
580
  trimBackwardsIds();
581
581
  return checkpoints;
582
582
  };
@@ -1256,7 +1256,7 @@ const createQueries = getCreateFunction((store) => {
1256
1256
  const havings = [];
1257
1257
  const select = (arg1, arg2) => {
1258
1258
  const selectEntry = isFunction(arg1)
1259
- ? [arrayLength(selectEntries) + EMPTY_STRING, arg1]
1259
+ ? [size(selectEntries) + EMPTY_STRING, arg1]
1260
1260
  : [
1261
1261
  isUndefined(arg2) ? arg1 : arg2,
1262
1262
  (getTableCell) => getTableCell(arg1, arg2),
@@ -1630,6 +1630,7 @@ const createQueries = getCreateFunction((store) => {
1630
1630
  ...slice(args, 0, argumentCount),
1631
1631
  (_store, ...listenerArgs) =>
1632
1632
  args[argumentCount](queries, ...listenerArgs),
1633
+ true,
1633
1634
  );
1634
1635
  },
1635
1636
  );
@@ -31,6 +31,7 @@ const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
31
31
  const isString = (thing) => getTypeOf(thing) == STRING;
32
32
  const isArray = (thing) => Array.isArray(thing);
33
33
  const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
34
+ const size = (arrayOrString) => arrayOrString.length;
34
35
  const promiseAll = async (promises) => promise.all(promises);
35
36
 
36
37
  const getCellOrValueType = (cell) => {
@@ -45,7 +46,6 @@ const arraySort = (array, sorter) => array.sort(sorter);
45
46
  const arrayForEach = (array, cb) => array.forEach(cb);
46
47
  const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
47
48
  const arrayMap = (array, cb) => array.map(cb);
48
- const arrayLength = (array) => array.length;
49
49
  const arrayFilter = (array, cb) => array.filter(cb);
50
50
  const arrayPush = (array, ...values) => array.push(...values);
51
51
  const arrayPop = (array) => array.pop();
@@ -59,7 +59,7 @@ const isObject = (obj) =>
59
59
  isInstanceOf(obj, object) && obj.constructor == object;
60
60
  const objMap = (obj, cb) =>
61
61
  arrayMap(object.entries(obj), ([id, value]) => cb(value, id));
62
- const objSize = (obj) => arrayLength(objIds(obj));
62
+ const objSize = (obj) => size(objIds(obj));
63
63
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
64
64
 
65
65
  const collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;
@@ -250,7 +250,7 @@ const mapUnique = (map, id, value, index = 1) => {
250
250
  };
251
251
  const formatJsDoc = (file) =>
252
252
  file.replace(JSDOC, (_, indent, text) => {
253
- const lineLength = 77 - length(indent);
253
+ const lineLength = 77 - size(indent);
254
254
  return `${indent}/**
255
255
  ${text.replace(
256
256
  new RegExp(`([^\\n]{1,${lineLength}})(\\s|$)`, 'g'),
@@ -258,7 +258,6 @@ ${text.replace(
258
258
  `,
259
259
  )}${indent} */`;
260
260
  });
261
- const length = (str) => str.length;
262
261
  const flat = (array) => array.flat(1e3);
263
262
  const camel = (str, firstCap = 0) =>
264
263
  arrayJoin(
@@ -2872,8 +2871,8 @@ const createTools = getCreateFunction((store) => {
2872
2871
  totalTables,
2873
2872
  totalRows,
2874
2873
  totalCells,
2875
- totalValues: arrayLength(store.getValueIds()),
2876
- jsonLength: length(store.getJson()),
2874
+ totalValues: size(store.getValueIds()),
2875
+ jsonLength: size(store.getJson()),
2877
2876
  ...(detail ? {detail: {tables}} : {}),
2878
2877
  };
2879
2878
  };
@@ -2909,7 +2908,7 @@ const createTools = getCreateFunction((store) => {
2909
2908
  collForEach(cellsMeta, ([type, , [, maxValue], count], cellId) => {
2910
2909
  tablesSchema[tableId][cellId] = {
2911
2910
  [TYPE]: type,
2912
- ...(count == arrayLength(rowIds) ? {[DEFAULT]: maxValue} : {}),
2911
+ ...(count == size(rowIds) ? {[DEFAULT]: maxValue} : {}),
2913
2912
  };
2914
2913
  });
2915
2914
  return 1;
@@ -80,6 +80,7 @@ const isString = (thing) => getTypeOf(thing) == STRING;
80
80
  const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
81
81
  const isArray = (thing) => Array.isArray(thing);
82
82
  const slice = (arrayOrString, start, end) => arrayOrString.slice(start, end);
83
+ const size = (arrayOrString) => arrayOrString.length;
83
84
  const test = (regex, subject) => regex.test(subject);
84
85
 
85
86
  const {
@@ -108,14 +109,13 @@ const getIndexStoreTableId = (indexes, indexId) => [
108
109
  const arrayHas = (array, value) => array.includes(value);
109
110
  const arrayEvery = (array, cb) => array.every(cb);
110
111
  const arrayIsEqual = (array1, array2) =>
111
- arrayLength(array1) === arrayLength(array2) &&
112
+ size(array1) === size(array2) &&
112
113
  arrayEvery(array1, (value1, index) => array2[index] === value1);
113
114
  const arraySort = (array, sorter) => array.sort(sorter);
114
115
  const arrayForEach = (array, cb) => array.forEach(cb);
115
116
  const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
116
117
  const arrayMap = (array, cb) => array.map(cb);
117
- const arrayLength = (array) => array.length;
118
- const arrayIsEmpty = (array) => arrayLength(array) == 0;
118
+ const arrayIsEmpty = (array) => size(array) == 0;
119
119
  const arrayReduce = (array, cb, initial) => array.reduce(cb, initial);
120
120
  const arrayPush = (array, ...values) => array.push(...values);
121
121
  const arrayShift = (array) => array.shift();
@@ -135,7 +135,7 @@ const objDel = (obj, id) => {
135
135
  };
136
136
  const objMap = (obj, cb) =>
137
137
  arrayMap(object.entries(obj), ([id, value]) => cb(value, id));
138
- const objSize = (obj) => arrayLength(objIds(obj));
138
+ const objSize = (obj) => size(objIds(obj));
139
139
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
140
140
 
141
141
  const jsonString = (obj) =>
@@ -1552,10 +1552,10 @@ const visitTree = (node, path, ensureLeaf, pruneLeaf, p = 0) =>
1552
1552
  (ensureLeaf ? mapEnsure : mapGet)(
1553
1553
  node,
1554
1554
  path[p],
1555
- p > arrayLength(path) - 2 ? ensureLeaf : mapNew,
1555
+ p > size(path) - 2 ? ensureLeaf : mapNew,
1556
1556
  ),
1557
1557
  (nodeOrLeaf) => {
1558
- if (p > arrayLength(path) - 2) {
1558
+ if (p > size(path) - 2) {
1559
1559
  if (pruneLeaf?.(nodeOrLeaf)) {
1560
1560
  mapSet(node, path[p]);
1561
1561
  }
@@ -1757,7 +1757,7 @@ const getPoolFunctions = () => {
1757
1757
  return [
1758
1758
  (reuse) => (reuse ? arrayShift(pool) : null) ?? EMPTY_STRING + nextId++,
1759
1759
  (id) => {
1760
- if (test(INTEGER, id) && arrayLength(pool) < 1e3) {
1760
+ if (test(INTEGER, id) && size(pool) < 1e3) {
1761
1761
  arrayPush(pool, id);
1762
1762
  }
1763
1763
  },
@@ -1767,7 +1767,7 @@ const getPoolFunctions = () => {
1767
1767
  const getWildcardedLeaves = (deepIdSet, path = [EMPTY_STRING]) => {
1768
1768
  const leaves = [];
1769
1769
  const deep = (node, p) =>
1770
- p == arrayLength(path)
1770
+ p == size(path)
1771
1771
  ? arrayPush(leaves, node)
1772
1772
  : path[p] === null
1773
1773
  ? collForEach(node, (node2) => deep(node2, p + 1))
@@ -1819,8 +1819,8 @@ const getListenerFunctions = (getThing) => {
1819
1819
  mapGet(allListeners, id),
1820
1820
  ([listener, , path = [], pathGetters, extraArgsGetter]) => {
1821
1821
  const callWithIds = (...ids) => {
1822
- const index = arrayLength(ids);
1823
- index == arrayLength(path)
1822
+ const index = size(ids);
1823
+ index == size(path)
1824
1824
  ? listener(thing, ...ids, ...extraArgsGetter(ids))
1825
1825
  : isUndefined(path[index])
1826
1826
  ? arrayForEach(pathGetters[index]?.(...ids) ?? [], (id2) =>
@@ -26,11 +26,11 @@ const ifNotUndefined = (value, then, otherwise) =>
26
26
  isUndefined(value) ? otherwise?.() : then(value);
27
27
  const isString = (thing) => getTypeOf(thing) == STRING;
28
28
  const isArray = (thing) => Array.isArray(thing);
29
+ const size = (arrayOrString) => arrayOrString.length;
29
30
  const getUndefined = () => void 0;
30
31
 
31
32
  const arrayMap = (array, cb) => array.map(cb);
32
- const arrayLength = (array) => array.length;
33
- const arrayIsEmpty = (array) => arrayLength(array) == 0;
33
+ const arrayIsEmpty = (array) => size(array) == 0;
34
34
 
35
35
  const object = Object;
36
36
  const objIds = object.keys;
@@ -1 +1 @@
1
- const e=e=>null==e,l=(l,n,t)=>e(l)?null==t?void 0:t():n(l),n=(e,l)=>e.includes(l),t=(e,l)=>e.forEach(l),r=e=>e.length,o=e=>0==r(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,n,t,o,u=0)=>l((t?g:C)(e,n[u],u>r(n)-2?t:p),(l=>{if(u>r(n)-2)return(null==o?void 0:o(l))&&f(e,n[u]),l;const s=k(l,n,t,o,u+1);return c(l)&&f(e,n[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(),I=p(),M=1;const b=p(),j=p(),[x,B,F]=(n=>{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)&&r(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,...n)=>t(((e,l=[""])=>{const n=[],o=(e,s)=>s==r(l)?u(n,e):null===l[s]?v(e,(e=>o(e,s+1))):t([l[s],null],(l=>o(C(e,l),s+1)));return o(e,0),n})(e,l),(e=>v(e,(e=>C(a,e)[0](o,...null!=l?l:[],...n))))),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))),n=>l(C(a,n),(([l,,n=[],u,s])=>{const i=(...d)=>{var a,c;const v=r(d);v==r(n)?l(o,...d,...s(d)):e(n[v])?t(null!=(c=null==(a=u[v])?void 0:a.call(u,...d))?c:[],(e=>i(...d,e))):i(...d,n[v])};i()}))]})(),O=p(),T=p(),W=[],$=[],m=(l,n)=>{M=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])))})),M=1},q=e=>{f(O,e),f(T,e),B(j,[e])},D=(e,l)=>t(((e,l)=>e.splice(0,l))(e,null!=l?l:r(e)),q),G=()=>D(W,r(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(M){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(M){H();const e=g(I,l,(()=>[t,void 0]));e[1]=n,e[0]===n&&c(f(I,l))&&J(),U()}})),P=(l="")=>(e(y)&&(y=""+z++,f(O,y,[A,I]),Y(y,l),A=p(),I=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&&(B(b),E=0)},X=e=>{const l=P(e);return U(),l},Y=(e,l)=>(Z(e)&&C(T,e)!==l&&(f(T,e,l),B(j,[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 t=n(W,l)?Q:n($,l)?R:null;for(;!e(t)&&l!=y;)t();return U(),_},addCheckpointIdsListener:e=>x(e,b),addCheckpointListener:(e,l)=>x(l,j,[e]),delListener:e=>(F(e),_),clear:()=>(D(W),D($),e(y)||q(y),y=void 0,z=0,X(),_),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,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(),I=p(),M=1;const b=p(),j=p(),[x,B,F]=(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)=>{M=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])))})),M=1},q=e=>{f(O,e),f(T,e),B(j,[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(M){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(M){H();const e=g(I,l,(()=>[t,void 0]));e[1]=n,e[0]===n&&c(f(I,l))&&J(),U()}})),P=(l="")=>(e(y)&&(y=""+z++,f(O,y,[A,I]),Y(y,l),A=p(),I=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&&(B(b),E=0)},X=e=>{const l=P(e);return U(),l},Y=(e,l)=>(Z(e)&&C(T,e)!==l&&(f(T,e,l),B(j,[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=>x(e,b),addCheckpointListener:(e,l)=>x(l,j,[e]),delListener:e=>(F(e),_),clear:()=>(D(W),D($),e(y)||q(y),y=void 0,z=0,X(),_),destroy:()=>{S.delListener(K),S.delListener(N)},getListenerStats:()=>({})};return d(_.clear())})(S)),y.get(S))})();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,n)=>e.every(n),d=(e,n)=>u(e,((l,t)=>0==t||n(e[t-1],l)<=0)),i=(e,n)=>e.sort(n),a=(e,n)=>e.forEach(n),c=e=>e.length,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>c(n)-2?l:x),(s=>{if(r>c(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)&&c(e)<1e3&&v(e,n)}]})(),u=x();return[(e,r,s,o=[],d=(()=>[]))=>{null!=l||(l=U);const i=t(1);return R(u,i,[e,r,s,o,d]),z(T(r,null!=s?s:[n],k),i),i},(e,t,...r)=>a(((e,l=[n])=>{const t=[],r=(e,n)=>n==c(l)?v(t,e):null===l[n]?S(e,(e=>r(e,n+1))):a([l[n],null],(l=>r(y(e,l),n+1)));return r(e,0),t})(e,t),(e=>S(e,(e=>y(u,e)[0](l,...null!=t?t:[],...r))))),e=>s(y(u,e),(([,l,t])=>(T(l,null!=t?t:[n],void 0,(n=>(w(n,e),f(n)?1:0))),R(u,e),o(e),t))),e=>s(y(u,e),(([e,,n=[],t,s])=>{const o=(...u)=>{var d,i;const v=c(u);v==c(n)?e(l,...u,...s(u)):r(n[v])?a(null!=(i=null==(d=t[v])?void 0:d.call(t,...u))?i:[],(e=>o(...u,e))):o(...u,n[v])};o()}))]})(),[W,$,q,B,F,G,H,,J,K,N,P]=((e,n,l,t,d)=>{const i=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 a(t,(n=>z(r,n)&&l&&e.callListener(n))),t},j=(n,...l)=>s(y(D,n),(t=>{a(0==c(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()),d(T))},O=e=>{R(v,e),R(h,e),R(A,e),R(C,e),j(e),d(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,d,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),a=y(g,n),I=i(t,n)?l(d(s,n)):void 0;var L,S;if(a===I||o(a)&&o(I)&&(S=I,c(L=a)===c(S)&&u(L,((e,n)=>S[n]===e)))||R(h,n,[a,I]),!r(v)){const e=y(w,n),l=i(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)&&a(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,a=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)=>a(y(h,n),y(h,l),e),l=[...y(T,e)];d(l,n)||(R(T,e,k(i(l,n))),z(p,e))}))),(L||g)&&!r(c)){const n=[...T];d(n,c)||(H(e,x(i(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=>{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};
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=()=>{},v=(e,n)=>e.forEach(n),c=e=>M(e,((e,n)=>e+n),0),h=e=>e.length,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>h(n)-2?t:x),(i=>{if(r>h(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)=>c(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=>c(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(),[c,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)&&h(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)=>v(((e,t=[n])=>{const l=[],r=(e,n)=>n==h(t)?f(l,e):null===t[n]?b(e,(e=>r(e,n+1))):v([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 a=h(u);a==h(n)?e(t,...u,...r(u)):o(n[a])?v(null!=(d=null==(s=l[a])?void 0:s.call(l,...u))?d:[],(e=>i(...u,e))):i(...u,n[a])};i()}))]})(),[C,F,O,W,$,q,B,,G,H,J,K]=((e,t,l,r,i)=>{const u=e.hasRow,a=x(),c=x(),M=x(),f=x(),g=x(),L=x(),k=(n,t,...l)=>{const r=T(L,n,A);return v(l,(n=>D(r,n)&&t&&e.callListener(n))),l},z=(n,...t)=>s(E(L,n),(l=>{v(0==h(t)?y(l):t,(n=>{e.delListener(n),I(l,n)})),w(l)&&S(L,n)})),N=(e,n)=>{S(a,e,n),m(c,e)||(S(c,e,t()),S(f,e,x()),S(g,e,x()),i(M))},j=e=>{S(a,e),S(c,e),S(f,e),S(g,e),z(e),i(M)};return[()=>e,()=>{return[...null!=(n=null==(e=a)?void 0:e.keys())?n:[]];var e,n},e=>R(c,e),e=>m(c,e),e=>E(a,e),e=>E(c,e),(e,n)=>S(c,e,n),N,(t,l,r,i,s)=>{N(t,l);const a=x(),c=x(),M=E(f,t),L=E(g,t),w=t=>{const r=n=>e.getCell(l,t,n),v=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(v===f||d(v)&&d(f)&&(w=f,h(m=v)===h(w)&&(y=(e,n)=>w[n]===e,m.every(y)))||S(a,t,[v,f]),!o(s)){const e=E(L,t),n=u(l,t)?s(r,t):void 0;e!=n&&S(c,t,n)}},y=e=>{r((()=>{b(a,(([,e],n)=>S(M,n,e))),b(c,((e,n)=>S(L,n,e)))}),a,c,M,L,e),p(a),p(c)};R(M,w),e.hasTable(l)&&v(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,a,0,c,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)=>c(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=>{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};
Binary file