@instantdb/core 0.22.96-experimental.add-posthog-frontend.20386914944.1 → 0.22.96

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.
Files changed (63) hide show
  1. package/__tests__/src/serializeSchema.test.ts +123 -0
  2. package/dist/commonjs/Reactor.d.ts +13 -1
  3. package/dist/commonjs/Reactor.d.ts.map +1 -1
  4. package/dist/commonjs/Reactor.js +72 -5
  5. package/dist/commonjs/Reactor.js.map +1 -1
  6. package/dist/commonjs/SyncTable.d.ts.map +1 -1
  7. package/dist/commonjs/SyncTable.js +7 -6
  8. package/dist/commonjs/SyncTable.js.map +1 -1
  9. package/dist/commonjs/createRouteHandler.d.ts +8 -0
  10. package/dist/commonjs/createRouteHandler.d.ts.map +1 -0
  11. package/dist/commonjs/createRouteHandler.js +66 -0
  12. package/dist/commonjs/createRouteHandler.js.map +1 -0
  13. package/dist/commonjs/framework.d.ts +77 -0
  14. package/dist/commonjs/framework.d.ts.map +1 -0
  15. package/dist/commonjs/framework.js +228 -0
  16. package/dist/commonjs/framework.js.map +1 -0
  17. package/dist/commonjs/index.d.ts +5 -1
  18. package/dist/commonjs/index.d.ts.map +1 -1
  19. package/dist/commonjs/index.js +7 -1
  20. package/dist/commonjs/index.js.map +1 -1
  21. package/dist/commonjs/parseSchemaFromJSON.d.ts +3 -0
  22. package/dist/commonjs/parseSchemaFromJSON.d.ts.map +1 -0
  23. package/dist/commonjs/parseSchemaFromJSON.js +148 -0
  24. package/dist/commonjs/parseSchemaFromJSON.js.map +1 -0
  25. package/dist/commonjs/reactorTypes.d.ts +5 -4
  26. package/dist/commonjs/reactorTypes.d.ts.map +1 -1
  27. package/dist/commonjs/reactorTypes.js.map +1 -1
  28. package/dist/esm/Reactor.d.ts +13 -1
  29. package/dist/esm/Reactor.d.ts.map +1 -1
  30. package/dist/esm/Reactor.js +72 -5
  31. package/dist/esm/Reactor.js.map +1 -1
  32. package/dist/esm/SyncTable.d.ts.map +1 -1
  33. package/dist/esm/SyncTable.js +7 -6
  34. package/dist/esm/SyncTable.js.map +1 -1
  35. package/dist/esm/createRouteHandler.d.ts +8 -0
  36. package/dist/esm/createRouteHandler.d.ts.map +1 -0
  37. package/dist/esm/createRouteHandler.js +62 -0
  38. package/dist/esm/createRouteHandler.js.map +1 -0
  39. package/dist/esm/framework.d.ts +77 -0
  40. package/dist/esm/framework.d.ts.map +1 -0
  41. package/dist/esm/framework.js +188 -0
  42. package/dist/esm/framework.js.map +1 -0
  43. package/dist/esm/index.d.ts +5 -1
  44. package/dist/esm/index.d.ts.map +1 -1
  45. package/dist/esm/index.js +5 -2
  46. package/dist/esm/index.js.map +1 -1
  47. package/dist/esm/parseSchemaFromJSON.d.ts +3 -0
  48. package/dist/esm/parseSchemaFromJSON.d.ts.map +1 -0
  49. package/dist/esm/parseSchemaFromJSON.js +144 -0
  50. package/dist/esm/parseSchemaFromJSON.js.map +1 -0
  51. package/dist/esm/reactorTypes.d.ts +5 -4
  52. package/dist/esm/reactorTypes.d.ts.map +1 -1
  53. package/dist/esm/reactorTypes.js.map +1 -1
  54. package/dist/standalone/index.js +2735 -2400
  55. package/dist/standalone/index.umd.cjs +3 -3
  56. package/package.json +2 -2
  57. package/src/Reactor.js +83 -6
  58. package/src/SyncTable.ts +18 -14
  59. package/src/createRouteHandler.ts +63 -0
  60. package/src/framework.ts +318 -0
  61. package/src/index.ts +9 -0
  62. package/src/parseSchemaFromJSON.ts +176 -0
  63. package/src/reactorTypes.ts +5 -4
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseSchemaFromJSON = void 0;
4
+ const schema_ts_1 = require("./schema.js");
5
+ const parseSchemaFromJSON = (s) => {
6
+ var _a, _b, _c, _d, _e, _f;
7
+ // Parse entities
8
+ const entities = {};
9
+ for (const [entityName, entityInfo] of Object.entries(s.entities)) {
10
+ const entityDef = entityInfo;
11
+ const attrs = {};
12
+ // Parse attributes
13
+ for (const [attrName, attrInfo] of Object.entries(entityDef.attrs)) {
14
+ const attrDef = attrInfo;
15
+ let attr;
16
+ // Create the appropriate attribute type
17
+ switch (attrDef.valueType) {
18
+ case 'string':
19
+ attr = schema_ts_1.i.string();
20
+ break;
21
+ case 'number':
22
+ attr = schema_ts_1.i.number();
23
+ break;
24
+ case 'boolean':
25
+ attr = schema_ts_1.i.boolean();
26
+ break;
27
+ case 'date':
28
+ attr = schema_ts_1.i.date();
29
+ break;
30
+ case 'json':
31
+ attr = schema_ts_1.i.json();
32
+ break;
33
+ default:
34
+ attr = schema_ts_1.i.json();
35
+ }
36
+ // Apply modifiers
37
+ if (!attrDef.required) {
38
+ attr = attr.optional();
39
+ }
40
+ if ((_a = attrDef.config) === null || _a === void 0 ? void 0 : _a.indexed) {
41
+ attr = attr.indexed();
42
+ }
43
+ if ((_b = attrDef.config) === null || _b === void 0 ? void 0 : _b.unique) {
44
+ attr = attr.unique();
45
+ }
46
+ attrs[attrName] = attr;
47
+ }
48
+ entities[entityName] = schema_ts_1.i.entity(attrs);
49
+ }
50
+ // Parse links
51
+ const links = s.links || {};
52
+ // Parse rooms
53
+ const rooms = {};
54
+ if (s.rooms) {
55
+ for (const [roomName, roomInfo] of Object.entries(s.rooms)) {
56
+ const roomDef = roomInfo;
57
+ // Parse presence
58
+ const presenceAttrs = {};
59
+ for (const [attrName, attrInfo] of Object.entries(roomDef.presence.attrs)) {
60
+ const attrDef = attrInfo;
61
+ let attr;
62
+ switch (attrDef.valueType) {
63
+ case 'string':
64
+ attr = schema_ts_1.i.string();
65
+ break;
66
+ case 'number':
67
+ attr = schema_ts_1.i.number();
68
+ break;
69
+ case 'boolean':
70
+ attr = schema_ts_1.i.boolean();
71
+ break;
72
+ case 'date':
73
+ attr = schema_ts_1.i.date();
74
+ break;
75
+ case 'json':
76
+ attr = schema_ts_1.i.json();
77
+ break;
78
+ default:
79
+ attr = schema_ts_1.i.json();
80
+ }
81
+ if (!attrDef.required) {
82
+ attr = attr.optional();
83
+ }
84
+ if ((_c = attrDef.config) === null || _c === void 0 ? void 0 : _c.indexed) {
85
+ attr = attr.indexed();
86
+ }
87
+ if ((_d = attrDef.config) === null || _d === void 0 ? void 0 : _d.unique) {
88
+ attr = attr.unique();
89
+ }
90
+ presenceAttrs[attrName] = attr;
91
+ }
92
+ // Parse topics
93
+ const topics = {};
94
+ if (roomDef.topics) {
95
+ for (const [topicName, topicInfo] of Object.entries(roomDef.topics)) {
96
+ const topicDef = topicInfo;
97
+ const topicAttrs = {};
98
+ for (const [attrName, attrInfo] of Object.entries(topicDef.attrs)) {
99
+ const attrDef = attrInfo;
100
+ let attr;
101
+ switch (attrDef.valueType) {
102
+ case 'string':
103
+ attr = schema_ts_1.i.string();
104
+ break;
105
+ case 'number':
106
+ attr = schema_ts_1.i.number();
107
+ break;
108
+ case 'boolean':
109
+ attr = schema_ts_1.i.boolean();
110
+ break;
111
+ case 'date':
112
+ attr = schema_ts_1.i.date();
113
+ break;
114
+ case 'json':
115
+ attr = schema_ts_1.i.json();
116
+ break;
117
+ default:
118
+ attr = schema_ts_1.i.json();
119
+ }
120
+ if (!attrDef.required) {
121
+ attr = attr.optional();
122
+ }
123
+ if ((_e = attrDef.config) === null || _e === void 0 ? void 0 : _e.indexed) {
124
+ attr = attr.indexed();
125
+ }
126
+ if ((_f = attrDef.config) === null || _f === void 0 ? void 0 : _f.unique) {
127
+ attr = attr.unique();
128
+ }
129
+ topicAttrs[attrName] = attr;
130
+ }
131
+ topics[topicName] = schema_ts_1.i.entity(topicAttrs);
132
+ }
133
+ }
134
+ rooms[roomName] = {
135
+ presence: schema_ts_1.i.entity(presenceAttrs),
136
+ topics,
137
+ };
138
+ }
139
+ }
140
+ const resultingSchema = schema_ts_1.i.schema({
141
+ entities,
142
+ links,
143
+ rooms,
144
+ });
145
+ return resultingSchema;
146
+ };
147
+ exports.parseSchemaFromJSON = parseSchemaFromJSON;
148
+ //# sourceMappingURL=parseSchemaFromJSON.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseSchemaFromJSON.js","sourceRoot":"","sources":["../../src/parseSchemaFromJSON.ts"],"names":[],"mappings":"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","sourcesContent":["import { i } from './schema.ts';\nimport { DataAttrDef, InstantSchemaDef } from './schemaTypes.ts';\n\nexport const parseSchemaFromJSON = (\n s: any,\n): InstantSchemaDef<any, any, any> => {\n // Parse entities\n const entities: Record<string, any> = {};\n\n for (const [entityName, entityInfo] of Object.entries(s.entities)) {\n const entityDef = entityInfo as any;\n const attrs: Record<string, any> = {};\n\n // Parse attributes\n for (const [attrName, attrInfo] of Object.entries(entityDef.attrs)) {\n const attrDef = attrInfo as any;\n let attr: DataAttrDef<any, any, any>;\n\n // Create the appropriate attribute type\n switch (attrDef.valueType) {\n case 'string':\n attr = i.string();\n break;\n case 'number':\n attr = i.number();\n break;\n case 'boolean':\n attr = i.boolean();\n break;\n case 'date':\n attr = i.date();\n break;\n case 'json':\n attr = i.json();\n break;\n default:\n attr = i.json();\n }\n\n // Apply modifiers\n if (!attrDef.required) {\n attr = attr.optional();\n }\n\n if (attrDef.config?.indexed) {\n attr = attr.indexed();\n }\n\n if (attrDef.config?.unique) {\n attr = attr.unique();\n }\n\n attrs[attrName] = attr;\n }\n\n entities[entityName] = i.entity(attrs);\n }\n\n // Parse links\n const links: Record<string, any> = s.links || {};\n\n // Parse rooms\n const rooms: Record<string, any> = {};\n\n if (s.rooms) {\n for (const [roomName, roomInfo] of Object.entries(s.rooms)) {\n const roomDef = roomInfo as any;\n\n // Parse presence\n const presenceAttrs: Record<string, any> = {};\n for (const [attrName, attrInfo] of Object.entries(\n roomDef.presence.attrs,\n )) {\n const attrDef = attrInfo as any;\n let attr: DataAttrDef<any, any, any>;\n\n switch (attrDef.valueType) {\n case 'string':\n attr = i.string();\n break;\n case 'number':\n attr = i.number();\n break;\n case 'boolean':\n attr = i.boolean();\n break;\n case 'date':\n attr = i.date();\n break;\n case 'json':\n attr = i.json();\n break;\n default:\n attr = i.json();\n }\n\n if (!attrDef.required) {\n attr = attr.optional();\n }\n\n if (attrDef.config?.indexed) {\n attr = attr.indexed();\n }\n\n if (attrDef.config?.unique) {\n attr = attr.unique();\n }\n\n presenceAttrs[attrName] = attr;\n }\n\n // Parse topics\n const topics: Record<string, any> = {};\n if (roomDef.topics) {\n for (const [topicName, topicInfo] of Object.entries(roomDef.topics)) {\n const topicDef = topicInfo as any;\n const topicAttrs: Record<string, any> = {};\n\n for (const [attrName, attrInfo] of Object.entries(topicDef.attrs)) {\n const attrDef = attrInfo as any;\n let attr: DataAttrDef<any, any, any>;\n\n switch (attrDef.valueType) {\n case 'string':\n attr = i.string();\n break;\n case 'number':\n attr = i.number();\n break;\n case 'boolean':\n attr = i.boolean();\n break;\n case 'date':\n attr = i.date();\n break;\n case 'json':\n attr = i.json();\n break;\n default:\n attr = i.json();\n }\n\n if (!attrDef.required) {\n attr = attr.optional();\n }\n\n if (attrDef.config?.indexed) {\n attr = attr.indexed();\n }\n\n if (attrDef.config?.unique) {\n attr = attr.unique();\n }\n\n topicAttrs[attrName] = attr;\n }\n\n topics[topicName] = i.entity(topicAttrs);\n }\n }\n\n rooms[roomName] = {\n presence: i.entity(presenceAttrs),\n topics,\n };\n }\n }\n\n const resultingSchema = i.schema({\n entities,\n links,\n rooms,\n });\n\n return resultingSchema;\n};\n"]}
@@ -5,11 +5,12 @@ export type QuerySubResult = {
5
5
  attrsStore: AttrsStore;
6
6
  pageInfo?: PageInfoResponse<any> | null | undefined;
7
7
  aggregate?: any;
8
- processedTxId: number;
8
+ processedTxId?: number;
9
+ isExternal?: boolean;
9
10
  };
