emberflow 1.4.99 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,40 +1,145 @@
1
1
  # Emberflow
2
2
 
3
- Emberflow is a library for Firebase Functions that simplifies the process of setting up security, validation, and business logic.
3
+ Emberflow is a library for Firebase Functions that simplifies the process of setting up security, validation, and business logic. It provides a structured way to handle Firestore events and keep your data in sync across different collections.
4
+
5
+ ## Features
6
+
7
+ - **Centralized Security**: Define security rules for your entities in one place.
8
+ - **Validation**: Ensure your data is valid before it's saved to Firestore.
9
+ - **Business Logics**: Define complex business rules that are automatically triggered by Firestore changes.
10
+ - **View Logics**: Easily create and maintain denormalized data (views) across your database.
11
+ - **Patch Logics**: Handle versioning and data migrations seamlessly.
12
+ - **Billing Protection**: Built-in budget monitoring to prevent unexpected costs.
4
13
 
5
14
  ## Usage
6
15
 
7
16
  To use Emberflow in your Firebase Functions project, follow these steps:
8
17
 
9
- 1. Install Emberflow in your 'functions' folder:
18
+ ### 1. Install Emberflow
19
+
20
+ Install Emberflow in your `functions` folder:
10
21
 
11
22
  ```sh
12
23
  npm install emberflow
13
24
  ```
14
25
 
15
- 2. Import and initialize Emberflow in your Firebase Functions `index.ts` file:
26
+ ### 2. Initialize Emberflow
27
+
28
+ Import and initialize Emberflow in your Firebase Functions `index.ts` file. You'll need to provide your database structure, entities, security, validation, and logic configurations.
16
29
 
17
30
  ```typescript
18
31
  import * as admin from "firebase-admin";
19
- import {dbStructure, Entity} from "./db-structure";
20
- import {initializeEmberFlow} from "emberflow";
21
- import {securityConfigs} from "./security";
22
- import {validatorConfigs} from "./validators";
23
- import {logics} from "./business-logics";
32
+ import { initializeEmberFlow } from "emberflow";
33
+ import { projectConfig } from "./project-config";
34
+ import { dbStructure, Entity } from "./db-structure";
35
+ import { securityConfigs } from "./security";
36
+ import { validatorConfigs } from "./validators";
37
+ import { logics } from "./business-logics";
38
+ import { patchLogicConfigs } from "./patch-logics";
24
39
 
25
40
  admin.initializeApp();
26
- const {functionsConfig} = initializeEmberFlow(
41
+
42
+ const { functionsConfig } = initializeEmberFlow(
43
+ projectConfig,
27
44
  admin,
28
45
  dbStructure,
29
46
  Entity,
30
47
  securityConfigs,
31
48
  validatorConfigs,
32
- logics
49
+ logics,
50
+ patchLogicConfigs
33
51
  );
34
52
 
53
+ // Export the generated functions
35
54
  Object.entries(functionsConfig).forEach(([key, value]) => {
36
55
  exports[key] = value;
37
56
  });
38
57
  ```
