@instantdb/core 0.22.56 → 0.22.57
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/dist/commonjs/Reactor.d.ts +5 -0
- package/dist/commonjs/Reactor.d.ts.map +1 -1
- package/dist/commonjs/Reactor.js +43 -5
- package/dist/commonjs/Reactor.js.map +1 -1
- package/dist/commonjs/SyncTable.d.ts +140 -0
- package/dist/commonjs/SyncTable.d.ts.map +1 -0
- package/dist/commonjs/SyncTable.js +538 -0
- package/dist/commonjs/SyncTable.js.map +1 -0
- package/dist/commonjs/index.d.ts +21 -1
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +19 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/instaql.d.ts +1 -0
- package/dist/commonjs/instaql.d.ts.map +1 -1
- package/dist/commonjs/instaql.js +9 -5
- package/dist/commonjs/instaql.js.map +1 -1
- package/dist/commonjs/store.d.ts +5 -0
- package/dist/commonjs/store.d.ts.map +1 -1
- package/dist/commonjs/store.js +11 -0
- package/dist/commonjs/store.js.map +1 -1
- package/dist/commonjs/utils/PersistedObject.d.ts +11 -5
- package/dist/commonjs/utils/PersistedObject.d.ts.map +1 -1
- package/dist/commonjs/utils/PersistedObject.js +12 -2
- package/dist/commonjs/utils/PersistedObject.js.map +1 -1
- package/dist/esm/Reactor.d.ts +5 -0
- package/dist/esm/Reactor.d.ts.map +1 -1
- package/dist/esm/Reactor.js +43 -5
- package/dist/esm/Reactor.js.map +1 -1
- package/dist/esm/SyncTable.d.ts +140 -0
- package/dist/esm/SyncTable.d.ts.map +1 -0
- package/dist/esm/SyncTable.js +498 -0
- package/dist/esm/SyncTable.js.map +1 -0
- package/dist/esm/index.d.ts +21 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +19 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instaql.d.ts +1 -0
- package/dist/esm/instaql.d.ts.map +1 -1
- package/dist/esm/instaql.js +8 -5
- package/dist/esm/instaql.js.map +1 -1
- package/dist/esm/store.d.ts +5 -0
- package/dist/esm/store.d.ts.map +1 -1
- package/dist/esm/store.js +9 -3
- package/dist/esm/store.js.map +1 -1
- package/dist/esm/utils/PersistedObject.d.ts +11 -5
- package/dist/esm/utils/PersistedObject.d.ts.map +1 -1
- package/dist/esm/utils/PersistedObject.js +12 -2
- package/dist/esm/utils/PersistedObject.js.map +1 -1
- package/dist/standalone/index.js +1579 -1135
- package/dist/standalone/index.umd.cjs +3 -3
- package/package.json +2 -2
- package/src/Reactor.js +60 -4
- package/src/SyncTable.ts +821 -0
- package/src/index.ts +48 -0
- package/src/instaql.js +11 -5
- package/src/store.js +11 -3
- package/src/utils/PersistedObject.ts +15 -6
|
@@ -75,6 +75,7 @@ export default class Reactor<RoomSchema extends import("./presence.ts").RoomSche
|
|
|
75
75
|
_inFlightMutationEventIds: Set<any>;
|
|
76
76
|
queryCacheLimit: any;
|
|
77
77
|
versions: any;
|
|
78
|
+
_syncTable: SyncTable;
|
|
78
79
|
_beforeUnload(): void;
|
|
79
80
|
updateSchema(schema: any): void;
|
|
80
81
|
_reactorStats(): {
|
|
@@ -125,6 +126,9 @@ export default class Reactor<RoomSchema extends import("./presence.ts").RoomSche
|
|
|
125
126
|
_setAttrs(attrs: any): void;
|
|
126
127
|
getPreviousResult: (q: any) => any;
|
|
127
128
|
_startQuerySub(q: any, hash: any): string;
|
|
129
|
+
subscribeTable(q: any, cb: any): (opts?: {
|
|
130
|
+
keepSubscription?: boolean | null | undefined;
|
|
131
|
+
} | null | undefined) => void;
|
|
128
132
|
/**
|
|
129
133
|
* When a user subscribes to a query the following side effects occur:
|
|
130
134
|
*
|
|
@@ -332,6 +336,7 @@ export type TransportType = import("./Connection.ts").TransportType;
|
|
|
332
336
|
export type EventSourceConstructor = import("./Connection.ts").EventSourceConstructor;
|
|
333
337
|
import { PersistedObject } from './utils/PersistedObject.ts';
|
|
334
338
|
import { Deferred } from './utils/Deferred.js';
|
|
339
|
+
import { SyncTable } from './SyncTable.ts';
|
|
335
340
|
import * as authAPI from './authAPI.ts';
|
|
336
341
|
import * as StorageApi from './StorageAPI.ts';
|
|
337
342
|
import IndexedDBStorage from './IndexedDBStorage.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reactor.d.ts","sourceRoot":"","sources":["../../src/Reactor.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Reactor.d.ts","sourceRoot":"","sources":["../../src/Reactor.js"],"names":[],"mappings":"AAwJA;;GAEG;AACH,6BAFwD,UAAU,SAArD,OAAQ,eAAe,EAAE,eAAgB;IA8DpD,sJAgHC;IA3KD,WAAM;IACN,mBAAiB;IACjB,qBAAoB;IACpB,eAA2B;IAE3B,8BAA8B;IAC9B,gCAAU;IACV,8BAA8B;IAC9B,uCAAiB;IAEjB,wEAAwE;IACxE,UADW,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,GAAG,CAAC;QAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAA;KAAE,CAAC,CAAC,CACtD;IACd,gFAAgF;IAChF,eADW,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC,CACzD;IACnB,eAAa;IACb,gBAAc;IACd,wBAAsB;IACtB,2BAAyB;IACzB,YAAO;IACP,gBAAW;IACX,qCAAkC;IAClC,yBAA2B;IAC3B,4BAAwB;IACxB,yBAAyB;IACzB,YADW,UAAU,CACV;IACX,4BAA4B;IAC5B,gBADW,aAAa,CACF;IAEtB,qCAAqC;IACrC,cADW,sBAAsB,CACpB;IACb,6BAA6B;IAC7B,OADW,OAAO,GAAG,IAAI,CACZ;IACb,qBAAsB;IACtB,mBAAqB;IACrB,yDAAyD;IACzD,wBADW,OAAO,CAAC,IAAI,GAAG;QAAC,KAAK,EAAE;YAAC,OAAO,EAAE,MAAM,CAAA;SAAC,CAAA;KAAC,CAAC,CACvB;IAE9B,+DAA+D;IAC/D,YADW,IAAI,GAAG,OAAO,sBAAsB,EAAE,SAAS,CACxC;IAElB,yCAAyC;IACzC,mBADU,gBAAgB,GAAG,SAAS,CACpB;IAElB,iEAAiE;IACjE,QADW,MAAM,CAAC,MAAM,EAAE;QAAC,WAAW,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAC,CAAC,CACjD;IACZ,sCAAsC;IACtC,oBADW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACV;IACxB,cAAe;IACf,uBAAqB;IACrB,mBAAoB;IACpB;;;;MAA4E;IAC5E,wBAAsB;IACtB,uBAAwB;IACxB,qBAAqB;IACrB,MADW,MAAM,CACZ;IACL,8BAAyB;IACzB,sCAAiC;IACjC,oCAAsC;IAYpC,qBAAwD;IAYxD,cAAmE;IAsCnE,sBAeC;IAsFH,sBAKC;IApDD,gCAOC;IAED;;;;MAMC;IAED,iCA4BC;IASD;;;;OAIG;IACH,2BAJW,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAI,OAAO,WACxD,MAAM,aACN;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAC,QA+B5E;IAED,wCAIC;IAED;;;;OAIG;IACH,oBAAqB,iBAAY,EAAE,iBAAY,UA0C7C;IAEF;;;OAGG;IACH,2BAA4B,gBAAW,EAAE,iBAAY,UAanD;IAEF,0CAgBC;IAED,4CAqOC;IAnNK,gBAAmC;IAqNzC;;;;OAIG;IACH,6BAJW,SAAS,GAAG,OAAO,WACnB,MAAM,YACN;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAC,QAoB3E;IAED,oCAqEC;IAED,oEAKC;IAED,4BAOC;IAKD,oBAAqB,MAAC,SAGpB;IAEF,0CAUC;IAED;wBAzfE,CAAH;kCA2fE;IAED;;;;;;;;;OASG;IACH,uDAuBC;IAED,2CAwCC;IAED,sDAQC;IAED,8CAMC;IAED,uCAUC;IAaD,kEA6EC;IAED,sDAEC;IAKD,uBAoCC;IAED,0CAA0C;IAC1C,6BA2CC;IAED,6EAOC;IAED,0DAA0D;IAC1D,YAAa,SAAI,UASf;IAEF,qBAAsB,SAAI,UAQxB;IAEF,mBAAoB,SAAI,EAAE,UAAK,UAG7B;IAEF,mCAAmC;IACnC,kBAIC;IAED,wBAGC;IAED,wEAAwE;IACxE,SAAU,WAAM,kBAqBd;IAEF;;;;OAIG;IACH,UAAW,SAJA,GAIO,EAAE,QAHT,GAGc,kBAuBvB;IAEF,iBAIC;IAED;;;;;;OAMG;IACH,iDAqCC;IAKD,4DAA4D;IAC5D,8BA4BC;IAED;;OAEG;IACH,wCAgBC;IAED;;;;OAIG;IACH,wCAsBC;IAED,qCAKC;IAED,kDAkBC;IAED,mBAAoB,MAAC,UA+BnB;IAEF,sBAAuB,MAAC,UAmBtB;IAEF,oBAAqB,MAAC,UAWpB;IAEF,+BAsBE;IAEF,oBAAqB,MAAC,UAgCpB;IAEF,qBAqDC;IAED;;;;;;;;;OASG;IACH,oCAYC;IAID,8BAoDC;IAED;;;OAGG;IACH;;;;OA+CC;IAED;eAlhDkC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAC;OAohDlD;IAED,+CAMC;IAED,mCAgBC;IAED,wBAMC;IAED,+CAQC;IAED,oCAUC;IAED,gCAEC;IAED,0CAEC;IAED,wBAIC;IAED,8CAEC;IAED,yCAEC;IAED;;;;MAEC;IAED,gCAGC;IAED;;;OAcC;IAED,oCAGC;IAED,+CAiBC;IAED,+BAcC;IAED;;+CAMC;IAED;;;wCAYC;IAED,uEAQC;IAED,iDAOC;IAED,8DAoBC;IAED,kCAIC;IAED;;;;;;;OAOG;IACH,oDAJG;QAAuB,UAAU,EAAzB,MAAM;QACS,WAAW,EAA1B,MAAM;KACd,GAAU,MAAM,CAKlB;IAED;;;;OAIG;IACH,6CAHG;QAAuB,IAAI,EAAnB,MAAM;QACU,YAAY,GAA5B,MAAM;KAChB,mCAaA;IAED,oBAGC;IAED;;;;;OAKG;IACH,kDAJG;QAAuB,UAAU,EAAzB,MAAM;QACS,OAAO,EAAtB,MAAM;QAC6B,KAAK,GAAxC,MAAM,GAAG,IAAI,GAAG,SAAS;KACnC,mCAeA;IAKD;;;;OAIG;IACH,iBAJW,MAAM,oBACN,GAAG,GAAG,IAAI,GAAG,SAAS,cA4BhC;IAED,gCAiBC;IAMD;;;;;;;;;;;MAUC;IAGD,oEAsBC;IAED,8CAMC;IAED,2CAGC;IAED,iCAEC;IAED,0DAKC;IAGD,8EAuBC;IAED,uCAIC;IAED,oDAaC;IAED,mDAyBC;IAED,gDAWC;IAKD;;;;;aAeC;IAED,uEAQC;IAED,6DAoBC;IAED,4DAWC;IAKD,oFAWC;IAED,8DAWC;IAKD,+CAaC;IAED,wCAWC;CACF;qBA5wEa,OAAO,gBAAgB,EAAE,MAAM;;4BAE/B,OAAO,iBAAiB,EAAE,aAAa;qCACvC,OAAO,iBAAiB,EAAE,sBAAsB;gCAvB9B,4BAA4B;yBADnC,qBAAqB;0BAmBpB,gBAAgB;yBAvBjB,cAAc;4BACX,iBAAiB;6BAHhB,uBAAuB;kCAClB,4BAA4B"}
|
package/dist/commonjs/Reactor.js
CHANGED
|
@@ -82,6 +82,7 @@ const InstantError_ts_1 = require("./InstantError.js");
|
|
|
82
82
|
const fetch_ts_1 = require("./utils/fetch.js");
|
|
83
83
|
const uuid_1 = require("uuid");
|
|
84
84
|
const Connection_ts_1 = require("./Connection.js");
|
|
85
|
+
const SyncTable_ts_1 = require("./SyncTable.js");
|
|
85
86
|
/** @typedef {import('./utils/log.ts').Logger} Logger */
|
|
86
87
|
/** @typedef {import('./Connection.ts').Connection} Connection */
|
|
87
88
|
/** @typedef {import('./Connection.ts').TransportType} TransportType */
|
|
@@ -473,6 +474,9 @@ class Reactor {
|
|
|
473
474
|
}));
|
|
474
475
|
}
|
|
475
476
|
this._initStorage(Storage);
|
|
477
|
+
this._syncTable = new SyncTable_ts_1.SyncTable(this._trySendAuthed.bind(this), this._persister, {
|
|
478
|
+
useDateObjects: this.config.useDateObjects,
|
|
479
|
+
}, this._log, (triples) => s.createStore(this.attrs, triples, this.config.enableCardinalityInference, this._linkIndex, this.config.useDateObjects));
|
|
476
480
|
this._oauthCallbackResponse = this._oauthLoginInit();
|
|
477
481
|
// kick off a request to cache it
|
|
478
482
|
this.getCurrentUser();
|
|
@@ -531,6 +535,7 @@ class Reactor {
|
|
|
531
535
|
for (const cb of this._beforeUnloadCbs) {
|
|
532
536
|
cb();
|
|
533
537
|
}
|
|
538
|
+
this._syncTable.beforeUnload();
|
|
534
539
|
}
|
|
535
540
|
/**
|
|
536
541
|
* @param {'enqueued' | 'pending' | 'synced' | 'timeout' | 'error' } status
|
|
@@ -597,7 +602,7 @@ class Reactor {
|
|
|
597
602
|
this._log.info('[receive]', connId, msg.op, msg);
|
|
598
603
|
}
|
|
599
604
|
switch (msg.op) {
|
|
600
|
-
case 'init-ok':
|
|
605
|
+
case 'init-ok': {
|
|
601
606
|
this._setStatus(STATUS.AUTHENTICATED);
|
|
602
607
|
this._reconnectTimeoutMs = 0;
|
|
603
608
|
this._setAttrs(msg.attrs);
|
|
@@ -610,10 +615,12 @@ class Reactor {
|
|
|
610
615
|
this._tryJoinRoom(roomId, enqueuedUserPresence);
|
|
611
616
|
}
|
|
612
617
|
break;
|
|
613
|
-
|
|
618
|
+
}
|
|
619
|
+
case 'add-query-exists': {
|
|
614
620
|
this.notifyOneQueryOnce((0, weakHash_ts_1.default)(msg.q));
|
|
615
621
|
break;
|
|
616
|
-
|
|
622
|
+
}
|
|
623
|
+
case 'add-query-ok': {
|
|
617
624
|
const { q, result } = msg;
|
|
618
625
|
const hash = (0, weakHash_ts_1.default)(q);
|
|
619
626
|
const pageInfo = (_d = (_c = result === null || result === void 0 ? void 0 : result[0]) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d['page-info'];
|
|
@@ -634,7 +641,24 @@ class Reactor {
|
|
|
634
641
|
this.notifyOneQueryOnce(hash);
|
|
635
642
|
this._cleanupPendingMutationsTimeout();
|
|
636
643
|
break;
|
|
637
|
-
|
|
644
|
+
}
|
|
645
|
+
case 'start-sync-ok': {
|
|
646
|
+
this._syncTable.onStartSyncOk(msg);
|
|
647
|
+
break;
|
|
648
|
+
}
|
|
649
|
+
case 'sync-load-batch': {
|
|
650
|
+
this._syncTable.onSyncLoadBatch(msg);
|
|
651
|
+
break;
|
|
652
|
+
}
|
|
653
|
+
case 'sync-init-finish': {
|
|
654
|
+
this._syncTable.onSyncInitFinish(msg);
|
|
655
|
+
break;
|
|
656
|
+
}
|
|
657
|
+
case 'sync-update-triples': {
|
|
658
|
+
this._syncTable.onSyncUpdateTriples(msg);
|
|
659
|
+
break;
|
|
660
|
+
}
|
|
661
|
+
case 'refresh-ok': {
|
|
638
662
|
const { computations, attrs } = msg;
|
|
639
663
|
const processedTxId = msg['processed-tx-id'];
|
|
640
664
|
if (attrs) {
|
|
@@ -672,6 +696,7 @@ class Reactor {
|
|
|
672
696
|
this.notifyOne(hash);
|
|
673
697
|
});
|
|
674
698
|
break;
|
|
699
|
+
}
|
|
675
700
|
case 'transact-ok': {
|
|
676
701
|
const { 'client-event-id': eventId, 'tx-id': txId } = msg;
|
|
677
702
|
this._inFlightMutationEventIds.delete(eventId);
|
|
@@ -746,6 +771,7 @@ class Reactor {
|
|
|
746
771
|
this._handleReceiveError(msg);
|
|
747
772
|
break;
|
|
748
773
|
default:
|
|
774
|
+
this._log.info('Uknown op', msg.op, msg);
|
|
749
775
|
break;
|
|
750
776
|
}
|
|
751
777
|
}
|
|
@@ -773,7 +799,7 @@ class Reactor {
|
|
|
773
799
|
}
|
|
774
800
|
}
|
|
775
801
|
_handleReceiveError(msg) {
|
|
776
|
-
var _a, _b, _c, _d, _e;
|
|
802
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
777
803
|
console.log('error', msg);
|
|
778
804
|
const eventId = msg['client-event-id'];
|
|
779
805
|
// This might not be a mutation, but it can't hurt to delete it
|
|
@@ -810,6 +836,14 @@ class Reactor {
|
|
|
810
836
|
this.notifyAll();
|
|
811
837
|
return;
|
|
812
838
|
}
|
|
839
|
+
if (((_f = msg['original-event']) === null || _f === void 0 ? void 0 : _f.op) === 'resync-table') {
|
|
840
|
+
this._syncTable.onResyncError(msg);
|
|
841
|
+
return;
|
|
842
|
+
}
|
|
843
|
+
if (((_g = msg['original-event']) === null || _g === void 0 ? void 0 : _g.op) === 'start-sync') {
|
|
844
|
+
this._syncTable.onStartSyncError(msg);
|
|
845
|
+
return;
|
|
846
|
+
}
|
|
813
847
|
// We've caught some error which has no corresponding listener.
|
|
814
848
|
// Let's console.error to let the user know.
|
|
815
849
|
const errorObj = Object.assign({}, msg);
|
|
@@ -845,6 +879,9 @@ class Reactor {
|
|
|
845
879
|
this._trySendAuthed(eventId, { op: 'add-query', q });
|
|
846
880
|
return eventId;
|
|
847
881
|
}
|
|
882
|
+
subscribeTable(q, cb) {
|
|
883
|
+
return this._syncTable.subscribe(q, cb);
|
|
884
|
+
}
|
|
848
885
|
/**
|
|
849
886
|
* When a user subscribes to a query the following side effects occur:
|
|
850
887
|
*
|
|
@@ -1154,6 +1191,7 @@ class Reactor {
|
|
|
1154
1191
|
this._sendMutation(eventId, mut);
|
|
1155
1192
|
}
|
|
1156
1193
|
});
|
|
1194
|
+
this._syncTable.flushPending();
|
|
1157
1195
|
}
|
|
1158
1196
|
/**
|
|
1159
1197
|
* Clean up pendingMutations that all queries have seen
|