emberflow 1.3.8 → 1.3.42

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 (52) hide show
  1. package/lib/db-structure.d.ts +2 -7
  2. package/lib/db-structure.js +1 -6
  3. package/lib/db-structure.js.map +1 -1
  4. package/lib/index-utils.d.ts +10 -5
  5. package/lib/index-utils.js +87 -122
  6. package/lib/index-utils.js.map +1 -1
  7. package/lib/index.d.ts +7 -0
  8. package/lib/index.js +85 -42
  9. package/lib/index.js.map +1 -1
  10. package/lib/logics/view-logics.d.ts +22 -2
  11. package/lib/logics/view-logics.js +107 -53
  12. package/lib/logics/view-logics.js.map +1 -1
  13. package/lib/sample-custom/db-structure.d.ts +16 -8
  14. package/lib/sample-custom/db-structure.js +17 -9
  15. package/lib/sample-custom/db-structure.js.map +1 -1
  16. package/lib/tests/index-utils.test.js +233 -137
  17. package/lib/tests/index-utils.test.js.map +1 -1
  18. package/lib/tests/index.test.js +21 -17
  19. package/lib/tests/index.test.js.map +1 -1
  20. package/lib/tests/logics/view-logics.test.js +203 -24
  21. package/lib/tests/logics/view-logics.test.js.map +1 -1
  22. package/lib/tests/utils/distribution.test.d.ts +1 -0
  23. package/lib/tests/utils/distribution.test.js +206 -0
  24. package/lib/tests/utils/distribution.test.js.map +1 -0
  25. package/lib/tests/utils/forms.test.d.ts +1 -0
  26. package/lib/tests/utils/forms.test.js +113 -0
  27. package/lib/tests/utils/forms.test.js.map +1 -0
  28. package/lib/tests/utils/misc.test.js +138 -0
  29. package/lib/tests/utils/misc.test.js.map +1 -1
  30. package/lib/tests/utils/paths.test.js +6 -5
  31. package/lib/tests/utils/paths.test.js.map +1 -1
  32. package/lib/tests/utils/pubsub.test.d.ts +1 -0
  33. package/lib/tests/utils/pubsub.test.js +109 -0
  34. package/lib/tests/utils/pubsub.test.js.map +1 -0
  35. package/lib/types.d.ts +7 -1
  36. package/lib/utils/bill-protect.d.ts +2 -1
  37. package/lib/utils/bill-protect.js +1 -1
  38. package/lib/utils/bill-protect.js.map +1 -1
  39. package/lib/utils/distribution.d.ts +9 -0
  40. package/lib/utils/distribution.js +119 -0
  41. package/lib/utils/distribution.js.map +1 -0
  42. package/lib/utils/forms.d.ts +4 -2
  43. package/lib/utils/forms.js +32 -101
  44. package/lib/utils/forms.js.map +1 -1
  45. package/lib/utils/misc.d.ts +17 -0
  46. package/lib/utils/misc.js +81 -1
  47. package/lib/utils/misc.js.map +1 -1
  48. package/lib/utils/pubsub.d.ts +9 -0
  49. package/lib/utils/pubsub.js +32 -0
  50. package/lib/utils/pubsub.js.map +1 -0
  51. package/package.json +3 -2
  52. package/src/sample-custom/db-structure.ts +17 -9
package/lib/index.js CHANGED
@@ -34,7 +34,7 @@ var __rest = (this && this.__rest) || function (s, e) {
34
34
  return t;
35
35
  };
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.onFormSubmit = exports.initializeEmberFlow = exports._mockable = exports.functionsConfig = exports.projectConfig = exports.viewLogicConfigs = exports.docPathsRegex = exports.colPaths = exports.docPaths = exports.logicConfigs = exports.validatorConfig = exports.securityConfig = exports.Entity = exports.dbStructure = exports.rtdb = exports.db = exports.admin = void 0;
37
+ exports.onFormSubmit = exports.initializeEmberFlow = exports._mockable = exports.INSTRUCTIONS_TOPIC_NAME = exports.FOR_DISTRIBUTION_TOPIC_NAME = exports.PEER_SYNC_TOPIC_NAME = exports.VIEW_LOGICS_TOPIC_NAME = exports.SUBMIT_FORM_TOPIC_NAME = exports.functionsConfig = exports.projectConfig = exports.viewLogicConfigs = exports.docPathsRegex = exports.colPaths = exports.docPaths = exports.logicConfigs = exports.validatorConfig = exports.securityConfig = exports.Entity = exports.dbStructure = exports.pubsub = exports.rtdb = exports.db = exports.admin = void 0;
38
38
  const functions = __importStar(require("firebase-functions"));
39
39
  const index_utils_1 = require("./index-utils");
40
40
  const init_db_structure_1 = require("./init-db-structure");
@@ -44,9 +44,21 @@ const database_1 = require("firebase-functions/v2/database");
44
44
  const paths_1 = require("./utils/paths");
45
45
  const lib_1 = require("emberflow-admin-client/lib");
46
46
  const db_structure_1 = require("./db-structure");
47
- const logics_1 = require("./logics/logics");
48
47
  const forms_1 = require("./utils/forms");
48
+ const pubsub_1 = require("@google-cloud/pubsub");
49
+ const pubsub_2 = require("firebase-functions/v2/pubsub");
50
+ const misc_1 = require("./utils/misc");
51
+ const distribution_1 = require("./utils/distribution");
52
+ const pubsub_3 = require("./utils/pubsub");
53
+ const scheduler_1 = require("firebase-functions/v2/scheduler");
54
+ const firestore_1 = require("firebase-functions/v2/firestore");
55
+ const https_1 = require("firebase-functions/v2/https");
49
56
  exports.functionsConfig = {};
