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.
Files changed (72) hide show
  1. package/README.md +340 -4
  2. package/firestore.indexes.json +35 -0
  3. package/lib/bin/merge-indexes.d.ts +13 -0
  4. package/lib/bin/merge-indexes.js +141 -0
  5. package/lib/bin/merge-indexes.js.map +1 -0
  6. package/lib/index-utils.d.ts +18 -7
  7. package/lib/index-utils.js +70 -75
  8. package/lib/index-utils.js.map +1 -1
  9. package/lib/index.d.ts +22 -6
  10. package/lib/index.js +43 -34
  11. package/lib/index.js.map +1 -1
  12. package/lib/logics/view-logics.d.ts +0 -2
  13. package/lib/logics/view-logics.js +1 -19
  14. package/lib/logics/view-logics.js.map +1 -1
  15. package/lib/sample-custom/cleanup-configs.d.ts +2 -0
  16. package/lib/sample-custom/cleanup-configs.js +17 -0
  17. package/lib/sample-custom/cleanup-configs.js.map +1 -0
  18. package/lib/sample-custom/index.js +14 -1
  19. package/lib/sample-custom/index.js.map +1 -1
  20. package/lib/sample-custom/one-time-patches.d.ts +2 -0
  21. package/lib/sample-custom/one-time-patches.js +14 -0
  22. package/lib/sample-custom/one-time-patches.js.map +1 -0
  23. package/lib/tests/bin/merge-indexes.test.d.ts +1 -0
  24. package/lib/tests/bin/merge-indexes.test.js +153 -0
  25. package/lib/tests/bin/merge-indexes.test.js.map +1 -0
  26. package/lib/tests/index-utils.test.js +345 -85
  27. package/lib/tests/index-utils.test.js.map +1 -1
  28. package/lib/tests/index.test.js +33 -5
  29. package/lib/tests/index.test.js.map +1 -1
  30. package/lib/tests/logics/patch-logics.test.js +50 -5
  31. package/lib/tests/logics/patch-logics.test.js.map +1 -1
  32. package/lib/tests/logics/view-logics.test.js +22 -4
  33. package/lib/tests/logics/view-logics.test.js.map +1 -1
  34. package/lib/tests/utils/cleanup.test.d.ts +1 -0
  35. package/lib/tests/utils/cleanup.test.js +243 -0
  36. package/lib/tests/utils/cleanup.test.js.map +1 -0
  37. package/lib/tests/utils/distribution.test.js +256 -1
  38. package/lib/tests/utils/distribution.test.js.map +1 -1
  39. package/lib/tests/utils/firestore-indexes.test.d.ts +1 -0
  40. package/lib/tests/utils/firestore-indexes.test.js +125 -0
  41. package/lib/tests/utils/firestore-indexes.test.js.map +1 -0
  42. package/lib/tests/utils/forms.test.js +10 -86
  43. package/lib/tests/utils/forms.test.js.map +1 -1
  44. package/lib/tests/utils/misc.test.js +96 -2
  45. package/lib/tests/utils/misc.test.js.map +1 -1
  46. package/lib/tests/utils/paths.test.js +20 -2
  47. package/lib/tests/utils/paths.test.js.map +1 -1
  48. package/lib/tests/utils/pubsub.test.js +10 -31
  49. package/lib/tests/utils/pubsub.test.js.map +1 -1
  50. package/lib/types.d.ts +51 -2
  51. package/lib/utils/cleanup.d.ts +5 -0
  52. package/lib/utils/cleanup.js +99 -0
  53. package/lib/utils/cleanup.js.map +1 -0
  54. package/lib/utils/distribution.d.ts +17 -3
  55. package/lib/utils/distribution.js +61 -23
  56. package/lib/utils/distribution.js.map +1 -1
  57. package/lib/utils/firestore-indexes.d.ts +36 -0
  58. package/lib/utils/firestore-indexes.js +80 -0
  59. package/lib/utils/firestore-indexes.js.map +1 -0
  60. package/lib/utils/forms.d.ts +0 -2
  61. package/lib/utils/forms.js +1 -35
  62. package/lib/utils/forms.js.map +1 -1
  63. package/lib/utils/misc.d.ts +1 -0
  64. package/lib/utils/misc.js +32 -1
  65. package/lib/utils/misc.js.map +1 -1
  66. package/lib/utils/pubsub.d.ts +0 -2
  67. package/lib/utils/pubsub.js +1 -16
  68. package/lib/utils/pubsub.js.map +1 -1
  69. package/package.json +6 -2
  70. package/src/sample-custom/cleanup-configs.ts +15 -0
  71. package/src/sample-custom/index.ts +15 -11
  72. package/src/sample-custom/one-time-patches.ts +13 -0
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.patchSiblingsWithAncestorIds = exports.distributeFnTransactional = exports.cleanMetricComputations = exports.createMetricComputation = exports.cleanMetricExecutions = 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;
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
- * Internal logic for patching siblings. Exported for background worker.
594
- * @param {string} collectionPath The path to the collection to patch.
595
- * @param {string} lastPatchedId The ID of the last document patched in the previous batch.
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
- async function patchSiblingsWithAncestorIds(collectionPath, lastPatchedId) {
598
- const patchStatusPath = `@emberflow/internal/group-query-patches/${collectionPath.replace(/\//g, "_")}`;
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(`[AncestorIdsPatch] Patching siblings for collection: ${collectionPath}${effectiveLastId ? ` starting from ${effectiveLastId}` : ""}`);
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 siblingsSnapshot = await query.limit(500).get();
613
- if (siblingsSnapshot.empty) {
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(`[AncestorIdsPatch] Completed patching for collection: ${collectionPath}`);
610
+ console.info(`[GroupPatch] Completed patching for collection: ${collectionPath}`);
620
611
  return;
621
612
  }
622
- const currentBatch = index_1.db.batch();
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 (count > 0) {
641
- await currentBatch.commit();
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)) + count;
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: "processing",
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(`[AncestorIdsPatch] Batch Complete: Patched ${count} siblings for collection: ${collectionPath}. Total patched so far: ${totalPatched}. Rescheduling next batch...`);
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.queueAncestorIdsPatch)(collectionPath, lastId);
646
+ await (0, distribution_1.queueGroupPatch)({ path: collectionPath, patchType, backFillPatchName, appVersion, lastPatchedId: lastId });
654
647
  }
