emberflow 1.5.1 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +340 -4
- package/firestore.indexes.json +35 -0
- package/lib/bin/merge-indexes.d.ts +13 -0
- package/lib/bin/merge-indexes.js +141 -0
- package/lib/bin/merge-indexes.js.map +1 -0
- package/lib/index-utils.d.ts +18 -7
- package/lib/index-utils.js +70 -75
- package/lib/index-utils.js.map +1 -1
- package/lib/index.d.ts +22 -6
- package/lib/index.js +43 -34
- package/lib/index.js.map +1 -1
- package/lib/logics/view-logics.d.ts +0 -2
- package/lib/logics/view-logics.js +1 -19
- package/lib/logics/view-logics.js.map +1 -1
- package/lib/sample-custom/cleanup-configs.d.ts +2 -0
- package/lib/sample-custom/cleanup-configs.js +17 -0
- package/lib/sample-custom/cleanup-configs.js.map +1 -0
- package/lib/sample-custom/index.js +14 -1
- package/lib/sample-custom/index.js.map +1 -1
- package/lib/sample-custom/one-time-patches.d.ts +2 -0
- package/lib/sample-custom/one-time-patches.js +14 -0
- package/lib/sample-custom/one-time-patches.js.map +1 -0
- package/lib/tests/bin/merge-indexes.test.d.ts +1 -0
- package/lib/tests/bin/merge-indexes.test.js +153 -0
- package/lib/tests/bin/merge-indexes.test.js.map +1 -0
- package/lib/tests/index-utils.test.js +345 -85
- package/lib/tests/index-utils.test.js.map +1 -1
- package/lib/tests/index.test.js +33 -5
- package/lib/tests/index.test.js.map +1 -1
- package/lib/tests/logics/patch-logics.test.js +50 -5
- package/lib/tests/logics/patch-logics.test.js.map +1 -1
- package/lib/tests/logics/view-logics.test.js +22 -4
- package/lib/tests/logics/view-logics.test.js.map +1 -1
- package/lib/tests/utils/cleanup.test.d.ts +1 -0
- package/lib/tests/utils/cleanup.test.js +243 -0
- package/lib/tests/utils/cleanup.test.js.map +1 -0
- package/lib/tests/utils/distribution.test.js +256 -1
- package/lib/tests/utils/distribution.test.js.map +1 -1
- package/lib/tests/utils/firestore-indexes.test.d.ts +1 -0
- package/lib/tests/utils/firestore-indexes.test.js +125 -0
- package/lib/tests/utils/firestore-indexes.test.js.map +1 -0
- package/lib/tests/utils/forms.test.js +10 -86
- package/lib/tests/utils/forms.test.js.map +1 -1
- package/lib/tests/utils/misc.test.js +96 -2
- package/lib/tests/utils/misc.test.js.map +1 -1
- package/lib/tests/utils/paths.test.js +20 -2
- package/lib/tests/utils/paths.test.js.map +1 -1
- package/lib/tests/utils/pubsub.test.js +10 -31
- package/lib/tests/utils/pubsub.test.js.map +1 -1
- package/lib/types.d.ts +51 -2
- package/lib/utils/cleanup.d.ts +5 -0
- package/lib/utils/cleanup.js +99 -0
- package/lib/utils/cleanup.js.map +1 -0
- package/lib/utils/distribution.d.ts +17 -3
- package/lib/utils/distribution.js +61 -23
- package/lib/utils/distribution.js.map +1 -1
- package/lib/utils/firestore-indexes.d.ts +36 -0
- package/lib/utils/firestore-indexes.js +80 -0
- package/lib/utils/firestore-indexes.js.map +1 -0
- package/lib/utils/forms.d.ts +0 -2
- package/lib/utils/forms.js +1 -35
- package/lib/utils/forms.js.map +1 -1
- package/lib/utils/misc.d.ts +1 -0
- package/lib/utils/misc.js +32 -1
- package/lib/utils/misc.js.map +1 -1
- package/lib/utils/pubsub.d.ts +0 -2
- package/lib/utils/pubsub.js +1 -16
- package/lib/utils/pubsub.js.map +1 -1
- package/package.json +6 -2
- package/src/sample-custom/cleanup-configs.ts +15 -0
- package/src/sample-custom/index.ts +15 -11
- package/src/sample-custom/one-time-patches.ts +13 -0
package/lib/index-utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.patchGroupDocs = exports.ancestorIdsPatchConfig = exports.distributeFnTransactional = exports.createMetricComputation = exports.convertLogicResultsToMetricExecutions = exports.createMetricLogicDoc = exports.onDeleteFunction = exports.expandConsolidateAndGroupByDstPath = exports.getSecurityFn = exports.groupDocsByTargetDocPath = exports.runBusinessLogics = exports.delayFormSubmissionAndCheckIfCancelled = exports.getFormModifiedFields = exports.validateForm = exports.distributeLater = exports.distributeFnNonTransactional = exports.distributeDoc = exports._mockable = void 0;
|
|
4
4
|
const firebase_admin_1 = require("firebase-admin");
|
|
5
5
|
const index_1 = require("./index");
|
|
6
6
|
const paths_1 = require("./utils/paths");
|
|
@@ -15,6 +15,7 @@ var Timestamp = firebase_admin_1.firestore.Timestamp;
|
|
|
15
15
|
exports._mockable = {
|
|
16
16
|
getViewLogicConfigs: () => index_1.viewLogicConfigs,
|
|
17
17
|
getPatchLogicConfigs: () => index_1.patchLogicConfigs,
|
|
18
|
+
getOneTimePatchConfigs: () => index_1.backFillPatchConfigs,
|
|
18
19
|
createNowTimestamp: () => index_1.admin.firestore.Timestamp.now(),
|
|
19
20
|
saveMetricExecution: saveMetricExecution,
|
|
20
21
|
getBatchUtil: () => batch_1.BatchUtil.getInstance(),
|
|
@@ -91,18 +92,6 @@ async function distributeDoc(logicResultDoc, appVersion, batch, txn) {
|
|
|
91
92
|
if (doc) {
|
|
92
93
|
if (action === "create") {
|
|
93
94
|
(0, paths_1.addAncestorIds)(dstPath, doc);
|
|
94
|
-
// Only patch siblings in real environment, not during tests that expect a specific number of firestore calls
|
|
95
|
-
if (process.env.JEST_WORKER_ID === undefined) {
|
|
96
|
-
const collectionPath = (0, paths_1.getParentPath)(dstPath);
|
|
97
|
-
if (collectionPath && collectionPath.includes("/")) {
|
|
98
|
-
const patchStatusPath = `@emberflow/internal/group-query-patches/${collectionPath.replace(/\//g, "_")}`;
|
|
99
|
-
const patchStatusRef = index_1.db.doc(patchStatusPath);
|
|
100
|
-
const patchStatusDoc = await patchStatusRef.get();
|
|
101
|
-
if (!patchStatusDoc.exists) {
|
|
102
|
-
await (0, distribution_1.queueAncestorIdsPatch)(dstPath);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
95
|
}
|
|
107
96
|
let updateData = {};
|
|
108
97
|
if (destProp) {
|
|
@@ -499,20 +488,6 @@ async function saveMetricExecution(metricExecutions) {
|
|
|
499
488
|
});
|
|
500
489
|
}
|
|
501
490
|
}
|
|
502
|
-
async function cleanMetricExecutions(_event) {
|
|
503
|
-
console.info("Running cleanMetricExecutions");
|
|
504
|
-
const metricsSnapshot = await index_1.db.collection("@metrics").get();
|
|
505
|
-
let i = 0;
|
|
506
|
-
for (const metricDoc of metricsSnapshot.docs) {
|
|
507
|
-
const query = metricDoc.ref.collection("executions")
|
|
508
|
-
.where("execDate", "<", new Date(Date.now() - 1000 * 60 * 60 * 24 * 7));
|
|
509
|
-
await (0, misc_1.deleteCollection)(query, (snapshot) => {
|
|
510
|
-
i += snapshot.size;
|
|
511
|
-
});
|
|
512
|
-
}
|
|
513
|
-
console.info(`Cleaned ${i} logic metric executions`);
|
|
514
|
-
}
|
|
515
|
-
exports.cleanMetricExecutions = cleanMetricExecutions;
|
|
516
491
|
async function createMetricComputation(_event) {
|
|
517
492
|
console.info("Creating metric computation");
|
|
518
493
|
const metricsSnapshot = await index_1.db.collection("@metrics").get();
|
|
@@ -556,20 +531,6 @@ async function createMetricComputation(_event) {
|
|
|
556
531
|
}
|
|
557
532
|
}
|
|
558
533
|
exports.createMetricComputation = createMetricComputation;
|
|
559
|
-
async function cleanMetricComputations(_event) {
|
|
560
|
-
console.info("Running cleanMetricComputations");
|
|
561
|
-
const metricsSnapshot = await index_1.db.collection("@metrics").get();
|
|
562
|
-
let i = 0;
|
|
563
|
-
for (const metricDoc of metricsSnapshot.docs) {
|
|
564
|
-
const query = metricDoc.ref.collection("computations")
|
|
565
|
-
.where("createdAt", "<", new Date(Date.now() - 1000 * 60 * 60 * 24 * 30));
|
|
566
|
-
await (0, misc_1.deleteCollection)(query, (snapshot) => {
|
|
567
|
-
i += snapshot.size;
|
|
568
|
-
});
|
|
569
|
-
}
|
|
570
|
-
console.info(`Cleaned ${i} logic metric computations`);
|
|
571
|
-
}
|
|
572
|
-
exports.cleanMetricComputations = cleanMetricComputations;
|
|
573
534
|
async function distributeFnTransactional(txn, logicResults, appVersion) {
|
|
574
535
|
const distributedLogicResultDocs = [];
|
|
575
536
|
const transactionalResults = logicResults.filter((result) => result.transactional);
|
|
@@ -590,12 +551,40 @@ async function distributeFnTransactional(txn, logicResults, appVersion) {
|
|
|
590
551
|
}
|
|
591
552
|
exports.distributeFnTransactional = distributeFnTransactional;
|
|
592
553
|
/**
|
|
593
|
-
*
|
|
594
|
-
*
|
|
595
|
-
*
|
|
554
|
+
* Built-in, version-free bulk back-fill that restores the original ancestor-ids
|
|
555
|
+
* patching behavior. Runs `addAncestorIds` per doc and commits all updates in a
|
|
556
|
+
* single `db.batch()`, only updating keys that are currently undefined.
|
|
596
557
|
*/
|
|
597
|
-
|
|
598
|
-
|
|
558
|
+
exports.ancestorIdsPatchConfig = {
|
|
559
|
+
name: "ancestor-ids",
|
|
560
|
+
patchFn: async (_collectionPath, docs) => {
|
|
561
|
+
const currentBatch = index_1.db.batch();
|
|
562
|
+
let count = 0;
|
|
563
|
+
for (const doc of docs) {
|
|
564
|
+
const data = doc.data();
|
|
565
|
+
const updatedData = {};
|
|
566
|
+
const fullPath = doc.ref.path.startsWith("/") ? doc.ref.path : `/${doc.ref.path}`;
|
|
567
|
+
(0, paths_1.addAncestorIds)(fullPath, updatedData);
|
|
568
|
+
const keysToUpdate = Object.keys(updatedData).filter((key) => data[key] === undefined);
|
|
569
|
+
if (keysToUpdate.length > 0) {
|
|
570
|
+
const patchData = {};
|
|
571
|
+
keysToUpdate.forEach((key) => patchData[key] = updatedData[key]);
|
|
572
|
+
currentBatch.update(doc.ref, patchData);
|
|
573
|
+
count++;
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
if (count > 0) {
|
|
577
|
+
await currentBatch.commit();
|
|
578
|
+
}
|
|
579
|
+
},
|
|
580
|
+
};
|
|
581
|
+
/**
|
|
582
|
+
* Internal engine logic for patching a collection page-by-page. Exported for background worker.
|
|
583
|
+
* @param {PatchGroupDocsParams} params The collection path, patch type, and cursor.
|
|
584
|
+
*/
|
|
585
|
+
async function patchGroupDocs(params) {
|
|
586
|
+
const { collectionPath, patchType, backFillPatchName, appVersion, lastPatchedId } = params;
|
|
587
|
+
const patchStatusPath = (0, distribution_1.getGroupPatchStatusPath)(collectionPath, patchType, backFillPatchName);
|
|
599
588
|
const patchStatusRef = index_1.db.doc(patchStatusPath);
|
|
600
589
|
const patchStatusDoc = await patchStatusRef.get();
|
|
601
590
|
const patchStatusData = patchStatusDoc.data();
|
|
@@ -604,59 +593,65 @@ async function patchSiblingsWithAncestorIds(collectionPath, lastPatchedId) {
|
|
|
604
593
|
}
|
|
605
594
|
// Handle "reset" status by starting from scratch
|
|
606
595
|
const effectiveLastId = (patchStatusData === null || patchStatusData === void 0 ? void 0 : patchStatusData.status) === "reset" ? undefined : lastPatchedId;
|
|
607
|
-
console.info(`[
|
|
596
|
+
console.info(`[GroupPatch] Patching docs for collection: ${collectionPath}${effectiveLastId ? ` starting from ${effectiveLastId}` : ""}`);
|
|
608
597
|
let query = index_1.db.collection(collectionPath).orderBy(index_1.admin.firestore.FieldPath.documentId());
|
|
609
598
|
if (effectiveLastId) {
|
|
610
599
|
query = query.startAfter(effectiveLastId);
|
|
611
600
|
}
|
|
612
|
-
const
|
|
613
|
-
if (
|
|
601
|
+
const docsSnapshot = await query.limit(500).get();
|
|
602
|
+
if (docsSnapshot.empty) {
|
|
614
603
|
await patchStatusRef.set({
|
|
615
604
|
status: "completed",
|
|
605
|
+
patchType,
|
|
606
|
+
backFillPatchName: backFillPatchName !== null && backFillPatchName !== void 0 ? backFillPatchName : null,
|
|
616
607
|
patchedAt: index_1.admin.firestore.Timestamp.now(),
|
|
617
608
|
collectionPath,
|
|
618
609
|
}, { merge: true });
|
|
619
|
-
console.info(`[
|
|
610
|
+
console.info(`[GroupPatch] Completed patching for collection: ${collectionPath}`);
|
|
620
611
|
return;
|
|
621
612
|
}
|
|
622
|
-
const
|
|
623
|
-
let count = 0;
|
|
624
|
-
let lastId = lastPatchedId;
|
|
625
|
-
for (const siblingDoc of siblingsSnapshot.docs) {
|
|
626
|
-
const data = siblingDoc.data();
|
|
627
|
-
const updatedData = {};
|
|
628
|
-
const fullPath = siblingDoc.ref.path.startsWith("/") ? siblingDoc.ref.path : `/${siblingDoc.ref.path}`;
|
|
629
|
-
(0, paths_1.addAncestorIds)(fullPath, updatedData);
|
|
630
|
-
const keysToUpdate = Object.keys(updatedData).filter((key) => data[key] === undefined);
|
|
631
|
-
if (keysToUpdate.length > 0) {
|
|
632
|
-
const patchData = {};
|
|
633
|
-
keysToUpdate.forEach((key) => patchData[key] = updatedData[key]);
|
|
634
|
-
currentBatch.update(siblingDoc.ref, patchData);
|
|
635
|
-
count++;
|
|
636
|
-
}
|
|
637
|
-
lastId = siblingDoc.id;
|
|
638
|
-
}
|
|
613
|
+
const lastId = docsSnapshot.docs[docsSnapshot.docs.length - 1].id;
|
|
639
614
|
try {
|
|
640
|
-
if (
|
|
641
|
-
|
|
615
|
+
if (patchType === "patch-logics") {
|
|
616
|
+
if (!appVersion) {
|
|
617
|
+
throw new Error(`Missing appVersion for patch-logics on collection: ${collectionPath}`);
|
|
618
|
+
}
|
|
619
|
+
for (const doc of docsSnapshot.docs) {
|
|
620
|
+
const fullPath = doc.ref.path.startsWith("/") ? doc.ref.path : `/${doc.ref.path}`;
|
|
621
|
+
await (0, patch_logics_1.runPatchLogics)(appVersion, fullPath);
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
else if (patchType === "back-fill") {
|
|
625
|
+
const config = exports._mockable.getOneTimePatchConfigs().find((c) => c.name === backFillPatchName);
|
|
626
|
+
if (!config) {
|
|
627
|
+
throw new Error(`Unresolved back-fill patch "${backFillPatchName}" for collection: ${collectionPath}`);
|
|
628
|
+
}
|
|
629
|
+
await config.patchFn(collectionPath, docsSnapshot.docs);
|
|
630
|
+
}
|
|
631
|
+
else {
|
|
632
|
+
throw new Error(`Unknown patchType "${patchType}" for collection: ${collectionPath}`);
|
|
642
633
|
}
|
|
643
|
-
const totalPatched = ((patchStatusData === null || patchStatusData === void 0 ? void 0 : patchStatusData.status) === "reset" ? 0 : ((patchStatusData === null || patchStatusData === void 0 ? void 0 : patchStatusData.count) || 0)) +
|
|
634
|
+
const totalPatched = ((patchStatusData === null || patchStatusData === void 0 ? void 0 : patchStatusData.status) === "reset" ? 0 : ((patchStatusData === null || patchStatusData === void 0 ? void 0 : patchStatusData.count) || 0)) + docsSnapshot.docs.length;
|
|
644
635
|
await patchStatusRef.set({
|
|
645
|
-
status: "
|
|
636
|
+
status: "running",
|
|
637
|
+
patchType,
|
|
638
|
+
backFillPatchName: backFillPatchName !== null && backFillPatchName !== void 0 ? backFillPatchName : null,
|
|
646
639
|
lastPatchedId: lastId,
|
|
647
640
|
collectionPath,
|
|
648
641
|
count: totalPatched,
|
|
649
642
|
updatedAt: index_1.admin.firestore.Timestamp.now(),
|
|
650
643
|
}, { merge: true });
|
|
651
|
-
console.info(`[
|
|
644
|
+
console.info(`[GroupPatch] Batch Complete: Patched ${docsSnapshot.docs.length} docs for collection: ${collectionPath}. Total patched so far: ${totalPatched}. Rescheduling next batch...`);
|
|
652
645
|
// Reschedule for next batch
|
|
653
|
-
await (0, distribution_1.
|
|
646
|
+
await (0, distribution_1.queueGroupPatch)({ path: collectionPath, patchType, backFillPatchName, appVersion, lastPatchedId: lastId });
|
|
654
647
|
}
|
|
655
648
|
catch (error) {
|
|
656
|
-
console.error(`[
|
|
649
|
+
console.error(`[GroupPatch] Error in patchGroupDocs for ${collectionPath}:`, error);
|
|
657
650
|
// On error, we set status to error and store the error message
|
|
658
651
|
await patchStatusRef.set({
|
|
659
652
|
status: "error",
|
|
653
|
+
patchType,
|
|
654
|
+
backFillPatchName: backFillPatchName !== null && backFillPatchName !== void 0 ? backFillPatchName : null,
|
|
660
655
|
error: error instanceof Error ? error.message : String(error),
|
|
661
656
|
updatedAt: index_1.admin.firestore.Timestamp.now(),
|
|
662
657
|
}, { merge: true });
|
|
@@ -666,5 +661,5 @@ async function patchSiblingsWithAncestorIds(collectionPath, lastPatchedId) {
|
|
|
666
661
|
throw error;
|
|
667
662
|
}
|
|
668
663
|
}
|
|
669
|
-
exports.
|
|
664
|
+
exports.patchGroupDocs = patchGroupDocs;
|
|
670
665
|
//# sourceMappingURL=index-utils.js.map
|
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
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { FirebaseAdmin, LogicConfig, LogicResultDoc, PatchLogicConfig, ProjectConfig, SecurityConfig, UserRegisterFn, ValidatorConfig, EntityViewDefinitions, ViewLogicConfig } from "./types";
|
|
1
|
+
import { FirebaseAdmin, LogicConfig, LogicResultDoc, BackFillPatchConfig, CleanupConfig, PatchLogicConfig, ProjectConfig, SecurityConfig, UserRegisterFn, ValidatorConfig, EntityViewDefinitions, ViewLogicConfig } from "./types";
|
|
2
|
+
import { ancestorIdsPatchConfig } from "./index-utils";
|
|
2
3
|
import { Firestore } from "firebase-admin/firestore";
|
|
3
4
|
import { DatabaseEvent, DataSnapshot } from "firebase-functions/v2/database";
|
|
4
5
|
import { database } from "firebase-admin";
|
|
5
6
|
import { PubSub, Topic } from "@google-cloud/pubsub";
|
|
6
|
-
import {
|
|
7
|
+
import { getGroupPatchProgress, queueGroupPatch } from "./utils/distribution";
|
|
7
8
|
import { UserRecord } from "firebase-admin/lib/auth";
|
|
8
9
|
import Database = database.Database;
|
|
9
|
-
export {
|
|
10
|
+
export { queueGroupPatch, getGroupPatchProgress, ancestorIdsPatchConfig };
|
|
10
11
|
export declare let admin: FirebaseAdmin;
|
|
11
12
|
export declare let db: Firestore;
|
|
12
13
|
export declare let rtdb: Database;
|
|
@@ -17,6 +18,8 @@ export declare let securityConfigs: SecurityConfig[];
|
|
|
17
18
|
export declare let validatorConfigs: ValidatorConfig[];
|
|
18
19
|
export declare let logicConfigs: LogicConfig[];
|
|
19
20
|
export declare let patchLogicConfigs: PatchLogicConfig[];
|
|
21
|
+
export declare let cleanupConfigs: CleanupConfig[];
|
|
22
|
+
export declare let backFillPatchConfigs: BackFillPatchConfig[];
|
|
20
23
|
export declare let docPaths: Record<string, string>;
|
|
21
24
|
export declare let colPaths: Record<string, string>;
|
|
22
25
|
export declare let docPathsRegex: Record<string, RegExp>;
|
|
@@ -29,19 +32,32 @@ export declare const VIEW_LOGICS_TOPIC_NAME = "view-logics-queue";
|
|
|
29
32
|
export declare const PATCH_LOGICS_TOPIC_NAME = "patch-logics-queue";
|
|
30
33
|
export declare const FOR_DISTRIBUTION_TOPIC_NAME = "for-distribution-queue";
|
|
31
34
|
export declare const INSTRUCTIONS_TOPIC_NAME = "instructions-queue";
|
|
32
|
-
export declare const
|
|
35
|
+
export declare const GROUP_PATCH_TOPIC_NAME = "group-patch-queue";
|
|
33
36
|
export declare const pubSubTopics: string[];
|
|
34
37
|
export declare let SUBMIT_FORM_TOPIC: Topic;
|
|
35
38
|
export declare let VIEW_LOGICS_TOPIC: Topic;
|
|
36
39
|
export declare let PATCH_LOGICS_TOPIC: Topic;
|
|
37
40
|
export declare let FOR_DISTRIBUTION_TOPIC: Topic;
|
|
38
41
|
export declare let INSTRUCTIONS_TOPIC: Topic;
|
|
39
|
-
export declare let
|
|
42
|
+
export declare let GROUP_PATCH_TOPIC: Topic;
|
|
40
43
|
export declare const _mockable: {
|
|
41
44
|
createNowTimestamp: () => FirebaseFirestore.Timestamp;
|
|
42
45
|
initActionRef: typeof initActionRef;
|
|
43
46
|
};
|
|
44
|
-
export
|
|
47
|
+
export interface InitializeEmberFlowOptions {
|
|
48
|
+
projectConfig: ProjectConfig;
|
|
49
|
+
admin: FirebaseAdmin;
|
|
50
|
+
dbStructure: Record<string, object>;
|
|
51
|
+
Entity: Record<string, string>;
|
|
52
|
+
securityConfigs: SecurityConfig[];
|
|
53
|
+
validatorConfigs: ValidatorConfig[];
|
|
54
|
+
logicConfigs: LogicConfig[];
|
|
55
|
+
patchLogicConfigs: PatchLogicConfig[];
|
|
56
|
+
cleanupConfigs?: CleanupConfig[];
|
|
57
|
+
backFillPatchConfigs?: BackFillPatchConfig[];
|
|
58
|
+
userRegisterFn?: UserRegisterFn;
|
|
59
|
+
}
|
|
60
|
+
export declare function initializeEmberFlow(options: InitializeEmberFlowOptions): {
|
|
45
61
|
docPaths: Record<string, string>;
|
|
46
62
|
colPaths: Record<string, string>;
|
|
47
63
|
docPathsRegex: Record<string, RegExp>;
|
package/lib/index.js
CHANGED
|
@@ -34,9 +34,10 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
34
34
|
return t;
|
|
35
35
|
};
|
|
36
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
-
exports.onUserRegister = exports.transformLogicResultDocIfNeeded = exports.onFormSubmit = exports.initializeEmberFlow = exports._mockable = exports.
|
|
37
|
+
exports.onUserRegister = exports.transformLogicResultDocIfNeeded = exports.onFormSubmit = exports.initializeEmberFlow = exports._mockable = exports.GROUP_PATCH_TOPIC = exports.INSTRUCTIONS_TOPIC = exports.FOR_DISTRIBUTION_TOPIC = exports.PATCH_LOGICS_TOPIC = exports.VIEW_LOGICS_TOPIC = exports.SUBMIT_FORM_TOPIC = exports.pubSubTopics = exports.GROUP_PATCH_TOPIC_NAME = exports.INSTRUCTIONS_TOPIC_NAME = exports.FOR_DISTRIBUTION_TOPIC_NAME = exports.PATCH_LOGICS_TOPIC_NAME = exports.VIEW_LOGICS_TOPIC_NAME = exports.SUBMIT_FORM_TOPIC_NAME = exports.functionsConfig = exports.projectConfig = exports.viewLogicConfigs = exports.entityViewDefinitions = exports.docPathsRegex = exports.colPaths = exports.docPaths = exports.backFillPatchConfigs = exports.cleanupConfigs = exports.patchLogicConfigs = exports.logicConfigs = exports.validatorConfigs = exports.securityConfigs = exports.Entity = exports.dbStructure = exports.pubsub = exports.rtdb = exports.db = exports.admin = exports.ancestorIdsPatchConfig = exports.getGroupPatchProgress = exports.queueGroupPatch = void 0;
|
|
38
38
|
const functions = __importStar(require("firebase-functions/v1"));
|
|
39
39
|
const index_utils_1 = require("./index-utils");
|
|
40
|
+
Object.defineProperty(exports, "ancestorIdsPatchConfig", { enumerable: true, get: function () { return index_utils_1.ancestorIdsPatchConfig; } });
|
|
40
41
|
const patch_logics_1 = require("./logics/patch-logics");
|
|
41
42
|
const init_db_structure_1 = require("./init-db-structure");
|
|
42
43
|
const view_logics_1 = require("./logics/view-logics");
|
|
@@ -50,8 +51,9 @@ const pubsub_1 = require("@google-cloud/pubsub");
|
|
|
50
51
|
const pubsub_2 = require("firebase-functions/v2/pubsub");
|
|
51
52
|
const misc_1 = require("./utils/misc");
|
|
52
53
|
const distribution_1 = require("./utils/distribution");
|
|
53
|
-
Object.defineProperty(exports, "
|
|
54
|
-
|
|
54
|
+
Object.defineProperty(exports, "getGroupPatchProgress", { enumerable: true, get: function () { return distribution_1.getGroupPatchProgress; } });
|
|
55
|
+
Object.defineProperty(exports, "queueGroupPatch", { enumerable: true, get: function () { return distribution_1.queueGroupPatch; } });
|
|
56
|
+
const cleanup_1 = require("./utils/cleanup");
|
|
55
57
|
const scheduler_1 = require("firebase-functions/v2/scheduler");
|
|
56
58
|
const firestore_1 = require("firebase-functions/v2/firestore");
|
|
57
59
|
const functions_1 = require("./utils/functions");
|
|
@@ -61,6 +63,8 @@ exports.securityConfigs = [];
|
|
|
61
63
|
exports.validatorConfigs = [];
|
|
62
64
|
exports.logicConfigs = [];
|
|
63
65
|
exports.patchLogicConfigs = [];
|
|
66
|
+
exports.cleanupConfigs = [];
|
|
67
|
+
exports.backFillPatchConfigs = [];
|
|
64
68
|
exports.docPaths = {};
|
|
65
69
|
exports.colPaths = {};
|
|
66
70
|
exports.docPathsRegex = {};
|
|
@@ -72,34 +76,43 @@ exports.VIEW_LOGICS_TOPIC_NAME = "view-logics-queue";
|
|
|
72
76
|
exports.PATCH_LOGICS_TOPIC_NAME = "patch-logics-queue";
|
|
73
77
|
exports.FOR_DISTRIBUTION_TOPIC_NAME = "for-distribution-queue";
|
|
74
78
|
exports.INSTRUCTIONS_TOPIC_NAME = "instructions-queue";
|
|
75
|
-
exports.
|
|
79
|
+
exports.GROUP_PATCH_TOPIC_NAME = "group-patch-queue";
|
|
76
80
|
exports.pubSubTopics = [
|
|
77
81
|
exports.SUBMIT_FORM_TOPIC_NAME,
|
|
78
82
|
exports.VIEW_LOGICS_TOPIC_NAME,
|
|
79
83
|
exports.PATCH_LOGICS_TOPIC_NAME,
|
|
80
84
|
exports.FOR_DISTRIBUTION_TOPIC_NAME,
|
|
81
85
|
exports.INSTRUCTIONS_TOPIC_NAME,
|
|
82
|
-
exports.
|
|
86
|
+
exports.GROUP_PATCH_TOPIC_NAME,
|
|
83
87
|
];
|
|
84
88
|
let userRegisterFn;
|
|
85
89
|
exports._mockable = {
|
|
86
90
|
createNowTimestamp: () => exports.admin.firestore.Timestamp.now(),
|
|
87
91
|
initActionRef,
|
|
88
92
|
};
|
|
89
|
-
function initializeEmberFlow(
|
|
90
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p
|
|
91
|
-
exports.projectConfig =
|
|
92
|
-
exports.admin =
|
|
93
|
+
function initializeEmberFlow(options) {
|
|
94
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
95
|
+
exports.projectConfig = options.projectConfig;
|
|
96
|
+
exports.admin = options.admin;
|
|
93
97
|
exports.db = exports.admin.firestore();
|
|
94
98
|
exports.rtdb = exports.admin.database();
|
|
95
99
|
exports.pubsub = new pubsub_1.PubSub();
|
|
96
|
-
exports.dbStructure = Object.assign(Object.assign({},
|
|
97
|
-
exports.Entity = Object.assign(Object.assign({},
|
|
98
|
-
exports.securityConfigs = [...
|
|
99
|
-
exports.validatorConfigs = [...
|
|
100
|
-
exports.logicConfigs = [...
|
|
101
|
-
exports.patchLogicConfigs = [...
|
|
102
|
-
|
|
100
|
+
exports.dbStructure = Object.assign(Object.assign({}, options.dbStructure), db_structure_1.internalDbStructure);
|
|
101
|
+
exports.Entity = Object.assign(Object.assign({}, options.Entity), db_structure_1.InternalEntity);
|
|
102
|
+
exports.securityConfigs = [...options.securityConfigs];
|
|
103
|
+
exports.validatorConfigs = [...options.validatorConfigs];
|
|
104
|
+
exports.logicConfigs = [...options.logicConfigs];
|
|
105
|
+
exports.patchLogicConfigs = [...options.patchLogicConfigs];
|
|
106
|
+
exports.cleanupConfigs = [...((_a = options.cleanupConfigs) !== null && _a !== void 0 ? _a : [])];
|
|
107
|
+
exports.backFillPatchConfigs = [index_utils_1.ancestorIdsPatchConfig, ...((_b = options.backFillPatchConfigs) !== null && _b !== void 0 ? _b : [])];
|
|
108
|
+
const backFillPatchNames = new Set();
|
|
109
|
+
for (const backFillPatchConfig of exports.backFillPatchConfigs) {
|
|
110
|
+
if (backFillPatchNames.has(backFillPatchConfig.name)) {
|
|
111
|
+
throw new Error(`Duplicate BackFillPatchConfig name "${backFillPatchConfig.name}"`);
|
|
112
|
+
}
|
|
113
|
+
backFillPatchNames.add(backFillPatchConfig.name);
|
|
114
|
+
}
|
|
115
|
+
userRegisterFn = options.userRegisterFn;
|
|
103
116
|
(0, lib_1.initClient)(exports.admin.app(), "service", "0.0.0");
|
|
104
117
|
(0, init_db_structure_1.initDbStructure)(exports.dbStructure, exports.Entity);
|
|
105
118
|
exports.SUBMIT_FORM_TOPIC = exports.pubsub.topic(exports.SUBMIT_FORM_TOPIC_NAME);
|
|
@@ -107,7 +120,7 @@ function initializeEmberFlow(customProjectConfig, adminInstance, customDbStructu
|
|
|
107
120
|
exports.PATCH_LOGICS_TOPIC = exports.pubsub.topic(exports.PATCH_LOGICS_TOPIC_NAME);
|
|
108
121
|
exports.FOR_DISTRIBUTION_TOPIC = exports.pubsub.topic(exports.FOR_DISTRIBUTION_TOPIC_NAME);
|
|
109
122
|
exports.INSTRUCTIONS_TOPIC = exports.pubsub.topic(exports.INSTRUCTIONS_TOPIC_NAME);
|
|
110
|
-
exports.
|
|
123
|
+
exports.GROUP_PATCH_TOPIC = exports.pubsub.topic(exports.GROUP_PATCH_TOPIC_NAME);
|
|
111
124
|
const { docPaths: dp, colPaths: cp, docPathsRegex: dbr, viewDefinitions: vd, entityViewDefinitions: evd, } = (0, init_db_structure_1.initDbStructure)(exports.dbStructure, exports.Entity);
|
|
112
125
|
exports.docPaths = dp;
|
|
113
126
|
exports.colPaths = cp;
|
|
@@ -134,30 +147,26 @@ function initializeEmberFlow(customProjectConfig, adminInstance, customDbStructu
|
|
|
134
147
|
if (process.env.NODE_ENV !== "test" || process.env.EMBERFLOW_FORCE_DB) {
|
|
135
148
|
allLogicNames.forEach(index_utils_1.createMetricLogicDoc);
|
|
136
149
|
}
|
|
137
|
-
exports.functionsConfig["onFormSubmit"] = (0, database_1.onValueCreated)(Object.assign({ ref: "forms/{userId}/{formId}", region: exports.projectConfig.region, memory: "512MiB", concurrency: 80, maxInstances: 20 }, (
|
|
150
|
+
exports.functionsConfig["onFormSubmit"] = (0, database_1.onValueCreated)(Object.assign({ ref: "forms/{userId}/{formId}", region: exports.projectConfig.region, memory: "512MiB", concurrency: 80, maxInstances: 20 }, (_c = exports.projectConfig.functionsConfig) === null || _c === void 0 ? void 0 : _c.onFormSubmit), (0, bill_protect_1.useBillProtect)(onFormSubmit));
|
|
138
151
|
exports.functionsConfig["onBudgetAlert"] =
|
|
139
152
|
functions.pubsub.topic(exports.projectConfig.budgetAlertTopicName).onPublish((message) => (0, bill_protect_1.stopBillingIfBudgetExceeded)(message));
|
|
140
|
-
exports.functionsConfig["onMessageSubmitFormQueue"] = (0, pubsub_2.onMessagePublished)(Object.assign({ topic: exports.SUBMIT_FORM_TOPIC_NAME, region: exports.projectConfig.region, memory: "512MiB", maxInstances: 5, timeoutSeconds: 540, retry: true }, (
|
|
141
|
-
exports.functionsConfig["onMessageViewLogicsQueue"] = (0, pubsub_2.onMessagePublished)(Object.assign({ topic: exports.VIEW_LOGICS_TOPIC_NAME, region: exports.projectConfig.region, memory: "512MiB", maxInstances: 5, timeoutSeconds: 540 }, (
|
|
142
|
-
exports.functionsConfig["onMessagePatchLogicsQueue"] = (0, pubsub_2.onMessagePublished)(Object.assign({ topic: exports.PATCH_LOGICS_TOPIC_NAME, region: exports.projectConfig.region, memory: "512MiB", maxInstances: 5, timeoutSeconds: 540 }, (
|
|
143
|
-
exports.functionsConfig["onMessageForDistributionQueue"] = (0, pubsub_2.onMessagePublished)(Object.assign({ topic: exports.FOR_DISTRIBUTION_TOPIC_NAME, region: exports.projectConfig.region, memory: "512MiB", maxInstances: 5, timeoutSeconds: 540 }, (
|
|
144
|
-
exports.functionsConfig["onMessageInstructionsQueue"] = (0, pubsub_2.onMessagePublished)(Object.assign({ topic: exports.INSTRUCTIONS_TOPIC_NAME, region: exports.projectConfig.region, memory: "512MiB", maxInstances: 20, concurrency: 80, timeoutSeconds: 540 }, (
|
|
153
|
+
exports.functionsConfig["onMessageSubmitFormQueue"] = (0, pubsub_2.onMessagePublished)(Object.assign({ topic: exports.SUBMIT_FORM_TOPIC_NAME, region: exports.projectConfig.region, memory: "512MiB", maxInstances: 5, timeoutSeconds: 540, retry: true }, (_d = exports.projectConfig.functionsConfig) === null || _d === void 0 ? void 0 : _d.onMessageSubmitFormQueue), forms_1.onMessageSubmitFormQueue);
|
|
154
|
+
exports.functionsConfig["onMessageViewLogicsQueue"] = (0, pubsub_2.onMessagePublished)(Object.assign({ topic: exports.VIEW_LOGICS_TOPIC_NAME, region: exports.projectConfig.region, memory: "512MiB", maxInstances: 5, timeoutSeconds: 540 }, (_e = exports.projectConfig.functionsConfig) === null || _e === void 0 ? void 0 : _e.onMessageViewLogicsQueue), view_logics_1.onMessageViewLogicsQueue);
|
|
155
|
+
exports.functionsConfig["onMessagePatchLogicsQueue"] = (0, pubsub_2.onMessagePublished)(Object.assign({ topic: exports.PATCH_LOGICS_TOPIC_NAME, region: exports.projectConfig.region, memory: "512MiB", maxInstances: 5, timeoutSeconds: 540 }, (_f = exports.projectConfig.functionsConfig) === null || _f === void 0 ? void 0 : _f.onMessagePatchLogicsQueue), patch_logics_1.onMessageRunPatchLogicsQueue);
|
|
156
|
+
exports.functionsConfig["onMessageForDistributionQueue"] = (0, pubsub_2.onMessagePublished)(Object.assign({ topic: exports.FOR_DISTRIBUTION_TOPIC_NAME, region: exports.projectConfig.region, memory: "512MiB", maxInstances: 5, timeoutSeconds: 540 }, (_g = exports.projectConfig.functionsConfig) === null || _g === void 0 ? void 0 : _g.onMessageForDistributionQueue), distribution_1.onMessageForDistributionQueue);
|
|
157
|
+
exports.functionsConfig["onMessageInstructionsQueue"] = (0, pubsub_2.onMessagePublished)(Object.assign({ topic: exports.INSTRUCTIONS_TOPIC_NAME, region: exports.projectConfig.region, memory: "512MiB", maxInstances: 20, concurrency: 80, timeoutSeconds: 540 }, (_h = exports.projectConfig.functionsConfig) === null || _h === void 0 ? void 0 : _h.onMessageInstructionsQueue), (0, functions_1.debounce)(distribution_1.onMessageInstructionsQueue, 200, 1000, {
|
|
145
158
|
reducerFn: distribution_1.instructionsReducer,
|
|
146
159
|
initialValueFactory: () => {
|
|
147
160
|
return new Map();
|
|
148
161
|
},
|
|
149
162
|
}));
|
|
150
|
-
exports.functionsConfig["
|
|
151
|
-
exports.functionsConfig["resetUsageStats"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "
|
|
152
|
-
exports.functionsConfig["
|
|
153
|
-
exports.functionsConfig["
|
|
154
|
-
exports.functionsConfig["
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
exports.functionsConfig["createMetricComputation"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "every 1 hours", region: exports.projectConfig.region, memory: "512MiB", timeoutSeconds: 540 }, (_p = exports.projectConfig.functionsConfig) === null || _p === void 0 ? void 0 : _p.createMetricComputation), index_utils_1.createMetricComputation);
|
|
158
|
-
exports.functionsConfig["onDeleteFunctions"] = (0, firestore_1.onDocumentCreated)(Object.assign({ document: "@server/delete/functions/{deleteFuncId}" }, (_q = exports.projectConfig.functionsConfig) === null || _q === void 0 ? void 0 : _q.onDeleteFunctions), index_utils_1.onDeleteFunction);
|
|
159
|
-
const onUserRegisterConfig = (_r = exports.projectConfig.functionsConfig) === null || _r === void 0 ? void 0 : _r.onUserRegister;
|
|
160
|
-
const _s = onUserRegisterConfig || {}, { memory, timeoutSeconds, minInstances, maxInstances, secrets } = _s, restConfig = __rest(_s, ["memory", "timeoutSeconds", "minInstances", "maxInstances", "secrets"]);
|
|
163
|
+
exports.functionsConfig["onMessageGroupPatchQueue"] = (0, pubsub_2.onMessagePublished)(Object.assign({ topic: exports.GROUP_PATCH_TOPIC_NAME, region: exports.projectConfig.region, memory: "512MiB", maxInstances: 5, timeoutSeconds: 540 }, (_j = exports.projectConfig.functionsConfig) === null || _j === void 0 ? void 0 : _j.onMessageGroupPatchQueue), distribution_1.onMessageGroupPatchQueue);
|
|
164
|
+
exports.functionsConfig["resetUsageStats"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "0 * * * *", region: exports.projectConfig.region, memory: "512MiB", timeoutSeconds: 540 }, (_k = exports.projectConfig.functionsConfig) === null || _k === void 0 ? void 0 : _k.resetUsageStats), bill_protect_1.resetUsageStats);
|
|
165
|
+
exports.functionsConfig["cleanupCollections"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "0 * * * *", region: exports.projectConfig.region, memory: "512MiB", timeoutSeconds: 540 }, (_l = exports.projectConfig.functionsConfig) === null || _l === void 0 ? void 0 : _l.cleanupCollections), cleanup_1.cleanupCollections);
|
|
166
|
+
exports.functionsConfig["createMetricComputation"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "0 * * * *", region: exports.projectConfig.region, memory: "512MiB", timeoutSeconds: 540 }, (_m = exports.projectConfig.functionsConfig) === null || _m === void 0 ? void 0 : _m.createMetricComputation), index_utils_1.createMetricComputation);
|
|
167
|
+
exports.functionsConfig["onDeleteFunctions"] = (0, firestore_1.onDocumentCreated)(Object.assign({ document: "@server/delete/functions/{deleteFuncId}" }, (_o = exports.projectConfig.functionsConfig) === null || _o === void 0 ? void 0 : _o.onDeleteFunctions), index_utils_1.onDeleteFunction);
|
|
168
|
+
const onUserRegisterConfig = (_p = exports.projectConfig.functionsConfig) === null || _p === void 0 ? void 0 : _p.onUserRegister;
|
|
169
|
+
const _q = onUserRegisterConfig || {}, { memory, timeoutSeconds, minInstances, maxInstances, secrets } = _q, restConfig = __rest(_q, ["memory", "timeoutSeconds", "minInstances", "maxInstances", "secrets"]);
|
|
161
170
|
exports.functionsConfig["onUserRegister"] =
|
|
162
171
|
functions.runWith(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (memory ? { memory: memory.replace("MiB", "") } : {})), (timeoutSeconds ? { timeoutSeconds } : {})), (minInstances ? { minInstances } : {})), (maxInstances ? { maxInstances } : {})), { secrets: secrets || [] }), restConfig)).auth.user().onCreate(exports.onUserRegister);
|
|
163
172
|
return { docPaths: exports.docPaths, colPaths: exports.colPaths, docPathsRegex: exports.docPathsRegex, entityViewDefinitions: exports.entityViewDefinitions, functionsConfig: exports.functionsConfig };
|