57
+ exports.SUBMIT_FORM_TOPIC_NAME = "submit-form-queue";
58
+ exports.VIEW_LOGICS_TOPIC_NAME = "view-logics-queue";
59
+ exports.PEER_SYNC_TOPIC_NAME = "peer-sync-queue";
60
+ exports.FOR_DISTRIBUTION_TOPIC_NAME = "for-distribution-queue";
61
+ exports.INSTRUCTIONS_TOPIC_NAME = "instructions-queue";
50
62
  exports._mockable = {
51
63
  createNowTimestamp: () => exports.admin.firestore.Timestamp.now(),
52
64
  initActionRef,
@@ -56,11 +68,12 @@ function initializeEmberFlow(customProjectConfig, adminInstance, customDbStructu
56
68
  exports.admin = adminInstance;
57
69
  exports.db = exports.admin.firestore();
58
70
  exports.rtdb = exports.admin.database();
71
+ exports.pubsub = new pubsub_1.PubSub();
59
72
  exports.dbStructure = Object.assign(Object.assign({}, customDbStructure), db_structure_1.internalDbStructure);
60
73
  exports.Entity = Object.assign(Object.assign({}, CustomEntity), db_structure_1.InternalEntity);
61
74
  exports.securityConfig = customSecurityConfig;
62
75
  exports.validatorConfig = customValidatorConfig;
63
- exports.logicConfigs = [...customLogicConfigs, logics_1.forDistributionLogicConfig];
76
+ exports.logicConfigs = [...customLogicConfigs];
64
77
  (0, lib_1.initClient)(exports.admin.app());
65
78
  const { docPaths: dp, colPaths: cp, docPathsRegex: dbr, viewDefinitions: vd, } = (0, init_db_structure_1.initDbStructure)(exports.dbStructure, exports.Entity);
66
79
  exports.docPaths = dp;
@@ -77,14 +90,63 @@ function initializeEmberFlow(customProjectConfig, adminInstance, customDbStructu
77
90
  exports.functionsConfig["onFormSubmit"] = (0, database_1.onValueCreated)({
78
91
  ref: "forms/{userId}/{formId}",
79
92
  region: exports.projectConfig.region,
93
+ memory: "256MiB",
94
+ retry: true,
80
95
  }, (0, bill_protect_1.useBillProtect)(onFormSubmit));
96
+ // TODO: Make this disappear when deployed to production
97
+ exports.functionsConfig["deleteForms"] = (0, https_1.onRequest)({
98
+ timeoutSeconds: 540,
99
+ region: exports.projectConfig.region,
100
+ }, misc_1.deleteForms);
81
101
  exports.functionsConfig["onBudgetAlert"] =
82
102
  functions.pubsub.topic(exports.projectConfig.budgetAlertTopicName).onPublish(bill_protect_1.stopBillingIfBudgetExceeded);
83
- exports.functionsConfig["hourlyFunctions"] = functions.pubsub.schedule("every 1 hours")
84
- .onRun(bill_protect_1.resetUsageStats);
85
- exports.functionsConfig["minuteFunctions"] = functions.pubsub.schedule("every 1 minutes")
86
- .onRun(index_utils_1.processScheduledEntities);
87
- exports.functionsConfig["onDeleteFunctions"] = functions.firestore.document("@server/delete/functions/{deleteFuncId}").onCreate(index_utils_1.onDeleteFunction);
103
+ exports.functionsConfig["onMessageSubmitFormQueue"] = (0, pubsub_2.onMessagePublished)({
104
+ topic: exports.SUBMIT_FORM_TOPIC_NAME,
105
+ region: exports.projectConfig.region,
106
+ maxInstances: 5,
107
+ timeoutSeconds: 540,
108
+ }, forms_1.onMessageSubmitFormQueue);
109
+ exports.functionsConfig["onMessageViewLogicsQueue"] = (0, pubsub_2.onMessagePublished)({
110
+ topic: exports.VIEW_LOGICS_TOPIC_NAME,
111
+ region: exports.projectConfig.region,
112
+ maxInstances: 5,
113
+ timeoutSeconds: 540,
114
+ }, view_logics_1.onMessageViewLogicsQueue);
115
+ exports.functionsConfig["onMessagePeerSyncQueue"] = (0, pubsub_2.onMessagePublished)({
116
+ topic: exports.PEER_SYNC_TOPIC_NAME,
117
+ region: exports.projectConfig.region,
118
+ maxInstances: 5,
119
+ timeoutSeconds: 540,
120
+ }, view_logics_1.onMessagePeerSyncQueue);
121
+ exports.functionsConfig["onMessageForDistributionQueue"] = (0, pubsub_2.onMessagePublished)({
122
+ topic: exports.FOR_DISTRIBUTION_TOPIC_NAME,
123
+ region: exports.projectConfig.region,
124
+ maxInstances: 5,
125
+ timeoutSeconds: 540,
126
+ }, distribution_1.onMessageForDistributionQueue);
127
+ exports.functionsConfig["onMessageInstructionsQueue"] = (0, pubsub_2.onMessagePublished)({
128
+ topic: exports.INSTRUCTIONS_TOPIC_NAME,
129
+ region: exports.projectConfig.region,
130
+ maxInstances: 1,
131
+ concurrency: 5,
132
+ timeoutSeconds: 540,
133
+ }, distribution_1.onMessageInstructionsQueue);
134
+ exports.functionsConfig["resetUsageStats"] = (0, scheduler_1.onSchedule)({
135
+ schedule: "every 1 hours",
136
+ region: exports.projectConfig.region,
137
+ timeoutSeconds: 540,
138
+ }, bill_protect_1.resetUsageStats);
139
+ exports.functionsConfig["cleanPubSubProcessedIds"] = (0, scheduler_1.onSchedule)({
140
+ schedule: "every 1 hours",
141
+ region: exports.projectConfig.region,
142
+ timeoutSeconds: 540,
143
+ }, pubsub_3.cleanPubSubProcessedIds);
144
+ exports.functionsConfig["minuteFunctions"] = (0, scheduler_1.onSchedule)({
145
+ schedule: "every 1 minutes",
146
+ region: exports.projectConfig.region,
147
+ timeoutSeconds: 540,
148
+ }, index_utils_1.processScheduledEntities);
149
+ exports.functionsConfig["onDeleteFunctions"] = (0, firestore_1.onDocumentCreated)("@server/delete/functions/{deleteFuncId}", index_utils_1.onDeleteFunction);
88
150
  return { docPaths: exports.docPaths, colPaths: exports.colPaths, docPathsRegex: exports.docPathsRegex, functionsConfig: exports.functionsConfig };
89
151
  }
90
152
  exports.initializeEmberFlow = initializeEmberFlow;
@@ -227,7 +289,7 @@ async function onFormSubmit(event) {
227
289
  normalPriorityDocs: [],
228
290
  lowPriorityDocs: [],
229
291
  });
230
- console.info("Consolidating and Distributing High Priority Logic Results", highPriorityDocs);
292
+ console.info("Consolidating and Distributing High Priority Logic Results");
231
293
  const highPriorityDstPathLogicDocsMap = await (0, index_utils_1.expandConsolidateAndGroupByDstPath)(highPriorityDocs);
232
294
  const { userDocsByDstPath: highPriorityUserDocsByDstPath, otherUsersDocsByDstPath: highPriorityOtherUsersDocsByDstPath, } = (0, index_utils_1.groupDocsByUserAndDstPath)(highPriorityDstPathLogicDocsMap, userId);
233
295
  await (0, index_utils_1.distribute)(highPriorityUserDocsByDstPath);
@@ -235,42 +297,25 @@ async function onFormSubmit(event) {
235
297
  if (page === 0) {
236
298
  await formRef.update({ "@status": "finished" });
237
299
  }
238
- console.info("Consolidating and Distributing Normal Priority Logic Results", normalPriorityDocs);
300
+ console.info("Consolidating and Distributing Normal Priority Logic Results");
239
301
  const normalPriorityDstPathLogicDocsMap = await (0, index_utils_1.expandConsolidateAndGroupByDstPath)(normalPriorityDocs);
240
302
  const { userDocsByDstPath: normalPriorityUserDocsByDstPath, otherUsersDocsByDstPath: normalPriorityOtherUsersDocsByDstPath, } = (0, index_utils_1.groupDocsByUserAndDstPath)(normalPriorityDstPathLogicDocsMap, userId);
241
303
  await (0, index_utils_1.distribute)(normalPriorityUserDocsByDstPath);
242
- await (0, index_utils_1.distributeLater)(normalPriorityOtherUsersDocsByDstPath, `${formId}-normal-${page}`);
243
- console.info("Consolidating and Distributing Low Priority Logic Results", lowPriorityDocs);
304
+ await (0, index_utils_1.distributeLater)(normalPriorityOtherUsersDocsByDstPath);
305
+ console.info("Consolidating and Distributing Low Priority Logic Results");
244
306
  const lowPriorityDstPathLogicDocsMap = await (0, index_utils_1.expandConsolidateAndGroupByDstPath)(lowPriorityDocs);
245
307
  const { userDocsByDstPath: lowPriorityUserDocsByDstPath, otherUsersDocsByDstPath: lowPriorityOtherUsersDocsByDstPath, } = (0, index_utils_1.groupDocsByUserAndDstPath)(lowPriorityDstPathLogicDocsMap, userId);
246
- await (0, index_utils_1.distributeLater)(lowPriorityUserDocsByDstPath, `${formId}-low-user-${page}`);
247
- await (0, index_utils_1.distributeLater)(lowPriorityOtherUsersDocsByDstPath, `${formId}-low-others-${page}`);
248
- // const userDocsByDstPath = new Map([
249
- // ...highPriorityUserDocsByDstPath,
250
- // ...normalPriorityUserDocsByDstPath,
251
- // ]);
252
- //
253
- // console.info("Running View Logics");
254
- // const viewLogicResults = await runViewLogics(userDocsByDstPath);
255
- // const viewLogicResultDocs = viewLogicResults.map((result) => result.documents).flat();
256
- // const dstPathViewLogicDocsMap: Map<string, LogicResultDoc> = await expandConsolidateAndGroupByDstPath(viewLogicResultDocs);
257
- // const {
258
- // userDocsByDstPath: userViewDocsByDstPath,
259
- // otherUsersDocsByDstPath: otherUsersViewDocsByDstPath,
260
- // } = groupDocsByUserAndDstPath(dstPathViewLogicDocsMap, userId);
261
- //
262
- // console.info("Distributing View Logic Results");
263
- // await distribute(userViewDocsByDstPath);
264
- // await distributeLater(otherUsersViewDocsByDstPath, `${formId}-views`);
265
- //
266
- // console.info("Running Peer Sync Views");
267
- // const peerSyncViewLogicResults = await runPeerSyncViews(userDocsByDstPath);
268
- // const peerSyncViewLogicResultDocs = peerSyncViewLogicResults.map((result) => result.documents).flat();
269
- // const dstPathPeerSyncViewLogicDocsMap: Map<string, LogicResultDoc> = await expandConsolidateAndGroupByDstPath(peerSyncViewLogicResultDocs);
270
- // const {otherUsersDocsByDstPath: otherUsersPeerSyncViewDocsByDstPath} = groupDocsByUserAndDstPath(dstPathPeerSyncViewLogicDocsMap, userId);
271
- //
272
- // console.info("Distributing Logic Results for Peer Sync Views");
273
- // await distributeLater(otherUsersPeerSyncViewDocsByDstPath, `${formId}-peers`);
308
+ await (0, index_utils_1.distributeLater)(lowPriorityUserDocsByDstPath);
309
+ await (0, index_utils_1.distributeLater)(lowPriorityOtherUsersDocsByDstPath);
310
+ const userDocsMap = [
311
+ highPriorityUserDocsByDstPath,
312
+ normalPriorityOtherUsersDocsByDstPath,
313
+ lowPriorityUserDocsByDstPath,
314
+ ];
315
+ const userDocs = userDocsMap
316
+ .flatMap((map) => Array.from(map.values()))
317
+ .flat();
318
+ await (0, view_logics_1.queueRunViewLogics)(userDocs);
274
319
  });