655
648
  catch (error) {
656
- console.error(`[AncestorIdsPatch] Error in patchSiblingsWithAncestorIds for ${collectionPath}:`, 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.patchSiblingsWithAncestorIds = patchSiblingsWithAncestorIds;
664
+ exports.patchGroupDocs = patchGroupDocs;
670
665
  //# sourceMappingURL=index-utils.js.map
@@ -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 { queueAncestorIdsPatch } from "./utils/distribution";
7
+ import { getGroupPatchProgress, queueGroupPatch } from "./utils/distribution";
7
8
  import { UserRecord } from "firebase-admin/lib/auth";
8
9
  import Database = database.Database;
9
- export { queueAncestorIdsPatch };
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 ANCESTOR_IDS_PATCH_TOPIC_NAME = "ancestor-ids-patch-queue";
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 ANCESTOR_IDS_PATCH_TOPIC: Topic;
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 declare function initializeEmberFlow(customProjectConfig: ProjectConfig, adminInstance: FirebaseAdmin, customDbStructure: Record<string, object>, CustomEntity: Record<string, string>, customSecurityConfigs: SecurityConfig[], customValidatorConfigs: ValidatorConfig[], customLogicConfigs: LogicConfig[], customPatchLogicConfigs: PatchLogicConfig[], customUserRegisterFn?: UserRegisterFn): {
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.ANCESTOR_IDS_PATCH_TOPIC = exports.INSTRUCTIONS_TOPIC = exports.FOR_DISTRIBUTION_TOPIC = exports.PATCH_LOGICS_TOPIC = exports.VIEW_LOGICS_TOPIC = exports.SUBMIT_FORM_TOPIC = exports.pubSubTopics = exports.ANCESTOR_IDS_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.patchLogicConfigs = exports.logicConfigs = exports.validatorConfigs = exports.securityConfigs = exports.Entity = exports.dbStructure = exports.pubsub = exports.rtdb = exports.db = exports.admin = exports.queueAncestorIdsPatch = void 0;
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, "queueAncestorIdsPatch", { enumerable: true, get: function () { return distribution_1.queueAncestorIdsPatch; } });
54
- const pubsub_3 = require("./utils/pubsub");
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.ANCESTOR_IDS_PATCH_TOPIC_NAME = "ancestor-ids-patch-queue";
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.ANCESTOR_IDS_PATCH_TOPIC_NAME,
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(customProjectConfig, adminInstance, customDbStructure, CustomEntity, customSecurityConfigs, customValidatorConfigs, customLogicConfigs, customPatchLogicConfigs, customUserRegisterFn) {
90
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
91
- exports.projectConfig = customProjectConfig;
92
- exports.admin = adminInstance;
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({}, customDbStructure), db_structure_1.internalDbStructure);
97
- exports.Entity = Object.assign(Object.assign({}, CustomEntity), db_structure_1.InternalEntity);
98
- exports.securityConfigs = [...customSecurityConfigs];
99
- exports.validatorConfigs = [...customValidatorConfigs];
100
- exports.logicConfigs = [...customLogicConfigs];
101
- exports.patchLogicConfigs = [...customPatchLogicConfigs];
102
- userRegisterFn = customUserRegisterFn;
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.ANCESTOR_IDS_PATCH_TOPIC = exports.pubsub.topic(exports.ANCESTOR_IDS_PATCH_TOPIC_NAME);
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 }, (_a = exports.projectConfig.functionsConfig) === null || _a === void 0 ? void 0 : _a.onFormSubmit), (0, bill_protect_1.useBillProtect)(onFormSubmit));
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 }, (_b = exports.projectConfig.functionsConfig) === null || _b === void 0 ? void 0 : _b.onMessageSubmitFormQueue), forms_1.onMessageSubmitFormQueue);
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 }, (_c = exports.projectConfig.functionsConfig) === null || _c === void 0 ? void 0 : _c.onMessageViewLogicsQueue), view_logics_1.onMessageViewLogicsQueue);
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 }, (_d = exports.projectConfig.functionsConfig) === null || _d === void 0 ? void 0 : _d.onMessagePatchLogicsQueue), patch_logics_1.onMessageRunPatchLogicsQueue);
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 }, (_e = exports.projectConfig.functionsConfig) === null || _e === void 0 ? void 0 : _e.onMessageForDistributionQueue), distribution_1.onMessageForDistributionQueue);
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 }, (_f = exports.projectConfig.functionsConfig) === null || _f === void 0 ? void 0 : _f.onMessageInstructionsQueue), (0, functions_1.debounce)(distribution_1.onMessageInstructionsQueue, 200, 1000, {
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["onMessageAncestorIdsPatchQueue"] = (0, pubsub_2.onMessagePublished)(Object.assign({ topic: exports.ANCESTOR_IDS_PATCH_TOPIC_NAME, region: exports.projectConfig.region, memory: "512MiB", maxInstances: 5, timeoutSeconds: 540 }, (_g = exports.projectConfig.functionsConfig) === null || _g === void 0 ? void 0 : _g.onMessageAncestorIdsPatchQueue), distribution_1.onMessageAncestorIdsPatchQueue);
151
- exports.functionsConfig["resetUsageStats"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "every 1 hours", region: exports.projectConfig.region, memory: "512MiB", timeoutSeconds: 540 }, (_h = exports.projectConfig.functionsConfig) === null || _h === void 0 ? void 0 : _h.resetUsageStats), bill_protect_1.resetUsageStats);
152
- exports.functionsConfig["cleanPubSubProcessedIds"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "every 1 hours", region: exports.projectConfig.region, memory: "512MiB", timeoutSeconds: 540 }, (_j = exports.projectConfig.functionsConfig) === null || _j === void 0 ? void 0 : _j.cleanPubSubProcessedIds), pubsub_3.cleanPubSubProcessedIds);
153
- exports.functionsConfig["cleanMetricComputations"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "every 24 hours", region: exports.projectConfig.region, memory: "512MiB", timeoutSeconds: 540 }, (_k = exports.projectConfig.functionsConfig) === null || _k === void 0 ? void 0 : _k.cleanMetricComputations), index_utils_1.cleanMetricComputations);
154
- exports.functionsConfig["cleanMetricExecutions"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "every 24 hours", region: exports.projectConfig.region, memory: "512MiB", timeoutSeconds: 540 }, (_l = exports.projectConfig.functionsConfig) === null || _l === void 0 ? void 0 : _l.cleanMetricExecutions), index_utils_1.cleanMetricExecutions);
155
- exports.functionsConfig["cleanActionsAndForms"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "every 24 hours", region: exports.projectConfig.region, memory: "512MiB", timeoutSeconds: 540 }, (_m = exports.projectConfig.functionsConfig) === null || _m === void 0 ? void 0 : _m.cleanActionsAndForms), forms_1.cleanActionsAndForms);
156
- exports.functionsConfig["cleanViewLogicExecutions"] = (0, scheduler_1.onSchedule)(Object.assign({ schedule: "every 24 hours", region: exports.projectConfig.region, memory: "512MiB", timeoutSeconds: 540 }, (_o = exports.projectConfig.functionsConfig) === null || _o === void 0 ? void 0 : _o.cleanViewLogicExecutions), view_logics_1.cleanViewLogicExecutions);
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 };