emberflow 1.3.7 → 1.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/db-structure.d.ts +2 -7
- package/lib/db-structure.js +1 -6
- package/lib/db-structure.js.map +1 -1
- package/lib/index-utils.d.ts +4 -3
- package/lib/index-utils.js +83 -118
- package/lib/index-utils.js.map +1 -1
- package/lib/index.d.ts +7 -0
- package/lib/index.js +70 -38
- package/lib/index.js.map +1 -1
- package/lib/logics/view-logics.d.ts +22 -2
- package/lib/logics/view-logics.js +107 -53
- package/lib/logics/view-logics.js.map +1 -1
- package/lib/tests/index-utils.test.js +233 -137
- package/lib/tests/index-utils.test.js.map +1 -1
- package/lib/tests/index.test.js +21 -17
- package/lib/tests/index.test.js.map +1 -1
- package/lib/tests/logics/view-logics.test.js +203 -24
- package/lib/tests/logics/view-logics.test.js.map +1 -1
- package/lib/tests/utils/distribution.test.d.ts +1 -0
- package/lib/tests/utils/distribution.test.js +206 -0
- package/lib/tests/utils/distribution.test.js.map +1 -0
- package/lib/tests/utils/forms.test.d.ts +1 -0
- package/lib/tests/utils/forms.test.js +113 -0
- package/lib/tests/utils/forms.test.js.map +1 -0
- package/lib/tests/utils/misc.test.js +138 -0
- package/lib/tests/utils/misc.test.js.map +1 -1
- package/lib/tests/utils/paths.test.js.map +1 -1
- package/lib/tests/utils/pubsub.test.d.ts +1 -0
- package/lib/tests/utils/pubsub.test.js +109 -0
- package/lib/tests/utils/pubsub.test.js.map +1 -0
- package/lib/types.d.ts +7 -1
- package/lib/utils/distribution.d.ts +9 -0
- package/lib/utils/distribution.js +119 -0
- package/lib/utils/distribution.js.map +1 -0
- package/lib/utils/forms.d.ts +4 -2
- package/lib/utils/forms.js +32 -101
- package/lib/utils/forms.js.map +1 -1
- package/lib/utils/misc.d.ts +17 -0
- package/lib/utils/misc.js +81 -1
- package/lib/utils/misc.js.map +1 -1
- package/lib/utils/pubsub.d.ts +9 -0
- package/lib/utils/pubsub.js +32 -0
- package/lib/utils/pubsub.js.map +1 -0
- package/package.json +3 -2
package/lib/db-structure.d.ts
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
export declare enum InternalEntity {
|
|
2
|
-
Internal = "internal"
|
|
3
|
-
ForDistribution = "forDistribution"
|
|
2
|
+
Internal = "internal"
|
|
4
3
|
}
|
|
5
4
|
export declare const internalDbStructure: {
|
|
6
5
|
"@internal": {
|
|
7
|
-
internal: {
|
|
8
|
-
distributions: {
|
|
9
|
-
forDistribution: {};
|
|
10
|
-
};
|
|
11
|
-
};
|
|
6
|
+
internal: {};
|
|
12
7
|
};
|
|
13
8
|
};
|
package/lib/db-structure.js
CHANGED
|
@@ -4,15 +4,10 @@ exports.internalDbStructure = exports.InternalEntity = void 0;
|
|
|
4
4
|
var InternalEntity;
|
|
5
5
|
(function (InternalEntity) {
|
|
6
6
|
InternalEntity["Internal"] = "internal";
|
|
7
|
-
InternalEntity["ForDistribution"] = "forDistribution";
|
|
8
7
|
})(InternalEntity = exports.InternalEntity || (exports.InternalEntity = {}));
|
|
9
8
|
exports.internalDbStructure = {
|
|
10
9
|
"@internal": {
|
|
11
|
-
[InternalEntity.Internal]: {
|
|
12
|
-
distributions: {
|
|
13
|
-
[InternalEntity.ForDistribution]: {},
|
|
14
|
-
},
|
|
15
|
-
},
|
|
10
|
+
[InternalEntity.Internal]: {},
|
|
16
11
|
},
|
|
17
12
|
};
|
|
18
13
|
//# sourceMappingURL=db-structure.js.map
|
package/lib/db-structure.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-structure.js","sourceRoot":"","sources":["../src/db-structure.ts"],"names":[],"mappings":";;;AACA,IAAY,
|
|
1
|
+
{"version":3,"file":"db-structure.js","sourceRoot":"","sources":["../src/db-structure.ts"],"names":[],"mappings":";;;AACA,IAAY,cAEX;AAFD,WAAY,cAAc;IACtB,uCAAqB,CAAA;AACzB,CAAC,EAFW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAEzB;AACY,QAAA,mBAAmB,GAAG;IACjC,WAAW,EAAE;QACX,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE;KAC9B;CACF,CAAC"}
|
package/lib/index-utils.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Action, LogicActionType, LogicResult, LogicResultDoc, SecurityFn, ValidateFormResult } from "./types";
|
|
2
2
|
import { database, firestore } from "firebase-admin";
|
|
3
|
+
import { BatchUtil } from "./utils/batch";
|
|
3
4
|
import QueryDocumentSnapshot = firestore.QueryDocumentSnapshot;
|
|
4
5
|
import DocumentData = FirebaseFirestore.DocumentData;
|
|
5
6
|
import Reference = database.Reference;
|
|
@@ -7,8 +8,9 @@ export declare const _mockable: {
|
|
|
7
8
|
getViewLogicsConfig: () => import("./types").ViewLogicConfig[];
|
|
8
9
|
createNowTimestamp: () => firestore.Timestamp;
|
|
9
10
|
};
|
|
11
|
+
export declare function distributeDoc(logicResultDoc: LogicResultDoc, batch?: BatchUtil): Promise<void>;
|
|
10
12
|
export declare function distribute(docsByDstPath: Map<string, LogicResultDoc[]>): Promise<void>;
|
|
11
|
-
export declare function distributeLater(docsByDstPath: Map<string, LogicResultDoc[]
|
|
13
|
+
export declare function distributeLater(docsByDstPath: Map<string, LogicResultDoc[]>): Promise<void>;
|
|
12
14
|
export declare function validateForm(entity: string, form: FirebaseFirestore.DocumentData): Promise<ValidateFormResult>;
|
|
13
15
|
export declare function getFormModifiedFields(form: DocumentData, document: DocumentData): DocumentData;
|
|
14
16
|
export declare function delayFormSubmissionAndCheckIfCancelled(delay: number, formRef: Reference): Promise<boolean>;
|
|
@@ -19,7 +21,6 @@ export declare function groupDocsByUserAndDstPath(docsByDstPath: Map<string, Log
|
|
|
19
21
|
};
|
|
20
22
|
export declare function getSecurityFn(entity: string): SecurityFn;
|
|
21
23
|
export declare function expandConsolidateAndGroupByDstPath(logicDocs: LogicResultDoc[]): Promise<Map<string, LogicResultDoc[]>>;
|
|
22
|
-
export declare function runViewLogics(
|
|
23
|
-
export declare function runPeerSyncViews(userDocsByDstPath: Map<string, LogicResultDoc>): Promise<LogicResult[]>;
|
|
24
|
+
export declare function runViewLogics(userLogicResultDoc: LogicResultDoc): Promise<LogicResult[]>;
|
|
24
25
|
export declare function processScheduledEntities(): Promise<void>;
|
|
25
26
|
export declare function onDeleteFunction(snapshot: QueryDocumentSnapshot): Promise<void>;
|
package/lib/index-utils.js
CHANGED
|
@@ -1,17 +1,51 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.onDeleteFunction = exports.processScheduledEntities = exports.
|
|
3
|
+
exports.onDeleteFunction = exports.processScheduledEntities = exports.runViewLogics = exports.expandConsolidateAndGroupByDstPath = exports.getSecurityFn = exports.groupDocsByUserAndDstPath = exports.runBusinessLogics = exports.delayFormSubmissionAndCheckIfCancelled = exports.getFormModifiedFields = exports.validateForm = exports.distributeLater = exports.distribute = exports.distributeDoc = exports._mockable = void 0;
|
|
4
4
|
const index_1 = require("./index");
|
|
5
|
-
const view_logics_1 = require("./logics/view-logics");
|
|
6
5
|
const paths_1 = require("./utils/paths");
|
|
7
6
|
const misc_1 = require("./utils/misc");
|
|
8
7
|
const functions_1 = require("@google-cloud/functions");
|
|
9
8
|
const batch_1 = require("./utils/batch");
|
|
10
9
|
const forms_1 = require("./utils/forms");
|
|
10
|
+
const distribution_1 = require("./utils/distribution");
|
|
11
11
|
exports._mockable = {
|
|
12
12
|
getViewLogicsConfig: () => index_1.viewLogicConfigs,
|
|
13
13
|
createNowTimestamp: () => index_1.admin.firestore.Timestamp.now(),
|
|
14
14
|
};
|
|
15
|
+
async function distributeDoc(logicResultDoc, batch) {
|
|
16
|
+
const { action, doc, instructions, dstPath, } = logicResultDoc;
|
|
17
|
+
const dstDocRef = index_1.db.doc(dstPath);
|
|
18
|
+
console.debug(`Distributing doc with Action: ${action}`);
|
|
19
|
+
if (action === "delete") {
|
|
20
|
+
// Delete document at dstPath
|
|
21
|
+
if (batch) {
|
|
22
|
+
await batch.deleteDoc(dstDocRef);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
await dstDocRef.delete();
|
|
26
|
+
}
|
|
27
|
+
console.log(`Document deleted at ${dstPath}`);
|
|
28
|
+
}
|
|
29
|
+
else if (action === "merge" || action === "create") {
|
|
30
|
+
if (instructions) {
|
|
31
|
+
await (0, distribution_1.queueInstructions)(dstPath, instructions);
|
|
32
|
+
}
|
|
33
|
+
const updateData = Object.assign(Object.assign({}, doc), { "@id": dstDocRef.id });
|
|
34
|
+
if (batch) {
|
|
35
|
+
await batch.set(dstDocRef, updateData);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
await dstDocRef.set(updateData, { merge: true });
|
|
39
|
+
}
|
|
40
|
+
console.log(`Document merged to ${dstPath}`);
|
|
41
|
+
}
|
|
42
|
+
else if (action === "submit-form") {
|
|
43
|
+
console.debug("Queuing submit form...");
|
|
44
|
+
const formData = Object.assign({ "@docPath": dstPath, "@actionType": "create" }, doc);
|
|
45
|
+
await (0, forms_1.queueSubmitForm)(formData);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.distributeDoc = distributeDoc;
|
|
15
49
|
async function distribute(docsByDstPath) {
|
|
16
50
|
const batch = batch_1.BatchUtil.getInstance();
|
|
17
51
|
for (const dstPath of Array.from(docsByDstPath.keys()).sort()) {
|
|
@@ -20,56 +54,7 @@ async function distribute(docsByDstPath) {
|
|
|
20
54
|
if (!resultDocs)
|
|
21
55
|
continue;
|
|
22
56
|
for (const resultDoc of resultDocs) {
|
|
23
|
-
|
|
24
|
-
console.debug(`Distributing doc with Action: ${action}`);
|
|
25
|
-
if (action === "delete") {
|
|
26
|
-
// Delete document at dstPath
|
|
27
|
-
const dstDocRef = index_1.db.doc(dstPath);
|
|
28
|
-
await batch.deleteDoc(dstDocRef);
|
|
29
|
-
console.log(`Document deleted at ${dstPath}`);
|
|
30
|
-
}
|
|
31
|
-
else if (action === "merge") {
|
|
32
|
-
const updateData = Object.assign({}, doc);
|
|
33
|
-
if (instructions) {
|
|
34
|
-
for (const [property, instruction] of Object.entries(instructions)) {
|
|
35
|
-
if (instruction === "++") {
|
|
36
|
-
updateData[property] = index_1.admin.firestore.FieldValue.increment(1);
|
|
37
|
-
}
|
|
38
|
-
else if (instruction === "--") {
|
|
39
|
-
updateData[property] = index_1.admin.firestore.FieldValue.increment(-1);
|
|
40
|
-
}
|
|
41
|
-
else if (instruction.startsWith("+")) {
|
|
42
|
-
const incrementValue = parseInt(instruction.slice(1));
|
|
43
|
-
if (isNaN(incrementValue)) {
|
|
44
|
-
console.log(`Invalid increment value ${instruction} for property ${property}`);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
updateData[property] = index_1.admin.firestore.FieldValue.increment(incrementValue);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
else if (instruction.startsWith("-")) {
|
|
51
|
-
const decrementValue = parseInt(instruction.slice(1));
|
|
52
|
-
if (isNaN(decrementValue)) {
|
|
53
|
-
console.log(`Invalid decrement value ${instruction} for property ${property}`);
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
updateData[property] = index_1.admin.firestore.FieldValue.increment(-decrementValue);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
console.log(`Invalid instruction ${instruction} for property ${property}`);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
const dstDocRef = index_1.db.doc(dstPath);
|
|
65
|
-
await batch.set(dstDocRef, updateData);
|
|
66
|
-
console.log(`Document merged to ${dstPath}`);
|
|
67
|
-
}
|
|
68
|
-
else if (action === "submit-form") {
|
|
69
|
-
console.debug("Submitting form...");
|
|
70
|
-
const formData = Object.assign({ "@docPath": dstPath, "@actionType": "create" }, doc);
|
|
71
|
-
(0, forms_1.queueSubmitForm)(formData);
|
|
72
|
-
}
|
|
57
|
+
await distributeDoc(resultDoc, batch);
|
|
73
58
|
}
|
|
74
59
|
}
|
|
75
60
|
if (batch.writeCount > 0) {
|
|
@@ -78,26 +63,10 @@ async function distribute(docsByDstPath) {
|
|
|
78
63
|
}
|
|
79
64
|
}
|
|
80
65
|
exports.distribute = distribute;
|
|
81
|
-
async function distributeLater(docsByDstPath
|
|
66
|
+
async function distributeLater(docsByDstPath) {
|
|
82
67
|
console.log("Submitting to form for later processing...");
|
|
83
68
|
const documents = Array.from(docsByDstPath.values()).flat();
|
|
84
|
-
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
documents.forEach((doc) => {
|
|
88
|
-
if (!doc.priority || doc.priority === "normal") {
|
|
89
|
-
doc.priority = "high";
|
|
90
|
-
}
|
|
91
|
-
else if (doc.priority === "low") {
|
|
92
|
-
doc.priority = "normal";
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
const formData = {
|
|
96
|
-
"@docPath": `@internal/forDistribution/distributions/${id}`,
|
|
97
|
-
"@actionType": "create",
|
|
98
|
-
"logicResultDocs": documents,
|
|
99
|
-
};
|
|
100
|
-
(0, forms_1.queueSubmitForm)(formData);
|
|
69
|
+
await (0, distribution_1.queueForDistributionLater)(...documents);
|
|
101
70
|
}
|
|
102
71
|
exports.distributeLater = distributeLater;
|
|
103
72
|
async function validateForm(entity, form) {
|
|
@@ -229,28 +198,37 @@ exports.getSecurityFn = getSecurityFn;
|
|
|
229
198
|
async function expandConsolidateAndGroupByDstPath(logicDocs) {
|
|
230
199
|
function warnOverwritingKeys(existing, incoming, type, dstPath) {
|
|
231
200
|
for (const key in incoming) {
|
|
232
|
-
if (Object.prototype.hasOwnProperty.call(existing, key)) {
|
|
201
|
+
if (existing && Object.prototype.hasOwnProperty.call(existing, key)) {
|
|
233
202
|
console.warn(`Overwriting key "${key}" in ${type} for dstPath "${dstPath}"`);
|
|
234
203
|
}
|
|
235
204
|
}
|
|
236
205
|
}
|
|
237
|
-
function
|
|
206
|
+
function processMergeAndCreate(existingDocs, logicResultDoc, dstPath) {
|
|
238
207
|
let merged = false;
|
|
239
208
|
for (const existingDoc of existingDocs) {
|
|
240
|
-
if (existingDoc.action === "
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
209
|
+
if (existingDoc.action === "delete") {
|
|
210
|
+
console.warn(`Action ${logicResultDoc.action} ignored because a "delete" for dstPath "${logicResultDoc.dstPath}" already exists`);
|
|
211
|
+
merged = true;
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
if (existingDoc.action === "merge" || existingDoc.action === "create") {
|
|
215
|
+
warnOverwritingKeys(existingDoc.doc, logicResultDoc.doc, "doc", dstPath);
|
|
216
|
+
warnOverwritingKeys(existingDoc.instructions, logicResultDoc.instructions, "instructions", dstPath);
|
|
217
|
+
if (existingDoc.action === "merge" && logicResultDoc.action === "create") {
|
|
218
|
+
console.info(`Existing doc Action "merge" for dstPath "${dstPath}" is being converted to "create"`);
|
|
219
|
+
existingDoc.action = "create";
|
|
220
|
+
}
|
|
221
|
+
existingDoc.instructions = Object.assign(Object.assign({}, existingDoc.instructions), logicResultDoc.instructions);
|
|
222
|
+
existingDoc.doc = Object.assign(Object.assign({}, existingDoc.doc), logicResultDoc.doc);
|
|
245
223
|
merged = true;
|
|
246
224
|
break;
|
|
247
225
|
}
|
|
248
226
|
}
|
|
249
227
|
if (!merged) {
|
|
250
|
-
existingDocs.push(
|
|
228
|
+
existingDocs.push(logicResultDoc);
|
|
251
229
|
}
|
|
252
230
|
}
|
|
253
|
-
function processDelete(existingDocs,
|
|
231
|
+
function processDelete(existingDocs, logicResultDoc, dstPath) {
|
|
254
232
|
for (let i = existingDocs.length - 1; i >= 0; i--) {
|
|
255
233
|
const existingDoc = existingDocs[i];
|
|
256
234
|
if (existingDoc.action === "merge" || existingDoc.action === "delete") {
|
|
@@ -258,7 +236,7 @@ async function expandConsolidateAndGroupByDstPath(logicDocs) {
|
|
|
258
236
|
existingDocs.splice(i, 1);
|
|
259
237
|
}
|
|
260
238
|
}
|
|
261
|
-
existingDocs.push(
|
|
239
|
+
existingDocs.push(logicResultDoc);
|
|
262
240
|
}
|
|
263
241
|
async function expandRecursiveActions() {
|
|
264
242
|
const expandedLogicResultDocs = [];
|
|
@@ -317,8 +295,8 @@ async function expandConsolidateAndGroupByDstPath(logicDocs) {
|
|
|
317
295
|
if (existingDocs.length === 0) {
|
|
318
296
|
consolidated.set(dstPath, existingDocs);
|
|
319
297
|
}
|
|
320
|
-
if (action === "merge") {
|
|
321
|
-
|
|
298
|
+
if (action === "merge" || action === "create") {
|
|
299
|
+
processMergeAndCreate(existingDocs, doc, dstPath);
|
|
322
300
|
}
|
|
323
301
|
else if (action === "delete") {
|
|
324
302
|
processDelete(existingDocs, doc, dstPath);
|
|
@@ -330,45 +308,32 @@ async function expandConsolidateAndGroupByDstPath(logicDocs) {
|
|
|
330
308
|
return consolidated;
|
|
331
309
|
}
|
|
332
310
|
exports.expandConsolidateAndGroupByDstPath = expandConsolidateAndGroupByDstPath;
|
|
333
|
-
async function runViewLogics(
|
|
334
|
-
const
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
if (doc) {
|
|
339
|
-
modifiedFields.push(...Object.keys(doc));
|
|
340
|
-
}
|
|
341
|
-
if (instructions) {
|
|
342
|
-
modifiedFields.push(...Object.keys(instructions));
|
|
343
|
-
}
|
|
344
|
-
const { entity } = (0, paths_1.findMatchingDocPathRegex)(dstPath);
|
|
345
|
-
if (!entity) {
|
|
346
|
-
console.error("Entity should not be blank");
|
|
347
|
-
continue;
|
|
348
|
-
}
|
|
349
|
-
const matchingLogics = exports._mockable.getViewLogicsConfig().filter((logic) => {
|
|
350
|
-
return ((action === "merge" &&
|
|
351
|
-
logic.modifiedFields.some((field) => modifiedFields.includes(field)) &&
|
|
352
|
-
logic.entity === entity) ||
|
|
353
|
-
(action === "delete" &&
|
|
354
|
-
logic.entity === entity));
|
|
355
|
-
});
|
|
356
|
-
// TODO: Handle errors
|
|
357
|
-
// TODO: Add logic for execTime
|
|
358
|
-
const results = await Promise.all(matchingLogics.map((logic) => logic.viewLogicFn(logicResultDoc)));
|
|
359
|
-
logicResults.push(...results);
|
|
311
|
+
async function runViewLogics(userLogicResultDoc) {
|
|
312
|
+
const { action, doc, instructions, dstPath, } = userLogicResultDoc;
|
|
313
|
+
const modifiedFields = [];
|
|
314
|
+
if (doc) {
|
|
315
|
+
modifiedFields.push(...Object.keys(doc));
|
|
360
316
|
}
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
317
|
+
if (instructions) {
|
|
318
|
+
modifiedFields.push(...Object.keys(instructions));
|
|
319
|
+
}
|
|
320
|
+
const { entity } = (0, paths_1.findMatchingDocPathRegex)(dstPath);
|
|
321
|
+
if (!entity) {
|
|
322
|
+
console.error("Entity should not be blank");
|
|
323
|
+
return [];
|
|
368
324
|
}
|
|
369
|
-
|
|
325
|
+
const matchingLogics = exports._mockable.getViewLogicsConfig().filter((logic) => {
|
|
326
|
+
return ((action === "merge" &&
|
|
327
|
+
logic.modifiedFields.some((field) => modifiedFields.includes(field)) &&
|
|
328
|
+
logic.entity === entity) ||
|
|
329
|
+
(action === "delete" &&
|
|
330
|
+
logic.entity === entity));
|
|
331
|
+
});
|
|
332
|
+
// TODO: Handle errors
|
|
333
|
+
// TODO: Add logic for execTime
|
|
334
|
+
return await Promise.all(matchingLogics.map((logic) => logic.viewLogicFn(userLogicResultDoc)));
|
|
370
335
|
}
|
|
371
|
-
exports.
|
|
336
|
+
exports.runViewLogics = runViewLogics;
|
|
372
337
|
async function processScheduledEntities() {
|
|
373
338
|
// Query all documents inside @scheduled collection where runAt is less than now
|
|
374
339
|
const now = exports._mockable.createNowTimestamp();
|
package/lib/index-utils.js.map
CHANGED
|
@@ -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.d.ts
CHANGED
|
@@ -2,10 +2,12 @@ import { FirebaseAdmin, LogicConfig, ProjectConfig, SecurityConfig, ValidatorCon
|
|
|
2
2
|
import { Firestore } from "firebase-admin/firestore";
|
|
3
3
|
import { DatabaseEvent, DataSnapshot } from "firebase-functions/v2/database";
|
|
4
4
|
import { database } from "firebase-admin";
|
|
5
|
+
import { PubSub } from "@google-cloud/pubsub";
|
|
5
6
|
import Database = database.Database;
|
|
6
7
|
export declare let admin: FirebaseAdmin;
|
|
7
8
|
export declare let db: Firestore;
|
|
8
9
|
export declare let rtdb: Database;
|
|
10
|
+
export declare let pubsub: PubSub;
|
|
9
11
|
export declare let dbStructure: Record<string, object>;
|
|
10
12
|
export declare let Entity: Record<string, string>;
|
|
11
13
|
export declare let securityConfig: SecurityConfig;
|
|
@@ -17,6 +19,11 @@ export declare let docPathsRegex: Record<string, RegExp>;
|
|
|
17
19
|
export declare let viewLogicConfigs: ViewLogicConfig[];
|
|
18
20
|
export declare let projectConfig: ProjectConfig;
|
|
19
21
|
export declare const functionsConfig: Record<string, any>;
|
|
22
|
+
export declare const SUBMIT_FORM_TOPIC_NAME = "submit-form-queue";
|
|
23
|
+
export declare const VIEW_LOGICS_TOPIC_NAME = "view-logics-queue";
|
|
24
|
+
export declare const PEER_SYNC_TOPIC_NAME = "peer-sync-queue";
|
|
25
|
+
export declare const FOR_DISTRIBUTION_TOPIC_NAME = "for-distribution-queue";
|
|
26
|
+
export declare const INSTRUCTIONS_TOPIC_NAME = "instructions-queue";
|
|
20
27
|
export declare const _mockable: {
|
|
21
28
|
createNowTimestamp: () => FirebaseFirestore.Timestamp;
|
|
22
29
|
initActionRef: typeof initActionRef;
|
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,19 @@ 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");
|
|
49
54
|
exports.functionsConfig = {};
|
|
55
|
+
exports.SUBMIT_FORM_TOPIC_NAME = "submit-form-queue";
|
|
56
|
+
exports.VIEW_LOGICS_TOPIC_NAME = "view-logics-queue";
|
|
57
|
+
exports.PEER_SYNC_TOPIC_NAME = "peer-sync-queue";
|
|
58
|
+
exports.FOR_DISTRIBUTION_TOPIC_NAME = "for-distribution-queue";
|
|
59
|
+
exports.INSTRUCTIONS_TOPIC_NAME = "instructions-queue";
|
|
50
60
|
exports._mockable = {
|
|
51
61
|
createNowTimestamp: () => exports.admin.firestore.Timestamp.now(),
|
|
52
62
|
initActionRef,
|
|
@@ -56,11 +66,12 @@ function initializeEmberFlow(customProjectConfig, adminInstance, customDbStructu
|
|
|
56
66
|
exports.admin = adminInstance;
|
|
57
67
|
exports.db = exports.admin.firestore();
|
|
58
68
|
exports.rtdb = exports.admin.database();
|
|
69
|
+
exports.pubsub = new pubsub_1.PubSub();
|
|
59
70
|
exports.dbStructure = Object.assign(Object.assign({}, customDbStructure), db_structure_1.internalDbStructure);
|
|
60
71
|
exports.Entity = Object.assign(Object.assign({}, CustomEntity), db_structure_1.InternalEntity);
|
|
61
72
|
exports.securityConfig = customSecurityConfig;
|
|
62
73
|
exports.validatorConfig = customValidatorConfig;
|
|
63
|
-
exports.logicConfigs = [...customLogicConfigs
|
|
74
|
+
exports.logicConfigs = [...customLogicConfigs];
|
|
64
75
|
(0, lib_1.initClient)(exports.admin.app());
|
|
65
76
|
const { docPaths: dp, colPaths: cp, docPathsRegex: dbr, viewDefinitions: vd, } = (0, init_db_structure_1.initDbStructure)(exports.dbStructure, exports.Entity);
|
|
66
77
|
exports.docPaths = dp;
|
|
@@ -77,11 +88,51 @@ function initializeEmberFlow(customProjectConfig, adminInstance, customDbStructu
|
|
|
77
88
|
exports.functionsConfig["onFormSubmit"] = (0, database_1.onValueCreated)({
|
|
78
89
|
ref: "forms/{userId}/{formId}",
|
|
79
90
|
region: exports.projectConfig.region,
|
|
91
|
+
memory: "256MiB",
|
|
92
|
+
retry: true,
|
|
80
93
|
}, (0, bill_protect_1.useBillProtect)(onFormSubmit));
|
|
94
|
+
// TODO: Make this disappear when deployed to production
|
|
95
|
+
exports.functionsConfig["deleteForms"] = functions.https.onRequest(misc_1.deleteForms);
|
|
81
96
|
exports.functionsConfig["onBudgetAlert"] =
|
|
82
97
|
functions.pubsub.topic(exports.projectConfig.budgetAlertTopicName).onPublish(bill_protect_1.stopBillingIfBudgetExceeded);
|
|
83
|
-
exports.functionsConfig["
|
|
98
|
+
exports.functionsConfig["onMessageSubmitFormQueue"] = (0, pubsub_2.onMessagePublished)({
|
|
99
|
+
topic: exports.SUBMIT_FORM_TOPIC_NAME,
|
|
100
|
+
region: exports.projectConfig.region,
|
|
101
|
+
maxInstances: 5,
|
|
102
|
+
timeoutSeconds: 540,
|
|
103
|
+
}, forms_1.onMessageSubmitFormQueue);
|
|
104
|
+
exports.functionsConfig["onMessageViewLogicsQueue"] = (0, pubsub_2.onMessagePublished)({
|
|
105
|
+
topic: exports.VIEW_LOGICS_TOPIC_NAME,
|
|
106
|
+
region: exports.projectConfig.region,
|
|
107
|
+
maxInstances: 5,
|
|
108
|
+
timeoutSeconds: 540,
|
|
109
|
+
}, view_logics_1.onMessageViewLogicsQueue);
|
|
110
|
+
exports.functionsConfig["onMessagePeerSyncQueue"] = (0, pubsub_2.onMessagePublished)({
|
|
111
|
+
topic: exports.PEER_SYNC_TOPIC_NAME,
|
|
112
|
+
region: exports.projectConfig.region,
|
|
113
|
+
maxInstances: 5,
|
|
114
|
+
timeoutSeconds: 540,
|
|
115
|
+
}, view_logics_1.onMessagePeerSyncQueue);
|
|
116
|
+
exports.functionsConfig["onMessageForDistributionQueue"] = (0, pubsub_2.onMessagePublished)({
|
|
117
|
+
topic: exports.FOR_DISTRIBUTION_TOPIC_NAME,
|
|
118
|
+
region: exports.projectConfig.region,
|
|
119
|
+
maxInstances: 5,
|
|
120
|
+
timeoutSeconds: 540,
|
|
121
|
+
}, distribution_1.onMessageForDistributionQueue);
|
|
122
|
+
exports.functionsConfig["onMessageInstructionsQueue"] = (0, pubsub_2.onMessagePublished)({
|
|
123
|
+
topic: exports.INSTRUCTIONS_TOPIC_NAME,
|
|
124
|
+
region: exports.projectConfig.region,
|
|
125
|
+
maxInstances: 1,
|
|
126
|
+
concurrency: 5,
|
|
127
|
+
timeoutSeconds: 540,
|
|
128
|
+
}, distribution_1.onMessageInstructionsQueue);
|
|
129
|
+
exports.functionsConfig["resetUsageStats"] = functions.pubsub.schedule("every 1 hours")
|
|
84
130
|
.onRun(bill_protect_1.resetUsageStats);
|
|
131
|
+
exports.functionsConfig["cleanPubSubProcessedIds"] = (0, scheduler_1.onSchedule)({
|
|
132
|
+
schedule: "every 1 hours",
|
|
133
|
+
region: exports.projectConfig.region,
|
|
134
|
+
timeoutSeconds: 540,
|
|
135
|
+
}, pubsub_3.cleanPubSubProcessedIds);
|
|
85
136
|
exports.functionsConfig["minuteFunctions"] = functions.pubsub.schedule("every 1 minutes")
|
|
86
137
|
.onRun(index_utils_1.processScheduledEntities);
|
|
87
138
|
exports.functionsConfig["onDeleteFunctions"] = functions.firestore.document("@server/delete/functions/{deleteFuncId}").onCreate(index_utils_1.onDeleteFunction);
|
|
@@ -227,7 +278,7 @@ async function onFormSubmit(event) {
|
|
|
227
278
|
normalPriorityDocs: [],
|
|
228
279
|
lowPriorityDocs: [],
|
|
229
280
|
});
|
|
230
|
-
console.info("Consolidating and Distributing High Priority Logic Results"
|
|
281
|
+
console.info("Consolidating and Distributing High Priority Logic Results");
|
|
231
282
|
const highPriorityDstPathLogicDocsMap = await (0, index_utils_1.expandConsolidateAndGroupByDstPath)(highPriorityDocs);
|
|
232
283
|
const { userDocsByDstPath: highPriorityUserDocsByDstPath, otherUsersDocsByDstPath: highPriorityOtherUsersDocsByDstPath, } = (0, index_utils_1.groupDocsByUserAndDstPath)(highPriorityDstPathLogicDocsMap, userId);
|
|
233
284
|
await (0, index_utils_1.distribute)(highPriorityUserDocsByDstPath);
|
|
@@ -235,42 +286,25 @@ async function onFormSubmit(event) {
|
|
|
235
286
|
if (page === 0) {
|
|
236
287
|
await formRef.update({ "@status": "finished" });
|
|
237
288
|
}
|
|
238
|
-
console.info("Consolidating and Distributing Normal Priority Logic Results"
|
|
289
|
+
console.info("Consolidating and Distributing Normal Priority Logic Results");
|
|
239
290
|
const normalPriorityDstPathLogicDocsMap = await (0, index_utils_1.expandConsolidateAndGroupByDstPath)(normalPriorityDocs);
|
|
240
291
|
const { userDocsByDstPath: normalPriorityUserDocsByDstPath, otherUsersDocsByDstPath: normalPriorityOtherUsersDocsByDstPath, } = (0, index_utils_1.groupDocsByUserAndDstPath)(normalPriorityDstPathLogicDocsMap, userId);
|
|
241
292
|
await (0, index_utils_1.distribute)(normalPriorityUserDocsByDstPath);
|
|
242
|
-
await (0, index_utils_1.distributeLater)(normalPriorityOtherUsersDocsByDstPath
|
|
243
|
-
console.info("Consolidating and Distributing Low Priority Logic Results"
|
|
293
|
+
await (0, index_utils_1.distributeLater)(normalPriorityOtherUsersDocsByDstPath);
|
|
294
|
+
console.info("Consolidating and Distributing Low Priority Logic Results");
|
|
244
295
|
const lowPriorityDstPathLogicDocsMap = await (0, index_utils_1.expandConsolidateAndGroupByDstPath)(lowPriorityDocs);
|
|
245
296
|
const { userDocsByDstPath: lowPriorityUserDocsByDstPath, otherUsersDocsByDstPath: lowPriorityOtherUsersDocsByDstPath, } = (0, index_utils_1.groupDocsByUserAndDstPath)(lowPriorityDstPathLogicDocsMap, userId);
|
|
246
|
-
await (0, index_utils_1.distributeLater)(lowPriorityUserDocsByDstPath
|
|
247
|
-
await (0, index_utils_1.distributeLater)(lowPriorityOtherUsersDocsByDstPath
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
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`);
|
|
297
|
+
await (0, index_utils_1.distributeLater)(lowPriorityUserDocsByDstPath);
|
|
298
|
+
await (0, index_utils_1.distributeLater)(lowPriorityOtherUsersDocsByDstPath);
|
|
299
|
+
const userDocsMap = [
|
|
300
|
+
highPriorityUserDocsByDstPath,
|
|
301
|
+
normalPriorityOtherUsersDocsByDstPath,
|
|
302
|
+
lowPriorityUserDocsByDstPath,
|
|
303
|
+
];
|
|
304
|
+
const userDocs = userDocsMap
|
|
305
|
+
.flatMap((map) => Array.from(map.values()))
|
|
306
|
+
.flat();
|
|
307
|
+
await (0, view_logics_1.queueRunViewLogics)(userDocs);
|
|
274
308
|
});
|
|
275
309
|
if (errorMessage) {
|
|
276
310
|
await actionRef.update({ status: "finished-with-error", message: errorMessage });
|
|
@@ -278,8 +312,6 @@ async function onFormSubmit(event) {
|
|
|
278
312
|
else {
|
|
279
313
|
await actionRef.update({ status: "finished" });
|
|
280
314
|
}
|
|
281
|
-
console.info("Waiting for submitForm queue to empty");
|
|
282
|
-
await (0, forms_1.waitForSubmitFormQueueToEmpty)();
|
|
283
315
|
console.info("Finished");
|
|
284
316
|
}
|
|
285
317
|
catch (error) {
|