tinybase 4.3.22 → 4.3.24

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 (221) hide show
  1. package/lib/cjs/persisters/persister-automerge.cjs +1 -1
  2. package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-browser.cjs +1 -1
  4. package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  6. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  8. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-file.cjs +1 -1
  10. package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
  12. package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
  14. package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  16. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  18. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  20. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  22. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  23. package/lib/cjs/persisters.cjs +1 -1
  24. package/lib/cjs/persisters.cjs.gz +0 -0
  25. package/lib/cjs/store.cjs +1 -1
  26. package/lib/cjs/store.cjs.gz +0 -0
  27. package/lib/cjs/tinybase.cjs +1 -1
  28. package/lib/cjs/tinybase.cjs.gz +0 -0
  29. package/lib/cjs/tools.cjs +1 -1
  30. package/lib/cjs/tools.cjs.gz +0 -0
  31. package/lib/cjs/ui-react-dom-debug.cjs +1 -1
  32. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  33. package/lib/cjs/ui-react.cjs +1 -1
  34. package/lib/cjs/ui-react.cjs.gz +0 -0
  35. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  36. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  37. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  38. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  39. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  40. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  41. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  42. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  43. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  44. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  45. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  46. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  47. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  48. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  49. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  50. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  51. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  52. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  53. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  54. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  55. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  56. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  57. package/lib/cjs-es6/persisters.cjs +1 -1
  58. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  59. package/lib/cjs-es6/store.cjs +1 -1
  60. package/lib/cjs-es6/store.cjs.gz +0 -0
  61. package/lib/cjs-es6/tinybase.cjs +1 -1
  62. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  63. package/lib/cjs-es6/tools.cjs +1 -1
  64. package/lib/cjs-es6/tools.cjs.gz +0 -0
  65. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  66. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  67. package/lib/cjs-es6/ui-react.cjs +1 -1
  68. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  69. package/lib/debug/persisters/persister-automerge.js +9 -2
  70. package/lib/debug/persisters/persister-browser.js +9 -1
  71. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +9 -1
  72. package/lib/debug/persisters/persister-expo-sqlite.js +9 -1
  73. package/lib/debug/persisters/persister-file.js +9 -1
  74. package/lib/debug/persisters/persister-indexed-db.js +9 -2
  75. package/lib/debug/persisters/persister-partykit-client.js +9 -1
  76. package/lib/debug/persisters/persister-remote.js +9 -1
  77. package/lib/debug/persisters/persister-sqlite-wasm.js +9 -1
  78. package/lib/debug/persisters/persister-sqlite3.js +10 -2
  79. package/lib/debug/persisters/persister-yjs.js +9 -2
  80. package/lib/debug/persisters.js +9 -2
  81. package/lib/debug/store.js +9 -1
  82. package/lib/debug/tinybase.js +9 -1
  83. package/lib/debug/tools.js +11 -2
  84. package/lib/debug/ui-react-dom.js +9 -1
  85. package/lib/debug/ui-react.js +90 -72
  86. package/lib/es6/persisters/persister-automerge.js +1 -1
  87. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  88. package/lib/es6/persisters/persister-browser.js +1 -1
  89. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  90. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  91. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  92. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  93. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  94. package/lib/es6/persisters/persister-file.js +1 -1
  95. package/lib/es6/persisters/persister-file.js.gz +0 -0
  96. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  97. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  98. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  99. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  100. package/lib/es6/persisters/persister-remote.js +1 -1
  101. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  102. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  103. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  104. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  105. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  106. package/lib/es6/persisters/persister-yjs.js +1 -1
  107. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  108. package/lib/es6/persisters.js +1 -1
  109. package/lib/es6/persisters.js.gz +0 -0
  110. package/lib/es6/store.js +1 -1
  111. package/lib/es6/store.js.gz +0 -0
  112. package/lib/es6/tinybase.js +1 -1
  113. package/lib/es6/tinybase.js.gz +0 -0
  114. package/lib/es6/tools.js +1 -1
  115. package/lib/es6/tools.js.gz +0 -0
  116. package/lib/es6/ui-react-dom-debug.js +1 -1
  117. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  118. package/lib/es6/ui-react.js +1 -1
  119. package/lib/es6/ui-react.js.gz +0 -0
  120. package/lib/persisters/persister-automerge.js +1 -1
  121. package/lib/persisters/persister-automerge.js.gz +0 -0
  122. package/lib/persisters/persister-browser.js +1 -1
  123. package/lib/persisters/persister-browser.js.gz +0 -0
  124. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  125. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  126. package/lib/persisters/persister-expo-sqlite.js +1 -1
  127. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  128. package/lib/persisters/persister-file.js +1 -1
  129. package/lib/persisters/persister-file.js.gz +0 -0
  130. package/lib/persisters/persister-indexed-db.js +1 -1
  131. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  132. package/lib/persisters/persister-partykit-client.js +1 -1
  133. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  134. package/lib/persisters/persister-remote.js +1 -1
  135. package/lib/persisters/persister-remote.js.gz +0 -0
  136. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  137. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  138. package/lib/persisters/persister-sqlite3.js +1 -1
  139. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  140. package/lib/persisters/persister-yjs.js +1 -1
  141. package/lib/persisters/persister-yjs.js.gz +0 -0
  142. package/lib/persisters.js +1 -1
  143. package/lib/persisters.js.gz +0 -0
  144. package/lib/store.js +1 -1
  145. package/lib/store.js.gz +0 -0
  146. package/lib/tinybase.js +1 -1
  147. package/lib/tinybase.js.gz +0 -0
  148. package/lib/tools.js +1 -1
  149. package/lib/tools.js.gz +0 -0
  150. package/lib/ui-react.js +1 -1
  151. package/lib/ui-react.js.gz +0 -0
  152. package/lib/umd/persisters/persister-automerge.js +1 -1
  153. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  154. package/lib/umd/persisters/persister-browser.js +1 -1
  155. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  156. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  157. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  158. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  159. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  160. package/lib/umd/persisters/persister-file.js +1 -1
  161. package/lib/umd/persisters/persister-file.js.gz +0 -0
  162. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  163. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  164. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  165. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  166. package/lib/umd/persisters/persister-remote.js +1 -1
  167. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  168. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  169. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  170. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  171. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  172. package/lib/umd/persisters/persister-yjs.js +1 -1
  173. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  174. package/lib/umd/persisters.js +1 -1
  175. package/lib/umd/persisters.js.gz +0 -0
  176. package/lib/umd/store.js +1 -1
  177. package/lib/umd/store.js.gz +0 -0
  178. package/lib/umd/tinybase.js +1 -1
  179. package/lib/umd/tinybase.js.gz +0 -0
  180. package/lib/umd/tools.js +1 -1
  181. package/lib/umd/tools.js.gz +0 -0
  182. package/lib/umd/ui-react-dom-debug.js +1 -1
  183. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  184. package/lib/umd/ui-react.js +1 -1
  185. package/lib/umd/ui-react.js.gz +0 -0
  186. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  187. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  188. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  189. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  190. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  191. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  192. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  193. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  194. package/lib/umd-es6/persisters/persister-file.js +1 -1
  195. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  196. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  197. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  198. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  199. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  200. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  201. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  202. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  203. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  204. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  205. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  206. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  207. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  208. package/lib/umd-es6/persisters.js +1 -1
  209. package/lib/umd-es6/persisters.js.gz +0 -0
  210. package/lib/umd-es6/store.js +1 -1
  211. package/lib/umd-es6/store.js.gz +0 -0
  212. package/lib/umd-es6/tinybase.js +1 -1
  213. package/lib/umd-es6/tinybase.js.gz +0 -0
  214. package/lib/umd-es6/tools.js +1 -1
  215. package/lib/umd-es6/tools.js.gz +0 -0
  216. package/lib/umd-es6/ui-react-dom-debug.js +1 -1
  217. package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
  218. package/lib/umd-es6/ui-react.js +1 -1
  219. package/lib/umd-es6/ui-react.js.gz +0 -0
  220. package/package.json +25 -25
  221. package/readme.md +2 -2
