@flowerforce/flowerbase 1.0.3-beta.1 → 1.0.3-beta.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.
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../src/auth/providers/local-userpass/controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAuBzC;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,eAAe,iBA8PjE"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../src/auth/providers/local-userpass/controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAuBzC;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,eAAe,iBA4PjE"}
@@ -140,9 +140,6 @@ function localUserPassController(app) {
140
140
  console.log("🚀 ~ error:", error);
141
141
  }
142
142
  }
143
- else {
144
- console.error('Error function on_user_creation_function_name: ', on_user_creation_function_name);
145
- }
146
143
  return {
147
144
  access_token: this.createAccessToken(userWithCustomData),
148
145
  refresh_token: this.createRefreshToken(userWithCustomData),
@@ -1 +1 @@
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"}
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,kBAwFjC,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, documents }] = args;
34
+ const [{ database, collection, query, update, document, documents, pipeline = [] }] = args;
35
35
  const currentMethod = serviceFn(app, { rules, user })
36
36
  .db(database)
37
37
  .collection(collection)[method];
@@ -40,7 +40,8 @@ const functionsController = (app_1, _a) => __awaiter(void 0, [app_1, _a], void 0
40
40
  query,
41
41
  update,
42
42
  document,
43
- documents
43
+ documents,
44
+ pipeline
44
45
  });
45
46
  return operatorsByType[method]();
46
47
  }
@@ -21,6 +21,7 @@ type ArgumentsData = Arguments<{
21
21
  update: Document;
22
22
  document: Document;
23
23
  documents: Document[];
24
+ pipeline?: Document[];
24
25
  }>;
25
26
  export type Base64Function = {
26
27
  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;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
+ {"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;IAClB,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,QAAQ,CAAC,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"}
@@ -23,6 +23,7 @@ export type ExecuteQueryParams = {
23
23
  update: Document;
24
24
  document: Document;
25
25
  documents: Document[];
26
+ pipeline: Document[];
26
27
  };
27
28
  type FunctionsControllerOptions = {
28
29
  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;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"}
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;IACrB,QAAQ,EAAE,QAAQ,EAAE,CAAA;CACrB,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, documents }: ExecuteQueryParams) => Promise<{
13
+ export declare const executeQuery: ({ currentMethod, query, update, document, documents, pipeline }: 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,uDAMhC,kBAAkB;;;;;;;;;;EAqCpB,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,iEAOhC,kBAAkB;;;;;;;;;;EAqCpB,CAAA"}
@@ -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, documents }) {
61
+ const executeQuery = (_a) => __awaiter(void 0, [_a], void 0, function* ({ currentMethod, query, update, document, documents, pipeline }) {
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,7 +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: () => __awaiter(void 0, void 0, void 0, function* () {
71
- return (yield currentMethod(bson_1.EJSON.deserialize(query))).toArray();
71
+ return (yield currentMethod(bson_1.EJSON.deserialize(pipeline) // TODO -> ADD OPTIONS
72
+ )).toArray();
72
73
  }),
73
74
  insertMany: () => currentMethod(bson_1.EJSON.deserialize(documents)),
74
75
  updateMany: () => currentMethod(bson_1.EJSON.deserialize(query), bson_1.EJSON.deserialize(update)),
@@ -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,CAkB5E,CAAA;AAuJD,eAAO,MAAM,gBAAgB;0EAnI1B,aAAa;yEAwFb,aAAa;+EApEb,aAAa;CAmHf,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;AAwJD,eAAO,MAAM,gBAAgB;0EApI1B,aAAa;yEAyFb,aAAa;+EArEb,aAAa;CAoHf,CAAA"}
@@ -101,7 +101,8 @@ const handleAuthenticationTrigger = (_a) => __awaiter(void 0, [_a], void 0, func
101
101
  user: {},
102
102
  currentFunction: triggerHandler,
103
103
  functionsList,
104
- services
104
+ services,
105
+ runAsSystem: true
105
106
  });
106
107
  }
107
108
  });
@@ -10,5 +10,5 @@ import { GenerateContextParams } from './interface';
10
10
  * @param functionsList -> the list of all functions
11
11
  * @param services -> the list of all services
12
12
  */
