@instantdb/core 0.22.89 → 0.22.90-experimental.drewh-ssr.20286580593.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.
Files changed (88) hide show
  1. package/__tests__/src/Reactor.test.js +1 -1
  2. package/__tests__/src/instaml.test.ts +1 -1
  3. package/__tests__/src/serializeSchema.test.ts +123 -0
  4. package/__tests__/src/store.test.ts +1 -1
  5. package/__tests__/src/transactionValidation.test.ts +1 -1
  6. package/dist/commonjs/Reactor.d.ts +13 -1
  7. package/dist/commonjs/Reactor.d.ts.map +1 -1
  8. package/dist/commonjs/Reactor.js +79 -15
  9. package/dist/commonjs/Reactor.js.map +1 -1
  10. package/dist/commonjs/SyncTable.js +3 -3
  11. package/dist/commonjs/SyncTable.js.map +1 -1
  12. package/dist/commonjs/createRouteHandler.d.ts +8 -0
  13. package/dist/commonjs/createRouteHandler.d.ts.map +1 -0
  14. package/dist/commonjs/createRouteHandler.js +57 -0
  15. package/dist/commonjs/createRouteHandler.js.map +1 -0
  16. package/dist/commonjs/framework.d.ts +77 -0
  17. package/dist/commonjs/framework.d.ts.map +1 -0
  18. package/dist/commonjs/framework.js +209 -0
  19. package/dist/commonjs/framework.js.map +1 -0
  20. package/dist/commonjs/index.d.ts +6 -2
  21. package/dist/commonjs/index.d.ts.map +1 -1
  22. package/dist/commonjs/index.js +9 -3
  23. package/dist/commonjs/index.js.map +1 -1
  24. package/dist/commonjs/instaml.js +8 -8
  25. package/dist/commonjs/instaml.js.map +1 -1
  26. package/dist/commonjs/instaql.js +2 -2
  27. package/dist/commonjs/instaql.js.map +1 -1
  28. package/dist/commonjs/parseSchemaFromJSON.d.ts +3 -0
  29. package/dist/commonjs/parseSchemaFromJSON.d.ts.map +1 -0
  30. package/dist/commonjs/parseSchemaFromJSON.js +148 -0
  31. package/dist/commonjs/parseSchemaFromJSON.js.map +1 -0
  32. package/dist/commonjs/reactorTypes.d.ts +5 -4
  33. package/dist/commonjs/reactorTypes.d.ts.map +1 -1
  34. package/dist/commonjs/reactorTypes.js.map +1 -1
  35. package/dist/commonjs/utils/{uuid.d.ts → id.d.ts} +1 -1
  36. package/dist/commonjs/utils/id.d.ts.map +1 -0
  37. package/dist/commonjs/utils/{uuid.js → id.js} +1 -1
  38. package/dist/commonjs/utils/id.js.map +1 -0
  39. package/dist/esm/Reactor.d.ts +13 -1
  40. package/dist/esm/Reactor.d.ts.map +1 -1
  41. package/dist/esm/Reactor.js +70 -6
  42. package/dist/esm/Reactor.js.map +1 -1
  43. package/dist/esm/SyncTable.js +1 -1
  44. package/dist/esm/SyncTable.js.map +1 -1
  45. package/dist/esm/createRouteHandler.d.ts +8 -0
  46. package/dist/esm/createRouteHandler.d.ts.map +1 -0
  47. package/dist/esm/createRouteHandler.js +53 -0
  48. package/dist/esm/createRouteHandler.js.map +1 -0
  49. package/dist/esm/framework.d.ts +77 -0
  50. package/dist/esm/framework.d.ts.map +1 -0
  51. package/dist/esm/framework.js +169 -0
  52. package/dist/esm/framework.js.map +1 -0
  53. package/dist/esm/index.d.ts +6 -2
  54. package/dist/esm/index.d.ts.map +1 -1
  55. package/dist/esm/index.js +6 -3
  56. package/dist/esm/index.js.map +1 -1
  57. package/dist/esm/instaml.js +1 -1
  58. package/dist/esm/instaml.js.map +1 -1
  59. package/dist/esm/instaql.js +1 -1
  60. package/dist/esm/instaql.js.map +1 -1
  61. package/dist/esm/parseSchemaFromJSON.d.ts +3 -0
  62. package/dist/esm/parseSchemaFromJSON.d.ts.map +1 -0
  63. package/dist/esm/parseSchemaFromJSON.js +144 -0
  64. package/dist/esm/parseSchemaFromJSON.js.map +1 -0
  65. package/dist/esm/reactorTypes.d.ts +5 -4
  66. package/dist/esm/reactorTypes.d.ts.map +1 -1
  67. package/dist/esm/reactorTypes.js.map +1 -1
  68. package/dist/esm/utils/{uuid.d.ts → id.d.ts} +1 -1
  69. package/dist/esm/utils/id.d.ts.map +1 -0
  70. package/dist/esm/utils/{uuid.js → id.js} +1 -1
  71. package/dist/esm/utils/id.js.map +1 -0
  72. package/dist/standalone/index.js +2697 -2377
  73. package/dist/standalone/index.umd.cjs +3 -3
  74. package/package.json +2 -2
  75. package/src/Reactor.js +85 -7
  76. package/src/SyncTable.ts +1 -1
  77. package/src/createRouteHandler.ts +44 -0
  78. package/src/framework.ts +294 -0
  79. package/src/index.ts +10 -1
  80. package/src/instaml.ts +1 -1
  81. package/src/instaql.ts +1 -1
  82. package/src/parseSchemaFromJSON.ts +176 -0
  83. package/src/reactorTypes.ts +5 -4
  84. package/dist/commonjs/utils/uuid.d.ts.map +0 -1
  85. package/dist/commonjs/utils/uuid.js.map +0 -1
  86. package/dist/esm/utils/uuid.d.ts.map +0 -1
  87. package/dist/esm/utils/uuid.js.map +0 -1
  88. /package/src/utils/{uuid.ts → id.ts} +0 -0
