tinybase 4.3.12 → 4.3.14

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 (219) 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-partykit-server.cjs +1 -1
  16. package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
  17. package/lib/cjs/persisters/persister-remote.cjs +1 -1
  18. package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
  19. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  20. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  21. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  22. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  23. package/lib/cjs/persisters/persister-yjs.cjs +1 -1
  24. package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
  25. package/lib/cjs/persisters.cjs +1 -1
  26. package/lib/cjs/persisters.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/ui-react-dom-debug.cjs +1 -1
  30. package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
  31. package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
  32. package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
  33. package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
  34. package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
  35. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  36. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  37. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  38. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  39. package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
  40. package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
  41. package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
  42. package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
  43. package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
  44. package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
  45. package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
  46. package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
  47. package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
  48. package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
  49. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  50. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  51. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  52. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  53. package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
  54. package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
  55. package/lib/cjs-es6/persisters.cjs +1 -1
  56. package/lib/cjs-es6/persisters.cjs.gz +0 -0
  57. package/lib/cjs-es6/tinybase.cjs +1 -1
  58. package/lib/cjs-es6/tinybase.cjs.gz +0 -0
  59. package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
  60. package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
  61. package/lib/debug/persisters/persister-automerge.js +5 -0
  62. package/lib/debug/persisters/persister-browser.js +5 -0
  63. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +12 -6
  64. package/lib/debug/persisters/persister-expo-sqlite.js +12 -6
  65. package/lib/debug/persisters/persister-file.js +5 -0
  66. package/lib/debug/persisters/persister-indexed-db.js +5 -0
  67. package/lib/debug/persisters/persister-partykit-client.js +6 -1
  68. package/lib/debug/persisters/persister-partykit-server.js +73 -82
  69. package/lib/debug/persisters/persister-remote.js +5 -0
  70. package/lib/debug/persisters/persister-sqlite-wasm.js +12 -6
  71. package/lib/debug/persisters/persister-sqlite3.js +12 -6
  72. package/lib/debug/persisters/persister-yjs.js +5 -0
  73. package/lib/debug/persisters.js +4 -0
  74. package/lib/debug/tinybase.js +4 -0
  75. package/lib/debug/ui-react-dom.js +5 -0
  76. package/lib/es6/persisters/persister-automerge.js +1 -1
  77. package/lib/es6/persisters/persister-automerge.js.gz +0 -0
  78. package/lib/es6/persisters/persister-browser.js +1 -1
  79. package/lib/es6/persisters/persister-browser.js.gz +0 -0
  80. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  81. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  82. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  83. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  84. package/lib/es6/persisters/persister-file.js +1 -1
  85. package/lib/es6/persisters/persister-file.js.gz +0 -0
  86. package/lib/es6/persisters/persister-indexed-db.js +1 -1
  87. package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
  88. package/lib/es6/persisters/persister-partykit-client.js +1 -1
  89. package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
  90. package/lib/es6/persisters/persister-partykit-server.js +1 -1
  91. package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
  92. package/lib/es6/persisters/persister-remote.js +1 -1
  93. package/lib/es6/persisters/persister-remote.js.gz +0 -0
  94. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  95. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  96. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  97. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  98. package/lib/es6/persisters/persister-yjs.js +1 -1
  99. package/lib/es6/persisters/persister-yjs.js.gz +0 -0
  100. package/lib/es6/persisters.js +1 -1
  101. package/lib/es6/persisters.js.gz +0 -0
  102. package/lib/es6/tinybase.js +1 -1
  103. package/lib/es6/tinybase.js.gz +0 -0
  104. package/lib/es6/ui-react-dom-debug.js +1 -1
  105. package/lib/es6/ui-react-dom-debug.js.gz +0 -0
  106. package/lib/persisters/persister-automerge.js +1 -1
  107. package/lib/persisters/persister-automerge.js.gz +0 -0
  108. package/lib/persisters/persister-browser.js +1 -1
  109. package/lib/persisters/persister-browser.js.gz +0 -0
  110. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  111. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  112. package/lib/persisters/persister-expo-sqlite.js +1 -1
  113. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  114. package/lib/persisters/persister-file.js +1 -1
  115. package/lib/persisters/persister-file.js.gz +0 -0
  116. package/lib/persisters/persister-indexed-db.js +1 -1
  117. package/lib/persisters/persister-indexed-db.js.gz +0 -0
  118. package/lib/persisters/persister-partykit-client.js +1 -1
  119. package/lib/persisters/persister-partykit-client.js.gz +0 -0
  120. package/lib/persisters/persister-partykit-server.js +1 -1
  121. package/lib/persisters/persister-partykit-server.js.gz +0 -0
  122. package/lib/persisters/persister-remote.js +1 -1
  123. package/lib/persisters/persister-remote.js.gz +0 -0
  124. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  125. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  126. package/lib/persisters/persister-sqlite3.js +1 -1
  127. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  128. package/lib/persisters/persister-yjs.js +1 -1
  129. package/lib/persisters/persister-yjs.js.gz +0 -0
  130. package/lib/persisters.js +1 -1
  131. package/lib/persisters.js.gz +0 -0
  132. package/lib/tinybase.js +1 -1
  133. package/lib/tinybase.js.gz +0 -0
  134. package/lib/types/persisters/persister-automerge.d.ts +36 -3
  135. package/lib/types/persisters/persister-browser.d.ts +71 -8
  136. package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +42 -8
  137. package/lib/types/persisters/persister-expo-sqlite.d.ts +40 -7
  138. package/lib/types/persisters/persister-file.d.ts +34 -3
  139. package/lib/types/persisters/persister-indexed-db.d.ts +36 -4
  140. package/lib/types/persisters/persister-partykit-client.d.ts +40 -4
  141. package/lib/types/persisters/persister-partykit-server.d.ts +23 -13
  142. package/lib/types/persisters/persister-remote.d.ts +40 -4
  143. package/lib/types/persisters/persister-sqlite-wasm.d.ts +46 -7
  144. package/lib/types/persisters/persister-sqlite3.d.ts +40 -7
  145. package/lib/types/persisters/persister-yjs.d.ts +37 -5
  146. package/lib/types/with-schemas/persisters/persister-automerge.d.ts +38 -4
  147. package/lib/types/with-schemas/persisters/persister-browser.d.ts +75 -10
  148. package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +44 -9
  149. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +42 -8
  150. package/lib/types/with-schemas/persisters/persister-file.d.ts +36 -4
  151. package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +38 -5
  152. package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +42 -5
  153. package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +32 -13
  154. package/lib/types/with-schemas/persisters/persister-remote.d.ts +42 -5
  155. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +48 -8
  156. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +41 -7
  157. package/lib/types/with-schemas/persisters/persister-yjs.d.ts +39 -6
  158. package/lib/umd/persisters/persister-automerge.js +1 -1
  159. package/lib/umd/persisters/persister-automerge.js.gz +0 -0
  160. package/lib/umd/persisters/persister-browser.js +1 -1
  161. package/lib/umd/persisters/persister-browser.js.gz +0 -0
  162. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  163. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  164. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  165. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  166. package/lib/umd/persisters/persister-file.js +1 -1
  167. package/lib/umd/persisters/persister-file.js.gz +0 -0
  168. package/lib/umd/persisters/persister-indexed-db.js +1 -1
  169. package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
  170. package/lib/umd/persisters/persister-partykit-client.js +1 -1
  171. package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
  172. package/lib/umd/persisters/persister-partykit-server.js +1 -1
  173. package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
  174. package/lib/umd/persisters/persister-remote.js +1 -1
  175. package/lib/umd/persisters/persister-remote.js.gz +0 -0
  176. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  177. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  178. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  179. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  180. package/lib/umd/persisters/persister-yjs.js +1 -1
  181. package/lib/umd/persisters/persister-yjs.js.gz +0 -0
  182. package/lib/umd/persisters.js +1 -1
  183. package/lib/umd/persisters.js.gz +0 -0
  184. package/lib/umd/tinybase.js +1 -1
  185. package/lib/umd/tinybase.js.gz +0 -0
  186. package/lib/umd/ui-react-dom-debug.js +1 -1
  187. package/lib/umd/ui-react-dom-debug.js.gz +0 -0
  188. package/lib/umd-es6/persisters/persister-automerge.js +1 -1
  189. package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
  190. package/lib/umd-es6/persisters/persister-browser.js +1 -1
  191. package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
  192. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  193. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  194. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  195. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  196. package/lib/umd-es6/persisters/persister-file.js +1 -1
  197. package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
  198. package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
  199. package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
  200. package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
  201. package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
  202. package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
  203. package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
  204. package/lib/umd-es6/persisters/persister-remote.js +1 -1
  205. package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
  206. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  207. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  208. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  209. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  210. package/lib/umd-es6/persisters/persister-yjs.js +1 -1
  211. package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
  212. package/lib/umd-es6/persisters.js +1 -1
  213. package/lib/umd-es6/persisters.js.gz +0 -0
  214. package/lib/umd-es6/tinybase.js +1 -1
  215. package/lib/umd-es6/tinybase.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/package.json +18 -18
  219. package/readme.md +2 -2