39
- This example assumes you have the necessary files **(db-structure.ts, security.ts, validators.ts, and business-logics.ts)** in your project. For reference on how to set up these files, you can check the **src.sample-custom** folder in the Emberflow library.
58
+
59
+ ## Configuration
60
+
61
+ Emberflow relies on several configuration objects to define how your project behaves.
62
+
63
+ ### Database Structure (`dbStructure`)
64
+
65
+ Defines the hierarchy of your Firestore collections and how data is denormalized using views.
66
+
67
+ ```typescript
68
+ import { propView, view } from "emberflow/utils/db-structure";
69
+
70
+ export const dbStructure = {
71
+ users: {
72
+ [Entity.User]: {
73
+ feeds: {
74
+ [Entity.Feed]: {
75
+ createdBy: [propView("map", Entity.User, ["name", "email"])],
76
+ },
77
+ },
78
+ },
79
+ },
80
+ };
81
+ ```
82
+
83
+ ### Security Configs (`securityConfigs`)
84
+
85
+ Defines access control rules for each entity.
86
+
87
+ ```typescript
88
+ export const securityConfigs: SecurityConfig[] = [
89
+ {
90
+ entity: Entity.User,
91
+ securityFn: async (txnGet, entity, docPath, doc, actionType, modifiedFields, user) => {
92
+ if (actionType === "delete") return { status: "rejected", message: "Deletes not allowed" };
93
+ return { status: "allowed" };
94
+ },
95
+ version: "1",
96
+ },
97
+ ];
98
+ ```
99
+
100
+ ### Validator Configs (`validatorConfigs`)
101
+
102
+ Ensures data consistency before any logic is executed.
103
+
104
+ ```typescript
105
+ export const validatorConfigs: ValidatorConfig[] = [
106
+ {
107
+ entity: Entity.User,
108
+ validatorFn: async (document) => {
109
+ const result: ValidationResult = {};
110
+ if (!document.name) result["name"] = ["Name is required"];
111
+ return result;
112
+ },
113
+ version: "1",
114
+ },
115
+ ];
116
+ ```
117
+
118
+ ### Business Logics (`logics`)
119
+
120
+ Defines the side effects of data changes.
121
+
122
+ ```typescript
123
+ export const logics: LogicConfig[] = [
124
+ {
125
+ name: "EchoLogic",
126
+ actionTypes: ["create", "update"],
127
+ modifiedFields: "all",
128
+ entities: "all",
129
+ logicFn: async (txnGet, action, sharedMap) => {
130
+ // Your business logic here
131
+ return {
132
+ name: "EchoLogic",
133
+ status: "finished",
134
+ documents: [], // documents to create/update/delete
135
+ };
136
+ },
137
+ version: "1",
138
+ },
139
+ ];
140
+ ```
141
+
142
+ ## Reference
143
+
144
+ For more detailed examples on how to set up these configuration files, you can check the `src/sample-custom` folder in the Emberflow repository.
40
145
 
package/lib/index.js CHANGED
@@ -157,8 +157,9 @@ function initializeEmberFlow(customProjectConfig, adminInstance, customDbStructu
157
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
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
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"]);
160
161
  exports.functionsConfig["onUserRegister"] =
161
- functions.runWith(Object.assign(Object.assign(Object.assign(Object.assign({}, ((onUserRegisterConfig === null || onUserRegisterConfig === void 0 ? void 0 : onUserRegisterConfig.memory) ? { memory: onUserRegisterConfig.memory.replace("MiB", "") } : {})), ((onUserRegisterConfig === null || onUserRegisterConfig === void 0 ? void 0 : onUserRegisterConfig.timeoutSeconds) ? { timeoutSeconds: onUserRegisterConfig.timeoutSeconds } : {})), ((onUserRegisterConfig === null || onUserRegisterConfig === void 0 ? void 0 : onUserRegisterConfig.minInstances) ? { minInstances: onUserRegisterConfig.minInstances } : {})), ((onUserRegisterConfig === null || onUserRegisterConfig === void 0 ? void 0 : onUserRegisterConfig.maxInstances) ? { maxInstances: onUserRegisterConfig.maxInstances } : {}))).auth.user().onCreate(exports.onUserRegister);
162
+ 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);
162
163
  return { docPaths: exports.docPaths, colPaths: exports.colPaths, docPathsRegex: exports.docPathsRegex, entityViewDefinitions: exports.entityViewDefinitions, functionsConfig: exports.functionsConfig };
163
164
  }
164
165
  exports.initializeEmberFlow = initializeEmberFlow;
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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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,40 @@
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 project_config_1 = require("./project-config");
29
+ const db_structure_1 = require("./db-structure");
30
+ const security_1 = require("./security");
31
+ const validators_1 = require("./validators");
32
+ const business_logics_1 = require("./business-logics");
33
+ const patch_logics_1 = require("./patch-logics");
34
+ admin.initializeApp();
35
+ const { functionsConfig } = (0, index_1.initializeEmberFlow)(project_config_1.projectConfig, admin, db_structure_1.dbStructure, db_structure_1.Entity, security_1.securityConfigs, validators_1.validatorConfigs, business_logics_1.logics, patch_logics_1.patchLogicConfigs);
36
+ // Export the generated functions
37
+ Object.entries(functionsConfig).forEach(([key, value]) => {
38
+ exports[key] = value;
39
+ });
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sample-custom/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAwC;AACxC,oCAA+C;AAC/C,qDAAiD;AACjD,iDAAqD;AACrD,yCAA6C;AAC7C,6CAAgD;AAChD,uDAA2C;AAC3C,iDAAmD;AAEnD,KAAK,CAAC,aAAa,EAAE,CAAC;AAEtB,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,2BAAmB,EAC7C,8BAAa,EACb,KAAK,EACL,0BAAW,EACX,qBAAM,EACN,0BAAe,EACf,6BAAgB,EAChB,wBAAM,EACN,gCAAiB,CAClB,CAAC;AAEF,iCAAiC;AACjC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;IACvD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -24,6 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.patchLogicConfigs = void 0;
27
+ const db_structure_1 = require("./db-structure");
27
28
  const admin = __importStar(require("firebase-admin"));
