tinybase 5.0.0-beta.27 → 5.0.0-beta.28
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/@types/_internal/ui-react/with-schemas/index.d.cts +274 -0
- package/@types/_internal/ui-react/with-schemas/index.d.ts +274 -0
- package/@types/checkpoints/index.d.cts +30 -1
- package/@types/checkpoints/index.d.ts +30 -1
- package/@types/checkpoints/with-schemas/index.d.cts +30 -1
- package/@types/checkpoints/with-schemas/index.d.ts +30 -1
- package/@types/common/index.d.cts +9 -0
- package/@types/common/index.d.ts +9 -0
- package/@types/common/with-schemas/index.d.cts +9 -0
- package/@types/common/with-schemas/index.d.ts +9 -0
- package/@types/index.d.cts +1 -0
- package/@types/index.d.ts +1 -0
- package/@types/indexes/index.d.cts +32 -1
- package/@types/indexes/index.d.ts +32 -1
- package/@types/indexes/with-schemas/index.d.cts +32 -1
- package/@types/indexes/with-schemas/index.d.ts +32 -1
- package/@types/mergeable-store/index.d.cts +0 -2
- package/@types/mergeable-store/index.d.ts +0 -2
- package/@types/mergeable-store/with-schemas/index.d.cts +2 -2
- package/@types/mergeable-store/with-schemas/index.d.ts +2 -2
- package/@types/metrics/index.d.cts +30 -4
- package/@types/metrics/index.d.ts +30 -4
- package/@types/metrics/with-schemas/index.d.cts +30 -4
- package/@types/metrics/with-schemas/index.d.ts +30 -4
- package/@types/persisters/index.d.cts +87 -25
- package/@types/persisters/index.d.ts +87 -25
- package/@types/persisters/persister-automerge/index.d.cts +4 -4
- package/@types/persisters/persister-automerge/index.d.ts +4 -4
- package/@types/persisters/persister-automerge/with-schemas/index.d.cts +4 -4
- package/@types/persisters/persister-automerge/with-schemas/index.d.ts +4 -4
- package/@types/persisters/persister-browser/index.d.cts +7 -4
- package/@types/persisters/persister-browser/index.d.ts +7 -4
- package/@types/persisters/persister-browser/with-schemas/index.d.cts +7 -4
- package/@types/persisters/persister-browser/with-schemas/index.d.ts +7 -4
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.cts +4 -4
- package/@types/persisters/persister-cr-sqlite-wasm/index.d.ts +4 -4
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.cts +4 -4
- package/@types/persisters/persister-cr-sqlite-wasm/with-schemas/index.d.ts +4 -4
- package/@types/persisters/persister-electric-sql/index.d.cts +4 -4
- package/@types/persisters/persister-electric-sql/index.d.ts +4 -4
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.cts +4 -4
- package/@types/persisters/persister-electric-sql/with-schemas/index.d.ts +4 -4
- package/@types/persisters/persister-expo-sqlite/index.d.cts +4 -4
- package/@types/persisters/persister-expo-sqlite/index.d.ts +4 -4
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.cts +4 -4
- package/@types/persisters/persister-expo-sqlite/with-schemas/index.d.ts +4 -4
- package/@types/persisters/persister-file/index.d.cts +6 -4
- package/@types/persisters/persister-file/index.d.ts +6 -4
- package/@types/persisters/persister-file/with-schemas/index.d.cts +6 -4
- package/@types/persisters/persister-file/with-schemas/index.d.ts +6 -4
- package/@types/persisters/persister-indexed-db/index.d.cts +5 -4
- package/@types/persisters/persister-indexed-db/index.d.ts +5 -4
- package/@types/persisters/persister-indexed-db/with-schemas/index.d.cts +5 -4
- package/@types/persisters/persister-indexed-db/with-schemas/index.d.ts +5 -4
- package/@types/persisters/persister-libsql/index.d.cts +5 -4
- package/@types/persisters/persister-libsql/index.d.ts +5 -4
- package/@types/persisters/persister-libsql/with-schemas/index.d.cts +5 -4
- package/@types/persisters/persister-libsql/with-schemas/index.d.ts +5 -4
- package/@types/persisters/persister-partykit-client/index.d.cts +12 -6
- package/@types/persisters/persister-partykit-client/index.d.ts +12 -6
- package/@types/persisters/persister-partykit-client/with-schemas/index.d.cts +12 -6
- package/@types/persisters/persister-partykit-client/with-schemas/index.d.ts +12 -6
- package/@types/persisters/persister-partykit-server/index.d.cts +11 -3
- package/@types/persisters/persister-partykit-server/index.d.ts +11 -3
- package/@types/persisters/persister-partykit-server/with-schemas/index.d.cts +11 -3
- package/@types/persisters/persister-partykit-server/with-schemas/index.d.ts +11 -3
- package/@types/persisters/persister-powersync/index.d.cts +5 -4
- package/@types/persisters/persister-powersync/index.d.ts +5 -4
- package/@types/persisters/persister-powersync/with-schemas/index.d.cts +5 -4
- package/@types/persisters/persister-powersync/with-schemas/index.d.ts +5 -4
- package/@types/persisters/persister-remote/index.d.cts +6 -4
- package/@types/persisters/persister-remote/index.d.ts +6 -4
- package/@types/persisters/persister-remote/with-schemas/index.d.cts +6 -4
- package/@types/persisters/persister-remote/with-schemas/index.d.ts +6 -4
- package/@types/persisters/persister-sqlite-wasm/index.d.cts +4 -4
- package/@types/persisters/persister-sqlite-wasm/index.d.ts +4 -4
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.cts +4 -4
- package/@types/persisters/persister-sqlite-wasm/with-schemas/index.d.ts +4 -4
- package/@types/persisters/persister-sqlite3/index.d.cts +4 -4
- package/@types/persisters/persister-sqlite3/index.d.ts +4 -4
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.cts +4 -4
- package/@types/persisters/persister-sqlite3/with-schemas/index.d.ts +4 -4
- package/@types/persisters/persister-yjs/index.d.cts +4 -4
- package/@types/persisters/persister-yjs/index.d.ts +4 -4
- package/@types/persisters/persister-yjs/with-schemas/index.d.cts +4 -4
- package/@types/persisters/persister-yjs/with-schemas/index.d.ts +4 -4
- package/@types/persisters/with-schemas/index.d.cts +87 -25
- package/@types/persisters/with-schemas/index.d.ts +87 -25
- package/@types/queries/index.d.cts +64 -4
- package/@types/queries/index.d.ts +64 -4
- package/@types/queries/with-schemas/index.d.cts +64 -4
- package/@types/queries/with-schemas/index.d.ts +64 -4
- package/@types/relationships/index.d.cts +34 -1
- package/@types/relationships/index.d.ts +34 -1
- package/@types/relationships/with-schemas/index.d.cts +34 -1
- package/@types/relationships/with-schemas/index.d.ts +34 -1
- package/@types/store/index.d.cts +125 -0
- package/@types/store/index.d.ts +125 -0
- package/@types/store/with-schemas/index.d.cts +125 -0
- package/@types/store/with-schemas/index.d.ts +125 -0
- package/@types/synchronizers/index.d.cts +32 -10
- package/@types/synchronizers/index.d.ts +32 -10
- package/@types/synchronizers/synchronizer-broadcast-channel/index.d.cts +114 -0
- package/@types/synchronizers/synchronizer-broadcast-channel/index.d.ts +114 -0
- package/@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.cts +128 -0
- package/@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts +128 -0
- package/@types/synchronizers/synchronizer-local/index.d.cts +16 -17
- package/@types/synchronizers/synchronizer-local/index.d.ts +16 -17
- package/@types/synchronizers/synchronizer-local/with-schemas/index.d.cts +16 -17
- package/@types/synchronizers/synchronizer-local/with-schemas/index.d.ts +16 -17
- package/@types/synchronizers/synchronizer-ws-client/index.d.cts +66 -6
- package/@types/synchronizers/synchronizer-ws-client/index.d.ts +66 -6
- package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.cts +77 -6
- package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +77 -6
- package/@types/synchronizers/synchronizer-ws-server/index.d.cts +486 -7
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +486 -7
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.cts +486 -7
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +486 -7
- package/@types/synchronizers/with-schemas/index.d.cts +29 -11
- package/@types/synchronizers/with-schemas/index.d.ts +29 -11
- package/@types/tools/index.d.cts +22 -0
- package/@types/tools/index.d.ts +22 -0
- package/@types/tools/with-schemas/index.d.cts +22 -0
- package/@types/tools/with-schemas/index.d.ts +22 -0
- package/@types/ui-react/index.d.cts +375 -1
- package/@types/ui-react/index.d.ts +375 -1
- package/@types/ui-react/with-schemas/index.d.cts +100 -1
- package/@types/ui-react/with-schemas/index.d.ts +100 -1
- package/@types/ui-react-dom/index.d.cts +112 -0
- package/@types/ui-react-dom/index.d.ts +112 -0
- package/@types/ui-react-dom/with-schemas/index.d.cts +112 -0
- package/@types/ui-react-dom/with-schemas/index.d.ts +112 -0
- package/@types/ui-react-inspector/index.d.cts +6 -2
- package/@types/ui-react-inspector/index.d.ts +6 -2
- package/@types/ui-react-inspector/with-schemas/index.d.cts +118 -2
- package/@types/ui-react-inspector/with-schemas/index.d.ts +118 -2
- package/@types/with-schemas/index.d.cts +1 -0
- package/@types/with-schemas/index.d.ts +1 -0
- package/cjs/es6/index.cjs +2 -2
- package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -0
- package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -0
- package/cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
- package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
- package/cjs/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
- package/cjs/es6/synchronizers/index.cjs +2 -2
- package/cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs +628 -0
- package/cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +628 -0
- package/cjs/es6/synchronizers/synchronizer-local/index.cjs +4 -4
- package/cjs/es6/synchronizers/synchronizer-local/with-schemas/index.cjs +4 -4
- package/cjs/es6/synchronizers/synchronizer-ws-client/index.cjs +15 -21
- package/cjs/es6/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +15 -21
- package/cjs/es6/synchronizers/with-schemas/index.cjs +2 -2
- package/cjs/es6/with-schemas/index.cjs +2 -2
- package/cjs/index.cjs +2 -2
- package/cjs/min/synchronizers/synchronizer-broadcast-channel/index.cjs +1 -0
- package/cjs/min/synchronizers/synchronizer-broadcast-channel/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +1 -0
- package/cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-ws-client/index.cjs.gz +0 -0
- package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +1 -1
- package/cjs/min/synchronizers/synchronizer-ws-client/with-schemas/index.cjs.gz +0 -0
- package/cjs/synchronizers/index.cjs +2 -2
- package/cjs/synchronizers/synchronizer-broadcast-channel/index.cjs +500 -0
- package/cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs +500 -0
- package/cjs/synchronizers/synchronizer-local/index.cjs +4 -4
- package/cjs/synchronizers/synchronizer-local/with-schemas/index.cjs +4 -4
- package/cjs/synchronizers/synchronizer-ws-client/index.cjs +15 -21
- package/cjs/synchronizers/synchronizer-ws-client/with-schemas/index.cjs +15 -21
- package/cjs/synchronizers/with-schemas/index.cjs +2 -2
- package/cjs/with-schemas/index.cjs +2 -2
- package/es6/index.js +2 -2
- package/es6/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
- package/es6/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/es6/synchronizers/index.js +2 -2
- package/es6/synchronizers/synchronizer-broadcast-channel/index.js +626 -0
- package/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +626 -0
- package/es6/synchronizers/synchronizer-local/index.js +4 -4
- package/es6/synchronizers/synchronizer-local/with-schemas/index.js +4 -4
- package/es6/synchronizers/synchronizer-ws-client/index.js +15 -21
- package/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +15 -21
- package/es6/synchronizers/with-schemas/index.js +2 -2
- package/es6/with-schemas/index.js +2 -2
- package/index.js +2 -2
- package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
- package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/package.json +105 -1
- package/readme.md +9 -9
- package/releases.md +4 -4
- package/synchronizers/index.js +2 -2
- package/synchronizers/synchronizer-broadcast-channel/index.js +498 -0
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +498 -0
- package/synchronizers/synchronizer-local/index.js +4 -4
- package/synchronizers/synchronizer-local/with-schemas/index.js +4 -4
- package/synchronizers/synchronizer-ws-client/index.js +15 -21
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +15 -21
- package/synchronizers/with-schemas/index.js +2 -2
- package/umd/es6/index.js +2 -2
- package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
- package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/umd/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/umd/es6/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/umd/es6/synchronizers/index.js +2 -2
- package/umd/es6/synchronizers/synchronizer-broadcast-channel/index.js +654 -0
- package/umd/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +654 -0
- package/umd/es6/synchronizers/synchronizer-local/index.js +4 -4
- package/umd/es6/synchronizers/synchronizer-local/with-schemas/index.js +4 -4
- package/umd/es6/synchronizers/synchronizer-ws-client/index.js +15 -21
- package/umd/es6/synchronizers/synchronizer-ws-client/with-schemas/index.js +15 -21
- package/umd/es6/synchronizers/with-schemas/index.js +2 -2
- package/umd/es6/with-schemas/index.js +2 -2
- package/umd/index.js +2 -2
- package/umd/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -0
- package/umd/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -0
- package/umd/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/umd/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/umd/synchronizers/index.js +2 -2
- package/umd/synchronizers/synchronizer-broadcast-channel/index.js +516 -0
- package/umd/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +516 -0
- package/umd/synchronizers/synchronizer-local/index.js +4 -4
- package/umd/synchronizers/synchronizer-local/with-schemas/index.js +4 -4
- package/umd/synchronizers/synchronizer-ws-client/index.js +15 -21
- package/umd/synchronizers/synchronizer-ws-client/with-schemas/index.js +15 -21
- package/umd/synchronizers/with-schemas/index.js +2 -2
- package/umd/with-schemas/index.js +2 -2
- package/with-schemas/index.js +2 -2
|
@@ -418,7 +418,7 @@ const Message = {
|
|
|
418
418
|
const createCustomSynchronizer = (
|
|
419
419
|
store,
|
|
420
420
|
send,
|
|
421
|
-
|
|
421
|
+
registerReceive,
|
|
422
422
|
destroyImpl,
|
|
423
423
|
requestTimeoutSeconds,
|
|
424
424
|
onIgnoredError,
|
|
@@ -428,7 +428,7 @@ const createCustomSynchronizer = (
|
|
|
428
428
|
let sends = 0;
|
|
429
429
|
let receives = 0;
|
|
430
430
|
const pendingRequests = mapNew();
|
|
431
|
-
|
|
431
|
+
registerReceive((fromClientId, requestId, message, body) => {
|
|
432
432
|
receives++;
|
|
433
433
|
if (message == Message.Response) {
|
|
434
434
|
ifNotUndefined(
|
|
@@ -632,43 +632,37 @@ const createWsSynchronizer = (
|
|
|
632
632
|
onIgnoredError,
|
|
633
633
|
) =>
|
|
634
634
|
__async(void 0, null, function* () {
|
|
635
|
-
let currentReceive;
|
|
636
635
|
const addEventListener = (event, handler) =>
|
|
637
636
|
webSocket.addEventListener(event, handler);
|
|
638
|
-
const
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
637
|
+
const registerReceive = (receive) =>
|
|
638
|
+
addEventListener('message', ({data}) => {
|
|
639
|
+
const payload = data.toString(UTF8);
|
|
640
|
+
const splitAt = payload.indexOf(MESSAGE_SEPARATOR);
|
|
641
|
+
if (splitAt !== -1) {
|
|
642
|
+
receive(
|
|
643
|
+
slice(data, 0, splitAt),
|
|
644
|
+
...jsonParseWithUndefined(slice(data, splitAt + 1)),
|
|
645
|
+
);
|
|
646
|
+
}
|
|
647
|
+
});
|
|
648
|
+
const send = (toClientId, ...args) =>
|
|
642
649
|
webSocket.send(
|
|
643
650
|
(toClientId != null ? toClientId : EMPTY_STRING) +
|
|
644
651
|
MESSAGE_SEPARATOR +
|
|
645
652
|
jsonStringWithUndefined(args),
|
|
646
653
|
);
|
|
647
|
-
};
|
|
648
654
|
const destroy = () => {
|
|
649
655
|
webSocket.close();
|
|
650
656
|
};
|
|
651
657
|
const synchronizer = createCustomSynchronizer(
|
|
652
658
|
store,
|
|
653
659
|
send,
|
|
654
|
-
|
|
660
|
+
registerReceive,
|
|
655
661
|
destroy,
|
|
656
662
|
requestTimeoutSeconds,
|
|
657
663
|
onIgnoredError,
|
|
658
664
|
{getWebSocket: () => webSocket},
|
|
659
665
|
);
|
|
660
|
-
addEventListener('message', ({data}) => {
|
|
661
|
-
if (!isUndefined(currentReceive)) {
|
|
662
|
-
const payload = data.toString(UTF8);
|
|
663
|
-
const splitAt = payload.indexOf(MESSAGE_SEPARATOR);
|
|
664
|
-
if (splitAt !== -1) {
|
|
665
|
-
currentReceive(
|
|
666
|
-
slice(data, 0, splitAt),
|
|
667
|
-
...jsonParseWithUndefined(slice(data, splitAt + 1)),
|
|
668
|
-
);
|
|
669
|
-
}
|
|
670
|
-
}
|
|
671
|
-
});
|
|
672
666
|
return promiseNew((resolve, reject) => {
|
|
673
667
|
if (webSocket.readyState != webSocket.OPEN) {
|
|
674
668
|
addEventListener('error', reject);
|
|
@@ -418,7 +418,7 @@ const Message = {
|
|
|
418
418
|
const createCustomSynchronizer = (
|
|
419
419
|
store,
|
|
420
420
|
send,
|
|
421
|
-
|
|
421
|
+
registerReceive,
|
|
422
422
|
destroyImpl,
|
|
423
423
|
requestTimeoutSeconds,
|
|
424
424
|
onIgnoredError,
|
|
@@ -428,7 +428,7 @@ const createCustomSynchronizer = (
|
|
|
428
428
|
let sends = 0;
|
|
429
429
|
let receives = 0;
|
|
430
430
|
const pendingRequests = mapNew();
|
|
431
|
-
|
|
431
|
+
registerReceive((fromClientId, requestId, message, body) => {
|
|
432
432
|
receives++;
|
|
433
433
|
if (message == Message.Response) {
|
|
434
434
|
ifNotUndefined(
|
|
@@ -632,43 +632,37 @@ const createWsSynchronizer = (
|
|
|
632
632
|
onIgnoredError,
|
|
633
633
|
) =>
|
|
634
634
|
__async(void 0, null, function* () {
|
|
635
|
-
let currentReceive;
|
|
636
635
|
const addEventListener = (event, handler) =>
|
|
637
636
|
webSocket.addEventListener(event, handler);
|
|
638
|
-
const
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
637
|
+
const registerReceive = (receive) =>
|
|
638
|
+
addEventListener('message', ({data}) => {
|
|
639
|
+
const payload = data.toString(UTF8);
|
|
640
|
+
const splitAt = payload.indexOf(MESSAGE_SEPARATOR);
|
|
641
|
+
if (splitAt !== -1) {
|
|
642
|
+
receive(
|
|
643
|
+
slice(data, 0, splitAt),
|
|
644
|
+
...jsonParseWithUndefined(slice(data, splitAt + 1)),
|
|
645
|
+
);
|
|
646
|
+
}
|
|
647
|
+
});
|
|
648
|
+
const send = (toClientId, ...args) =>
|
|
642
649
|
webSocket.send(
|
|
643
650
|
(toClientId != null ? toClientId : EMPTY_STRING) +
|
|
644
651
|
MESSAGE_SEPARATOR +
|
|
645
652
|
jsonStringWithUndefined(args),
|
|
646
653
|
);
|
|
647
|
-
};
|
|
648
654
|
const destroy = () => {
|
|
649
655
|
webSocket.close();
|
|
650
656
|
};
|
|
651
657
|
const synchronizer = createCustomSynchronizer(
|
|
652
658
|
store,
|
|
653
659
|
send,
|
|
654
|
-
|
|
660
|
+
registerReceive,
|
|
655
661
|
destroy,
|
|
656
662
|
requestTimeoutSeconds,
|
|
657
663
|
onIgnoredError,
|
|
658
664
|
{getWebSocket: () => webSocket},
|
|
659
665
|
);
|
|
660
|
-
addEventListener('message', ({data}) => {
|
|
661
|
-
if (!isUndefined(currentReceive)) {
|
|
662
|
-
const payload = data.toString(UTF8);
|
|
663
|
-
const splitAt = payload.indexOf(MESSAGE_SEPARATOR);
|
|
664
|
-
if (splitAt !== -1) {
|
|
665
|
-
currentReceive(
|
|
666
|
-
slice(data, 0, splitAt),
|
|
667
|
-
...jsonParseWithUndefined(slice(data, splitAt + 1)),
|
|
668
|
-
);
|
|
669
|
-
}
|
|
670
|
-
}
|
|
671
|
-
});
|
|
672
666
|
return promiseNew((resolve, reject) => {
|
|
673
667
|
if (webSocket.readyState != webSocket.OPEN) {
|
|
674
668
|
addEventListener('error', reject);
|
|
@@ -408,7 +408,7 @@ const Message = {
|
|
|
408
408
|
const createCustomSynchronizer = (
|
|
409
409
|
store,
|
|
410
410
|
send,
|
|
411
|
-
|
|
411
|
+
registerReceive,
|
|
412
412
|
destroyImpl,
|
|
413
413
|
requestTimeoutSeconds,
|
|
414
414
|
onIgnoredError,
|
|
@@ -418,7 +418,7 @@ const createCustomSynchronizer = (
|
|
|
418
418
|
let sends = 0;
|
|
419
419
|
let receives = 0;
|
|
420
420
|
const pendingRequests = mapNew();
|
|
421
|
-
|
|
421
|
+
registerReceive((fromClientId, requestId, message, body) => {
|
|
422
422
|
receives++;
|
|
423
423
|
if (message == Message.Response) {
|
|
424
424
|
ifNotUndefined(
|
|
@@ -1567,7 +1567,7 @@ const Message = {
|
|
|
1567
1567
|
const createCustomSynchronizer = (
|
|
1568
1568
|
store,
|
|
1569
1569
|
send,
|
|
1570
|
-
|
|
1570
|
+
registerReceive,
|
|
1571
1571
|
destroyImpl,
|
|
1572
1572
|
requestTimeoutSeconds,
|
|
1573
1573
|
onIgnoredError,
|
|
@@ -1577,7 +1577,7 @@ const createCustomSynchronizer = (
|
|
|
1577
1577
|
let sends = 0;
|
|
1578
1578
|
let receives = 0;
|
|
1579
1579
|
const pendingRequests = mapNew();
|
|
1580
|
-
|
|
1580
|
+
registerReceive((fromClientId, requestId, message, body) => {
|
|
1581
1581
|
receives++;
|
|
1582
1582
|
if (message == Message.Response) {
|
|
1583
1583
|
ifNotUndefined(
|
package/index.js
CHANGED
|
@@ -1382,7 +1382,7 @@ const Message = {
|
|
|
1382
1382
|
const createCustomSynchronizer = (
|
|
1383
1383
|
store,
|
|
1384
1384
|
send,
|
|
1385
|
-
|
|
1385
|
+
registerReceive,
|
|
1386
1386
|
destroyImpl,
|
|
1387
1387
|
requestTimeoutSeconds,
|
|
1388
1388
|
onIgnoredError,
|
|
@@ -1392,7 +1392,7 @@ const createCustomSynchronizer = (
|
|
|
1392
1392
|
let sends = 0;
|
|
1393
1393
|
let receives = 0;
|
|
1394
1394
|
const pendingRequests = mapNew();
|
|
1395
|
-
|
|
1395
|
+
registerReceive((fromClientId, requestId, message, body) => {
|
|
1396
1396
|
receives++;
|
|
1397
1397
|
if (message == Message.Response) {
|
|
1398
1398
|
ifNotUndefined(
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=Promise,t=globalThis,a=Math,s=a.floor,n=e=>null==e,o=(e,t,a)=>n(e)?a?.():t(e),r=(e,t)=>e.map(t),i=Object,l=e=>i.getPrototypeOf(e),c=i.entries,g=i.keys,u=i.freeze,y=(e,t)=>((e,t)=>e.forEach(t))(c(e),(([e,a])=>t(a,e))),d=e=>(e=>!n(e)&&o(l(e),(e=>e==i.prototype||n(l(e))),(()=>!0)))(e)&&0==(e=>g(e).length)(e),h=(e,t,a)=>(((e,t)=>t in e)(e,t)||(e[t]=a()),e[t]),p=(e,t)=>e?.delete(t),w=e=>new Map(e),v=(e,t)=>e?.get(t),b=(e,t,a)=>n(a)?(p(e,t),e):e?.set(t,a),f=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)||b(e,t,a()),v(e,t)},M=w(),A=w();new t.TextEncoder;const C=(e,t)=>t?[e,t]:[e],S=(e,t)=>((e??"")>(t??"")?e:t)??"",m=(e="")=>C(((e=[])=>i.fromEntries(e))(),e),L="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split("");w(r(L,((e,t)=>[e,t])));const T=t.crypto?e=>t.crypto.getRandomValues(e):e=>r(e,(()=>s(256*a.random()))),H=(e=16)=>{return t=(e,t)=>e+L[63&t],T(new Uint8Array(e)).reduce(t,"");var t},D=(t,a,s)=>{const r=H(),i=new BroadcastChannel(a);return((t,a,s,r,i,l,c={})=>{let g,L=0,T=0;const D=w();s(((e,s,r,i)=>{T++,0==r?o(v(D,s),(([t,a])=>n(t)||t==e?a(i,e):0)):2==r&&V.isAutoLoading()?R(e,i).then((e=>{g?.(void 0,e)})):3==r&&V.isAutoLoading()?g?.(void 0,i):o(1==r&&V.isAutoSaving()?t.getMergeableContentHashes():4==r?t.getMergeableTableDiff(i):5==r?t.getMergeableRowDiff(i):6==r?t.getMergeableCellDiff(i):7==r?t.getMergeableValueDiff(i):void 0,(t=>{L++,a(e,s,0,t)}))}));const E=async(t,s,n="")=>new e(((e,o)=>{const r=H(),l=setTimeout((()=>{p(D,r),o(`No response from ${t??"anyone"} to '${s}'`)}),1e3*i);b(D,r,[t,(t,a)=>{clearTimeout(l),p(D,r),e([t,a])}]),L++,a(t,r,s,n)})),P=(e,[t,a])=>{y(t,(([t,a],s)=>{const n=h(e[0],s,m);y(t,(([e,t],a)=>{const s=h(n[0],a,m);y(e,(([e,t],a)=>s[0][a]=C(e,t))),s[1]=S(s[1],t)})),n[1]=S(n[1],a)})),e[1]=S(e[1],a)},R=async(e=null,a)=>{n(a)&&([a,e]=await E(e,1));const[s,o]=a,[r,i]=t.getMergeableContentHashes();let l=m();if(r!=s){const[a,s]=(await E(e,4,t.getMergeableTableHashes()))[0];if(l=a,!d(s)){const[a,n]=(await E(e,5,t.getMergeableRowHashes(s)))[0];if(P(l,a),!d(n)){const a=(await E(e,6,t.getMergeableCellHashes(n)))[0];P(l,a)}}}return[l,i==o?m():(await E(e,7,t.getMergeableValueHashes()))[0],1]},V=((e,t,a,s,r,i,l,c={},g=[])=>{let y,h,p,w=0,C=0,S=0;f(M,g,(()=>0)),f(A,g,(()=>[]));const[m,L,T,H,D]=((e=1,t)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!d(e)||!d(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!d(e)||!d(t),t.setContent]:(e=>{throw Error("Store type not supported by this Persister")})())(l,e),E=t=>{var a;(m&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},P=async e=>(2!=w&&(w=1,C++,await z((async()=>{try{E(await t())}catch(t){i?.(t),e&&D(e)}w=0}))),N),R=()=>(h&&(r(h),h=void 0),N),V=async e=>(1!=w&&(w=2,S++,await z((async()=>{try{await a(L,e)}catch(e){i?.(e)}w=0}))),N),x=()=>(o(p,e.delListener),p=void 0,N),z=async(...e)=>(((e,...t)=>{e.push(...t)})(v(A,g),...e),await(async()=>{if(!v(M,g)){for(b(M,g,1);!n((e=v(A,g),y=e.shift()));)try{await y()}catch(e){i?.(e)}b(M,g,0)}var e})(),N),N={load:P,startAutoLoad:async e=>(await R().load(e),h=s((async(e,t)=>{t||e?2!=w&&(w=1,C++,E(t??e),w=0):await P()})),N),stopAutoLoad:R,isAutoLoading:()=>!n(h),save:V,startAutoSave:async()=>(await x().save(),p=e.addDidFinishTransactionListener((()=>{const e=T();H(e)&&V(e)})),N),stopAutoSave:x,isAutoSaving:()=>!n(p),schedule:z,getStore:()=>e,destroy:()=>R().stopAutoSave(),getStats:()=>({loads:C,saves:S}),...c};return u(N)})(t,(async()=>{const e=await R();return d(e[0][0])&&d(e[1][0])?void 0:e}),(async(e,s)=>{L++,s?a(null,null,3,s):a(null,null,2,t.getMergeableContentHashes())}),(e=>g=e),(()=>g=void 0),l,2,{startSync:async e=>await(await V.startAutoLoad(e)).startAutoSave(),stopSync:()=>V.stopAutoLoad().stopAutoSave(),destroy:()=>(r(),V.stopSync()),getSynchronizerStats:()=>({sends:L,receives:T}),...c});return V})(t,((e,t,a,s)=>i.postMessage([r,e,t,a,s])),(e=>{i.onmessage=({data:[t,a,s,o,i]})=>n(a)||a==r?e(t,s,o,i):0}),(()=>{i.close()}),.01,s,{getChannelName:()=>a})};export{D as createBroadcastChannelSynchronizer};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=Promise,t=globalThis,a=Math,s=a.floor,n=e=>null==e,o=(e,t,a)=>n(e)?a?.():t(e),r=(e,t)=>e.map(t),i=Object,l=e=>i.getPrototypeOf(e),c=i.entries,g=i.keys,u=i.freeze,y=(e,t)=>((e,t)=>e.forEach(t))(c(e),(([e,a])=>t(a,e))),d=e=>(e=>!n(e)&&o(l(e),(e=>e==i.prototype||n(l(e))),(()=>!0)))(e)&&0==(e=>g(e).length)(e),h=(e,t,a)=>(((e,t)=>t in e)(e,t)||(e[t]=a()),e[t]),p=(e,t)=>e?.delete(t),w=e=>new Map(e),v=(e,t)=>e?.get(t),b=(e,t,a)=>n(a)?(p(e,t),e):e?.set(t,a),f=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)||b(e,t,a()),v(e,t)},M=w(),A=w();new t.TextEncoder;const C=(e,t)=>t?[e,t]:[e],S=(e,t)=>((e??"")>(t??"")?e:t)??"",m=(e="")=>C(((e=[])=>i.fromEntries(e))(),e),L="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split("");w(r(L,((e,t)=>[e,t])));const T=t.crypto?e=>t.crypto.getRandomValues(e):e=>r(e,(()=>s(256*a.random()))),H=(e=16)=>{return t=(e,t)=>e+L[63&t],T(new Uint8Array(e)).reduce(t,"");var t},D=(t,a,s)=>{const r=H(),i=new BroadcastChannel(a);return((t,a,s,r,i,l,c={})=>{let g,L=0,T=0;const D=w();s(((e,s,r,i)=>{T++,0==r?o(v(D,s),(([t,a])=>n(t)||t==e?a(i,e):0)):2==r&&V.isAutoLoading()?R(e,i).then((e=>{g?.(void 0,e)})):3==r&&V.isAutoLoading()?g?.(void 0,i):o(1==r&&V.isAutoSaving()?t.getMergeableContentHashes():4==r?t.getMergeableTableDiff(i):5==r?t.getMergeableRowDiff(i):6==r?t.getMergeableCellDiff(i):7==r?t.getMergeableValueDiff(i):void 0,(t=>{L++,a(e,s,0,t)}))}));const E=async(t,s,n="")=>new e(((e,o)=>{const r=H(),l=setTimeout((()=>{p(D,r),o(`No response from ${t??"anyone"} to '${s}'`)}),1e3*i);b(D,r,[t,(t,a)=>{clearTimeout(l),p(D,r),e([t,a])}]),L++,a(t,r,s,n)})),P=(e,[t,a])=>{y(t,(([t,a],s)=>{const n=h(e[0],s,m);y(t,(([e,t],a)=>{const s=h(n[0],a,m);y(e,(([e,t],a)=>s[0][a]=C(e,t))),s[1]=S(s[1],t)})),n[1]=S(n[1],a)})),e[1]=S(e[1],a)},R=async(e=null,a)=>{n(a)&&([a,e]=await E(e,1));const[s,o]=a,[r,i]=t.getMergeableContentHashes();let l=m();if(r!=s){const[a,s]=(await E(e,4,t.getMergeableTableHashes()))[0];if(l=a,!d(s)){const[a,n]=(await E(e,5,t.getMergeableRowHashes(s)))[0];if(P(l,a),!d(n)){const a=(await E(e,6,t.getMergeableCellHashes(n)))[0];P(l,a)}}}return[l,i==o?m():(await E(e,7,t.getMergeableValueHashes()))[0],1]},V=((e,t,a,s,r,i,l,c={},g=[])=>{let y,h,p,w=0,C=0,S=0;f(M,g,(()=>0)),f(A,g,(()=>[]));const[m,L,T,H,D]=((e=1,t)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!d(e)||!d(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!d(e)||!d(t),t.setContent]:(e=>{throw Error("Store type not supported by this Persister")})())(l,e),E=t=>{var a;(m&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},P=async e=>(2!=w&&(w=1,C++,await z((async()=>{try{E(await t())}catch(t){i?.(t),e&&D(e)}w=0}))),N),R=()=>(h&&(r(h),h=void 0),N),V=async e=>(1!=w&&(w=2,S++,await z((async()=>{try{await a(L,e)}catch(e){i?.(e)}w=0}))),N),x=()=>(o(p,e.delListener),p=void 0,N),z=async(...e)=>(((e,...t)=>{e.push(...t)})(v(A,g),...e),await(async()=>{if(!v(M,g)){for(b(M,g,1);!n((e=v(A,g),y=e.shift()));)try{await y()}catch(e){i?.(e)}b(M,g,0)}var e})(),N),N={load:P,startAutoLoad:async e=>(await R().load(e),h=s((async(e,t)=>{t||e?2!=w&&(w=1,C++,E(t??e),w=0):await P()})),N),stopAutoLoad:R,isAutoLoading:()=>!n(h),save:V,startAutoSave:async()=>(await x().save(),p=e.addDidFinishTransactionListener((()=>{const e=T();H(e)&&V(e)})),N),stopAutoSave:x,isAutoSaving:()=>!n(p),schedule:z,getStore:()=>e,destroy:()=>R().stopAutoSave(),getStats:()=>({loads:C,saves:S}),...c};return u(N)})(t,(async()=>{const e=await R();return d(e[0][0])&&d(e[1][0])?void 0:e}),(async(e,s)=>{L++,s?a(null,null,3,s):a(null,null,2,t.getMergeableContentHashes())}),(e=>g=e),(()=>g=void 0),l,2,{startSync:async e=>await(await V.startAutoLoad(e)).startAutoSave(),stopSync:()=>V.stopAutoLoad().stopAutoSave(),destroy:()=>(r(),V.stopSync()),getSynchronizerStats:()=>({sends:L,receives:T}),...c});return V})(t,((e,t,a,s)=>i.postMessage([r,e,t,a,s])),(e=>{i.onmessage=({data:[t,a,s,o,i]})=>n(a)||a==r?e(t,s,o,i):0}),(()=>{i.close()}),.01,s,{getChannelName:()=>a})};export{D as createBroadcastChannelSynchronizer};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=Promise,t=globalThis,a=Math,s=a.floor,n=e=>null==e,o=(e,t,a)=>n(e)?a?.():t(e),r=(e,t,a)=>e.slice(t,a),i=t=>new e(t),
|
|
1
|
+
const e=Promise,t=globalThis,a=Math,s=a.floor,n=e=>null==e,o=(e,t,a)=>n(e)?a?.():t(e),r=(e,t,a)=>e.slice(t,a),i=t=>new e(t),c=(e,t)=>e.map(t),l=Object,g=e=>l.getPrototypeOf(e),d=l.entries,y=l.keys,u=l.freeze,h=(e,t)=>((e,t)=>e.forEach(t))(d(e),(([e,a])=>t(a,e))),p=e=>(e=>!n(e)&&o(g(e),(e=>e==l.prototype||n(g(e))),(()=>!0)))(e)&&0==(e=>y(e).length)(e),v=(e,t,a)=>(((e,t)=>t in e)(e,t)||(e[t]=a()),e[t]),f=(e,t)=>e?.delete(t),w=e=>new Map(e),b=(e,t)=>e?.get(t),S=(e,t,a)=>n(a)?(f(e,t),e):e?.set(t,a),M=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)||S(e,t,a()),b(e,t)},A=w(),C=w();new t.TextEncoder;const L=(e,t)=>t?[e,t]:[e],m=(e,t)=>((e??"")>(t??"")?e:t)??"",T=(e="")=>L(((e=[])=>l.fromEntries(e))(),e),H="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split("");w(c(H,((e,t)=>[e,t])));const D=t.crypto?e=>t.crypto.getRandomValues(e):e=>c(e,(()=>s(256*a.random()))),E=async(e,t,a=1,s)=>{const c=(e,a)=>t.addEventListener(e,a),l=((e,t,a,s,r,c,l={})=>{let g,d=0,y=0;const E=w();a(((a,s,r,i)=>{y++,0==r?o(b(E,s),(([e,t])=>n(e)||e==a?t(i,a):0)):2==r&&x.isAutoLoading()?P(a,i).then((e=>{g?.(void 0,e)})):3==r&&x.isAutoLoading()?g?.(void 0,i):o(1==r&&x.isAutoSaving()?e.getMergeableContentHashes():4==r?e.getMergeableTableDiff(i):5==r?e.getMergeableRowDiff(i):6==r?e.getMergeableCellDiff(i):7==r?e.getMergeableValueDiff(i):void 0,(e=>{d++,t(a,s,0,e)}))}));const O=async(e,a,s="")=>i(((n,o)=>{const i=((e=16)=>{return t=(e,t)=>e+H[63&t],D(new Uint8Array(e)).reduce(t,"");var t})(),c=setTimeout((()=>{f(E,i),o(`No response from ${e??"anyone"} to '${a}'`)}),1e3*r);S(E,i,[e,(e,t)=>{clearTimeout(c),f(E,i),n([e,t])}]),d++,t(e,i,a,s)})),N=(e,[t,a])=>{h(t,(([t,a],s)=>{const n=v(e[0],s,T);h(t,(([e,t],a)=>{const s=v(n[0],a,T);h(e,(([e,t],a)=>s[0][a]=L(e,t))),s[1]=m(s[1],t)})),n[1]=m(n[1],a)})),e[1]=m(e[1],a)},P=async(t=null,a)=>{n(a)&&([a,t]=await O(t,1));const[s,o]=a,[r,i]=e.getMergeableContentHashes();let c=T();if(r!=s){const[a,s]=(await O(t,4,e.getMergeableTableHashes()))[0];if(c=a,!p(s)){const[a,n]=(await O(t,5,e.getMergeableRowHashes(s)))[0];if(N(c,a),!p(n)){const a=(await O(t,6,e.getMergeableCellHashes(n)))[0];N(c,a)}}}return[c,i==o?T():(await O(t,7,e.getMergeableValueHashes()))[0],1]},x=((e,t,a,s,r,i,c,l={},g=[])=>{let d,y,h,v=0,f=0,w=0;M(A,g,(()=>0)),M(C,g,(()=>[]));const[L,m,T,H,D]=((e=1,t)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!p(e)||!p(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!p(e)||!p(t),t.setContent]:(e=>{throw Error("Store type not supported by this Persister")})())(c,e),E=t=>{var a;(L&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},O=async e=>(2!=v&&(v=1,f++,await R((async()=>{try{E(await t())}catch(t){i?.(t),e&&D(e)}v=0}))),V),N=()=>(y&&(r(y),y=void 0),V),P=async e=>(1!=v&&(v=2,w++,await R((async()=>{try{await a(m,e)}catch(e){i?.(e)}v=0}))),V),x=()=>(o(h,e.delListener),h=void 0,V),R=async(...e)=>(((e,...t)=>{e.push(...t)})(b(C,g),...e),await(async()=>{if(!b(A,g)){for(S(A,g,1);!n((e=b(C,g),d=e.shift()));)try{await d()}catch(e){i?.(e)}S(A,g,0)}var e})(),V),V={load:O,startAutoLoad:async e=>(await N().load(e),y=s((async(e,t)=>{t||e?2!=v&&(v=1,f++,E(t??e),v=0):await O()})),V),stopAutoLoad:N,isAutoLoading:()=>!n(y),save:P,startAutoSave:async()=>(await x().save(),h=e.addDidFinishTransactionListener((()=>{const e=T();H(e)&&P(e)})),V),stopAutoSave:x,isAutoSaving:()=>!n(h),schedule:R,getStore:()=>e,destroy:()=>N().stopAutoSave(),getStats:()=>({loads:f,saves:w}),...l};return u(V)})(e,(async()=>{const e=await P();return p(e[0][0])&&p(e[1][0])?void 0:e}),(async(a,s)=>{d++,s?t(null,null,3,s):t(null,null,2,e.getMergeableContentHashes())}),(e=>g=e),(()=>g=void 0),c,2,{startSync:async e=>await(await x.startAutoLoad(e)).startAutoSave(),stopSync:()=>x.stopAutoLoad().stopAutoSave(),destroy:()=>(s(),x.stopSync()),getSynchronizerStats:()=>({sends:d,receives:y}),...l});return x})(e,((e,...a)=>t.send((e??"")+"\n"+JSON.stringify(a,((e,t)=>void 0===t?"":t)))),(e=>c("message",(({data:t})=>{const a=t.toString("utf8").indexOf("\n");var s;-1!==a&&e(r(t,0,a),...(s=r(t,a+1),JSON.parse(s,((e,t)=>""===t?void 0:t))))}))),(()=>{t.close()}),a,s,{getWebSocket:()=>t});return i(((e,a)=>{t.readyState!=t.OPEN?(c("error",a),c("open",(()=>e(l)))):e(l)}))};export{E as createWsSynchronizer};
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=Promise,t=globalThis,a=Math,s=a.floor,n=e=>null==e,o=(e,t,a)=>n(e)?a?.():t(e),r=(e,t,a)=>e.slice(t,a),i=t=>new e(t),
|
|
1
|
+
const e=Promise,t=globalThis,a=Math,s=a.floor,n=e=>null==e,o=(e,t,a)=>n(e)?a?.():t(e),r=(e,t,a)=>e.slice(t,a),i=t=>new e(t),c=(e,t)=>e.map(t),l=Object,g=e=>l.getPrototypeOf(e),d=l.entries,y=l.keys,u=l.freeze,h=(e,t)=>((e,t)=>e.forEach(t))(d(e),(([e,a])=>t(a,e))),p=e=>(e=>!n(e)&&o(g(e),(e=>e==l.prototype||n(g(e))),(()=>!0)))(e)&&0==(e=>y(e).length)(e),v=(e,t,a)=>(((e,t)=>t in e)(e,t)||(e[t]=a()),e[t]),f=(e,t)=>e?.delete(t),w=e=>new Map(e),b=(e,t)=>e?.get(t),S=(e,t,a)=>n(a)?(f(e,t),e):e?.set(t,a),M=(e,t,a,s)=>{var n,o;return n=e,o=t,n?.has(o)||S(e,t,a()),b(e,t)},A=w(),C=w();new t.TextEncoder;const L=(e,t)=>t?[e,t]:[e],m=(e,t)=>((e??"")>(t??"")?e:t)??"",T=(e="")=>L(((e=[])=>l.fromEntries(e))(),e),H="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".split("");w(c(H,((e,t)=>[e,t])));const D=t.crypto?e=>t.crypto.getRandomValues(e):e=>c(e,(()=>s(256*a.random()))),E=async(e,t,a=1,s)=>{const c=(e,a)=>t.addEventListener(e,a),l=((e,t,a,s,r,c,l={})=>{let g,d=0,y=0;const E=w();a(((a,s,r,i)=>{y++,0==r?o(b(E,s),(([e,t])=>n(e)||e==a?t(i,a):0)):2==r&&x.isAutoLoading()?P(a,i).then((e=>{g?.(void 0,e)})):3==r&&x.isAutoLoading()?g?.(void 0,i):o(1==r&&x.isAutoSaving()?e.getMergeableContentHashes():4==r?e.getMergeableTableDiff(i):5==r?e.getMergeableRowDiff(i):6==r?e.getMergeableCellDiff(i):7==r?e.getMergeableValueDiff(i):void 0,(e=>{d++,t(a,s,0,e)}))}));const O=async(e,a,s="")=>i(((n,o)=>{const i=((e=16)=>{return t=(e,t)=>e+H[63&t],D(new Uint8Array(e)).reduce(t,"");var t})(),c=setTimeout((()=>{f(E,i),o(`No response from ${e??"anyone"} to '${a}'`)}),1e3*r);S(E,i,[e,(e,t)=>{clearTimeout(c),f(E,i),n([e,t])}]),d++,t(e,i,a,s)})),N=(e,[t,a])=>{h(t,(([t,a],s)=>{const n=v(e[0],s,T);h(t,(([e,t],a)=>{const s=v(n[0],a,T);h(e,(([e,t],a)=>s[0][a]=L(e,t))),s[1]=m(s[1],t)})),n[1]=m(n[1],a)})),e[1]=m(e[1],a)},P=async(t=null,a)=>{n(a)&&([a,t]=await O(t,1));const[s,o]=a,[r,i]=e.getMergeableContentHashes();let c=T();if(r!=s){const[a,s]=(await O(t,4,e.getMergeableTableHashes()))[0];if(c=a,!p(s)){const[a,n]=(await O(t,5,e.getMergeableRowHashes(s)))[0];if(N(c,a),!p(n)){const a=(await O(t,6,e.getMergeableCellHashes(n)))[0];N(c,a)}}}return[c,i==o?T():(await O(t,7,e.getMergeableValueHashes()))[0],1]},x=((e,t,a,s,r,i,c,l={},g=[])=>{let d,y,h,v=0,f=0,w=0;M(A,g,(()=>0)),M(C,g,(()=>[]));const[L,m,T,H,D]=((e=1,t)=>1!=e&&t.isMergeable()?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[e],[t]])=>!p(e)||!p(t),t.setDefaultContent]:2!=e?[0,t.getContent,t.getTransactionChanges,([e,t])=>!p(e)||!p(t),t.setContent]:(e=>{throw Error("Store type not supported by this Persister")})())(c,e),E=t=>{var a;(L&&(a=t?.[0],Array.isArray(a))?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},O=async e=>(2!=v&&(v=1,f++,await R((async()=>{try{E(await t())}catch(t){i?.(t),e&&D(e)}v=0}))),V),N=()=>(y&&(r(y),y=void 0),V),P=async e=>(1!=v&&(v=2,w++,await R((async()=>{try{await a(m,e)}catch(e){i?.(e)}v=0}))),V),x=()=>(o(h,e.delListener),h=void 0,V),R=async(...e)=>(((e,...t)=>{e.push(...t)})(b(C,g),...e),await(async()=>{if(!b(A,g)){for(S(A,g,1);!n((e=b(C,g),d=e.shift()));)try{await d()}catch(e){i?.(e)}S(A,g,0)}var e})(),V),V={load:O,startAutoLoad:async e=>(await N().load(e),y=s((async(e,t)=>{t||e?2!=v&&(v=1,f++,E(t??e),v=0):await O()})),V),stopAutoLoad:N,isAutoLoading:()=>!n(y),save:P,startAutoSave:async()=>(await x().save(),h=e.addDidFinishTransactionListener((()=>{const e=T();H(e)&&P(e)})),V),stopAutoSave:x,isAutoSaving:()=>!n(h),schedule:R,getStore:()=>e,destroy:()=>N().stopAutoSave(),getStats:()=>({loads:f,saves:w}),...l};return u(V)})(e,(async()=>{const e=await P();return p(e[0][0])&&p(e[1][0])?void 0:e}),(async(a,s)=>{d++,s?t(null,null,3,s):t(null,null,2,e.getMergeableContentHashes())}),(e=>g=e),(()=>g=void 0),c,2,{startSync:async e=>await(await x.startAutoLoad(e)).startAutoSave(),stopSync:()=>x.stopAutoLoad().stopAutoSave(),destroy:()=>(s(),x.stopSync()),getSynchronizerStats:()=>({sends:d,receives:y}),...l});return x})(e,((e,...a)=>t.send((e??"")+"\n"+JSON.stringify(a,((e,t)=>void 0===t?"":t)))),(e=>c("message",(({data:t})=>{const a=t.toString("utf8").indexOf("\n");var s;-1!==a&&e(r(t,0,a),...(s=r(t,a+1),JSON.parse(s,((e,t)=>""===t?void 0:t))))}))),(()=>{t.close()}),a,s,{getWebSocket:()=>t});return i(((e,a)=>{t.readyState!=t.OPEN?(c("error",a),c("open",(()=>e(l)))):e(l)}))};export{E as createWsSynchronizer};
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tinybase",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.28",
|
|
4
4
|
"author": "jamesgpearce",
|
|
5
5
|
"repository": "github:tinyplex/tinybase",
|
|
6
6
|
"license": "MIT",
|
|
@@ -229,6 +229,12 @@
|
|
|
229
229
|
"synchronizers/synchronizer-ws-server/with-schemas": [
|
|
230
230
|
"./@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts"
|
|
231
231
|
],
|
|
232
|
+
"synchronizers/synchronizer-broadcast-channel": [
|
|
233
|
+
"./@types/synchronizers/synchronizer-broadcast-channel/index.d.ts"
|
|
234
|
+
],
|
|
235
|
+
"synchronizers/synchronizer-broadcast-channel/with-schemas": [
|
|
236
|
+
"./@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts"
|
|
237
|
+
],
|
|
232
238
|
"store": [
|
|
233
239
|
"./@types/store/index.d.ts"
|
|
234
240
|
],
|
|
@@ -427,6 +433,12 @@
|
|
|
427
433
|
"min/synchronizers/synchronizer-ws-server/with-schemas": [
|
|
428
434
|
"./@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts"
|
|
429
435
|
],
|
|
436
|
+
"min/synchronizers/synchronizer-broadcast-channel": [
|
|
437
|
+
"./@types/synchronizers/synchronizer-broadcast-channel/index.d.ts"
|
|
438
|
+
],
|
|
439
|
+
"min/synchronizers/synchronizer-broadcast-channel/with-schemas": [
|
|
440
|
+
"./@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts"
|
|
441
|
+
],
|
|
430
442
|
"min/store": [
|
|
431
443
|
"./@types/store/index.d.ts"
|
|
432
444
|
],
|
|
@@ -625,6 +637,12 @@
|
|
|
625
637
|
"es6/synchronizers/synchronizer-ws-server/with-schemas": [
|
|
626
638
|
"./@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts"
|
|
627
639
|
],
|
|
640
|
+
"es6/synchronizers/synchronizer-broadcast-channel": [
|
|
641
|
+
"./@types/synchronizers/synchronizer-broadcast-channel/index.d.ts"
|
|
642
|
+
],
|
|
643
|
+
"es6/synchronizers/synchronizer-broadcast-channel/with-schemas": [
|
|
644
|
+
"./@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts"
|
|
645
|
+
],
|
|
628
646
|
"es6/store": [
|
|
629
647
|
"./@types/store/index.d.ts"
|
|
630
648
|
],
|
|
@@ -823,6 +841,12 @@
|
|
|
823
841
|
"es6/min/synchronizers/synchronizer-ws-server/with-schemas": [
|
|
824
842
|
"./@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts"
|
|
825
843
|
],
|
|
844
|
+
"es6/min/synchronizers/synchronizer-broadcast-channel": [
|
|
845
|
+
"./@types/synchronizers/synchronizer-broadcast-channel/index.d.ts"
|
|
846
|
+
],
|
|
847
|
+
"es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas": [
|
|
848
|
+
"./@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts"
|
|
849
|
+
],
|
|
826
850
|
"es6/min/store": [
|
|
827
851
|
"./@types/store/index.d.ts"
|
|
828
852
|
],
|
|
@@ -1346,6 +1370,26 @@
|
|
|
1346
1370
|
"default": "./synchronizers/synchronizer-ws-server/with-schemas/index.js"
|
|
1347
1371
|
}
|
|
1348
1372
|
},
|
|
1373
|
+
"./synchronizers/synchronizer-broadcast-channel": {
|
|
1374
|
+
"require": {
|
|
1375
|
+
"types": "./@types/synchronizers/synchronizer-broadcast-channel/index.d.cts",
|
|
1376
|
+
"default": "./cjs/synchronizers/synchronizer-broadcast-channel/index.cjs"
|
|
1377
|
+
},
|
|
1378
|
+
"default": {
|
|
1379
|
+
"types": "./@types/synchronizers/synchronizer-broadcast-channel/index.d.ts",
|
|
1380
|
+
"default": "./synchronizers/synchronizer-broadcast-channel/index.js"
|
|
1381
|
+
}
|
|
1382
|
+
},
|
|
1383
|
+
"./synchronizers/synchronizer-broadcast-channel/with-schemas": {
|
|
1384
|
+
"require": {
|
|
1385
|
+
"types": "./@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.cts",
|
|
1386
|
+
"default": "./cjs/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs"
|
|
1387
|
+
},
|
|
1388
|
+
"default": {
|
|
1389
|
+
"types": "./@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts",
|
|
1390
|
+
"default": "./synchronizers/synchronizer-broadcast-channel/with-schemas/index.js"
|
|
1391
|
+
}
|
|
1392
|
+
},
|
|
1349
1393
|
"./store": {
|
|
1350
1394
|
"require": {
|
|
1351
1395
|
"types": "./@types/store/index.d.cts",
|
|
@@ -2006,6 +2050,26 @@
|
|
|
2006
2050
|
"default": "./min/synchronizers/synchronizer-ws-server/with-schemas/index.js"
|
|
2007
2051
|
}
|
|
2008
2052
|
},
|
|
2053
|
+
"./min/synchronizers/synchronizer-broadcast-channel": {
|
|
2054
|
+
"require": {
|
|
2055
|
+
"types": "./@types/synchronizers/synchronizer-broadcast-channel/index.d.cts",
|
|
2056
|
+
"default": "./cjs/min/synchronizers/synchronizer-broadcast-channel/index.cjs"
|
|
2057
|
+
},
|
|
2058
|
+
"default": {
|
|
2059
|
+
"types": "./@types/synchronizers/synchronizer-broadcast-channel/index.d.ts",
|
|
2060
|
+
"default": "./min/synchronizers/synchronizer-broadcast-channel/index.js"
|
|
2061
|
+
}
|
|
2062
|
+
},
|
|
2063
|
+
"./min/synchronizers/synchronizer-broadcast-channel/with-schemas": {
|
|
2064
|
+
"require": {
|
|
2065
|
+
"types": "./@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.cts",
|
|
2066
|
+
"default": "./cjs/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs"
|
|
2067
|
+
},
|
|
2068
|
+
"default": {
|
|
2069
|
+
"types": "./@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts",
|
|
2070
|
+
"default": "./min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js"
|
|
2071
|
+
}
|
|
2072
|
+
},
|
|
2009
2073
|
"./min/store": {
|
|
2010
2074
|
"require": {
|
|
2011
2075
|
"types": "./@types/store/index.d.cts",
|
|
@@ -2666,6 +2730,26 @@
|
|
|
2666
2730
|
"default": "./es6/synchronizers/synchronizer-ws-server/with-schemas/index.js"
|
|
2667
2731
|
}
|
|
2668
2732
|
},
|
|
2733
|
+
"./es6/synchronizers/synchronizer-broadcast-channel": {
|
|
2734
|
+
"require": {
|
|
2735
|
+
"types": "./@types/synchronizers/synchronizer-broadcast-channel/index.d.cts",
|
|
2736
|
+
"default": "./cjs/es6/synchronizers/synchronizer-broadcast-channel/index.cjs"
|
|
2737
|
+
},
|
|
2738
|
+
"default": {
|
|
2739
|
+
"types": "./@types/synchronizers/synchronizer-broadcast-channel/index.d.ts",
|
|
2740
|
+
"default": "./es6/synchronizers/synchronizer-broadcast-channel/index.js"
|
|
2741
|
+
}
|
|
2742
|
+
},
|
|
2743
|
+
"./es6/synchronizers/synchronizer-broadcast-channel/with-schemas": {
|
|
2744
|
+
"require": {
|
|
2745
|
+
"types": "./@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.cts",
|
|
2746
|
+
"default": "./cjs/es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs"
|
|
2747
|
+
},
|
|
2748
|
+
"default": {
|
|
2749
|
+
"types": "./@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts",
|
|
2750
|
+
"default": "./es6/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js"
|
|
2751
|
+
}
|
|
2752
|
+
},
|
|
2669
2753
|
"./es6/store": {
|
|
2670
2754
|
"require": {
|
|
2671
2755
|
"types": "./@types/store/index.d.cts",
|
|
@@ -3326,6 +3410,26 @@
|
|
|
3326
3410
|
"default": "./es6/min/synchronizers/synchronizer-ws-server/with-schemas/index.js"
|
|
3327
3411
|
}
|
|
3328
3412
|
},
|
|
3413
|
+
"./es6/min/synchronizers/synchronizer-broadcast-channel": {
|
|
3414
|
+
"require": {
|
|
3415
|
+
"types": "./@types/synchronizers/synchronizer-broadcast-channel/index.d.cts",
|
|
3416
|
+
"default": "./cjs/es6/min/synchronizers/synchronizer-broadcast-channel/index.cjs"
|
|
3417
|
+
},
|
|
3418
|
+
"default": {
|
|
3419
|
+
"types": "./@types/synchronizers/synchronizer-broadcast-channel/index.d.ts",
|
|
3420
|
+
"default": "./es6/min/synchronizers/synchronizer-broadcast-channel/index.js"
|
|
3421
|
+
}
|
|
3422
|
+
},
|
|
3423
|
+
"./es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas": {
|
|
3424
|
+
"require": {
|
|
3425
|
+
"types": "./@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.cts",
|
|
3426
|
+
"default": "./cjs/es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.cjs"
|
|
3427
|
+
},
|
|
3428
|
+
"default": {
|
|
3429
|
+
"types": "./@types/synchronizers/synchronizer-broadcast-channel/with-schemas/index.d.ts",
|
|
3430
|
+
"default": "./es6/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js"
|
|
3431
|
+
}
|
|
3432
|
+
},
|
|
3329
3433
|
"./es6/min/store": {
|
|
3330
3434
|
"require": {
|
|
3331
3435
|
"types": "./@types/store/index.d.cts",
|