emberflow 1.0.19 → 1.0.21

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 (36) hide show
  1. package/lib/index-utils.d.ts +6 -6
  2. package/lib/index-utils.js +29 -59
  3. package/lib/index-utils.js.map +1 -1
  4. package/lib/index.d.ts +7 -3
  5. package/lib/index.js +96 -93
  6. package/lib/index.js.map +1 -1
  7. package/lib/sample-custom/business-logics.js +3 -3
  8. package/lib/sample-custom/business-logics.js.map +1 -1
  9. package/lib/sample-custom/db-structure.d.ts +13 -1
  10. package/lib/sample-custom/db-structure.js +13 -0
  11. package/lib/sample-custom/db-structure.js.map +1 -1
  12. package/lib/sample-custom/security.js +2 -2
  13. package/lib/sample-custom/security.js.map +1 -1
  14. package/lib/sample-custom/validators.js +2 -4
  15. package/lib/sample-custom/validators.js.map +1 -1
  16. package/lib/tests/index-utils.test.js +65 -149
  17. package/lib/tests/index-utils.test.js.map +1 -1
  18. package/lib/tests/index.test.js +167 -279
  19. package/lib/tests/index.test.js.map +1 -1
  20. package/lib/tests/utils/bill-protect.test.js +7 -11
  21. package/lib/tests/utils/bill-protect.test.js.map +1 -1
  22. package/lib/tests/utils/paths.test.js +5 -1
  23. package/lib/tests/utils/paths.test.js.map +1 -1
  24. package/lib/types.d.ts +13 -3
  25. package/lib/utils/db-structure.d.ts +1 -1
  26. package/lib/utils/db-structure.js +1 -1
  27. package/lib/utils/db-structure.js.map +1 -1
  28. package/lib/utils/paths.d.ts +5 -0
  29. package/lib/utils/paths.js +9 -1
  30. package/lib/utils/paths.js.map +1 -1
  31. package/package.json +2 -2
  32. package/src/sample-custom/business-logics.ts +4 -3
  33. package/src/sample-custom/db-structure.ts +13 -0
  34. package/src/sample-custom/firestore.rules +2 -1
  35. package/src/sample-custom/security.ts +2 -2
  36. package/src/sample-custom/validators.ts +2 -4
@@ -1,16 +1,16 @@
1
1
  import { Action, LogicActionType, LogicResult, LogicResultDoc, SecurityFn, ValidateFormResult } from "./types";
2
- import { firestore } from "firebase-admin";
3
- import DocumentData = firestore.DocumentData;
2
+ import { database, firestore } from "firebase-admin";
4
3
  import QueryDocumentSnapshot = firestore.QueryDocumentSnapshot;
4
+ import DocumentData = FirebaseFirestore.DocumentData;
5
+ import Reference = database.Reference;
5
6
  export declare const _mockable: {
6
7
  getViewLogicsConfig: () => import("./types").ViewLogicConfig[];
7
8
  createNowTimestamp: () => firestore.Timestamp;
8
9
  };
9
10
  export declare function distribute(docsByDstPath: Map<string, LogicResultDoc>): Promise<void>;
10
- export declare function revertModificationsOutsideForm(document: FirebaseFirestore.DocumentData, beforeDocument: FirebaseFirestore.DocumentData | null | undefined, snapshot: FirebaseFirestore.DocumentSnapshot): Promise<void>;
11
- export declare function validateForm(entity: string, document: FirebaseFirestore.DocumentData, docPath: string): Promise<ValidateFormResult>;
12
- export declare function getFormModifiedFields(document: DocumentData): string[];
13
- export declare function delayFormSubmissionAndCheckIfCancelled(delay: number, snapshot: firestore.DocumentSnapshot): Promise<boolean>;
11
+ export declare function validateForm(entity: string, form: FirebaseFirestore.DocumentData): Promise<ValidateFormResult>;
12
+ export declare function getFormModifiedFields(form: DocumentData, document: DocumentData): string[];
13
+ export declare function delayFormSubmissionAndCheckIfCancelled(delay: number, formResponseRef: Reference): Promise<boolean>;
14
14
  export declare function runBusinessLogics(actionType: LogicActionType, formModifiedFields: string[], entity: string, action: Action): Promise<LogicResult[]>;