28
29
  const samplePatchLogic = async (dstPath, data) => {
29
30
  console.log(`Executing patch logic on document at ${dstPath}...`);
@@ -49,7 +50,7 @@ const samplePatchLogic = async (dstPath, data) => {
49
50
  exports.patchLogicConfigs = [
50
51
  {
51
52
  name: "samplePatchLogic",
52
- entity: "user",
53
+ entity: db_structure_1.Entity.User,
53
54
  patchLogicFn: samplePatchLogic,
54
55
  version: "1",
55
56
  },
@@ -1 +1 @@
1
- {"version":3,"file":"patch-logics.js","sourceRoot":"","sources":["../../src/sample-custom/patch-logics.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,sDAAwC;AAExC,MAAM,gBAAgB,GAAiB,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC7D,OAAO,CAAC,GAAG,CAAC,wCAAwC,OAAO,KAAK,CAAC,CAAC;IAElE,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElD,0CAA0C;IAC1C,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;QACpB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;QAC7C,SAAS,EAAE;YACT;gBACE,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,OAAO;gBAChB,GAAG,EAAE,EAAC,SAAS,EAAE,QAAQ,EAAC;gBAC1B,YAAY,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC;gBAC/B,QAAQ,EAAE,QAAQ;aACnB;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AAGW,QAAA,iBAAiB,GAAuB;IACnD;QACE,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,gBAAgB;QAC9B,OAAO,EAAE,GAAG;KACb;CACF,CAAC"}
1
+ {"version":3,"file":"patch-logics.js","sourceRoot":"","sources":["../../src/sample-custom/patch-logics.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAsC;AAEtC,sDAAwC;AAExC,MAAM,gBAAgB,GAAiB,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC7D,OAAO,CAAC,GAAG,CAAC,wCAAwC,OAAO,KAAK,CAAC,CAAC;IAElE,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAElD,0CAA0C;IAC1C,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;QACpB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE;QAC7C,SAAS,EAAE;YACT;gBACE,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,OAAO;gBAChB,GAAG,EAAE,EAAC,SAAS,EAAE,QAAQ,EAAC;gBAC1B,YAAY,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC;gBAC/B,QAAQ,EAAE,QAAQ;aACnB;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AAGW,QAAA,iBAAiB,GAAuB;IACnD;QACE,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE,qBAAM,CAAC,IAAI;QACnB,YAAY,EAAE,gBAAgB;QAC9B,OAAO,EAAE,GAAG;KACb;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ProjectConfig } from "../types";
2
+ export declare const projectConfig: ProjectConfig;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.projectConfig = void 0;
4
+ exports.projectConfig = {
5
+ projectId: "your-project-id",
6
+ region: "us-central1",
7
+ rtdbName: "your-rtdb-name",
8
+ budgetAlertTopicName: "budget-alerts",
9
+ maxCostLimitPerFunction: 10,
10
+ specialCostLimitPerFunction: {},
11
+ };
12
+ //# sourceMappingURL=project-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../src/sample-custom/project-config.ts"],"names":[],"mappings":";;;AAEa,QAAA,aAAa,GAAkB;IAC1C,SAAS,EAAE,iBAAiB;IAC5B,MAAM,EAAE,aAAa;IACrB,QAAQ,EAAE,gBAAgB;IAC1B,oBAAoB,EAAE,eAAe;IACrC,uBAAuB,EAAE,EAAE;IAC3B,2BAA2B,EAAE,EAAE;CAChC,CAAC"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.securityConfigs = void 0;
4
4
  const db_structure_1 = require("./db-structure");
5
5
  // A security function that allows all actions
6
- const allAllowed = async (entity, doc, actionType, modifiedFields, user) => {
6
+ const allAllowed = async (txnGet, entity, docPath, doc, actionType, modifiedFields, user) => {
7
7
  console.log(`Security check for entity ${entity}, action type ${actionType},
8
8
  and modified fields:`, modifiedFields);
9
9
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/sample-custom/security.ts"],"names":[],"mappings":";;;AAAA,iDAAsC;AAQtC,8CAA8C;AAC9C,MAAM,UAAU,GAAe,KAAK,EAClC,MAAM,EACN,GAAG,EACH,UAAU,EACV,cAAc,EACd,IAAI,EACJ,EAAE;IACF,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,iBAAiB,UAAU;wBACpD,EAAE,cAAc,CAAC,CAAC;IACxC,OAAO;QACL,MAAM,EAAE,SAAS;KAClB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,cAAc,GAChB,KAAK,EACH,MAAM,EACN,MAAM,EACN,OAAO,EACP,GAAG,EACH,UAAU,EACV,cAAc,EACd,IAAI,EACsB,EAAE;IAC5B,QAAQ,UAAU,EAAE;QACpB,KAAK,QAAQ,CAAC,CAAC;YACb,uDAAuD;YACvD,oDAAoD;YACpD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;YACnC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,cAAc,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YACtD,IAAI,MAAsB,CAAC;YAC3B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACpC,MAAM,GAAG;oBACP,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE;eACN,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBAC/B,CAAC;aACH;iBAAM;gBACL,MAAM,GAAG;oBACP,MAAM,EAAE,SAAS;iBAClB,CAAC;aACH;YACD,OAAO,MAAM,CAAC;SACf;QAED,KAAK,QAAQ,CAAC,CAAC;YACb,6DAA6D;YAC7D,IAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,CAAC,YAAY,CAAC,EAAE;gBAC1C,OAAO;oBACL,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,+CAA+C;iBACzD,CAAC;aACH;YACD,MAAM;SACP;QACD,KAAK,QAAQ;YACX,sCAAsC;YACtC,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,6CAA6C;aACvD,CAAC;KACH;IAED,OAAO;QACL,MAAM,EAAE,SAAS;KAClB,CAAC;AACJ,CAAC,CAAC;AAEO,QAAA,eAAe,GAAqB;IAC/C;QACE,MAAM,EAAE,qBAAM,CAAC,IAAI;QACnB,UAAU,EAAE,cAAc;QAC1B,OAAO,EAAE,GAAG;KACb;IACD;QACE,MAAM,EAAE,qBAAM,CAAC,IAAI;QACnB,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE,GAAG;KACb;IACD;QACE,MAAM,EAAE,qBAAM,CAAC,MAAM;QACrB,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE,GAAG;KACb;CACF,CAAC"}
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/sample-custom/security.ts"],"names":[],"mappings":";;;AAAA,iDAAsC;AAQtC,8CAA8C;AAC9C,MAAM,UAAU,GAAe,KAAK,EAClC,MAAM,EACN,MAAM,EACN,OAAO,EACP,GAAG,EACH,UAAU,EACV,cAAc,EACd,IAAI,EACJ,EAAE;IACF,OAAO,CAAC,GAAG,CAAC,6BAA6B,MAAM,iBAAiB,UAAU;wBACpD,EAAE,cAAc,CAAC,CAAC;IACxC,OAAO;QACL,MAAM,EAAE,SAAS;KAClB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,cAAc,GAChB,KAAK,EACH,MAAM,EACN,MAAM,EACN,OAAO,EACP,GAAG,EACH,UAAU,EACV,cAAc,EACd,IAAI,EACsB,EAAE;IAC5B,QAAQ,UAAU,EAAE;QACpB,KAAK,QAAQ,CAAC,CAAC;YACb,uDAAuD;YACvD,oDAAoD;YACpD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;YACnC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,cAAc,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YACtD,IAAI,MAAsB,CAAC;YAC3B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACpC,MAAM,GAAG;oBACP,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE;eACN,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBAC/B,CAAC;aACH;iBAAM;gBACL,MAAM,GAAG;oBACP,MAAM,EAAE,SAAS;iBAClB,CAAC;aACH;YACD,OAAO,MAAM,CAAC;SACf;QAED,KAAK,QAAQ,CAAC,CAAC;YACb,6DAA6D;YAC7D,IAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,CAAC,YAAY,CAAC,EAAE;gBAC1C,OAAO;oBACL,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,+CAA+C;iBACzD,CAAC;aACH;YACD,MAAM;SACP;QACD,KAAK,QAAQ;YACX,sCAAsC;YACtC,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,6CAA6C;aACvD,CAAC;KACH;IAED,OAAO;QACL,MAAM,EAAE,SAAS;KAClB,CAAC;AACJ,CAAC,CAAC;AAEO,QAAA,eAAe,GAAqB;IAC/C;QACE,MAAM,EAAE,qBAAM,CAAC,IAAI;QACnB,UAAU,EAAE,cAAc;QAC1B,OAAO,EAAE,GAAG;KACb;IACD;QACE,MAAM,EAAE,qBAAM,CAAC,IAAI;QACnB,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE,GAAG;KACb;IACD;QACE,MAAM,EAAE,qBAAM,CAAC,MAAM;QACrB,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE,GAAG;KACb;CACF,CAAC"}
package/lib/types.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as admin from "firebase-admin";
2
2
  import { firestore } from "firebase-admin";
3
3
  import { MemoryOption } from "firebase-functions/v2/options";
4
+ import { SecretParam } from "firebase-functions/params";
4
5
  import Timestamp = firestore.Timestamp;
5
6
  import DocumentData = firestore.DocumentData;
6
7
  import { FormData } from "emberflow-admin-client/lib/types";
@@ -13,6 +14,11 @@ export interface FunctionConfig {
13
14
  maxInstances?: number;
14
15
  minInstances?: number;
15
16
  retry?: boolean;
17
+ /**
18
+ * List of Firebase Secrets to bind to this function.
19
+ * Required for Genkit/Gemini API keys.
20
+ */
21
+ secrets?: (string | SecretParam)[];
16
22
  }
17
23
  export interface ProjectConfig {
18
24
  projectId: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "emberflow",
3
- "version": "1.4.99",
3
+ "version": "1.5.0",
4
4
  "description": "A Firebase Cloud Functions library for handling document changes in a structured way",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.js",
@@ -0,0 +1,26 @@
1
+ import * as admin from "firebase-admin";
2
+ import { initializeEmberFlow } from "../index";
3
+ import { projectConfig } from "./project-config";
4
+ import { dbStructure, Entity } from "./db-structure";
5
+ import { securityConfigs } from "./security";
6
+ import { validatorConfigs } from "./validators";
7
+ import { logics } from "./business-logics";
8
+ import { patchLogicConfigs } from "./patch-logics";
9
+
10
+ admin.initializeApp();
11
+
12
+ const { functionsConfig } = initializeEmberFlow(
13
+ projectConfig,
14
+ admin,
15
+ dbStructure,
16
+ Entity,
17
+ securityConfigs,
18
+ validatorConfigs,
19
+ logics,
20
+ patchLogicConfigs
21
+ );
22
+
23
+ // Export the generated functions
24
+ Object.entries(functionsConfig).forEach(([key, value]) => {
25
+ exports[key] = value;
26
+ });
@@ -1,3 +1,4 @@
1
+ import {Entity} from "./db-structure";
1
2
  import {PatchLogicConfig, PatchLogicFn} from "../types";
2
3
  import * as admin from "firebase-admin";
3
4
 
@@ -29,7 +30,7 @@ const samplePatchLogic: PatchLogicFn = async (dstPath, data) => {
29
30
  export const patchLogicConfigs: PatchLogicConfig[] = [
30
31
  {
31
32
  name: "samplePatchLogic",
32
- entity: "user",
33
+ entity: Entity.User,
33
34
  patchLogicFn: samplePatchLogic,
34
35
  version: "1",
35
36
  },
@@ -0,0 +1,10 @@
1
+ import {ProjectConfig} from "../types";
2
+
3
+ export const projectConfig: ProjectConfig = {
4
+ projectId: "your-project-id",
5
+ region: "us-central1",
6
+ rtdbName: "your-rtdb-name",
7
+ budgetAlertTopicName: "budget-alerts",
8
+ maxCostLimitPerFunction: 10,
9
+ specialCostLimitPerFunction: {},
10
+ };
@@ -8,7 +8,9 @@ import {
8
8
 
9
9
  // A security function that allows all actions
10
10
  const allAllowed: SecurityFn = async (
11
+ txnGet,
11
12
  entity,
13
+ docPath,
12
14
  doc,
13
15
  actionType,
14
16
  modifiedFields,