@@ -31,10 +31,18 @@ const collForEach = (coll, cb) => coll?.forEach(cb);
31
31
  const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
32
32
 
33
33
  const object = Object;
34
+ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
34
35
  const objIds = object.keys;
35
36
  const objFreeze = object.freeze;
36
37
  const isObject = (obj) =>
37
- isInstanceOf(obj, object) && obj.constructor == object;
38
+ !isUndefined(obj) &&
39
+ ifNotUndefined(
40
+ getPrototypeOf(obj),
41
+ (objPrototype) =>
42
+ objPrototype == object.prototype ||
43
+ isUndefined(getPrototypeOf(objPrototype)),
44
+ () => true,
45
+ );
38
46
  const objNew = (entries = []) => object.fromEntries(entries);
39
47
  const objMerge = (...objs) => object.assign({}, ...objs);
40
48
  const objGet = (obj, id) => ifNotUndefined(obj, (obj2) => obj2[id]);
@@ -32,10 +32,18 @@ const collForEach = (coll, cb) => coll?.forEach(cb);
32
32
  const collDel = (coll, keyOrValue) => coll?.delete(keyOrValue);
33
33
 
34
34
  const object = Object;
35
+ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
35
36
  const objIds = object.keys;
36
37
  const objFreeze = object.freeze;
37
38
  const isObject = (obj) =>
38
- isInstanceOf(obj, object) && obj.constructor == object;
39
+ !isUndefined(obj) &&
40
+ ifNotUndefined(
41
+ getPrototypeOf(obj),
42
+ (objPrototype) =>
43
+ objPrototype == object.prototype ||
44
+ isUndefined(getPrototypeOf(objPrototype)),
45
+ () => true,
46
+ );
39
47
  const objNew = (entries = []) => object.fromEntries(entries);
40
48
  const objMerge = (...objs) => object.assign({}, ...objs);
41
49
  const objGet = (obj, id) => ifNotUndefined(obj, (obj2) => obj2[id]);