15
15
  export declare function groupDocsByUserAndDstPath(docsByDstPath: Map<string, LogicResultDoc>, userId: string): {
16
16
  userDocsByDstPath: Map<string, LogicResultDoc>;
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.onDeleteFunction = exports.processScheduledEntities = exports.runPeerSyncViews = exports.runViewLogics = exports.consolidateAndGroupByDstPath = exports.getSecurityFn = exports.groupDocsByUserAndDstPath = exports.runBusinessLogics = exports.delayFormSubmissionAndCheckIfCancelled = exports.getFormModifiedFields = exports.validateForm = exports.revertModificationsOutsideForm = exports.distribute = exports._mockable = void 0;
26
+ exports.onDeleteFunction = exports.processScheduledEntities = exports.runPeerSyncViews = exports.runViewLogics = exports.consolidateAndGroupByDstPath = exports.getSecurityFn = exports.groupDocsByUserAndDstPath = exports.runBusinessLogics = exports.delayFormSubmissionAndCheckIfCancelled = exports.getFormModifiedFields = exports.validateForm = exports.distribute = exports._mockable = void 0;
27
27
  const index_1 = require("./index");
28
28
  const view_logics_1 = require("./logics/view-logics");
29
29
  const paths_1 = require("./utils/paths");
@@ -34,19 +34,7 @@ exports._mockable = {
34
34
  getViewLogicsConfig: () => index_1.viewLogicConfigs,
35
35
  createNowTimestamp: () => index_1.admin.firestore.Timestamp.now(),
36
36
  };
37
- async function commitBatchIfNeeded(batch, db, writeCount) {
38
- writeCount++; // Increment writeCount for each write operation
39
- if (writeCount === 500) { // Commit batch every 500 writes
40
- console.log("Committing batch of 500 writes...");
41
- await batch.commit();
42
- batch = db.batch();
43
- writeCount = 0;
44
- }
45
- return [batch, writeCount];
46
- }
47
37
  async function distribute(docsByDstPath) {
48
- let batch = index_1.db.batch();
49
- let writeCount = 0;
50
38
  const forCopy = [];
51
39
  for (const dstPath of Array.from(docsByDstPath.keys()).sort()) {
52
40
  console.log(`Documents for path ${dstPath}:`);
@@ -60,8 +48,7 @@ async function distribute(docsByDstPath) {
60
48
  else if (action === "delete") {
61
49
  // Delete document at dstPath
62
50
  const dstDocRef = index_1.db.doc(dstPath);
63
- batch.delete(dstDocRef);
64
- [batch, writeCount] = await commitBatchIfNeeded(batch, index_1.db, writeCount);
51
+ await batch.deleteDoc(dstDocRef);
65
52
  console.log(`Document deleted at ${dstPath}`);
66
53
  }
67
54
  else if (action === "merge") {
@@ -99,16 +86,13 @@ async function distribute(docsByDstPath) {
99
86
  }
100
87
  // Merge document to dstPath
101
88
  const dstDocRef = index_1.db.doc(dstPath);
102
- batch.set(dstDocRef, updateData, { merge: true });
103
- [batch, writeCount] = await commitBatchIfNeeded(batch, index_1.db, writeCount);
89
+ await batch.set(dstDocRef, updateData);
104
90
  console.log(`Document merged to ${dstPath}`);
105
91
  }
106
92
  }
107
- // TODO: Let's use the batch utils
108
- if (writeCount > 0) {
109
- console.log(`Committing final batch of ${writeCount} writes...`);
93
+ if (batch.writeCount > 0) {
94
+ console.log(`Committing final batch of ${batch.writeCount} writes...`);
110
95
  await batch.commit();
111
- writeCount = 0;
112
96
  }
113
97
  // Do copy after all other operations
114
98
  for (const resultDoc of forCopy) {
@@ -118,8 +102,12 @@ async function distribute(docsByDstPath) {
118
102
  }
119
103
  const srcDocRef = index_1.db.doc(srcPath);
120
104
  const dstDocRef = index_1.db.doc(dstPath);
121
- batch.set(dstDocRef, (await srcDocRef.get()).data());
122
- [batch, writeCount] = await commitBatchIfNeeded(batch, index_1.db, writeCount);
105
+ const srcData = (await srcDocRef.get()).data();
106
+ if (!srcData) {
107
+ console.warn("Copy src doesn't exists");
108
+ continue;
109
+ }
110
+ await batch.set(dstDocRef, srcData);
123
111
  console.log(`Document copied from ${srcPath} to ${dstPath}`);
124
112
  if (copyMode === "recursive") {
125
113
  const subDocPaths = (0, paths_1.expandAndGroupDocPaths)(srcPath);
@@ -132,41 +120,26 @@ async function distribute(docsByDstPath) {
132
120
  for (const path of pathsToCopy) {
133
121
  const srcDocRef = index_1.db.doc(path);
134
122
  const dstDocRef = index_1.db.doc(path.replace(srcPath, dstPath));
135
- batch.set(dstDocRef, (await srcDocRef.get()).data());
136
- [batch, writeCount] = await commitBatchIfNeeded(batch, index_1.db, writeCount);
123
+ const srcData = (await srcDocRef.get()).data();
124
+ if (!srcData) {
125
+ console.warn("Copy src doesn't exists");
126
+ continue;
127
+ }
128
+ await batch.set(dstDocRef, srcData);
137
129
  console.log(`Document copied from ${path} to ${dstDocRef.path}`);
138
130
  }
139
131
  }
140
132
  }
141
- if (writeCount > 0) {
142
- console.log(`Committing final batch of ${writeCount} writes...`);
133
+ if (batch.writeCount > 0) {
134
+ console.log(`Committing final batch of ${batch.writeCount} writes...`);
143
135
  await batch.commit();
144
- writeCount = 0;
145
136
  }
146
137
  }
147
138
  exports.distribute = distribute;
148
- async function revertModificationsOutsideForm(document, beforeDocument, snapshot) {
149
- // Revert any changes made to document other than @form
150
- const revertedValues = {};
151
- if (beforeDocument) {
152
- const modifiedFields = Object.keys(document !== null && document !== void 0 ? document : {}).filter((key) => !key.startsWith("@form"));
153
- modifiedFields.forEach((field) => {
154
- if (!(0, misc_1.deepEqual)(document === null || document === void 0 ? void 0 : document[field], beforeDocument[field])) {
155
- revertedValues[field] = beforeDocument[field];
156
- }
157
- });
158
- }
159
- // if revertedValues is not empty, update the document
160
- if (Object.keys(revertedValues).length > 0) {
161
- console.log("Reverting document:\n", revertedValues);
162
- await snapshot.ref.update(revertedValues);
163
- }
164
- }
165
- exports.revertModificationsOutsideForm = revertModificationsOutsideForm;
166
- async function validateForm(entity, document, docPath) {
139
+ async function validateForm(entity, form) {
167
140
  let hasValidationError = false;
168
141
  const validate = index_1.validatorConfig[entity];
169
- const validationResult = await validate(document, docPath);
142
+ const validationResult = await validate(form);
170
143
  // Check if validation failed
171
144
  if (validationResult && Object.keys(validationResult).length > 0) {
172
145
  console.log(`Document validation failed: ${JSON.stringify(validationResult)}`);
@@ -175,25 +148,22 @@ async function validateForm(entity, document, docPath) {
175
148
  return [hasValidationError, validationResult];
176
149
  }
177
150
  exports.validateForm = validateForm;
178
- function getFormModifiedFields(document) {
179
- var _a;
180
- const formFields = Object.keys((_a = document === null || document === void 0 ? void 0 : document["@form"]) !== null && _a !== void 0 ? _a : {}).filter((key) => !key.startsWith("@"));
181
- // compare value of each @form field with the value of the same field in the document to get modified fields
182
- return formFields.filter((field) => { var _a; return !(0, misc_1.deepEqual)(document === null || document === void 0 ? void 0 : document[field], (_a = document === null || document === void 0 ? void 0 : document["@form"]) === null || _a === void 0 ? void 0 : _a[field]); });
151
+ function getFormModifiedFields(form, document) {
152
+ const formFields = Object.keys(form).filter((key) => !key.startsWith("@"));
153
+ return formFields.filter((field) => !(0, misc_1.deepEqual)(document[field], form[field]));
183
154
  }
184
155
  exports.getFormModifiedFields = getFormModifiedFields;
185
- async function delayFormSubmissionAndCheckIfCancelled(delay, snapshot) {
186
- var _a;
156
+ async function delayFormSubmissionAndCheckIfCancelled(delay, formResponseRef) {
187
157
  let cancelFormSubmission = false;
188
158
  console.log(`Delaying document for ${delay}ms...`);
189
- await snapshot.ref.update({ "@form.@status": "delay" });
159
+ await formResponseRef.update({ "@status": "delay" });
190
160
  await new Promise((resolve) => setTimeout(resolve, delay));
191
161
  // Re-fetch document from Firestore
192
- const updatedSnapshot = await snapshot.ref.get();
193
- const updatedDocument = updatedSnapshot.data();
162
+ const updatedSnapshot = await formResponseRef.get();
163
+ const updatedDocument = updatedSnapshot.val();
194
164
  console.log("Re-fetched document from Firestore after delay:\n", updatedDocument);
195
165
  // Check if form status is "cancel"
196
- if (((_a = updatedDocument === null || updatedDocument === void 0 ? void 0 : updatedDocument["@form"]) === null || _a === void 0 ? void 0 : _a["@status"]) === "cancel") {
166
+ if (updatedDocument["@status"] === "cancel") {
197
167
  cancelFormSubmission = true;
198
168
  }
199
169
  return cancelFormSubmission;
@@ -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,8 +1,12 @@
1
1
  import * as functions from "firebase-functions";
2
- import { FirebaseAdmin, LogicConfig, ProjectConfig, SecurityConfig, ValidatorConfig, ViewLogicConfig } from "./types";
2
+ import { EventContext, FirebaseAdmin, LogicConfig, ProjectConfig, SecurityConfig, ValidatorConfig, ViewLogicConfig } from "./types";
3
3
  import { Firestore } from "firebase-admin/firestore";
4
+ import { DataSnapshot } from "firebase-functions/lib/v2/providers/database";
5
+ import { database } from "firebase-admin";
6
+ import Database = database.Database;
4
7
  export declare let admin: FirebaseAdmin;
5
8
  export declare let db: Firestore;
9
+ export declare let rtdb: Database;
6
10
  export declare let dbStructure: Record<string, object>;
7
11
  export declare let Entity: Record<string, string>;
8
12
  export declare let securityConfig: SecurityConfig;
@@ -18,12 +22,12 @@ export declare const _mockable: {
18
22
  createNowTimestamp: () => FirebaseFirestore.Timestamp;
19
23
  initActionRef: typeof initActionRef;
20
24
  };
21
- export declare function initializeEmberFlow(customProjectConfig: ProjectConfig, adminInstance: FirebaseAdmin, customDbStructure: Record<string, object>, CustomEntity: Record<string, string>, customSecurityConfig: SecurityConfig, customValidatorConfig: ValidatorConfig, customLogicConfigs: LogicConfig[], onlyFunctions?: string[]): {
25
+ export declare function initializeEmberFlow(customProjectConfig: ProjectConfig, adminInstance: FirebaseAdmin, customDbStructure: Record<string, object>, CustomEntity: Record<string, string>, customSecurityConfig: SecurityConfig, customValidatorConfig: ValidatorConfig, customLogicConfigs: LogicConfig[]): {
22
26
  docPaths: Record<string, string>;
23
27
  colPaths: Record<string, string>;
24
28
  docPathsRegex: Record<string, RegExp>;
25
29
  functionsConfig: Record<string, any>;
26
30
  };
27
31
  declare function initActionRef(eventId: string): Promise<FirebaseFirestore.DocumentReference<FirebaseFirestore.DocumentData>>;
28
- export declare function onDocChange(funcName: string, entity: string, change: functions.Change<functions.firestore.DocumentSnapshot | null>, context: functions.EventContext, event: "create" | "update" | "delete"): Promise<void>;
32
+ export declare function onDocChange(funcName: string, entity: string, change: functions.Change<DataSnapshot | undefined>, eventContext: EventContext, event: "create" | "update" | "delete"): Promise<void>;
29
33
  export {};
package/lib/index.js CHANGED
@@ -34,21 +34,24 @@ var __rest = (this && this.__rest) || function (s, e) {
34
34
  return t;
35
35
  };
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.onDocChange = 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.db = exports.admin = void 0;
37
+ exports.onDocChange = 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;
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");
41
41
  const view_logics_1 = require("./logics/view-logics");
42
42
  const bill_protect_1 = require("./utils/bill-protect");
43
+ const database_1 = require("firebase-functions/lib/v2/providers/database");
44
+ const paths_1 = require("./utils/paths");
43
45
  exports.functionsConfig = {};
44
46
  exports._mockable = {
45
47
  createNowTimestamp: () => exports.admin.firestore.Timestamp.now(),
46
48
  initActionRef,
47
49
  };
48
- function initializeEmberFlow(customProjectConfig, adminInstance, customDbStructure, CustomEntity, customSecurityConfig, customValidatorConfig, customLogicConfigs, onlyFunctions) {
50
+ function initializeEmberFlow(customProjectConfig, adminInstance, customDbStructure, CustomEntity, customSecurityConfig, customValidatorConfig, customLogicConfigs) {
49
51
  exports.projectConfig = customProjectConfig;
50
52
  exports.admin = adminInstance;
51
53
  exports.db = exports.admin.firestore();
54
+ exports.rtdb = exports.admin.database();
52
55
  exports.dbStructure = customDbStructure;
53
56
  exports.Entity = CustomEntity;
54
57
  exports.securityConfig = customSecurityConfig;
@@ -67,141 +70,142 @@ function initializeEmberFlow(customProjectConfig, adminInstance, customDbStructu
67
70
  };
68
71
  });
69
72
  const _onDocChange = (0, bill_protect_1.useBillProtect)(onDocChange);
70
- Object.values(exports.docPaths).forEach((path) => {
71
- const parts = path.split("/");
72
- const entity = parts[parts.length - 1].replace(/{(\w+)Id}$/, "$1");
73
- const onCreateFuncName = `on${entity.charAt(0).toUpperCase() + entity.slice(1)}Create`;
74
- if (!onlyFunctions || onlyFunctions.includes(onCreateFuncName)) {
75
- exports.functionsConfig[onCreateFuncName] = functions.firestore
76
- .document(path)
77
- .onCreate(async (snapshot, context) => {
78
- await _onDocChange(onCreateFuncName, entity, { before: null, after: snapshot }, context, "create");
79
- });
73
+ exports.functionsConfig["onFormCreate"] = (0, database_1.onValueCreated)({
74
+ ref: "forms/{userId}/{formId}",
75
+ region: exports.projectConfig.region,
76
+ instance: exports.projectConfig.rtdbName,
77
+ }, async (event) => {
78
+ const snapshot = event.data;
79
+ if (!snapshot) {
80
+ console.log("Snapshot is undefined onValueCreated. Returning");
81
+ return;
80
82
  }
81
- const onEditFuncName = `on${entity.charAt(0).toUpperCase() + entity.slice(1)}Update`;
82
- if (!onlyFunctions || onlyFunctions.includes(onCreateFuncName)) {
83
- exports.functionsConfig[onEditFuncName] = functions.firestore
84
- .document(path)
85
- .onUpdate(async (change, context) => {
86
- await _onDocChange(onEditFuncName, entity, change, context, "update");
87
- });
83
+ const { userId, formId } = event.params;
84
+ // Get user id from path
85
+ const docPath = snapshot.val()["@docPath"];
86
+ const { userId: docPathUserId, entity, docId } = (0, paths_1.parseUserAndEntity)(docPath);
87
+ if (docPathUserId !== userId) {
88
+ console.warn("User id from path does not match user id from event params");
89
+ return;
88
90
  }
89
- const onDeleteFuncName = `on${entity.charAt(0).toUpperCase() + entity.slice(1)}Delete`;
90
- if (!onlyFunctions || onlyFunctions.includes(onCreateFuncName)) {
91
- exports.functionsConfig[onDeleteFuncName] = functions.firestore
92
- .document(path)
93
- .onDelete(async (snapshot, context) => {
94
- await _onDocChange(onDeleteFuncName, entity, { before: snapshot, after: null }, context, "delete");
95
- });
91
+ const eventContext = {
92
+ id: event.id,
93
+ uid: userId,
94
+ formId,
95
+ docId,
96
+ docPath,
97
+ };
98
+ const onCreateFuncName = `on${entity.charAt(0).toUpperCase() + entity.slice(1)}Create`;
99
+ await _onDocChange(onCreateFuncName, entity, { before: undefined, after: snapshot }, eventContext, "create");
100
+ });
101
+ exports.functionsConfig["onFormUpdate"] = (0, database_1.onValueUpdated)({
102
+ ref: "forms/{userId}/{formId}",
103
+ region: exports.projectConfig.region,
104
+ instance: exports.projectConfig.rtdbName,
105
+ }, async (event) => {
106
+ const change = event.data;
107
+ if (!change) {
108
+ console.log("changeSnapshot is undefined onValueUpdated. Returning");
109
+ return;
110
+ }
111
+ const { userId, formId } = event.params;
112
+ // Get user id from path
113
+ const docPath = change.after.val()["@docPath"];
114
+ const { userId: docPathUserId, entity, docId } = (0, paths_1.parseUserAndEntity)(docPath);
115
+ if (docPathUserId !== userId) {
116
+ console.warn("User id from path does not match user id from event params");
117
+ return;
96
118
  }
119
+ const eventContext = {
120
+ id: event.id,
121
+ uid: userId,
122
+ formId,
123
+ docId,
124
+ docPath,
125
+ };
126
+ const onEditFuncName = `on${entity.charAt(0).toUpperCase() + entity.slice(1)}Create`;
127
+ await _onDocChange(onEditFuncName, entity, change, eventContext, "update");
97
128
  });
98
- if (!onlyFunctions || onlyFunctions.includes("onBudgetAlert")) {
99
- exports.functionsConfig["onBudgetAlert"] =
100
- functions.pubsub.topic(exports.projectConfig.budgetAlertTopicName).onPublish(bill_protect_1.stopBillingIfBudgetExceeded);
101
- }
102
- if (!onlyFunctions || onlyFunctions.includes("hourlyFunctions")) {
103
- exports.functionsConfig["hourlyFunctions"] = functions.pubsub.schedule("every 1 hours")
104
- .onRun(bill_protect_1.resetUsageStats);
105
- }
106
- if (!onlyFunctions || onlyFunctions.includes("minuteFunctions")) {
107
- exports.functionsConfig["minuteFunctions"] = functions.pubsub.schedule("every 1 minutes")
108
- .onRun(index_utils_1.processScheduledEntities);
109
- }
110
- if (!onlyFunctions || onlyFunctions.includes("onDeleteFunctions")) {
111
- exports.functionsConfig["onDeleteFunctions"] = functions.firestore.document("@server/delete/functions/{deleteFuncId}").onCreate(index_utils_1.onDeleteFunction);
112
- }
129
+ exports.functionsConfig["onBudgetAlert"] =
130
+ functions.pubsub.topic(exports.projectConfig.budgetAlertTopicName).onPublish(bill_protect_1.stopBillingIfBudgetExceeded);
131
+ exports.functionsConfig["hourlyFunctions"] = functions.pubsub.schedule("every 1 hours")
132
+ .onRun(bill_protect_1.resetUsageStats);
133
+ exports.functionsConfig["minuteFunctions"] = functions.pubsub.schedule("every 1 minutes")
134
+ .onRun(index_utils_1.processScheduledEntities);
135
+ exports.functionsConfig["onDeleteFunctions"] = functions.firestore.document("@server/delete/functions/{deleteFuncId}").onCreate(index_utils_1.onDeleteFunction);
113
136
  return { docPaths: exports.docPaths, colPaths: exports.colPaths, docPathsRegex: exports.docPathsRegex, functionsConfig: exports.functionsConfig };
114
137
  }
115
138
  exports.initializeEmberFlow = initializeEmberFlow;
116
139
  async function initActionRef(eventId) {
117
140
  return exports.db.collection("actions").doc(eventId);
118
141
  }
119
- async function onDocChange(funcName, entity, change, context, event) {
120
- var _a, _b, _c;
121
- if (!context.auth) {
122
- console.log("Auth is null, then this change is initiated by the service account and should be ignored");
123
- return;
124
- }
125
- const eventId = context.eventId;
126
- const userId = context.auth.uid;
127
- const afterDocument = change.after ? change.after.data() : null;
128
- const beforeDocument = change.before ? change.before.data() : null;
129
- const document = afterDocument || beforeDocument;
130
- const snapshot = change.after || change.before;
131
- if (!snapshot || !document) {
132
- console.error("Snapshot or document should not be null");
142
+ async function onDocChange(funcName, entity, change, eventContext, event) {
143
+ console.log(`Running ${funcName} for ${entity} on ${event} event`);
144
+ const { id: eventId, uid: userId, formId, docPath } = eventContext;
145
+ const afterDocument = change.after ? change.after.val() : null;
146
+ const beforeDocument = change.before ? change.before.val() : null;
147
+ const form = afterDocument || beforeDocument;
148
+ const formSnapshot = (change.after || change.before);
149
+ const formResponseRef = exports.rtdb.ref(`forms-response/${formId}`);
150
+ if (!formSnapshot || !form) {
151
+ console.error("Snapshot or form should not be null");
133
152
  return;
134
153
  }
135
- const documentId = snapshot.ref.id;
136
- console.log(`Document ${event}d in ${context.resource.service.split("/")[6]} collection with ID ${documentId}`);
154
+ console.log(`Document ${event}d in ${docPath}`);
137
155
  console.log("After Document data: ", afterDocument);
138
- console.log("Before document data: ", beforeDocument);
139
- // Re save document if deleted
140
- if (event === "delete") {
141
- // Re-add deleted document
142
- await snapshot.ref.set(document);
143
- console.log(`Document re-added with ID ${documentId}`);
144
- return;
145
- }
146
- if (afterDocument) {
147
- await (0, index_utils_1.revertModificationsOutsideForm)(afterDocument, beforeDocument, snapshot);
148
- }
149
- // if not form.@status is submit then return
150
- if (((_a = document === null || document === void 0 ? void 0 : document["@form"]) === null || _a === void 0 ? void 0 : _a["@status"]) !== "submit") {
151
- console.log("Form is not submitted");
152
- return;
153
- }
154
- // Create Action document
155
- const actionType = (_b = document["@form"]) === null || _b === void 0 ? void 0 : _b["@actionType"];
156
+ console.log("Before form data: ", beforeDocument);
157
+ // Create Action form
158
+ const actionType = form["@actionType"];
156
159
  if (!actionType) {
157
160
  console.log("No actionType found");
158
161
  return;
159
162
  }
160
- // Validate the document
161
- const [hasValidationError, validationResult] = await (0, index_utils_1.validateForm)(entity, document, snapshot.ref.path);
163
+ // Validate the form
164
+ const [hasValidationError, validationResult] = await (0, index_utils_1.validateForm)(entity, form);
162
165
  if (hasValidationError) {
163
- await snapshot.ref.update({ "@form.@status": "form-validation-failed", "@form.@message": validationResult });
166
+ await formResponseRef.update({ "@status": "validation-error", "@message": validationResult });
164
167
  return;
165
168
  }
166
- const formModifiedFields = (0, index_utils_1.getFormModifiedFields)(document);
169
+ const document = (await exports.db.doc(docPath).get()).data() || {};
170
+ const formModifiedFields = (0, index_utils_1.getFormModifiedFields)(form, document);
167
171
  // Run security check
168
172
  const securityFn = (0, index_utils_1.getSecurityFn)(entity);
169
173
  if (securityFn) {
170
- const securityResult = await securityFn(entity, document, event, formModifiedFields);
174
+ const securityResult = await securityFn(entity, form, document, event, formModifiedFields);
171
175
  if (securityResult.status === "rejected") {
172
176
  console.log(`Security check failed: ${securityResult.message}`);
173
- await snapshot.ref.update({ "@form.@status": "security-error", "@form.@message": securityResult.message });
177
+ await formResponseRef.update({ "@status": "security-error", "@message": securityResult.message });
174
178
  return;
175
179
  }
176
180
  }
177
181
  // Check for delay
178
- const delay = (_c = document === null || document === void 0 ? void 0 : document["@form"]) === null || _c === void 0 ? void 0 : _c["@delay"];
182
+ const delay = form["@delay"];
179
183
  if (delay) {
180
- if (await (0, index_utils_1.delayFormSubmissionAndCheckIfCancelled)(delay, snapshot)) {
181
- await snapshot.ref.update({ "@form.@status": "cancelled" });
184
+ if (await (0, index_utils_1.delayFormSubmissionAndCheckIfCancelled)(delay, formResponseRef)) {
185
+ await formResponseRef.update({ "@status": "cancelled" });
182
186
  return;
183
187
  }
184
188
  }
185
- await snapshot.ref.update({ "@form.@status": "processing" });
186
- const path = snapshot.ref.path;
189
+ await formResponseRef.update({ "@status": "processing" });
187
190
  const status = "processing";
188
191
  const timeCreated = exports._mockable.createNowTimestamp();
189
192
  const action = {
193
+ eventContext,
190
194
  actionType,
191
- path,
192
195
  document,
196
+ form,
193
197
  status,
194
198
  timeCreated,
195
199
  modifiedFields: formModifiedFields,
196
200
  };
197
201
  const actionRef = await exports._mockable.initActionRef(eventId);
198
202
  await actionRef.set(action);
199
- await snapshot.ref.update({ "@form.@status": "submitted" });
203
+ await formResponseRef.update({ "@status": "submitted" });
200
204
  const logicResults = await (0, index_utils_1.runBusinessLogics)(actionType, formModifiedFields, entity, action);
201
- // Save all logic results under logicResults collection of action document
205
+ // Save all logic results under logicResults collection of action form
202
206
  for (let i = 0; i < logicResults.length; i++) {
203
- const _d = logicResults[i], { documents } = _d, logicResult = __rest(_d, ["documents"]);
204
- const logicResultRef = await actionRef.collection("logicResults")
207
+ const _a = logicResults[i], { documents } = _a, logicResult = __rest(_a, ["documents"]);
208
+ const logicResultRef = actionRef.collection("logicResults")
205
209
  .doc(`${actionRef.id}-${i}`);
206
210
  await logicResultRef.set(logicResult);
207
211
  for (let j = 0; j < documents.length; j++) {
@@ -213,7 +217,6 @@ async function onDocChange(funcName, entity, change, context, event) {
213
217
  if (errorLogicResults.length > 0) {
214
218
  const errorMessage = errorLogicResults.map((result) => result.message).join("\n");
215
219
  await actionRef.update({ status: "finished-with-error", message: errorMessage });
216
- // TODO: Need to cancel everything if there's an error.
217
220
  }
218
221
  const dstPathLogicDocsMap = (0, index_utils_1.consolidateAndGroupByDstPath)(logicResults);
219
222
  const { userDocsByDstPath, otherUsersDocsByDstPath, } = (0, index_utils_1.groupDocsByUserAndDstPath)(dstPathLogicDocsMap, userId);
@@ -222,7 +225,7 @@ async function onDocChange(funcName, entity, change, context, event) {
222
225
  const { userDocsByDstPath: userViewDocsByDstPath, otherUsersDocsByDstPath: otherUsersViewDocsByDstPath, } = (0, index_utils_1.groupDocsByUserAndDstPath)(dstPathViewLogicDocsMap, userId);
223
226
  await (0, index_utils_1.distribute)(userDocsByDstPath);
224
227
  await (0, index_utils_1.distribute)(userViewDocsByDstPath);
225
- await snapshot.ref.update({ "@form.@status": "finished" });
228
+ await formResponseRef.update({ "@status": "finished" });
226
229
  const peerSyncViewLogicResults = await (0, index_utils_1.runPeerSyncViews)(userDocsByDstPath);
227
230
  const dstPathPeerSyncViewLogicDocsMap = (0, index_utils_1.consolidateAndGroupByDstPath)(peerSyncViewLogicResults);
228
231
  const { otherUsersDocsByDstPath: otherUsersPeerSyncViewDocsByDstPath } = (0, index_utils_1.groupDocsByUserAndDstPath)(dstPathPeerSyncViewLogicDocsMap, userId);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}