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.
- package/lib/cjs/persisters/persister-automerge.cjs +1 -1
- package/lib/cjs/persisters/persister-automerge.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-browser.cjs +1 -1
- package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-file.cjs +1 -1
- package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-indexed-db.cjs +1 -1
- package/lib/cjs/persisters/persister-indexed-db.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-partykit-client.cjs +1 -1
- package/lib/cjs/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-partykit-server.cjs +1 -1
- package/lib/cjs/persisters/persister-partykit-server.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-remote.cjs +1 -1
- package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-yjs.cjs +1 -1
- package/lib/cjs/persisters/persister-yjs.cjs.gz +0 -0
- package/lib/cjs/persisters.cjs +1 -1
- package/lib/cjs/persisters.cjs.gz +0 -0
- package/lib/cjs/tinybase.cjs +1 -1
- package/lib/cjs/tinybase.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-automerge.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-automerge.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-indexed-db.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-indexed-db.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-partykit-client.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-partykit-client.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-partykit-server.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-partykit-server.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-yjs.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-yjs.cjs.gz +0 -0
- package/lib/cjs-es6/persisters.cjs +1 -1
- package/lib/cjs-es6/persisters.cjs.gz +0 -0
- package/lib/cjs-es6/tinybase.cjs +1 -1
- package/lib/cjs-es6/tinybase.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/debug/persisters/persister-automerge.js +5 -0
- package/lib/debug/persisters/persister-browser.js +5 -0
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +12 -6
- package/lib/debug/persisters/persister-expo-sqlite.js +12 -6
- package/lib/debug/persisters/persister-file.js +5 -0
- package/lib/debug/persisters/persister-indexed-db.js +5 -0
- package/lib/debug/persisters/persister-partykit-client.js +6 -1
- package/lib/debug/persisters/persister-partykit-server.js +73 -82
- package/lib/debug/persisters/persister-remote.js +5 -0
- package/lib/debug/persisters/persister-sqlite-wasm.js +12 -6
- package/lib/debug/persisters/persister-sqlite3.js +12 -6
- package/lib/debug/persisters/persister-yjs.js +5 -0
- package/lib/debug/persisters.js +4 -0
- package/lib/debug/tinybase.js +4 -0
- package/lib/debug/ui-react-dom.js +5 -0
- package/lib/es6/persisters/persister-automerge.js +1 -1
- package/lib/es6/persisters/persister-automerge.js.gz +0 -0
- package/lib/es6/persisters/persister-browser.js +1 -1
- package/lib/es6/persisters/persister-browser.js.gz +0 -0
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/es6/persisters/persister-file.js +1 -1
- package/lib/es6/persisters/persister-file.js.gz +0 -0
- package/lib/es6/persisters/persister-indexed-db.js +1 -1
- package/lib/es6/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/es6/persisters/persister-partykit-client.js +1 -1
- package/lib/es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/es6/persisters/persister-partykit-server.js +1 -1
- package/lib/es6/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/es6/persisters/persister-remote.js +1 -1
- package/lib/es6/persisters/persister-remote.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite3.js +1 -1
- package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/es6/persisters/persister-yjs.js +1 -1
- package/lib/es6/persisters/persister-yjs.js.gz +0 -0
- package/lib/es6/persisters.js +1 -1
- package/lib/es6/persisters.js.gz +0 -0
- package/lib/es6/tinybase.js +1 -1
- package/lib/es6/tinybase.js.gz +0 -0
- package/lib/es6/ui-react-dom-debug.js +1 -1
- package/lib/es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/persisters/persister-automerge.js +1 -1
- package/lib/persisters/persister-automerge.js.gz +0 -0
- package/lib/persisters/persister-browser.js +1 -1
- package/lib/persisters/persister-browser.js.gz +0 -0
- package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-expo-sqlite.js +1 -1
- package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/persisters/persister-file.js +1 -1
- package/lib/persisters/persister-file.js.gz +0 -0
- package/lib/persisters/persister-indexed-db.js +1 -1
- package/lib/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/persisters/persister-partykit-client.js +1 -1
- package/lib/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/persisters/persister-partykit-server.js +1 -1
- package/lib/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/persisters/persister-remote.js +1 -1
- package/lib/persisters/persister-remote.js.gz +0 -0
- package/lib/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-sqlite3.js +1 -1
- package/lib/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/persisters/persister-yjs.js +1 -1
- package/lib/persisters/persister-yjs.js.gz +0 -0
- package/lib/persisters.js +1 -1
- package/lib/persisters.js.gz +0 -0
- package/lib/tinybase.js +1 -1
- package/lib/tinybase.js.gz +0 -0
- package/lib/types/persisters/persister-automerge.d.ts +36 -3
- package/lib/types/persisters/persister-browser.d.ts +71 -8
- package/lib/types/persisters/persister-cr-sqlite-wasm.d.ts +42 -8
- package/lib/types/persisters/persister-expo-sqlite.d.ts +40 -7
- package/lib/types/persisters/persister-file.d.ts +34 -3
- package/lib/types/persisters/persister-indexed-db.d.ts +36 -4
- package/lib/types/persisters/persister-partykit-client.d.ts +40 -4
- package/lib/types/persisters/persister-partykit-server.d.ts +23 -13
- package/lib/types/persisters/persister-remote.d.ts +40 -4
- package/lib/types/persisters/persister-sqlite-wasm.d.ts +46 -7
- package/lib/types/persisters/persister-sqlite3.d.ts +40 -7
- package/lib/types/persisters/persister-yjs.d.ts +37 -5
- package/lib/types/with-schemas/persisters/persister-automerge.d.ts +38 -4
- package/lib/types/with-schemas/persisters/persister-browser.d.ts +75 -10
- package/lib/types/with-schemas/persisters/persister-cr-sqlite-wasm.d.ts +44 -9
- package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +42 -8
- package/lib/types/with-schemas/persisters/persister-file.d.ts +36 -4
- package/lib/types/with-schemas/persisters/persister-indexed-db.d.ts +38 -5
- package/lib/types/with-schemas/persisters/persister-partykit-client.d.ts +42 -5
- package/lib/types/with-schemas/persisters/persister-partykit-server.d.ts +32 -13
- package/lib/types/with-schemas/persisters/persister-remote.d.ts +42 -5
- package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +48 -8
- package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +41 -7
- package/lib/types/with-schemas/persisters/persister-yjs.d.ts +39 -6
- package/lib/umd/persisters/persister-automerge.js +1 -1
- package/lib/umd/persisters/persister-automerge.js.gz +0 -0
- package/lib/umd/persisters/persister-browser.js +1 -1
- package/lib/umd/persisters/persister-browser.js.gz +0 -0
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/umd/persisters/persister-file.js +1 -1
- package/lib/umd/persisters/persister-file.js.gz +0 -0
- package/lib/umd/persisters/persister-indexed-db.js +1 -1
- package/lib/umd/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/umd/persisters/persister-partykit-client.js +1 -1
- package/lib/umd/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd/persisters/persister-partykit-server.js +1 -1
- package/lib/umd/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/umd/persisters/persister-remote.js +1 -1
- package/lib/umd/persisters/persister-remote.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite3.js +1 -1
- package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd/persisters/persister-yjs.js +1 -1
- package/lib/umd/persisters/persister-yjs.js.gz +0 -0
- package/lib/umd/persisters.js +1 -1
- package/lib/umd/persisters.js.gz +0 -0
- package/lib/umd/tinybase.js +1 -1
- package/lib/umd/tinybase.js.gz +0 -0
- package/lib/umd/ui-react-dom-debug.js +1 -1
- package/lib/umd/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-automerge.js +1 -1
- package/lib/umd-es6/persisters/persister-automerge.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-browser.js +1 -1
- package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
- package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-file.js +1 -1
- package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-indexed-db.js +1 -1
- package/lib/umd-es6/persisters/persister-indexed-db.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-partykit-client.js +1 -1
- package/lib/umd-es6/persisters/persister-partykit-client.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-partykit-server.js +1 -1
- package/lib/umd-es6/persisters/persister-partykit-server.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-remote.js +1 -1
- package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-yjs.js +1 -1
- package/lib/umd-es6/persisters/persister-yjs.js.gz +0 -0
- package/lib/umd-es6/persisters.js +1 -1
- package/lib/umd-es6/persisters.js.gz +0 -0
- package/lib/umd-es6/tinybase.js +1 -1
- package/lib/umd-es6/tinybase.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom-debug.js +1 -1
- package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
- package/package.json +18 -18
- 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
|
-
|
|
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
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
)
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
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
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
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(
|
|
166
|
+
if (!arrayIsEmpty(keyPrefixesToDel)) {
|
|
178
167
|
mapForEach(await storage.list(), (key) =>
|
|
179
168
|
arrayEvery(
|
|
180
|
-
|
|
169
|
+
keyPrefixesToDel,
|
|
181
170
|
(keyPrefixToDelete) =>
|
|
182
171
|
!strStartsWith(key, keyPrefixToDelete) ||
|
|
183
|
-
(arrayPush(
|
|
172
|
+
(arrayPush(keysToDel, key) && 0),
|
|
184
173
|
),
|
|
185
174
|
);
|
|
186
175
|
}
|
|
187
|
-
await
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
package/lib/debug/persisters.js
CHANGED
|
@@ -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
|
|
package/lib/debug/tinybase.js
CHANGED
|
@@ -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
|
|
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};
|
|
Binary file
|
|
@@ -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",
|
|
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};
|
|
Binary file
|
|
@@ -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,
|
|
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};
|
|
Binary file
|