@instantdb/core 0.22.55 → 0.22.56-experimental.drewh-ssr.19476173664.1
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/__tests__/src/serializeSchema.test.ts +123 -0
- package/dist/commonjs/Reactor.d.ts +13 -1
- package/dist/commonjs/Reactor.d.ts.map +1 -1
- package/dist/commonjs/Reactor.js +65 -5
- package/dist/commonjs/Reactor.js.map +1 -1
- package/dist/commonjs/clientTypes.d.ts.map +1 -1
- package/dist/commonjs/clientTypes.js.map +1 -1
- package/dist/commonjs/createRouteHandler.d.ts +8 -0
- package/dist/commonjs/createRouteHandler.d.ts.map +1 -0
- package/dist/commonjs/createRouteHandler.js +57 -0
- package/dist/commonjs/createRouteHandler.js.map +1 -0
- package/dist/commonjs/framework.d.ts +75 -0
- package/dist/commonjs/framework.d.ts.map +1 -0
- package/dist/commonjs/framework.js +199 -0
- package/dist/commonjs/framework.js.map +1 -0
- package/dist/commonjs/index.d.ts +5 -1
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +7 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/parseSchemaFromJSON.d.ts +3 -0
- package/dist/commonjs/parseSchemaFromJSON.d.ts.map +1 -0
- package/dist/commonjs/parseSchemaFromJSON.js +148 -0
- package/dist/commonjs/parseSchemaFromJSON.js.map +1 -0
- package/dist/esm/Reactor.d.ts +13 -1
- package/dist/esm/Reactor.d.ts.map +1 -1
- package/dist/esm/Reactor.js +65 -5
- package/dist/esm/Reactor.js.map +1 -1
- package/dist/esm/clientTypes.d.ts.map +1 -1
- package/dist/esm/clientTypes.js.map +1 -1
- package/dist/esm/createRouteHandler.d.ts +8 -0
- package/dist/esm/createRouteHandler.d.ts.map +1 -0
- package/dist/esm/createRouteHandler.js +53 -0
- package/dist/esm/createRouteHandler.js.map +1 -0
- package/dist/esm/framework.d.ts +75 -0
- package/dist/esm/framework.d.ts.map +1 -0
- package/dist/esm/framework.js +159 -0
- package/dist/esm/framework.js.map +1 -0
- package/dist/esm/index.d.ts +5 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +5 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/parseSchemaFromJSON.d.ts +3 -0
- package/dist/esm/parseSchemaFromJSON.d.ts.map +1 -0
- package/dist/esm/parseSchemaFromJSON.js +144 -0
- package/dist/esm/parseSchemaFromJSON.js.map +1 -0
- package/dist/standalone/index.js +1495 -1195
- package/dist/standalone/index.umd.cjs +3 -3
- package/package.json +2 -2
- package/src/Reactor.js +75 -9
- package/src/clientTypes.ts +5 -1
- package/src/createRouteHandler.ts +44 -0
- package/src/framework.ts +281 -0
- package/src/index.ts +8 -0
- package/src/parseSchemaFromJSON.ts +176 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { expect, test } from 'vitest';
|
|
2
|
+
import { i } from '../../src/schema';
|
|
3
|
+
import { parseSchemaFromJSON } from '../../src/parseSchemaFromJSON';
|
|
4
|
+
import { InstantSchemaDef } from '../../src/schemaTypes';
|
|
5
|
+
|
|
6
|
+
const schema = i.schema({
|
|
7
|
+
entities: {
|
|
8
|
+
users: i.entity({
|
|
9
|
+
name: i.string(),
|
|
10
|
+
email: i.string().indexed().unique(),
|
|
11
|
+
bio: i.string().optional(),
|
|
12
|
+
// this is a convenient way to typecheck custom JSON fields
|
|
13
|
+
// though we should probably have a backend solution for this
|
|
14
|
+
stuff: i.json<{ custom: string }>(),
|
|
15
|
+
junk: i.any(),
|
|
16
|
+
}),
|
|
17
|
+
posts: i.entity({
|
|
18
|
+
title: i.string().optional(),
|
|
19
|
+
body: i.string(),
|
|
20
|
+
}),
|
|
21
|
+
comments: i.entity({
|
|
22
|
+
body: i.string().indexed(),
|
|
23
|
+
likes: i.number(),
|
|
24
|
+
}),
|
|
25
|
+
|
|
26
|
+
birthdays: i.entity({
|
|
27
|
+
date: i.date(),
|
|
28
|
+
message: i.string(),
|
|
29
|
+
prizes: i.json<string | number>(),
|
|
30
|
+
}),
|
|
31
|
+
},
|
|
32
|
+
links: {
|
|
33
|
+
usersPosts: {
|
|
34
|
+
forward: {
|
|
35
|
+
on: 'users',
|
|
36
|
+
has: 'many',
|
|
37
|
+
label: 'posts',
|
|
38
|
+
},
|
|
39
|
+
reverse: {
|
|
40
|
+
on: 'posts',
|
|
41
|
+
has: 'one',
|
|
42
|
+
label: 'author',
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
postsComments: {
|
|
46
|
+
forward: {
|
|
47
|
+
on: 'posts',
|
|
48
|
+
has: 'many',
|
|
49
|
+
label: 'comments',
|
|
50
|
+
},
|
|
51
|
+
reverse: {
|
|
52
|
+
on: 'comments',
|
|
53
|
+
has: 'one',
|
|
54
|
+
label: 'post',
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
friendships: {
|
|
58
|
+
forward: {
|
|
59
|
+
on: 'users',
|
|
60
|
+
has: 'many',
|
|
61
|
+
label: 'friends',
|
|
62
|
+
},
|
|
63
|
+
reverse: {
|
|
64
|
+
on: 'users',
|
|
65
|
+
has: 'many',
|
|
66
|
+
label: '_friends',
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
referrals: {
|
|
70
|
+
forward: {
|
|
71
|
+
on: 'users',
|
|
72
|
+
has: 'many',
|
|
73
|
+
label: 'referred',
|
|
74
|
+
},
|
|
75
|
+
reverse: {
|
|
76
|
+
on: 'users',
|
|
77
|
+
has: 'one',
|
|
78
|
+
label: 'referrer',
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
rooms: {
|
|
83
|
+
chat: {
|
|
84
|
+
presence: i.entity({
|
|
85
|
+
name: i.string(),
|
|
86
|
+
status: i.string(),
|
|
87
|
+
}),
|
|
88
|
+
topics: {
|
|
89
|
+
sendEmoji: i.entity({
|
|
90
|
+
emoji: i.string(),
|
|
91
|
+
}),
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
type AnySchema = InstantSchemaDef<any, any, any>;
|
|
98
|
+
|
|
99
|
+
// compare schemas by stringifying them with json and comparing the strings
|
|
100
|
+
const compareSchemas = (schema1: AnySchema, schema2: AnySchema) => {
|
|
101
|
+
expect(JSON.stringify(schema1, null, 2)).toBe(
|
|
102
|
+
JSON.stringify(schema2, null, 2),
|
|
103
|
+
);
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
test('ability to parse stringified schema into real schema object', () => {
|
|
107
|
+
const stringified = JSON.stringify(schema, null, 2);
|
|
108
|
+
const parsed = JSON.parse(stringified);
|
|
109
|
+
console.log(stringified);
|
|
110
|
+
|
|
111
|
+
const otherSide = parseSchemaFromJSON(parsed);
|
|
112
|
+
|
|
113
|
+
compareSchemas(schema, otherSide);
|
|
114
|
+
|
|
115
|
+
expect(schema.entities.comments.links).toEqual(
|
|
116
|
+
otherSide.entities.comments.links,
|
|
117
|
+
);
|
|
118
|
+
expect(schema.entities.comments.asType).toEqual(
|
|
119
|
+
otherSide.entities.comments.asType,
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
expect(schema).toStrictEqual(otherSide);
|
|
123
|
+
});
|
|
@@ -107,6 +107,17 @@ export default class Reactor<RoomSchema extends import("./presence.ts").RoomSche
|
|
|
107
107
|
*/
|
|
108
108
|
_onMergePendingMutations: (storageMuts: any, inMemoryMuts: any) => void;
|
|
109
109
|
_flushEnqueuedRoomData(roomId: any): void;
|
|
110
|
+
/**
|
|
111
|
+
* Does the same thing as add-query-ok
|
|
112
|
+
* but called as a result of receiving query info from ssr
|
|
113
|
+
* @param {any} q
|
|
114
|
+
* @param {{ triples: any; pageInfo: any; }} result
|
|
115
|
+
* @param {boolean} enableCardinalityInference
|
|
116
|
+
*/
|
|
117
|
+
_addQueryData(q: any, result: {
|
|
118
|
+
triples: any;
|
|
119
|
+
pageInfo: any;
|
|
120
|
+
}, enableCardinalityInference: boolean): void;
|
|
110
121
|
_handleReceive(connId: any, msg: any): void;
|
|
111
122
|
_sessionId: any;
|
|
112
123
|
/**
|
|
@@ -144,7 +155,7 @@ export default class Reactor<RoomSchema extends import("./presence.ts").RoomSche
|
|
|
144
155
|
_rewriteMutationsSorted(attrs: any, muts: any): any[];
|
|
145
156
|
optimisticAttrs(): any;
|
|
146
157
|
/** Runs instaql on a query and a store */
|
|
147
|
-
dataForQuery(hash: any): any;
|
|
158
|
+
dataForQuery(hash: any, applyOptimistic?: boolean): any;
|
|
148
159
|
_applyOptimisticUpdates(store: any, mutations: any, processedTxId: any): any;
|
|
149
160
|
/** Re-run instaql and call all callbacks with new data */
|
|
150
161
|
notifyOne: (hash: any) => void;
|
|
@@ -238,6 +249,7 @@ export default class Reactor<RoomSchema extends import("./presence.ts").RoomSche
|
|
|
238
249
|
}>;
|
|
239
250
|
_hasCurrentUser(): Promise<boolean>;
|
|
240
251
|
changeCurrentUser(newUser: any): Promise<void>;
|
|
252
|
+
syncUserToEndpoint(user: any): Promise<void>;
|
|
241
253
|
updateUser(newUser: any): void;
|
|
242
254
|
sendMagicCode({ email }: {
|
|
243
255
|
email: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reactor.d.ts","sourceRoot":"","sources":["../../src/Reactor.js"],"names":[],"mappings":"AAuJA;;GAEG;AACH,6BAFwD,UAAU,SAArD,OAAQ,eAAe,EAAE,eAAgB;IA8DpD,
|
|
1
|
+
{"version":3,"file":"Reactor.d.ts","sourceRoot":"","sources":["../../src/Reactor.js"],"names":[],"mappings":"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"}
|
package/dist/commonjs/Reactor.js
CHANGED
|
@@ -475,7 +475,13 @@ class Reactor {
|
|
|
475
475
|
this._initStorage(Storage);
|
|
476
476
|
this._oauthCallbackResponse = this._oauthLoginInit();
|
|
477
477
|
// kick off a request to cache it
|
|
478
|
-
this.getCurrentUser()
|
|
478
|
+
this.getCurrentUser().then((userInfo) => {
|
|
479
|
+
this.syncUserToEndpoint(userInfo.user);
|
|
480
|
+
});
|
|
481
|
+
setInterval(() => __awaiter(this, void 0, void 0, function* () {
|
|
482
|
+
const currentUser = yield this.getCurrentUser();
|
|
483
|
+
this.syncUserToEndpoint(currentUser.user);
|
|
484
|
+
}), 1000 * 60 * 20);
|
|
479
485
|
NetworkListener.getIsOnline().then((isOnline) => {
|
|
480
486
|
this._isOnline = isOnline;
|
|
481
487
|
this._startSocket();
|
|
@@ -586,6 +592,36 @@ class Reactor {
|
|
|
586
592
|
}
|
|
587
593
|
}
|
|
588
594
|
}
|
|
595
|
+
/**
|
|
596
|
+
* Does the same thing as add-query-ok
|
|
597
|
+
* but called as a result of receiving query info from ssr
|
|
598
|
+
* @param {any} q
|
|
599
|
+
* @param {{ triples: any; pageInfo: any; }} result
|
|
600
|
+
* @param {boolean} enableCardinalityInference
|
|
601
|
+
*/
|
|
602
|
+
_addQueryData(q, result, enableCardinalityInference) {
|
|
603
|
+
if (!this.attrs) {
|
|
604
|
+
throw new Error('Attrs in reactor have not been set');
|
|
605
|
+
}
|
|
606
|
+
const queryHash = (0, weakHash_ts_1.default)(q);
|
|
607
|
+
const store = s.createStore(this.attrs, result.triples, enableCardinalityInference, this._linkIndex, this.config.useDateObjects);
|
|
608
|
+
this.querySubs.set((prev) => {
|
|
609
|
+
prev[queryHash] = {
|
|
610
|
+
result: {
|
|
611
|
+
store,
|
|
612
|
+
pageInfo: result.pageInfo,
|
|
613
|
+
processedTxId: undefined,
|
|
614
|
+
isExternal: true,
|
|
615
|
+
},
|
|
616
|
+
q,
|
|
617
|
+
};
|
|
618
|
+
return prev;
|
|
619
|
+
});
|
|
620
|
+
this._cleanupPendingMutationsQueries();
|
|
621
|
+
this.notifyOne(queryHash);
|
|
622
|
+
this.notifyOneQueryOnce(queryHash);
|
|
623
|
+
this._cleanupPendingMutationsTimeout();
|
|
624
|
+
}
|
|
589
625
|
_handleReceive(connId, msg) {
|
|
590
626
|
var _a, _b, _c, _d, _e, _f;
|
|
591
627
|
// opt-out, enabled by default if schema
|
|
@@ -1033,7 +1069,7 @@ class Reactor {
|
|
|
1033
1069
|
return attrsRecord;
|
|
1034
1070
|
}
|
|
1035
1071
|
/** Runs instaql on a query and a store */
|
|
1036
|
-
dataForQuery(hash) {
|
|
1072
|
+
dataForQuery(hash, applyOptimistic = true) {
|
|
1037
1073
|
const errorMessage = this._errorMessage;
|
|
1038
1074
|
if (errorMessage) {
|
|
1039
1075
|
return { error: errorMessage };
|
|
@@ -1055,10 +1091,13 @@ class Reactor {
|
|
|
1055
1091
|
pendingMutationsVersion === cached.pendingMutationsVersion) {
|
|
1056
1092
|
return cached.data;
|
|
1057
1093
|
}
|
|
1058
|
-
|
|
1094
|
+
let store = result.store;
|
|
1095
|
+
const { pageInfo, aggregate, processedTxId } = result;
|
|
1059
1096
|
const mutations = this._rewriteMutationsSorted(store.attrs, pendingMutations);
|
|
1060
|
-
|
|
1061
|
-
|
|
1097
|
+
if (applyOptimistic) {
|
|
1098
|
+
store = this._applyOptimisticUpdates(store, mutations, processedTxId);
|
|
1099
|
+
}
|
|
1100
|
+
const resp = (0, instaql_js_1.default)({ store: store, pageInfo, aggregate }, q);
|
|
1062
1101
|
this._dataForQueryCache[hash] = {
|
|
1063
1102
|
querySubVersion,
|
|
1064
1103
|
pendingMutationsVersion,
|
|
@@ -1512,7 +1551,28 @@ class Reactor {
|
|
|
1512
1551
|
}
|
|
1513
1552
|
});
|
|
1514
1553
|
}
|
|
1554
|
+
syncUserToEndpoint(user) {
|
|
1555
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1556
|
+
if (this.config.cookieEndpoint) {
|
|
1557
|
+
try {
|
|
1558
|
+
fetch(this.config.cookieEndpoint + '/sync-auth', {
|
|
1559
|
+
method: 'POST',
|
|
1560
|
+
body: JSON.stringify({
|
|
1561
|
+
user: user,
|
|
1562
|
+
}),
|
|
1563
|
+
headers: {
|
|
1564
|
+
'Content-Type': 'application/json',
|
|
1565
|
+
},
|
|
1566
|
+
});
|
|
1567
|
+
}
|
|
1568
|
+
catch (error) {
|
|
1569
|
+
console.error('Error syncing user with external endpoint', error);
|
|
1570
|
+
}
|
|
1571
|
+
}
|
|
1572
|
+
});
|
|
1573
|
+
}
|
|
1515
1574
|
updateUser(newUser) {
|
|
1575
|
+
this.syncUserToEndpoint(newUser);
|
|
1516
1576
|
const newV = { error: undefined, user: newUser };
|
|
1517
1577
|
this._currentUserCached = Object.assign({ isLoading: false }, newV);
|
|
1518
1578
|
this._dataForQueryCache = {};
|