@@ -49,6 +49,7 @@ const createCustomPersister = (
49
49
  addPersisterListener,
50
50
  delPersisterListener,
51
51
  onIgnoredError,
52
+ [getThing, thing] = [],
52
53
  scheduleId = [],
53
54
  ) => {
54
55
  let listenerId;
@@ -176,6 +177,9 @@ const createCustomPersister = (
176
177
  destroy: () => persister.stopAutoLoad().stopAutoSave(),
177
178
  getStats: () => ({loads, saves}),
178
179
  };
180
+ if (getThing) {
181
+ persister[getThing] = () => thing;
182
+ }
179
183
  return objFreeze(persister);
180
184
  };
181
185
 
@@ -192,6 +196,7 @@ const createFilePersister = (store, filePath, onIgnoredError) => {
192
196
  addPersisterListener,
193
197
  delPersisterListener,
194
198
  onIgnoredError,
199
+ ['getFilePath', filePath],
195
200
  );
196
201
  };
197
202
 
@@ -52,6 +52,7 @@ const createCustomPersister = (
52
52
  addPersisterListener,
53
53
  delPersisterListener,
54
54
  onIgnoredError,
55
+ [getThing, thing] = [],
55
56
  scheduleId = [],
56
57
  ) => {
57
58
  let listenerId;
@@ -179,6 +180,9 @@ const createCustomPersister = (
179
180
  destroy: () => persister.stopAutoLoad().stopAutoSave(),
180
181
  getStats: () => ({loads, saves}),
181
182
  };
183
+ if (getThing) {
184
+ persister[getThing] = () => thing;
185
+ }
182
186
  return objFreeze(persister);
183
187
  };
184
188
 
@@ -268,6 +272,7 @@ const createIndexedDbPersister = (
268
272
  addPersisterListener,
269
273
  delPersisterListener,
270
274
  onIgnoredError,
275
+ ['getDbName', dbName],
271
276
  );
272
277
  };
273
278
 
@@ -66,6 +66,7 @@ const createCustomPersister = (
66
66
  addPersisterListener,
67
67
  delPersisterListener,
68
68
  onIgnoredError,
69
+ [getThing, thing] = [],
69
70
  scheduleId = [],
70
71
  ) => {
71
72
  let listenerId;
@@ -193,6 +194,9 @@ const createCustomPersister = (
193
194
  destroy: () => persister.stopAutoLoad().stopAutoSave(),
194
195
  getStats: () => ({loads, saves}),
195
196
  };
197
+ if (getThing) {
198
+ persister[getThing] = () => thing;
199
+ }
196
200
  return objFreeze(persister);
197
201
  };
198
202
 
@@ -218,7 +222,7 @@ const createPartyKitPersister = (
218
222
  '://' +
219
223
  host +
220
224
  '/parties/' +
221
- (connection.name ?? 'main') +
225
+ connection.name +
222
226
  '/' +
223
227
  room +
224
228
  storePath;
@@ -263,6 +267,7 @@ const createPartyKitPersister = (
263
267
  addPersisterListener,
264
268
  delPersisterListener,
265
269
  onIgnoredError,
270
+ ['getConnection', connection],
266
271
  );
267
272
  };
268
273
 