275
320
  if (errorMessage) {
276
321
  await actionRef.update({ status: "finished-with-error", message: errorMessage });
@@ -278,8 +323,6 @@ async function onFormSubmit(event) {
278
323
  else {
279
324
  await actionRef.update({ status: "finished" });
280
325
  }
281
- console.info("Waiting for submitForm queue to empty");
282
- await (0, forms_1.waitForSubmitFormQueueToEmpty)();
283
326
  console.info("Finished");
284
327
  }
285
328
  catch (error) {
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAgD;AAahD,+CAYuB;AACvB,2DAAoD;AACpD,sDAK8B;AAC9B,uDAAkG;AAElG,6DAA2F;AAC3F,yCAA0C;AAE1C,oDAAsD;AACtD,iDAAmE;AACnE,yCAAuD;AACvD,iDAA4C;AAC5C,yDAAgE;AAChE,uCAAyC;AAEzC,uDAA+F;AAC/F,2CAAuD;AACvD,+DAA2D;AAC3D,+DAAkE;AAClE,uDAAsD;AAgBzC,QAAA,eAAe,GAAwB,EAAE,CAAC;AAC1C,QAAA,sBAAsB,GAAG,mBAAmB,CAAC;AAC7C,QAAA,sBAAsB,GAAG,mBAAmB,CAAC;AAC7C,QAAA,oBAAoB,GAAG,iBAAiB,CAAC;AACzC,QAAA,2BAA2B,GAAG,wBAAwB,CAAC;AACvD,QAAA,uBAAuB,GAAG,oBAAoB,CAAC;AAE/C,QAAA,SAAS,GAAG;IACvB,kBAAkB,EAAE,GAAG,EAAE,CAAC,aAAK,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;IACzD,aAAa;CACd,CAAC;AAEF,SAAgB,mBAAmB,CACjC,mBAAkC,EAClC,aAA4B,EAC5B,iBAAyC,EACzC,YAAoC,EACpC,oBAAoC,EACpC,qBAAsC,EACtC,kBAAiC;IAOjC,qBAAa,GAAG,mBAAmB,CAAC;IACpC,aAAK,GAAG,aAAa,CAAC;IACtB,UAAE,GAAG,aAAK,CAAC,SAAS,EAAE,CAAC;IACvB,YAAI,GAAG,aAAK,CAAC,QAAQ,EAAE,CAAC;IACxB,cAAM,GAAG,IAAI,eAAM,EAAE,CAAC;IACtB,mBAAW,mCAAO,iBAAiB,GAAK,kCAAmB,CAAC,CAAC;IAC7D,cAAM,mCAAO,YAAY,GAAK,6BAAc,CAAC,CAAC;IAC9C,sBAAc,GAAG,oBAAoB,CAAC;IACtC,uBAAe,GAAG,qBAAqB,CAAC;IACxC,oBAAY,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC;IACvC,IAAA,gBAAU,EAAC,aAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IAExB,MAAM,EACJ,QAAQ,EAAE,EAAE,EACZ,QAAQ,EAAE,EAAE,EACZ,aAAa,EAAE,GAAG,EAClB,eAAe,EAAE,EAAE,GACpB,GAAG,IAAA,mCAAe,EAAC,mBAAW,EAAE,cAAM,CAAC,CAAC;IACzC,gBAAQ,GAAG,EAAE,CAAC;IACd,gBAAQ,GAAG,EAAE,CAAC;IACd,qBAAa,GAAG,GAAG,CAAC;IAEpB,wBAAgB,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,OAAuB,EAAmB,EAAE;QACrE,OAAO;YACL,IAAI,EAAE,GAAG,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY;YACxF,MAAM,EAAE,OAAO,CAAC,SAAS;YACzB,cAAc,EAAE,OAAO,CAAC,QAAQ;YAChC,WAAW,EAAE,IAAA,+BAAiB,EAAC,OAAO,CAAC;SACxC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,uBAAe,CAAC,cAAc,CAAC,GAAG,IAAA,yBAAc,EAC9C;QACE,GAAG,EAAE,yBAAyB;QAC9B,MAAM,EAAE,qBAAa,CAAC,MAAM;QAC5B,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,IAAI;KACZ,EACD,IAAA,6BAAc,EAAC,YAAY,CAAC,CAC7B,CAAC;IACF,wDAAwD;IACxD,uBAAe,CAAC,aAAa,CAAC,GAAG,IAAA,iBAAS,EAAC;QACzC,cAAc,EAAE,GAAG;QACnB,MAAM,EAAE,qBAAa,CAAC,MAAM;KAC7B,EAAE,kBAAW,CAAC,CAAC;IAEhB,uBAAe,CAAC,eAAe,CAAC;QAC1B,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAa,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,0CAA2B,CAAC,CAAC;IACxG,uBAAe,CAAC,0BAA0B,CAAC,GAAG,IAAA,2BAAkB,EAAC;QAC/D,KAAK,EAAE,8BAAsB;QAC7B,MAAM,EAAE,qBAAa,CAAC,MAAM;QAC5B,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,GAAG;KACpB,EAAE,gCAAwB,CAAC,CAAC;IAC7B,uBAAe,CAAC,0BAA0B,CAAC,GAAG,IAAA,2BAAkB,EAAC;QAC/D,KAAK,EAAE,8BAAsB;QAC7B,MAAM,EAAE,qBAAa,CAAC,MAAM;QAC5B,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,GAAG;KACpB,EAAE,sCAAwB,CAAC,CAAC;IAC7B,uBAAe,CAAC,wBAAwB,CAAC,GAAG,IAAA,2BAAkB,EAAC;QAC7D,KAAK,EAAE,4BAAoB;QAC3B,MAAM,EAAE,qBAAa,CAAC,MAAM;QAC5B,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,GAAG;KACpB,EAAE,oCAAsB,CAAC,CAAC;IAC3B,uBAAe,CAAC,+BAA+B,CAAC,GAAG,IAAA,2BAAkB,EAAC;QACpE,KAAK,EAAE,mCAA2B;QAClC,MAAM,EAAE,qBAAa,CAAC,MAAM;QAC5B,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,GAAG;KACpB,EAAE,4CAA6B,CAAC,CAAC;IAClC,uBAAe,CAAC,4BAA4B,CAAC,GAAG,IAAA,2BAAkB,EAAC;QACjE,KAAK,EAAE,+BAAuB;QAC9B,MAAM,EAAE,qBAAa,CAAC,MAAM;QAC5B,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,GAAG;KACpB,EAAE,yCAA0B,CAAC,CAAC;IAC/B,uBAAe,CAAC,iBAAiB,CAAC,GAAG,IAAA,sBAAU,EAAC;QAC9C,QAAQ,EAAE,eAAe;QACzB,MAAM,EAAE,qBAAa,CAAC,MAAM;QAC5B,cAAc,EAAE,GAAG;KACpB,EAAE,8BAAe,CAAC,CAAC;IACpB,uBAAe,CAAC,yBAAyB,CAAC,GAAG,IAAA,sBAAU,EAAC;QACtD,QAAQ,EAAE,eAAe;QACzB,MAAM,EAAE,qBAAa,CAAC,MAAM;QAC5B,cAAc,EAAE,GAAG;KACpB,EAAE,gCAAuB,CAAC,CAAC;IAC5B,uBAAe,CAAC,iBAAiB,CAAC,GAAG,IAAA,sBAAU,EAAC;QAC9C,QAAQ,EAAE,iBAAiB;QAC3B,MAAM,EAAE,qBAAa,CAAC,MAAM;QAC5B,cAAc,EAAE,GAAG;KACpB,EAAE,sCAAwB,CAAC,CAAC;IAC7B,uBAAe,CAAC,mBAAmB,CAAC,GAAG,IAAA,6BAAiB,EACtD,yCAAyC,EAAE,8BAAgB,CAAC,CAAC;IAE/D,OAAO,EAAC,QAAQ,EAAR,gBAAQ,EAAE,QAAQ,EAAR,gBAAQ,EAAE,aAAa,EAAb,qBAAa,EAAE,eAAe,EAAf,uBAAe,EAAC,CAAC;AAC9D,CAAC;AAhHD,kDAgHC;AAED,KAAK,UAAU,aAAa,CAAC,QAAgB;IAC3C,OAAO,UAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,KAAkC;IAElC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACtC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC;IAChC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC;IAEjC,IAAI;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE1B,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAW,CAAC;QAC3C,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,GAAG,IAAA,mBAAW,EAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,OAAO,GAAG,yCAAyC,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM,OAAO,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAC,CAAC,CAAC;YAChE,OAAO;SACR;QAED,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEnD,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClC,IAAI,cAAc,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE;YAC5D,MAAM,OAAO,GAAG,4DAA4D,CAAC;YAC7E,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM,OAAO,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAC,CAAC,CAAC;YAChE,OAAO;SACR;QAED,qBAAqB;QACrB,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,OAAO,GAAG,sBAAsB,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM,OAAO,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAC,CAAC,CAAC;YAChE,OAAO;SACR;QAED,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChC,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,MAAM,IAAA,0BAAY,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChF,IAAI,kBAAkB,EAAE;YACtB,MAAM,OAAO,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,gBAAgB,EAAC,CAAC,CAAC;YACpF,OAAO;SACR;QAED,MAAM,QAAQ,GAAG,CAAC,MAAM,UAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5D,MAAM,kBAAkB,GAAG,IAAA,mCAAqB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC;QACT,IAAI,cAAc,EAAE;YAClB,IAAI,GAAG,CAAC,MAAM,UAAE,CAAC,GAAG,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,IAAI,CAAC,IAAI,EAAE;gBACT,MAAM,OAAO,GAAG,oBAAoB,CAAC;gBACrC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM,OAAO,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAC,CAAC,CAAC;gBAChE,OAAO;aACR;SACF;aAAM;YACL,IAAI,GAAG,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC;SACxB;QAED,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,IAAA,2BAAa,EAAC,MAAM,CAAC,CAAC;QACzC,IAAI,UAAU,EAAE;YACd,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAC/D,UAAU,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;YACxC,IAAI,cAAc,CAAC,MAAM,KAAK,UAAU,EAAE;gBACxC,OAAO,CAAC,GAAG,CAAC,0BAA0B,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChE,MAAM,OAAO,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,CAAC,OAAO,EAAC,CAAC,CAAC;gBACxF,OAAO;aACR;SACF;QAED,kBAAkB;QAClB,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,KAAK,EAAE;YACT,IAAI,MAAM,IAAA,oDAAsC,EAAC,KAAK,EAAE,OAAO,CAAC,EAAE;gBAChE,MAAM,OAAO,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,WAAW,EAAC,CAAC,CAAC;gBAC/C,OAAO;aACR;SACF;QAED,MAAM,OAAO,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,YAAY,EAAC,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG,YAAY,CAAC;QAC5B,MAAM,WAAW,GAAG,iBAAS,CAAC,kBAAkB,EAAE,CAAC;QAEnD,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChC,MAAM,YAAY,GAAiB;YACjC,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,GAAG,EAAE,MAAM;YACX,MAAM;YACN,KAAK,EAAE,QAAQ;YACf,OAAO;YACP,MAAM;SACP,CAAC;QAEF,MAAM,MAAM,GAAW;YACrB,YAAY;YACZ,UAAU;YACV,QAAQ;YACR,MAAM;YACN,WAAW;YACX,cAAc,EAAE,kBAAkB;YAClC,IAAI;SACL,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,iBAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE5B,MAAM,OAAO,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,WAAW,EAAC,CAAC,CAAC;QAE/C,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACxC,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,MAAM,IAAA,+BAAiB,EACrB,UAAU,EACV,kBAAkB,EAClB,MAAM,EACN,MAAM,EACN,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE;YAC3B,sEAAsE;YACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5C,MAAM,KAA8B,YAAY,CAAC,CAAC,CAAC,EAA7C,EAAC,SAAS,OAAmC,EAA9B,WAAW,cAA1B,aAA2B,CAAkB,CAAC;gBACpD,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC;qBACzD,GAAG,CAAC,GAAG,SAAS,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;gBACvC,MAAM,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACvC,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzC,MAAM,YAAY,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;iBACxE;aACF;YAED,MAAM,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;YACrF,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChC,YAAY,GAAG,YAAY,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC5F;YAED,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC7C,MAAM,EAAC,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAC,GAAG,YAAY;iBACzE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;iBACjC,IAAI,EAAE;iBACN,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACnB,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE;oBAC3B,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAChC;qBAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBACrD,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAClC;qBAAM;oBACL,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAC/B;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,EAAE;gBACD,gBAAgB,EAAE,EAAsB;gBACxC,kBAAkB,EAAE,EAAsB;gBAC1C,eAAe,EAAE,EAAsB;aACxC,CAAC,CAAC;YAEL,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;YAC3E,MAAM,+BAA+B,GACjC,MAAM,IAAA,gDAAkC,EAAC,gBAAgB,CAAC,CAAC;YAC/D,MAAM,EACJ,iBAAiB,EAAE,6BAA6B,EAChD,uBAAuB,EAAE,mCAAmC,GAC7D,GAAG,IAAA,uCAAyB,EAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;YACvE,MAAM,IAAA,wBAAU,EAAC,6BAA6B,CAAC,CAAC;YAChD,MAAM,IAAA,wBAAU,EAAC,mCAAmC,CAAC,CAAC;YAEtD,IAAI,IAAI,KAAK,CAAC,EAAE;gBACd,MAAM,OAAO,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,UAAU,EAAC,CAAC,CAAC;aAC/C;YAED,OAAO,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;YAC7E,MAAM,iCAAiC,GACnC,MAAM,IAAA,gDAAkC,EAAC,kBAAkB,CAAC,CAAC;YACjE,MAAM,EACJ,iBAAiB,EAAE,+BAA+B,EAClD,uBAAuB,EAAE,qCAAqC,GAC/D,GAAG,IAAA,uCAAyB,EAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC;YACzE,MAAM,IAAA,wBAAU,EAAC,+BAA+B,CAAC,CAAC;YAClD,MAAM,IAAA,6BAAe,EAAC,qCAAqC,CAAC,CAAC;YAE7D,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YAC1E,MAAM,8BAA8B,GAChC,MAAM,IAAA,gDAAkC,EAAC,eAAe,CAAC,CAAC;YAC9D,MAAM,EACJ,iBAAiB,EAAE,4BAA4B,EAC/C,uBAAuB,EAAE,kCAAkC,GAC5D,GAAG,IAAA,uCAAyB,EAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;YACtE,MAAM,IAAA,6BAAe,EAAC,4BAA4B,CAAC,CAAC;YACpD,MAAM,IAAA,6BAAe,EAAC,kCAAkC,CAAC,CAAC;YAE1D,MAAM,WAAW,GAAG;gBAClB,6BAA6B;gBAC7B,qCAAqC;gBACrC,4BAA4B;aAC7B,CAAC;YACF,MAAM,QAAQ,GAAG,WAAW;iBACzB,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;iBAC1C,IAAI,EAAE,CAAC;YACV,MAAM,IAAA,gCAAkB,EAAC,QAAQ,CAAC,CAAC;QACrC,CAAC,CACF,CAAC;QAEF,IAAI,YAAY,EAAE;YAChB,MAAM,SAAS,CAAC,MAAM,CAAC,EAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,YAAY,EAAC,CAAC,CAAC;SAChF;aAAM;YACL,MAAM,SAAS,CAAC,MAAM,CAAC,EAAC,MAAM,EAAE,UAAU,EAAC,CAAC,CAAC;SAC9C;QACD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC1B;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAC9C,MAAM,OAAO,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC,CAAC;KAC/D;AACH,CAAC;AAvND,oCAuNC"}
@@ -1,3 +1,23 @@
1
- import { ViewDefinition, ViewLogicFn } from "../types";
1
+ import { LogicResultAction, LogicResultDoc, LogicResultDocPriority, ViewDefinition, ViewLogicFn } from "../types";
2
+ import * as admin from "firebase-admin";
3
+ import { CloudEvent } from "firebase-functions/lib/v2/core";
4
+ import { MessagePublishedData } from "firebase-functions/lib/v2/providers/pubsub";
2
5
  export declare function createViewLogicFn(viewDefinition: ViewDefinition): ViewLogicFn;
3
- export declare const syncPeerViews: ViewLogicFn;
6
+ export declare const syncPeerViews: (logicResultDoc: LogicResultDoc) => Promise<{
7
+ name: string;
8
+ status: string;
9
+ timeFinished: admin.firestore.Timestamp;
10
+ documents: {
11
+ action: LogicResultAction;
12
+ dstPath: string;
13
+ doc: admin.firestore.DocumentData | undefined;
14
+ instructions: {
15
+ [key: string]: string;
16
+ } | undefined;
17
+ priority: LogicResultDocPriority;
18
+ }[];
19
+ }>;
20
+ export declare function queueRunViewLogics(userLogicResultDocs: LogicResultDoc[]): Promise<void>;
21
+ export declare function onMessageViewLogicsQueue(event: CloudEvent<MessagePublishedData>): Promise<string>;
22
+ export declare const queueForPeerSync: (...userLogicResultDocs: LogicResultDoc[]) => Promise<void>;
23
+ export declare function onMessagePeerSyncQueue(event: CloudEvent<MessagePublishedData>): Promise<string>;
@@ -23,10 +23,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.syncPeerViews = exports.createViewLogicFn = void 0;
26
+ exports.onMessagePeerSyncQueue = exports.queueForPeerSync = exports.onMessageViewLogicsQueue = exports.queueRunViewLogics = exports.syncPeerViews = exports.createViewLogicFn = void 0;
27
27
  const index_1 = require("../index");
28
28
  const admin = __importStar(require("firebase-admin"));
29
29
  const paths_1 = require("../utils/paths");
30
+ const index_utils_1 = require("../index-utils");
30
31
  function createViewLogicFn(viewDefinition) {
31
32
  return async (logicResultDoc) => {
32
33
  const { srcProps, destEntity, destProp, } = viewDefinition;
@@ -38,7 +39,7 @@ function createViewLogicFn(viewDefinition) {
38
39
  if (destProp) {
39
40
  destPaths = await (0, paths_1.hydrateDocPath)(destDocPath, {
40
41
  [destEntity]: {
41
- fieldName: `${destProp}.id`,
42
+ fieldName: `${destProp}.@id`,
42
43
  operator: "==",
43
44
  value: docId,
44
45
  },
@@ -50,11 +51,23 @@ function createViewLogicFn(viewDefinition) {
50
51
  }
51
52
  if (action === "delete") {
52
53
  const documents = destPaths.map((destPath) => {
53
- return {
54
- action: "delete",
55
- dstPath: destPath,
56
- priority: "normal",
57
- };
54
+ if (destProp) {
55
+ return {
56
+ action: "merge",
57
+ dstPath: destPath,
58
+ doc: {
59
+ [destProp]: admin.firestore.FieldValue.delete(),
60
+ },
61
+ priority: "normal",
62
+ };
63
+ }
64
+ else {
65
+ return {
66
+ action: "delete",
67
+ dstPath: destPath,
68
+ priority: "normal",
69
+ };
70
+ }
58
71
  });
59
72
  return {
60
73
  name: `${destEntity}#${destProp} ViewLogic`,
@@ -95,53 +108,11 @@ function createViewLogicFn(viewDefinition) {
95
108
  exports.createViewLogicFn = createViewLogicFn;
96
109
  const syncPeerViews = async (logicResultDoc) => {
97
110
  const { dstPath, doc, instructions, } = logicResultDoc;
98
- const { entity, regex } = (0, paths_1.findMatchingDocPathRegex)(dstPath);
99
- if (!entity) {
100
- return {
101
- name: "SyncPeerViews",
102
- status: "error",
103
- message: `No matching entity found for path ${dstPath}`,
104
- timeFinished: admin.firestore.Timestamp.now(),
105
- documents: [],
106
- };
107
- }
108
- const docPath = index_1.docPaths[entity];
109
- let matchedGroups = dstPath.match(regex);
110
- const matchedValues = matchedGroups === null || matchedGroups === void 0 ? void 0 : matchedGroups.slice(1);
111
- matchedGroups = docPath.match(regex);
112
- const matchedKeys = matchedGroups === null || matchedGroups === void 0 ? void 0 : matchedGroups.slice(1);
113
- if (!matchedKeys || !matchedValues) {
114
- return {
115
- name: "SyncPeerViews",
116
- status: "error",
117
- message: `No matching keys or values found for path ${dstPath}`,
118
- timeFinished: admin.firestore.Timestamp.now(),
119
- documents: [],
120
- };
121
- }
122
- const userIdKey = matchedKeys[0];
123
- const userId = matchedValues[0];
124
- const entityIdKey = matchedKeys[matchedKeys.length - 1];
125
- const entityId = matchedValues[matchedValues.length - 1];
126
- // Create a map combining matchedKeys and matchedValues
127
- const matchedKeyValues = matchedKeys.reduce((acc, key, index) => {
128
- acc[key] = matchedValues[index];
129
- return acc;
130
- }, {});
131
- // Create a dehydrated path from docPath replacing keys with values except for the first key and the last key
132
- const dehydratedPath = docPath.replace(/({[^/]+Id})/g, (match, ...args) => {
133
- const matchedKey = args[0];
134
- if (matchedKey === userIdKey || matchedKey === entityIdKey) {
135
- return matchedKey;
136
- }
137
- return matchedKeyValues[matchedKey];
138
- });
111
+ const splits = dstPath.split("/");
112
+ const userId = splits[1];
113
+ splits[1] = "{userId}";
114
+ const dehydratedPath = splits.join("/");
139
115
  const forSyncPaths = await (0, paths_1.hydrateDocPath)(dehydratedPath, {
140
- [entity]: {
141
- fieldName: "@id",
142
- operator: "==",
143
- value: entityId,
144
- },
145
116
  user: {
146
117
  fieldName: "@id",
147
118
  operator: "!=",
@@ -167,4 +138,87 @@ const syncPeerViews = async (logicResultDoc) => {
167
138
  };
168
139
  };
169
140
  exports.syncPeerViews = syncPeerViews;
141
+ async function queueRunViewLogics(userLogicResultDocs) {
142
+ const topic = index_1.pubsub.topic(index_1.VIEW_LOGICS_TOPIC_NAME);
143
+ try {
144
+ for (const userLogicResultDoc of userLogicResultDocs) {
145
+ if (userLogicResultDoc.action === "create") {
146
+ // Since this is newly created, this means there's no existing view to sync
147
+ continue;
148
+ }
149
+ const messageId = await topic.publishMessage({ json: userLogicResultDoc });
150
+ console.log(`Message ${messageId} published.`);
151
+ }
152
+ }
153
+ catch (error) {
154
+ if (error instanceof Error) {
155
+ console.error(`Received error while publishing: ${error.message}`);
156
+ }
157
+ else {
158
+ console.error("An unknown error occurred during publishing");
159
+ }
160
+ throw error;
161
+ }
162
+ }
163
+ exports.queueRunViewLogics = queueRunViewLogics;
164
+ async function onMessageViewLogicsQueue(event) {
165
+ try {
166
+ const userLogicResultDoc = event.data.message.json;
167
+ const userId = userLogicResultDoc.dstPath.split("/")[1];
168
+ console.log("Received user logic result doc:", userLogicResultDoc);
169
+ console.info("Running View Logics");
170
+ const viewLogicResults = await (0, index_utils_1.runViewLogics)(userLogicResultDoc);
171
+ const viewLogicResultDocs = viewLogicResults.map((result) => result.documents).flat();
172
+ const dstPathViewLogicDocsMap = await (0, index_utils_1.expandConsolidateAndGroupByDstPath)(viewLogicResultDocs);
173
+ const { userDocsByDstPath, otherUsersDocsByDstPath } = (0, index_utils_1.groupDocsByUserAndDstPath)(dstPathViewLogicDocsMap, userId);
174
+ console.info("Distributing View Logic Results");
175
+ await (0, index_utils_1.distribute)(userDocsByDstPath);
176
+ await (0, index_utils_1.distributeLater)(otherUsersDocsByDstPath);
177
+ console.info("Queue for Peer Sync");
178
+ await (0, exports.queueForPeerSync)(userLogicResultDoc);
179
+ return "Processed view logics";
180
+ }
181
+ catch (e) {
182
+ console.error("PubSub message was not JSON", e);
183
+ throw new Error("No json in message");
184
+ }
185
+ }
186
+ exports.onMessageViewLogicsQueue = onMessageViewLogicsQueue;
187
+ const queueForPeerSync = async (...userLogicResultDocs) => {
188
+ const topic = index_1.pubsub.topic(index_1.PEER_SYNC_TOPIC_NAME);
189
+ try {
190
+ for (const userLogicResultDoc of userLogicResultDocs) {
191
+ const messageId = await topic.publishMessage({ json: userLogicResultDoc });
192
+ console.log(`Message ${messageId} published.`);
193
+ }
194
+ }
195
+ catch (error) {
196
+ if (error instanceof Error) {
197
+ console.error(`Received error while publishing: ${error.message}`);
198
+ }
199
+ else {
200
+ console.error("An unknown error occurred during publishing");
201
+ }
202
+ throw error;
203
+ }
204
+ };
205
+ exports.queueForPeerSync = queueForPeerSync;
206
+ async function onMessagePeerSyncQueue(event) {
207
+ try {
208
+ const userLogicResultDoc = event.data.message.json;
209
+ console.log("Received user logic result doc:", userLogicResultDoc);
210
+ console.info("Running Peer Sync");
211
+ const logicResult = await (0, exports.syncPeerViews)(userLogicResultDoc);
212
+ const logicResultDocs = logicResult.documents;
213
+ const dstPathViewLogicDocsMap = await (0, index_utils_1.expandConsolidateAndGroupByDstPath)(logicResultDocs);
214
+ console.info("Distributing Peer Sync Docs");
215
+ await (0, index_utils_1.distributeLater)(dstPathViewLogicDocsMap);
216
+ return "Processed peer sync";
217
+ }
218
+ catch (e) {
219
+ console.error("PubSub message was not JSON", e);
220
+ throw new Error("No json in message");
221
+ }
222
+ }
223
+ exports.onMessagePeerSyncQueue = onMessagePeerSyncQueue;
170
224
  //# sourceMappingURL=view-logics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"view-logics.js","sourceRoot":"","sources":["../../src/logics/view-logics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view-logics.js","sourceRoot":"","sources":["../../src/logics/view-logics.ts"],"names":[],"mappings":"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"}
@@ -2,16 +2,24 @@ export declare enum Entity {
2
2
  User = "user",
3
3
  Feed = "feed",
4
4
  Friend = "friend",
5
- Game = "game",
6
- Algolia = "algolia",
7
- Topic = "topic",
8
- TopicAlgolia = "topic-algolia"
5
+ Server = "server",
6
+ Channel = "channel",
7
+ Member = "member"
9
8
  }
10
9
  export declare const dbStructure: {
11
- push: {
12
- algolia: {
13
- topics: {
14
- "topic-algolia": {
10
+ servers: {
11
+ server: {
12
+ createdBy: string;
13
+ channels: {
14
+ channel: {
15
+ createdBy: string;
16
+ members: {
17
+ [x: string]: {};
18
+ };
19
+ };
20
+ };
21
+ members: {
22
+ member: {
15
23
  [x: string]: {};
16
24
  };
17
25
  };
@@ -9,20 +9,28 @@ var Entity;
9
9
  // Add your custom entities below
10
10
  Entity["Feed"] = "feed";
11
11
  Entity["Friend"] = "friend";
12
- Entity["Game"] = "game";
13
- Entity["Algolia"] = "algolia";
14
- Entity["Topic"] = "topic";
15
- Entity["TopicAlgolia"] = "topic-algolia";
12
+ Entity["Server"] = "server";
13
+ Entity["Channel"] = "channel";
14
+ Entity["Member"] = "member";
16
15
  })(Entity = exports.Entity || (exports.Entity = {}));
17
16
  // Map your custom entities to dbStructure below.
18
17
  // Do not remove users and [Entity.User]
19
18
  // by default, view matches the id attribute of the view so make the sure that a view has an id
20
19
  exports.dbStructure = {
21
- push: {
22
- [Entity.Algolia]: {
23
- topics: {
24
- [Entity.TopicAlgolia]: {
25
- [(0, db_structure_1.view)(Entity.Topic, ["name", "summary", "type"])]: {},
20
+ servers: {
21
+ [Entity.Server]: {
22
+ createdBy: (0, db_structure_1.view)(Entity.User, ["name", "email"]),
23
+ channels: {
24
+ [Entity.Channel]: {
25
+ "createdBy": (0, db_structure_1.view)(Entity.User, ["name", "email"]),
26
+ "members": {
27
+ [(0, db_structure_1.view)(Entity.User, ["name"])]: {},
28
+ },
29
+ },
30
+ },
31
+ members: {
32
+ [Entity.Member]: {
33
+ [(0, db_structure_1.view)(Entity.User, ["name"])]: {},
26
34
  },
27
35
  },
28
36
  },
@@ -1 +1 @@
1
- {"version":3,"file":"db-structure.js","sourceRoot":"","sources":["../../src/sample-custom/db-structure.ts"],"names":[],"mappings":";;;AAAA,4EAA4E;AAC5E,wDAA2C;AAE3C,IAAY,MASX;AATD,WAAY,MAAM;IACd,uBAAa,CAAA;IACb,iCAAiC;IACjC,uBAAa,CAAA;IACb,2BAAiB,CAAA;IACjB,uBAAa,CAAA;IACb,6BAAmB,CAAA;IACnB,yBAAe,CAAA;IACf,wCAA8B,CAAA;AAClC,CAAC,EATW,MAAM,GAAN,cAAM,KAAN,cAAM,QASjB;AAED,iDAAiD;AACjD,wCAAwC;AACxC,+FAA+F;AAClF,QAAA,WAAW,GAAG;IACzB,IAAI,EAAE;QACJ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YAChB,MAAM,EAAE;gBACN,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;oBACrB,CAAC,IAAA,mBAAI,EAAC,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;iBACtD;aACF;SACF;KACF;IACD,KAAK,EAAE;QACL,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACb,KAAK,EAAE;gBACL,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oBACb,SAAS,EAAE,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;iBAChD;aACF;YACD,OAAO,EAAE;gBACP,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;oBACf,CAAC,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC1C,KAAK,EAAE;wBACL,IAAI,EAAE,EAAE;qBACT;iBACF;aACF;SACF;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"db-structure.js","sourceRoot":"","sources":["../../src/sample-custom/db-structure.ts"],"names":[],"mappings":";;;AAAA,4EAA4E;AAC5E,wDAA2C;AAE3C,IAAY,MAQX;AARD,WAAY,MAAM;IACd,uBAAa,CAAA;IACb,iCAAiC;IACjC,uBAAa,CAAA;IACb,2BAAiB,CAAA;IACjB,2BAAiB,CAAA;IACjB,6BAAmB,CAAA;IACnB,2BAAiB,CAAA;AACrB,CAAC,EARW,MAAM,GAAN,cAAM,KAAN,cAAM,QAQjB;AAED,iDAAiD;AACjD,wCAAwC;AACxC,+FAA+F;AAClF,QAAA,WAAW,GAAG;IACzB,OAAO,EAAE;QACP,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YACf,SAAS,EAAE,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/C,QAAQ,EAAE;gBACR,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;oBAChB,WAAW,EAAE,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBACjD,SAAS,EAAE;wBACT,CAAC,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;qBAClC;iBACF;aACF;YACD,OAAO,EAAE;gBACP,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;oBACf,CAAC,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;iBAClC;aACF;SACF;KACF;IACD,KAAK,EAAE;QACL,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACb,KAAK,EAAE;gBACL,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oBACb,SAAS,EAAE,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;iBAChD;aACF;YACD,OAAO,EAAE;gBACP,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;oBACf,CAAC,IAAA,mBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC1C,KAAK,EAAE;wBACL,IAAI,EAAE,EAAE;qBACT;iBACF;aACF;SACF;KACF;CACF,CAAC"}