@flowerforce/flowerbase 1.0.1-beta.8 → 1.0.2

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 (178) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +1 -1
  3. package/README.md +466 -7
  4. package/dist/auth/controller.d.ts.map +1 -1
  5. package/dist/auth/controller.js +11 -1
  6. package/dist/auth/providers/local-userpass/controller.d.ts.map +1 -1
  7. package/dist/auth/providers/local-userpass/controller.js +15 -15
  8. package/dist/auth/utils.d.ts +2 -1
  9. package/dist/auth/utils.d.ts.map +1 -1
  10. package/dist/auth/utils.js +14 -10
  11. package/dist/constants.d.ts.map +1 -1
  12. package/dist/constants.js +3 -3
  13. package/dist/features/endpoints/utils.d.ts +1 -1
  14. package/dist/features/endpoints/utils.d.ts.map +1 -1
  15. package/dist/features/endpoints/utils.js +5 -2
  16. package/dist/features/functions/controller.d.ts.map +1 -1
  17. package/dist/features/functions/controller.js +12 -8
  18. package/dist/features/functions/dtos.d.ts +2 -1
  19. package/dist/features/functions/dtos.d.ts.map +1 -1
  20. package/dist/features/functions/interface.d.ts +2 -1
  21. package/dist/features/functions/interface.d.ts.map +1 -1
  22. package/dist/features/functions/utils.d.ts +1 -1
  23. package/dist/features/functions/utils.d.ts.map +1 -1
  24. package/dist/features/functions/utils.js +4 -4
  25. package/dist/features/triggers/index.d.ts.map +1 -1
  26. package/dist/features/triggers/index.js +9 -3
  27. package/dist/features/triggers/interface.d.ts +4 -4
  28. package/dist/features/triggers/interface.d.ts.map +1 -1
  29. package/dist/features/triggers/utils.d.ts.map +1 -1
  30. package/dist/features/triggers/utils.js +25 -14
  31. package/dist/global.d.ts +9 -0
  32. package/dist/global.d.ts.map +1 -0
  33. package/dist/global.js +2 -0
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +13 -9
  37. package/dist/model.d.ts +1 -0
  38. package/dist/model.d.ts.map +1 -1
  39. package/dist/model.js +15 -0
  40. package/dist/services/api/index.d.ts.map +1 -1
  41. package/dist/services/api/index.js +6 -1
  42. package/dist/services/aws/index.d.ts.map +1 -1
  43. package/dist/services/aws/index.js +5 -5
  44. package/dist/services/index.d.ts.map +1 -1
  45. package/dist/services/mongodb-atlas/index.d.ts.map +1 -1
  46. package/dist/services/mongodb-atlas/index.js +76 -71
  47. package/dist/services/mongodb-atlas/model.d.ts +3 -3
  48. package/dist/services/mongodb-atlas/model.d.ts.map +1 -1
  49. package/dist/services/mongodb-atlas/utils.d.ts.map +1 -1
  50. package/dist/state.d.ts +2 -2
  51. package/dist/state.d.ts.map +1 -1
  52. package/dist/utils/context/helpers.d.ts +4 -4
  53. package/dist/utils/context/helpers.d.ts.map +1 -1
  54. package/dist/utils/context/helpers.js +1 -1
  55. package/dist/utils/context/index.d.ts.map +1 -1
  56. package/dist/utils/context/index.js +6 -5
  57. package/dist/utils/helpers/someAsync.d.ts.map +1 -1
  58. package/dist/utils/initializer/exposeRoutes.d.ts.map +1 -1
  59. package/dist/utils/initializer/exposeRoutes.js +44 -1
  60. package/dist/utils/initializer/registerPlugins.d.ts.map +1 -1
  61. package/dist/utils/initializer/registerPlugins.js +9 -9
  62. package/dist/utils/roles/helpers.d.ts.map +1 -1
  63. package/dist/utils/roles/helpers.js +9 -7
  64. package/dist/utils/roles/interface.d.ts.map +1 -1
  65. package/dist/utils/roles/machines/commonValidators.d.ts +2 -2
  66. package/dist/utils/roles/machines/commonValidators.d.ts.map +1 -1
  67. package/dist/utils/roles/machines/commonValidators.js +5 -6
  68. package/dist/utils/roles/machines/index.d.ts.map +1 -1
  69. package/dist/utils/roles/machines/interface.d.ts.map +1 -1
  70. package/dist/utils/roles/machines/machine.d.ts +3 -3
  71. package/dist/utils/roles/machines/machine.d.ts.map +1 -1
  72. package/dist/utils/roles/machines/machine.js +12 -4
  73. package/dist/utils/roles/machines/read/A/index.d.ts.map +1 -1
  74. package/dist/utils/roles/machines/read/A/index.js +12 -2
  75. package/dist/utils/roles/machines/read/B/index.d.ts.map +1 -1
  76. package/dist/utils/roles/machines/read/B/index.js +20 -5
  77. package/dist/utils/roles/machines/read/C/index.d.ts.map +1 -1
  78. package/dist/utils/roles/machines/read/C/index.js +20 -5
  79. package/dist/utils/roles/machines/read/D/index.d.ts.map +1 -1
  80. package/dist/utils/roles/machines/read/D/index.js +13 -3
  81. package/dist/utils/roles/machines/read/D/validators.d.ts +1 -1
  82. package/dist/utils/roles/machines/read/D/validators.d.ts.map +1 -1
  83. package/dist/utils/roles/machines/read/D/validators.js +8 -4
  84. package/dist/utils/roles/machines/utils.d.ts +4 -4
  85. package/dist/utils/roles/machines/utils.d.ts.map +1 -1
  86. package/dist/utils/roles/machines/utils.js +5 -1
  87. package/dist/utils/roles/machines/write/A/index.d.ts.map +1 -1
  88. package/dist/utils/roles/machines/write/A/index.js +13 -3
  89. package/dist/utils/roles/machines/write/B/index.d.ts.map +1 -1
  90. package/dist/utils/roles/machines/write/B/index.js +37 -10
  91. package/dist/utils/roles/machines/write/C/index.d.ts.map +1 -1
  92. package/dist/utils/roles/machines/write/C/index.js +13 -3
  93. package/dist/utils/roles/machines/write/C/validators.d.ts +1 -1
  94. package/dist/utils/roles/machines/write/C/validators.d.ts.map +1 -1
  95. package/dist/utils/roles/machines/write/C/validators.js +8 -4
  96. package/dist/utils/rules-matcher/interface.d.ts.map +1 -1
  97. package/dist/utils/rules-matcher/utils.d.ts.map +1 -1
  98. package/dist/utils/rules.d.ts.map +1 -1
  99. package/package.json +9 -2
  100. package/src/auth/controller.ts +12 -1
  101. package/src/auth/providers/local-userpass/controller.ts +47 -39
  102. package/src/auth/providers/local-userpass/dtos.ts +1 -1
  103. package/src/auth/utils.ts +24 -18
  104. package/src/constants.ts +7 -3
  105. package/src/features/endpoints/utils.ts +6 -4
  106. package/src/features/functions/controller.ts +23 -22
  107. package/src/features/functions/dtos.ts +9 -9
  108. package/src/features/functions/interface.ts +2 -1
  109. package/src/features/functions/utils.ts +12 -12
  110. package/src/features/triggers/index.ts +9 -6
  111. package/src/features/triggers/interface.ts +9 -10
  112. package/src/features/triggers/utils.ts +57 -29
  113. package/src/global.ts +9 -0
  114. package/src/index.ts +16 -11
  115. package/src/model.ts +3 -1
  116. package/src/services/api/index.ts +6 -1
  117. package/src/services/aws/index.ts +19 -17
  118. package/src/services/mongodb-atlas/index.ts +204 -163
  119. package/src/services/mongodb-atlas/model.ts +13 -13
  120. package/src/services/mongodb-atlas/utils.ts +6 -4
  121. package/src/state.ts +32 -20
  122. package/src/utils/__tests__/STEP_A_STATES.test.ts +78 -47
  123. package/src/utils/__tests__/STEP_B_STATES.test.ts +168 -105
  124. package/src/utils/__tests__/STEP_C_STATES.test.ts +150 -78
  125. package/src/utils/__tests__/STEP_D_STATES.test.ts +129 -86
  126. package/src/utils/__tests__/checkAdditionalFieldsFn.test.ts +35 -35
  127. package/src/utils/__tests__/checkApplyWhen.test.ts +40 -41
  128. package/src/utils/__tests__/checkFieldsPropertyExists.test.ts +40 -40
  129. package/src/utils/__tests__/checkIsValidFieldNameFn.test.ts +185 -184
  130. package/src/utils/__tests__/comparePassword.test.ts +27 -30
  131. package/src/utils/__tests__/evaluateDocumentsFiltersReadFn.test.ts +55 -47
  132. package/src/utils/__tests__/evaluateDocumentsFiltersWriteFn.test.ts +61 -47
  133. package/src/utils/__tests__/evaluateTopLevelReadFn.test.ts +48 -48
  134. package/src/utils/__tests__/evaluateTopLevelWriteFn.test.ts +56 -56
  135. package/src/utils/__tests__/exposeRoutes.test.ts +46 -44
  136. package/src/utils/__tests__/generateContextData.test.ts +57 -51
  137. package/src/utils/__tests__/getDefaultRule.test.ts +32 -27
  138. package/src/utils/__tests__/getKey.test.ts +10 -10
  139. package/src/utils/__tests__/getKeys.test.ts +10 -9
  140. package/src/utils/__tests__/getWinningRole.test.ts +57 -50
  141. package/src/utils/__tests__/hashPassword.test.ts +24 -25
  142. package/src/utils/__tests__/isEmpty.test.ts +14 -15
  143. package/src/utils/__tests__/logMachineInfo.test.ts +12 -12
  144. package/src/utils/__tests__/operators.test.ts +94 -96
  145. package/src/utils/__tests__/readFileContent.test.ts +28 -28
  146. package/src/utils/__tests__/registerPlugins.test.ts +44 -32
  147. package/src/utils/__tests__/rule.test.ts +47 -49
  148. package/src/utils/__tests__/rulesMatcherInterfaces.test.ts +57 -52
  149. package/src/utils/__tests__/rulesMatcherUtils.test.ts +64 -53
  150. package/src/utils/__tests__/someAsync.test.ts +46 -49
  151. package/src/utils/context/helpers.ts +1 -1
  152. package/src/utils/context/index.ts +9 -10
  153. package/src/utils/crypto/index.ts +2 -2
  154. package/src/utils/helpers/someAsync.ts +11 -11
  155. package/src/utils/initializer/exposeRoutes.ts +56 -2
  156. package/src/utils/initializer/registerPlugins.ts +11 -13
  157. package/src/utils/roles/helpers.ts +22 -15
  158. package/src/utils/roles/interface.ts +2 -3
  159. package/src/utils/roles/machines/commonValidators.ts +23 -14
  160. package/src/utils/roles/machines/index.ts +7 -4
  161. package/src/utils/roles/machines/interface.ts +17 -5
  162. package/src/utils/roles/machines/machine.ts +97 -72
  163. package/src/utils/roles/machines/read/A/index.ts +12 -4
  164. package/src/utils/roles/machines/read/B/index.ts +20 -7
  165. package/src/utils/roles/machines/read/C/index.ts +24 -8
  166. package/src/utils/roles/machines/read/D/index.ts +14 -8
  167. package/src/utils/roles/machines/read/D/validators.ts +21 -13
  168. package/src/utils/roles/machines/read/index.ts +5 -5
  169. package/src/utils/roles/machines/utils.ts +30 -13
  170. package/src/utils/roles/machines/write/A/index.ts +13 -5
  171. package/src/utils/roles/machines/write/B/index.ts +42 -16
  172. package/src/utils/roles/machines/write/C/index.ts +14 -8
  173. package/src/utils/roles/machines/write/C/validators.ts +21 -13
  174. package/src/utils/roles/machines/write/index.ts +4 -4
  175. package/src/utils/rules-matcher/interface.ts +4 -4
  176. package/src/utils/rules-matcher/utils.ts +10 -6
  177. package/src/utils/rules.ts +12 -5
  178. package/src/global.d.ts +0 -0
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getMailConfig = exports.loadCustomUserData = exports.loadAuthConfig = exports.PROVIDER_TYPE = exports.AUTH_ERRORS = exports.AUTH_ENDPOINTS = exports.REGISTRATION_SCHEMA = exports.CONFIRM_RESET_SCHEMA = exports.RESET_SCHEMA = exports.LOGIN_SCHEMA = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
8
9
  exports.LOGIN_SCHEMA = {
9
10
  body: {
10
11
  type: 'object',
@@ -54,6 +55,7 @@ var AUTH_ENDPOINTS;
54
55
  AUTH_ENDPOINTS["SESSION"] = "/session";
55
56
  AUTH_ENDPOINTS["RESET"] = "/reset/call";
56
57
  AUTH_ENDPOINTS["CONFIRM_RESET"] = "/reset";
58
+ AUTH_ENDPOINTS["FIRST_USER"] = "/setup/first-user";
57
59
  })(AUTH_ENDPOINTS || (exports.AUTH_ENDPOINTS = AUTH_ENDPOINTS = {}));