@@ -95,96 +95,86 @@ const saveStore = async (
95
95
  requestOrConnection,
96
96
  ) => {
97
97
  const storage = that.party.storage;
98
- const storagePrefix = that.config.storagePrefix ?? EMPTY_STRING;
99
- const promises = [storage.put(storagePrefix + HAS_STORE, 1)];
100
- const keyPrefixesToDelete = [];
101
- objMap(transactionChanges[0], (table, tableId) =>
102
- isUndefined(table)
103
- ? !initialSave &&
104
- that.canDelTable(tableId, requestOrConnection) &&
105
- arrayUnshift(
106
- keyPrefixesToDelete,
107
- constructStorageKey(storagePrefix, T, tableId),
108
- )
109
- : that.canSetTable(tableId, initialSave, requestOrConnection) &&
110
- objMap(table, (row, rowId) =>
111
- isUndefined(row)
112
- ? !initialSave &&
113
- that.canDelRow(tableId, rowId, requestOrConnection) &&
114
- arrayPush(
115
- keyPrefixesToDelete,
116
- constructStorageKey(storagePrefix, T, tableId, rowId),
117
- )
118
- : that.canSetRow(
119
- tableId,
120
- rowId,
121
- initialSave,
122
- requestOrConnection,
123
- ) &&
124
- objMap(row, (cell, cellId) =>
125
- isUndefined(cell)
126
- ? !initialSave &&
127
- that.canDelCell(
128
- tableId,
129
- rowId,
130
- cellId,
131
- requestOrConnection,
132
- ) &&
133
- arrayPush(
134
- promises,
135
- storage.delete(
136
- constructStorageKey(
137
- storagePrefix,
138
- T,
139
- tableId,
140
- rowId,
141
- cellId,
142
- ),
143
- ),
144
- )
145
- : that.canSetCell(
146
- tableId,
147
- rowId,
148
- cellId,
149
- cell,
150
- initialSave,
151
- requestOrConnection,
152
- ) &&
153
- arrayPush(
154
- promises,
155
- storage.put(
156
- constructStorageKey(
157
- storagePrefix,
158
- T,
159
- tableId,
160
- rowId,
161
- cellId,
162
- ),
163
- cell,
164
- ),
165
- ),
166
- ),
167
- ),
98
+ const prefix = that.config.storagePrefix ?? EMPTY_STRING;
99
+ const keysToSet = {
100
+ [prefix + HAS_STORE]: 1,
101
+ };
102
+ const keysToDel = [];
103
+ const keyPrefixesToDel = [];
104
+ await promiseAll(
105
+ objMap(transactionChanges[0], async (table, tableId) =>
106
+ isUndefined(table)
107
+ ? !initialSave &&
108
+ that.canDelTable(tableId, requestOrConnection) &&
109
+ arrayUnshift(
110
+ keyPrefixesToDel,
111
+ constructStorageKey(prefix, T, tableId),
112
+ )
113
+ : that.canSetTable(tableId, initialSave, requestOrConnection) &&
114
+ (await promiseAll(
115
+ objMap(table, async (row, rowId) =>
116
+ isUndefined(row)
117
+ ? !initialSave &&
118
+ that.canDelRow(tableId, rowId, requestOrConnection) &&
119
+ arrayPush(
120
+ keyPrefixesToDel,
121
+ constructStorageKey(prefix, T, tableId, rowId),
122
+ )
123
+ : that.canSetRow(
124
+ tableId,
125
+ rowId,
126
+ initialSave,
127
+ requestOrConnection,
128
+ ) &&
129
+ (await promiseAll(
130
+ objMap(row, async (cell, cellId) => {
131
+ const ids = [tableId, rowId, cellId];
132
+ const key = constructStorageKey(prefix, T, ...ids);
133
+ isUndefined(cell)
134
+ ? !initialSave &&
135
+ that.canDelCell(...ids, requestOrConnection) &&
136
+ arrayPush(keysToDel, key)
137
+ : that.canSetCell(
138
+ ...ids,
139
+ cell,
140
+ initialSave,
141
+ requestOrConnection,
142
+ await storage.get(key),
143
+ ) && (keysToSet[key] = cell);
144
+ }),
145
+ )),
146
+ ),
147
+ )),
148
+ ),
168
149
  );
169
- objMap(transactionChanges[1], (value, valueId) =>
170
- isUndefined(value)
171
- ? !initialSave &&
172
- that.canDelValue(valueId, requestOrConnection) &&
173
- arrayPush(promises, storage.delete(storagePrefix + V + valueId))
174
- : that.canSetValue(valueId, value, initialSave, requestOrConnection) &&
175
- arrayPush(promises, storage.put(storagePrefix + V + valueId, value)),
150
+ await promiseAll(
151
+ objMap(transactionChanges[1], async (value, valueId) => {
152
+ const key = prefix + V + valueId;
153
+ isUndefined(value)
154
+ ? !initialSave &&
155
+ that.canDelValue(valueId, requestOrConnection) &&
156
+ arrayPush(keysToDel, key)
157
+ : that.canSetValue(
158
+ valueId,
159
+ value,
160
+ initialSave,
161
+ requestOrConnection,
162
+ await storage.get(key),
163
+ ) && (keysToSet[key] = value);
164
+ }),
176
165
  );
177
- if (!arrayIsEmpty(keyPrefixesToDelete)) {
166
+ if (!arrayIsEmpty(keyPrefixesToDel)) {
178
167
  mapForEach(await storage.list(), (key) =>
179
168
  arrayEvery(
180
- keyPrefixesToDelete,
169
+ keyPrefixesToDel,
181
170
  (keyPrefixToDelete) =>
182
171
  !strStartsWith(key, keyPrefixToDelete) ||
183
- (arrayPush(promises, storage.delete(key)) && 0),
172
+ (arrayPush(keysToDel, key) && 0),
184
173
  ),
185
174
  );
186
175
  }
187
- await promiseAll(promises);
176
+ await storage.delete(keysToDel);
177
+ await storage.put(keysToSet);
188
178
  };
189
179
  const constructStorageKey = (storagePrefix, type, ...ids) =>
190
180
  construct(storagePrefix, type, slice(jsonString(ids), 1, -1));
@@ -249,13 +239,14 @@ class TinyBasePartyKitServer {
249
239
  _cell,
250
240
  _initialSave,
251
241
  _requestOrConnection,
242
+ _oldCell,
252
243
  ) {
253
244
  return true;
254
245
  }
255
246
  canDelCell(_tableId, _rowId, _cellId, _connection) {
256
247
  return true;
257
248
  }
258
- canSetValue(_valueId, _value, _initialSave, _requestOrConnection) {
249
+ canSetValue(_valueId, _value, _initialSave, _requestOrConnection, _oldValue) {
259
250
  return true;
260
251
  }
261
252
  canDelValue(_valueId, _connection) {
@@ -46,6 +46,7 @@ const createCustomPersister = (
46
46
  addPersisterListener,
47
47
  delPersisterListener,
48
48
  onIgnoredError,
49
+ [getThing, thing] = [],
49
50
  scheduleId = [],
50
51
  ) => {
51
52
  let listenerId;
@@ -173,6 +174,9 @@ const createCustomPersister = (
173
174
  destroy: () => persister.stopAutoLoad().stopAutoSave(),
174
175
  getStats: () => ({loads, saves}),
175
176
  };
177
+ if (getThing) {
178
+ persister[getThing] = () => thing;
179
+ }
176
180
  return objFreeze(persister);
177
181
  };
178
182
 
@@ -217,6 +221,7 @@ const createRemotePersister = (
217
221
  addPersisterListener,
218
222
  delPersisterListener,
219
223
  onIgnoredError,
224
+ ['getUrls', [loadUrl, saveUrl]],
220
225
  );
221
226
  };
222
227
 
@@ -356,6 +356,7 @@ const createCustomPersister = (
356
356
  addPersisterListener,
357
357
  delPersisterListener,
358
358
  onIgnoredError,
359
+ [getThing, thing] = [],
359
360
  scheduleId = [],
360
361
  ) => {
361
362
  let listenerId;
@@ -483,6 +484,9 @@ const createCustomPersister = (
483
484
  destroy: () => persister.stopAutoLoad().stopAutoSave(),
484
485
  getStats: () => ({loads, saves}),
485
486
  };
487
+ if (getThing) {
488
+ persister[getThing] = () => thing;
489
+ }
486
490
  return objFreeze(persister);
487
491
  };
488
492
 
@@ -495,7 +499,7 @@ const createJsonSqlitePersister = (
495
499
  onIgnoredError,
496
500
  [storeTableName],
497
501
  managedTableNames,
498
- scheduleId,
502
+ db,
499
503
  ) => {
500
504
  const [refreshSchema, loadTable, saveTable, transaction] =
501
505
  getCommandFunctions(cmd, managedTableNames, onIgnoredError);
@@ -528,7 +532,8 @@ const createJsonSqlitePersister = (
528
532
  addPersisterListener,
529
533
  delPersisterListener,
530
534
  onIgnoredError,
531
- scheduleId,
535
+ ['getDb', db],
536
+ db,
532
537
  );
533
538
  return persister;
534
539
  };
@@ -545,7 +550,7 @@ const createTabularSqlitePersister = (
545
550
  [valuesLoad, valuesSave, valuesTableName],
546
551
  ],
547
552
  managedTableNames,
548
- scheduleId,
553
+ db,
549
554
  ) => {
550
555
  const [refreshSchema, loadTable, saveTable, transaction] =
551
556
  getCommandFunctions(cmd, managedTableNames, onIgnoredError);
@@ -632,7 +637,8 @@ const createTabularSqlitePersister = (
632
637
  addPersisterListener,
633
638
  delPersisterListener,
634
639
  onIgnoredError,
635
- scheduleId,
640
+ ['getDb', db],
641
+ db,
636
642
  );
637
643
  return persister;
638
644
  };
@@ -741,7 +747,7 @@ const createSqlitePersister = (
741
747
  delUpdateListener,
742
748
  onSqlCommand,
743
749
  onIgnoredError,
744
- scheduleId,
750
+ db,
745
751
  ) => {
746
752
  let dataVersion;
747
753
  let schemaVersion;
@@ -792,7 +798,7 @@ const createSqlitePersister = (
792
798
  onIgnoredError,
793
799
  defaultedConfig,
794
800
  collValues(managedTableNamesSet),
795
- scheduleId,
801
+ db,
796
802
  );
797
803
  };
798
804
 
@@ -357,6 +357,7 @@ const createCustomPersister = (
357
357
  addPersisterListener,
358
358
  delPersisterListener,
359
359
  onIgnoredError,
360
+ [getThing, thing] = [],
360
361
  scheduleId = [],
361
362
  ) => {
362
363
  let listenerId;
@@ -484,6 +485,9 @@ const createCustomPersister = (
484
485
  destroy: () => persister.stopAutoLoad().stopAutoSave(),
485
486
  getStats: () => ({loads, saves}),
486
487
  };
488
+ if (getThing) {
489
+ persister[getThing] = () => thing;
490
+ }
487
491
  return objFreeze(persister);
488
492
  };
489
493
 
@@ -496,7 +500,7 @@ const createJsonSqlitePersister = (
496
500
  onIgnoredError,
497
501
  [storeTableName],
498
502
  managedTableNames,
499
- scheduleId,
503
+ db,
500
504
  ) => {
501
505
  const [refreshSchema, loadTable, saveTable, transaction] =
502
506
  getCommandFunctions(cmd, managedTableNames, onIgnoredError);
@@ -529,7 +533,8 @@ const createJsonSqlitePersister = (
529
533
  addPersisterListener,
530
534
  delPersisterListener,
531
535
  onIgnoredError,
532
- scheduleId,
536
+ ['getDb', db],
537
+ db,
533
538
  );
534
539
  return persister;
535
540
  };
@@ -546,7 +551,7 @@ const createTabularSqlitePersister = (
546
551
  [valuesLoad, valuesSave, valuesTableName],
547
552
  ],
548
553
  managedTableNames,
549
- scheduleId,
554
+ db,
550
555
  ) => {
551
556
  const [refreshSchema, loadTable, saveTable, transaction] =
552
557
  getCommandFunctions(cmd, managedTableNames, onIgnoredError);
@@ -633,7 +638,8 @@ const createTabularSqlitePersister = (
633
638
  addPersisterListener,
634
639
  delPersisterListener,
635
640
  onIgnoredError,
636
- scheduleId,
641
+ ['getDb', db],
642
+ db,
637
643
  );
638
644
  return persister;
639
645
  };
@@ -742,7 +748,7 @@ const createSqlitePersister = (
742
748
  delUpdateListener,
743
749
  onSqlCommand,
744
750
  onIgnoredError,
745
- scheduleId,
751
+ db,
746
752
  ) => {
747
753
  let dataVersion;
748
754
  let schemaVersion;
@@ -793,7 +799,7 @@ const createSqlitePersister = (
793
799
  onIgnoredError,
794
800
  defaultedConfig,
795
801
  collValues(managedTableNamesSet),
796
- scheduleId,
802
+ db,
797
803
  );
798
804
  };
799
805
 
@@ -61,6 +61,7 @@ const createCustomPersister = (
61
61
  addPersisterListener,
62
62
  delPersisterListener,
63
63
  onIgnoredError,
64
+ [getThing, thing] = [],
64
65
  scheduleId = [],
65
66
  ) => {
66
67
  let listenerId;
@@ -188,6 +189,9 @@ const createCustomPersister = (
188
189
  destroy: () => persister.stopAutoLoad().stopAutoSave(),
189
190
  getStats: () => ({loads, saves}),
190
191
  };
192
+ if (getThing) {
193
+ persister[getThing] = () => thing;
194
+ }
191
195
  return objFreeze(persister);
192
196
  };
193
197
 
@@ -365,6 +369,7 @@ const createYjsPersister = (
365
369
  addPersisterListener,
366
370
  delPersisterListener,
367
371
  onIgnoredError,
372
+ ['getYDoc', yDoc],
368
373
  );
369
374
  };
370
375
 
@@ -38,6 +38,7 @@ const createCustomPersister = (
38
38
  addPersisterListener,
39
39
  delPersisterListener,
40
40
  onIgnoredError,
41
+ [getThing, thing] = [],
41
42
  scheduleId = [],
42
43
  ) => {
43
44
  let listenerId;
@@ -165,6 +166,9 @@ const createCustomPersister = (
165
166
  destroy: () => persister.stopAutoLoad().stopAutoSave(),
166
167
  getStats: () => ({loads, saves}),
167
168
  };
169
+ if (getThing) {
170
+ persister[getThing] = () => thing;
171
+ }
168
172
  return objFreeze(persister);
169
173
  };
170
174
 
@@ -1050,6 +1050,7 @@ const createCustomPersister = (
1050
1050
  addPersisterListener,
1051
1051
  delPersisterListener,
1052
1052
  onIgnoredError,
1053
+ [getThing, thing] = [],
1053
1054
  scheduleId = [],
1054
1055
  ) => {
1055
1056
  let listenerId;
@@ -1177,6 +1178,9 @@ const createCustomPersister = (
1177
1178
  destroy: () => persister.stopAutoLoad().stopAutoSave(),
1178
1179
  getStats: () => ({loads, saves}),
1179
1180
  };
1181
+ if (getThing) {
1182
+ persister[getThing] = () => thing;
1183
+ }
1180
1184
  return objFreeze(persister);
1181
1185
  };
1182
1186
 
@@ -1593,6 +1593,7 @@ const createCustomPersister = (
1593
1593
  addPersisterListener,
1594
1594
  delPersisterListener,
1595
1595
  onIgnoredError,
1596
+ [getThing, thing] = [],
1596
1597
  scheduleId = [],
1597
1598
  ) => {
1598
1599
  let listenerId;
@@ -1720,6 +1721,9 @@ const createCustomPersister = (
1720
1721
  destroy: () => persister.stopAutoLoad().stopAutoSave(),
1721
1722
  getStats: () => ({loads, saves}),
1722
1723
  };
1724
+ if (getThing) {
1725
+ persister[getThing] = () => thing;
1726
+ }
1723
1727
  return objFreeze(persister);
1724
1728
  };
1725
1729
 
@@ -1752,6 +1756,7 @@ const createStoragePersister = (
1752
1756
  addPersisterListener,
1753
1757
  delPersisterListener,
1754
1758
  onIgnoredError,
1759
+ ['getStorageName', storageName],
1755
1760
  );
1756
1761
  };