@@ -818,7 +826,7 @@ const createSqlite3Persister = (
818
826
  async (sql, args = []) =>
819
827
  await promiseNew((resolve, reject) =>
820
828
  db.all(sql, args, (error, rows) =>
821
- error ? reject(error) : resolve(rows.map((row) => ({...row}))),
829
+ error ? reject(error) : resolve(rows),
822
830
  ),
823
831
  ),
824
832
  (listener) => {
@@ -4,7 +4,6 @@ const TINYBASE = 'tinybase';
4
4
  const T = 't';
5
5
  const V = 'v';
6
6
 
7
- const isInstanceOf = (thing, cls) => thing instanceof cls;
8
7
  const isUndefined = (thing) => thing == void 0;
9
8
  const ifNotUndefined = (value, then, otherwise) =>
10
9
  isUndefined(value) ? otherwise?.() : then(value);
@@ -17,10 +16,18 @@ const arrayPush = (array, ...values) => array.push(...values);
17
16
  const arrayShift = (array) => array.shift();
18
17
 
19
18
  const object = Object;
19
+ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
20
20
  const objIds = object.keys;
21
21
  const objFreeze = object.freeze;
22
22
  const isObject = (obj) =>
23
- isInstanceOf(obj, object) && obj.constructor == object;
23
+ !isUndefined(obj) &&
24
+ ifNotUndefined(
25
+ getPrototypeOf(obj),
26
+ (objPrototype) =>
27
+ objPrototype == object.prototype ||
28
+ isUndefined(getPrototypeOf(objPrototype)),
29
+ () => true,
30
+ );
24
31
  const objNew = (entries = []) => object.fromEntries(entries);
25
32
  const objGet = (obj, id) => ifNotUndefined(obj, (obj2) => obj2[id]);
26
33
  const objHas = (obj, id) => !isUndefined(objGet(obj, id));
@@ -1,4 +1,3 @@
1
- const isInstanceOf = (thing, cls) => thing instanceof cls;
2
1
  const isUndefined = (thing) => thing == void 0;
3
2
  const ifNotUndefined = (value, then, otherwise) =>
4
3
  isUndefined(value) ? otherwise?.() : then(value);
@@ -8,10 +7,18 @@ const arrayPush = (array, ...values) => array.push(...values);
8
7
  const arrayShift = (array) => array.shift();
9
8
 
10
9
  const object = Object;
10
+ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
11
11
  const objIds = object.keys;
12
12
  const objFreeze = object.freeze;
13
13
  const isObject = (obj) =>
14
- isInstanceOf(obj, object) && obj.constructor == object;
14
+ !isUndefined(obj) &&
15
+ ifNotUndefined(
16
+ getPrototypeOf(obj),
17
+ (objPrototype) =>
18
+ objPrototype == object.prototype ||
19
+ isUndefined(getPrototypeOf(objPrototype)),
20
+ () => true,
21
+ );
15
22
  const objSize = (obj) => size(objIds(obj));
16
23
  const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
17
24
 
@@ -47,11 +47,19 @@ const arrayPush = (array, ...values) => array.push(...values);
47
47
  const arrayShift = (array) => array.shift();
48
48
 
49
49
  const object = Object;
50
+ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
50
51
  const objIds = object.keys;
51
52
  const objFrozen = object.isFrozen;
52
53
  const objFreeze = object.freeze;
53
54
  const isObject = (obj) =>
54
- isInstanceOf(obj, object) && obj.constructor == object;
55
+ !isUndefined(obj) &&
56
+ ifNotUndefined(
57
+ getPrototypeOf(obj),
58
+ (objPrototype) =>
59
+ objPrototype == object.prototype ||
60
+ isUndefined(getPrototypeOf(objPrototype)),
61
+ () => true,
62
+ );
55
63
  const objGet = (obj, id) => ifNotUndefined(obj, (obj2) => obj2[id]);
56
64
  const objHas = (obj, id) => !isUndefined(objGet(obj, id));
57
65
  const objDel = (obj, id) => {
@@ -68,11 +68,19 @@ const arrayUnshift = (array, ...values) => array.unshift(...values);
68
68
  const arrayShift = (array) => array.shift();
69
69
 
70
70
  const object = Object;
71
+ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
71
72
  const objIds = object.keys;
72
73
  const objFrozen = object.isFrozen;
73
74
  const objFreeze = object.freeze;
74
75
  const isObject = (obj) =>
75
- isInstanceOf(obj, object) && obj.constructor == object;
76
+ !isUndefined(obj) &&
77
+ ifNotUndefined(
78
+ getPrototypeOf(obj),
79
+ (objPrototype) =>
80
+ objPrototype == object.prototype ||
81
+ isUndefined(getPrototypeOf(objPrototype)),
82
+ () => true,
83
+ );
76
84
  const objGet = (obj, id) => ifNotUndefined(obj, (obj2) => obj2[id]);
77
85
  const objHas = (obj, id) => !isUndefined(objGet(obj, id));
78
86
  const objDel = (obj, id) => {
@@ -25,8 +25,9 @@ const VALUE_IDS = VALUE + IDS;
25
25
 
26
26
  const promise = Promise;
27
27
  const isFiniteNumber = isFinite;
28
- const isInstanceOf = (thing, cls) => thing instanceof cls;
29
28
  const isUndefined = (thing) => thing == void 0;
29
+ const ifNotUndefined = (value, then, otherwise) =>
30
+ isUndefined(value) ? otherwise?.() : then(value);
30
31
  const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
31
32
  const isString = (thing) => getTypeOf(thing) == STRING;
32
33
  const isArray = (thing) => Array.isArray(thing);
@@ -53,10 +54,18 @@ const arrayUnshift = (array, ...values) => array.unshift(...values);
53
54
  const arrayShift = (array) => array.shift();
54
55
 
55
56
  const object = Object;
57
+ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
56
58
  const objIds = object.keys;
57
59
  const objFreeze = object.freeze;
58
60
  const isObject = (obj) =>
59
- isInstanceOf(obj, object) && obj.constructor == object;
61
+ !isUndefined(obj) &&
62
+ ifNotUndefined(
63
+ getPrototypeOf(obj),
64
+ (objPrototype) =>
65
+ objPrototype == object.prototype ||
66
+ isUndefined(getPrototypeOf(objPrototype)),
67
+ () => true,
68
+ );
60
69
  const objMap = (obj, cb) =>
61
70
  arrayMap(object.entries(obj), ([id, value]) => cb(value, id));
62
71
  const objSize = (obj) => size(objIds(obj));
@@ -121,11 +121,19 @@ const arrayPush = (array, ...values) => array.push(...values);
121
121
  const arrayShift = (array) => array.shift();
122
122
 
123
123
  const object = Object;
124
+ const getPrototypeOf = (obj) => object.getPrototypeOf(obj);
124
125
  const objIds = object.keys;
125
126
  const objFrozen = object.isFrozen;
126
127
  const objFreeze = object.freeze;
127
128
  const isObject = (obj) =>
128
- isInstanceOf(obj, object) && obj.constructor == object;
129
+ !isUndefined(obj) &&
130
+ ifNotUndefined(
131
+ getPrototypeOf(obj),
132
+ (objPrototype) =>
133
+ objPrototype == object.prototype ||
134
+ isUndefined(getPrototypeOf(objPrototype)),
135
+ () => true,
136
+ );
129
137
  const objNew = (entries = []) => object.fromEntries(entries);
130
138
  const objGet = (obj, id) => ifNotUndefined(obj, (obj2) => obj2[id]);
131
139
  const objHas = (obj, id) => !isUndefined(objGet(obj, id));
@@ -81,10 +81,14 @@ const {
81
81
  useCallback: useCallback$1,
82
82
  useEffect,
83
83
  useMemo: useMemo$1,
84
+ useLayoutEffect: useLayoutEffect$1,
84
85
  useRef: useRef$1,
85
86
  useState: useState$1,
86
87
  } = React;
87
- const useCreate = (store, create, createDeps = []) => {
88
+ const EMPTY_ARRAY = [];
89
+ const EMPTY_OBJECT = {};
90
+ const DEFAULT_CHECKPOINT_IDS = [[], void 0, []];
91
+ const useCreate = (store, create, createDeps = EMPTY_ARRAY) => {
88
92
  const thing = useMemo$1(
89
93
  () => create(store),
90
94
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -97,14 +101,14 @@ const useListenable = (
97
101
  listenable,
98
102
  thing,
99
103
  defaulted,
100
- args = [],
104
+ args = EMPTY_ARRAY,
101
105
  getFromListenerArg,
102
106
  ) => {
103
107
  const [, rerender] = useState$1();
104
108
  const getResult = useCallback$1(
105
109
  () => thing?.[GET + listenable]?.(...args) ?? defaulted,
106
110
  /* eslint-disable-next-line react-hooks/exhaustive-deps */
107
- [thing, ...args],
111
+ [thing, listenable, ...args, defaulted],
108
112
  );
109
113
  const result = useRef$1();
110
114
  useMemo$1(() => (result.current = getResult()), [getResult]);
@@ -117,7 +121,7 @@ const useListenable = (
117
121
  : listenerArgs[getFromListenerArg];
118
122
  rerender([]);
119
123
  },
120
- [],
124
+ [getResult, getFromListenerArg],
121
125
  args,
122
126
  );
123
127
  return result.current;
@@ -126,30 +130,25 @@ const useListener = (
126
130
  listenable,
127
131
  thing,
128
132
  listener,
129
- listenerDeps = [],
130
- preArgs = [],
133
+ listenerDeps = EMPTY_ARRAY,
134
+ preArgs = EMPTY_ARRAY,
131
135
  ...postArgs
132
- ) => {
133
- const deps = [thing, ...preArgs, ...listenerDeps, ...postArgs];
134
- const listenerId = useMemo$1(
135
- () =>
136
- thing?.[ADD + listenable + LISTENER]?.(...preArgs, listener, ...postArgs),
137
- // eslint-disable-next-line react-hooks/exhaustive-deps
138
- deps,
139
- );
140
- useEffect(
141
- () => () => thing?.delListener(listenerId),
142
- // eslint-disable-next-line react-hooks/exhaustive-deps
143
- deps,
144
- );
145
- };
136
+ ) =>
137
+ useLayoutEffect$1(() => {
138
+ const listenerId = thing?.[ADD + listenable + LISTENER]?.(
139
+ ...preArgs,
140
+ listener,
141
+ ...postArgs,
142
+ );
143
+ return () => thing?.delListener(listenerId);
144
+ }, [thing, listenable, ...preArgs, ...listenerDeps, ...postArgs]);
146
145
  const useSetCallback = (
147
146
  storeOrStoreId,
148
147
  settable,
149
148
  get,
150
- getDeps = [],
149
+ getDeps = EMPTY_ARRAY,
151
150
  then = getUndefined,
152
- thenDeps = [],
151
+ thenDeps = EMPTY_ARRAY,
153
152
  ...args
154
153
  ) => {
155
154
  const store = useStoreOrStoreById(storeOrStoreId);
@@ -168,7 +167,7 @@ const useDel = (
168
167
  storeOrStoreId,
169
168
  deletable,
170
169
  then = getUndefined,
171
- thenDeps = [],
170
+ thenDeps = EMPTY_ARRAY,
172
171
  ...args
173
172
  ) => {
174
173
  const store = useStoreOrStoreById(storeOrStoreId);
@@ -188,26 +187,30 @@ const useCheckpointAction = (checkpointsOrCheckpointsId, action, arg) => {
188
187
  [checkpoints, action, arg],
189
188
  );
190
189
  };
191
- const useCreateStore = (create, createDeps = []) =>
190
+ const useCreateStore = (create, createDeps = EMPTY_ARRAY) =>
192
191
  useMemo$1(create, createDeps);
193
192
  const useStoreIds = () => useThingIds(1);
194
193
  const useTables = (storeOrStoreId) =>
195
- useListenable(TABLES, useStoreOrStoreById(storeOrStoreId), {});
194
+ useListenable(TABLES, useStoreOrStoreById(storeOrStoreId), EMPTY_OBJECT);
196
195
  const useTableIds = (storeOrStoreId) =>
197
- useListenable(TABLE_IDS, useStoreOrStoreById(storeOrStoreId), [], []);
196
+ useListenable(TABLE_IDS, useStoreOrStoreById(storeOrStoreId), EMPTY_ARRAY);
198
197
  const useTable = (tableId, storeOrStoreId) =>
199
- useListenable(TABLE, useStoreOrStoreById(storeOrStoreId), {}, [tableId]);
198
+ useListenable(TABLE, useStoreOrStoreById(storeOrStoreId), EMPTY_OBJECT, [
199
+ tableId,
200
+ ]);
200
201
  const useTableCellIds = (tableId, storeOrStoreId) =>
201
202
  useListenable(
202
203
  TABLE + CELL_IDS,
203
204
  useStoreOrStoreById(storeOrStoreId),
204
- [],
205
+ EMPTY_ARRAY,
205
206
  [tableId],
206
207
  );
207
208
  const useRowCount = (tableId, storeOrStoreId) =>
208
- useListenable(ROW_COUNT, useStoreOrStoreById(storeOrStoreId), [], [tableId]);
209
+ useListenable(ROW_COUNT, useStoreOrStoreById(storeOrStoreId), 0, [tableId]);
209
210
  const useRowIds = (tableId, storeOrStoreId) =>
210
- useListenable(ROW_IDS, useStoreOrStoreById(storeOrStoreId), [], [tableId]);
211
+ useListenable(ROW_IDS, useStoreOrStoreById(storeOrStoreId), EMPTY_ARRAY, [
212
+ tableId,
213
+ ]);
211
214
  const useSortedRowIds = (
212
215
  tableId,
213
216
  cellId,
@@ -219,19 +222,20 @@ const useSortedRowIds = (
219
222
  useListenable(
220
223
  SORTED_ROW_IDS,
221
224
  useStoreOrStoreById(storeOrStoreId),
222
- [],
225
+ EMPTY_ARRAY,
223
226
  [tableId, cellId, descending, offset, limit],
224
227
  6,
225
228
  );
226
229
  const useRow = (tableId, rowId, storeOrStoreId) =>
227
- useListenable(ROW, useStoreOrStoreById(storeOrStoreId), {}, [tableId, rowId]);
230
+ useListenable(ROW, useStoreOrStoreById(storeOrStoreId), EMPTY_OBJECT, [
231
+ tableId,
232
+ rowId,
233
+ ]);
228
234
  const useCellIds = (tableId, rowId, storeOrStoreId) =>
229
- useListenable(
230
- CELL_IDS,
231
- useStoreOrStoreById(storeOrStoreId),
232
- [],
233
- [tableId, rowId],
234
- );
235
+ useListenable(CELL_IDS, useStoreOrStoreById(storeOrStoreId), EMPTY_ARRAY, [
236
+ tableId,
237
+ rowId,
238
+ ]);
235
239
  const useCell = (tableId, rowId, cellId, storeOrStoreId) =>
236
240
  useListenable(
237
241
  CELL,
@@ -241,9 +245,9 @@ const useCell = (tableId, rowId, cellId, storeOrStoreId) =>
241
245
  4,
242
246
  );
243
247
  const useValues = (storeOrStoreId) =>
244
- useListenable(VALUES, useStoreOrStoreById(storeOrStoreId), {});
248
+ useListenable(VALUES, useStoreOrStoreById(storeOrStoreId), EMPTY_OBJECT);
245
249
  const useValueIds = (storeOrStoreId) =>
246
- useListenable(VALUE_IDS, useStoreOrStoreById(storeOrStoreId), [], []);
250
+ useListenable(VALUE_IDS, useStoreOrStoreById(storeOrStoreId), EMPTY_ARRAY);
247
251
  const useValue = (valueId, storeOrStoreId) =>
248
252
  useListenable(VALUE, useStoreOrStoreById(storeOrStoreId), void 0, [valueId]);
249
253
  const useSetTablesCallback = (
@@ -300,10 +304,10 @@ const useSetRowCallback = (
300
304
  const useAddRowCallback = (
301
305
  tableId,
302
306
  getRow,
303
- getRowDeps = [],
307
+ getRowDeps = EMPTY_ARRAY,
304
308
  storeOrStoreId,
305
309
  then = getUndefined,
306
- thenDeps = [],
310
+ thenDeps = EMPTY_ARRAY,
307
311
  reuseRowIds = true,
308
312
  ) => {
309
313
  const store = useStoreOrStoreById(storeOrStoreId);
@@ -440,7 +444,7 @@ const useTablesListener = (listener, listenerDeps, mutator, storeOrStoreId) =>
440
444
  useStoreOrStoreById(storeOrStoreId),
441
445
  listener,
442
446
  listenerDeps,
443
- [],
447
+ EMPTY_ARRAY,
444
448
  mutator,
445
449
  );
446
450
  const useTableIdsListener = (listener, listenerDeps, mutator, storeOrStoreId) =>
@@ -449,7 +453,7 @@ const useTableIdsListener = (listener, listenerDeps, mutator, storeOrStoreId) =>
449
453
  useStoreOrStoreById(storeOrStoreId),
450
454
  listener,
451
455
  listenerDeps,
452
- [],
456
+ EMPTY_ARRAY,
453
457
  mutator,
454
458
  );
455
459
  const useTableListener = (
@@ -586,7 +590,7 @@ const useValuesListener = (listener, listenerDeps, mutator, storeOrStoreId) =>
586
590
  useStoreOrStoreById(storeOrStoreId),
587
591
  listener,
588
592
  listenerDeps,
589
- [],
593
+ EMPTY_ARRAY,
590
594
  mutator,
591
595
  );
592
596
  const useValueIdsListener = (listener, listenerDeps, mutator, storeOrStoreId) =>
@@ -595,7 +599,7 @@ const useValueIdsListener = (listener, listenerDeps, mutator, storeOrStoreId) =>
595
599
  useStoreOrStoreById(storeOrStoreId),
596
600
  listener,
597
601
  listenerDeps,
598
- [],
602
+ EMPTY_ARRAY,
599
603
  mutator,
600
604
  );
601
605
  const useValueListener = (
@@ -646,7 +650,11 @@ const useCreateMetrics = (store, create, createDeps) =>
646
650
  useCreate(store, create, createDeps);
647
651
  const useMetricsIds = () => useThingIds(3);
648
652
  const useMetricIds = (metricsOrMetricsId) =>
649
- useListenable('MetricIds', useMetricsOrMetricsById(metricsOrMetricsId), []);
653
+ useListenable(
654
+ 'MetricIds',
655
+ useMetricsOrMetricsById(metricsOrMetricsId),
656
+ EMPTY_ARRAY,
657
+ );
650
658
  const useMetric = (metricId, metricsOrMetricsId) =>
651
659
  useListenable('Metric', useMetricsOrMetricsById(metricsOrMetricsId), void 0, [
652
660
  metricId,
@@ -671,16 +679,20 @@ const useSliceIds = (indexId, indexesOrIndexesId) =>
671
679
  useListenable(
672
680
  'SliceIds',
673
681
  useIndexesOrIndexesById(indexesOrIndexesId),
674
- [],
682
+ EMPTY_ARRAY,
675
683
  [indexId],
676
684
  );
677
685
  const useIndexIds = (indexesOrIndexesId) =>
678
- useListenable('IndexIds', useIndexesOrIndexesById(indexesOrIndexesId), []);
686
+ useListenable(
687
+ 'IndexIds',
688
+ useIndexesOrIndexesById(indexesOrIndexesId),
689
+ EMPTY_ARRAY,
690
+ );
679
691
  const useSliceRowIds = (indexId, sliceId, indexesOrIndexesId) =>
680
692
  useListenable(
681
693
  'Slice' + ROW_IDS,
682
694
  useIndexesOrIndexesById(indexesOrIndexesId),
683
- [],
695
+ EMPTY_ARRAY,
684
696
  [indexId, sliceId],
685
697
  );
686
698
  const useSliceIdsListener = (
@@ -717,7 +729,7 @@ const useRelationshipIds = (relationshipsOrRelationshipsId) =>
717
729
  useListenable(
718
730
  'RelationshipIds',
719
731
  useRelationshipsOrRelationshipsById(relationshipsOrRelationshipsId),
720
- [],
732
+ EMPTY_ARRAY,
721
733
  );
722
734
  const useRemoteRowId = (
723
735
  relationshipId,
@@ -738,7 +750,7 @@ const useLocalRowIds = (
738
750
  useListenable(
739
751
  'Local' + ROW_IDS,
740
752
  useRelationshipsOrRelationshipsById(relationshipsOrRelationshipsId),
741
- [],
753
+ EMPTY_ARRAY,
742
754
  [relationshipId, remoteRowId],
743
755
  );
744
756
  const useLinkedRowIds = (
@@ -749,7 +761,7 @@ const useLinkedRowIds = (
749
761
  useListenable(
750
762
  'Linked' + ROW_IDS,
751
763
  useRelationshipsOrRelationshipsById(relationshipsOrRelationshipsId),
752
- [],
764
+ EMPTY_ARRAY,
753
765
  [relationshipId, firstRowId],
754
766
  );
755
767
  const useRemoteRowIdListener = (
@@ -798,33 +810,37 @@ const useCreateQueries = (store, create, createDeps) =>
798
810
  useCreate(store, create, createDeps);
799
811
  const useQueriesIds = () => useThingIds(9);
800
812
  const useQueryIds = (queriesOrQueriesId) =>
801
- useListenable('QueryIds', useQueriesOrQueriesById(queriesOrQueriesId), []);
813
+ useListenable(
814
+ 'QueryIds',
815
+ useQueriesOrQueriesById(queriesOrQueriesId),
816
+ EMPTY_ARRAY,
817
+ );
802
818
  const useResultTable = (queryId, queriesOrQueriesId) =>
803
819
  useListenable(
804
820
  RESULT + TABLE,
805
821
  useQueriesOrQueriesById(queriesOrQueriesId),
806
- {},
822
+ EMPTY_OBJECT,
807
823
  [queryId],
808
824
  );
809
825
  const useResultTableCellIds = (queryId, queriesOrQueriesId) =>
810
826
  useListenable(
811
827
  RESULT + TABLE + CELL_IDS,
812
828
  useQueriesOrQueriesById(queriesOrQueriesId),
813
- [],
829
+ EMPTY_ARRAY,
814
830
  [queryId],
815
831
  );
816
832
  const useResultRowCount = (queryId, queriesOrQueriesId) =>
817
833
  useListenable(
818
834
  RESULT + ROW_COUNT,
819
835
  useQueriesOrQueriesById(queriesOrQueriesId),
820
- [],
836
+ 0,
821
837
  [queryId],
822
838
  );
823
839
  const useResultRowIds = (queryId, queriesOrQueriesId) =>
824
840
  useListenable(
825
841
  RESULT + ROW_IDS,
826
842
  useQueriesOrQueriesById(queriesOrQueriesId),
827
- [],
843
+ EMPTY_ARRAY,
828
844
  [queryId],
829
845
  );
830
846
  const useResultSortedRowIds = (
@@ -838,20 +854,22 @@ const useResultSortedRowIds = (
838
854
  useListenable(
839
855
  RESULT + SORTED_ROW_IDS,
840
856
  useQueriesOrQueriesById(queriesOrQueriesId),
841
- [],
857
+ EMPTY_ARRAY,
842
858
  [queryId, cellId, descending, offset, limit],
843
859
  6,
844
860
  );
845
861
  const useResultRow = (queryId, rowId, queriesOrQueriesId) =>
846
- useListenable(RESULT + ROW, useQueriesOrQueriesById(queriesOrQueriesId), {}, [
847
- queryId,
848
- rowId,
849
- ]);
862
+ useListenable(
863
+ RESULT + ROW,
864
+ useQueriesOrQueriesById(queriesOrQueriesId),
865
+ EMPTY_OBJECT,
866
+ [queryId, rowId],
867
+ );
850
868
  const useResultCellIds = (queryId, rowId, queriesOrQueriesId) =>
851
869
  useListenable(
852
870
  RESULT + CELL_IDS,
853
871
  useQueriesOrQueriesById(queriesOrQueriesId),
854
- [],
872
+ EMPTY_ARRAY,
855
873
  [queryId, rowId],
856
874
  );
857
875
  const useResultCell = (queryId, rowId, cellId, queriesOrQueriesId) =>
@@ -980,7 +998,7 @@ const useCheckpointIds = (checkpointsOrCheckpointsId) =>
980
998
  useListenable(
981
999
  'CheckpointIds',
982
1000
  useCheckpointsOrCheckpointsById(checkpointsOrCheckpointsId),
983
- [[], void 0, []],
1001
+ DEFAULT_CHECKPOINT_IDS,
984
1002
  );
985
1003
  const useCheckpoint = (checkpointId, checkpointsOrCheckpointsId) =>
986
1004
  useListenable(
@@ -991,10 +1009,10 @@ const useCheckpoint = (checkpointId, checkpointsOrCheckpointsId) =>
991
1009
  );
992
1010
  const useSetCheckpointCallback = (
993
1011
  getCheckpoint = getUndefined,
994
- getCheckpointDeps = [],
1012
+ getCheckpointDeps = EMPTY_ARRAY,
995
1013
  checkpointsOrCheckpointsId,
996
1014
  then = getUndefined,
997
- thenDeps = [],
1015
+ thenDeps = EMPTY_ARRAY,
998
1016
  ) => {
999
1017
  const checkpoints = useCheckpointsOrCheckpointsById(
1000
1018
  checkpointsOrCheckpointsId,
@@ -1015,10 +1033,10 @@ const useGoForwardCallback = (checkpointsOrCheckpointsId) =>
1015
1033
  useCheckpointAction(checkpointsOrCheckpointsId, 'goForward');
1016
1034
  const useGoToCallback = (
1017
1035
  getCheckpointId,
1018
- getCheckpointIdDeps = [],
1036
+ getCheckpointIdDeps = EMPTY_ARRAY,
1019
1037
  checkpointsOrCheckpointsId,
1020
1038
  then = getUndefined,
1021
- thenDeps = [],
1039
+ thenDeps = EMPTY_ARRAY,
1022
1040
  ) => {
1023
1041
  const checkpoints = useCheckpointsOrCheckpointsById(
1024
1042
  checkpointsOrCheckpointsId,
@@ -1087,11 +1105,11 @@ const useCheckpointListener = (
1087
1105
  const useCreatePersister = (
1088
1106
  store,
1089
1107
  create,
1090
- createDeps = [],
1108
+ createDeps = EMPTY_ARRAY,
1091
1109
  then,
1092
- thenDeps = [],
1110
+ thenDeps = EMPTY_ARRAY,
1093
1111
  destroy,
1094
- destroyDeps = [],
1112
+ destroyDeps = EMPTY_ARRAY,
1095
1113
  ) => {
1096
1114
  const [, rerender] = useState$1();
1097
1115
  const persister = useMemo$1(
@@ -1 +1 @@
1
- const t=t=>null==t,n=(n,e,o)=>t(n)?null==o?void 0:o():e(n),e=Object,o=e.keys,l=e.freeze,i=(t,e)=>n(t,(t=>t[e])),u=(n,e)=>!t(i(n,e)),r=(t,n)=>(delete t[n],t),d=(t,n)=>((t,n)=>t.map(n))(e.entries(t),(([t,e])=>n(e,t))),c=t=>o(t).length,a=t=>(t=>t instanceof e&&t.constructor==e)(t)&&0==c(t),s=t=>new Map(t),v=(t,n)=>null==t?void 0:t.get(n),y=(n,e,o)=>{return t(o)?(i=e,null==(l=n)||l.delete(i),n):null==n?void 0:n.set(e,o);var l,i},h=(t,n,e)=>{var o,l,i;return l=n,null!=(i=null==(o=t)?void 0:o.has(l))&&i||y(t,n,e()),v(t,n)};var f=(t,n,e)=>new Promise(((o,l)=>{var i=t=>{try{r(e.next(t))}catch(t){l(t)}},u=t=>{try{r(e.throw(t))}catch(t){l(t)}},r=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,u);r((e=e.apply(t,n)).next())}));const p=s(),g=s();var A=(t,n,e)=>new Promise(((o,l)=>{var i=t=>{try{r(e.next(t))}catch(t){l(t)}},u=t=>{try{r(e.throw(t))}catch(t){l(t)}},r=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,u);r((e=e.apply(t,n)).next())}));const L=(t,n)=>[t[n].t,t[n].v],m=(n,e,o,l)=>{const i=t(e)?n:((t,n,e)=>(u(t,n)||(t[n]={}),t[n]))(n,e);let c;return d(o,((t,n)=>{l(i,n,t)&&(c=1)})),d(i,((t,n)=>{u(o,n)||(r(i,n),c=1)})),!t(e)&&a(i)&&r(n,e),c},S=(e,o,u="tinybase",s)=>(o.change((t=>t[u]={})),((e,o,i,u,r,d,[c,s]=[],A=[])=>{let L,m,S,w=0,x=0;h(p,A,(()=>0)),h(g,A,(()=>[]));const C=t=>f(void 0,null,(function*(){return 2!=w&&(w=1,yield P.schedule((()=>f(void 0,null,(function*(){yield t(),w=0}))))),P})),P={load:(t,n)=>f(void 0,null,(function*(){return yield C((()=>f(void 0,null,(function*(){try{e.setContent(yield o())}catch(o){e.setContent([t,n])}}))))})),startAutoLoad:(...t)=>f(void 0,[...t],(function*(t={},n={}){return P.stopAutoLoad(),yield P.load(t,n),x=1,S=u(((t,n)=>f(void 0,null,(function*(){if(n){const t=n();yield C((()=>f(void 0,null,(function*(){return e.setTransactionChanges(t)}))))}else yield C((()=>f(void 0,null,(function*(){var n;try{e.setContent(null!=(n=null==t?void 0:t())?n:yield o())}catch(t){null==d||d(t)}}))))})))),P})),stopAutoLoad:()=>(x&&(r(S),S=void 0,x=0),P),save:t=>f(void 0,null,(function*(){return 1!=w&&(w=2,yield P.schedule((()=>f(void 0,null,(function*(){try{yield i(e.getContent,t)}catch(t){null==d||d(t)}w=0}))))),P})),startAutoSave:()=>f(void 0,null,(function*(){return yield P.stopAutoSave().save(),L=e.addDidFinishTransactionListener(((t,n)=>{const[e,o]=n();a(e)&&a(o)||P.save((()=>[e,o]))})),P})),stopAutoSave:()=>(n(L,e.delListener),L=void 0,P),schedule:(...n)=>f(void 0,null,(function*(){return((t,...n)=>{t.push(...n)})(v(g,A),...n),yield f(void 0,null,(function*(){if(!v(p,A)){for(y(p,A,1);!t((n=v(g,A),m=n.shift()));)try{yield m()}catch(t){null==d||d(t)}y(p,A,0)}var n})),P})),getStore:()=>e,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(P[c]=()=>s),l(P)})(e,(()=>A(void 0,null,(function*(){return 2==c(o.doc[u])?L(o.doc,u):void 0}))),((e,l)=>A(void 0,null,(function*(){return o.change((o=>((e,o,l,u)=>{((t,n)=>{a(t[n])&&(t[n]={t:{},v:{}})})(e,o);const[c,s]=L(e,o),v=()=>{y=1};let y=1;if(n(null==u?void 0:u(),(([e,o])=>{y=0,d(e,((e,o)=>y?0:t(e)?r(c,o):n(c[o],(o=>d(e,((e,l)=>y?0:t(e)?r(o,l):n(i(o,l),(n=>d(e,((e,o)=>t(e)?r(n,o):n[o]=e))),v)))),v))),d(o,((n,e)=>y?0:t(n)?r(s,e):s[e]=n))})),y){const[t,n]=l();m(c,void 0,t,((t,n,e)=>m(c,n,e,((t,n,e)=>m(t,n,e,((t,n,e)=>{if(i(t,n)!==e)return t[n]=e,1})))))),m(s,void 0,n,((t,n,e)=>{i(s,n)!==e&&(s[n]=e)}))}})(o,u,e,l)))}))),(t=>{const n=({doc:n})=>t((()=>L(n,u)));return o.on("change",n),n}),(t=>{o.removeListener("change",t)}),s,["getDocHandle",o]));export{S as createAutomergePersister};
1
+ const t=t=>null==t,e=(e,n,o)=>t(e)?null==o?void 0:o():n(e),n=Object,o=t=>n.getPrototypeOf(t),l=n.keys,i=n.freeze,u=(t,n)=>e(t,(t=>t[n])),r=(e,n)=>!t(u(e,n)),d=(t,e)=>(delete t[e],t),c=(t,e)=>((t,e)=>t.map(e))(n.entries(t),(([t,n])=>e(n,t))),a=t=>l(t).length,s=l=>(l=>!t(l)&&e(o(l),(e=>e==n.prototype||t(o(e))),(()=>!0)))(l)&&0==a(l),v=t=>new Map(t),y=(t,e)=>null==t?void 0:t.get(e),h=(e,n,o)=>{return t(o)?(i=n,null==(l=e)||l.delete(i),e):null==e?void 0:e.set(n,o);var l,i},f=(t,e,n)=>{var o,l,i;return l=e,null!=(i=null==(o=t)?void 0:o.has(l))&&i||h(t,e,n()),y(t,e)};var p=(t,e,n)=>new Promise(((o,l)=>{var i=t=>{try{r(n.next(t))}catch(t){l(t)}},u=t=>{try{r(n.throw(t))}catch(t){l(t)}},r=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,u);r((n=n.apply(t,e)).next())}));const g=v(),A=v();var L=(t,e,n)=>new Promise(((o,l)=>{var i=t=>{try{r(n.next(t))}catch(t){l(t)}},u=t=>{try{r(n.throw(t))}catch(t){l(t)}},r=t=>t.done?o(t.value):Promise.resolve(t.value).then(i,u);r((n=n.apply(t,e)).next())}));const m=(t,e)=>[t[e].t,t[e].v],S=(e,n,o,l)=>{const i=t(n)?e:((t,e,n)=>(r(t,e)||(t[e]={}),t[e]))(e,n);let u;return c(o,((t,e)=>{l(i,e,t)&&(u=1)})),c(i,((t,e)=>{r(o,e)||(d(i,e),u=1)})),!t(n)&&s(i)&&d(e,n),u},w=(n,o,l="tinybase",r)=>(o.change((t=>t[l]={})),((n,o,l,u,r,d,[c,a]=[],v=[])=>{let L,m,S,w=0,x=0;f(g,v,(()=>0)),f(A,v,(()=>[]));const C=t=>p(void 0,null,(function*(){return 2!=w&&(w=1,yield P.schedule((()=>p(void 0,null,(function*(){yield t(),w=0}))))),P})),P={load:(t,e)=>p(void 0,null,(function*(){return yield C((()=>p(void 0,null,(function*(){try{n.setContent(yield o())}catch(o){n.setContent([t,e])}}))))})),startAutoLoad:(...t)=>p(void 0,[...t],(function*(t={},e={}){return P.stopAutoLoad(),yield P.load(t,e),x=1,S=u(((t,e)=>p(void 0,null,(function*(){if(e){const t=e();yield C((()=>p(void 0,null,(function*(){return n.setTransactionChanges(t)}))))}else yield C((()=>p(void 0,null,(function*(){var e;try{n.setContent(null!=(e=null==t?void 0:t())?e:yield o())}catch(t){null==d||d(t)}}))))})))),P})),stopAutoLoad:()=>(x&&(r(S),S=void 0,x=0),P),save:t=>p(void 0,null,(function*(){return 1!=w&&(w=2,yield P.schedule((()=>p(void 0,null,(function*(){try{yield l(n.getContent,t)}catch(t){null==d||d(t)}w=0}))))),P})),startAutoSave:()=>p(void 0,null,(function*(){return yield P.stopAutoSave().save(),L=n.addDidFinishTransactionListener(((t,e)=>{const[n,o]=e();s(n)&&s(o)||P.save((()=>[n,o]))})),P})),stopAutoSave:()=>(e(L,n.delListener),L=void 0,P),schedule:(...e)=>p(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(y(A,v),...e),yield p(void 0,null,(function*(){if(!y(g,v)){for(h(g,v,1);!t((e=y(A,v),m=e.shift()));)try{yield m()}catch(t){null==d||d(t)}h(g,v,0)}var e})),P})),getStore:()=>n,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return c&&(P[c]=()=>a),i(P)})(n,(()=>L(void 0,null,(function*(){return 2==a(o.doc[l])?m(o.doc,l):void 0}))),((n,i)=>L(void 0,null,(function*(){return o.change((o=>((n,o,l,i)=>{((t,e)=>{s(t[e])&&(t[e]={t:{},v:{}})})(n,o);const[r,a]=m(n,o),v=()=>{y=1};let y=1;if(e(null==i?void 0:i(),(([n,o])=>{y=0,c(n,((n,o)=>y?0:t(n)?d(r,o):e(r[o],(o=>c(n,((n,l)=>y?0:t(n)?d(o,l):e(u(o,l),(e=>c(n,((n,o)=>t(n)?d(e,o):e[o]=n))),v)))),v))),c(o,((e,n)=>y?0:t(e)?d(a,n):a[n]=e))})),y){const[t,e]=l();S(r,void 0,t,((t,e,n)=>S(r,e,n,((t,e,n)=>S(t,e,n,((t,e,n)=>{if(u(t,e)!==n)return t[e]=n,1})))))),S(a,void 0,e,((t,e,n)=>{u(a,e)!==n&&(a[e]=n)}))}})(o,l,n,i)))}))),(t=>{const e=({doc:e})=>t((()=>m(e,l)));return o.on("change",e),e}),(t=>{o.removeListener("change",t)}),r,["getDocHandle",o]));export{w as createAutomergePersister};
@@ -1 +1 @@
1
- const t=(t,e)=>t instanceof e,e=t=>null==t,n=Object,o=n.keys,l=n.freeze,r=e=>(e=>t(e,n)&&e.constructor==n)(e)&&0==(t=>o(t).length)(e),i=JSON.parse,u=t=>new Map(t),a=(t,e)=>null==t?void 0:t.get(e),s=(t,n,o)=>{return e(o)?(r=n,null==(l=t)||l.delete(r),t):null==t?void 0:t.set(n,o);var l,r},d=(t,e,n)=>{var o,l,r;return l=e,null!=(r=null==(o=t)?void 0:o.has(l))&&r||s(t,e,n()),a(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=u(),y=u();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="storage",g=globalThis.window,p=(o,u,p,S)=>((t,n,o,i,u,f,[h,g]=[],p=[])=>{let S,m,A,w=0,L=0;d(v,p,(()=>0)),d(y,p,(()=>[]));const x=t=>c(void 0,null,(function*(){return 2!=w&&(w=1,yield C.schedule((()=>c(void 0,null,(function*(){yield t(),w=0}))))),C})),C={load:(e,o)=>c(void 0,null,(function*(){return yield x((()=>c(void 0,null,(function*(){try{t.setContent(yield n())}catch(n){t.setContent([e,o])}}))))})),startAutoLoad:(...e)=>c(void 0,[...e],(function*(e={},o={}){return C.stopAutoLoad(),yield C.load(e,o),L=1,A=i(((e,o)=>c(void 0,null,(function*(){if(o){const e=o();yield x((()=>c(void 0,null,(function*(){return t.setTransactionChanges(e)}))))}else yield x((()=>c(void 0,null,(function*(){var o;try{t.setContent(null!=(o=null==e?void 0:e())?o:yield n())}catch(t){null==f||f(t)}}))))})))),C})),stopAutoLoad:()=>(L&&(u(A),A=void 0,L=0),C),save:e=>c(void 0,null,(function*(){return 1!=w&&(w=2,yield C.schedule((()=>c(void 0,null,(function*(){try{yield o(t.getContent,e)}catch(t){null==f||f(t)}w=0}))))),C})),startAutoSave:()=>c(void 0,null,(function*(){return yield C.stopAutoSave().save(),S=t.addDidFinishTransactionListener(((t,e)=>{const[n,o]=e();r(n)&&r(o)||C.save((()=>[n,o]))})),C})),stopAutoSave:()=>{var n,o;return n=S,o=t.delListener,!!e(n)||o(n),S=void 0,C},schedule:(...t)=>c(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(a(y,p),...t),yield c(void 0,null,(function*(){if(!a(v,p)){for(s(v,p,1);!e((t=a(y,p),m=t.shift()));)try{yield m()}catch(t){null==f||f(t)}s(v,p,0)}var t})),C})),getStore:()=>t,destroy:()=>C.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return h&&(C[h]=()=>g),l(C)})(o,(()=>f(void 0,null,(function*(){return i(p.getItem(u))}))),(e=>f(void 0,null,(function*(){return p.setItem(u,(o=e(),JSON.stringify(o,((e,o)=>t(o,Map)?n.fromEntries([...o]):o))));var o}))),(t=>{const e=e=>{e.storageArea===p&&e.key===u&&t((()=>i(e.newValue)))};return g.addEventListener(h,e),e}),(t=>g.removeEventListener(h,t)),S,["getStorageName",u]),S=(t,e,n)=>p(t,e,localStorage,n),m=(t,e,n)=>p(t,e,sessionStorage,n);export{S as createLocalPersister,m as createSessionPersister};
1
+ const t=t=>null==t,e=(e,n,o)=>t(e)?null==o?void 0:o():n(e),n=Object,o=t=>n.getPrototypeOf(t),l=n.keys,r=n.freeze,i=r=>(l=>!t(l)&&e(o(l),(e=>e==n.prototype||t(o(e))),(()=>!0)))(r)&&0==(t=>l(t).length)(r),u=JSON.parse,a=t=>new Map(t),s=(t,e)=>null==t?void 0:t.get(e),d=(e,n,o)=>{return t(o)?(r=n,null==(l=e)||l.delete(r),e):null==e?void 0:e.set(n,o);var l,r},v=(t,e,n)=>{var o,l,r;return l=e,null!=(r=null==(o=t)?void 0:o.has(l))&&r||d(t,e,n()),s(t,e)};var c=(t,e,n)=>new Promise(((o,l)=>{var r=t=>{try{u(n.next(t))}catch(t){l(t)}},i=t=>{try{u(n.throw(t))}catch(t){l(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(r,i);u((n=n.apply(t,e)).next())}));const y=a(),f=a();var h=(t,e,n)=>new Promise(((o,l)=>{var r=t=>{try{u(n.next(t))}catch(t){l(t)}},i=t=>{try{u(n.throw(t))}catch(t){l(t)}},u=t=>t.done?o(t.value):Promise.resolve(t.value).then(r,i);u((n=n.apply(t,e)).next())}));const p="storage",g=globalThis.window,S=(o,l,a,S)=>((n,o,l,u,a,h,[p,g]=[],S=[])=>{let m,A,w,L=0,x=0;v(y,S,(()=>0)),v(f,S,(()=>[]));const C=t=>c(void 0,null,(function*(){return 2!=L&&(L=1,yield P.schedule((()=>c(void 0,null,(function*(){yield t(),L=0}))))),P})),P={load:(t,e)=>c(void 0,null,(function*(){return yield C((()=>c(void 0,null,(function*(){try{n.setContent(yield o())}catch(o){n.setContent([t,e])}}))))})),startAutoLoad:(...t)=>c(void 0,[...t],(function*(t={},e={}){return P.stopAutoLoad(),yield P.load(t,e),x=1,w=u(((t,e)=>c(void 0,null,(function*(){if(e){const t=e();yield C((()=>c(void 0,null,(function*(){return n.setTransactionChanges(t)}))))}else yield C((()=>c(void 0,null,(function*(){var e;try{n.setContent(null!=(e=null==t?void 0:t())?e:yield o())}catch(t){null==h||h(t)}}))))})))),P})),stopAutoLoad:()=>(x&&(a(w),w=void 0,x=0),P),save:t=>c(void 0,null,(function*(){return 1!=L&&(L=2,yield P.schedule((()=>c(void 0,null,(function*(){try{yield l(n.getContent,t)}catch(t){null==h||h(t)}L=0}))))),P})),startAutoSave:()=>c(void 0,null,(function*(){return yield P.stopAutoSave().save(),m=n.addDidFinishTransactionListener(((t,e)=>{const[n,o]=e();i(n)&&i(o)||P.save((()=>[n,o]))})),P})),stopAutoSave:()=>(e(m,n.delListener),m=void 0,P),schedule:(...e)=>c(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(s(f,S),...e),yield c(void 0,null,(function*(){if(!s(y,S)){for(d(y,S,1);!t((e=s(f,S),A=e.shift()));)try{yield A()}catch(t){null==h||h(t)}d(y,S,0)}var e})),P})),getStore:()=>n,destroy:()=>P.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return p&&(P[p]=()=>g),r(P)})(o,(()=>h(void 0,null,(function*(){return u(a.getItem(l))}))),(t=>h(void 0,null,(function*(){return a.setItem(l,(e=t(),JSON.stringify(e,((t,e)=>e instanceof Map?n.fromEntries([...e]):e))));var e}))),(t=>{const e=e=>{e.storageArea===a&&e.key===l&&t((()=>u(e.newValue)))};return g.addEventListener(p,e),e}),(t=>g.removeEventListener(p,t)),S,["getStorageName",l]),m=(t,e,n)=>S(t,e,localStorage,n),A=(t,e,n)=>S(t,e,sessionStorage,n);export{m as createLocalPersister,A as createSessionPersister};