@@ -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"]}
@@ -1,4 +1,4 @@
1
1
  export declare function uuidCompare(uuid_a: string, uuid_b: string): 0 | 1 | -1;
2
2
  declare function id(): string;
3
3
  export default id;
4
- //# sourceMappingURL=uuid.d.ts.map
4
+ //# sourceMappingURL=id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../../src/utils/id.ts"],"names":[],"mappings":"AAmBA,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAEzD;AAED,iBAAS,EAAE,IAAI,MAAM,CAEpB;AAED,eAAe,EAAE,CAAC"}
@@ -26,4 +26,4 @@ function id() {
26
26
  return (0, uuid_1.v4)();
27
27
  }
28
28
  exports.default = id;
29
- //# sourceMappingURL=uuid.js.map
29
+ //# sourceMappingURL=id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../../src/utils/id.ts"],"names":[],"mappings":";;AAmBA,kCAEC;AArBD,+BAA0B;AAE1B,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACnC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAgB,WAAW,CAAC,MAAc,EAAE,MAAc;IACxD,OAAO,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,EAAE;IACT,OAAO,IAAA,SAAE,GAAE,CAAC;AACd,CAAC;AAED,kBAAe,EAAE,CAAC","sourcesContent":["import { v4 } from 'uuid';\n\nfunction uuidToByteArray(uuid: string) {\n const hex = uuid.replace(/-/g, '');\n const bytes: number[] = [];\n for (let i = 0; i < hex.length; i += 2) {\n bytes.push(parseInt(hex.substring(i, i + 2), 16));\n }\n return bytes;\n}\n\nfunction compareByteArrays(a, b) {\n for (let i = 0; i < a.length; i++) {\n if (a[i] < b[i]) return -1;\n if (a[i] > b[i]) return 1;\n }\n return 0;\n}\n\nexport function uuidCompare(uuid_a: string, uuid_b: string) {\n return compareByteArrays(uuidToByteArray(uuid_a), uuidToByteArray(uuid_b));\n}\n\nfunction id(): string {\n return v4();\n}\n\nexport default id;\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":"AAyMA;;GAEG;AACH,6BAFwD,UAAU,SAArD,OAAQ,eAAe,EAAE,eAAgB;IAmEpD,8KAiHC;IAjLD,uCAAuC;IACvC,OADW,CAAC,CAAC,UAAU,GAAG,SAAS,CAC7B;IACN,mBAAiB;IACjB,qBAAoB;IACpB,eAA2B;IAE3B,mEAAmE;IACnE,WADW,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CACrD;IAEV,8BAA8B;IAC9B,mCAAG;IAEH,wBAAwB;IACxB,YADW,SAAS,CACT;IAEX,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,qCAAkC;IAClC,0BAA2B;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,oBAAqB;IACrB,gEAAgE;IAChE,wBADW,OAAO,CAAC,IAAI,GAAG;QAAC,KAAK,EAAE;YAAC,OAAO,EAAE,MAAM,CAAA;SAAC,CAAA;KAAC,CAAC,GAAG,IAAI,CAC9B;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,kFAAkF;IAClF,oBADW;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,GAAG,GAAG,SAAS,CAAC;QAAC,IAAI,EAAE,GAAG,GAAG,SAAS,CAAA;KAAC,CACF;IAC5E,wBAAsB;IACtB,uBAAwB;IACxB,qBAAqB;IACrB,MADW,MAAM,CACZ;IACL,8BAAyB;IACzB,sCAAiC;IACjC,oCAAsC;IAYpC,qBAAwD;IAYxD,cAAmE;IAuKrE,sBAKC;IA/ED,4BAKC;IAED,gCAOC;IAED;;;;MAMC;IAED,mCAIC;IAED,iCA0CC;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,QAoC5E;IAED,wCAIC;IAED,aAAc,QAAG,EAAE,aAAQ,EAAE,cAAS,SAmBpC;IAEF,0CAgBC;IAED,4CAuQC;IArPK,gBAAmC;IAuPzC,yBAEC;IAED,sCAMC;IAED;;;;OAIG;IACH,6BAJW,SAAS,GAAG,OAAO,WACnB,MAAM,YACN;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,QAoB5E;IAED,oCAqEC;IAED,oEAKC;IAED,4BAUC;IAKD,oBAAqB,MAAC,SAGpB;IAEF,0CASC;IAED;wBA/fiC,CAAC;kCAigBjC;IAED;;;;;;;;;OASG;IACH,uDAuBC;IAED,2CAwCC;IAED,sDAQC;IAED,8CAMC;IAED,uCAEC;IAED,uCASC;IAaD;;;;;OAKG;IACH,yBAJW,CAAC,CAAC,UAAU,QACZ,GAAG,kBACH,MAAM,OAgFhB;IAED,sDAEC;IAKD;;OAEG;IACH,mBAFa,CAAC,CAAC,UAAU,CAuCxB;IAED,0CAA0C;IAC1C,6BAqCC;IAED;;;MASC;IAED,0DAA0D;IAC1D,YAAa,SAAI,UAUf;IAEF,qBAAsB,SAAI,UAQxB;IAEF,mBAAoB,SAAI,EAAE,UAAK,UAG7B;IAEF,mCAAmC;IACnC,kBAOC;IAED,wBAKC;IAED,wEAAwE;IACxE,SAAU,WAAM,kBAqBd;IAEF;;;;OAIG;IACH,UAAW,SAJA,GAIO,EAAE,QAHT,GAGc,kBAsBvB;IAEF,iBAIC;IAED;;;;;;OAMG;IACH,iDAqCC;IAKD,4DAA4D;IAC5D,8BA4BC;IAED;;OAEG;IACH,wCAeC;IAED;;;;OAIG;IACH,wCAiBC;IAED,qCAKC;IAED,kDAkBC;IAED,mBAAoB,MAAC,UA+BnB;IAEF,sBAAuB,MAAC,UAyBtB;IAEF,oBAAqB,MAAC,UAWpB;IAEF,+BAsBE;IAEF,oBAAqB,MAAC,UAgCpB;IAEF,qBAqDC;IAED;;;;;;;OAOG;IACH,oCAgBC;IAID,8BAoDC;IAED;;;OAGG;IACH;;;;cA+CC;IAED;eAtkDkC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAC;cAwkDlD;IAED,+CAMC;IAED,mCAgBC;IAED,wBAMC;IAED,+CAQC;IAED,oCAUC;IAED,gCAEC;IAED,0CAEC;IAED,wBAIC;IAED,8CAEC;IAED,yCAKC;IAED;mBA3oDuB,OAAO;eAAS,GAAG,GAAG,SAAS;cAAQ,GAAG,GAAG,SAAS;MA6oD5E;IAED,gCAGC;IAED;;qBApqD4C,MAAM;;;;;;;;;;;;OA0rDjD;IAED,oCAGC;IAED,+CAiBC;IAED,+BAaC;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;KACtC,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;;;;;;;;;;;aAUC;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;qBA93Ea,OAAO,gBAAgB,EAAE,MAAM;;4BAE/B,OAAO,iBAAiB,EAAE,aAAa;qCACvC,OAAO,iBAAiB,EAAE,sBAAsB;uBAChD,OAAO,mBAAmB,EAAE,QAAQ;gCACpC,OAAO,mBAAmB,EAAE,iBAAiB;mBAnCxC,YAAY;gCASC,4BAA4B;0BAmBlC,gBAAgB;yBApBjB,qBAAqB;yBAJrB,cAAc;4BACX,iBAAiB;6BAHhB,uBAAuB;kCAClB,4BAA4B"}
1
+ {"version":3,"file":"Reactor.d.ts","sourceRoot":"","sources":["../../src/Reactor.js"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ import weakHash from "./utils/weakHash.js";
23
23
  import instaql from "./instaql.js";
24
24
  import * as instaml from "./instaml.js";
25
25
  import * as s from "./store.js";
26
- import uuid from "./utils/uuid.js";
26
+ import uuid from "./utils/id.js";
27
27
  import IndexedDBStorage from "./IndexedDBStorage.js";
28
28
  import WindowNetworkListener from './WindowNetworkListener.js';
29
29
  import * as authAPI from "./authAPI.js";
@@ -449,7 +449,13 @@ export default class Reactor {
449
449
  }, () => this.ensureAttrs());
450
450
  this._oauthCallbackResponse = this._oauthLoginInit();
451
451
  // kick off a request to cache it
452
- this.getCurrentUser();
452
+ this.getCurrentUser().then((userInfo) => {
453
+ this.syncUserToEndpoint(userInfo.user);
454
+ });
455
+ setInterval(() => __awaiter(this, void 0, void 0, function* () {
456
+ const currentUser = yield this.getCurrentUser();
457
+ this.syncUserToEndpoint(currentUser.user);
458
+ }), 1000 * 60 * 20);
453
459
  NetworkListener.getIsOnline().then((isOnline) => {
454
460
  this._isOnline = isOnline;
455
461
  this._startSocket();
@@ -601,6 +607,37 @@ export default class Reactor {
601
607
  }
602
608
  }
603
609
  }
610
+ /**
611
+ * Does the same thing as add-query-ok
612
+ * but called as a result of receiving query info from ssr
613
+ * @param {any} q
614
+ * @param {{ triples: any; pageInfo: any; }} result
615
+ * @param {boolean} enableCardinalityInference
616
+ */
617
+ _addQueryData(q, result, enableCardinalityInference) {
618
+ if (!this.attrs) {
619
+ throw new Error('Attrs in reactor have not been set');
620
+ }
621
+ const queryHash = weakHash(q);
622
+ const attrsStore = this.ensureAttrs();
623
+ const store = s.createStore(this.attrs, result.triples, enableCardinalityInference, this.config.useDateObjects);
624
+ this.querySubs.updateInPlace((prev) => {
625
+ prev[queryHash] = {
626
+ result: {
627
+ store,
628
+ attrsStore,
629
+ pageInfo: result.pageInfo,
630
+ processedTxId: undefined,
631
+ isExternal: true,
632
+ },
633
+ q,
634
+ };
635
+ });
636
+ this._cleanupPendingMutationsQueries();
637
+ this.notifyOne(queryHash);
638
+ this.notifyOneQueryOnce(queryHash);
639
+ this._cleanupPendingMutationsTimeout();
640
+ }
604
641
  _handleReceive(connId, msg) {
605
642
  var _a, _b, _c, _d, _e, _f;
606
643
  // opt-out, enabled by default if schema
@@ -1142,7 +1179,7 @@ export default class Reactor {
1142
1179
  return new s.AttrsStoreClass(attrs, this._linkIndex);
1143
1180
  }
1144
1181
  /** Runs instaql on a query and a store */
1145
- dataForQuery(hash) {
1182
+ dataForQuery(hash, applyOptimistic = true) {
1146
1183
  const errorMessage = this._errorMessage;
1147
1184
  if (errorMessage) {
1148
1185
  return { error: errorMessage };
@@ -1164,10 +1201,16 @@ export default class Reactor {
1164
1201
  pendingMutationsVersion === cached.pendingMutationsVersion) {
1165
1202
  return cached;
1166
1203
  }
1167
- const { store, attrsStore, pageInfo, aggregate, processedTxId } = result;
1204
+ let store = result.store;
1205
+ let attrsStore = result.attrsStore;
1206
+ const { pageInfo, aggregate, processedTxId } = result;
1168
1207
  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);
1208
+ if (applyOptimistic) {
1209
+ const optimisticResult = this._applyOptimisticUpdates(store, attrsStore, mutations, processedTxId);
1210
+ store = optimisticResult.store;
1211
+ attrsStore = optimisticResult.attrsStore;
1212
+ }
1213
+ const resp = instaql({ store: store, attrsStore: attrsStore, pageInfo, aggregate }, q);
1171
1214
  return { data: resp, querySubVersion, pendingMutationsVersion };
1172
1215
  }
1173
1216
  _applyOptimisticUpdates(store, attrsStore, mutations, processedTxId) {
@@ -1633,7 +1676,28 @@ export default class Reactor {
1633
1676
  }
1634
1677
  });
1635
1678
  }
1679
+ syncUserToEndpoint(user) {
1680
+ return __awaiter(this, void 0, void 0, function* () {
1681
+ if (this.config.cookieEndpoint) {
1682
+ try {
1683
+ fetch(this.config.cookieEndpoint + '/sync-auth', {
1684
+ method: 'POST',
1685
+ body: JSON.stringify({
1686
+ user: user,
1687
+ }),
1688
+ headers: {
1689
+ 'Content-Type': 'application/json',
1690
+ },
1691
+ });
1692
+ }
1693
+ catch (error) {
1694
+ console.error('Error syncing user with external endpoint', error);
1695
+ }
1696
+ }
1697
+ });
1698
+ }
1636
1699
  updateUser(newUser) {
1700
+ this.syncUserToEndpoint(newUser);
1637
1701
  const newV = { error: undefined, user: newUser };
1638
1702
  this._currentUserCached = Object.assign({ isLoading: false }, newV);
1639
1703
  this._dataForQueryCache = {};