emberflow 1.1.3 → 1.1.5

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.
@@ -1,7 +1,13 @@
1
- export declare function initDbStructure(dbStructure: Record<string, object>, Entity: Record<string, string>): {
2
- docPaths: Record<string, string>;
3
- docPathsRegex: Record<string, RegExp>;
4
- colPaths: {
5
- [key: string]: string;
1
+ export declare enum InternalEntity {
2
+ Internal = "internal",
3
+ ForDistribution = "for-distribution"
4
+ }
5
+ export declare const internalDbStructure: {
6
+ "@internal": {
7
+ internal: {
8
+ distributions: {
9
+ "for-distribution": {};
10
+ };
11
+ };
6
12
  };
7
13
  };
@@ -1,67 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initDbStructure = void 0;
4
- function traverseBFS(obj) {
5
- const paths = [];
6
- const queue = [];
7
- // Enqueue the root object with an empty path
8
- queue.push({ node: obj, path: "" });
9
- while (queue.length > 0) {
10
- // Dequeue the next node
11
- const item = queue.shift();
12
- if (!item)
13
- continue;
14
- const node = item.node;
15
- const path = item.path;
16
- // Only add non-blank paths to the paths array
17
- if (path !== "") {
18
- paths.push(path);
19
- }
20
- // Enqueue the child objects with their paths
21
- for (const key in node) {
22
- if (typeof node[key] === "object" && node[key] !== null) {
23
- const childPath = path === "" ? key : `${path}/${key}`;
24
- queue.push({ node: node[key], path: childPath });
25
- }
26
- }
27
- }
28
- return paths;
29
- }
30
- function mapDocPaths(paths, Entity) {
31
- const docPathsMap = {};
32
- for (const entityKey of Object.values(Entity)) {
33
- const entityPaths = paths.filter((path) => path.endsWith(`/${entityKey}`));
34
- if (entityPaths.length > 0) {
35
- const entityPath = entityPaths[0];
36
- docPathsMap[entityKey] = entityPath.split("/").map((element) => {
37
- if (Object.values(Entity).includes(element)) {
38
- return `{${element}Id}`;
39
- }
40
- else {
41
- return element;
42
- }
43
- }).join("/");
44
- }
45
- }
46
- return docPathsMap;
47
- }
48
- function mapColPaths(docPathsMap) {
49
- const colPathsMap = {};
50
- for (const [entityKey, docPath] of Object.entries(docPathsMap)) {
51
- colPathsMap[entityKey] = docPath.split("/").slice(0, -1).join("/");
52
- }
53
- return colPathsMap;
54
- }
55
- function initDbStructure(dbStructure, Entity) {
56
- const paths = traverseBFS(dbStructure);
57
- const docPaths = mapDocPaths(paths, Entity);
58
- const docPathsRegex = {};
59
- for (const [key, value] of Object.entries(docPaths)) {
60
- const regexPattern = value.replace(/{(\w+)Id}/g, "([^/]+)");
61
- docPathsRegex[key] = new RegExp(`^${regexPattern}$`);
62
- }
63
- const colPaths = mapColPaths(docPaths);
64
- return { docPaths, docPathsRegex, colPaths };
65
- }
66
- exports.initDbStructure = initDbStructure;
3
+ exports.internalDbStructure = exports.InternalEntity = void 0;
4
+ var InternalEntity;
5
+ (function (InternalEntity) {
6
+ InternalEntity["Internal"] = "internal";
7
+ InternalEntity["ForDistribution"] = "for-distribution";
8
+ })(InternalEntity = exports.InternalEntity || (exports.InternalEntity = {}));
9
+ exports.internalDbStructure = {
10
+ "@internal": {
11
+ [InternalEntity.Internal]: {
12
+ distributions: {
13
+ [InternalEntity.ForDistribution]: {},
14
+ },
15
+ },
16
+ },
17
+ };
67
18
  //# sourceMappingURL=db-structure.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-structure.js","sourceRoot":"","sources":["../src/db-structure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-structure.js","sourceRoot":"","sources":["../src/db-structure.ts"],"names":[],"mappings":";;;AACA,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,uCAAqB,CAAA;IACrB,sDAAoC,CAAA;AACxC,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB;AACY,QAAA,mBAAmB,GAAG;IACjC,WAAW,EAAE;QACX,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;YACzB,aAAa,EAAE;gBACb,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE;aACrC;SACF;KACF;CACF,CAAC"}
@@ -8,16 +8,17 @@ export declare const _mockable: {
8
8
  createNowTimestamp: () => firestore.Timestamp;
9
9
  };
10
10
  export declare function distribute(docsByDstPath: Map<string, LogicResultDoc>): Promise<void>;
11
+ export declare function distributeLater(docsByDstPath: Map<string, LogicResultDoc>, id: string): Promise<void>;
11
12
  export declare function validateForm(entity: string, form: FirebaseFirestore.DocumentData): Promise<ValidateFormResult>;
12
13
  export declare function getFormModifiedFields(form: DocumentData, document: DocumentData): DocumentData;
13
14
  export declare function delayFormSubmissionAndCheckIfCancelled(delay: number, formRef: Reference): Promise<boolean>;
14
- export declare function runBusinessLogics(actionType: LogicActionType, formModifiedFields: DocumentData, entity: string, action: Action): Promise<LogicResult[]>;
15
+ export declare function runBusinessLogics(actionType: LogicActionType, formModifiedFields: DocumentData, entity: string, action: Action, distributeFn: (logicResults: LogicResult[], page: number) => Promise<void>): Promise<void>;
15
16
  export declare function groupDocsByUserAndDstPath(docsByDstPath: Map<string, LogicResultDoc>, userId: string): {
16
17
  userDocsByDstPath: Map<string, LogicResultDoc>;
17
18
  otherUsersDocsByDstPath: Map<string, LogicResultDoc>;
18
19
  };
19
20
  export declare function getSecurityFn(entity: string): SecurityFn;
20
- export declare function consolidateAndGroupByDstPath(logicResults: LogicResult[]): Map<string, LogicResultDoc>;
21
+ export declare function expandConsolidateAndGroupByDstPath(logicDocs: LogicResultDoc[]): Promise<Map<string, LogicResultDoc>>;
21
22
  export declare function runViewLogics(dstPathLogicDocsMap: Map<string, LogicResultDoc>): Promise<LogicResult[]>;
22
23
  export declare function runPeerSyncViews(userDocsByDstPath: Map<string, LogicResultDoc>): Promise<LogicResult[]>;
23
24
  export declare function processScheduledEntities(): Promise<void>;
@@ -23,29 +23,26 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.onDeleteFunction = exports.processScheduledEntities = exports.runPeerSyncViews = exports.runViewLogics = exports.consolidateAndGroupByDstPath = exports.getSecurityFn = exports.groupDocsByUserAndDstPath = exports.runBusinessLogics = exports.delayFormSubmissionAndCheckIfCancelled = exports.getFormModifiedFields = exports.validateForm = exports.distribute = exports._mockable = void 0;
26
+ exports.onDeleteFunction = exports.processScheduledEntities = exports.runPeerSyncViews = exports.runViewLogics = exports.expandConsolidateAndGroupByDstPath = exports.getSecurityFn = exports.groupDocsByUserAndDstPath = exports.runBusinessLogics = exports.delayFormSubmissionAndCheckIfCancelled = exports.getFormModifiedFields = exports.validateForm = exports.distributeLater = exports.distribute = exports._mockable = void 0;
27
27
  const index_1 = require("./index");
28
28
  const view_logics_1 = require("./logics/view-logics");
29
29
  const paths_1 = require("./utils/paths");
30
30
  const misc_1 = require("./utils/misc");
31
31
  const batch = __importStar(require("./utils/batch"));
32
32
  const functions_1 = require("@google-cloud/functions");
33
+ const lib_1 = require("emberflow-admin-client/lib");
33
34
  exports._mockable = {
34
35
  getViewLogicsConfig: () => index_1.viewLogicConfigs,
35
36
  createNowTimestamp: () => index_1.admin.firestore.Timestamp.now(),
36
37
  };
37
38
  async function distribute(docsByDstPath) {
38
- const forCopy = [];
39
39
  for (const dstPath of Array.from(docsByDstPath.keys()).sort()) {
40
40
  console.log(`Documents for path ${dstPath}:`);
41
41
  const resultDoc = docsByDstPath.get(dstPath);
42
42
  if (!resultDoc)
43
43
  continue;
44
44
  const { action, doc, instructions, } = resultDoc;
45
- if (action === "copy") {
46
- forCopy.push(resultDoc);
47
- }
48
- else if (action === "delete") {
45
+ if (action === "delete") {
49
46
  // Delete document at dstPath
50
47
  const dstDocRef = index_1.db.doc(dstPath);
51
48
  await batch.deleteDoc(dstDocRef);
@@ -94,48 +91,28 @@ async function distribute(docsByDstPath) {
94
91
  console.log(`Committing final batch of ${batch.writeCount} writes...`);
95
92
  await batch.commit();
96
93
  }
97
- // Do copy after all other operations
98
- for (const resultDoc of forCopy) {
99
- const { srcPath, dstPath, skipEntityDuringRecursiveCopy = [], copyMode = "recursive", } = resultDoc;
100
- if (!srcPath) {
101
- continue;
102
- }
103
- const srcDocRef = index_1.db.doc(srcPath);
104
- const dstDocRef = index_1.db.doc(dstPath);
105
- const srcData = (await srcDocRef.get()).data();
106
- if (!srcData) {
107
- console.warn("Copy src doesn't exists");
108
- continue;
94
+ }
95
+ exports.distribute = distribute;
96
+ async function distributeLater(docsByDstPath, id) {
97
+ console.log("Submitting to form for later processing...");
98
+ docsByDstPath.forEach((doc, dstPath) => {
99
+ if (doc.priority === "normal") {
100
+ doc.priority = "high";
109
101
  }
110
- await batch.set(dstDocRef, srcData);
111
- console.log(`Document copied from ${srcPath} to ${dstPath}`);
112
- if (copyMode === "recursive") {
113
- const subDocPaths = (0, paths_1.expandAndGroupDocPaths)(srcPath);
114
- const pathsToCopy = [];
115
- for (const [entity, paths] of Object.entries(subDocPaths)) {
116
- if (!skipEntityDuringRecursiveCopy || !skipEntityDuringRecursiveCopy.includes(entity)) {
117
- pathsToCopy.push(...paths);
118
- }
119
- }
120
- for (const path of pathsToCopy) {
121
- const srcDocRef = index_1.db.doc(path);
122
- const dstDocRef = index_1.db.doc(path.replace(srcPath, dstPath));
123
- const srcData = (await srcDocRef.get()).data();
124
- if (!srcData) {
125
- console.warn("Copy src doesn't exists");
126
- continue;
127
- }
128
- await batch.set(dstDocRef, srcData);
129
- console.log(`Document copied from ${path} to ${dstDocRef.path}`);
130
- }
102
+ else if (doc.priority === "low") {
103
+ doc.priority = "normal";
131
104
  }
132
- }
133
- if (batch.writeCount > 0) {
134
- console.log(`Committing final batch of ${batch.writeCount} writes...`);
135
- await batch.commit();
136
- }
105
+ });
106
+ const formData = {
107
+ "@docPath": `@internal/forDistribution/distributions/${id}`,
108
+ "@actionType": "create",
109
+ "logicResultDocs": Array.from(docsByDstPath.values()),
110
+ };
111
+ await (0, lib_1.submitForm)(formData, (status, data, isLastUpdate) => {
112
+ console.log(`Status: ${status}, data: ${JSON.stringify(data)}, isLastUpdate: ${isLastUpdate}`);
113
+ });
137
114
  }
138
- exports.distribute = distribute;
115
+ exports.distributeLater = distributeLater;
139
116
  async function validateForm(entity, form) {
140
117
  let hasValidationError = false;
141
118
  console.info(`Validating form for entity ${entity}`);
@@ -177,33 +154,50 @@ async function delayFormSubmissionAndCheckIfCancelled(delay, formRef) {
177
154
  return cancelFormSubmission;
178
155
  }
179
156
  exports.delayFormSubmissionAndCheckIfCancelled = delayFormSubmissionAndCheckIfCancelled;
180
- async function runBusinessLogics(actionType, formModifiedFields, entity, action) {
157
+ async function runBusinessLogics(actionType, formModifiedFields, entity, action, distributeFn) {
181
158
  const matchingLogics = index_1.logicConfigs.filter((logic) => {
182
159
  return ((logic.actionTypes === "all" || logic.actionTypes.includes(actionType)) &&
183
160
  (logic.modifiedFields === "all" || logic.modifiedFields.some((field) => field in formModifiedFields)) &&
184
161
  (logic.entities === "all" || logic.entities.includes(entity)));
185
162
  });
186
- return await Promise.all(matchingLogics.map(async (logic) => {
187
- const start = performance.now();
188
- try {
189
- const result = await logic.logicFn(action);
190
- const end = performance.now();
191
- const execTime = end - start;
192
- return Object.assign(Object.assign({}, result), { execTime, timeFinished: index_1.admin.firestore.Timestamp.now() });
193
- }
194
- catch (e) {
195
- const end = performance.now();
196
- const execTime = end - start;
197
- return {
198
- name: logic.name,
199
- status: "error",
200
- documents: [],
201
- execTime,
202
- message: e.message,
203
- timeFinished: index_1.admin.firestore.Timestamp.now()
204
- };
163
+ const nextPageMarkers = Array(matchingLogics.length).fill(undefined);
164
+ let page = 0;
165
+ while (matchingLogics.length > 0) {
166
+ const logicResults = [];
167
+ for (let i = matchingLogics.length - 1; i >= 0; i--) {
168
+ const start = performance.now();
169
+ const logic = matchingLogics[i];
170
+ try {
171
+ const result = await logic.logicFn(action, nextPageMarkers[i]);
172
+ const end = performance.now();
173
+ const execTime = end - start;
174
+ const { status, nextPage } = result;
175
+ if (status === "finished") {
176
+ matchingLogics.splice(i, 1);
177
+ nextPageMarkers.splice(i, 1);
178
+ }
179
+ else if (status === "partial-result") {
180
+ nextPageMarkers[i] = nextPage;
181
+ }
182
+ logicResults.push(Object.assign(Object.assign({}, result), { execTime, timeFinished: index_1.admin.firestore.Timestamp.now() }));
183
+ }
184
+ catch (e) {
185
+ const end = performance.now();
186
+ const execTime = end - start;
187
+ matchingLogics.splice(i, 1);
188
+ nextPageMarkers.splice(i, 1);
189
+ logicResults.push({
190
+ name: logic.name,
191
+ status: "error",
192
+ documents: [],
193
+ execTime,
194
+ message: e.message,
195
+ timeFinished: index_1.admin.firestore.Timestamp.now(),
196
+ });
197
+ }
205
198
  }
206
- }));
199
+ await distributeFn(logicResults, page++);
200
+ }
207
201
  }
208
202
  exports.runBusinessLogics = runBusinessLogics;
209
203
  function groupDocsByUserAndDstPath(docsByDstPath, userId) {
@@ -225,8 +219,7 @@ function getSecurityFn(entity) {
225
219
  return index_1.securityConfig[entity];
226
220
  }
227
221
  exports.getSecurityFn = getSecurityFn;
228
- function consolidateAndGroupByDstPath(logicResults) {
229
- const consolidated = new Map();
222
+ async function expandConsolidateAndGroupByDstPath(logicDocs) {
230
223
  function warnOverwritingKeys(existing, incoming, type, dstPath) {
231
224
  for (const key in incoming) {
232
225
  if (Object.prototype.hasOwnProperty.call(existing, key)) {
@@ -264,38 +257,70 @@ function consolidateAndGroupByDstPath(logicResults) {
264
257
  consolidated.set(dstPath, doc);
265
258
  }
266
259
  }
267
- function processCopy(existingDoc, doc, dstPath) {
268
- if (existingDoc) {
269
- if (existingDoc.action === "copy") {
270
- console.warn(`Action "copy" ignored because "copy" for dstPath "${dstPath}" already exists`);
260
+ async function expandRecursiveActions() {
261
+ const expandedLogicResultDocs = [];
262
+ for (let i = logicDocs.length - 1; i >= 0; i--) {
263
+ const logicResultDoc = logicDocs[i];
264
+ const { action, dstPath, srcPath, skipEntityDuringRecursion, priority, } = logicResultDoc;
265
+ if (!["recursive-delete", "recursive-copy"].includes(action))
266
+ continue;
267
+ const toExpandPath = action === "recursive-delete" ? dstPath : srcPath;
268
+ if (!toExpandPath) {
269
+ continue;
271
270
  }
272
- else {
273
- console.warn(`Action "${existingDoc.action}" for dstPath "${dstPath}" is being replaced by action "copy"`);
274
- consolidated.set(dstPath, doc);
271
+ const subDocPaths = await (0, paths_1.expandAndGroupDocPathsByEntity)(toExpandPath, undefined, skipEntityDuringRecursion);
272
+ for (const [_, paths] of Object.entries(subDocPaths)) {
273
+ for (const path of paths) {
274
+ if (action === "recursive-delete") {
275
+ expandedLogicResultDocs.push({
276
+ action: "delete",
277
+ dstPath: path,
278
+ priority,
279
+ });
280
+ }
281
+ else if (action === "recursive-copy" && srcPath) {
282
+ const absoluteDstPath = path.replace(srcPath, dstPath);
283
+ const data = (await index_1.db.doc(path).get()).data();
284
+ expandedLogicResultDocs.push({
285
+ action: "merge",
286
+ doc: data,
287
+ dstPath: absoluteDstPath,
288
+ priority,
289
+ });
290
+ }
291
+ }
275
292
  }
276
- }
277
- else {
278
- consolidated.set(dstPath, doc);
293
+ logicDocs.splice(i, 1, ...expandedLogicResultDocs);
279
294
  }
280
295
  }
281
- for (const logicResult of logicResults) {
282
- for (const doc of logicResult.documents) {
283
- const { dstPath, action, } = doc;
284
- const existingDoc = consolidated.get(dstPath);
285
- if (action === "merge") {
286
- processMerge(existingDoc, doc, dstPath);
287
- }
288
- else if (action === "delete") {
289
- processDelete(existingDoc, doc, dstPath);
290
- }
291
- else if (action === "copy") {
292
- processCopy(existingDoc, doc, dstPath);
296
+ async function convertCopyToMerge() {
297
+ for (const doc of logicDocs) {
298
+ const { srcPath, action, } = doc;
299
+ if (action !== "copy" || !srcPath) {
300
+ continue;
293
301
  }
302
+ const data = (await index_1.db.doc(srcPath).get()).data();
303
+ delete doc.srcPath;
304
+ doc.doc = data;
305
+ doc.action = "merge";
306
+ }
307
+ }
308
+ await expandRecursiveActions();
309
+ await convertCopyToMerge();
310
+ const consolidated = new Map();
311
+ for (const doc of logicDocs) {
312
+ const { dstPath, action, } = doc;
313
+ const existingDoc = consolidated.get(dstPath);
314
+ if (action === "merge") {
315
+ processMerge(existingDoc, doc, dstPath);
316
+ }
317
+ else if (action === "delete") {
318
+ processDelete(existingDoc, doc, dstPath);
294
319
  }
295
320
  }
296
321
  return consolidated;
297
322
  }
298
- exports.consolidateAndGroupByDstPath = consolidateAndGroupByDstPath;
323
+ exports.expandConsolidateAndGroupByDstPath = expandConsolidateAndGroupByDstPath;
299
324
  async function runViewLogics(dstPathLogicDocsMap) {
300
325
  const logicResults = [];
301
326
  for (const [dstPath, logicResultDoc] of dstPathLogicDocsMap.entries()) {
@@ -1 +1 @@
1
- {"version":3,"file":"index-utils.js","sourceRoot":"","sources":["../src/index-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-utils.js","sourceRoot":"","sources":["../src/index-utils.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -42,6 +42,9 @@ const view_logics_1 = require("./logics/view-logics");
42
42
  const bill_protect_1 = require("./utils/bill-protect");
43
43
  const database_1 = require("firebase-functions/v2/database");
44
44
  const paths_1 = require("./utils/paths");
45
+ const lib_1 = require("emberflow-admin-client/lib");
46
+ const db_structure_1 = require("./db-structure");
47
+ const logics_1 = require("./logics/logics");
45
48
  exports.functionsConfig = {};
46
49
  exports._mockable = {
47
50
  createNowTimestamp: () => exports.admin.firestore.Timestamp.now(),
@@ -52,11 +55,12 @@ function initializeEmberFlow(customProjectConfig, adminInstance, customDbStructu
52
55
  exports.admin = adminInstance;
53
56
  exports.db = exports.admin.firestore();
54
57
  exports.rtdb = exports.admin.database();
55
- exports.dbStructure = customDbStructure;
56
- exports.Entity = CustomEntity;
58
+ exports.dbStructure = Object.assign(Object.assign({}, customDbStructure), db_structure_1.internalDbStructure);
59
+ exports.Entity = Object.assign(Object.assign({}, CustomEntity), db_structure_1.InternalEntity);
57
60
  exports.securityConfig = customSecurityConfig;
58
61
  exports.validatorConfig = customValidatorConfig;
59
- exports.logicConfigs = customLogicConfigs;
62
+ exports.logicConfigs = [...customLogicConfigs, logics_1.forDistributionLogicConfig];
63
+ (0, lib_1.initClient)(exports.admin.app());
60
64
  const { docPaths: dp, colPaths: cp, docPathsRegex: dbr, viewDefinitions: vd, } = (0, init_db_structure_1.initDbStructure)(exports.dbStructure, exports.Entity);
61
65
  exports.docPaths = dp;
62
66
  exports.colPaths = cp;
@@ -104,7 +108,7 @@ async function onFormSubmit(event) {
104
108
  return;
105
109
  }
106
110
  console.info("Validating userId");
107
- if (!docPath.startsWith(`users/${userId}`)) {
111
+ if (docPath.startsWith("users") && !docPath.startsWith(`users/${userId}`)) {
108
112
  const message = "User id from path does not match user id from event params";
109
113
  console.warn(message);
110
114
  await formRef.update({ "@status": "error", "@message": message });
@@ -180,43 +184,90 @@ async function onFormSubmit(event) {
180
184
  await actionRef.set(action);
181
185
  await formRef.update({ "@status": "submitted" });
182
186
  console.info("Running Business Logics");
183
- const logicResults = await (0, index_utils_1.runBusinessLogics)(actionType, formModifiedFields, entity, action);
184
- // Save all logic results under logicResults collection of action form
185
- for (let i = 0; i < logicResults.length; i++) {
186
- const _a = logicResults[i], { documents } = _a, logicResult = __rest(_a, ["documents"]);
187
- const logicResultsRef = actionRef.collection("logicResults")
188
- .doc(`${actionRef.id}-${i}`);
189
- await logicResultsRef.set(logicResult);
190
- const documentsRef = logicResultsRef.collection("documents");
191
- for (let j = 0; j < documents.length; j++) {
192
- await documentsRef.doc(`${logicResultsRef.id}-${j}`).set(documents[j]);
187
+ let userDocsByDstPath = new Map();
188
+ let errorMessage = "";
189
+ await (0, index_utils_1.runBusinessLogics)(actionType, formModifiedFields, entity, action, async (logicResults, page) => {
190
+ // Save all logic results under logicResults collection of action form
191
+ for (let i = 0; i < logicResults.length; i++) {
192
+ const _a = logicResults[i], { documents } = _a, logicResult = __rest(_a, ["documents"]);
193
+ const logicResultsRef = actionRef.collection("logicResults")
194
+ .doc(`${actionRef.id}-${i}`);
195
+ await logicResultsRef.set(logicResult);
196
+ const documentsRef = logicResultsRef.collection("documents");
197
+ for (let j = 0; j < documents.length; j++) {
198
+ await documentsRef.doc(`${logicResultsRef.id}-${j}`).set(documents[j]);
199
+ }
193
200
  }
194
- }
195
- const errorLogicResults = logicResults.filter((result) => result.status === "error");
196
- if (errorLogicResults.length > 0) {
197
- const errorMessage = errorLogicResults.map((result) => result.message).join("\n");
198
- await actionRef.update({ status: "finished-with-error", message: errorMessage });
199
- }
200
- console.info("Consolidating Logic Results");
201
- const dstPathLogicDocsMap = (0, index_utils_1.consolidateAndGroupByDstPath)(logicResults);
202
- const { userDocsByDstPath, otherUsersDocsByDstPath, } = (0, index_utils_1.groupDocsByUserAndDstPath)(dstPathLogicDocsMap, userId);
201
+ const errorLogicResults = logicResults.filter((result) => result.status === "error");
202
+ if (errorLogicResults.length > 0) {
203
+ errorMessage = errorMessage + errorLogicResults.map((result) => result.message).join("\n");
204
+ }
205
+ console.info("Group logic docs by priority");
206
+ const { highPriorityDocs, normalPriorityDocs, lowPriorityDocs } = logicResults
207
+ .map((result) => result.documents)
208
+ .flat()
209
+ .reduce((acc, doc) => {
210
+ if (doc.priority === "high") {
211
+ acc.highPriorityDocs.push(doc);
212
+ }
213
+ else if (doc.priority === "normal") {
214
+ acc.normalPriorityDocs.push(doc);
215
+ }
216
+ else {
217
+ acc.lowPriorityDocs.push(doc);
218
+ }
219
+ return acc;
220
+ }, {
221
+ highPriorityDocs: [],
222
+ normalPriorityDocs: [],
223
+ lowPriorityDocs: [],
224
+ });
225
+ console.info("Consolidating and Distributing High Priority Logic Results");
226
+ const highPriorityDstPathLogicDocsMap = await (0, index_utils_1.expandConsolidateAndGroupByDstPath)(highPriorityDocs);
227
+ const { userDocsByDstPath: highPriorityUserDocsByDstPath, otherUsersDocsByDstPath: highPriorityOtherUsersDocsByDstPath, } = (0, index_utils_1.groupDocsByUserAndDstPath)(highPriorityDstPathLogicDocsMap, userId);
228
+ await (0, index_utils_1.distribute)(highPriorityUserDocsByDstPath);
229
+ await (0, index_utils_1.distribute)(highPriorityOtherUsersDocsByDstPath);
230
+ if (page === 0) {
231
+ await formRef.update({ "@status": "finished" });
232
+ }
233
+ console.info("Consolidating and Distributing Normal Priority Logic Results");
234
+ const normalPriorityDstPathLogicDocsMap = await (0, index_utils_1.expandConsolidateAndGroupByDstPath)(normalPriorityDocs);
235
+ const { userDocsByDstPath: normalPriorityUserDocsByDstPath, otherUsersDocsByDstPath: normalPriorityOtherUsersDocsByDstPath, } = (0, index_utils_1.groupDocsByUserAndDstPath)(normalPriorityDstPathLogicDocsMap, userId);
236
+ await (0, index_utils_1.distribute)(normalPriorityUserDocsByDstPath);
237
+ await (0, index_utils_1.distributeLater)(normalPriorityOtherUsersDocsByDstPath, `${formId}-normal-${page}`);
238
+ console.info("Consolidating and Distributing Low Priority Logic Results");
239
+ const lowPriorityDstPathLogicDocsMap = await (0, index_utils_1.expandConsolidateAndGroupByDstPath)(lowPriorityDocs);
240
+ const { userDocsByDstPath: lowPriorityUserDocsByDstPath, otherUsersDocsByDstPath: lowPriorityOtherUsersDocsByDstPath, } = (0, index_utils_1.groupDocsByUserAndDstPath)(lowPriorityDstPathLogicDocsMap, userId);
241
+ await (0, index_utils_1.distributeLater)(lowPriorityUserDocsByDstPath, `${formId}-low-user-${page}`);
242
+ await (0, index_utils_1.distributeLater)(lowPriorityOtherUsersDocsByDstPath, `${formId}-low-others-${page}`);
243
+ userDocsByDstPath = new Map([
244
+ ...userDocsByDstPath,
245
+ ...highPriorityUserDocsByDstPath,
246
+ ...normalPriorityUserDocsByDstPath,
247
+ ...lowPriorityUserDocsByDstPath,
248
+ ]);
249
+ });
203
250
  console.info("Running View Logics");
204
251
  const viewLogicResults = await (0, index_utils_1.runViewLogics)(userDocsByDstPath);
205
- const dstPathViewLogicDocsMap = (0, index_utils_1.consolidateAndGroupByDstPath)(viewLogicResults);
252
+ const viewLogicResultDocs = viewLogicResults.map((result) => result.documents).flat();
253
+ const dstPathViewLogicDocsMap = await (0, index_utils_1.expandConsolidateAndGroupByDstPath)(viewLogicResultDocs);
206
254
  const { userDocsByDstPath: userViewDocsByDstPath, otherUsersDocsByDstPath: otherUsersViewDocsByDstPath, } = (0, index_utils_1.groupDocsByUserAndDstPath)(dstPathViewLogicDocsMap, userId);
207
- console.info("Distributing Logic Results for initiating user");
208
- await (0, index_utils_1.distribute)(userDocsByDstPath);
255
+ console.info("Distributing View Logic Results");
209
256
  await (0, index_utils_1.distribute)(userViewDocsByDstPath);
210
- await formRef.update({ "@status": "finished" });
257
+ await (0, index_utils_1.distributeLater)(otherUsersViewDocsByDstPath, `${formId}-views`);
211
258
  console.info("Running Peer Sync Views");
212
259
  const peerSyncViewLogicResults = await (0, index_utils_1.runPeerSyncViews)(userDocsByDstPath);
213
- const dstPathPeerSyncViewLogicDocsMap = (0, index_utils_1.consolidateAndGroupByDstPath)(peerSyncViewLogicResults);
260
+ const peerSyncViewLogicResultDocs = peerSyncViewLogicResults.map((result) => result.documents).flat();
261
+ const dstPathPeerSyncViewLogicDocsMap = await (0, index_utils_1.expandConsolidateAndGroupByDstPath)(peerSyncViewLogicResultDocs);
214
262
  const { otherUsersDocsByDstPath: otherUsersPeerSyncViewDocsByDstPath } = (0, index_utils_1.groupDocsByUserAndDstPath)(dstPathPeerSyncViewLogicDocsMap, userId);
215
- console.info("Distributing Logic Results for other users");
216
- await (0, index_utils_1.distribute)(otherUsersDocsByDstPath);
217
- await (0, index_utils_1.distribute)(otherUsersViewDocsByDstPath);
218
- await (0, index_utils_1.distribute)(otherUsersPeerSyncViewDocsByDstPath);
219
- await actionRef.update({ status: "finished" });
263
+ console.info("Distributing Logic Results for Peer Sync Views");
264
+ await (0, index_utils_1.distributeLater)(otherUsersPeerSyncViewDocsByDstPath, `${formId}-peers`);
265
+ if (errorMessage) {
266
+ await actionRef.update({ status: "finished-with-error", message: errorMessage });
267
+ }
268
+ else {
269
+ await actionRef.update({ status: "finished" });
270
+ }
220
271
  console.info("Finished");
221
272
  }
222
273
  catch (error) {