tinybase 4.0.0-beta.4 → 4.0.0-beta.5

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 (269) hide show
  1. package/lib/cjs/persisters/persister-automerge.cjs +1 -0
  2. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-browser.cjs +1 -0
  4. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -0
  6. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-file.cjs +1 -0
  8. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-remote.cjs +1 -0
  10. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -0
  12. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -0
  14. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-yjs.cjs +1 -0
  16. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  17. package/lib/cjs/persisters.cjs +1 -1
  18. package/lib/cjs/persisters.cjs.gz +0 -0
  19. package/lib/cjs/store.cjs +1 -1
  20. package/lib/cjs/store.cjs.gz +0 -0
  21. package/lib/cjs/tinybase.cjs +1 -1
  22. package/lib/cjs/tinybase.cjs.gz +0 -0
  23. package/lib/cjs/tools.cjs +1 -1
  24. package/lib/cjs/tools.cjs.gz +0 -0
  25. package/lib/cjs/ui-react.cjs +1 -1
  26. package/lib/cjs/ui-react.cjs.gz +0 -0
  27. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -0
  28. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  29. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -0
  30. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  31. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -0
  32. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  33. package/lib/cjs-es6/persisters/persister-file.cjs +1 -0
  34. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  35. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -0
  36. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  37. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -0
  38. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  39. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -0
  40. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  41. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -0
  42. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  43. package/lib/cjs-es6/persisters.cjs +1 -1
  44. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  45. package/lib/cjs-es6/store.cjs +1 -1
  46. package/lib/cjs-es6/store.cjs.gz +0 -0
  47. package/lib/cjs-es6/tinybase.cjs +1 -1
  48. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  49. package/lib/cjs-es6/tools.cjs +1 -1
  50. package/lib/cjs-es6/tools.cjs.gz +0 -0
  51. package/lib/cjs-es6/ui-react.cjs +1 -1
  52. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  53. package/lib/debug/{persister-automerge.js → persisters/persister-automerge.js} +57 -30
  54. package/lib/debug/{persister-browser.js → persisters/persister-browser.js} +48 -19
  55. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +665 -0
  56. package/lib/debug/{persister-file.js → persisters/persister-file.js} +50 -24
  57. package/lib/debug/{persister-remote.js → persisters/persister-remote.js} +47 -18
  58. package/lib/debug/persisters/persister-sqlite-wasm.js +673 -0
  59. package/lib/debug/persisters/persister-sqlite3.js +676 -0
  60. package/lib/debug/{persister-yjs.js → persisters/persister-yjs.js} +48 -19
  61. package/lib/debug/persisters.js +46 -17
  62. package/lib/debug/store.js +77 -27
  63. package/lib/debug/tinybase.js +120 -43
  64. package/lib/debug/tools.js +121 -27
  65. package/lib/debug/ui-react.js +24 -0
  66. package/lib/es6/persisters/persister-automerge.js +1 -0
  67. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  68. package/lib/es6/persisters/persister-browser.js +1 -0
  69. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  70. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -0
  71. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  72. package/lib/es6/persisters/persister-file.js +1 -0
  73. package/lib/es6/persisters/persister-file.js.gz +0 -0
  74. package/lib/es6/persisters/persister-remote.js +1 -0
  75. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  76. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -0
  77. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  78. package/lib/es6/persisters/persister-sqlite3.js +1 -0
  79. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  80. package/lib/es6/persisters/persister-yjs.js +1 -0
  81. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  82. package/lib/es6/persisters.js +1 -1
  83. package/lib/es6/persisters.js.gz +0 -0
  84. package/lib/es6/store.js +1 -1
  85. package/lib/es6/store.js.gz +0 -0
  86. package/lib/es6/tinybase.js +1 -1
  87. package/lib/es6/tinybase.js.gz +0 -0
  88. package/lib/es6/tools.js +1 -1
  89. package/lib/es6/tools.js.gz +0 -0
  90. package/lib/es6/ui-react.js +1 -1
  91. package/lib/es6/ui-react.js.gz +0 -0
  92. package/lib/persisters/persister-automerge.js +1 -0
  93. package/lib/persisters/persister-automerge.js.gz +0 -0
  94. package/lib/persisters/persister-browser.js +1 -0
  95. package/lib/persisters/persister-browser.js.gz +0 -0
  96. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -0
  97. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  98. package/lib/persisters/persister-file.js +1 -0
  99. package/lib/persisters/persister-file.js.gz +0 -0
  100. package/lib/persisters/persister-remote.js +1 -0
  101. package/lib/persisters/persister-remote.js.gz +0 -0
  102. package/lib/persisters/persister-sqlite-wasm.js +1 -0
  103. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  104. package/lib/persisters/persister-sqlite3.js +1 -0
  105. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  106. package/lib/persisters/persister-yjs.js +1 -0
  107. package/lib/persisters/persister-yjs.js.gz +0 -0
  108. package/lib/persisters.js +1 -1
  109. package/lib/persisters.js.gz +0 -0
  110. package/lib/store.js +1 -1
  111. package/lib/store.js.gz +0 -0
  112. package/lib/tinybase.js +1 -1
  113. package/lib/tinybase.js.gz +0 -0
  114. package/lib/tools.js +1 -1
  115. package/lib/tools.js.gz +0 -0
  116. package/lib/types/checkpoints.d.ts +0 -27
  117. package/lib/types/common.d.ts +0 -9
  118. package/lib/types/indexes.d.ts +0 -26
  119. package/lib/types/metrics.d.ts +0 -23
  120. package/lib/types/{persister-automerge.d.ts → persisters/persister-automerge.d.ts} +4 -6
  121. package/lib/types/{persister-browser.d.ts → persisters/persister-browser.d.ts} +2 -5
  122. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +95 -0
  123. package/lib/types/{persister-file.d.ts → persisters/persister-file.d.ts} +3 -5
  124. package/lib/types/{persister-remote.d.ts → persisters/persister-remote.d.ts} +2 -4
  125. package/lib/types/persisters/persister-sqlite-wasm.d.ts +102 -0
  126. package/lib/types/persisters/persister-sqlite3.d.ts +109 -0
  127. package/lib/types/{persister-yjs.d.ts → persisters/persister-yjs.d.ts} +4 -6
  128. package/lib/types/persisters.d.ts +517 -27
  129. package/lib/types/queries.d.ts +52 -127
  130. package/lib/types/relationships.d.ts +0 -26
  131. package/lib/types/store.d.ts +347 -196
  132. package/lib/types/tinybase.d.ts +0 -1
  133. package/lib/types/tools.d.ts +15 -28
  134. package/lib/types/ui-react.d.ts +196 -181
  135. package/lib/types/with-schemas/checkpoints.d.ts +5 -32
  136. package/lib/types/with-schemas/common.d.ts +0 -9
  137. package/lib/types/with-schemas/indexes.d.ts +9 -35
  138. package/lib/types/with-schemas/metrics.d.ts +9 -32
  139. package/lib/types/with-schemas/{persister-automerge.d.ts → persisters/persister-automerge.d.ts} +4 -6
  140. package/lib/types/with-schemas/{persister-browser.d.ts → persisters/persister-browser.d.ts} +2 -5
  141. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +105 -0
  142. package/lib/types/with-schemas/{persister-file.d.ts → persisters/persister-file.d.ts} +3 -5
  143. package/lib/types/with-schemas/{persister-remote.d.ts → persisters/persister-remote.d.ts} +2 -4
  144. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +113 -0
  145. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +119 -0
  146. package/lib/types/with-schemas/{persister-yjs.d.ts → persisters/persister-yjs.d.ts} +4 -6
  147. package/lib/types/with-schemas/persisters.d.ts +534 -29
  148. package/lib/types/with-schemas/queries.d.ts +61 -224
  149. package/lib/types/with-schemas/relationships.d.ts +9 -35
  150. package/lib/types/with-schemas/store.d.ts +488 -239
  151. package/lib/types/with-schemas/tinybase.d.ts +0 -1
  152. package/lib/types/with-schemas/tools.d.ts +19 -32
  153. package/lib/types/with-schemas/ui-react.d.ts +221 -186
  154. package/lib/ui-react.js +1 -1
  155. package/lib/ui-react.js.gz +0 -0
  156. package/lib/umd/persisters/persister-automerge.js +1 -0
  157. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  158. package/lib/umd/persisters/persister-browser.js +1 -0
  159. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  160. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -0
  161. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  162. package/lib/umd/persisters/persister-file.js +1 -0
  163. package/lib/umd/persisters/persister-file.js.gz +0 -0
  164. package/lib/umd/persisters/persister-remote.js +1 -0
  165. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  166. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -0
  167. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  168. package/lib/umd/persisters/persister-sqlite3.js +1 -0
  169. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  170. package/lib/umd/persisters/persister-yjs.js +1 -0
  171. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  172. package/lib/umd/persisters.js +1 -1
  173. package/lib/umd/persisters.js.gz +0 -0
  174. package/lib/umd/store.js +1 -1
  175. package/lib/umd/store.js.gz +0 -0
  176. package/lib/umd/tinybase.js +1 -1
  177. package/lib/umd/tinybase.js.gz +0 -0
  178. package/lib/umd/tools.js +1 -1
  179. package/lib/umd/tools.js.gz +0 -0
  180. package/lib/umd/ui-react.js +1 -1
  181. package/lib/umd/ui-react.js.gz +0 -0
  182. package/lib/umd-es6/persisters/persister-automerge.js +1 -0
  183. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  184. package/lib/umd-es6/persisters/persister-browser.js +1 -0
  185. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  186. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -0
  187. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  188. package/lib/umd-es6/persisters/persister-file.js +1 -0
  189. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  190. package/lib/umd-es6/persisters/persister-remote.js +1 -0
  191. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  192. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -0
  193. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  194. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -0
  195. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  196. package/lib/umd-es6/persisters/persister-yjs.js +1 -0
  197. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  198. package/lib/umd-es6/persisters.js +1 -1
  199. package/lib/umd-es6/persisters.js.gz +0 -0
  200. package/lib/umd-es6/store.js +1 -1
  201. package/lib/umd-es6/store.js.gz +0 -0
  202. package/lib/umd-es6/tinybase.js +1 -1
  203. package/lib/umd-es6/tinybase.js.gz +0 -0
  204. package/lib/umd-es6/tools.js +1 -1
  205. package/lib/umd-es6/tools.js.gz +0 -0
  206. package/lib/umd-es6/ui-react.js +1 -1
  207. package/lib/umd-es6/ui-react.js.gz +0 -0
  208. package/package.json +38 -21
  209. package/readme.md +3 -3
  210. package/lib/cjs/persister-automerge.cjs +0 -1
  211. package/lib/cjs/persister-automerge.cjs.gz +0 -0
  212. package/lib/cjs/persister-browser.cjs +0 -1
  213. package/lib/cjs/persister-browser.cjs.gz +0 -0
  214. package/lib/cjs/persister-file.cjs +0 -1
  215. package/lib/cjs/persister-file.cjs.gz +0 -0
  216. package/lib/cjs/persister-remote.cjs +0 -1
  217. package/lib/cjs/persister-remote.cjs.gz +0 -0
  218. package/lib/cjs/persister-yjs.cjs +0 -1
  219. package/lib/cjs/persister-yjs.cjs.gz +0 -0
  220. package/lib/cjs-es6/persister-automerge.cjs +0 -1
  221. package/lib/cjs-es6/persister-automerge.cjs.gz +0 -0
  222. package/lib/cjs-es6/persister-browser.cjs +0 -1
  223. package/lib/cjs-es6/persister-browser.cjs.gz +0 -0
  224. package/lib/cjs-es6/persister-file.cjs +0 -1
  225. package/lib/cjs-es6/persister-file.cjs.gz +0 -0
  226. package/lib/cjs-es6/persister-remote.cjs +0 -1
  227. package/lib/cjs-es6/persister-remote.cjs.gz +0 -0
  228. package/lib/cjs-es6/persister-yjs.cjs +0 -1
  229. package/lib/cjs-es6/persister-yjs.cjs.gz +0 -0
  230. package/lib/es6/persister-automerge.js +0 -1
  231. package/lib/es6/persister-automerge.js.gz +0 -0
  232. package/lib/es6/persister-browser.js +0 -1
  233. package/lib/es6/persister-browser.js.gz +0 -0
  234. package/lib/es6/persister-file.js +0 -1
  235. package/lib/es6/persister-file.js.gz +0 -0
  236. package/lib/es6/persister-remote.js +0 -1
  237. package/lib/es6/persister-remote.js.gz +0 -0
  238. package/lib/es6/persister-yjs.js +0 -1
  239. package/lib/es6/persister-yjs.js.gz +0 -0
  240. package/lib/persister-automerge.js +0 -1
  241. package/lib/persister-automerge.js.gz +0 -0
  242. package/lib/persister-browser.js +0 -1
  243. package/lib/persister-browser.js.gz +0 -0
  244. package/lib/persister-file.js +0 -1
  245. package/lib/persister-file.js.gz +0 -0
  246. package/lib/persister-remote.js +0 -1
  247. package/lib/persister-remote.js.gz +0 -0
  248. package/lib/persister-yjs.js +0 -1
  249. package/lib/persister-yjs.js.gz +0 -0
  250. package/lib/umd/persister-automerge.js +0 -1
  251. package/lib/umd/persister-automerge.js.gz +0 -0
  252. package/lib/umd/persister-browser.js +0 -1
  253. package/lib/umd/persister-browser.js.gz +0 -0
  254. package/lib/umd/persister-file.js +0 -1
  255. package/lib/umd/persister-file.js.gz +0 -0
  256. package/lib/umd/persister-remote.js +0 -1
  257. package/lib/umd/persister-remote.js.gz +0 -0
  258. package/lib/umd/persister-yjs.js +0 -1
  259. package/lib/umd/persister-yjs.js.gz +0 -0
  260. package/lib/umd-es6/persister-automerge.js +0 -1
  261. package/lib/umd-es6/persister-automerge.js.gz +0 -0
  262. package/lib/umd-es6/persister-browser.js +0 -1
  263. package/lib/umd-es6/persister-browser.js.gz +0 -0
  264. package/lib/umd-es6/persister-file.js +0 -1
  265. package/lib/umd-es6/persister-file.js.gz +0 -0
  266. package/lib/umd-es6/persister-remote.js +0 -1
  267. package/lib/umd-es6/persister-remote.js.gz +0 -0
  268. package/lib/umd-es6/persister-yjs.js +0 -1
  269. package/lib/umd-es6/persister-yjs.js.gz +0 -0