13
- export declare function GenerateContext({ args, app, rules, user, currentFunction, functionsList, services }: GenerateContextParams): Promise<any>;
13
+ export declare function GenerateContext({ args, app, rules, user, currentFunction, functionsList, services, runAsSystem }: GenerateContextParams): Promise<any>;
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/context/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,EACpC,IAAI,EACJ,GAAG,EACH,KAAK,EACL,IAAI,EACJ,eAAe,EACf,aAAa,EACb,QAAQ,EACT,EAAE,qBAAqB,gBA4BvB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/context/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAEnD;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CAAC,EACpC,IAAI,EACJ,GAAG,EACH,KAAK,EACL,IAAI,EACJ,eAAe,EACf,aAAa,EACb,QAAQ,EACR,WAAW,EACZ,EAAE,qBAAqB,gBA8BvB"}
@@ -29,21 +29,23 @@ const helpers_1 = require("./helpers");
29
29
  * @param services -> the list of all services
30
30
  */
31
31
  function GenerateContext(_a) {
32
- return __awaiter(this, arguments, void 0, function* ({ args, app, rules, user, currentFunction, functionsList, services }) {
32
+ return __awaiter(this, arguments, void 0, function* ({ args, app, rules, user, currentFunction, functionsList, services, runAsSystem }) {
33
33
  var _b, _c;
34
+ const contextFunction = Object.assign({ run_as_system: runAsSystem }, currentFunction);
34
35
  const contextData = (0, helpers_1.generateContextData)({
35
36
  user,
36
37
  services,
37
38
  app,
38
39
  rules,
39
- currentFunction,
40
+ currentFunction: contextFunction,
40
41
  functionsList,
41
- GenerateContext
42
+ GenerateContext,
43
+ runAsSystem
42
44
  });
43
45
  try {
44
46
  const entryFile = (_c = (_b = require.main) === null || _b === void 0 ? void 0 : _b.filename) !== null && _c !== void 0 ? _c : process.cwd();
45
47
  const customRequire = (0, node_module_1.createRequire)(entryFile);
46
- vm_1.default.runInContext(currentFunction.code, vm_1.default.createContext(Object.assign(Object.assign({}, contextData), { require: customRequire, exports,
48
+ vm_1.default.runInContext(contextFunction.code, vm_1.default.createContext(Object.assign(Object.assign({}, contextData), { require: customRequire, exports,
47
49
  module, __filename: __filename, __dirname: __dirname })));
48
50
  }
49
51
  catch (e) {
@@ -11,6 +11,7 @@ export interface GenerateContextParams {
11
11
  user: User;
12
12
  services: Services;
13
13
  args: Arguments;
14
+ runAsSystem?: boolean;
14
15
  }
15
16
  export interface GenerateContextDataParams extends Omit<GenerateContextParams, 'args'> {
16
17
  GenerateContext: (params: GenerateContextParams) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/utils/context/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,eAAe,CAAA;IACpB,eAAe,EAAE,QAAQ,CAAA;IACzB,aAAa,EAAE,SAAS,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,QAAQ,CAAA;IAClB,IAAI,EAAE,SAAS,CAAA;CAChB;AAED,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACpF,eAAe,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAClE"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/utils/context/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,eAAe,CAAA;IACpB,eAAe,EAAE,QAAQ,CAAA;IACzB,aAAa,EAAE,SAAS,CAAA;IACxB,KAAK,EAAE,KAAK,CAAA;IACZ,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,QAAQ,CAAA;IAClB,IAAI,EAAE,SAAS,CAAA;IACf,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACpF,eAAe,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAClE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowerforce/flowerbase",
3
- "version": "1.0.3-beta.1",
3
+ "version": "1.0.3-beta.2",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -167,8 +167,6 @@ export async function localUserPassController(app: FastifyInstance) {
167
167
  } catch (error) {
168
168
  console.log("🚀 ~ error:", error)
169
169
  }
170
- } else {
171
- console.error('Error function on_user_creation_function_name: ', on_user_creation_function_name)
172
170
  }
173
171
 
174
172
  return {
@@ -28,7 +28,7 @@ export const functionsController: FunctionController = async (
28
28
  if (!serviceFn) {
29
29
  throw new Error(`Service "${req.body.service}" does not exist`)
30
30
  }
31
- const [{ database, collection, query, update, document, documents }] = args
31
+ const [{ database, collection, query, update, document, documents, pipeline = [] }] = args
32
32
 
33
33
  const currentMethod = serviceFn(app, { rules, user })
34
34
  .db(database)
@@ -39,7 +39,8 @@ export const functionsController: FunctionController = async (
39
39
  query,
40
40
  update,
41
41
  document,
42
- documents
42
+ documents,
43
+ pipeline
43
44
  })
44
45
  return operatorsByType[method as keyof typeof operatorsByType]()
45
46
  }
@@ -6,14 +6,14 @@ type MethodName = Exclude<keyof ReturnType<GetOperatorsFunction>, 'match'>
6
6
 
7
7
  export type FunctionCallDto =
8
8
  | {
9
- name: MethodName
10
- arguments: ArgumentsData
11
- }
9
+ name: MethodName
10
+ arguments: ArgumentsData
11
+ }
12
12
  | {
13
- arguments: ArgumentsData
14
- name: MethodName
15
- service: 'mongodb-atlas'
16
- }
13
+ arguments: ArgumentsData
14
+ name: MethodName
15
+ service: 'mongodb-atlas'
16
+ }
17
17
 
18
18
  export type FunctionCallBase64Dto = {
19
19
  baas_request?: string
@@ -27,6 +27,7 @@ type ArgumentsData = Arguments<{
27
27
  update: Document
28
28
  document: Document
29
29
  documents: Document[]
30
+ pipeline?: Document[]
30
31
  }>
31
32
 
32
33
  export type Base64Function = {
@@ -26,6 +26,7 @@ export type ExecuteQueryParams = {
26
26
  update: Document
27
27
  document: Document
28
28
  documents: Document[]
29
+ pipeline: Document[]
29
30
  }
30
31
 
31
32
  type FunctionsControllerOptions = {
@@ -45,7 +45,8 @@ export const executeQuery = async ({
45
45
  query,
46
46
  update,
47
47
  document,
48
- documents
48
+ documents,
49
+ pipeline
49
50
  }: ExecuteQueryParams) => {
50
51
  return {
51
52
  find: async () =>
@@ -67,7 +68,7 @@ export const executeQuery = async ({
67
68
  updateOne: () => currentMethod(EJSON.deserialize(query), EJSON.deserialize(update)),
68
69
  aggregate: async () =>
69
70
  (await (currentMethod as ReturnType<GetOperatorsFunction>['aggregate'])(
70
- EJSON.deserialize(query)
71
+ EJSON.deserialize(pipeline) // TODO -> ADD OPTIONS
71
72
  )).toArray(),
72
73
  insertMany: () =>
73
74
  (currentMethod as ReturnType<GetOperatorsFunction>['insertMany'])(
@@ -84,3 +85,4 @@ export const executeQuery = async ({
84
85
  )
85
86
  }
86
87
  }
88
+
@@ -110,7 +110,8 @@ const handleAuthenticationTrigger = async ({
110
110
  user: {},
111
111
  currentFunction: triggerHandler,
112
112
  functionsList,
113
- services
113
+ services,
114
+ runAsSystem: true
114
115
  })
115
116
  }
116
117
  })
@@ -22,23 +22,26 @@ export async function GenerateContext({
22
22
  user,
23
23
  currentFunction,
24
24
  functionsList,
25
- services
25
+ services,
26
+ runAsSystem
26
27
  }: GenerateContextParams) {
28
+ const contextFunction = { run_as_system: runAsSystem, ...currentFunction }
27
29
  const contextData = generateContextData({
28
30
  user,
29
31
  services,
30
32
  app,
31
33
  rules,
32
- currentFunction,
34
+ currentFunction: contextFunction,
33
35
  functionsList,
34
- GenerateContext
36
+ GenerateContext,
37
+ runAsSystem
35
38
  })
36
39
 
37
40
  try {
38
41
  const entryFile = require.main?.filename ?? process.cwd();
39
42
  const customRequire = createRequire(entryFile);
40
43
 
41
- vm.runInContext(currentFunction.code, vm.createContext({
44
+ vm.runInContext(contextFunction.code, vm.createContext({
42
45
  ...contextData, require: customRequire,
43
46
  exports,
44
47
  module,
@@ -12,6 +12,7 @@ export interface GenerateContextParams {
12
12
  user: User
13
13
  services: Services
14
14
  args: Arguments
15
+ runAsSystem?: boolean
15
16
  }
16
17
 
17
18
  export interface GenerateContextDataParams extends Omit<GenerateContextParams, 'args'> {