emberflow 1.3.8 → 1.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/lib/db-structure.d.ts +2 -7
  2. package/lib/db-structure.js +1 -6
  3. package/lib/db-structure.js.map +1 -1
  4. package/lib/index-utils.d.ts +4 -3
  5. package/lib/index-utils.js +83 -118
  6. package/lib/index-utils.js.map +1 -1
  7. package/lib/index.d.ts +7 -0
  8. package/lib/index.js +70 -38
  9. package/lib/index.js.map +1 -1
  10. package/lib/logics/view-logics.d.ts +22 -2
  11. package/lib/logics/view-logics.js +107 -53
  12. package/lib/logics/view-logics.js.map +1 -1
  13. package/lib/tests/index-utils.test.js +233 -137
  14. package/lib/tests/index-utils.test.js.map +1 -1
  15. package/lib/tests/index.test.js +21 -17
  16. package/lib/tests/index.test.js.map +1 -1
  17. package/lib/tests/logics/view-logics.test.js +203 -24
  18. package/lib/tests/logics/view-logics.test.js.map +1 -1
  19. package/lib/tests/utils/distribution.test.d.ts +1 -0
  20. package/lib/tests/utils/distribution.test.js +206 -0
  21. package/lib/tests/utils/distribution.test.js.map +1 -0
  22. package/lib/tests/utils/forms.test.d.ts +1 -0
  23. package/lib/tests/utils/forms.test.js +113 -0
  24. package/lib/tests/utils/forms.test.js.map +1 -0
  25. package/lib/tests/utils/misc.test.js +138 -0
  26. package/lib/tests/utils/misc.test.js.map +1 -1
  27. package/lib/tests/utils/paths.test.js.map +1 -1
  28. package/lib/tests/utils/pubsub.test.d.ts +1 -0
  29. package/lib/tests/utils/pubsub.test.js +109 -0
  30. package/lib/tests/utils/pubsub.test.js.map +1 -0
  31. package/lib/types.d.ts +7 -1
  32. package/lib/utils/distribution.d.ts +9 -0
  33. package/lib/utils/distribution.js +119 -0
  34. package/lib/utils/distribution.js.map +1 -0
  35. package/lib/utils/forms.d.ts +4 -2
  36. package/lib/utils/forms.js +32 -101
  37. package/lib/utils/forms.js.map +1 -1
  38. package/lib/utils/misc.d.ts +17 -0
  39. package/lib/utils/misc.js +81 -1
  40. package/lib/utils/misc.js.map +1 -1
  41. package/lib/utils/pubsub.d.ts +9 -0
  42. package/lib/utils/pubsub.js +32 -0
  43. package/lib/utils/pubsub.js.map +1 -0
  44. package/package.json +3 -2
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const isProcessedMock = jest.fn();
27
+ const trackProcessedIdsMock = jest.fn();
28
+ const pubsub_1 = require("@google-cloud/pubsub");
29
+ const adminClient = __importStar(require("emberflow-admin-client/lib"));
30
+ const forms = __importStar(require("../../utils/forms"));
31
+ const index_1 = require("../../index");
32
+ jest.mock("../../index", () => {
33
+ return {
34
+ pubsub: new pubsub_1.PubSub(),
35
+ SUBMIT_FORM_TOPIC_NAME: "submit-form-queue",
36
+ };
37
+ });
38
+ jest.mock("../../utils/pubsub", () => {
39
+ return {
40
+ pubsubUtils: {
41
+ isProcessed: isProcessedMock,
42
+ trackProcessedIds: trackProcessedIdsMock,
43
+ },
44
+ };
45
+ });
46
+ describe("queueSubmitForm", () => {
47
+ let publishMessageMock;
48
+ let topicSpy;
49
+ beforeEach(() => {
50
+ jest.restoreAllMocks();
51
+ publishMessageMock = jest.fn().mockResolvedValue("message-id");
52
+ topicSpy = jest.spyOn(pubsub_1.PubSub.prototype, "topic").mockImplementation(() => {
53
+ return {
54
+ publishMessage: publishMessageMock,
55
+ };
56
+ });
57
+ });
58
+ it("should queue docs for distribution later", async () => {
59
+ const formData = {
60
+ "@docPath": "users/test-uid",
61
+ "@actionType": "create",
62
+ };
63
+ const result = await forms.queueSubmitForm(formData);
64
+ expect(topicSpy).toHaveBeenCalledWith(index_1.SUBMIT_FORM_TOPIC_NAME);
65
+ expect(publishMessageMock).toHaveBeenCalledWith({ json: formData });
66
+ expect(result).toEqual("message-id");
67
+ });
68
+ });
69
+ describe("onMessageSubmitFormQueue", () => {
70
+ let submitFormSpy;
71
+ beforeEach(() => {
72
+ submitFormSpy = jest.spyOn(adminClient, "submitForm").mockImplementation((formData) => Promise.resolve(formData));
73
+ });
74
+ it("should skip duplicate event", async () => {
75
+ isProcessedMock.mockResolvedValueOnce(true);
76
+ jest.spyOn(console, "log").mockImplementation();
77
+ const formData = {
78
+ "@docPath": "users/test-uid",
79
+ "@actionType": "create",
80
+ };
81
+ const event = {
82
+ id: "test-event",
83
+ data: {
84
+ message: {
85
+ json: formData,
86
+ },
87
+ },
88
+ };
89
+ await forms.onMessageSubmitFormQueue(event);
90
+ expect(isProcessedMock).toHaveBeenCalledWith(index_1.SUBMIT_FORM_TOPIC_NAME, event.id);
91
+ expect(console.log).toHaveBeenCalledWith("Skipping duplicate event");
92
+ });
93
+ it("should submit doc", async () => {
94
+ isProcessedMock.mockResolvedValueOnce(false);
95
+ const formData = {
96
+ "@docPath": "users/test-uid",
97
+ "@actionType": "create",
98
+ };
99
+ const event = {
100
+ id: "test-event",
101
+ data: {
102
+ message: {
103
+ json: formData,
104
+ },
105
+ },
106
+ };
107
+ const result = await forms.onMessageSubmitFormQueue(event);
108
+ expect(submitFormSpy).toHaveBeenCalledWith(formData);
109
+ expect(trackProcessedIdsMock).toHaveBeenCalledWith(index_1.SUBMIT_FORM_TOPIC_NAME, event.id);
110
+ expect(result).toEqual("Processed form data");
111
+ });
112
+ });
113
+ //# sourceMappingURL=forms.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms.test.js","sourceRoot":"","sources":["../../../src/tests/utils/forms.test.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,54 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
26
  const misc_1 = require("../../utils/misc");