1757
1762
  const createSessionPersister = (store, storageName, onIgnoredError) =>
@@ -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,u=(t,e)=>n(t,(t=>t[e])),i=(n,e)=>!t(u(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)?(u=e,null==(l=n)||l.delete(u),n):null==n?void 0:n.set(e,o);var l,u},h=(t,n,e)=>{var o,l,u;return l=n,null!=(u=null==(o=t)?void 0:o.has(l))&&u||y(t,n,e()),v(t,n)};var f=(t,n,e)=>new Promise(((o,l)=>{var u=t=>{try{r(e.next(t))}catch(t){l(t)}},i=t=>{try{r(e.throw(t))}catch(t){l(t)}},r=t=>t.done?o(t.value):Promise.resolve(t.value).then(u,i);r((e=e.apply(t,n)).next())}));const p=s(),g=s();var A=(t,n,e)=>new Promise(((o,l)=>{var u=t=>{try{r(e.next(t))}catch(t){l(t)}},i=t=>{try{r(e.throw(t))}catch(t){l(t)}},r=t=>t.done?o(t.value):Promise.resolve(t.value).then(u,i);r((e=e.apply(t,n)).next())}));const L=(t,n)=>[t[n].t,t[n].v],m=(n,e,o,l)=>{const u=t(e)?n:((t,n,e)=>(i(t,n)||(t[n]={}),t[n]))(n,e);let c;return d(o,((t,n)=>{l(u,n,t)&&(c=1)})),d(u,((t,n)=>{i(o,n)||(r(u,n),c=1)})),!t(e)&&a(u)&&r(n,e),c},S=(e,o,i="tinybase",s)=>(o.change((t=>t[i]={})),((e,o,u,i,r,d,c=[])=>{let s,A,L,m=0,S=0;h(p,c,(()=>0)),h(g,c,(()=>[]));const w=t=>f(void 0,null,(function*(){return 2!=m&&(m=1,yield x.schedule((()=>f(void 0,null,(function*(){yield t(),m=0}))))),x})),x={load:(t,n)=>f(void 0,null,(function*(){return yield w((()=>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 x.stopAutoLoad(),yield x.load(t,n),S=1,L=i(((t,n)=>f(void 0,null,(function*(){if(n){const t=n();yield w((()=>f(void 0,null,(function*(){return e.setTransactionChanges(t)}))))}else yield w((()=>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)}}))))})))),x})),stopAutoLoad:()=>(S&&(r(L),L=void 0,S=0),x),save:t=>f(void 0,null,(function*(){return 1!=m&&(m=2,yield x.schedule((()=>f(void 0,null,(function*(){try{yield u(e.getContent,t)}catch(t){null==d||d(t)}m=0}))))),x})),startAutoSave:()=>f(void 0,null,(function*(){return yield x.stopAutoSave().save(),s=e.addDidFinishTransactionListener(((t,n)=>{const[e,o]=n();a(e)&&a(o)||x.save((()=>[e,o]))})),x})),stopAutoSave:()=>(n(s,e.delListener),x),schedule:(...n)=>f(void 0,null,(function*(){return((t,...n)=>{t.push(...n)})(v(g,c),...n),yield f(void 0,null,(function*(){if(!v(p,c)){for(y(p,c,1);!t((n=v(g,c),A=n.shift()));)try{yield A()}catch(t){null==d||d(t)}y(p,c,0)}var n})),x})),getStore:()=>e,destroy:()=>x.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return l(x)})(e,(()=>A(void 0,null,(function*(){return 2==c(o.doc[i])?L(o.doc,i):void 0}))),((e,l)=>A(void 0,null,(function*(){return o.change((o=>((e,o,l,i)=>{((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==i?void 0:i(),(([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(u(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(u(t,n)!==e)return t[n]=e,1})))))),m(s,void 0,n,((t,n,e)=>{u(s,n)!==e&&(s[n]=e)}))}})(o,i,e,l)))}))),(t=>{const n=({doc:n})=>t((()=>L(n,i)));return o.on("change",n),n}),(t=>{o.removeListener("change",t)}),s));export{S as createAutomergePersister};
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,u=(t,e)=>n(t,(t=>t[e])),i=(n,e)=>!t(u(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)?(u=e,null==(l=n)||l.delete(u),n):null==n?void 0:n.set(e,o);var l,u},h=(t,n,e)=>{var o,l,u;return l=n,null!=(u=null==(o=t)?void 0:o.has(l))&&u||y(t,n,e()),v(t,n)};var f=(t,n,e)=>new Promise(((o,l)=>{var u=t=>{try{r(e.next(t))}catch(t){l(t)}},i=t=>{try{r(e.throw(t))}catch(t){l(t)}},r=t=>t.done?o(t.value):Promise.resolve(t.value).then(u,i);r((e=e.apply(t,n)).next())}));const p=s(),g=s();var A=(t,n,e)=>new Promise(((o,l)=>{var u=t=>{try{r(e.next(t))}catch(t){l(t)}},i=t=>{try{r(e.throw(t))}catch(t){l(t)}},r=t=>t.done?o(t.value):Promise.resolve(t.value).then(u,i);r((e=e.apply(t,n)).next())}));const L=(t,n)=>[t[n].t,t[n].v],m=(n,e,o,l)=>{const u=t(e)?n:((t,n,e)=>(i(t,n)||(t[n]={}),t[n]))(n,e);let c;return d(o,((t,n)=>{l(u,n,t)&&(c=1)})),d(u,((t,n)=>{i(o,n)||(r(u,n),c=1)})),!t(e)&&a(u)&&r(n,e),c},S=(e,o,i="tinybase",s)=>(o.change((t=>t[i]={})),((e,o,u,i,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=i(((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 u(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),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[i])?L(o.doc,i):void 0}))),((e,l)=>A(void 0,null,(function*(){return o.change((o=>((e,o,l,i)=>{((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==i?void 0:i(),(([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(u(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(u(t,n)!==e)return t[n]=e,1})))))),m(s,void 0,n,((t,n,e)=>{u(s,n)!==e&&(s[n]=e)}))}})(o,i,e,l)))}))),(t=>{const n=({doc:n})=>t((()=>L(n,i)));return o.on("change",n),n}),(t=>{o.removeListener("change",t)}),s,["getDocHandle",o]));export{S 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),u=JSON.parse,i=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{i(n.next(t))}catch(t){l(t)}},u=t=>{try{i(n.throw(t))}catch(t){l(t)}},i=t=>t.done?o(t.value):Promise.resolve(t.value).then(r,u);i((n=n.apply(t,e)).next())}));const v=i(),y=i();var f=(t,e,n)=>new Promise(((o,l)=>{var r=t=>{try{i(n.next(t))}catch(t){l(t)}},u=t=>{try{i(n.throw(t))}catch(t){l(t)}},i=t=>t.done?o(t.value):Promise.resolve(t.value).then(r,u);i((n=n.apply(t,e)).next())}));const h="storage",p=globalThis.window,g=(o,i,g,S)=>((t,n,o,u,i,f,h=[])=>{let p,g,S,A=0,m=0;d(v,h,(()=>0)),d(y,h,(()=>[]));const w=t=>c(void 0,null,(function*(){return 2!=A&&(A=1,yield L.schedule((()=>c(void 0,null,(function*(){yield t(),A=0}))))),L})),L={load:(e,o)=>c(void 0,null,(function*(){return yield w((()=>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 L.stopAutoLoad(),yield L.load(e,o),m=1,S=u(((e,o)=>c(void 0,null,(function*(){if(o){const e=o();yield w((()=>c(void 0,null,(function*(){return t.setTransactionChanges(e)}))))}else yield w((()=>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)}}))))})))),L})),stopAutoLoad:()=>(m&&(i(S),S=void 0,m=0),L),save:e=>c(void 0,null,(function*(){return 1!=A&&(A=2,yield L.schedule((()=>c(void 0,null,(function*(){try{yield o(t.getContent,e)}catch(t){null==f||f(t)}A=0}))))),L})),startAutoSave:()=>c(void 0,null,(function*(){return yield L.stopAutoSave().save(),p=t.addDidFinishTransactionListener(((t,e)=>{const[n,o]=e();r(n)&&r(o)||L.save((()=>[n,o]))})),L})),stopAutoSave:()=>{var n,o;return n=p,o=t.delListener,!!e(n)||o(n),L},schedule:(...t)=>c(void 0,null,(function*(){return((t,...e)=>{t.push(...e)})(a(y,h),...t),yield c(void 0,null,(function*(){if(!a(v,h)){for(s(v,h,1);!e((t=a(y,h),g=t.shift()));)try{yield g()}catch(t){null==f||f(t)}s(v,h,0)}var t})),L})),getStore:()=>t,destroy:()=>L.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return l(L)})(o,(()=>f(void 0,null,(function*(){return u(g.getItem(i))}))),(e=>f(void 0,null,(function*(){return g.setItem(i,(o=e(),JSON.stringify(o,((e,o)=>t(o,Map)?n.fromEntries([...o]):o))));var o}))),(t=>{const e=e=>{e.storageArea===g&&e.key===i&&t((()=>u(e.newValue)))};return p.addEventListener(h,e),e}),(t=>p.removeEventListener(h,t)),S),S=(t,e,n)=>g(t,e,localStorage,n),A=(t,e,n)=>g(t,e,sessionStorage,n);export{S as createLocalPersister,A as createSessionPersister};
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),u=JSON.parse,i=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{i(n.next(t))}catch(t){l(t)}},u=t=>{try{i(n.throw(t))}catch(t){l(t)}},i=t=>t.done?o(t.value):Promise.resolve(t.value).then(r,u);i((n=n.apply(t,e)).next())}));const v=i(),y=i();var f=(t,e,n)=>new Promise(((o,l)=>{var r=t=>{try{i(n.next(t))}catch(t){l(t)}},u=t=>{try{i(n.throw(t))}catch(t){l(t)}},i=t=>t.done?o(t.value):Promise.resolve(t.value).then(r,u);i((n=n.apply(t,e)).next())}));const h="storage",g=globalThis.window,p=(o,i,p,S)=>((t,n,o,u,i,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=u(((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&&(i(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),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 u(p.getItem(i))}))),(e=>f(void 0,null,(function*(){return p.setItem(i,(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===i&&t((()=>u(e.newValue)))};return g.addEventListener(h,e),e}),(t=>g.removeEventListener(h,t)),S,["getStorageName",i]),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 +1 @@
1
- const e=e=>typeof e,n="tinybase",l=",",t=e(""),o=(e,n)=>e.repeat(n),r=Promise,i=setInterval,u=clearInterval,d=(e,n)=>e instanceof n,a=e=>null==e,c=(e,n,l)=>a(e)?null==l?void 0:l():n(e),s=n=>e(n)==t,v=(e,n,l)=>e.slice(n,l),y=e=>e.length,f=e=>{return n=function*(){return r.all(e)},new Promise(((e,l)=>{var t=e=>{try{r(n.next(e))}catch(e){l(e)}},o=e=>{try{r(n.throw(e))}catch(e){l(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,o);r((n=n.apply(void 0,null)).next())}));var n},E=(e,n="")=>e.join(n),h=(e,n)=>e.map(n),p=e=>0==y(e),m=(e,n)=>e.filter(n),T=(e,...n)=>e.push(...n),O=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},A=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},L=(e,n)=>null==e?void 0:e.delete(n),P=Object,w=P.keys,b=P.freeze,N=(e=[])=>P.fromEntries(e),R=(...e)=>P.assign({},...e),x=(e,n)=>h(P.entries(e),(([e,l])=>n(l,e))),S=e=>P.values(e),C=e=>y(w(e)),D=e=>(e=>d(e,P)&&e.constructor==P)(e)&&0==C(e),I=e=>new Map(e),g=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},F=(e,n)=>null==e?void 0:e.get(n),M=(e,n)=>{var l;return h([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},$=(e,n,l)=>a(l)?(L(e,n),e):null==e?void 0:e.set(n,l),j=(e,n,l)=>(O(e,n)||$(e,n,l()),F(e,n)),_=(e,n,l,t=$)=>(x(n,((n,t)=>l(e,t,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,l)=>n(l)))})(e,(l=>((e,n)=>!a(((e,n)=>c(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),B=e=>new Set(Array.isArray(e)||a(e)?e:[e]),H=(e,n)=>null==e?void 0:e.add(n),W="_",U="_id",k=e=>`"${e.replace(/"/g,'""')}"`;var J=Object.defineProperty,Y=Object.getOwnPropertySymbols,z=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable,K=(e,n,l)=>n in e?J(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,V=(e,n)=>{for(var l in n||(n={}))z.call(n,l)&&K(e,l,n[l]);if(Y)for(var l of Y(n))G.call(n,l)&&K(e,l,n[l]);return e},q=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const Q="FROM pragma_table_",X="WHERE",Z=(e,n,t)=>{const o=I();return[()=>q(void 0,null,(function*(){return _(o,N(yield f(h(yield e("SELECT name "+Q+"list WHERE schema='main'AND type='table'AND name IN("+ne(n)+")",n),(n=>q(void 0,[n],(function*({name:n}){return[n,N(h(yield e("SELECT name,type "+Q+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>$(o,n,_(j(o,n,I),l,((e,n,l)=>{l!=F(e,n)&&$(e,n,l)}),((e,n)=>$(e,n))))),((e,n)=>$(o,n)))})),(n,l)=>q(void 0,null,(function*(){return((e,n)=>!a(F(F(o,e),n)))(n,l)?N(m(h(yield e("SELECT*FROM"+k(n)),(e=>{return[e[l],(n=V({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!a(e)&&!D(n)))):{}})),(n,t,r,i,u,d=!1)=>q(void 0,null,(function*(){const c=B();x(null!=r?r:{},(e=>h(w(null!=e?e:{}),(e=>H(c,e)))));const s=A(c);if(!d&&u&&p(s)&&O(o,n))return yield e("DROP TABLE"+k(n)),void $(o,n);if(p(s)||O(o,n)){const l=F(o,n),r=B(g(l));yield f([...h(s,(t=>q(void 0,null,(function*(){L(r,t)||(yield e(`ALTER TABLE${k(n)}ADD${k(t)}`),$(l,t,""))})))),...!d&&i?h(A(r),(o=>q(void 0,null,(function*(){o!=t&&(yield e(`ALTER TABLE${k(n)}DROP${k(o)}`),$(l,o))})))):[]])}else yield e(`CREATE TABLE${k(n)}(${k(t)} PRIMARY KEY ON CONFLICT REPLACE${E(h(s,(e=>l+k(e))))});`),$(o,n,I([[t,""],...h(s,(e=>[e,""]))]));if(d)a(r)?yield e("DELETE FROM"+k(n)+"WHERE 1"):yield f(x(r,((l,o)=>q(void 0,null,(function*(){a(l)?yield e("DELETE FROM"+k(n)+X+k(t)+"=?",[o]):p(s)||(yield ee(e,n,t,w(l),[o,...S(l)]))})))));else if(p(s))O(o,n)&&(yield e("DELETE FROM"+k(n)+"WHERE 1"));else{const l=m(g(F(o,n)),(e=>e!=t)),i=[],u=[];x(null!=r?r:{},((e,n)=>{T(i,n,...h(l,(n=>null==e?void 0:e[n]))),T(u,n)})),yield ee(e,n,t,l,i),yield e("DELETE FROM"+k(n)+X+k(t)+"NOT IN("+ne(u)+")",u)}})),n=>q(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==t||t(e)}return yield e("END"),l}))]},ee=(e,n,t,r,i)=>q(void 0,null,(function*(){return yield e("INSERT INTO"+k(n)+"("+k(t)+E(h(r,(e=>l+k(e))))+")VALUES"+v(o(`,(?${o(",?",y(r))})`,y(i)/(y(r)+1)),1)+"ON CONFLICT("+k(t)+")DO UPDATE SET"+E(h(r,(e=>k(e)+"=excluded."+k(e))),l),i)})),ne=e=>E(h(e,(()=>"?")),l),le=JSON.parse;var te=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const oe=I(),re=I(),ie=(e,n,l,t,o,r,i=[])=>{let u,d,s,v=0,y=0;j(oe,i,(()=>0)),j(re,i,(()=>[]));const f=e=>te(void 0,null,(function*(){return 2!=v&&(v=1,yield E.schedule((()=>te(void 0,null,(function*(){yield e(),v=0}))))),E})),E={load:(l,t)=>te(void 0,null,(function*(){return yield f((()=>te(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>te(void 0,[...l],(function*(l={},o={}){return E.stopAutoLoad(),yield E.load(l,o),y=1,s=t(((l,t)=>te(void 0,null,(function*(){if(t){const n=t();yield f((()=>te(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield f((()=>te(void 0,null,(function*(){var t;try{e.setContent(null!=(t=null==l?void 0:l())?t:yield n())}catch(e){null==r||r(e)}}))))})))),E})),stopAutoLoad:()=>(y&&(o(s),s=void 0,y=0),E),save:n=>te(void 0,null,(function*(){return 1!=v&&(v=2,yield E.schedule((()=>te(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}v=0}))))),E})),startAutoSave:()=>te(void 0,null,(function*(){return yield E.stopAutoSave().save(),u=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();D(l)&&D(t)||E.save((()=>[l,t]))})),E})),stopAutoSave:()=>(c(u,e.delListener),E),schedule:(...e)=>te(void 0,null,(function*(){return T(F(re,i),...e),yield te(void 0,null,(function*(){if(!F(oe,i)){for($(oe,i,1);!a((e=F(re,i),d=e.shift()));)try{yield d()}catch(e){null==r||r(e)}$(oe,i,0)}var e})),E})),getStore:()=>e,destroy:()=>E.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return b(E)};var ue=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const de="store",ae=(e,n,l,t,o,[r],i,u)=>{const[a,c,s,v]=Z(n,i,o);return ie(e,(()=>ue(void 0,null,(function*(){return yield v((()=>ue(void 0,null,(function*(){var e,n;return yield a(),le(null!=(n=null==(e=(yield c(r,U))[W])?void 0:e[de])?n:"null")}))))}))),(e=>ue(void 0,null,(function*(){return yield v((()=>ue(void 0,null,(function*(){var n,l;yield a(),yield s(r,U,{[W]:{[de]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>d(n,Map)?P.fromEntries([...n]):n)))}},!0,!0)}))))}))),l,t,o,u)};var ce=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const se=(e,n,l,t,o,[r,i,[u,d,c]],s,v)=>{const[y,E,h,p]=Z(n,s,o),T=(e,n)=>ce(void 0,null,(function*(){return yield f(M(i,((l,t)=>ce(void 0,[l,t],(function*([l,t,o,r],i){const u=e[i];n&&void 0===u||(yield h(l,t,u,o,r,n))})))))})),O=(e,n)=>ce(void 0,null,(function*(){return d?yield h(c,U,{[W]:e},!0,!0,n):null}));return ie(e,(()=>ce(void 0,null,(function*(){return yield p((()=>ce(void 0,null,(function*(){yield y();const e=yield ce(void 0,null,(function*(){return N(m(yield f(M(r,((e,n)=>ce(void 0,[e,n],(function*([e,n],l){return[e,yield E(l,n)]}))))),(e=>!D(e[1]))))})),n=yield ce(void 0,null,(function*(){return u?(yield E(c,U))[W]:{}}));return D(e)&&a(n)?void 0:[e,n]}))))}))),((e,n)=>ce(void 0,null,(function*(){return yield p((()=>ce(void 0,null,(function*(){if(yield y(),a(n)){const[n,l]=e();yield T(n),yield O(l)}else{const[e,l]=n();yield T(e,!0),yield O(l,!0)}}))))}))),l,t,o,v)},ve="json",ye="autoLoadIntervalSeconds",fe="rowIdColumnName",Ee="tableId",he="tableName",pe={mode:ve,[ye]:1},me={load:0,save:0,[he]:n+"_values"},Te=(e,n,l,t)=>{const o=I();return x(e,((e,r)=>{const i=v(S(R(n,s(e)?{[l]:e}:e)),0,C(n));a(i[0])||t(r,i[0])||$(o,r,i)})),o};var Oe=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const Ae="pragma ",Le="data_version",Pe="schema_version",we=(e,l,t,o,r,d,a,c)=>{let y,f;const[E,h,p,m]=(e=>{const l=(e=>R(pe,s(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[ye];if(l.mode==ve){const{storeTableName:e=n}=l;return[1,t,[e],B(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=v(S(R(me,i)),0,C(me)),d=u[2],a=B(d);return[0,t,[Te(o,{[Ee]:null,[fe]:U},Ee,(e=>H(a,e)&&e==d)),Te(r,{[he]:null,[fe]:U,deleteEmptyColumns:0,deleteEmptyTable:0},he,((e,n)=>H(a,n)&&n==d)),u],a]})(l);return(E?ae:se)(e,d?(e,n)=>Oe(void 0,null,(function*(){return d(e,n),yield t(e,n)})):t,(e=>[i((()=>Oe(void 0,null,(function*(){try{const n=(yield t(Ae+Le))[0][Le],l=(yield t(Ae+Pe))[0][Pe];n==(null!=y?y:y=n)&&l==(null!=f?f:f=l)||(e(),y=n,f=l)}catch(e){}}))),1e3*h),o((n=>m.has(n)?e():0))]),(([e,n])=>{u(e),y=f=null,r(n)}),a,p,A(m),c)},be=(e,n,l,t,o)=>we(e,l,((e,...l)=>{return t=[e,...l],o=function*(e,l=[]){return yield n.execO(e,l)},new Promise(((e,n)=>{var l=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(l,r);i((o=o.apply(void 0,t)).next())}));var t,o}),(e=>n.onUpdate(((n,l,t)=>e(t)))),(e=>e()),t,o,n);export{be as createCrSqliteWasmPersister};
1
+ const e=e=>typeof e,n="tinybase",l=",",t=e(""),o=(e,n)=>e.repeat(n),r=Promise,i=setInterval,u=clearInterval,d=(e,n)=>e instanceof n,a=e=>null==e,c=(e,n,l)=>a(e)?null==l?void 0:l():n(e),s=n=>e(n)==t,v=(e,n,l)=>e.slice(n,l),y=e=>e.length,f=e=>{return n=function*(){return r.all(e)},new Promise(((e,l)=>{var t=e=>{try{r(n.next(e))}catch(e){l(e)}},o=e=>{try{r(n.throw(e))}catch(e){l(e)}},r=n=>n.done?e(n.value):Promise.resolve(n.value).then(t,o);r((n=n.apply(void 0,null)).next())}));var n},E=(e,n="")=>e.join(n),h=(e,n)=>e.map(n),p=e=>0==y(e),m=(e,n)=>e.filter(n),T=(e,...n)=>e.push(...n),O=(e,n)=>{var l;return null!=(l=null==e?void 0:e.has(n))&&l},A=e=>{var n;return[...null!=(n=null==e?void 0:e.values())?n:[]]},L=(e,n)=>null==e?void 0:e.delete(n),P=Object,b=P.keys,w=P.freeze,N=(e=[])=>P.fromEntries(e),R=(...e)=>P.assign({},...e),x=(e,n)=>h(P.entries(e),(([e,l])=>n(l,e))),S=e=>P.values(e),C=e=>y(b(e)),D=e=>(e=>d(e,P)&&e.constructor==P)(e)&&0==C(e),g=e=>new Map(e),I=e=>{var n;return[...null!=(n=null==e?void 0:e.keys())?n:[]]},F=(e,n)=>null==e?void 0:e.get(n),M=(e,n)=>{var l;return h([...null!=(l=null==e?void 0:e.entries())?l:[]],(([e,l])=>n(l,e)))},$=(e,n,l)=>a(l)?(L(e,n),e):null==e?void 0:e.set(n,l),j=(e,n,l)=>(O(e,n)||$(e,n,l()),F(e,n)),_=(e,n,l,t=$)=>(x(n,((n,t)=>l(e,t,n))),((e,n)=>{((e,n)=>{null==e||e.forEach(n)})(e,((e,l)=>n(l)))})(e,(l=>((e,n)=>!a(((e,n)=>c(e,(e=>e[n])))(e,n)))(n,l)?0:t(e,l))),e),B=e=>new Set(Array.isArray(e)||a(e)?e:[e]),H=(e,n)=>null==e?void 0:e.add(n),W="_",U="_id",k=e=>`"${e.replace(/"/g,'""')}"`;var J=Object.defineProperty,Y=Object.getOwnPropertySymbols,z=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable,K=(e,n,l)=>n in e?J(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,V=(e,n)=>{for(var l in n||(n={}))z.call(n,l)&&K(e,l,n[l]);if(Y)for(var l of Y(n))G.call(n,l)&&K(e,l,n[l]);return e},q=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const Q="FROM pragma_table_",X="WHERE",Z=(e,n,t)=>{const o=g();return[()=>q(void 0,null,(function*(){return _(o,N(yield f(h(yield e("SELECT name "+Q+"list WHERE schema='main'AND type='table'AND name IN("+ne(n)+")",n),(n=>q(void 0,[n],(function*({name:n}){return[n,N(h(yield e("SELECT name,type "+Q+"info(?)",[n]),(({name:e,type:n})=>[e,n])))]})))))),((e,n,l)=>$(o,n,_(j(o,n,g),l,((e,n,l)=>{l!=F(e,n)&&$(e,n,l)}),((e,n)=>$(e,n))))),((e,n)=>$(o,n)))})),(n,l)=>q(void 0,null,(function*(){return((e,n)=>!a(F(F(o,e),n)))(n,l)?N(m(h(yield e("SELECT*FROM"+k(n)),(e=>{return[e[l],(n=V({},e),t=l,delete n[t],n)];var n,t})),(([e,n])=>!a(e)&&!D(n)))):{}})),(n,t,r,i,u,d=!1)=>q(void 0,null,(function*(){const c=B();x(null!=r?r:{},(e=>h(b(null!=e?e:{}),(e=>H(c,e)))));const s=A(c);if(!d&&u&&p(s)&&O(o,n))return yield e("DROP TABLE"+k(n)),void $(o,n);if(p(s)||O(o,n)){const l=F(o,n),r=B(I(l));yield f([...h(s,(t=>q(void 0,null,(function*(){L(r,t)||(yield e(`ALTER TABLE${k(n)}ADD${k(t)}`),$(l,t,""))})))),...!d&&i?h(A(r),(o=>q(void 0,null,(function*(){o!=t&&(yield e(`ALTER TABLE${k(n)}DROP${k(o)}`),$(l,o))})))):[]])}else yield e(`CREATE TABLE${k(n)}(${k(t)} PRIMARY KEY ON CONFLICT REPLACE${E(h(s,(e=>l+k(e))))});`),$(o,n,g([[t,""],...h(s,(e=>[e,""]))]));if(d)a(r)?yield e("DELETE FROM"+k(n)+"WHERE 1"):yield f(x(r,((l,o)=>q(void 0,null,(function*(){a(l)?yield e("DELETE FROM"+k(n)+X+k(t)+"=?",[o]):p(s)||(yield ee(e,n,t,b(l),[o,...S(l)]))})))));else if(p(s))O(o,n)&&(yield e("DELETE FROM"+k(n)+"WHERE 1"));else{const l=m(I(F(o,n)),(e=>e!=t)),i=[],u=[];x(null!=r?r:{},((e,n)=>{T(i,n,...h(l,(n=>null==e?void 0:e[n]))),T(u,n)})),yield ee(e,n,t,l,i),yield e("DELETE FROM"+k(n)+X+k(t)+"NOT IN("+ne(u)+")",u)}})),n=>q(void 0,null,(function*(){let l;yield e("BEGIN");try{l=yield n()}catch(e){null==t||t(e)}return yield e("END"),l}))]},ee=(e,n,t,r,i)=>q(void 0,null,(function*(){return yield e("INSERT INTO"+k(n)+"("+k(t)+E(h(r,(e=>l+k(e))))+")VALUES"+v(o(`,(?${o(",?",y(r))})`,y(i)/(y(r)+1)),1)+"ON CONFLICT("+k(t)+")DO UPDATE SET"+E(h(r,(e=>k(e)+"=excluded."+k(e))),l),i)})),ne=e=>E(h(e,(()=>"?")),l),le=JSON.parse;var te=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const oe=g(),re=g(),ie=(e,n,l,t,o,r,[i,u]=[],d=[])=>{let s,v,y,f=0,E=0;j(oe,d,(()=>0)),j(re,d,(()=>[]));const h=e=>te(void 0,null,(function*(){return 2!=f&&(f=1,yield p.schedule((()=>te(void 0,null,(function*(){yield e(),f=0}))))),p})),p={load:(l,t)=>te(void 0,null,(function*(){return yield h((()=>te(void 0,null,(function*(){try{e.setContent(yield n())}catch(n){e.setContent([l,t])}}))))})),startAutoLoad:(...l)=>te(void 0,[...l],(function*(l={},o={}){return p.stopAutoLoad(),yield p.load(l,o),E=1,y=t(((l,t)=>te(void 0,null,(function*(){if(t){const n=t();yield h((()=>te(void 0,null,(function*(){return e.setTransactionChanges(n)}))))}else yield h((()=>te(void 0,null,(function*(){var t;try{e.setContent(null!=(t=null==l?void 0:l())?t:yield n())}catch(e){null==r||r(e)}}))))})))),p})),stopAutoLoad:()=>(E&&(o(y),y=void 0,E=0),p),save:n=>te(void 0,null,(function*(){return 1!=f&&(f=2,yield p.schedule((()=>te(void 0,null,(function*(){try{yield l(e.getContent,n)}catch(e){null==r||r(e)}f=0}))))),p})),startAutoSave:()=>te(void 0,null,(function*(){return yield p.stopAutoSave().save(),s=e.addDidFinishTransactionListener(((e,n)=>{const[l,t]=n();D(l)&&D(t)||p.save((()=>[l,t]))})),p})),stopAutoSave:()=>(c(s,e.delListener),p),schedule:(...e)=>te(void 0,null,(function*(){return T(F(re,d),...e),yield te(void 0,null,(function*(){if(!F(oe,d)){for($(oe,d,1);!a((e=F(re,d),v=e.shift()));)try{yield v()}catch(e){null==r||r(e)}$(oe,d,0)}var e})),p})),getStore:()=>e,destroy:()=>p.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return i&&(p[i]=()=>u),w(p)};var ue=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const de="store",ae=(e,n,l,t,o,[r],i,u)=>{const[a,c,s,v]=Z(n,i,o);return ie(e,(()=>ue(void 0,null,(function*(){return yield v((()=>ue(void 0,null,(function*(){var e,n;return yield a(),le(null!=(n=null==(e=(yield c(r,U))[W])?void 0:e[de])?n:"null")}))))}))),(e=>ue(void 0,null,(function*(){return yield v((()=>ue(void 0,null,(function*(){var n,l;yield a(),yield s(r,U,{[W]:{[de]:(l=null!=(n=e())?n:null,JSON.stringify(l,((e,n)=>d(n,Map)?P.fromEntries([...n]):n)))}},!0,!0)}))))}))),l,t,o,["getDb",u],u)};var ce=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const se=(e,n,l,t,o,[r,i,[u,d,c]],s,v)=>{const[y,E,h,p]=Z(n,s,o),T=(e,n)=>ce(void 0,null,(function*(){return yield f(M(i,((l,t)=>ce(void 0,[l,t],(function*([l,t,o,r],i){const u=e[i];n&&void 0===u||(yield h(l,t,u,o,r,n))})))))})),O=(e,n)=>ce(void 0,null,(function*(){return d?yield h(c,U,{[W]:e},!0,!0,n):null}));return ie(e,(()=>ce(void 0,null,(function*(){return yield p((()=>ce(void 0,null,(function*(){yield y();const e=yield ce(void 0,null,(function*(){return N(m(yield f(M(r,((e,n)=>ce(void 0,[e,n],(function*([e,n],l){return[e,yield E(l,n)]}))))),(e=>!D(e[1]))))})),n=yield ce(void 0,null,(function*(){return u?(yield E(c,U))[W]:{}}));return D(e)&&a(n)?void 0:[e,n]}))))}))),((e,n)=>ce(void 0,null,(function*(){return yield p((()=>ce(void 0,null,(function*(){if(yield y(),a(n)){const[n,l]=e();yield T(n),yield O(l)}else{const[e,l]=n();yield T(e,!0),yield O(l,!0)}}))))}))),l,t,o,["getDb",v],v)},ve="json",ye="autoLoadIntervalSeconds",fe="rowIdColumnName",Ee="tableId",he="tableName",pe={mode:ve,[ye]:1},me={load:0,save:0,[he]:n+"_values"},Te=(e,n,l,t)=>{const o=g();return x(e,((e,r)=>{const i=v(S(R(n,s(e)?{[l]:e}:e)),0,C(n));a(i[0])||t(r,i[0])||$(o,r,i)})),o};var Oe=(e,n,l)=>new Promise(((t,o)=>{var r=e=>{try{u(l.next(e))}catch(e){o(e)}},i=e=>{try{u(l.throw(e))}catch(e){o(e)}},u=e=>e.done?t(e.value):Promise.resolve(e.value).then(r,i);u((l=l.apply(e,n)).next())}));const Ae="pragma ",Le="data_version",Pe="schema_version",be=(e,l,t,o,r,d,a,c)=>{let y,f;const[E,h,p,m]=(e=>{const l=(e=>R(pe,s(e)?{storeTableName:e}:null!=e?e:{}))(e),t=l[ye];if(l.mode==ve){const{storeTableName:e=n}=l;return[1,t,[e],B(e)]}const{tables:{load:o={},save:r={}}={},values:i={}}=l,u=v(S(R(me,i)),0,C(me)),d=u[2],a=B(d);return[0,t,[Te(o,{[Ee]:null,[fe]:U},Ee,(e=>H(a,e)&&e==d)),Te(r,{[he]:null,[fe]:U,deleteEmptyColumns:0,deleteEmptyTable:0},he,((e,n)=>H(a,n)&&n==d)),u],a]})(l);return(E?ae:se)(e,d?(e,n)=>Oe(void 0,null,(function*(){return d(e,n),yield t(e,n)})):t,(e=>[i((()=>Oe(void 0,null,(function*(){try{const n=(yield t(Ae+Le))[0][Le],l=(yield t(Ae+Pe))[0][Pe];n==(null!=y?y:y=n)&&l==(null!=f?f:f=l)||(e(),y=n,f=l)}catch(e){}}))),1e3*h),o((n=>m.has(n)?e():0))]),(([e,n])=>{u(e),y=f=null,r(n)}),a,p,A(m),c)},we=(e,n,l,t,o)=>be(e,l,((e,...l)=>{return t=[e,...l],o=function*(e,l=[]){return yield n.execO(e,l)},new Promise(((e,n)=>{var l=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(l,r);i((o=o.apply(void 0,t)).next())}));var t,o}),(e=>n.onUpdate(((n,l,t)=>e(t)))),(e=>e()),t,o,n);export{we as createCrSqliteWasmPersister};