@@ -1,5 +1,7 @@
1
1
  const getTypeOf = (thing) => typeof thing;
2
+ const TINYBASE = 'tinybase';
2
3
  const EMPTY_STRING = '';
4
+ const COMMA = ',';
3
5
  const STRING = getTypeOf(EMPTY_STRING);
4
6
  const BOOLEAN = getTypeOf(true);
5
7
  const NUMBER = getTypeOf(0);
@@ -24,9 +26,9 @@ const VALUE_IDS = VALUE + IDS;
24
26
  const arrayEvery = (array, cb) => array.every(cb);
25
27
  const arraySort = (array, sorter) => array.sort(sorter);
26
28
  const arrayForEach = (array, cb) => array.forEach(cb);
29
+ const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
27
30
  const arrayMap = (array, cb) => array.map(cb);
28
31
  const arrayLength = (array) => array.length;
29
- const arrayIsEmpty = (array) => arrayLength(array) == 0;
30
32
  const arrayFilter = (array, cb) => array.filter(cb);
31
33
  const arrayPush = (array, ...values) => array.push(...values);
32
34
  const arrayPop = (array) => array.pop();
@@ -55,7 +57,8 @@ const isObject = (obj) =>
55
57
  isInstanceOf(obj, object) && obj.constructor == object;
56
58
  const objMap = (obj, cb) =>
57
59
  arrayMap(object.entries(obj), ([id, value]) => cb(value, id));
58
- const objIsEmpty = (obj) => isObject(obj) && arrayIsEmpty(objIds(obj));
60
+ const objSize = (obj) => arrayLength(objIds(obj));
61
+ const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
59
62
 
60
63
  const collHas = (coll, keyOrValue) => coll?.has(keyOrValue) ?? false;
61
64
  const collValues = (coll) => [...(coll?.values() ?? [])];
@@ -217,6 +220,7 @@ const NOUNS = [
217
220
  A + VALUE,
218
221
  'invalid Value changes',
219
222
  THE + 'sorted ' + ROW + SPACE + IDS,
223
+ THE + CELL + SPACE + IDS + ' anywhere',
220
224
  ];
221
225
  const CONTENT = [EMPTY_STRING, 'tabular ', 'keyed value '];
222
226
 
@@ -232,7 +236,7 @@ const NON_ALPHA = /[^A-Za-z]+/;
232
236
  const NON_ALPHANUMERIC = /[^A-Za-z0-9]+/;
233
237
  const JSDOC = /^( *)\/\*\* *(.*?) *\*\/$/gm;
234
238
  const substr = (str, start, end) => str.substring(start, end);
235
- const stringHasComma = (str) => str.includes(',');
239
+ const stringHasComma = (str) => str.includes(COMMA);
236
240
  const mapUnique = (map, id, value, index = 1) => {
237
241
  const uniqueId = `${id}${index == 1 ? '' : index}`;
238
242
  if (collHas(map, uniqueId)) {
@@ -253,10 +257,9 @@ ${text.replace(
253
257
  )}${indent} */`;
254
258
  });
255
259
  const length = (str) => str.length;
256
- const join = (array, sep = EMPTY_STRING) => array.join(sep);
257
260
  const flat = (array) => array.flat(1e3);
258
261
  const camel = (str, firstCap = 0) =>
259
- join(
262
+ arrayJoin(
260
263
  arrayMap(
261
264
  str.split(NON_ALPHANUMERIC),
262
265
  (word, w) =>
@@ -266,7 +269,7 @@ const camel = (str, firstCap = 0) =>
266
269
  );
267
270
  const snake = (str) =>
268
271
  upper(
269
- join(
272
+ arrayJoin(
270
273
  (str && !NON_ALPHA.test(str[0]) ? str : ' ' + str).split(
271
274
  NON_ALPHANUMERIC,
272
275
  ),
@@ -275,18 +278,18 @@ const snake = (str) =>
275
278
  );
276
279
  const comment = (doc) => `/** ${doc}. */`;
277
280
  const getParameterList = (...params) =>
278
- join(
281
+ arrayJoin(
279
282
  arrayFilter(params, (param) => param),
280
283
  ', ',
281
284
  );
282
- const getFieldTypeList = (...props) => '{' + join(props, '; ') + '}';
285
+ const getFieldTypeList = (...props) => '{' + arrayJoin(props, '; ') + '}';
283
286
  const getPropTypeList = (...props) =>
284
287
  getFieldTypeList(...arrayMap(props, (prop) => 'readonly ' + prop));
285
288
  const getCodeFunctions = () => {
286
289
  const allImports = [mapNew(), mapNew(), mapNew(), mapNew()];
287
290
  const types = mapNew();
288
291
  const constants = mapNew();
289
- const build = (...lines) => join(flat(lines), '\n');
292
+ const build = (...lines) => arrayJoin(flat(lines), '\n');
290
293
  const addImport = (location, source, ...items) =>
291
294
  arrayForEach(items, (item) =>
292
295
  arrayForEach([0, 1], (eachLocation) =>
@@ -307,6 +310,10 @@ const getCodeFunctions = () => {
307
310
  );
308
311
  const addConstant = (name, body) =>
309
312
  mapGet(constants, name) === body ? name : mapUnique(constants, name, body);
313
+ const getSortableImport = (importMaybeAs) => {
314
+ const as = importMaybeAs.indexOf(' as ');
315
+ return as != -1 ? importMaybeAs.substring(as + 4) : importMaybeAs;
316
+ };
310
317
  const getImports = (location = 0) =>
311
318
  arrayMap(
312
319
  [
@@ -314,8 +321,12 @@ const getCodeFunctions = () => {
314
321
  mapMap(
315
322
  allImports[location],
316
323
  (items, source) =>
317
- `import {${join(
318
- arraySort(collValues(items)),
324
+ `import {${arrayJoin(
325
+ arraySort(collValues(items), (import1, import2) =>
326
+ getSortableImport(import1) > getSortableImport(import2)
327
+ ? 1
328
+ : -1,
329
+ ),
319
330
  ', ',
320
331
  )}} from '${source}';`,
321
332
  ),
@@ -510,6 +521,12 @@ const getTypeFunctions = (
510
521
  getCallbackDoc(A + ROW + ' Id, and a ' + CELL + ' iterator'),
511
522
  tIdGeneric,
512
523
  );
524
+ const tableCellCallbackType = addType(
525
+ TABLE + CELL + CALLBACK,
526
+ `(cellId: ${cellIdType}<TId>, count: number) ` + RETURNS_VOID,
527
+ getCallbackDoc(A + CELL + ' Id, and count of how many times it appears'),
528
+ tIdGeneric,
529
+ );
513
530
  const tableIdForEachRowArrayType = addType(
514
531
  'TableIdForEachRowArray',
515
532
  `TId extends ${tableIdType} ? [tableId: TId, forEachRow: (rowCallback: ${rowCallbackType}<TId>)${RETURNS_VOID}] : never`,
@@ -555,6 +572,11 @@ const getTypeFunctions = (
555
572
  RETURNS_VOID,
556
573
  getListenerTypeDoc(3),
557
574
  );
575
+ const tableCellIdsListenerType = addType(
576
+ TABLE + CELL_IDS + LISTENER,
577
+ `(${storeParam}, tableId: ${tableIdType})` + RETURNS_VOID,
578
+ getListenerTypeDoc(14, 3),
579
+ );
558
580
  const rowIdsListenerType = addType(
559
581
  ROW_IDS + LISTENER,
560
582
  `(${storeParam}, tableId: ${tableIdType})` + RETURNS_VOID,
@@ -641,10 +663,12 @@ const getTypeFunctions = (
641
663
  cellType,
642
664
  cellCallbackType,
643
665
  rowCallbackType,
666
+ tableCellCallbackType,
644
667
  tableCallbackType,
645
668
  tablesListenerType,
646
669
  tableIdsListenerType,
647
670
  tableListenerType,
671
+ tableCellIdsListenerType,
648
672
  rowIdsListenerType,
649
673
  sortedRowIdsListenerType,
650
674
  rowListenerType,
@@ -873,8 +897,8 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
873
897
  `create${storeType} as create${storeType}Decl`,
874
898
  );
875
899
  if (!objIsEmpty(tablesSchema)) {
876
- addImport(0, 'tinybase', 'CellChange');
877
- addImport(null, 'tinybase', IDS);
900
+ addImport(0, TINYBASE, 'CellChange');
901
+ addImport(null, TINYBASE, IDS);
878
902
  const [
879
903
  tablesType,
880
904
  tablesWhenSetType,
@@ -887,10 +911,12 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
887
911
  _cellType,
888
912
  cellCallbackType,
889
913
  rowCallbackType,
914
+ tableCellCallbackType,
890
915
  tableCallbackType,
891
916
  tablesListenerType,
892
917
  tableIdsListenerType,
893
918
  tableListenerType,
919
+ tableCellIdsListenerType,
894
920
  rowIdsListenerType,
895
921
  sortedRowIdsListenerType,
896
922
  rowListenerType,
@@ -948,6 +974,14 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
948
974
  `a Row Id from the '${tableId}' Table, and a Cell iterator`,
949
975
  ),
950
976
  ),
977
+ // TableCellCallbackType
978
+ addType(
979
+ tableName + TABLE + CELL + CALLBACK,
980
+ tableCellCallbackType + tableIdGeneric,
981
+ getCallbackDoc(
982
+ `a Cell Id from anywhere in the '${tableId}' Table, and a count of how many times it appears`,
983
+ ),
984
+ ),
951
985
  ];
952
986
  mapSet(tablesTypes, tableId, tableTypes);
953
987
  addImport(1, moduleDefinition, ...tableTypes);
@@ -963,6 +997,7 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
963
997
  tablesListenerType,
964
998
  tableIdsListenerType,
965
999
  tableListenerType,
1000
+ tableCellIdsListenerType,
966
1001
  rowIdsListenerType,
967
1002
  sortedRowIdsListenerType,
968
1003
  rowListenerType,
@@ -978,6 +1013,7 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
978
1013
  tablesListenerType,
979
1014
  tableIdsListenerType,
980
1015
  tableListenerType,
1016
+ tableCellIdsListenerType,
981
1017
  rowIdsListenerType,
982
1018
  sortedRowIdsListenerType,
983
1019
  rowListenerType,
@@ -1028,6 +1064,7 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
1028
1064
  cellIdType2,
1029
1065
  cellCallbackType2,
1030
1066
  rowCallbackType2,
1067
+ tableCellCallbackType2,
1031
1068
  ] = mapGet(tablesTypes, tableId);
1032
1069
  arrayForEach(
1033
1070
  [
@@ -1047,6 +1084,24 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
1047
1084
  TABLE_ID + paramsInCall,
1048
1085
  ),
1049
1086
  );
1087
+ addProxyMethod(
1088
+ 0,
1089
+ tableName,
1090
+ TABLE + CELL_IDS,
1091
+ IDS,
1092
+ getIdsDoc(CELL, 'the whole of ' + getTableDoc(tableId)),
1093
+ EMPTY_STRING,
1094
+ TABLE_ID,
1095
+ );
1096
+ addProxyMethod(
1097
+ 5,
1098
+ tableName,
1099
+ TABLE + CELL,
1100
+ VOID,
1101
+ getForEachDoc(TABLE + CELL, 'the whole of ' + getTableDoc(tableId)),
1102
+ 'tableCellCallback: ' + tableCellCallbackType2,
1103
+ TABLE_ID + ', tableCellCallback as any',
1104
+ );
1050
1105
  addProxyMethod(
1051
1106
  0,
1052
1107
  tableName,
@@ -1151,6 +1206,17 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
1151
1206
  TABLE_ID + ', rowId, ' + CELL_ID + paramsInCall,
1152
1207
  ),
1153
1208
  );
1209
+ addProxyMethod(
1210
+ 1,
1211
+ tableName + cellName,
1212
+ TABLE + CELL,
1213
+ BOOLEAN,
1214
+ VERBS[1] +
1215
+ ` the '${cellId}' Cell anywhere in ` +
1216
+ getTableDoc(tableId),
1217
+ EMPTY_STRING,
1218
+ TABLE_ID + ', ' + CELL_ID,
1219
+ );
1154
1220
  },
1155
1221
  );
1156
1222
  });