4
27
  const firebase_admin_1 = require("firebase-admin");
5
28
  var Timestamp = firebase_admin_1.firestore.Timestamp;
6
29
  var GeoPoint = firebase_admin_1.firestore.GeoPoint;
30
+ const batch_1 = require("../../utils/batch");
31
+ const index_1 = require("../../index");
32
+ const admin = __importStar(require("firebase-admin"));
33
+ const db_structure_1 = require("../../sample-custom/db-structure");
34
+ const security_1 = require("../../sample-custom/security");
35
+ const validators_1 = require("../../sample-custom/validators");
36
+ const projectConfig = {
37
+ projectId: "your-project-id",
38
+ region: "asia-southeast1",
39
+ rtdbName: "your-rtdb-name",
40
+ budgetAlertTopicName: "budget-alerts",
41
+ maxCostLimitPerFunction: 100,
42
+ specialCostLimitPerFunction: {
43
+ function1: 50,
44
+ function2: 75,
45
+ function3: 120,
46
+ },
47
+ };
48
+ admin.initializeApp({
49
+ databaseURL: "https://test-project.firebaseio.com",
50
+ });
51
+ (0, index_1.initializeEmberFlow)(projectConfig, admin, db_structure_1.dbStructure, db_structure_1.Entity, security_1.securityConfig, validators_1.validatorConfig, []);
7
52
  describe("deepEqual", () => {
8
53
  it("should correctly compare Firestore Field types", () => {
9
54
  const ts1 = Timestamp.fromDate(new Date(2023, 3, 1));
@@ -52,4 +97,97 @@ describe("computeHashCode", () => {
52
97
  expect(result.length).toBe(8); // Assert the length of the output string
53
98
  });
54
99
  });
100
+ describe("LimitedSet", () => {
101
+ let limitedSet;
102
+ const collectionRef = index_1.db.collection("example-collection");
103
+ const documentRef = collectionRef.doc("example-document");
104
+ beforeEach(() => {
105
+ limitedSet = new misc_1.LimitedSet(10);
106
+ jest.clearAllMocks();
107
+ });
108
+ describe("add", () => {
109
+ it("should add a document to the set", () => {
110
+ limitedSet.add(documentRef);
111
+ expect(limitedSet.set.size).toBe(1);
112
+ expect(limitedSet.queue.length).toBe(1);
113
+ expect(limitedSet.has(documentRef)).toBe(true);
114
+ });
115
+ it("should remove oldest item when max length is reached", () => {
116
+ limitedSet.add(documentRef);
117
+ for (let i = 0; i < 10; i++) {
118
+ limitedSet.add(collectionRef.doc(`document-${i}`));
119
+ }
120
+ expect(limitedSet.set.size).toBe(10);
121
+ expect(limitedSet.queue.length).toBe(10);
122
+ expect(limitedSet.has(documentRef)).toBe(false);
123
+ });
124
+ });
125
+ describe("has", () => {
126
+ it("should return true if the item is in the set", () => {
127
+ limitedSet.add(documentRef);
128
+ expect(limitedSet.has(documentRef)).toBe(true);
129
+ });
130
+ it("should return false if the item is not in the set", () => {
131
+ expect(limitedSet.has(documentRef)).toBe(false);
132
+ });
133
+ });
134
+ describe("delete", () => {
135
+ it("should delete a document from the set", () => {
136
+ limitedSet.add(documentRef);
137
+ expect(limitedSet.set.size).toBe(1);
138
+ expect(limitedSet.queue.length).toBe(1);
139
+ expect(limitedSet.has(documentRef)).toBe(true);
140
+ limitedSet.delete(documentRef);
141
+ expect(limitedSet.set.size).toBe(0);
142
+ expect(limitedSet.queue.length).toBe(0);
143
+ expect(limitedSet.has(documentRef)).toBe(false);
144
+ });
145
+ });
146
+ });
147
+ describe("deleteCollection", () => {
148
+ const batch = batch_1.BatchUtil.getInstance();
149
+ let batchDeleteSpy;
150
+ let batchCommitSpy;
151
+ let limitMock;
152
+ beforeEach(() => {
153
+ jest.spyOn(batch_1.BatchUtil, "getInstance").mockImplementation(() => batch);
154
+ batchDeleteSpy = jest.spyOn(batch, "deleteDoc").mockResolvedValue(undefined);
155
+ batchCommitSpy = jest.spyOn(batch, "commit").mockResolvedValue(undefined);
156
+ });
157
+ it("should return when snapshot size is 0", async () => {
158
+ limitMock = jest.fn().mockReturnValue({
159
+ get: jest.fn().mockResolvedValue({
160
+ size: 0,
161
+ }),
162
+ });
163
+ await (0, misc_1.deleteCollection)({
164
+ limit: limitMock,
165
+ });
166
+ expect(limitMock).toHaveBeenCalledTimes(1);
167
+ expect(limitMock).toHaveBeenCalledWith(500);
168
+ });
169
+ it("should delete all documents in a collection", async () => {
170
+ const docs = [];
171
+ for (let i = 0; i < 100; i++) {
172
+ docs.push({ ref: i });
173
+ }
174
+ const getMock = jest.fn().mockResolvedValue({
175
+ size: 0,
176
+ docs: [],
177
+ }).mockResolvedValueOnce({
178
+ size: 100,
179
+ docs: docs,
180
+ });
181
+ limitMock = jest.fn().mockReturnValue({
182
+ get: getMock,
183
+ });
184
+ await (0, misc_1.deleteCollection)({
185
+ limit: limitMock,
186
+ });
187
+ expect(limitMock).toHaveBeenCalledTimes(1);
188
+ expect(limitMock).toHaveBeenCalledWith(500);
189
+ expect(batchDeleteSpy).toHaveBeenCalledTimes(100);
190
+ expect(batchCommitSpy).toHaveBeenCalled();
191
+ });
192
+ });
55
193
  //# sourceMappingURL=misc.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"misc.test.js","sourceRoot":"","sources":["../../../src/tests/utils/misc.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"misc.test.js","sourceRoot":"","sources":["../../../src/tests/utils/misc.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"paths.test.js","sourceRoot":"","sources":["../../../src/tests/utils/paths.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwI;AACxI,6CAA2C;AAE3C,uCAAgD;AAChD,sDAAwC;AACxC,mEAAqE;AAErE,8DAA8D;AAC9D,MAAM,aAAa,GAAkB;IACnC,SAAS,EAAE,iBAAiB;IAC5B,oBAAoB,EAAE,eAAe;IACrC,MAAM,EAAE,iBAAiB;IACzB,QAAQ,EAAE,gBAAgB;IAC1B,uBAAuB,EAAE,GAAG;IAC5B,2BAA2B,EAAE;QAC3B,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,GAAG;KACf;CACF,CAAC;AAEF,KAAK,CAAC,aAAa,CAAC;IAClB,WAAW,EAAE,WAAW,aAAa,CAAC,QAAQ,IAAI,aAAa,CAAC,MAAM,wBAAwB;CAC/F,CAAC,CAAC;AACH,IAAA,2BAAmB,EAAC,aAAa,EAAE,KAAK,EAAE,0BAAW,EAAE,qBAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAE3E,yBAAyB;AACzB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;CACpB,CAAC,CAAC,CAAC;AAGJ,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,UAAU,CAAC,GAAG,EAAE;QACd,kCAAkC;QACjC,gBAAsB,CAAC,SAAS,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,6DAA6D;QAC7D,MAAM,YAAY,GAAG,gBAAgD,CAAC;QACtE,YAAY;aACT,qBAAqB,CAAC,EAAE,CAAC;aACzB,iBAAiB,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAErC,MAAM,WAAW,GAAG,+BAA+B,CAAC;QACpD,MAAM,aAAa,GAAmB;YACpC,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;SACtB,CAAC;QAEF,sCAAsC;QACtC,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAc,EAAC,WAAW,EAAE;YAC/C,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;QAEH,0EAA0E;QAC1E,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE3B,6DAA6D;QAC7D,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,YAAY,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,oDAAoD;QACpD,MAAM,WAAW,GAAG,0BAA0B,CAAC;QAC/C,MAAM,YAAY,GAAG,gBAAgD,CAAC;QACtE,YAAY;aACT,iBAAiB,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAE5C,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE;aACjC,qBAAqB,CAAC,IAAI,CAAC;aAC3B,qBAAqB,CAAC,KAAK,CAAC;aAC5B,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC/B,iBAAa,CAAC,cAAc,GAAG,kBAAkB,CAAC;QAElD,sCAAsC;QACtC,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAc,EAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAErD,mBAAmB;QACnB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC,CAAC;QAEvE,gEAAgE;QAChE,MAAM,CAAC,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,kBAAkB,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;QAC7E,MAAM,CAAC,kBAAkB,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;QAC7E,MAAM,CAAC,kBAAkB,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,YAAY,GAAG,gBAAgD,CAAC;QACtE,YAAY;aACT,qBAAqB,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aACrC,iBAAiB,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAErC,MAAM,WAAW,GAAG,+BAA+B,CAAC;QACpD,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,aAAa,GAAmB;YACpC,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,YAAY;SACpB,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAc,EAAC,WAAW,EAAE;YAC/C,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,qBAAqB;YACrB,qBAAqB;YACrB,qBAAqB;YACrB,qBAAqB;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,YAAY,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QACxE,MAAM,CAAC,YAAY,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAC9E,MAAM,CAAC,YAAY,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,YAAY,GAAG,gBAAgD,CAAC;QACtE,YAAY;aACT,qBAAqB,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aACrC,iBAAiB,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAErC,MAAM,WAAW,GAAG,+BAA+B,CAAC;QACpD,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,aAAa,GAAmB;YACpC,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,YAAY;SACpB,CAAC;QAEF,gEAAgE;QAChE,MAAM,aAAa,GAAmB;YACpC,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,YAAY;SACpB,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAc,EAAC,WAAW,EAAE;YAC/C,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;QAEH,wDAAwD;QACxD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,qBAAqB;YACrB,qBAAqB;YACrB,qBAAqB;YACrB,qBAAqB;SACtB,CAAC,CAAC;QAEH,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,YAAY,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QACxE,MAAM,CAAC,YAAY,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC;QAClF,MAAM,CAAC,YAAY,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+FAA+F,EAAE,KAAK,IAAI,EAAE;QAC7G,MAAM,YAAY,GAAG,gBAAgD,CAAC;QACtE,YAAY;aACT,qBAAqB,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aACrC,qBAAqB,CAAC,EAAE,CAAC;aACzB,iBAAiB,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAErC,MAAM,WAAW,GAAG,+BAA+B,CAAC;QACpD,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,aAAa,GAAmB;YACpC,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,YAAY;SACpB,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAc,EAAC,WAAW,EAAE;YAC/C,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,qBAAqB;YACrB,qBAAqB;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,YAAY,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QACxE,MAAM,CAAC,YAAY,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAC9E,MAAM,CAAC,YAAY,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAGH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,UAAU,CAAC,GAAG,EAAE;QACd,kCAAkC;QACjC,gBAAsB,CAAC,SAAS,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,MAAM,GAAG,IAAA,iCAAyB,EAAC,qBAAM,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,mCAAmC;YACnC,kDAAkD;SACnD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,MAAM,GAAG,IAAA,iCAAyB,EAAC,qBAAM,CAAC,IAAI,EAAE,CAAC,qBAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,gBAAgB;YAChB,+BAA+B;SAChC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,MAAM,GAAG,IAAA,iCAAyB,EAAC,mBAAmB,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,MAAM,MAAM,GAAG,IAAA,iCAAyB,EAAC,qBAAM,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,UAAU,CAAC,GAAG,EAAE;QACd,kCAAkC;QACjC,gBAAsB,CAAC,SAAS,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,QAAQ;QACR,MAAM,eAAe,GAAG,WAAW,CAAC;QACpC,MAAM,eAAe,GAAG;YACtB,CAAC,qBAAM,CAAC,IAAI,CAAC,EAAE,EAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAmB;SACxF,CAAC;QACF,MAAM,eAAe,GAAG,CAAC,qBAAM,CAAC,MAAM,CAAC,CAAC;QAExC,qCAAqC;QACpC,gBAAsB,CAAC,qBAAqB,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAE1D,iCAAiC;QACjC,MAAM,6BAA6B,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC;YAClE,gBAAgB;YAChB,+BAA+B;SAChC,CAAC,CAAC;QACH,iBAAa,CAAC,yBAAyB,GAAG,6BAA6B,CAAC;QAExE,uBAAuB;QACvB,MAAM,MAAM,GAAG,MAAM,IAAA,sCAA8B,EAAC,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;QAEvG,mBAAmB;QACnB,MAAM,QAAQ,GAAG;YACf,CAAC,qBAAM,CAAC,IAAI,CAAC,EAAE;gBACb,WAAW;aACZ;YACD,CAAC,qBAAM,CAAC,IAAI,CAAC,EAAE;gBACb,qBAAqB;gBACrB,qBAAqB;aACtB;SACF,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEjC,6DAA6D;QAC7D,MAAM,aAAa,GAAI,gBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC;QACzD,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,eAAe,CAAC,qBAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpF,MAAM,CAAC,6BAA6B,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,qBAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"paths.test.js","sourceRoot":"","sources":["../../../src/tests/utils/paths.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const admin = __importStar(require("firebase-admin"));
27
+ const index_1 = require("../../index");
28
+ const db_structure_1 = require("../../sample-custom/db-structure");
29
+ const security_1 = require("../../sample-custom/security");
30
+ const validators_1 = require("../../sample-custom/validators");
31
+ const pubsub_1 = require("../../utils/pubsub");
32
+ const misc = __importStar(require("../../utils/misc"));
33
+ const projectConfig = {
34
+ projectId: "your-project-id",
35
+ region: "asia-southeast1",
36
+ rtdbName: "your-rtdb-name",
37
+ budgetAlertTopicName: "budget-alerts",
38
+ maxCostLimitPerFunction: 100,
39
+ specialCostLimitPerFunction: {
40
+ function1: 50,
41
+ function2: 75,
42
+ function3: 120,
43
+ },
44
+ };
45
+ admin.initializeApp({
46
+ databaseURL: "https://test-project.firebaseio.com",
47
+ });
48
+ (0, index_1.initializeEmberFlow)(projectConfig, admin, db_structure_1.dbStructure, db_structure_1.Entity, security_1.securityConfig, validators_1.validatorConfig, []);
49
+ describe("pubsubUtils", () => {
50
+ let colGetMock;
51
+ let deleteCollectionSpy;
52
+ let docSetMock;
53
+ let docGetMock;
54
+ beforeEach(() => {
55
+ colGetMock = jest.fn().mockResolvedValue({
56
+ docs: [
57
+ {
58
+ ref: {
59
+ collection: jest.fn().mockReturnValue({
60
+ where: jest.fn().mockReturnValue({}),
61
+ }),
62
+ },
63
+ },
64
+ ],
65
+ });
66
+ docSetMock = jest.fn().mockResolvedValue({});
67
+ docGetMock = jest.fn().mockResolvedValue({
68
+ exists: true,
69
+ });
70
+ const dbDoc = {
71
+ set: docSetMock,
72
+ get: docGetMock,
73
+ id: "test-doc-id",
74
+ };
75
+ jest.spyOn(admin.firestore(), "doc").mockReturnValue(dbDoc);
76
+ jest.spyOn(admin.firestore(), "collection").mockReturnValue({
77
+ get: colGetMock,
78
+ });
79
+ deleteCollectionSpy = jest.spyOn(misc, "deleteCollection").mockImplementation(() => Promise.resolve());
80
+ });
81
+ afterEach(() => {
82
+ jest.restoreAllMocks();
83
+ });
84
+ it("should track processed ids", async () => {
85
+ await pubsub_1.pubsubUtils.trackProcessedIds("test-topic", "test-id");
86
+ expect(admin.firestore().doc).toHaveBeenCalledTimes(1);
87
+ expect(admin.firestore().doc).toHaveBeenCalledWith("@topics/test-topic/processedIds/test-id");
88
+ expect(docSetMock).toHaveBeenCalledTimes(1);
89
+ expect(docSetMock).toHaveBeenCalledWith({ timestamp: expect.any(Date) });
90
+ });
91
+ it("should check if id is processed", async () => {
92
+ const result = await pubsub_1.pubsubUtils.isProcessed("test-topic", "test-id");
93
+ expect(admin.firestore().doc).toHaveBeenCalledTimes(1);
94
+ expect(admin.firestore().doc).toHaveBeenCalledWith("@topics/test-topic/processedIds/test-id");
95
+ expect(docGetMock).toHaveBeenCalledTimes(1);
96
+ expect(result).toBe(true);
97
+ });
98
+ it("should clean processed ids", async () => {
99
+ jest.spyOn(console, "info").mockImplementation();
100
+ await (0, pubsub_1.cleanPubSubProcessedIds)({});
101
+ expect(console.info).toHaveBeenCalledWith("Running cleanPubSubProcessedIds");
102
+ expect(admin.firestore().collection).toHaveBeenCalledTimes(1);
103
+ expect(admin.firestore().collection).toHaveBeenCalledWith("@topics");
104
+ expect(colGetMock).toHaveBeenCalledTimes(1);
105
+ expect(deleteCollectionSpy).toHaveBeenCalled();
106
+ expect(console.info).toHaveBeenCalledWith("Cleaned 1 topics of processedIds");
107
+ });
108
+ });
109
+ //# sourceMappingURL=pubsub.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pubsub.test.js","sourceRoot":"","sources":["../../../src/tests/utils/pubsub.test.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -23,7 +23,7 @@ export interface Action {
23
23
  timeCreated: Timestamp;
24
24
  message?: string;
25
25
  }
26
- export type LogicResultAction = "merge" | "delete" | "copy" | "recursive-copy" | "recursive-delete" | "submit-form";
26
+ export type LogicResultAction = "create" | "merge" | "delete" | "copy" | "recursive-copy" | "recursive-delete" | "submit-form";
27
27
  export type LogicResultDocPriority = "high" | "normal" | "low";
28
28
  export interface LogicResultDoc {
29
29
  action: LogicResultAction;
@@ -36,6 +36,12 @@ export interface LogicResultDoc {
36
36
  };
37
37
  skipEntityDuringRecursion?: string[];
38
38
  }
39
+ export interface InstructionsMessage {
40
+ dstPath: string;
41
+ instructions: {
42
+ [key: string]: string;
43
+ };
44
+ }
39
45
  export interface LogicResult {
40
46
  name: string;
41
47
  status: "finished" | "error" | "partial-result";
@@ -0,0 +1,9 @@
1
+ import { LogicResultDoc } from "../types";
2
+ import { CloudEvent } from "firebase-functions/lib/v2/core";
3
+ import { MessagePublishedData } from "firebase-functions/lib/v2/providers/pubsub";
4
+ export declare const queueForDistributionLater: (...logicResultDocs: LogicResultDoc[]) => Promise<void>;
5
+ export declare function onMessageForDistributionQueue(event: CloudEvent<MessagePublishedData>): Promise<string>;
6
+ export declare function queueInstructions(dstPath: string, instructions: {
7
+ [p: string]: string;
8
+ }): Promise<void>;
9
+ export declare function onMessageInstructionsQueue(event: CloudEvent<MessagePublishedData>): Promise<"Processed instructions" | undefined>;
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.onMessageInstructionsQueue = exports.queueInstructions = exports.onMessageForDistributionQueue = exports.queueForDistributionLater = void 0;
4
+ const index_1 = require("../index");
5
+ const index_utils_1 = require("../index-utils");
6
+ const pubsub_1 = require("./pubsub");
7
+ const queueForDistributionLater = async (...logicResultDocs) => {
8
+ const topic = index_1.pubsub.topic(index_1.FOR_DISTRIBUTION_TOPIC_NAME);
9
+ try {
10
+ for (const logicResultDoc of logicResultDocs) {
11
+ const messageId = await topic.publishMessage({ json: logicResultDoc });
12
+ console.log(`Message ${messageId} published.`);
13
+ }
14
+ }
15
+ catch (error) {
16
+ if (error instanceof Error) {
17
+ console.error(`Received error while publishing: ${error.message}`);
18
+ }
19
+ else {
20
+ console.error("An unknown error occurred during publishing");
21
+ }
22
+ throw error;
23
+ }
24
+ };
25
+ exports.queueForDistributionLater = queueForDistributionLater;
26
+ async function onMessageForDistributionQueue(event) {
27
+ try {
28
+ const logicResultDoc = event.data.message.json;
29
+ console.log("Received user logic result doc:", logicResultDoc);
30
+ console.info("Running For Distribution");
31
+ const { priority = "normal" } = logicResultDoc;
32
+ if (priority === "high") {
33
+ await (0, index_utils_1.distributeDoc)(logicResultDoc);
34
+ }
35
+ else if (priority === "normal") {
36
+ logicResultDoc.priority = "high";
37
+ await (0, exports.queueForDistributionLater)(logicResultDoc);
38
+ }
39
+ else if (priority === "low") {
40
+ logicResultDoc.priority = "normal";
41
+ await (0, exports.queueForDistributionLater)(logicResultDoc);
42
+ }
43
+ return "Processed for distribution later";
44
+ }
45
+ catch (e) {
46
+ console.error("PubSub message was not JSON", e);
47
+ throw new Error("No json in message");
48
+ }
49
+ }
50
+ exports.onMessageForDistributionQueue = onMessageForDistributionQueue;
51
+ async function queueInstructions(dstPath, instructions) {
52
+ const topic = index_1.pubsub.topic(index_1.INSTRUCTIONS_TOPIC_NAME);
53
+ try {
54
+ const messageId = await topic.publishMessage({ json: { dstPath, instructions } });
55
+ console.log(`Message ${messageId} published.`);
56
+ }
57
+ catch (error) {
58
+ if (error instanceof Error) {
59
+ console.error(`Received error while publishing: ${error.message}`);
60
+ }
61
+ else {
62
+ console.error("An unknown error occurred during publishing");
63
+ }
64
+ throw error;
65
+ }
66
+ }
67
+ exports.queueInstructions = queueInstructions;
68
+ async function onMessageInstructionsQueue(event) {
69
+ if (await pubsub_1.pubsubUtils.isProcessed(index_1.INSTRUCTIONS_TOPIC_NAME, event.id)) {
70
+ console.log("Skipping duplicate message");
71
+ return;
72
+ }
73
+ try {
74
+ const instructionsMessage = event.data.message.json;
75
+ console.log("Received user logic result doc:", instructionsMessage);
76
+ console.info("Running For Distribution");
77
+ const { dstPath, instructions } = instructionsMessage;
78
+ const updateData = {};
79
+ for (const [property, instruction] of Object.entries(instructions)) {
80
+ if (instruction === "++") {
81
+ updateData[property] = index_1.admin.firestore.FieldValue.increment(1);
82
+ }
83
+ else if (instruction === "--") {
84
+ updateData[property] = index_1.admin.firestore.FieldValue.increment(-1);
85
+ }
86
+ else if (instruction.startsWith("+")) {
87
+ const incrementValue = parseInt(instruction.slice(1));
88
+ if (isNaN(incrementValue)) {
89
+ console.log(`Invalid increment value ${instruction} for property ${property}`);
90
+ }
91
+ else {
92
+ updateData[property] = index_1.admin.firestore.FieldValue.increment(incrementValue);
93
+ }
94
+ }
95
+ else if (instruction.startsWith("-")) {
96
+ const decrementValue = parseInt(instruction.slice(1));
97
+ if (isNaN(decrementValue)) {
98
+ console.log(`Invalid decrement value ${instruction} for property ${property}`);
99
+ }
100
+ else {
101
+ updateData[property] = index_1.admin.firestore.FieldValue.increment(-decrementValue);
102
+ }
103
+ }
104
+ else {
105
+ console.log(`Invalid instruction ${instruction} for property ${property}`);
106
+ }
107
+ }
108
+ const dstDocRef = index_1.db.doc(dstPath);
109
+ await dstDocRef.set(updateData, { merge: true });
110
+ await pubsub_1.pubsubUtils.trackProcessedIds(index_1.INSTRUCTIONS_TOPIC_NAME, event.id);
111
+ return "Processed instructions";
112
+ }
113
+ catch (e) {
114
+ console.error("PubSub message was not JSON", e);
115
+ throw new Error("No json in message");
116
+ }
117
+ }
118
+ exports.onMessageInstructionsQueue = onMessageInstructionsQueue;
119
+ //# sourceMappingURL=distribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"distribution.js","sourceRoot":"","sources":["../../src/utils/distribution.ts"],"names":[],"mappings":";;;AACA,oCAAiG;AAGjG,gDAA6C;AAG7C,qCAAqC;AAE9B,MAAM,yBAAyB,GAAG,KAAK,EAAE,GAAG,eAAiC,EAAE,EAAE;IACtF,MAAM,KAAK,GAAG,cAAM,CAAC,KAAK,CAAC,mCAA2B,CAAC,CAAC;IAExD,IAAI;QACF,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE;YAC5C,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,EAAC,IAAI,EAAE,cAAc,EAAC,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,WAAW,SAAS,aAAa,CAAC,CAAC;SAChD;KACF;IAAC,OAAO,KAAc,EAAE;QACvB,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,OAAO,CAAC,KAAK,CAAC,oCAAoC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SACpE;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAC9D;QACD,MAAM,KAAK,CAAC;KACb;AACH,CAAC,CAAC;AAhBW,QAAA,yBAAyB,6BAgBpC;AAEK,KAAK,UAAU,6BAA6B,CAAC,KAAuC;IACzF,IAAI;QACF,MAAM,cAAc,GAAmB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,cAAc,CAAC,CAAC;QAE/D,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACzC,MAAM,EAAC,QAAQ,GAAG,QAAQ,EAAC,GAAG,cAAc,CAAC;QAC7C,IAAI,QAAQ,KAAK,MAAM,EAAE;YACvB,MAAM,IAAA,2BAAa,EAAC,cAAc,CAAC,CAAC;SACrC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE;YAChC,cAAc,CAAC,QAAQ,GAAG,MAAM,CAAC;YACjC,MAAM,IAAA,iCAAyB,EAAC,cAAc,CAAC,CAAC;SACjD;aAAM,IAAI,QAAQ,KAAK,KAAK,EAAE;YAC7B,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACnC,MAAM,IAAA,iCAAyB,EAAC,cAAc,CAAC,CAAC;SACjD;QAED,OAAO,kCAAkC,CAAC;KAC3C;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;KACvC;AACH,CAAC;AAtBD,sEAsBC;AAEM,KAAK,UAAU,iBAAiB,CAAC,OAAe,EAAE,YAAqC;IAC5F,MAAM,KAAK,GAAG,cAAM,CAAC,KAAK,CAAC,+BAAuB,CAAC,CAAC;IAEpD,IAAI;QACF,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,EAAC,IAAI,EAAE,EAAC,OAAO,EAAE,YAAY,EAAC,EAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,WAAW,SAAS,aAAa,CAAC,CAAC;KAChD;IAAC,OAAO,KAAc,EAAE;QACvB,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,OAAO,CAAC,KAAK,CAAC,oCAAoC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SACpE;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAC9D;QACD,MAAM,KAAK,CAAC;KACb;AACH,CAAC;AAdD,8CAcC;AAEM,KAAK,UAAU,0BAA0B,CAAC,KAAuC;IACtF,IAAI,MAAM,oBAAW,CAAC,WAAW,CAAC,+BAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;QACpE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO;KACR;IACD,IAAI;QACF,MAAM,mBAAmB,GAAwB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,mBAAmB,CAAC,CAAC;QAEpE,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACzC,MAAM,EAAC,OAAO,EAAE,YAAY,EAAC,GAAG,mBAAmB,CAAC;QACpD,MAAM,UAAU,GAAgC,EAAE,CAAC;QAEnD,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAClE,IAAI,WAAW,KAAK,IAAI,EAAE;gBACxB,UAAU,CAAC,QAAQ,CAAC,GAAG,aAAK,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAChE;iBAAM,IAAI,WAAW,KAAK,IAAI,EAAE;gBAC/B,UAAU,CAAC,QAAQ,CAAC,GAAG,aAAK,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;aACjE;iBAAM,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACtC,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE;oBACzB,OAAO,CAAC,GAAG,CAAC,2BAA2B,WAAW,iBAAiB,QAAQ,EAAE,CAAC,CAAC;iBAChF;qBAAM;oBACL,UAAU,CAAC,QAAQ,CAAC,GAAG,aAAK,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;iBAC7E;aACF;iBAAM,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACtC,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE;oBACzB,OAAO,CAAC,GAAG,CAAC,2BAA2B,WAAW,iBAAiB,QAAQ,EAAE,CAAC,CAAC;iBAChF;qBAAM;oBACL,UAAU,CAAC,QAAQ,CAAC,GAAG,aAAK,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAC;iBAC9E;aACF;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,uBAAuB,WAAW,iBAAiB,QAAQ,EAAE,CAAC,CAAC;aAC5E;SACF;QACD,MAAM,SAAS,GAAG,UAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;QAC/C,MAAM,oBAAW,CAAC,iBAAiB,CAAC,+BAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,wBAAwB,CAAC;KACjC;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;KACvC;AACH,CAAC;AA5CD,gEA4CC"}
@@ -1,3 +1,5 @@
1
1
  import { FormData } from "emberflow-admin-client/lib/types";
2
- export declare function waitForSubmitFormQueueToEmpty(): Promise<void>;
3
- export declare function queueSubmitForm(formData: FormData): Promise<void>;
2
+ import { CloudEvent } from "firebase-functions/lib/v2/core";
3
+ import { MessagePublishedData } from "firebase-functions/lib/v2/providers/pubsub";
4
+ export declare function queueSubmitForm(formData: FormData): Promise<string>;
5
+ export declare function onMessageSubmitFormQueue(event: CloudEvent<MessagePublishedData>): Promise<"Processed form data" | undefined>;