10
11
  export type QuerySub = {
11
12
  q: Object;
12
- eventId: string;
13
+ eventId?: string;
13
14
  lastAccessed?: number | null | undefined;
14
15
  result?: QuerySubResult;
15
16
  };
@@ -18,11 +19,11 @@ export type QuerySubResultInStorage = {
18
19
  attrsStore: AttrsStoreJson;
19
20
  pageInfo?: PageInfoResponse<any> | null | undefined;
20
21
  aggregate?: any;
21
- processedTxId: number;
22
+ processedTxId?: number;
22
23
  };
23
24
  export type QuerySubInStorage = {
24
25
  q: Object;
25
- eventId: string;
26
+ eventId?: string;
26
27
  lastAccessed?: number | null | undefined;
27
28
  result?: QuerySubResultInStorage;
28
29
  };
@@ -1 +1 @@
1
- {"version":3,"file":"reactorTypes.d.ts","sourceRoot":"","sources":["../../src/reactorTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE1E,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACpD,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACpD,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC,CAAC"}
1
+ {"version":3,"file":"reactorTypes.d.ts","sourceRoot":"","sources":["../../src/reactorTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE1E,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACpD,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,cAAc,CAAC;IAC3B,QAAQ,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACpD,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reactorTypes.js","sourceRoot":"","sources":["../../src/reactorTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { PageInfoResponse } from './queryTypes.ts';\nimport { AttrsStore, AttrsStoreJson, Store, StoreJson } from './store.ts';\n\nexport type QuerySubResult = {\n store: Store;\n attrsStore: AttrsStore;\n pageInfo?: PageInfoResponse<any> | null | undefined;\n aggregate?: any;\n processedTxId: number;\n};\n\nexport type QuerySub = {\n q: Object;\n eventId: string;\n lastAccessed?: number | null | undefined;\n result?: QuerySubResult;\n};\n\nexport type QuerySubResultInStorage = {\n store: StoreJson;\n attrsStore: AttrsStoreJson;\n pageInfo?: PageInfoResponse<any> | null | undefined;\n aggregate?: any;\n processedTxId: number;\n};\n\nexport type QuerySubInStorage = {\n q: Object;\n eventId: string;\n lastAccessed?: number | null | undefined;\n result?: QuerySubResultInStorage;\n};\n"]}
1
+ {"version":3,"file":"reactorTypes.js","sourceRoot":"","sources":["../../src/reactorTypes.ts"],"names":[],"mappings":"","sourcesContent":["import { PageInfoResponse } from './queryTypes.ts';\nimport { AttrsStore, AttrsStoreJson, Store, StoreJson } from './store.ts';\n\nexport type QuerySubResult = {\n store: Store;\n attrsStore: AttrsStore;\n pageInfo?: PageInfoResponse<any> | null | undefined;\n aggregate?: any;\n processedTxId?: number;\n isExternal?: boolean;\n};\n\nexport type QuerySub = {\n q: Object;\n eventId?: string;\n lastAccessed?: number | null | undefined;\n result?: QuerySubResult;\n};\n\nexport type QuerySubResultInStorage = {\n store: StoreJson;\n attrsStore: AttrsStoreJson;\n pageInfo?: PageInfoResponse<any> | null | undefined;\n aggregate?: any;\n processedTxId?: number;\n};\n\nexport type QuerySubInStorage = {\n q: Object;\n eventId?: string;\n lastAccessed?: number | null | undefined;\n result?: QuerySubResultInStorage;\n};\n"]}
@@ -102,6 +102,17 @@ export default class Reactor<RoomSchema extends import("./presence.ts").RoomSche
102
102
  _setStatus(status: any, err: any): void;
103
103
  _onMergeKv: (key: any, storageV: any, inMemoryV: any) => any;
104
104
  _flushEnqueuedRoomData(roomId: any): void;
105
+ /**
106
+ * Does the same thing as add-query-ok
107
+ * but called as a result of receiving query info from ssr
108
+ * @param {any} q
109
+ * @param {{ triples: any; pageInfo: any; }} result
110
+ * @param {boolean} enableCardinalityInference
111
+ */
112
+ _addQueryData(q: any, result: {
113
+ triples: any;
114
+ pageInfo: any;
115
+ }, enableCardinalityInference: boolean): void;
105
116
  _handleReceive(connId: any, msg: any): void;
106
117
  _sessionId: any;
107
118
  _pendingMutations(): any;
@@ -154,7 +165,7 @@ export default class Reactor<RoomSchema extends import("./presence.ts").RoomSche
154
165
  */
155
166
  optimisticAttrs(): s.AttrsStore;
156
167
  /** Runs instaql on a query and a store */
157
- dataForQuery(hash: any): any;
168
+ dataForQuery(hash: any, applyOptimistic?: boolean): any;
158
169
  _applyOptimisticUpdates(store: any, attrsStore: any, mutations: any, processedTxId: any): {
159
170
  store: any;
160
171
  attrsStore: any;
@@ -260,6 +271,7 @@ export default class Reactor<RoomSchema extends import("./presence.ts").RoomSche
260
271
  }>;
261
272
  _hasCurrentUser(): Promise<boolean>;
262
273
  changeCurrentUser(newUser: any): Promise<void>;
274
+ syncUserToEndpoint(user: any): Promise<void>;
263
275
  updateUser(newUser: any): void;
264
276
  sendMagicCode({ email }: {
265
277
  email: any;
@@ -1 +1 @@
1
- {"version":3,"file":"Reactor.d.ts","sourceRoot":"","sources":["../../src/Reactor.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Reactor.d.ts","sourceRoot":"","sources":["../../src/Reactor.js"],"names":[],"mappings":"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"}
@@ -61,6 +61,7 @@ const STATUS = {
61
61
  const QUERY_ONCE_TIMEOUT = 30000;
62
62
  const PENDING_TX_CLEANUP_TIMEOUT = 30000;
63
63
  const PENDING_MUTATION_CLEANUP_THRESHOLD = 200;
64
+ const ONE_MIN_MS = 1000 * 60;
64
65
  const defaultConfig = {
65
66
  apiURI: 'https://api.instantdb.com',
66
67
  websocketURI: 'wss://api.instantdb.com/runtime/session',
@@ -449,7 +450,13 @@ export default class Reactor {
449
450
  }, () => this.ensureAttrs());
450
451
  this._oauthCallbackResponse = this._oauthLoginInit();
451
452
  // kick off a request to cache it
452
- this.getCurrentUser();
453
+ this.getCurrentUser().then((userInfo) => {
454
+ this.syncUserToEndpoint(userInfo.user);
455
+ });
456
+ setInterval(() => __awaiter(this, void 0, void 0, function* () {
457
+ const currentUser = yield this.getCurrentUser();
458
+ this.syncUserToEndpoint(currentUser.user);
459
+ }), ONE_MIN_MS);
453
460
  NetworkListener.getIsOnline().then((isOnline) => {
454
461
  this._isOnline = isOnline;
455
462
  this._startSocket();
@@ -601,6 +608,37 @@ export default class Reactor {
601
608
  }
602
609
  }
603
610
  }
611
+ /**
612
+ * Does the same thing as add-query-ok
613
+ * but called as a result of receiving query info from ssr
614
+ * @param {any} q
615
+ * @param {{ triples: any; pageInfo: any; }} result
616
+ * @param {boolean} enableCardinalityInference
617
+ */
618
+ _addQueryData(q, result, enableCardinalityInference) {
619
+ if (!this.attrs) {
620
+ throw new Error('Attrs in reactor have not been set');
621
+ }
622
+ const queryHash = weakHash(q);
623
+ const attrsStore = this.ensureAttrs();
624
+ const store = s.createStore(this.attrs, result.triples, enableCardinalityInference, this.config.useDateObjects);
625
+ this.querySubs.updateInPlace((prev) => {
626
+ prev[queryHash] = {
627
+ result: {
628
+ store,
629
+ attrsStore,
630
+ pageInfo: result.pageInfo,
631
+ processedTxId: undefined,
632
+ isExternal: true,
633
+ },
634
+ q,
635
+ };
636
+ });
637
+ this._cleanupPendingMutationsQueries();
638
+ this.notifyOne(queryHash);
639
+ this.notifyOneQueryOnce(queryHash);
640
+ this._cleanupPendingMutationsTimeout();
641
+ }
604
642
  _handleReceive(connId, msg) {
605
643
  var _a, _b, _c, _d, _e, _f;
606
644
  // opt-out, enabled by default if schema
@@ -1142,7 +1180,7 @@ export default class Reactor {
1142
1180
  return new s.AttrsStoreClass(attrs, this._linkIndex);
1143
1181
  }
1144
1182
  /** Runs instaql on a query and a store */
1145
- dataForQuery(hash) {
1183
+ dataForQuery(hash, applyOptimistic = true) {
1146
1184
  const errorMessage = this._errorMessage;
1147
1185
  if (errorMessage) {
1148
1186
  return { error: errorMessage };
@@ -1164,10 +1202,16 @@ export default class Reactor {
1164
1202
  pendingMutationsVersion === cached.pendingMutationsVersion) {
1165
1203
  return cached;
1166
1204
  }
1167
- const { store, attrsStore, pageInfo, aggregate, processedTxId } = result;
1205
+ let store = result.store;
1206
+ let attrsStore = result.attrsStore;
1207
+ const { pageInfo, aggregate, processedTxId } = result;
1168
1208
  const mutations = this._rewriteMutationsSorted(attrsStore, pendingMutations);
1169
- const { store: newStore, attrsStore: newAttrsStore } = this._applyOptimisticUpdates(store, attrsStore, mutations, processedTxId);
1170
- const resp = instaql({ store: newStore, attrsStore: newAttrsStore, pageInfo, aggregate }, q);
1209
+ if (applyOptimistic) {
1210
+ const optimisticResult = this._applyOptimisticUpdates(store, attrsStore, mutations, processedTxId);
1211
+ store = optimisticResult.store;
1212
+ attrsStore = optimisticResult.attrsStore;
1213
+ }
1214
+ const resp = instaql({ store: store, attrsStore: attrsStore, pageInfo, aggregate }, q);
1171
1215
  return { data: resp, querySubVersion, pendingMutationsVersion };
1172
1216
  }
1173
1217
  _applyOptimisticUpdates(store, attrsStore, mutations, processedTxId) {
@@ -1633,7 +1677,30 @@ export default class Reactor {
1633
1677
  }
1634
1678
  });
1635
1679
  }
1680
+ syncUserToEndpoint(user) {
1681
+ return __awaiter(this, void 0, void 0, function* () {
1682
+ if (!this.config.firstPartyPath)
1683
+ return;
1684
+ try {
1685
+ fetch(this.config.firstPartyPath + '/', {
1686
+ method: 'POST',
1687
+ body: JSON.stringify({
1688
+ type: 'sync-user',
1689
+ appId: this.config.appId,
1690
+ user: user,
1691
+ }),
1692
+ headers: {
1693
+ 'Content-Type': 'application/json',
1694
+ },
1695
+ });
1696
+ }
1697
+ catch (error) {
1698
+ this._log.error('Error syncing user with external endpoint', error);
1699
+ }
1700
+ });
1701
+ }
1636
1702
  updateUser(newUser) {
1703
+ this.syncUserToEndpoint(newUser);
1637
1704
  const newV = { error: undefined, user: newUser };
1638
1705
  this._currentUserCached = Object.assign({ isLoading: false }, newV);
1639
1706
  this._dataForQueryCache = {};