@@ -1183,6 +1249,13 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
1183
1249
  `tableId: ${tableIdType} | null`,
1184
1250
  'tableId',
1185
1251
  );
1252
+ addProxyListener(
1253
+ TABLE + CELL_IDS,
1254
+ tableCellIdsListenerType,
1255
+ getListenerDoc(14, 3, 1),
1256
+ `tableId: ${tableIdType} | null`,
1257
+ 'tableId',
1258
+ );
1186
1259
  addProxyListener(
1187
1260
  ROW_IDS,
1188
1261
  rowIdsListenerType,
@@ -1223,7 +1296,7 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
1223
1296
  CELL,
1224
1297
  cellListenerType,
1225
1298
  getListenerDoc(7, 5),
1226
- `tableId: ${tableIdType} | null, rowId: IdOrNull, cellId: ${join(
1299
+ `tableId: ${tableIdType} | null, rowId: IdOrNull, cellId: ${arrayJoin(
1227
1300
  mapTablesSchema(
1228
1301
  (tableId) => mapGet(tablesTypes, tableId)?.[4] ?? EMPTY_STRING,
1229
1302
  ),
@@ -1266,7 +1339,7 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
1266
1339
  '})',
1267
1340
  );
1268
1341
  } else {
1269
- addImport(null, 'tinybase', TABLES);
1342
+ addImport(null, TINYBASE, TABLES);
1270
1343
  }
1271
1344
  if (!objIsEmpty(valuesSchema)) {
1272
1345
  const [
@@ -1394,7 +1467,7 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
1394
1467
  'valueId',
1395
1468
  );
1396
1469
  addImport(1, moduleDefinition, ...collValues(mapCellOrValueTypes));
1397
- addImport(0, 'tinybase', 'ValueChange');
1470
+ addImport(0, TINYBASE, 'ValueChange');
1398
1471
  arrayPush(
1399
1472
  createSteps,
1400
1473
  '.set' + VALUES + SCHEMA + '({',
@@ -1414,7 +1487,7 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
1414
1487
  '})',
1415
1488
  );
1416
1489
  } else {
1417
- addImport(null, 'tinybase', VALUES);
1490
+ addImport(null, TINYBASE, VALUES);
1418
1491
  }
1419
1492
  addProxyMethod(
1420
1493
  0,
@@ -1450,7 +1523,7 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
1450
1523
  );
1451
1524
  addImport(
1452
1525
  null,
1453
- 'tinybase',
1526
+ TINYBASE,
1454
1527
  'DoRollback',
1455
1528
  ID,
1456
1529
  'IdOrNull',
@@ -1458,7 +1531,7 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
1458
1531
  'Store',
1459
1532
  TRANSACTION_CHANGES,
1460
1533
  );
1461
- addImport(0, 'tinybase', 'Get' + TRANSACTION_CHANGES, 'GetTransactionLog');
1534
+ addImport(0, TINYBASE, 'Get' + TRANSACTION_CHANGES, 'GetTransactionLog');
1462
1535
  addProxyMethod(
1463
1536
  0,
1464
1537
  EMPTY_STRING,
@@ -1554,7 +1627,7 @@ const getStoreCoreApi = (tablesSchema, valuesSchema, module) => {
1554
1627
  'store',
1555
1628
  VERBS[0] + ' the underlying Store object',
1556
1629
  );
1557
- addImport(1, 'tinybase', 'createStore');
1630
+ addImport(1, TINYBASE, 'createStore');
1558
1631
  addImport(
1559
1632
  1,
1560
1633
  moduleDefinition,
@@ -1747,7 +1820,7 @@ const getStoreUiReactApi = (
1747
1820
  });
1748
1821
  addImport(
1749
1822
  null,
1750
- 'tinybase',
1823
+ TINYBASE,
1751
1824
  ID,
1752
1825
  'Store',
1753
1826
  CALLBACK,
@@ -1840,6 +1913,7 @@ const getStoreUiReactApi = (
1840
1913
  tablesListenerType,
1841
1914
  tableIdsListenerType,
1842
1915
  tableListenerType,
1916
+ tableCellIdsListenerType,
1843
1917
  rowIdsListenerType,
1844
1918
  sortedRowIdsListenerType,
1845
1919
  rowListenerType,
@@ -1856,6 +1930,7 @@ const getStoreUiReactApi = (
1856
1930
  tablesListenerType,
1857
1931
  tableIdsListenerType,
1858
1932
  tableListenerType,
1933
+ tableCellIdsListenerType,
1859
1934
  rowIdsListenerType,
1860
1935
  sortedRowIdsListenerType,
1861
1936
  rowListenerType,
@@ -1864,7 +1939,7 @@ const getStoreUiReactApi = (
1864
1939
  );
1865
1940
  addImport(0, moduleDefinition, cellIdType);
1866
1941
  addImport(1, moduleDefinition, storeType);
1867
- addImport(null, 'tinybase', IDS, 'IdOrNull');
1942
+ addImport(null, TINYBASE, IDS, 'IdOrNull');
1868
1943
  const tableView = addInternalFunction(
1869
1944
  'tableView',
1870
1945
  `{${storeInstance}, rowComponent, getRowComponentProps` +
@@ -1890,7 +1965,7 @@ const getStoreUiReactApi = (
1890
1965
  const getDefaultTableComponent = addInternalFunction(
1891
1966
  'getDefaultTableComponent',
1892
1967
  'tableId: Id',
1893
- join(
1968
+ arrayJoin(
1894
1969
  mapTablesSchema(
1895
1970
  (_, tableName, TABLE_ID) =>
1896
1971
  `tableId == ${TABLE_ID} ? ${tableName}TableView : `,
@@ -1900,11 +1975,11 @@ const getStoreUiReactApi = (
1900
1975
  const getDefaultCellComponent = addInternalFunction(
1901
1976
  'getDefaultCellComponent',
1902
1977
  'tableId: Id, cellId: Id',
1903
- join(
1978
+ arrayJoin(
1904
1979
  mapTablesSchema(
1905
1980
  (tableId, tableName, TABLE_ID) =>
1906
1981
  `tableId == ${TABLE_ID} ? ${
1907
- join(
1982
+ arrayJoin(
1908
1983
  mapCellSchema(
1909
1984
  tableId,
1910
1985
  (_, _2, _3, CELL_ID, cellName) =>
@@ -2088,6 +2163,14 @@ const getStoreUiReactApi = (
2088
2163
  EMPTY_STRING,
2089
2164
  TABLE_ID,
2090
2165
  );
2166
+ addProxyHook(
2167
+ tableName + TABLE + CELL_IDS,
2168
+ TABLE + CELL_IDS,
2169
+ IDS,
2170
+ getIdsDoc(CELL, 'the whole of ' + getTableDoc(tableId)) + AND_REGISTERS,
2171
+ EMPTY_STRING,
2172
+ TABLE_ID,
2173
+ );
2091
2174
  const useRowIds = addProxyHook(
2092
2175
  tableName + ROW_IDS,
2093
2176
  ROW_IDS,
@@ -2328,7 +2411,7 @@ const getStoreUiReactApi = (
2328
2411
  },
2329
2412
  );
2330
2413
  });
2331
- const cellIdsType = join(
2414
+ const cellIdsType = arrayJoin(
2332
2415
  mapTablesSchema(
2333
2416
  (tableId) => mapGet(tablesTypes, tableId)?.[4] ?? EMPTY_STRING,
2334
2417
  ),
@@ -2361,6 +2444,17 @@ const getStoreUiReactApi = (
2361
2444
  ),
2362
2445
  getListenerHookParamsInCall('tableId'),
2363
2446
  );
2447
+ addProxyHook(
2448
+ TABLE + CELL_IDS + LISTENER,
2449
+ TABLE + CELL_IDS + LISTENER,
2450
+ VOID,
2451
+ getListenerDoc(14, 3, 1),
2452
+ getListenerHookParams(
2453
+ tableCellIdsListenerType,
2454
+ `tableId: ${tableIdType} | null`,
2455
+ ),
2456
+ getListenerHookParamsInCall('tableId'),
2457
+ );
2364
2458
  addProxyHook(
2365
2459
  ROW_IDS + LISTENER,
2366
2460
  ROW_IDS + LISTENER,
@@ -2445,7 +2539,7 @@ const getStoreUiReactApi = (
2445
2539
  const getDefaultValueComponent = addInternalFunction(
2446
2540
  'getDefaultValueComponent',
2447
2541
  'valueId: Id',
2448
- join(
2542
+ arrayJoin(
2449
2543
  mapValuesSchema(
2450
2544
  (_, _2, _3, VALUE_ID, valueName) =>
2451
2545
  `valueId == ${VALUE_ID} ? ` + valueName + 'ValueView : ',
@@ -174,6 +174,13 @@ const useTableIds = (storeOrStoreId) =>
174
174
  useListenable(TABLE_IDS, useStoreOrStoreId(storeOrStoreId), [], []);
175
175
  const useTable = (tableId, storeOrStoreId) =>
176
176
  useListenable(TABLE, useStoreOrStoreId(storeOrStoreId), {}, [tableId]);
177
+ const useTableCellIds = (tableId, storeOrStoreId) =>
178
+ useListenable(
179
+ TABLE + CELL_IDS,
180
+ useStoreOrStoreId(storeOrStoreId),
181
+ [],
182
+ [tableId],
183
+ );
177
184
  const useRowIds = (tableId, storeOrStoreId) =>
178
185
  useListenable(ROW_IDS, useStoreOrStoreId(storeOrStoreId), [], [tableId]);
179
186
  const useSortedRowIds = (
@@ -435,6 +442,21 @@ const useTableListener = (
435
442
  [tableId],
436
443
  mutator,
437
444
  );
445
+ const useTableCellIdsListener = (
446
+ tableId,
447
+ listener,
448
+ listenerDeps,
449
+ mutator,
450
+ storeOrStoreId,
451
+ ) =>
452
+ useListener(
453
+ TABLE + CELL_IDS,
454
+ useStoreOrStoreId(storeOrStoreId),
455
+ listener,
456
+ listenerDeps,
457
+ [tableId],
458
+ mutator,
459
+ );
438
460
  const useRowIdsListener = (
439
461
  tableId,
440
462
  listener,
@@ -1479,6 +1501,8 @@ export {
1479
1501
  useSortedRowIdsListener,
1480
1502
  useStore,
1481
1503
  useTable,
1504
+ useTableCellIds,
1505
+ useTableCellIdsListener,
1482
1506
  useTableIds,
1483
1507
  useTableIdsListener,
1484
1508
  useTableListener,
@@ -0,0 +1 @@
1
+ const t=t=>null==t,e=(e,n,o)=>t(e)?null==o?void 0:o():n(e),n=Object,o=n.keys,i=n.freeze,l=(t,n)=>e(t,(t=>t[n])),r=(e,n)=>!t(l(e,n)),u=(t,e)=>(delete t[e],t),c=(t,e)=>((t,e)=>t.map(e))(n.entries(t),(([t,n])=>e(n,t))),d=t=>o(t).length,a=t=>(t=>t instanceof n&&t.constructor==n)(t)&&0==d(t);var s=(t,e,n)=>new Promise(((o,i)=>{var l=t=>{try{u(n.next(t))}catch(t){i(t)}},r=t=>{try{u(n.throw(t))}catch(t){i(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(l,r);u((n=n.apply(t,e)).next())})),v=(t,e,n)=>new Promise(((o,i)=>{var l=t=>{try{u(n.next(t))}catch(t){i(t)}},r=t=>{try{u(n.throw(t))}catch(t){i(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(l,r);u((n=n.apply(t,e)).next())}));const y=(t,e)=>[t[e].t,t[e].v],h=(e,n,o,i)=>{const l=t(n)?e:((t,e,n)=>(r(t,e)||(t[e]={}),t[e]))(e,n);let d;return c(o,((t,e)=>{i(l,e,t)&&(d=1)})),c(l,((t,e)=>{r(o,e)||(u(l,e),d=1)})),!t(n)&&a(l)&&u(e,n),d},f=(n,o,r="tinybase")=>(o.change((t=>t[r]={})),((n,d,f,p,g)=>{let A,L,m,S=0,x=0,C=0;const w=[],P=t=>s(void 0,null,(function*(){2!=S&&(S=1,yield t(),S=0)})),b={load:(...t)=>s(void 0,[...t],(function*(t={},e={}){return yield P((()=>s(void 0,null,(function*(){try{n.setContent(yield d())}catch(o){n.setContent([t,e])}})))),b})),startAutoLoad:(...t)=>s(void 0,[...t],(function*(t={},e={}){return b.stopAutoLoad(),yield b.load(t,e),C=1,m=(t=>{const e=({doc:e})=>t((()=>y(e,r)));return o.on("change",e),e})(((t,e)=>s(void 0,null,(function*(){yield P((()=>s(void 0,null,(function*(){var o;if(e)n.setTransactionChanges(e());else try{n.setContent(null!=(o=null==t?void 0:t())?o:yield d())}catch(t){}}))))})))),b})),stopAutoLoad:()=>{return C&&(t=m,o.removeListener("change",t),m=void 0,C=0),b;var t},save:i=>s(void 0,null,(function*(){return yield b.schedule((()=>s(void 0,null,(function*(){if(1!=S){S=2;try{yield((n,i)=>v(void 0,null,(function*(){return o.change((o=>((n,o,i,r)=>{((t,e)=>{a(t[e])&&(t[e]={t:{},v:{}})})(n,o);const[d,s]=y(n,o),v=()=>{f=1};let f=1;if(e(null==r?void 0:r(),(([n,o])=>{f=0,c(n,((n,o)=>f?0:t(n)?u(d,o):e(d[o],(o=>c(n,((n,i)=>f?0:t(n)?u(o,i):e(l(o,i),(e=>c(n,((n,o)=>t(n)?u(e,o):e[o]=n))),v)))),v))),c(o,((e,n)=>f?0:t(e)?u(s,n):s[n]=e))})),f){const[t,e]=i();h(d,void 0,t,((t,e,n)=>h(d,e,n,((t,e,n)=>h(t,e,n,((t,e,n)=>{if(l(t,e)!==n)return t[e]=n,1})))))),h(s,void 0,e,((t,e,n)=>{l(s,e)!==n&&(s[e]=n)}))}})(o,r,n,i)))})))(n.getContent,i)}catch(t){}S=0}})))),b})),startAutoSave:()=>s(void 0,null,(function*(){return yield b.stopAutoSave().save(),A=n.addDidFinishTransactionListener(((t,e)=>{const n=e();b.save((()=>n))})),b})),stopAutoSave:()=>(e(A,n.delListener),b),schedule:(...e)=>s(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(w,...e),yield s(void 0,null,(function*(){if(!x){for(x=1;!t((e=w,L=e.shift()));)try{yield L()}catch(t){}x=0}var e})),b})),getStore:()=>n,destroy:()=>b.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i(b)})(n,(()=>v(void 0,null,(function*(){return 2==d(o.doc[r])?y(o.doc,r):void 0})))));export{f as createAutomergePersister};
@@ -0,0 +1 @@
1
+ const t=JSON.parse,e=t=>null==t,n=Object.freeze;var o=(t,e,n)=>new Promise(((o,r)=>{var i=t=>{try{a(n.next(t))}catch(t){r(t)}},l=t=>{try{a(n.throw(t))}catch(t){r(t)}},a=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,l);a((n=n.apply(t,e)).next())})),r=(t,e,n)=>new Promise(((o,r)=>{var i=t=>{try{a(n.next(t))}catch(t){r(t)}},l=t=>{try{a(n.throw(t))}catch(t){r(t)}},a=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,l);a((n=n.apply(t,e)).next())}));const i="storage",l=globalThis.window,a=(a,u,s)=>((a,d,c,v,y)=>{let f,h,p,g=0,S=0,A=0;const L=[],m=t=>o(void 0,null,(function*(){2!=g&&(g=1,yield t(),g=0)})),w={load:(...t)=>o(void 0,[...t],(function*(t={},e={}){return yield m((()=>o(void 0,null,(function*(){try{a.setContent(yield d())}catch(n){a.setContent([t,e])}})))),w})),startAutoLoad:(...e)=>o(void 0,[...e],(function*(e={},n={}){return w.stopAutoLoad(),yield w.load(e,n),A=1,p=(e=>{const n=n=>{n.storageArea===s&&n.key===u&&e((()=>t(n.newValue)))};return l.addEventListener(i,n),n})(((t,e)=>o(void 0,null,(function*(){yield m((()=>o(void 0,null,(function*(){var n;if(e)a.setTransactionChanges(e());else try{a.setContent(null!=(n=null==t?void 0:t())?n:yield d())}catch(t){}}))))})))),w})),stopAutoLoad:()=>{return A&&(t=p,l.removeEventListener(i,t),p=void 0,A=0),w;var t},save:t=>o(void 0,null,(function*(){return yield w.schedule((()=>o(void 0,null,(function*(){if(1!=g){g=2;try{yield(t=a.getContent,r(void 0,null,(function*(){return s.setItem(u,(e=t(),JSON.stringify(e,((t,e)=>{return e instanceof Map?(n=(t,[e,n])=>(t[e]=n,t),o={},[...e].reduce(n,o)):e;var n,o}))));var e})))}catch(t){}g=0}var t})))),w})),startAutoSave:()=>o(void 0,null,(function*(){return yield w.stopAutoSave().save(),f=a.addDidFinishTransactionListener(((t,e)=>{const n=e();w.save((()=>n))})),w})),stopAutoSave:()=>{var t,n;return t=f,n=a.delListener,!!e(t)||n(t),w},schedule:(...t)=>o(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(L,...t),yield o(void 0,null,(function*(){if(!S){for(S=1;!e((t=L,h=t.shift()));)try{yield h()}catch(t){}S=0}var t})),w})),getStore:()=>a,destroy:()=>w.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return n(w)})(a,(()=>r(void 0,null,(function*(){return t(s.getItem(u))})))),u=(t,e)=>a(t,e,localStorage),s=(t,e)=>a(t,e,sessionStorage);export{u as createLocalPersister,s as createSessionPersister};
@@ -0,0 +1 @@
1
+ const e=e=>typeof e,n="tinybase",t=",",l=e(""),o=(e,n="")=>e.join(n),r=(e,n)=>e.map(n),i=e=>e.length,u=e=>0==i(e),a=(e,n)=>e.filter(n),d=(e,n,t)=>e.slice(n,t),s=(e,...n)=>e.push(...n),c=Promise,v=JSON.parse,y=(e,n)=>e instanceof n,f=e=>null==e,h=(e,n,t)=>f(e)?null==t?void 0:t():n(e),m=n=>e(n)==l,p=e=>{return n=function*(){return c.all(e)},new Promise(((e,t)=>{var l=e=>{try{r(n.next(e))}catch(e){t(e)}},o=e=>{try{r(n.throw(e))}catch(e){t(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,o);r((n=n.apply(void 0,null)).next())}));var n},E=Object,A=E.keys,L=E.freeze,T=(e=[])=>E.fromEntries(e),P=(...e)=>E.assign({},...e),w=(e,n)=>(delete e[n],e),x=(e,n)=>r(E.entries(e),(([e,t])=>n(t,e))),S=e=>E.values(e),C=e=>i(A(e)),N=e=>(e=>y(e,E)&&e.constructor==E)(e)&&0==C(e),O=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},R=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},g=(e,n)=>null==e?void 0:e.delete(n),b=e=>new Map(e),I=(e,n)=>null==e?void 0:e.get(n),_=(e,n)=>{var t;return r([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},D=(e,n,t)=>f(t)?(g(e,n),e):null==e?void 0:e.set(n,t),$=(e,n,t,l=D)=>(x(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!f(((e,n)=>h(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),M="_id",F=e=>`"${e.replace(/"/g,'""')}"`,B=e=>new Set(Array.isArray(e)||f(e)?e:[e]);var j=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const k="SELECT*FROM",J="FROM pragma_table_",U="WHERE",Y=U+" schema='main'AND type='table'AND name!='sqlite_schema'",q=e=>{const n=b(),l=(e,t)=>!f(I(I(n,e),t)),d=(l,a,d,c,v)=>j(void 0,null,(function*(){const y=B();x(null!=v?v:{},(e=>r(A(e),(e=>{return t=e,null==(n=y)?void 0:n.add(t);var n,t}))));const f=R(y);if(u(f)&&O(n,l)&&c)return yield e("DROP TABLE"+F(l)),void D(n,l);if(u(f)||O(n,l)){const t=I(n,l),o=B([...null!=(m=null==(h=t)?void 0:h.keys())?m:[]]);yield p([...r(f,(n=>j(void 0,null,(function*(){g(o,n)||(yield e(`ALTER TABLE${F(l)}ADD${F(n)}`),D(t,n,""))})))),...d?r(R(o),(n=>j(void 0,null,(function*(){n!=a&&(yield e(`ALTER TABLE${F(l)}DROP${F(n)}`),D(t,n))})))):[]])}else yield e(`CREATE TABLE${F(l)}(${F(a)} PRIMARY KEY ON CONFLICT REPLACE${o(r(f,(e=>t+F(e))))});`),D(n,l,b([[a,""],...r(f,(e=>[e,""]))]));var h,m;if(u(f))yield e("DELETE FROM"+F(l));else{const n=[],u=[],d=[];x(v,((e,t)=>{var l;s(n,`(?${l=i(f),",?".repeat(l)})`),s(u,t,...r(f,(n=>e[n]))),s(d,t)})),yield e("INSERT INTO"+F(l)+"("+F(a)+o(r(f,(e=>t+F(e))))+")VALUES"+o(n,t),u),yield e("DELETE FROM"+F(l)+U+F(a)+"NOT IN("+o(r(d,(()=>"?")),t)+")",d)}}));return[()=>j(void 0,null,(function*(){return $(n,T(yield p(r(yield e("SELECT name "+J+"list "+Y),(n=>j(void 0,[n],(function*({name:n}){return[n,T(r(yield e("SELECT name,type "+J+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,t,l)=>{return D(n,t,$((i=b,O(o=n,r=t)||D(o,r,i()),I(o,r)),l,((e,n,t)=>{t!=I(e,n)&&D(e,n,t)}),((e,n)=>D(e,n))));var o,r,i}),((e,t)=>D(n,t)))})),(n,t)=>j(void 0,null,(function*(){const o=l(n,t)?yield e(k+F(n)+U+F(t)+"=?",["_"]):[];return u(o)?null:w(o[0],t)})),(e,n,t,l)=>j(void 0,null,(function*(){return yield d(e,n,!0,!0,{[t]:l})})),(n,t)=>j(void 0,null,(function*(){return l(n,t)?T(a(r(yield e(k+F(n)),(e=>[e[t],w(e,t)])),(([e,n])=>!f(e)&&!N(n)))):null})),d]};var z=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const H=(e,n,t,l,o)=>{let r,i,u,a=0,d=0,c=0;const v=[],y=e=>z(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),m={load:(...t)=>z(void 0,[...t],(function*(t={},l={}){return yield y((()=>z(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}})))),m})),startAutoLoad:(...t)=>z(void 0,[...t],(function*(t={},o={}){return m.stopAutoLoad(),yield m.load(t,o),c=1,u=l(((t,l)=>z(void 0,null,(function*(){yield y((()=>z(void 0,null,(function*(){var o;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield n())}catch(e){}}))))})))),m})),stopAutoLoad:()=>(c&&(o(u),u=void 0,c=0),m),save:n=>z(void 0,null,(function*(){return yield m.schedule((()=>z(void 0,null,(function*(){if(1!=a){a=2;try{yield t(e.getContent,n)}catch(e){}a=0}})))),m})),startAutoSave:()=>z(void 0,null,(function*(){return yield m.stopAutoSave().save(),r=e.addDidFinishTransactionListener(((e,n)=>{const t=n();m.save((()=>t))})),m})),stopAutoSave:()=>(h(r,e.delListener),m),schedule:(...e)=>z(void 0,null,(function*(){return s(v,...e),yield z(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),m})),getStore:()=>e,destroy:()=>m.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return L(m)};var K=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const V="store",W=(e,t,l,o,{storeTableName:r=n})=>{const[i,u,a]=q(t),d=H(e,(()=>K(void 0,null,(function*(){var e;return yield i(),v((null!=(e=yield u(r,M))?e:{})[V])}))),(e=>K(void 0,null,(function*(){return d.schedule(i,(()=>K(void 0,null,(function*(){var n;yield a(r,M,"_",{[V]:(n=e(),JSON.stringify(n,((e,n)=>{return y(n,Map)?(t=(e,[n,t])=>(e[n]=t,e),l={},[...n].reduce(t,l)):n;var t,l})))})}))))}))),l,o);return d},G="rowIdColumnName",Q="tableId",X="tableName",Z={load:0,save:0,[X]:n+"_values"},ee=(e,n,t,l)=>{const o=b();return x(e,((e,r)=>{const i=d(S(P(n,m(e)?{[t]:e}:e)),0,C(n));f(i[0])||l(r,i[0])||D(o,r,i)})),o};var ne=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const te=(e,n,t,l,o)=>{const[r,i,[u,s,c]]=(({tables:{load:e={},save:n={}}={},values:t={}})=>{const l=d(S(P(Z,t)),0,C(Z)),o=l[2];return[ee(e,{[Q]:null,[G]:M},Q,(e=>e==o)),ee(n,{[X]:null,[G]:M,deleteEmptyColumns:0,deleteEmptyTable:0},X,((e,n)=>n==o)),l]})(o),[v,y,h,m,E]=q(n),A=H(e,(()=>ne(void 0,null,(function*(){yield v();const e=yield ne(void 0,null,(function*(){return T(a(yield p(_(r,((e,n)=>ne(void 0,[e,n],(function*([e,n],t){return[e,yield m(t,n)]}))))),(e=>e[1])))})),n=yield ne(void 0,null,(function*(){return u?yield y(c,M):{}}));return N(e)&&f(n)?void 0:[e,n]}))),(e=>ne(void 0,null,(function*(){const[n,t]=e();A.schedule(v,...(e=>_(i,(([n,t,l,o],r)=>()=>ne(void 0,null,(function*(){return yield E(n,t,l,o,e[r])})))))(n),(e=>s?()=>ne(void 0,null,(function*(){return yield h(c,M,"_",e)})):null)(t))}))),t,l);return A},le="json",oe="autoLoadIntervalSeconds",re={mode:le,[oe]:1},ie="pragma ",ue="data_version",ae="schema_version",de=(e,n,t,l,o)=>{const r=P(re,m(n)?{storeTableName:n}:null!=n?n:{});let i,u;return(r.mode==le?W:te)(e,t,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield t(ie+ue))[0][ue],l=(yield t(ie+ae))[0][ae];n==(null!=i?i:i=n)&&l==(null!=u?u:u=l)||(e(),i=n,u=l)}catch(e){}},new Promise(((e,t)=>{var l=e=>{try{r(n.next(e))}catch(e){t(e)}},o=e=>{try{r(n.throw(e))}catch(e){t(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,o);r((n=n.apply(void 0,null)).next())}));var n}),1e3*r[oe]),l(e)]),(([e,n])=>{clearInterval(e),i=u=null,o(n)}),r)},se=(e,n,t)=>de(e,t,((e,...t)=>{return l=[e,...t],o=function*(e,t=[]){return yield n.execO(e,t)},new Promise(((e,n)=>{var t=e=>{try{i(o.next(e))}catch(e){n(e)}},r=e=>{try{i(o.throw(e))}catch(e){n(e)}},i=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,r);i((o=o.apply(void 0,l)).next())}));var l,o}),(e=>n.onUpdate((()=>e()))),(e=>e()));export{se as createCrSqliteWasmPersister};
@@ -0,0 +1 @@
1
+ import{watch as t}from"fs";import{readFile as e,writeFile as n}from"fs/promises";const o="utf8",r=JSON.parse,i=t=>null==t,l=Object.freeze;var u=(t,e,n)=>new Promise(((o,r)=>{var i=t=>{try{u(n.next(t))}catch(t){r(t)}},l=t=>{try{u(n.throw(t))}catch(t){r(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,l);u((n=n.apply(t,e)).next())})),a=(t,e,n)=>new Promise(((o,r)=>{var i=t=>{try{u(n.next(t))}catch(t){r(t)}},l=t=>{try{u(n.throw(t))}catch(t){r(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,l);u((n=n.apply(t,e)).next())}));const s=(s,d)=>((e,r,s,c,v)=>{let f,y,h,p=0,m=0,A=0;const S=[],L=t=>u(void 0,null,(function*(){2!=p&&(p=1,yield t(),p=0)})),g={load:(...t)=>u(void 0,[...t],(function*(t={},n={}){return yield L((()=>u(void 0,null,(function*(){try{e.setContent(yield r())}catch(o){e.setContent([t,n])}})))),g})),startAutoLoad:(...n)=>u(void 0,[...n],(function*(n={},o={}){return g.stopAutoLoad(),yield g.load(n,o),A=1,i=(t,n)=>u(void 0,null,(function*(){yield L((()=>u(void 0,null,(function*(){var o;if(n)e.setTransactionChanges(n());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield r())}catch(t){}}))))})),h=t(d,(()=>i())),g;var i})),stopAutoLoad:()=>{return A&&(null==(t=h)||t.close(),h=void 0,A=0),g;var t},save:t=>u(void 0,null,(function*(){return yield g.schedule((()=>u(void 0,null,(function*(){if(1!=p){p=2;try{yield(t=e.getContent,a(void 0,null,(function*(){return yield n(d,(e=t(),JSON.stringify(e,((t,e)=>{return e instanceof Map?(n=(t,[e,n])=>(t[e]=n,t),o={},[...e].reduce(n,o)):e;var n,o}))),o);var e})))}catch(t){}p=0}var t})))),g})),startAutoSave:()=>u(void 0,null,(function*(){return yield g.stopAutoSave().save(),f=e.addDidFinishTransactionListener(((t,e)=>{const n=e();g.save((()=>n))})),g})),stopAutoSave:()=>{var t,n;return t=f,n=e.delListener,!!i(t)||n(t),g},schedule:(...t)=>u(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(S,...t),yield u(void 0,null,(function*(){if(!m){for(m=1;!i((t=S,y=t.shift()));)try{yield y()}catch(t){}m=0}var t})),g})),getStore:()=>e,destroy:()=>g.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return l(g)})(s,(()=>a(void 0,null,(function*(){return r(yield e(d,o))}))));export{s as createFilePersister};
@@ -0,0 +1 @@
1
+ const t=JSON.parse,e=t=>null==t,n=Object.freeze;var o=(t,e,n)=>new Promise(((o,r)=>{var i=t=>{try{a(n.next(t))}catch(t){r(t)}},l=t=>{try{a(n.throw(t))}catch(t){r(t)}},a=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,l);a((n=n.apply(t,e)).next())})),r=(t,e,n)=>new Promise(((o,r)=>{var i=t=>{try{a(n.next(t))}catch(t){r(t)}},l=t=>{try{a(n.throw(t))}catch(t){r(t)}},a=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,l);a((n=n.apply(t,e)).next())}));const i=t=>t.headers.get("ETag"),l=(l,a,u,d)=>{let c;return((t,l,s,v,y)=>{let f,h,p,A=0,S=0,g=0;const m=[],x=t=>o(void 0,null,(function*(){2!=A&&(A=1,yield t(),A=0)})),C={load:(...e)=>o(void 0,[...e],(function*(e={},n={}){return yield x((()=>o(void 0,null,(function*(){try{t.setContent(yield l())}catch(o){t.setContent([e,n])}})))),C})),startAutoLoad:(...n)=>o(void 0,[...n],(function*(n={},u={}){return C.stopAutoLoad(),yield C.load(n,u),g=1,s=(e,n)=>o(void 0,null,(function*(){yield x((()=>o(void 0,null,(function*(){var o;if(n)t.setTransactionChanges(n());else try{t.setContent(null!=(o=null==e?void 0:e())?o:yield l())}catch(t){}}))))})),p=setInterval((()=>r(void 0,null,(function*(){const t=yield fetch(a,{method:"HEAD"}),n=i(t);e(c)||e(n)||n==c||(c=n,s())}))),1e3*d),C;var s})),stopAutoLoad:()=>(g&&(clearInterval(p),p=void 0,g=0),C),save:e=>o(void 0,null,(function*(){return yield C.schedule((()=>o(void 0,null,(function*(){if(1!=A){A=2;try{yield(e=t.getContent,r(void 0,null,(function*(){return yield fetch(u,{method:"POST",headers:{"Content-Type":"application/json"},body:(t=e(),JSON.stringify(t,((t,e)=>{return e instanceof Map?(n=(t,[e,n])=>(t[e]=n,t),o={},[...e].reduce(n,o)):e;var n,o})))});var t})))}catch(t){}A=0}var e})))),C})),startAutoSave:()=>o(void 0,null,(function*(){return yield C.stopAutoSave().save(),f=t.addDidFinishTransactionListener(((t,e)=>{const n=e();C.save((()=>n))})),C})),stopAutoSave:()=>{var n,o;return n=f,o=t.delListener,!!e(n)||o(n),C},schedule:(...t)=>o(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(m,...t),yield o(void 0,null,(function*(){if(!S){for(S=1;!e((t=m,h=t.shift()));)try{yield h()}catch(t){}S=0}var t})),C})),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return n(C)})(l,(()=>r(void 0,null,(function*(){const e=yield fetch(a);return c=i(e),t(yield e.text())}))))};export{l as createRemotePersister};
@@ -0,0 +1 @@
1
+ const e=e=>typeof e,n="tinybase",t=",",l=e(""),r=(e,n="")=>e.join(n),o=(e,n)=>e.map(n),i=e=>e.length,u=e=>0==i(e),a=(e,n)=>e.filter(n),d=(e,n,t)=>e.slice(n,t),c=(e,...n)=>e.push(...n),s=Promise,v=JSON.parse,y=(e,n)=>e instanceof n,f=e=>null==e,h=(e,n,t)=>f(e)?null==t?void 0:t():n(e),p=n=>e(n)==l,m=e=>{return n=function*(){return s.all(e)},new Promise(((e,t)=>{var l=e=>{try{o(n.next(e))}catch(e){t(e)}},r=e=>{try{o(n.throw(e))}catch(e){t(e)}},o=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);o((n=n.apply(void 0,null)).next())}));var n},E=Object,A=E.keys,w=E.freeze,P=(e=[])=>E.fromEntries(e),b=(...e)=>E.assign({},...e),L=(e,n)=>(delete e[n],e),T=(e,n)=>o(E.entries(e),(([e,t])=>n(t,e))),O=e=>E.values(e),x=e=>i(A(e)),S=e=>(e=>y(e,E)&&e.constructor==E)(e)&&0==x(e),R=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},C=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},N=(e,n)=>null==e?void 0:e.delete(n),_=e=>new Map(e),g=(e,n)=>null==e?void 0:e.get(n),I=(e,n)=>{var t;return o([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},D=(e,n,t)=>f(t)?(N(e,n),e):null==e?void 0:e.set(n,t),$=(e,n,t,l=D)=>(T(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!f(((e,n)=>h(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),j="_id",M=e=>`"${e.replace(/"/g,'""')}"`,F=e=>new Set(Array.isArray(e)||f(e)?e:[e]);var k=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const B="SELECT*FROM",q="FROM pragma_table_",J="WHERE",V=J+" schema='main'AND type='table'AND name!='sqlite_schema'",Y=e=>{const n=_(),l=(e,t)=>!f(g(g(n,e),t)),d=(l,a,d,s,v)=>k(void 0,null,(function*(){const y=F();T(null!=v?v:{},(e=>o(A(e),(e=>{return t=e,null==(n=y)?void 0:n.add(t);var n,t}))));const f=C(y);if(u(f)&&R(n,l)&&s)return yield e("DROP TABLE"+M(l)),void D(n,l);if(u(f)||R(n,l)){const t=g(n,l),r=F([...null!=(p=null==(h=t)?void 0:h.keys())?p:[]]);yield m([...o(f,(n=>k(void 0,null,(function*(){N(r,n)||(yield e(`ALTER TABLE${M(l)}ADD${M(n)}`),D(t,n,""))})))),...d?o(C(r),(n=>k(void 0,null,(function*(){n!=a&&(yield e(`ALTER TABLE${M(l)}DROP${M(n)}`),D(t,n))})))):[]])}else yield e(`CREATE TABLE${M(l)}(${M(a)} PRIMARY KEY ON CONFLICT REPLACE${r(o(f,(e=>t+M(e))))});`),D(n,l,_([[a,""],...o(f,(e=>[e,""]))]));var h,p;if(u(f))yield e("DELETE FROM"+M(l));else{const n=[],u=[],d=[];T(v,((e,t)=>{var l;c(n,`(?${l=i(f),",?".repeat(l)})`),c(u,t,...o(f,(n=>e[n]))),c(d,t)})),yield e("INSERT INTO"+M(l)+"("+M(a)+r(o(f,(e=>t+M(e))))+")VALUES"+r(n,t),u),yield e("DELETE FROM"+M(l)+J+M(a)+"NOT IN("+r(o(d,(()=>"?")),t)+")",d)}}));return[()=>k(void 0,null,(function*(){return $(n,P(yield m(o(yield e("SELECT name "+q+"list "+V),(n=>k(void 0,[n],(function*({name:n}){return[n,P(o(yield e("SELECT name,type "+q+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,t,l)=>{return D(n,t,$((i=_,R(r=n,o=t)||D(r,o,i()),g(r,o)),l,((e,n,t)=>{t!=g(e,n)&&D(e,n,t)}),((e,n)=>D(e,n))));var r,o,i}),((e,t)=>D(n,t)))})),(n,t)=>k(void 0,null,(function*(){const r=l(n,t)?yield e(B+M(n)+J+M(t)+"=?",["_"]):[];return u(r)?null:L(r[0],t)})),(e,n,t,l)=>k(void 0,null,(function*(){return yield d(e,n,!0,!0,{[t]:l})})),(n,t)=>k(void 0,null,(function*(){return l(n,t)?P(a(o(yield e(B+M(n)),(e=>[e[t],L(e,t)])),(([e,n])=>!f(e)&&!S(n)))):null})),d]};var z=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const H=(e,n,t,l,r)=>{let o,i,u,a=0,d=0,s=0;const v=[],y=e=>z(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),p={load:(...t)=>z(void 0,[...t],(function*(t={},l={}){return yield y((()=>z(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}})))),p})),startAutoLoad:(...t)=>z(void 0,[...t],(function*(t={},r={}){return p.stopAutoLoad(),yield p.load(t,r),s=1,u=l(((t,l)=>z(void 0,null,(function*(){yield y((()=>z(void 0,null,(function*(){var r;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(r=null==t?void 0:t())?r:yield n())}catch(e){}}))))})))),p})),stopAutoLoad:()=>(s&&(r(u),u=void 0,s=0),p),save:n=>z(void 0,null,(function*(){return yield p.schedule((()=>z(void 0,null,(function*(){if(1!=a){a=2;try{yield t(e.getContent,n)}catch(e){}a=0}})))),p})),startAutoSave:()=>z(void 0,null,(function*(){return yield p.stopAutoSave().save(),o=e.addDidFinishTransactionListener(((e,n)=>{const t=n();p.save((()=>t))})),p})),stopAutoSave:()=>(h(o,e.delListener),p),schedule:(...e)=>z(void 0,null,(function*(){return c(v,...e),yield z(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),p})),getStore:()=>e,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return w(p)};var K=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const U="store",W=(e,t,l,r,{storeTableName:o=n})=>{const[i,u,a]=Y(t),d=H(e,(()=>K(void 0,null,(function*(){var e;return yield i(),v((null!=(e=yield u(o,j))?e:{})[U])}))),(e=>K(void 0,null,(function*(){return d.schedule(i,(()=>K(void 0,null,(function*(){var n;yield a(o,j,"_",{[U]:(n=e(),JSON.stringify(n,((e,n)=>{return y(n,Map)?(t=(e,[n,t])=>(e[n]=t,e),l={},[...n].reduce(t,l)):n;var t,l})))})}))))}))),l,r);return d},G="rowIdColumnName",Q="tableId",X="tableName",Z={load:0,save:0,[X]:n+"_values"},ee=(e,n,t,l)=>{const r=_();return T(e,((e,o)=>{const i=d(O(b(n,p(e)?{[t]:e}:e)),0,x(n));f(i[0])||l(o,i[0])||D(r,o,i)})),r};var ne=(e,n,t)=>new Promise(((l,r)=>{var o=e=>{try{u(t.next(e))}catch(e){r(e)}},i=e=>{try{u(t.throw(e))}catch(e){r(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(o,i);u((t=t.apply(e,n)).next())}));const te=(e,n,t,l,r)=>{const[o,i,[u,c,s]]=(({tables:{load:e={},save:n={}}={},values:t={}})=>{const l=d(O(b(Z,t)),0,x(Z)),r=l[2];return[ee(e,{[Q]:null,[G]:j},Q,(e=>e==r)),ee(n,{[X]:null,[G]:j,deleteEmptyColumns:0,deleteEmptyTable:0},X,((e,n)=>n==r)),l]})(r),[v,y,h,p,E]=Y(n),A=H(e,(()=>ne(void 0,null,(function*(){yield v();const e=yield ne(void 0,null,(function*(){return P(a(yield m(I(o,((e,n)=>ne(void 0,[e,n],(function*([e,n],t){return[e,yield p(t,n)]}))))),(e=>e[1])))})),n=yield ne(void 0,null,(function*(){return u?yield y(s,j):{}}));return S(e)&&f(n)?void 0:[e,n]}))),(e=>ne(void 0,null,(function*(){const[n,t]=e();A.schedule(v,...(e=>I(i,(([n,t,l,r],o)=>()=>ne(void 0,null,(function*(){return yield E(n,t,l,r,e[o])})))))(n),(e=>c?()=>ne(void 0,null,(function*(){return yield h(s,j,"_",e)})):null)(t))}))),t,l);return A},le="json",re="autoLoadIntervalSeconds",oe={mode:le,[re]:1},ie="pragma ",ue="data_version",ae="schema_version",de=(e,n,t,l,r)=>{const o=b(oe,p(n)?{storeTableName:n}:null!=n?n:{});let i,u;return(o.mode==le?W:te)(e,t,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield t(ie+ue))[0][ue],l=(yield t(ie+ae))[0][ae];n==(null!=i?i:i=n)&&l==(null!=u?u:u=l)||(e(),i=n,u=l)}catch(e){}},new Promise(((e,t)=>{var l=e=>{try{o(n.next(e))}catch(e){t(e)}},r=e=>{try{o(n.throw(e))}catch(e){t(e)}},o=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,r);o((n=n.apply(void 0,null)).next())}));var n}),1e3*o[re]),l(e)]),(([e,n])=>{clearInterval(e),i=u=null,r(n)}),o)};var ce=Object.defineProperty,se=Object.getOwnPropertySymbols,ve=Object.prototype.hasOwnProperty,ye=Object.prototype.propertyIsEnumerable,fe=(e,n,t)=>n in e?ce(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const he=(e,n,t,l)=>de(e,l,((e,...n)=>{return l=[e,...n],r=function*(e,n=[]){return t.exec(e,{bind:n,rowMode:"object",returnValue:"resultRows"}).map((e=>((e,n)=>{for(var t in n||(n={}))ve.call(n,t)&&fe(e,t,n[t]);if(se)for(var t of se(n))ye.call(n,t)&&fe(e,t,n[t]);return e})({},e)))},new Promise(((e,n)=>{var t=e=>{try{i(r.next(e))}catch(e){n(e)}},o=e=>{try{i(r.throw(e))}catch(e){n(e)}},i=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,o);i((r=r.apply(void 0,l)).next())}));var l,r}),(e=>n.capi.sqlite3_update_hook(t,(()=>e()),0)),(()=>n.capi.sqlite3_update_hook(t,(()=>0),0)));export{he as createSqliteWasmPersister};
@@ -0,0 +1 @@
1
+ const e=e=>typeof e,n="tinybase",t=",",l=e(""),o=(e,n="")=>e.join(n),r=(e,n)=>e.map(n),i=e=>e.length,u=e=>0==i(e),a=(e,n)=>e.filter(n),d=(e,n,t)=>e.slice(n,t),c=(e,...n)=>e.push(...n),s=Promise,v=JSON.parse,y=(e,n)=>e instanceof n,f=e=>null==e,h=(e,n,t)=>f(e)?null==t?void 0:t():n(e),p=n=>e(n)==l,m=e=>{return n=function*(){return s.all(e)},new Promise(((e,t)=>{var l=e=>{try{r(n.next(e))}catch(e){t(e)}},o=e=>{try{r(n.throw(e))}catch(e){t(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,o);r((n=n.apply(void 0,null)).next())}));var n},E=Object,A=E.keys,L=E.freeze,T=(e=[])=>E.fromEntries(e),P=(...e)=>E.assign({},...e),b=(e,n)=>(delete e[n],e),w=(e,n)=>r(E.entries(e),(([e,t])=>n(t,e))),O=e=>E.values(e),S=e=>i(A(e)),g=e=>(e=>y(e,E)&&e.constructor==E)(e)&&0==S(e),C=(e,n)=>{var t;return null!=(t=null==e?void 0:e.has(n))&&t},N=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},R=(e,n)=>null==e?void 0:e.delete(n),x=e=>new Map(e),I=(e,n)=>null==e?void 0:e.get(n),_=(e,n)=>{var t;return r([...null!=(t=null==e?void 0:e.entries())?t:[]],(([e,t])=>n(t,e)))},D=(e,n,t)=>f(t)?(R(e,n),e):null==e?void 0:e.set(n,t),$=(e,n,t,l=D)=>(w(n,((n,l)=>t(e,l,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,t)=>n(t)))})(e,(t=>((e,n)=>!f(((e,n)=>h(e,(e=>e[n])))(e,n)))(n,t)?0:l(e,t))),e),j="_id",M=e=>`"${e.replace(/"/g,'""')}"`,F=e=>new Set(Array.isArray(e)||f(e)?e:[e]);var B=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const k="SELECT*FROM",J="FROM pragma_table_",Y="WHERE",q=Y+" schema='main'AND type='table'AND name!='sqlite_schema'",z=e=>{const n=x(),l=(e,t)=>!f(I(I(n,e),t)),d=(l,a,d,s,v)=>B(void 0,null,(function*(){const y=F();w(null!=v?v:{},(e=>r(A(e),(e=>{return t=e,null==(n=y)?void 0:n.add(t);var n,t}))));const f=N(y);if(u(f)&&C(n,l)&&s)return yield e("DROP TABLE"+M(l)),void D(n,l);if(u(f)||C(n,l)){const t=I(n,l),o=F([...null!=(p=null==(h=t)?void 0:h.keys())?p:[]]);yield m([...r(f,(n=>B(void 0,null,(function*(){R(o,n)||(yield e(`ALTER TABLE${M(l)}ADD${M(n)}`),D(t,n,""))})))),...d?r(N(o),(n=>B(void 0,null,(function*(){n!=a&&(yield e(`ALTER TABLE${M(l)}DROP${M(n)}`),D(t,n))})))):[]])}else yield e(`CREATE TABLE${M(l)}(${M(a)} PRIMARY KEY ON CONFLICT REPLACE${o(r(f,(e=>t+M(e))))});`),D(n,l,x([[a,""],...r(f,(e=>[e,""]))]));var h,p;if(u(f))yield e("DELETE FROM"+M(l));else{const n=[],u=[],d=[];w(v,((e,t)=>{var l;c(n,`(?${l=i(f),",?".repeat(l)})`),c(u,t,...r(f,(n=>e[n]))),c(d,t)})),yield e("INSERT INTO"+M(l)+"("+M(a)+o(r(f,(e=>t+M(e))))+")VALUES"+o(n,t),u),yield e("DELETE FROM"+M(l)+Y+M(a)+"NOT IN("+o(r(d,(()=>"?")),t)+")",d)}}));return[()=>B(void 0,null,(function*(){return $(n,T(yield m(r(yield e("SELECT name "+J+"list "+q),(n=>B(void 0,[n],(function*({name:n}){return[n,T(r(yield e("SELECT name,type "+J+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,t,l)=>{return D(n,t,$((i=x,C(o=n,r=t)||D(o,r,i()),I(o,r)),l,((e,n,t)=>{t!=I(e,n)&&D(e,n,t)}),((e,n)=>D(e,n))));var o,r,i}),((e,t)=>D(n,t)))})),(n,t)=>B(void 0,null,(function*(){const o=l(n,t)?yield e(k+M(n)+Y+M(t)+"=?",["_"]):[];return u(o)?null:b(o[0],t)})),(e,n,t,l)=>B(void 0,null,(function*(){return yield d(e,n,!0,!0,{[t]:l})})),(n,t)=>B(void 0,null,(function*(){return l(n,t)?T(a(r(yield e(k+M(n)),(e=>[e[t],b(e,t)])),(([e,n])=>!f(e)&&!g(n)))):null})),d]};var H=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const K=(e,n,t,l,o)=>{let r,i,u,a=0,d=0,s=0;const v=[],y=e=>H(void 0,null,(function*(){2!=a&&(a=1,yield e(),a=0)})),p={load:(...t)=>H(void 0,[...t],(function*(t={},l={}){return yield y((()=>H(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([t,l])}})))),p})),startAutoLoad:(...t)=>H(void 0,[...t],(function*(t={},o={}){return p.stopAutoLoad(),yield p.load(t,o),s=1,u=l(((t,l)=>H(void 0,null,(function*(){yield y((()=>H(void 0,null,(function*(){var o;if(l)e.setTransactionChanges(l());else try{e.setContent(null!=(o=null==t?void 0:t())?o:yield n())}catch(e){}}))))})))),p})),stopAutoLoad:()=>(s&&(o(u),u=void 0,s=0),p),save:n=>H(void 0,null,(function*(){return yield p.schedule((()=>H(void 0,null,(function*(){if(1!=a){a=2;try{yield t(e.getContent,n)}catch(e){}a=0}})))),p})),startAutoSave:()=>H(void 0,null,(function*(){return yield p.stopAutoSave().save(),r=e.addDidFinishTransactionListener(((e,n)=>{const t=n();p.save((()=>t))})),p})),stopAutoSave:()=>(h(r,e.delListener),p),schedule:(...e)=>H(void 0,null,(function*(){return c(v,...e),yield H(void 0,null,(function*(){if(!d){for(d=1;!f((e=v,i=e.shift()));)try{yield i()}catch(e){}d=0}var e})),p})),getStore:()=>e,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return L(p)};var U=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const V="store",W=(e,t,l,o,{storeTableName:r=n})=>{const[i,u,a]=z(t),d=K(e,(()=>U(void 0,null,(function*(){var e;return yield i(),v((null!=(e=yield u(r,j))?e:{})[V])}))),(e=>U(void 0,null,(function*(){return d.schedule(i,(()=>U(void 0,null,(function*(){var n;yield a(r,j,"_",{[V]:(n=e(),JSON.stringify(n,((e,n)=>{return y(n,Map)?(t=(e,[n,t])=>(e[n]=t,e),l={},[...n].reduce(t,l)):n;var t,l})))})}))))}))),l,o);return d},G="rowIdColumnName",Q="tableId",X="tableName",Z={load:0,save:0,[X]:n+"_values"},ee=(e,n,t,l)=>{const o=x();return w(e,((e,r)=>{const i=d(O(P(n,p(e)?{[t]:e}:e)),0,S(n));f(i[0])||l(r,i[0])||D(o,r,i)})),o};var ne=(e,n,t)=>new Promise(((l,o)=>{var r=e=>{try{u(t.next(e))}catch(e){o(e)}},i=e=>{try{u(t.throw(e))}catch(e){o(e)}},u=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,i);u((t=t.apply(e,n)).next())}));const te=(e,n,t,l,o)=>{const[r,i,[u,c,s]]=(({tables:{load:e={},save:n={}}={},values:t={}})=>{const l=d(O(P(Z,t)),0,S(Z)),o=l[2];return[ee(e,{[Q]:null,[G]:j},Q,(e=>e==o)),ee(n,{[X]:null,[G]:j,deleteEmptyColumns:0,deleteEmptyTable:0},X,((e,n)=>n==o)),l]})(o),[v,y,h,p,E]=z(n),A=K(e,(()=>ne(void 0,null,(function*(){yield v();const e=yield ne(void 0,null,(function*(){return T(a(yield m(_(r,((e,n)=>ne(void 0,[e,n],(function*([e,n],t){return[e,yield p(t,n)]}))))),(e=>e[1])))})),n=yield ne(void 0,null,(function*(){return u?yield y(s,j):{}}));return g(e)&&f(n)?void 0:[e,n]}))),(e=>ne(void 0,null,(function*(){const[n,t]=e();A.schedule(v,...(e=>_(i,(([n,t,l,o],r)=>()=>ne(void 0,null,(function*(){return yield E(n,t,l,o,e[r])})))))(n),(e=>c?()=>ne(void 0,null,(function*(){return yield h(s,j,"_",e)})):null)(t))}))),t,l);return A},le="json",oe="autoLoadIntervalSeconds",re={mode:le,[oe]:1},ie="pragma ",ue="data_version",ae="schema_version",de=(e,n,t,l,o)=>{const r=P(re,p(n)?{storeTableName:n}:null!=n?n:{});let i,u;return(r.mode==le?W:te)(e,t,(e=>[setInterval((()=>{return n=function*(){try{const n=(yield t(ie+ue))[0][ue],l=(yield t(ie+ae))[0][ae];n==(null!=i?i:i=n)&&l==(null!=u?u:u=l)||(e(),i=n,u=l)}catch(e){}},new Promise(((e,t)=>{var l=e=>{try{r(n.next(e))}catch(e){t(e)}},o=e=>{try{r(n.throw(e))}catch(e){t(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(l,o);r((n=n.apply(void 0,null)).next())}));var n}),1e3*r[oe]),l(e)]),(([e,n])=>{clearInterval(e),i=u=null,o(n)}),r)};var ce=Object.defineProperty,se=Object.getOwnPropertySymbols,ve=Object.prototype.hasOwnProperty,ye=Object.prototype.propertyIsEnumerable,fe=(e,n,t)=>n in e?ce(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;const he="change",pe=(e,n,t)=>de(e,t,((e,t=[])=>new s(((l,o)=>n.all(e,t,((e,n)=>e?o(e):l(n.map((e=>((e,n)=>{for(var t in n||(n={}))ve.call(n,t)&&fe(e,t,n[t]);if(se)for(var t of se(n))ye.call(n,t)&&fe(e,t,n[t]);return e})({},e))))))))),(e=>{const t=()=>e();return n.on(he,t),t}),(e=>n.off(he,e)));export{pe as createSqlite3Persister};
@@ -0,0 +1 @@
1
+ import{Map as t}from"yjs";const e=t=>t.length,n=t=>t.shift(),o=t=>null==t,l=(t,e,n)=>o(t)?null==n?void 0:n():e(t),r=Object,i=r.freeze,u=(t=[])=>r.fromEntries(t),s=(t,e)=>!o(((t,e)=>l(t,(t=>t[e])))(t,e)),a=(t,e)=>((t,e)=>t.map(e))(r.entries(t),(([t,n])=>e(n,t))),d=(t,e,n)=>(s(t,e)||(t[e]=n()),t[e]);var c=(t,e,n)=>new Promise(((o,l)=>{var r=t=>{try{u(n.next(t))}catch(t){l(t)}},i=t=>{try{u(n.throw(t))}catch(t){l(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(r,i);u((n=n.apply(t,e)).next())}));const v=(t,e)=>((t,e)=>null==t?void 0:t.forEach(e))(t,((t,n)=>e(n,t)));var f=(t,e,n)=>new Promise(((o,l)=>{var r=t=>{try{u(n.next(t))}catch(t){l(t)}},i=t=>{try{u(n.throw(t))}catch(t){l(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(r,i);u((n=n.apply(t,e)).next())}));const h="t",y="delete",g=t=>[t.get(h),t.get("v")],p=(e,n,l,r)=>{var i;const u=o(n)?e:null!=(i=e.get(n))?i:e.set(n,new t);let d;return a(l,((t,e)=>{r(u,e,t)&&(d=1)})),u.forEach(((t,e)=>{s(l,e)||(u.delete(e),d=1)})),o(n)||u.size||e.delete(n),d},S=(r,s,S="tinybase")=>{const m=s.getMap(S);return((r,S,A,w,O)=>{let J,L,N,x=0,C=0,b=0;const z=[],E=t=>c(void 0,null,(function*(){2!=x&&(x=1,yield t(),x=0)})),P={load:(...t)=>c(void 0,[...t],(function*(t={},e={}){return yield E((()=>c(void 0,null,(function*(){try{r.setContent(yield S())}catch(n){r.setContent([t,e])}})))),P})),startAutoLoad:(...t)=>c(void 0,[...t],(function*(t={},o={}){return P.stopAutoLoad(),yield P.load(t,o),b=1,N=(t=>{const o=o=>t(void 0,(()=>((t,o)=>{if(1==e(o)&&(r=o[0].path,0==e(r)))return[t.get("t").toJSON(),t.get("v").toJSON()];var r;const[i,s]=g(t),a={},c={};return((t,e)=>{t.forEach((({path:t,changes:{keys:e}})=>n(t)==h?l(n(t),(o=>{const r=d(a,o,u),s=i.get(o);l(n(t),(t=>{const n=d(r,t,u),o=s.get(t);v(e,((t,{action:e})=>n[t]=e==y?null:o.get(t)))}),(()=>v(e,((t,{action:e})=>{var n;return r[t]=e==y?null:null==(n=s.get(t))?void 0:n.toJSON()}))))}),(()=>v(e,((t,{action:e})=>{var n;return a[t]=e==y?null:null==(n=i.get(t))?void 0:n.toJSON()})))):v(e,((t,{action:e})=>c[t]=e==y?null:s.get(t)))))})(o),[a,c]})(m,o)));return m.observeDeep(o),o})(((t,e)=>c(void 0,null,(function*(){yield E((()=>c(void 0,null,(function*(){var n;if(e)r.setTransactionChanges(e());else try{r.setContent(null!=(n=null==t?void 0:t())?n:yield S())}catch(t){}}))))})))),P})),stopAutoLoad:()=>{return b&&(t=N,m.unobserveDeep(t),N=void 0,b=0),P;var t},save:e=>c(void 0,null,(function*(){return yield P.schedule((()=>c(void 0,null,(function*(){if(1!=x){x=2;try{yield((e,n)=>f(void 0,null,(function*(){return s.transact((()=>((e,n,r)=>{(e=>{e.size||(e.set(h,new t),e.set("v",new t))})(e);const[i,u]=g(e),s=()=>{d=1};let d=1;if(l(null==r?void 0:r(),(([t,e])=>{d=0,a(t,((t,e)=>d?0:o(t)?i.delete(e):l(i.get(e),(e=>a(t,((t,n)=>d?0:o(t)?e.delete(n):l(e.get(n),(e=>a(t,((t,n)=>o(t)?e.delete(n):e.set(n,t)))),s)))),s))),a(e,((t,e)=>d?0:o(t)?u.delete(e):u.set(e,t)))})),d){const[t,e]=n();p(i,void 0,t,((t,e,n)=>p(i,e,n,((t,e,n)=>p(t,e,n,((t,e,n)=>{if(t.get(e)!==n)return t.set(e,n),1})))))),p(u,void 0,e,((t,e,n)=>{u.get(e)!==n&&u.set(e,n)}))}})(m,e,n)))})))(r.getContent,e)}catch(t){}x=0}})))),P})),startAutoSave:()=>c(void 0,null,(function*(){return yield P.stopAutoSave().save(),J=r.addDidFinishTransactionListener(((t,e)=>{const n=e();P.save((()=>n))})),P})),stopAutoSave:()=>(l(J,r.delListener),P),schedule:(...t)=>c(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(z,...t),yield c(void 0,null,(function*(){if(!C){for(C=1;!o(L=n(z));)try{yield L()}catch(t){}C=0}})),P})),getStore:()=>r,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i(P)})(r,(()=>f(void 0,null,(function*(){return m.size?[m.get(h).toJSON(),m.get("v").toJSON()]:void 0}))))};export{S as createYjsPersister};
@@ -1 +1 @@
1
- const t=Object.freeze;var e=(t,e,n)=>new Promise(((o,l)=>{var i=t=>{try{u(n.next(t))}catch(t){l(t)}},r=t=>{try{u(n.throw(t))}catch(t){l(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,r);u((n=n.apply(t,e)).next())}));const n=(n,o,l,i,r)=>{let u,a,d=0,s=!1;const v=t=>e(void 0,null,(function*(){2!=d&&(d=1,yield t(),d=0)})),c={load:(...t)=>e(void 0,[...t],(function*(t={},l={}){return yield v((()=>e(void 0,null,(function*(){let e;try{e=yield o()}catch(t){}n.setContent(null!=e?e:[t,l])})))),c})),startAutoLoad:(...t)=>e(void 0,[...t],(function*(t={},l={}){return c.stopAutoLoad(),yield c.load(t,l),s=!0,a=i(((t,l)=>e(void 0,null,(function*(){yield v((()=>e(void 0,null,(function*(){var e;if(l)n.setTransactionChanges(l());else try{n.setContent(null!=(e=null==t?void 0:t())?e:yield o())}catch(t){}}))))})))),c})),stopAutoLoad:()=>(s&&(r(a),a=void 0,s=!1),c),save:t=>e(void 0,null,(function*(){return 1!=d&&(d=2,yield l(n.getContent,t),d=0),c})),startAutoSave:()=>e(void 0,null,(function*(){return yield c.stopAutoSave().save(),u=n.addDidFinishTransactionListener(((t,e)=>c.save(e))),c})),stopAutoSave:()=>{var t,e;return t=u,e=n.delListener,null==t||e(t),c},getStore:()=>n,destroy:()=>c.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return t(c)};export{n as createCustomPersister};
1
+ const t=t=>null==t,e=Object.freeze;var n=(t,e,n)=>new Promise(((o,i)=>{var l=t=>{try{r(n.next(t))}catch(t){i(t)}},u=t=>{try{r(n.throw(t))}catch(t){i(t)}},r=t=>t.done?o(t.value):Promise.resolve(t.value).then(l,u);r((n=n.apply(t,e)).next())}));const o=(o,i,l,u,r)=>{let d,a,s,c=0,v=0,y=0;const f=[],h=t=>n(void 0,null,(function*(){2!=c&&(c=1,yield t(),c=0)})),p={load:(...t)=>n(void 0,[...t],(function*(t={},e={}){return yield h((()=>n(void 0,null,(function*(){try{o.setContent(yield i())}catch(n){o.setContent([t,e])}})))),p})),startAutoLoad:(...t)=>n(void 0,[...t],(function*(t={},e={}){return p.stopAutoLoad(),yield p.load(t,e),y=1,s=u(((t,e)=>n(void 0,null,(function*(){yield h((()=>n(void 0,null,(function*(){var n;if(e)o.setTransactionChanges(e());else try{o.setContent(null!=(n=null==t?void 0:t())?n:yield i())}catch(t){}}))))})))),p})),stopAutoLoad:()=>(y&&(r(s),s=void 0,y=0),p),save:t=>n(void 0,null,(function*(){return yield p.schedule((()=>n(void 0,null,(function*(){if(1!=c){c=2;try{yield l(o.getContent,t)}catch(t){}c=0}})))),p})),startAutoSave:()=>n(void 0,null,(function*(){return yield p.stopAutoSave().save(),d=o.addDidFinishTransactionListener(((t,e)=>{const n=e();p.save((()=>n))})),p})),stopAutoSave:()=>{var e,n;return e=d,n=o.delListener,!!t(e)||n(e),p},schedule:(...e)=>n(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(f,...e),yield n(void 0,null,(function*(){if(!v){for(v=1;!t((e=f,a=e.shift()));)try{yield a()}catch(t){}v=0}var e})),p})),getStore:()=>o,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return e(p)};export{o as createCustomPersister};
Binary file