58
60
  var AUTH_ERRORS;
59
61
  (function (AUTH_ERRORS) {
@@ -67,7 +69,8 @@ exports.PROVIDER_TYPE = 'local-userpass';
67
69
  * @testable
68
70
  */
69
71
  const loadAuthConfig = () => {
70
- return JSON.parse(fs_1.default.readFileSync('auth/providers.json', 'utf-8'));
72
+ const authPath = path_1.default.join(require.main.path, 'auth/providers.json');
73
+ return JSON.parse(fs_1.default.readFileSync(authPath, 'utf-8'));
71
74
  };
72
75
  exports.loadAuthConfig = loadAuthConfig;
73
76
  /**
@@ -75,20 +78,21 @@ exports.loadAuthConfig = loadAuthConfig;
75
78
  * @testable
76
79
  */
77
80
  const loadCustomUserData = () => {
78
- return JSON.parse(fs_1.default.readFileSync('auth/custom_user_data.json', 'utf-8'));
81
+ const userDataPath = path_1.default.join(require.main.path, 'auth/custom_user_data.json');
82
+ return JSON.parse(fs_1.default.readFileSync(userDataPath, 'utf-8'));
79
83
  };
80
84
  exports.loadCustomUserData = loadCustomUserData;
81
85
  const getMailConfig = (resetPasswordConfig, token, tokenId) => {
82
86
  var _a, _b, _c;
83
87
  const { mailConfig, resetPasswordUrl } = resetPasswordConfig;
84
- const ENV_PREFIX = "ENV";
88
+ const ENV_PREFIX = 'ENV';
85
89
  const { from, subject, mailToken } = mailConfig;
86
- const [fromPrefix, fromPath] = from.split(".");
87
- const currentSender = (_a = (fromPrefix === ENV_PREFIX ? process.env[fromPath] : from)) !== null && _a !== void 0 ? _a : "";
88
- const [subjectPrefix, subjectPath] = subject.split(".");
89
- const currentSubject = (_b = (subjectPrefix === ENV_PREFIX ? process.env[subjectPath] : subject)) !== null && _b !== void 0 ? _b : "";
90
- const [mailTokenPrefix, mailTokenPath] = mailToken.split(".");
91
- const currentMailToken = (_c = (mailTokenPrefix === "ENV" ? process.env[mailTokenPath] : mailToken)) !== null && _c !== void 0 ? _c : "";
90
+ const [fromPrefix, fromPath] = from.split('.');
91
+ const currentSender = (_a = (fromPrefix === ENV_PREFIX ? process.env[fromPath] : from)) !== null && _a !== void 0 ? _a : '';
92
+ const [subjectPrefix, subjectPath] = subject.split('.');
93
+ const currentSubject = (_b = (subjectPrefix === ENV_PREFIX ? process.env[subjectPath] : subject)) !== null && _b !== void 0 ? _b : '';
94
+ const [mailTokenPrefix, mailTokenPath] = mailToken.split('.');
95
+ const currentMailToken = (_c = (mailTokenPrefix === 'ENV' ? process.env[mailTokenPath] : mailToken)) !== null && _c !== void 0 ? _c : '';
92
96
  const link = `${resetPasswordUrl}/${token}/${tokenId}`;
93
97
  const body = `<body style="font-family: Arial, sans-serif; background-color: #f4f4f4; text-align: center; padding: 20px;">
94
98
  <table width="100%" cellspacing="0" cellpadding="0">
@@ -113,7 +117,7 @@ const getMailConfig = (resetPasswordConfig, token, tokenId) => {
113
117
  </table>
114
118
  </body>`;
115
119
  return {
116
- from: currentSender !== null && currentSender !== void 0 ? currentSender : "",
120
+ from: currentSender !== null && currentSender !== void 0 ? currentSender : '',
117
121
  subject: currentSubject,
118
122
  mailToken: currentMailToken,
119
123
  body
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc;;;;;;;;CAQ1B,CAAA;AACD,eAAO,MAAM,WAAW,QAA8C,CAAA;AACtE,eAAO,MAAM,YAAY,QAA8B,CAAA;AACvD,eAAO,MAAM,OAAO,QAAgB,CAAA;AACpC,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,cAAc;;;;;;;;CAQ1B,CAAA;AACD,eAAO,MAAM,WAAW,QAA8C,CAAA;AACtE,eAAO,MAAM,YAAY,QAA8B,CAAA;AACvD,eAAO,MAAM,OAAO,QAAgB,CAAA;AACpC,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAA"}
package/dist/constants.js CHANGED
@@ -13,13 +13,13 @@ var __rest = (this && this.__rest) || function (s, e) {
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.AUTH_CONFIG = exports.DB_NAME = exports.HTTPS_SCHEMA = exports.API_VERSION = exports.DEFAULT_CONFIG = void 0;
15
15
  const utils_1 = require("./auth/utils");
16
- const { database_name, collection_name = 'users', user_id_field = "id" } = (0, utils_1.loadCustomUserData)();
16
+ const { database_name, collection_name = 'users', user_id_field = 'id' } = (0, utils_1.loadCustomUserData)();
17
17
  const _a = (0, utils_1.loadAuthConfig)(), { auth_collection = 'auth_users' } = _a, configuration = __rest(_a, ["auth_collection"]);
18
18
  exports.DEFAULT_CONFIG = {
19
19
  PORT: Number(process.env.PORT) || 3000,
20
20
  MONGODB_URL: process.env.MONGODB_URL || '',
21
21
  JWT_SECRET: process.env.JWT_SECRET || '',
22
- API_VERSION: process.env.API_VERSION || "v2.0",
22
+ API_VERSION: process.env.API_VERSION || 'v2.0',
23
23
  HTTPS_SCHEMA: process.env.HTTPS_SCHEMA || 'https',
24
24
  HOST: process.env.HOST || '0.0.0.0',
25
25
  ENABLE_LOGGER: process.env.ENABLE_LOGGER
@@ -30,7 +30,7 @@ exports.DB_NAME = database_name;
30
30
  exports.AUTH_CONFIG = {
31
31
  authCollection: auth_collection,
32
32
  userCollection: collection_name,
33
- resetPasswordCollection: "reset-password-requests",
33
+ resetPasswordCollection: 'reset-password-requests',
34
34
  resetPasswordConfig: configuration['local-userpass'].config,
35
35
  user_id_field
36
36
  };
@@ -4,7 +4,7 @@ import { Endpoints, GenerateHandlerParams } from './interface';
4
4
  * > Loads the endpoint config json file
5
5
  * @testable
6
6
  */
7
- export declare const loadEndpoints: () => Promise<Endpoints>;
7
+ export declare const loadEndpoints: (rootDir?: string) => Promise<Endpoints>;
8
8
  /**
9
9
  * > Creates an object with a config for all HTTP methods
10
10
  * @testable
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/features/endpoints/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAKvE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAE9D;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,SAAS,CAQvD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,KAAK,eAAe,EACpB,SAAS,UAAU,CAAC,OAAO,eAAe,CAAC,EAC3C,UAAU,MAAM;;;;;;;CAQhB,CAAA;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,yCAI7B,qBAAqB,MACR,KAAK,cAAc,EAAE,KAAK,YAAY,gBAiBrD,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/features/endpoints/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAKvE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAE9D;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAU,gBAAuB,KAAG,OAAO,CAAC,SAAS,CAS9E,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAC3B,KAAK,eAAe,EACpB,SAAS,UAAU,CAAC,OAAO,eAAe,CAAC,EAC3C,UAAU,MAAM;;;;;;;CAQhB,CAAA;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,yCAI7B,qBAAqB,MACR,KAAK,cAAc,EAAE,KAAK,YAAY,gBAiBrD,CAAA"}
@@ -25,14 +25,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.generateHandler = exports.getMethodsConfig = exports.loadEndpoints = void 0;
27
27
  const fs_1 = __importDefault(require("fs"));
28
+ const node_path_1 = __importDefault(require("node:path"));
28
29
  const services_1 = require("../../services");
29
30
  const context_1 = require("../../utils/context");
30
31
  /**
31
32
  * > Loads the endpoint config json file
32
33
  * @testable
33
34
  */
34
- const loadEndpoints = () => __awaiter(void 0, void 0, void 0, function* () {
35
- const config = JSON.parse(fs_1.default.readFileSync('http_endpoints/config.json', 'utf-8'));
35
+ const loadEndpoints = (...args_1) => __awaiter(void 0, [...args_1], void 0, function* (rootDir = process.cwd()) {
36
+ const endpointsDir = 'http_endpoints';
37
+ const endPointsFile = node_path_1.default.join(rootDir, endpointsDir, 'config.json');
38
+ const config = JSON.parse(fs_1.default.readFileSync(endPointsFile, 'utf-8'));
36
39
  return config.map((_a) => {
37
40
  var { http_method } = _a, endpoint = __rest(_a, ["http_method"]);
38
41
  return (Object.assign({ http_method: http_method === '*' ? 'ALL' : http_method }, endpoint));
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/features/functions/controller.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAGhD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,kBAqFjC,CAAA"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/features/functions/controller.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAGhD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,kBAuFjC,CAAA"}
@@ -31,7 +31,7 @@ const functionsController = (app_1, _a) => __awaiter(void 0, [app_1, _a], void 0
31
31
  if (!serviceFn) {
32
32
  throw new Error(`Service "${req.body.service}" does not exist`);
33
33
  }
34
- const [{ database, collection, query, update, document }] = args;
34
+ const [{ database, collection, query, update, document, documents }] = args;
35
35
  const currentMethod = serviceFn(app, { rules, user })
36
36
  .db(database)
37
37
  .collection(collection)[method];
@@ -39,7 +39,8 @@ const functionsController = (app_1, _a) => __awaiter(void 0, [app_1, _a], void 0
39
39
  currentMethod,
40
40
  query,
41
41
  update,
42
- document
42
+ document,
43
+ documents
43
44
  });
44
45
  return operatorsByType[method]();
45
46
  }
@@ -59,20 +60,23 @@ const functionsController = (app_1, _a) => __awaiter(void 0, [app_1, _a], void 0
59
60
  functionsList,
60
61
  services: services_1.services
61
62
  });
62
- res.type("application/json");
63
+ res.type('application/json');
63
64
  return JSON.stringify(result);
64
65
  }));
65
66
  app.get('/call', (req, res) => __awaiter(void 0, void 0, void 0, function* () {
66
67
  const { query, user } = req;
67
68
  const { baas_request, stitch_request } = query;
68
- const config = JSON.parse(Buffer.from(baas_request || stitch_request || "", "base64").toString("utf8"));
69
+ const config = JSON.parse(Buffer.from(baas_request || stitch_request || '', 'base64').toString('utf8'));
69
70
  const [{ database, collection }] = config.arguments;
70
- const app = state_1.StateManager.select("app");
71
- const services = state_1.StateManager.select("services");
72
- const changeStream = yield services["mongodb-atlas"](app, {
71
+ const app = state_1.StateManager.select('app');
72
+ const services = state_1.StateManager.select('services');
73
+ const changeStream = yield services['mongodb-atlas'](app, {
73
74
  user,
74
75
  rules
75
- }).db(database).collection(collection).watch([], { fullDocument: "whenAvailable" });
76
+ })
77
+ .db(database)
78
+ .collection(collection)
79
+ .watch([], { fullDocument: 'whenAvailable' });
76
80
  res.header('Content-Type', 'text/event-stream');
77
81
  res.header('Cache-Control', 'no-cache');
78
82
  res.header('Connection', 'keep-alive');
@@ -1,4 +1,4 @@
1
- import { Document } from "mongodb";
1
+ import { Document } from 'mongodb';
2
2
  import { Arguments } from '../../auth/dtos';
3
3
  import { GetOperatorsFunction } from '../../services/mongodb-atlas/model';
4
4
  type MethodName = Exclude<keyof ReturnType<GetOperatorsFunction>, 'match'>;
@@ -20,6 +20,7 @@ type ArgumentsData = Arguments<{
20
20
  query: Parameters<GetOperatorsFunction>;
21
21
  update: Document;
22
22
  document: Document;
23
+ documents: Document[];
23
24
  }>;
24
25
  export type Base64Function = {
25
26
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"dtos.d.ts","sourceRoot":"","sources":["../../../src/features/functions/dtos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AAEzE,KAAK,UAAU,GAAG,OAAO,CAAC,MAAM,UAAU,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAA;AAE1E,MAAM,MAAM,eAAe,GACvB;IACA,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,aAAa,CAAA;CACzB,GACC;IACA,SAAS,EAAE,aAAa,CAAA;IACxB,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,eAAe,CAAA;CACzB,CAAA;AAEH,MAAM,MAAM,qBAAqB,GAAG;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,KAAK,aAAa,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAA;IACvC,MAAM,EAAE,QAAQ,CAAA;IAChB,QAAQ,EAAE,QAAQ,CAAA;CACnB,CAAC,CAAA;AAGF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,QAAQ,GAAG;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA"}
1
+ {"version":3,"file":"dtos.d.ts","sourceRoot":"","sources":["../../../src/features/functions/dtos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AAEzE,KAAK,UAAU,GAAG,OAAO,CAAC,MAAM,UAAU,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAA;AAE1E,MAAM,MAAM,eAAe,GACvB;IACE,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,aAAa,CAAA;CACzB,GACD;IACE,SAAS,EAAE,aAAa,CAAA;IACxB,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,eAAe,CAAA;CACzB,CAAA;AAEL,MAAM,MAAM,qBAAqB,GAAG;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,KAAK,aAAa,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAA;IACvC,MAAM,EAAE,QAAQ,CAAA;IAChB,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,EAAE,QAAQ,EAAE,CAAA;CACtB,CAAC,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,QAAQ,GAAG;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { FastifyInstance } from 'fastify';
2
- import { Document } from "mongodb";
2
+ import { Document } from 'mongodb';
3
3
  import { GetOperatorsFunction } from '../../services/mongodb-atlas/model';
4
4
  import { Rules } from '../rules/interface';
5
5
  export interface FunctionConfig {
@@ -22,6 +22,7 @@ export type ExecuteQueryParams = {
22
22
  query: Parameters<GetOperatorsFunction>;
23
23
  update: Document;
24
24
  document: Document;
25
+ documents: Document[];
25
26
  };
26
27
  type FunctionsControllerOptions = {
27
28
  functionsList: Functions;
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/features/functions/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE1C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtE,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAEhD,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,eAAe,CAAA;IACpB,aAAa,EAAE,SAAS,CAAA;IACxB,SAAS,EAAE,KAAK,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAC,MAAM,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAA;IACvF,KAAK,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAA;IACvC,MAAM,EAAE,QAAQ,CAAA;IAChB,QAAQ,EAAE,QAAQ,CAAA;CACnB,CAAA;AAED,KAAK,0BAA0B,GAAG;IAChC,aAAa,EAAE,SAAS,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,GAAG,EAAE,eAAe,EACpB,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,0BAA0B,KACjD,OAAO,CAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/features/functions/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE1C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtE,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAEhD,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,eAAe,CAAA;IACpB,aAAa,EAAE,SAAS,CAAA;IACxB,SAAS,EAAE,KAAK,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAC,MAAM,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAA;IACvF,KAAK,EAAE,UAAU,CAAC,oBAAoB,CAAC,CAAA;IACvC,MAAM,EAAE,QAAQ,CAAA;IAChB,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,EAAE,QAAQ,EAAE,CAAA;CACtB,CAAA;AAED,KAAK,0BAA0B,GAAG;IAChC,aAAa,EAAE,SAAS,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,GAAG,EAAE,eAAe,EACpB,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,0BAA0B,KACjD,OAAO,CAAC,IAAI,CAAC,CAAA"}
@@ -10,7 +10,7 @@ export declare const loadFunctions: (rootDir?: string) => Promise<Functions>;
10
10
  * @param query -> the query data
11
11
  * @param update -> the update Document that should be deserialized
12
12
  */
13
- export declare const executeQuery: ({ currentMethod, query, update, document }: ExecuteQueryParams) => Promise<{
13
+ export declare const executeQuery: ({ currentMethod, query, update, document, documents }: ExecuteQueryParams) => Promise<{
14
14
  find: () => Promise<any[]>;
15
15
  findOne: () => Promise<unknown>;
16
16
  deleteOne: () => Promise<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/features/functions/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE3D;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAU,gBAAuB,KAAG,OAAO,CAAC,SAAS,CAwB9E,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAU,4CAKhC,kBAAkB;;;;;;;;;EAkCpB,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/features/functions/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE3D;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAU,gBAAuB,KAAG,OAAO,CAAC,SAAS,CAwB9E,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAU,uDAMhC,kBAAkB;;;;;;;;;EAiCpB,CAAA"}
@@ -40,7 +40,7 @@ const loadFunctions = (...args_1) => __awaiter(void 0, [...args_1], void 0, func
40
40
  const extensions = ['.js', '.ts'];
41
41
  let code = '';
42
42
  const fnPath = extensions
43
- .map(ext => node_path_1.default.join(rootDir, fnDir, `${name}${ext}`))
43
+ .map((ext) => node_path_1.default.join(rootDir, fnDir, `${name}${ext}`))
44
44
  .find(fs_1.default.existsSync);
45
45
  if (!fnPath) {
46
46
  throw new Error(`File ${name}.js or ${name}.ts not found`);
@@ -58,7 +58,7 @@ exports.loadFunctions = loadFunctions;
58
58
  * @param query -> the query data
59
59
  * @param update -> the update Document that should be deserialized
60
60
  */
61
- const executeQuery = (_a) => __awaiter(void 0, [_a], void 0, function* ({ currentMethod, query, update, document }) {
61
+ const executeQuery = (_a) => __awaiter(void 0, [_a], void 0, function* ({ currentMethod, query, update, document, documents }) {
62
62
  return {
63
63
  find: () => __awaiter(void 0, void 0, void 0, function* () {
64
64
  return yield currentMethod(bson_1.EJSON.deserialize(query)).toArray();
@@ -68,8 +68,8 @@ const executeQuery = (_a) => __awaiter(void 0, [_a], void 0, function* ({ curren
68
68
  insertOne: () => currentMethod(bson_1.EJSON.deserialize(document)),
69
69
  updateOne: () => currentMethod(bson_1.EJSON.deserialize(query), bson_1.EJSON.deserialize(update)),
70
70
  aggregate: () => currentMethod(bson_1.EJSON.deserialize(query)),
71
- insertMany: () => currentMethod(bson_1.EJSON.deserialize(query)),
72
- updateMany: () => currentMethod(bson_1.EJSON.deserialize(query), bson_1.EJSON.deserialize(update)),
71
+ insertMany: () => currentMethod(bson_1.EJSON.deserialize(documents)),
72
+ updateMany: () => currentMethod(bson_1.EJSON.deserialize(query), bson_1.EJSON.deserialize(update))
73
73
  };
74
74
  });
75
75
  exports.executeQuery = executeQuery;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/triggers/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAA;AAG/C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAU,0CAIpC,sBAAsB,kBAiBxB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/triggers/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAA;AAG/C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAU,0CAIpC,sBAAsB,kBAsBxB,CAAA"}
@@ -29,7 +29,7 @@ const utils_1 = require("./utils");
29
29
  const activateTriggers = (_a) => __awaiter(void 0, [_a], void 0, function* ({ fastify, triggersList, functionsList }) {
30
30
  var _b, triggersList_1, triggersList_1_1;
31
31
  var _c, e_1, _d, _e;
32
- console.log("START ACTIVATION TRIGGERS");
32
+ console.log('START ACTIVATION TRIGGERS');
33
33
  try {
34
34
  try {
35
35
  for (_b = true, triggersList_1 = __asyncValues(triggersList); triggersList_1_1 = yield triggersList_1.next(), _c = triggersList_1_1.done, !_c; _b = true) {
@@ -40,7 +40,13 @@ const activateTriggers = (_a) => __awaiter(void 0, [_a], void 0, function* ({ fa
40
40
  const { type, config, event_processors } = content;
41
41
  const functionName = event_processors.FUNCTION.config.function_name;
42
42
  const triggerHandler = functionsList[functionName];
43
- yield utils_1.TRIGGER_HANDLERS[type]({ config, triggerHandler, app: fastify, services: services_1.services, functionsList });
43
+ yield utils_1.TRIGGER_HANDLERS[type]({
44
+ config,
45
+ triggerHandler,
46
+ app: fastify,
47
+ services: services_1.services,
48
+ functionsList
49
+ });
44
50
  }
45
51
  }
46
52
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
@@ -50,7 +56,7 @@ const activateTriggers = (_a) => __awaiter(void 0, [_a], void 0, function* ({ fa
50
56
  }
51
57
  finally { if (e_1) throw e_1.error; }
52
58
  }
53
- console.log("TRIGGERS ACTIVATION COMPLETED");
59
+ console.log('TRIGGERS ACTIVATION COMPLETED');
54
60
  }
55
61
  catch (e) {
56
62
  console.error('Error while activating triggers', e.message);
@@ -1,6 +1,6 @@
1
- import { FastifyInstance } from "fastify";
2
- import { Services } from "../../services/interface";
3
- import { Function, Functions } from "../functions/interface";
1
+ import { FastifyInstance } from 'fastify';
2
+ import { Services } from '../../services/interface';
3
+ import { Function, Functions } from '../functions/interface';
4
4
  export interface Trigger {
5
5
  name: string;
6
6
  type: TriggerType;
@@ -28,7 +28,7 @@ type Config = {
28
28
  unordered: boolean;
29
29
  schedule: string;
30
30
  };
31
- export type TriggerType = "SCHEDULED" | "DATABASE" | "AUTHENTICATION";
31
+ export type TriggerType = 'SCHEDULED' | 'DATABASE' | 'AUTHENTICATION';
32
32
  export type Triggers = {
33
33
  fileName: string;
34
34
  content: Trigger;
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/features/triggers/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAE5D,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE;QAChB,QAAQ,EAAE;YACR,MAAM,EAAE;gBACN,aAAa,EAAE,MAAM,CAAA;aACtB,CAAA;SACF,CAAA;KACF,CAAA;CACF;AAED,KAAK,MAAM,GAAG;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,OAAO,CAAA;IACtB,2BAA2B,EAAE,OAAO,CAAA;IACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,sBAAsB,EAAE,OAAO,CAAA;IAC/B,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,gBAAgB,CAAA;AACrE,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,EAAE,CAAA;AAG/D,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,QAAQ,CAAC;IACzB,GAAG,EAAE,eAAe,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,SAAS,CAAA;CACzB,CAAA"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/features/triggers/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAE5D,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE;QAChB,QAAQ,EAAE;YACR,MAAM,EAAE;gBACN,aAAa,EAAE,MAAM,CAAA;aACtB,CAAA;SACF,CAAA;KACF,CAAA;CACF;AAED,KAAK,MAAM,GAAG;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,OAAO,CAAA;IACtB,2BAA2B,EAAE,OAAO,CAAA;IACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,sBAAsB,EAAE,OAAO,CAAA;IAC/B,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,gBAAgB,CAAA;AACrE,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,EAAE,CAAA;AAE/D,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,QAAQ,CAAA;IACxB,GAAG,EAAE,eAAe,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;IAClB,aAAa,EAAE,SAAS,CAAA;CACzB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/features/triggers/utils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAW,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE9D;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GAAU,gBAAuB,KAAG,OAAO,CAAC,QAAQ,CAY5E,CAAA;AA4HD,eAAO,MAAM,gBAAgB;0EA9G8D,aAAa;yEAmET,aAAa;+EApDP,aAAa;CAmGjH,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/features/triggers/utils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAW,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE9D;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GAAU,gBAAuB,KAAG,OAAO,CAAC,QAAQ,CAkB5E,CAAA;AAkJD,eAAO,MAAM,gBAAgB;0EA9H1B,aAAa;yEAmFb,aAAa;+EA/Db,aAAa;CA8Gf,CAAA"}
@@ -28,15 +28,21 @@ const context_1 = require("../../utils/context");
28
28
  * @returns {Promise<Triggers>} A promise that resolves to an array of trigger objects.
29
29
  */
30
30
  const loadTriggers = (...args_1) => __awaiter(void 0, [...args_1], void 0, function* (rootDir = process.cwd()) {
31
- const triggersPath = node_path_1.default.join(rootDir, 'triggers');
32
- const files = fs_1.default.readdirSync(triggersPath);
33
- const triggers = files
34
- .filter((fileName) => fileName.endsWith('.json'))
35
- .map((fileName) => ({
36
- fileName,
37
- content: (0, utils_1.readJsonContent)(node_path_1.default.join(triggersPath, fileName))
38
- }));
39
- return triggers;
31
+ try {
32
+ const triggersPath = node_path_1.default.join(rootDir, 'triggers');
33
+ const files = fs_1.default.readdirSync(triggersPath);
34
+ const triggers = files
35
+ .filter((fileName) => fileName.endsWith('.json'))
36
+ .map((fileName) => ({
37
+ fileName,
38
+ content: (0, utils_1.readJsonContent)(node_path_1.default.join(triggersPath, fileName))
39
+ }));
40
+ return triggers;
41
+ }
42
+ catch (e) {
43
+ console.log("TRIGGERS NOT FOUND ->", e.message);
44
+ return [];
45
+ }
40
46
  });
41
47
  exports.loadTriggers = loadTriggers;
42
48
  /**
@@ -66,17 +72,22 @@ const handleCronTrigger = (_a) => __awaiter(void 0, [_a], void 0, function* ({ c
66
72
  });
67
73
  const handleAuthenticationTrigger = (_a) => __awaiter(void 0, [_a], void 0, function* ({ config, triggerHandler, functionsList, services, app }) {
68
74
  const { database } = config;
69
- const pipeline = [{
75
+ const pipeline = [
76
+ {
70
77
  $match: {
71
- operationType: { $in: ["INSERT"] }
78
+ operationType: { $in: ['INSERT'] }
72
79
  }
73
- }];
74
- const changeStream = app.mongo.client.db(database).collection(constants_1.AUTH_CONFIG.authCollection).watch(pipeline, {
80
+ }
81
+ ];
82
+ const changeStream = app.mongo.client
83
+ .db(database)
84
+ .collection(constants_1.AUTH_CONFIG.authCollection)
85
+ .watch(pipeline, {
75
86
  fullDocument: 'whenAvailable'
76
87
  });
77
88
  changeStream.on('change', function (change) {
78
89
  return __awaiter(this, void 0, void 0, function* () {
79
- const document = change["fullDocument"]; //TODO -> define user type
90
+ const document = change['fullDocument']; //TODO -> define user type
80
91
  if (document) {
81
92
  delete document.password;
82
93
  const currentUser = Object.assign({}, document);
@@ -0,0 +1,9 @@
1
+ import { User } from "./fastify";
2
+ import { Services } from "./services/interface";
3
+ export type Context = {
4
+ services: {
5
+ get: <T extends keyof Services>(serviceName: T) => ReturnType<Services[T]>;
6
+ };
7
+ user: User;
8
+ };
9
+ //# sourceMappingURL=global.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../src/global.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C,MAAM,MAAM,OAAO,GAAG;IAClB,QAAQ,EAAE;QACN,GAAG,EAAE,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,WAAW,EAAE,CAAC,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;KAC7E,CAAC;IACF,IAAI,EAAE,IAAI,CAAA;CACb,CAAA"}
package/dist/global.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import 'dotenv/config';
2
- export * from "./model";
2
+ export * from './model';
3
3
  export type InitializeConfig = {
4
4
  projectId: string;
5
5
  mongodbUrl?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AActB,cAAc,SAAS,CAAC;AAExB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,EAC/B,SAAS,EACT,IAAI,EACJ,SAAqC,EACrC,IAA0B,EAC1B,UAAuC,EACxC,EAAE,gBAAgB,iBAgDlB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AActB,cAAc,SAAS,CAAA;AAEvB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,EAC/B,SAAS,EACT,IAAI,EACJ,SAAqC,EACrC,IAA0B,EAC1B,UAAuC,EACxC,EAAE,gBAAgB,iBAqDlB"}
package/dist/index.js CHANGED
@@ -52,18 +52,21 @@ __exportStar(require("./model"), exports);
52
52
  */
53
53
  function initialize(_a) {
54
54
  return __awaiter(this, arguments, void 0, function* ({ projectId, host, jwtSecret = constants_1.DEFAULT_CONFIG.JWT_SECRET, port = constants_1.DEFAULT_CONFIG.PORT, mongodbUrl = constants_1.DEFAULT_CONFIG.MONGODB_URL }) {
55
+ var _b;
55
56
  const fastify = (0, fastify_1.default)({
56
57
  logger: !!constants_1.DEFAULT_CONFIG.ENABLE_LOGGER
57
58
  });
59
+ const basePath = (_b = require.main) === null || _b === void 0 ? void 0 : _b.path;
60
+ console.log("BASE PATH", basePath);
58
61
  console.log("CURRENT PORT", port);
59
62
  console.log("CURRENT HOST", host);
60
- const functionsList = yield (0, utils_2.loadFunctions)();
63
+ const functionsList = yield (0, utils_2.loadFunctions)(basePath);
61
64
  console.log("Functions LOADED");
62
- const triggersList = yield (0, utils_4.loadTriggers)();
65
+ const triggersList = yield (0, utils_4.loadTriggers)(basePath);
63
66
  console.log("Triggers LOADED");
64
- const endpointsList = yield (0, utils_1.loadEndpoints)();
67
+ const endpointsList = yield (0, utils_1.loadEndpoints)(basePath);
65
68
  console.log("Endpoints LOADED");
66
- const rulesList = yield (0, utils_3.loadRules)();
69
+ const rulesList = yield (0, utils_3.loadRules)(basePath);
67
70
  console.log("Rules LOADED");
68
71
  const stateConfig = {
69
72
  functions: functionsList,
@@ -80,16 +83,17 @@ function initialize(_a) {
80
83
  jwtSecret,
81
84
  functionsList
82
85
  });
83
- console.log("Plugins registration COMPLETED");
86
+ console.log('Plugins registration COMPLETED');
84
87
  yield (0, exposeRoutes_1.exposeRoutes)(fastify);
85
- console.log("APP Routes registration COMPLETED");
88
+ console.log('APP Routes registration COMPLETED');
86
89
  yield (0, functions_1.registerFunctions)({ app: fastify, functionsList, rulesList });
87
- console.log("Functions registration COMPLETED");
90
+ console.log('Functions registration COMPLETED');
88
91
  yield (0, endpoints_1.generateEndpoints)({ app: fastify, functionsList, endpointsList });
89
- console.log("HTTP Endpoints registration COMPLETED");
92
+ console.log('HTTP Endpoints registration COMPLETED');
90
93
  fastify.ready(() => {
91
94
  console.log("FASTIFY IS READY");
92
- (triggersList === null || triggersList === void 0 ? void 0 : triggersList.length) > 0 && (0, triggers_1.activateTriggers)({ fastify, triggersList, functionsList });
95
+ if ((triggersList === null || triggersList === void 0 ? void 0 : triggersList.length) > 0)
96
+ (0, triggers_1.activateTriggers)({ fastify, triggersList, functionsList });
93
97
  });
94
98
  yield fastify.listen({ port, host });
95
99
  fastify.log.info(`[${projectId}] Server listening on port ${port}`);
package/dist/model.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export { Document, WithId } from 'mongodb';
2
+ export * from "./global";
2
3
  //# sourceMappingURL=model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAE1C,cAAc,UAAU,CAAA"}
package/dist/model.js CHANGED
@@ -1,2 +1,17 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./global"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/api/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGxE;;GAEG;AACH,QAAA,MAAM,GAAG;UACK,CAAC,2BAAgC,SAAS;;;;;;;WAGzC,CAAC,mFAQX,UAAU;;;;;;;UAKD,CAAC,mFAQV,SAAS;;;;;;;aAKG,CAAC,2DAMb,YAAY;;;;;;;CAIf,CAAA;AAEF,eAAe,GAAG,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/api/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGxE;;GAEG;AACH,QAAA,MAAM,GAAG;UACK,CAAC,2BAAgC,SAAS;;;;;;;WAGzC,CAAC,mFAQX,UAAU;;;;;;;UAUD,CAAC,mFAQV,SAAS;;;;;;;aAKG,CAAC,2DAMb,YAAY;;;;;;;CAIf,CAAA;AAEF,eAAe,GAAG,CAAA"}
@@ -21,7 +21,12 @@ const Api = () => ({
21
21
  post: (_a) => __awaiter(void 0, [_a], void 0, function* ({ scheme = constants_1.HTTPS_SCHEMA, host, path, url: currentUrl, headers = {}, body, encodeBodyAsJSON = false }) {
22
22
  const formattedBody = encodeBodyAsJSON ? JSON.stringify(body) : body;
23
23
  const url = currentUrl ? currentUrl : `${scheme}://${host}/${path}`;
24
- return (0, utils_1.makeRequest)({ method: 'POST', url, headers: Object.assign({ "Content-Type": "application/json" }, headers), body: formattedBody });
24
+ return (0, utils_1.makeRequest)({
25
+ method: 'POST',
26
+ url,
27
+ headers: Object.assign({ 'Content-Type': 'application/json' }, headers),
28
+ body: formattedBody
29
+ });
25
30
  }),
26
31
  put: (_a) => __awaiter(void 0, [_a], void 0, function* ({ scheme = constants_1.HTTPS_SCHEMA, host, path, url: currentUrl, headers = {}, body, encodeBodyAsJSON = false }) {
27
32
  const formattedBody = encodeBodyAsJSON ? JSON.stringify(body) : body;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/aws/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,MAAM,MAAM,wBAAwB,CAAA;AAC3C,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAMnD,QAAA,MAAM,GAAG;qBAEY,MAAM;gBAQX,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;qBACjG,MAAM,CAAC,aAAa,CAAC;;iBAczB,MAAM;CAWtB,CAAA;AAED,eAAe,GAAG,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/aws/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,MAAM,MAAM,wBAAwB,CAAA;AAC3C,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAKnD,QAAA,MAAM,GAAG;qBAEY,MAAM;gBAQX,CACN,GAAG,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAClC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;qBACnD,MAAM,CAAC,aAAa,CAAC;;iBAczB,MAAM;CAYtB,CAAA;AAED,eAAe,GAAG,CAAA"}
@@ -14,8 +14,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const lambda_1 = __importDefault(require("aws-sdk/clients/lambda"));
16
16
  const s3_1 = __importDefault(require("aws-sdk/clients/s3"));
17
- const accessKeyId = "GET_THIS_FROM_CONFIG";
18
- const secretAccessKey = "GET_THIS_FROM_CONFIG";
17
+ const accessKeyId = 'GET_THIS_FROM_CONFIG';
18
+ const secretAccessKey = 'GET_THIS_FROM_CONFIG';
19
19
  const Aws = () => {
20
20
  return {
21
21
  lambda: (region) => {
@@ -23,7 +23,7 @@ const Aws = () => {
23
23
  region: region,
24
24
  credentials: {
25
25
  accessKeyId,
26
- secretAccessKey,
26
+ secretAccessKey
27
27
  }
28
28
  });
29
29
  lambda.Invoke = (...args) => __awaiter(void 0, void 0, void 0, function* () {
@@ -40,10 +40,10 @@ const Aws = () => {
40
40
  apiVersion: '2006-03-01',
41
41
  credentials: {
42
42
  accessKeyId,
43
- secretAccessKey,
43
+ secretAccessKey
44
44
  },
45
45
  s3ForcePathStyle: true,
46
- signatureVersion: 'v4',
46
+ signatureVersion: 'v4'
47
47
  })
48
48
  };
49
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAKqT,GAAG;;;;;;CAD5U,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAKmT,GAAc;;;;;;CADrV,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/mongodb-atlas/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwB,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAmiBpE,QAAA,MAAM,YAAY,EAAE,oBAclB,CAAA;AAEF,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/mongodb-atlas/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwB,oBAAoB,EAAE,MAAM,SAAS,CAAA;AA4kBpE,QAAA,MAAM,YAAY,EAAE,oBAclB,CAAA;AAEF,eAAe,YAAY,CAAA"}