@casual-simulation/aux-common 3.4.6-alpha.14601027727 → 3.5.0-alpha.15117651144
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/AAGUID.d.ts +11 -0
- package/AAGUID.js +116 -0
- package/AAGUID.js.map +1 -0
- package/BlobPolyfill.js +20 -31
- package/BlobPolyfill.js.map +1 -1
- package/bots/AuxStateHelpers.js +9 -3
- package/bots/AuxStateHelpers.js.map +1 -1
- package/bots/Bot.d.ts +1 -1
- package/bots/Bot.js +10 -1
- package/bots/Bot.js.map +1 -1
- package/bots/BotCalculationContext.js.map +1 -1
- package/bots/BotCalculations.d.ts +3 -3
- package/bots/BotCalculations.js +5 -1
- package/bots/BotCalculations.js.map +1 -1
- package/bots/BotEvents.d.ts +20 -2
- package/bots/BotEvents.js +84 -17
- package/bots/BotEvents.js.map +1 -1
- package/bots/StateUpdatedEvent.js.map +1 -1
- package/bots/StoredAux.d.ts +1 -1
- package/bots/StoredAux.js.map +1 -1
- package/bots/test/BotCalculationContextTests.d.ts +0 -1
- package/bots/test/BotCalculationContextTests.js.map +1 -1
- package/common/PolicyPermissions.d.ts +224 -3
- package/common/PolicyPermissions.js +46 -0
- package/common/PolicyPermissions.js.map +1 -1
- package/common/RemoteActions.js +19 -6
- package/common/RemoteActions.js.map +1 -1
- package/common/StatusUpdateUtils.js +4 -1
- package/common/StatusUpdateUtils.js.map +1 -1
- package/common/Version.d.ts +22 -0
- package/common/Version.js +75 -0
- package/common/Version.js.map +1 -0
- package/common/WebConfig.d.ts +6 -6
- package/common/index.d.ts +1 -0
- package/common/index.js +1 -0
- package/common/index.js.map +1 -1
- package/documents/RemoteYjsSharedDocument.js +30 -54
- package/documents/RemoteYjsSharedDocument.js.map +1 -1
- package/documents/SharedDocumentFactories.js +7 -18
- package/documents/SharedDocumentFactories.js.map +1 -1
- package/documents/YjsSharedDocument.js +1 -12
- package/documents/YjsSharedDocument.js.map +1 -1
- package/documents/test/DocumentTests.js +15 -24
- package/documents/test/DocumentTests.js.map +1 -1
- package/forms/FormError.d.ts +43 -0
- package/forms/FormError.js +56 -0
- package/forms/FormError.js.map +1 -0
- package/forms/index.d.ts +2 -0
- package/forms/index.js +19 -0
- package/forms/index.js.map +1 -0
- package/http/GenericHttpInterface.d.ts +2 -1
- package/http/GenericHttpInterface.js.map +1 -1
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/index.js.map +1 -1
- package/package.json +7 -7
- package/partitions/AuxPartition.js +5 -1
- package/partitions/AuxPartition.js.map +1 -1
- package/partitions/AuxPartitionFactories.js +7 -18
- package/partitions/AuxPartitionFactories.js.map +1 -1
- package/partitions/MemoryPartition.js +25 -41
- package/partitions/MemoryPartition.js.map +1 -1
- package/partitions/OtherPlayersPartition.js +140 -159
- package/partitions/OtherPlayersPartition.js.map +1 -1
- package/partitions/PartitionAuthSource.d.ts +4 -0
- package/partitions/PartitionUtils.js +1 -1
- package/partitions/PartitionUtils.js.map +1 -1
- package/partitions/ProxyBridgePartition.js +32 -47
- package/partitions/ProxyBridgePartition.js.map +1 -1
- package/partitions/RemoteYjsPartition.js +235 -221
- package/partitions/RemoteYjsPartition.js.map +1 -1
- package/partitions/YjsPartition.js +215 -205
- package/partitions/YjsPartition.js.map +1 -1
- package/records/AuthUtils.d.ts +175 -0
- package/records/AuthUtils.js +335 -0
- package/records/AuthUtils.js.map +1 -0
- package/records/RecordKeys.d.ts +52 -0
- package/records/RecordKeys.js +131 -0
- package/records/RecordKeys.js.map +1 -0
- package/records/WebPush.d.ts +2 -0
- package/records/WebPush.js +19 -0
- package/records/WebPush.js.map +1 -0
- package/records/index.d.ts +4 -0
- package/records/index.js +21 -0
- package/records/index.js.map +1 -0
- package/rpc/ErrorCodes.d.ts +2 -2
- package/rpc/ErrorCodes.js.map +1 -1
- package/rpc/GenericRPCInterface.js +8 -4
- package/rpc/GenericRPCInterface.js.map +1 -1
- package/test/TestHelpers.js +2 -13
- package/test/TestHelpers.js.map +1 -1
- package/utils.d.ts +14 -0
- package/utils.js +18 -0
- package/utils.js.map +1 -1
- package/websockets/AuthenticatedConnectionClient.js +39 -10
- package/websockets/AuthenticatedConnectionClient.js.map +1 -1
- package/websockets/InstRecordsClient.js +18 -8
- package/websockets/InstRecordsClient.js.map +1 -1
- package/websockets/MemoryConnectionClient.d.ts +1 -1
- package/websockets/Utils.d.ts +33 -0
- package/websockets/Utils.js +82 -0
- package/websockets/Utils.js.map +1 -0
- package/websockets/WebsocketEvents.d.ts +18 -17
- package/websockets/WebsocketEvents.js.map +1 -1
- package/websockets/index.d.ts +1 -0
- package/websockets/index.js +1 -0
- package/websockets/index.js.map +1 -1
- package/yjs/YjsHelpers.js.map +1 -1
- package/yjs/YjsIndexedDBPersistence.js +53 -78
- package/yjs/YjsIndexedDBPersistence.js.map +1 -1
|
@@ -15,15 +15,6 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License
|
|
16
16
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
19
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
20
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
21
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
22
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
23
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
24
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
18
|
import { applyUpdate, encodeStateAsUpdate, transact } from 'yjs';
|
|
28
19
|
import * as idb from 'lib0/indexeddb';
|
|
29
20
|
import { BehaviorSubject, filter, firstValueFrom, map } from 'rxjs';
|
|
@@ -31,10 +22,10 @@ import { v4 as uuid } from 'uuid';
|
|
|
31
22
|
const customStoreName = 'custom';
|
|
32
23
|
const updatesStoreName = 'updates';
|
|
33
24
|
export const PREFERRED_TRIM_SIZE = 500;
|
|
34
|
-
export const fetchUpdates = (idbPersistence, beforeApplyUpdatesCallback = () => { }, afterApplyUpdatesCallback = () => { }) =>
|
|
25
|
+
export const fetchUpdates = async (idbPersistence, beforeApplyUpdatesCallback = () => { }, afterApplyUpdatesCallback = () => { }) => {
|
|
35
26
|
const [updatesStore] = idb.transact(
|
|
36
27
|
/** @type {IDBDatabase} */ idbPersistence.db, [updatesStoreName]); // , 'readonly')
|
|
37
|
-
const updates =
|
|
28
|
+
const updates = await idb.getAll(updatesStore, idb.createIDBKeyRangeLowerBound(idbPersistence.dbref, false));
|
|
38
29
|
if (!idbPersistence.destroyed) {
|
|
39
30
|
beforeApplyUpdatesCallback(updatesStore);
|
|
40
31
|
transact(idbPersistence.doc, () => {
|
|
@@ -42,12 +33,12 @@ export const fetchUpdates = (idbPersistence, beforeApplyUpdatesCallback = () =>
|
|
|
42
33
|
}, idbPersistence, false);
|
|
43
34
|
afterApplyUpdatesCallback(updatesStore);
|
|
44
35
|
}
|
|
45
|
-
const lastKey =
|
|
36
|
+
const lastKey = await idb.getLastKey(updatesStore);
|
|
46
37
|
idbPersistence.dbref = lastKey + 1;
|
|
47
|
-
const cnt =
|
|
38
|
+
const cnt = await idb.count(updatesStore);
|
|
48
39
|
idbPersistence.dbsize = cnt;
|
|
49
40
|
return updatesStore;
|
|
50
|
-
}
|
|
41
|
+
};
|
|
51
42
|
export const storeState = (idbPersistence, forceStore = true) => fetchUpdates(idbPersistence).then((updatesStore) => {
|
|
52
43
|
if (forceStore || idbPersistence.dbsize >= PREFERRED_TRIM_SIZE) {
|
|
53
44
|
idb.addAutoKey(updatesStore, encodeStateAsUpdate(idbPersistence.doc))
|
|
@@ -132,32 +123,26 @@ export class YjsIndexedDBPersistence {
|
|
|
132
123
|
doc.on('update', this._storeUpdate);
|
|
133
124
|
doc.on('destroy', this.destroy);
|
|
134
125
|
}
|
|
135
|
-
waitForInit() {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
if (this._destroyed)
|
|
151
|
-
return;
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
if (this._destroyed)
|
|
156
|
-
return this;
|
|
157
|
-
this._onSyncChanged.next(true);
|
|
158
|
-
};
|
|
159
|
-
yield fetchUpdates(this, beforeApplyUpdatesCallback, afterApplyUpdatesCallback);
|
|
160
|
-
});
|
|
126
|
+
async waitForInit() {
|
|
127
|
+
await this._initPromise;
|
|
128
|
+
}
|
|
129
|
+
async _initDb() {
|
|
130
|
+
const db = await this._db;
|
|
131
|
+
this.db = db;
|
|
132
|
+
await this._fetchUpdates();
|
|
133
|
+
}
|
|
134
|
+
async _fetchUpdates() {
|
|
135
|
+
await this._db;
|
|
136
|
+
if (this._destroyed) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const beforeApplyUpdatesCallback = (updatesStore) => idb.addAutoKey(updatesStore, encodeStateAsUpdate(this.doc));
|
|
140
|
+
const afterApplyUpdatesCallback = () => {
|
|
141
|
+
if (this._destroyed)
|
|
142
|
+
return this;
|
|
143
|
+
this._onSyncChanged.next(true);
|
|
144
|
+
};
|
|
145
|
+
await fetchUpdates(this, beforeApplyUpdatesCallback, afterApplyUpdatesCallback);
|
|
161
146
|
}
|
|
162
147
|
_storeUpdate(update, origin) {
|
|
163
148
|
if (this.db && origin !== this) {
|
|
@@ -181,42 +166,36 @@ export class YjsIndexedDBPersistence {
|
|
|
181
166
|
}
|
|
182
167
|
}
|
|
183
168
|
}
|
|
184
|
-
destroy() {
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
db.close();
|
|
198
|
-
});
|
|
169
|
+
async destroy() {
|
|
170
|
+
if (this._storeTimeoutId) {
|
|
171
|
+
clearTimeout(this._storeTimeoutId);
|
|
172
|
+
}
|
|
173
|
+
if (this._channel) {
|
|
174
|
+
this._channel.close();
|
|
175
|
+
this._channel = null;
|
|
176
|
+
}
|
|
177
|
+
this._doc.off('update', this._storeUpdate);
|
|
178
|
+
this._doc.off('destroy', this.destroy);
|
|
179
|
+
this._destroyed = true;
|
|
180
|
+
const db = await this._db;
|
|
181
|
+
db.close();
|
|
199
182
|
}
|
|
200
183
|
/**
|
|
201
184
|
* Destroys this instance and removes all data from indexeddb.
|
|
202
185
|
*/
|
|
203
|
-
clearData() {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
idb.deleteDB(this._name);
|
|
207
|
-
});
|
|
186
|
+
async clearData() {
|
|
187
|
+
await this.destroy();
|
|
188
|
+
idb.deleteDB(this._name);
|
|
208
189
|
}
|
|
209
190
|
/**
|
|
210
191
|
* Retrieves a value from the IndexedDB database.
|
|
211
192
|
* @param key - The key of the value to retrieve.
|
|
212
193
|
* @returns A promise that resolves with the retrieved value.
|
|
213
194
|
*/
|
|
214
|
-
get(key) {
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
return idb.get(custom, key);
|
|
219
|
-
});
|
|
195
|
+
async get(key) {
|
|
196
|
+
const db = await this._db;
|
|
197
|
+
const [custom] = idb.transact(db, [customStoreName], 'readonly');
|
|
198
|
+
return idb.get(custom, key);
|
|
220
199
|
}
|
|
221
200
|
/**
|
|
222
201
|
* Sets a value in the IndexedDB database.
|
|
@@ -224,24 +203,20 @@ export class YjsIndexedDBPersistence {
|
|
|
224
203
|
* @param value The value to store in the database.
|
|
225
204
|
* @returns A Promise that resolves when the value has been successfully stored.
|
|
226
205
|
*/
|
|
227
|
-
set(key, value) {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
return idb.put(custom, value, key);
|
|
232
|
-
});
|
|
206
|
+
async set(key, value) {
|
|
207
|
+
const db = await this._db;
|
|
208
|
+
const [custom] = idb.transact(db, [customStoreName]);
|
|
209
|
+
return idb.put(custom, value, key);
|
|
233
210
|
}
|
|
234
211
|
/**
|
|
235
212
|
* Deletes the value associated with the given key from the custom store.
|
|
236
213
|
* @param key The key of the value to delete.
|
|
237
214
|
* @returns A promise that resolves when the value has been deleted.
|
|
238
215
|
*/
|
|
239
|
-
del(key) {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
return idb.del(custom, key);
|
|
244
|
-
});
|
|
216
|
+
async del(key) {
|
|
217
|
+
const db = await this._db;
|
|
218
|
+
const [custom] = idb.transact(db, [customStoreName]);
|
|
219
|
+
return idb.del(custom, key);
|
|
245
220
|
}
|
|
246
221
|
}
|
|
247
222
|
//# sourceMappingURL=YjsIndexedDBPersistence.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YjsIndexedDBPersistence.js","sourceRoot":"","sources":["YjsIndexedDBPersistence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG
|
|
1
|
+
{"version":3,"file":"YjsIndexedDBPersistence.js","sourceRoot":"","sources":["YjsIndexedDBPersistence.ts"],"names":[],"mappings":"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"}
|