@common-stack/server-core 0.1.7 → 0.1.19

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,5 +1,5 @@
1
1
  import { ConfigurationScope, IDirectiveOptions, IMongoMigration, IOverwritePreference, IPreferences, IResolverOptions, IWebsocketConfig, IGraphqlShieldRules, IAddPermissions, IAddPolicies } from '../interfaces';
2
- import { Container } from 'inversify';
2
+ import { Container, interfaces } from 'inversify';
3
3
  import { IRoleUpdate } from '../interfaces/roles';
4
4
  export declare const featureCatalog: any;
5
5
  export interface IFederationServiceOptions {
@@ -140,7 +140,7 @@ declare class Feature<T = ConfigurationScope> {
140
140
  createDataSource(options?: any): any;
141
141
  createResolvers(options?: IResolverOptions): any;
142
142
  createDirectives(options?: IDirectiveOptions): any;
143
- createContainers(options: any): Promise<any>;
143
+ createContainers(options: any, containerOptions?: interfaces.ContainerOptions): Promise<any>;
144
144
  /**
145
145
  * Use createMicroserviceContainer
146
146
  * @param options
@@ -187,19 +187,20 @@ declare class Feature<T = ConfigurationScope> {
187
187
  unshift(...items: IPreferences<S>[]): number;
188
188
  indexOf(searchElement: IPreferences<S>, fromIndex?: number): number;
189
189
  lastIndexOf(searchElement: IPreferences<S>, fromIndex?: number): number;
190
- every(callbackfn: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => unknown, thisArg?: any): boolean;
191
- some(callbackfn: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => unknown, thisArg?: any): boolean;
190
+ every<S_1 extends IPreferences<S>>(predicate: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => value is S_1, thisArg?: any): this is S_1[];
191
+ every(predicate: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => unknown, thisArg?: any): boolean;
192
+ some(predicate: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => unknown, thisArg?: any): boolean;
192
193
  forEach(callbackfn: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => void, thisArg?: any): void;
193
194
  map<U>(callbackfn: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => U, thisArg?: any): U[];
194
- filter<S_1 extends IPreferences<S>>(callbackfn: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => value is S_1, thisArg?: any): S_1[];
195
- filter(callbackfn: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => unknown, thisArg?: any): IPreferences<S>[];
195
+ filter<S_2 extends IPreferences<S>>(predicate: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => value is S_2, thisArg?: any): S_2[];
196
+ filter(predicate: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => unknown, thisArg?: any): IPreferences<S>[];
196
197
  reduce(callbackfn: (previousValue: IPreferences<S>, currentValue: IPreferences<S>, currentIndex: number, array: IPreferences<S>[]) => IPreferences<S>): IPreferences<S>;
197
198
  reduce(callbackfn: (previousValue: IPreferences<S>, currentValue: IPreferences<S>, currentIndex: number, array: IPreferences<S>[]) => IPreferences<S>, initialValue: IPreferences<S>): IPreferences<S>;
198
199
  reduce<U_1>(callbackfn: (previousValue: U_1, currentValue: IPreferences<S>, currentIndex: number, array: IPreferences<S>[]) => U_1, initialValue: U_1): U_1;
199
200
  reduceRight(callbackfn: (previousValue: IPreferences<S>, currentValue: IPreferences<S>, currentIndex: number, array: IPreferences<S>[]) => IPreferences<S>): IPreferences<S>;
200
201
  reduceRight(callbackfn: (previousValue: IPreferences<S>, currentValue: IPreferences<S>, currentIndex: number, array: IPreferences<S>[]) => IPreferences<S>, initialValue: IPreferences<S>): IPreferences<S>;
201
202
  reduceRight<U_2>(callbackfn: (previousValue: U_2, currentValue: IPreferences<S>, currentIndex: number, array: IPreferences<S>[]) => U_2, initialValue: U_2): U_2;
202
- find<S_2 extends IPreferences<S>>(predicate: (this: void, value: IPreferences<S>, index: number, obj: IPreferences<S>[]) => value is S_2, thisArg?: any): S_2;
203
+ find<S_3 extends IPreferences<S>>(predicate: (this: void, value: IPreferences<S>, index: number, obj: IPreferences<S>[]) => value is S_3, thisArg?: any): S_3;
203
204
  find(predicate: (value: IPreferences<S>, index: number, obj: IPreferences<S>[]) => unknown, thisArg?: any): IPreferences<S>;
204
205
  findIndex(predicate: (value: IPreferences<S>, index: number, obj: IPreferences<S>[]) => unknown, thisArg?: any): number;
205
206
  fill(value: IPreferences<S>, start?: number, end?: number): IPreferences<S>[];
@@ -239,19 +240,20 @@ declare class Feature<T = ConfigurationScope> {
239
240
  unshift(...items: IPreferences<T>[]): number;
240
241
  indexOf(searchElement: IPreferences<T>, fromIndex?: number): number;
241
242
  lastIndexOf(searchElement: IPreferences<T>, fromIndex?: number): number;
242
- every(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): boolean;
243
- some(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): boolean;
243
+ every<S extends IPreferences<T>>(predicate: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => value is S, thisArg?: any): this is S[];
244
+ every(predicate: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): boolean;
245
+ some(predicate: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): boolean;
244
246
  forEach(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => void, thisArg?: any): void;
245
247
  map<U>(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => U, thisArg?: any): U[];
246
- filter<S extends IPreferences<T>>(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => value is S, thisArg?: any): S[];
247
- filter(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): IPreferences<T>[];
248
+ filter<S_1 extends IPreferences<T>>(predicate: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => value is S_1, thisArg?: any): S_1[];
249
+ filter(predicate: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): IPreferences<T>[];
248
250
  reduce(callbackfn: (previousValue: IPreferences<T>, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => IPreferences<T>): IPreferences<T>;
249
251
  reduce(callbackfn: (previousValue: IPreferences<T>, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => IPreferences<T>, initialValue: IPreferences<T>): IPreferences<T>;
250
252
  reduce<U_1>(callbackfn: (previousValue: U_1, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => U_1, initialValue: U_1): U_1;
251
253
  reduceRight(callbackfn: (previousValue: IPreferences<T>, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => IPreferences<T>): IPreferences<T>;
252
254
  reduceRight(callbackfn: (previousValue: IPreferences<T>, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => IPreferences<T>, initialValue: IPreferences<T>): IPreferences<T>;
253
255
  reduceRight<U_2>(callbackfn: (previousValue: U_2, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => U_2, initialValue: U_2): U_2;
254
- find<S_1 extends IPreferences<T>>(predicate: (this: void, value: IPreferences<T>, index: number, obj: IPreferences<T>[]) => value is S_1, thisArg?: any): S_1;
256
+ find<S_2 extends IPreferences<T>>(predicate: (this: void, value: IPreferences<T>, index: number, obj: IPreferences<T>[]) => value is S_2, thisArg?: any): S_2;
255
257
  find(predicate: (value: IPreferences<T>, index: number, obj: IPreferences<T>[]) => unknown, thisArg?: any): IPreferences<T>;
256
258
  findIndex(predicate: (value: IPreferences<T>, index: number, obj: IPreferences<T>[]) => unknown, thisArg?: any): number;
257
259
  fill(value: IPreferences<T>, start?: number, end?: number): IPreferences<T>[];
@@ -291,19 +293,20 @@ declare class Feature<T = ConfigurationScope> {
291
293
  unshift(...items: IPreferences<T>[]): number;
292
294
  indexOf(searchElement: IPreferences<T>, fromIndex?: number): number;
293
295
  lastIndexOf(searchElement: IPreferences<T>, fromIndex?: number): number;
294
- every(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): boolean;
295
- some(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): boolean;
296
+ every<S extends IPreferences<T>>(predicate: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => value is S, thisArg?: any): this is S[];
297
+ every(predicate: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): boolean;
298
+ some(predicate: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): boolean;
296
299
  forEach(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => void, thisArg?: any): void;
297
300
  map<U>(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => U, thisArg?: any): U[];
298
- filter<S extends IPreferences<T>>(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => value is S, thisArg?: any): S[];
299
- filter(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): IPreferences<T>[];
301
+ filter<S_1 extends IPreferences<T>>(predicate: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => value is S_1, thisArg?: any): S_1[];
302
+ filter(predicate: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): IPreferences<T>[];
300
303
  reduce(callbackfn: (previousValue: IPreferences<T>, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => IPreferences<T>): IPreferences<T>;
301
304
  reduce(callbackfn: (previousValue: IPreferences<T>, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => IPreferences<T>, initialValue: IPreferences<T>): IPreferences<T>;
302
305
  reduce<U_1>(callbackfn: (previousValue: U_1, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => U_1, initialValue: U_1): U_1;
303
306
  reduceRight(callbackfn: (previousValue: IPreferences<T>, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => IPreferences<T>): IPreferences<T>;
304
307
  reduceRight(callbackfn: (previousValue: IPreferences<T>, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => IPreferences<T>, initialValue: IPreferences<T>): IPreferences<T>;
305
308
  reduceRight<U_2>(callbackfn: (previousValue: U_2, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => U_2, initialValue: U_2): U_2;
306
- find<S_1 extends IPreferences<T>>(predicate: (this: void, value: IPreferences<T>, index: number, obj: IPreferences<T>[]) => value is S_1, thisArg?: any): S_1;
309
+ find<S_2 extends IPreferences<T>>(predicate: (this: void, value: IPreferences<T>, index: number, obj: IPreferences<T>[]) => value is S_2, thisArg?: any): S_2;
307
310
  find(predicate: (value: IPreferences<T>, index: number, obj: IPreferences<T>[]) => unknown, thisArg?: any): IPreferences<T>;
308
311
  findIndex(predicate: (value: IPreferences<T>, index: number, obj: IPreferences<T>[]) => unknown, thisArg?: any): number;
309
312
  fill(value: IPreferences<T>, start?: number, end?: number): IPreferences<T>[];
@@ -343,19 +346,20 @@ declare class Feature<T = ConfigurationScope> {
343
346
  unshift(...items: IPreferences<S>[]): number;
344
347
  indexOf(searchElement: IPreferences<S>, fromIndex?: number): number;
345
348
  lastIndexOf(searchElement: IPreferences<S>, fromIndex?: number): number;
346
- every(callbackfn: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => unknown, thisArg?: any): boolean;
347
- some(callbackfn: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => unknown, thisArg?: any): boolean;
349
+ every<S_1 extends IPreferences<S>>(predicate: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => value is S_1, thisArg?: any): this is S_1[];
350
+ every(predicate: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => unknown, thisArg?: any): boolean;
351
+ some(predicate: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => unknown, thisArg?: any): boolean;
348
352
  forEach(callbackfn: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => void, thisArg?: any): void;
349
353
  map<U>(callbackfn: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => U, thisArg?: any): U[];
350
- filter<S_1 extends IPreferences<S>>(callbackfn: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => value is S_1, thisArg?: any): S_1[];
351
- filter(callbackfn: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => unknown, thisArg?: any): IPreferences<S>[];
354
+ filter<S_2 extends IPreferences<S>>(predicate: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => value is S_2, thisArg?: any): S_2[];
355
+ filter(predicate: (value: IPreferences<S>, index: number, array: IPreferences<S>[]) => unknown, thisArg?: any): IPreferences<S>[];
352
356
  reduce(callbackfn: (previousValue: IPreferences<S>, currentValue: IPreferences<S>, currentIndex: number, array: IPreferences<S>[]) => IPreferences<S>): IPreferences<S>;
353
357
  reduce(callbackfn: (previousValue: IPreferences<S>, currentValue: IPreferences<S>, currentIndex: number, array: IPreferences<S>[]) => IPreferences<S>, initialValue: IPreferences<S>): IPreferences<S>;
354
358
  reduce<U_1>(callbackfn: (previousValue: U_1, currentValue: IPreferences<S>, currentIndex: number, array: IPreferences<S>[]) => U_1, initialValue: U_1): U_1;
355
359
  reduceRight(callbackfn: (previousValue: IPreferences<S>, currentValue: IPreferences<S>, currentIndex: number, array: IPreferences<S>[]) => IPreferences<S>): IPreferences<S>;
356
360
  reduceRight(callbackfn: (previousValue: IPreferences<S>, currentValue: IPreferences<S>, currentIndex: number, array: IPreferences<S>[]) => IPreferences<S>, initialValue: IPreferences<S>): IPreferences<S>;
357
361
  reduceRight<U_2>(callbackfn: (previousValue: U_2, currentValue: IPreferences<S>, currentIndex: number, array: IPreferences<S>[]) => U_2, initialValue: U_2): U_2;
358
- find<S_2 extends IPreferences<S>>(predicate: (this: void, value: IPreferences<S>, index: number, obj: IPreferences<S>[]) => value is S_2, thisArg?: any): S_2;
362
+ find<S_3 extends IPreferences<S>>(predicate: (this: void, value: IPreferences<S>, index: number, obj: IPreferences<S>[]) => value is S_3, thisArg?: any): S_3;
359
363
  find(predicate: (value: IPreferences<S>, index: number, obj: IPreferences<S>[]) => unknown, thisArg?: any): IPreferences<S>;
360
364
  findIndex(predicate: (value: IPreferences<S>, index: number, obj: IPreferences<S>[]) => unknown, thisArg?: any): number;
361
365
  fill(value: IPreferences<S>, start?: number, end?: number): IPreferences<S>[];
package/lib/index.js CHANGED
@@ -240,8 +240,8 @@ class Feature {
240
240
  createDirectives(options) {
241
241
  return lodash_1.merge({}, ...this.createDirectivesFunc.map(createDirectives => createDirectives(options)));
242
242
  }
243
- async createContainers(options) {
244
- this.container = new inversify_1.Container();
243
+ async createContainers(options, containerOptions = { skipBaseClassChecks: true }) {
244
+ this.container = new inversify_1.Container(containerOptions);
245
245
  this.createContainerFunc.map(createModule => {
246
246
  this.container.load(createModule(options));
247
247
  });
@@ -391,7 +391,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
391
391
  o[k2] = m[k];
392
392
  }));
393
393
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
394
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
394
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
395
395
  };
396
396
  Object.defineProperty(exports, "__esModule", { value: true });
397
397
  __exportStar(__webpack_require__(/*! ./connector */ "./src/connector/connector.ts"), exports);
@@ -416,7 +416,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
416
416
  o[k2] = m[k];
417
417
  }));
418
418
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
419
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
419
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
420
420
  };
421
421
  Object.defineProperty(exports, "__esModule", { value: true });
422
422
  __exportStar(__webpack_require__(/*! ./types */ "./src/constants/types.ts"), exports);
@@ -464,7 +464,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
464
464
  o[k2] = m[k];
465
465
  }));
466
466
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
467
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
467
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
468
468
  };
469
469
  Object.defineProperty(exports, "__esModule", { value: true });
470
470
  __exportStar(__webpack_require__(/*! ./connector */ "./src/connector/index.ts"), exports);
@@ -512,7 +512,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
512
512
  o[k2] = m[k];
513
513
  }));
514
514
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
515
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
515
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
516
516
  };
517
517
  Object.defineProperty(exports, "__esModule", { value: true });
518
518
  __exportStar(__webpack_require__(/*! ./connector */ "./src/interfaces/connector.ts"), exports);
@@ -619,7 +619,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
619
619
  o[k2] = m[k];
620
620
  }));
621
621
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
622
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
622
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
623
623
  };
624
624
  Object.defineProperty(exports, "__esModule", { value: true });
625
625
  __exportStar(__webpack_require__(/*! ./logger */ "./src/logger/logger.ts"), exports);
@@ -665,7 +665,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
665
665
  o[k2] = m[k];
666
666
  }));
667
667
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
668
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
668
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
669
669
  };
670
670
  Object.defineProperty(exports, "__esModule", { value: true });
671
671
  __exportStar(__webpack_require__(/*! ./preferences */ "./src/utils/preferences.ts"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/connector/connector.ts","webpack:///./src/connector/index.ts","webpack:///./src/constants/index.ts","webpack:///./src/constants/types.ts","webpack:///./src/index.ts","webpack:///./src/interfaces/connector.ts","webpack:///./src/interfaces/index.ts","webpack:///./src/interfaces/rules.ts","webpack:///./src/logger/index.ts","webpack:///./src/logger/logger.ts","webpack:///./src/utils/index.ts","webpack:///./src/utils/preferences.ts","webpack:///external \"@cdm-logger/server\"","webpack:///external \"inversify\"","webpack:///external \"lodash\""],"names":[],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","import {\n ConfigurationScope,\n IDirectiveOptions,\n IMongoMigration,\n IOverwritePreference,\n IPreferences,\n IResolverOptions,\n IRoles,\n IWebsocketConfig,\n IGraphqlShieldRules,\n IAddPermissions,\n IAddPolicies,\n} from '../interfaces';\nimport { logger } from '@cdm-logger/server';\nimport { castArray, groupBy, map, merge, union, without, keyBy } from 'lodash';\nimport { Container } from 'inversify';\nimport { getCurrentPreferences, transformPrefsToArray } from '../utils';\nimport { IRoleUpdate } from '../interfaces/roles';\nexport const featureCatalog: any = {};\n\nexport interface IFederationServiceOptions {\n port: number;\n config?: any; // for apollo-server\n}\nexport type FederationServiceDeclaration = (options: IFederationServiceOptions) => Promise<void>;\n\n/**\n * Feature Params that can be passed to Feature Module.\n */\nexport type FeatureParams<T = ConfigurationScope> = {\n schema?: string | string[],\n createRemoteSchemas?: Function | Function[],\n createDirectivesFunc?: Function | Function[],\n createResolversFunc?: Function | Function[],\n createContextFunc?: Function | Function[],\n createServiceFunc?: Function | Function[],\n createDataSourceFunc?: Function | Function[],\n createContainerFunc?: Function | Function[],\n createHemeraContainerFunc?: Function | Function[],\n createAsyncContainerFunc?: Function | Function[],\n createAsyncHemeraContainerFunc?: Function | Function[],\n preCreateServiceFunc?: Function | Function[],\n postCreateServiceFunc?: Function | Function[],\n preStartFunc?: Function | Function[],\n postStartFunc?: Function | Function[],\n microservicePreStartFunc?: Function | Function[],\n microservicePostStartFunc?: Function | Function[],\n addBrokerMainServiceClass?: Function | Function[],\n addBrokerClientServiceClass?: Function | Function[],\n createWebsocketConfig?: IWebsocketConfig | IWebsocketConfig[],\n updateContainerFunc?: any | any[],\n createPreference?: IPreferences<T> | IPreferences<T>[],\n overwritePreference?: IOverwritePreference | IOverwritePreference[],\n /**\n * Permissions Preferences\n */\n addPermissions?: IAddPermissions<T>,\n /**\n * Policies Preferences\n */\n addPolicies?: IAddPolicies<T>,\n /**\n * Roles to provide permissions to access resources.\n */\n rolesUpdate?: IRoleUpdate<T>,\n federation?: FederationServiceDeclaration | FederationServiceDeclaration[];\n dataIdFromObject?: Function | Function[],\n disposeFunc?: any | any[],\n beforeware?: any | any[],\n middleware?: any | any[],\n catalogInfo?: any | any[],\n /**\n * Graphql shields rules, a graphql middleware for authorization\n * based on defined permissions\n */\n rules?: IGraphqlShieldRules;\n};\n\n\n\nconst combine = <T>(features: FeatureParams<T>[], extractor): any =>\n without(union(...map(features, (res: FeatureParams<T>) => castArray(extractor(res)))), undefined);\n\nclass Feature<T = ConfigurationScope> {\n public schema: string[];\n public createRemoteSchemas?: Function | Function[];\n public createDirectivesFunc: Function[];\n public createResolversFunc: Function[];\n public createContextFunc: Function[];\n public createServiceFunc: Function[];\n public createContainerFunc: Function[];\n public federation: FederationServiceDeclaration[];\n public createHemeraContainerFunc: Function[];\n public createAsyncContainerFunc: Function[];\n public createAsyncHemeraContainerFunc: Function[];\n public createDataSourceFunc: Function[];\n public preCreateServiceFunc: Function[];\n public postCreateServiceFunc: Function[];\n public preStartFunc: Function[];\n public postStartFunc: Function[];\n public microservicePreStartFunc: Function[];\n public microservicePostStartFunc: Function[];\n public addBrokerMainServiceClass: Function[];\n public addBrokerClientServiceClass: Function[];\n public disposeFunc: any[];\n public updateContainerFunc: any[];\n public beforeware: Function[];\n public middleware: Function[];\n public createWebsocketConfig: IWebsocketConfig[];\n public createPreference: IPreferences<T>[];\n public addPermissions?: IAddPermissions<T>;\n public addPolicies: IAddPolicies<T>;\n public rolesUpdate: IRoleUpdate<T>;\n public overwritePreference: IOverwritePreference[];\n public overwriteRole: IOverwritePreference[];\n public migrations?: Array<{ [id: string]: IMongoMigration }>;\n private _rules: IGraphqlShieldRules[];\n\n private services;\n private container;\n private hemeraContainer;\n private dataSources;\n\n constructor(feature?: FeatureParams<T>, ...features: Feature<T>[]) {\n const args: FeatureParams<T>[] = [feature, ...features as unknown as FeatureParams<T>[]];\n combine<T>(args, arg => arg.catalogInfo).forEach(info =>\n Object.keys(info).forEach(key => (featureCatalog[key] = info[key])),\n );\n this.schema = combine<T>(args, (arg: FeatureParams<T>) => arg.schema);\n this.createDirectivesFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createDirectivesFunc);\n this.createResolversFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createResolversFunc);\n this.createContextFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createContextFunc);\n this.createServiceFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createServiceFunc);\n this.preCreateServiceFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.preCreateServiceFunc);\n this.postCreateServiceFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.postCreateServiceFunc);\n this.preStartFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.preStartFunc);\n this.postStartFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.postStartFunc);\n this.microservicePreStartFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.microservicePreStartFunc);\n this.microservicePostStartFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.microservicePostStartFunc);\n this.addBrokerMainServiceClass = combine<T>(args, (arg: FeatureParams<T>) => arg.addBrokerMainServiceClass);\n this.addBrokerClientServiceClass = combine<T>(args, (arg: FeatureParams<T>) => arg.addBrokerClientServiceClass);\n this.disposeFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.disposeFunc);\n\n this.federation = combine<T>(args, (arg: FeatureParams<T>) => arg.federation);\n this.migrations = combine<T>(args, (arg: FeatureParams<T>) => arg);\n this.createContainerFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createContainerFunc);\n this.createHemeraContainerFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createHemeraContainerFunc);\n this.createAsyncContainerFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createAsyncContainerFunc);\n this.createAsyncHemeraContainerFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createAsyncHemeraContainerFunc);\n this.updateContainerFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.updateContainerFunc);\n this.createDataSourceFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createDataSourceFunc);\n this.beforeware = combine<T>(args, (arg: FeatureParams<T>) => arg.beforeware);\n this.middleware = combine<T>(args, (arg: FeatureParams<T>) => arg.middleware);\n this.createWebsocketConfig = combine<T>(args, (arg: FeatureParams<T>) => arg.createWebsocketConfig);\n this.createPreference = combine<T>(args, (arg: FeatureParams<T>) => arg.createPreference);\n this.addPermissions = {\n createPermissions: combine<T>(args, (arg: FeatureParams<T>) => arg.addPermissions &&\n arg.addPermissions.createPermissions),\n overwritePermissions: combine<T>(args, (arg: FeatureParams<T>) => arg.addPermissions &&\n arg.addPermissions.overwritePermissions),\n };\n this.addPolicies = {\n createPolicies: combine<T>(args, (arg: FeatureParams<T>) => arg.addPolicies &&\n arg.addPolicies.createPolicies),\n overwritePolicies: combine<T>(args, (arg: FeatureParams<T>) => arg.addPolicies &&\n arg.addPolicies.overwritePolicies),\n };\n this.rolesUpdate = {\n createRoles: combine<T>(args, (arg: FeatureParams<T>) => arg.rolesUpdate &&\n arg.rolesUpdate.createRoles),\n overwriteRolesPermissions: combine<T>(args, (arg: FeatureParams<T>) => arg.rolesUpdate &&\n arg.rolesUpdate.overwriteRolesPermissions),\n };\n this.overwritePreference = combine<T>(args, (arg: FeatureParams<T>) => arg.overwritePreference);\n this._rules = combine<T>(args, (arg: FeatureParams<T>) => arg.rules);\n }\n\n get rules(): IGraphqlShieldRules {\n return this._rules.reduce((acc: IGraphqlShieldRules, curr) => {\n return merge(acc, curr) as IGraphqlShieldRules;\n }, {}) as IGraphqlShieldRules;\n }\n get schemas(): string[] {\n return this.schema;\n }\n\n /**\n * Creates context\n * @param req\n * @param connectionParams\n * @param webSocket\n * @deprecated\n */\n public async createContext(req: any, connectionParams: any, webSocket?: any) {\n const results = await Promise.all(\n this.createContextFunc.map(createContext => createContext(req, connectionParams, webSocket)),\n );\n return merge({}, ...results);\n }\n\n /**\n * If you need to attach service to Graphql Context, you can use this function.\n * It should be called twice to get the context.\n */\n public createServiceContext(options, updateOptions?: any) {\n return async (req: any, connectionParams: any, webSocket?: any) => {\n await this.createService(options, updateOptions);\n\n const results = await Promise.all(\n this.createContextFunc.map(createContext => createContext(req, connectionParams, webSocket)),\n );\n return merge({}, ...results, { ...this.services });\n };\n\n }\n\n /**\n * Its wrapper to container to get services\n * @param container\n */\n public async createService(options, updateOptions?: any) {\n try {\n if (this.container) {\n this.updateContainers(options, updateOptions);\n } else {\n await this.createContainers(options);\n await Promise.all(this.preCreateServiceFunc.map(async (createService) => await createService(this.container)));\n }\n this.services = merge({}, ...this.createServiceFunc.map(createService => createService(this.container)));\n\n await Promise.all(this.postCreateServiceFunc.map(async (createService) => await createService(this.container)));\n return this.services;\n } catch (err) {\n throw err;\n }\n\n }\n\n /**\n * Pre start action will be executed there.\n *\n */\n public async preStart<S = unknown>(options: S) {\n return await Promise.all(this.preStartFunc.map(async (preStart) => await preStart(this.container, options)));\n }\n\n /**\n * Post start actions will be executed here.\n */\n public async postStart<S = unknown>(options: S) {\n return await Promise.all(this.postStartFunc.map(async (postStart) => await postStart(this.container, options)));\n }\n\n /**\n * Pre start action will be executed there.\n *\n */\n public async microservicePreStart<S = unknown>(options: S) {\n return await Promise.all(this.microservicePreStartFunc.map(async (preStart) => await preStart(this.container, options)));\n }\n\n /**\n * Post start actions will be executed here.\n */\n public async microservicePostStart<S = unknown>(options: S) {\n return await Promise.all(this.microservicePostStartFunc.map(async (postStart) => await postStart(this.container, options)));\n }\n\n public createDataSource(options?: any) {\n return this.dataSources = merge({}, ...this.createDataSourceFunc.map(createDataSource => createDataSource(this.container)));\n }\n\n public createResolvers(options?: IResolverOptions) {\n return merge({}, ...this.createResolversFunc.map(createResolvers => createResolvers(options)));\n }\n\n public createDirectives(options?: IDirectiveOptions) {\n return merge({}, ...this.createDirectivesFunc.map(createDirectives => createDirectives(options)));\n }\n\n public async createContainers(options) {\n this.container = new Container();\n this.createContainerFunc.map(createModule => {\n this.container.load(createModule(options));\n });\n await Promise.all(this.createAsyncContainerFunc\n .map(async asyncCreateModule => {\n await this.container.loadAsync(asyncCreateModule(options));\n }));\n this.container.bind('IDefaultSettings').toConstantValue(this.getPreferences());\n this.container.bind('IDefaultSettingsObj').toConstantValue(this.getPreferencesObj());\n // permissions\n this.container.bind('IDefaultPermissions').toConstantValue(this.getPermissionPreferences());\n this.container.bind('IDefaultPermissionsObj').toConstantValue(this.getPermissionPreferencesObj());\n this.container.bind('IDefaultRoles').toConstantValue(this.getRoles());\n this.container.bind('IDefaultPoliciesObj').toConstantValue(this.getPolicyPreferencesObj());\n return this.container;\n }\n\n /**\n * Use createMicroserviceContainer\n * @param options\n * @deprecated\n */\n public async createHemeraContainers(options) {\n return this.createMicroserviceContainers(options);\n }\n\n /**\n * Creates container for the microservice\n *\n * @param options\n */\n public async createMicroserviceContainers(options) {\n this.hemeraContainer = new Container();\n this.createHemeraContainerFunc.map(createModule => {\n this.hemeraContainer.load(createModule(options));\n });\n await Promise.all(this.createAsyncHemeraContainerFunc\n .map(async asyncCreateModule => {\n await this.hemeraContainer.loadAsync(asyncCreateModule(options));\n }));\n return this.hemeraContainer;\n }\n\n\n public updateContainers(options, updateOptions?: any) {\n let mergedModules = merge({}, ...this.updateContainerFunc);\n const matchingModules = [];\n if (updateOptions) {\n updateOptions.forEach(option => {\n const dispose = this.disposeFunc.find(el => el.container === option);\n if (dispose) {\n this.services[dispose.ctx].dispose();\n }\n const searchModule = mergedModules[option];\n if (searchModule) {\n matchingModules.push(searchModule);\n }\n });\n }\n\n matchingModules.map(createModule => this.container.load(createModule(options)));\n }\n\n public loadMainMoleculerService({ container, broker, settings }: { container: Container, broker: any, settings: unknown }) {\n this.addBrokerMainServiceClass.map(serviceClass => broker.createService(serviceClass, { container, settings }));\n }\n\n public loadClientMoleculerService({ container, broker, settings }: { container: Container, broker: any, settings: unknown }) {\n this.addBrokerClientServiceClass.map(serviceClass => broker.createService(serviceClass, { container, settings }));\n }\n\n public createDefaultPreferences() {\n return transformPrefsToArray(merge([], ...this.createPreference));\n }\n\n get beforewares(): any[] {\n return this.beforeware;\n }\n\n get middlewares(): any[] {\n return this.middleware;\n }\n\n public getPreferences<S = ConfigurationScope>(): IPreferences<S>[] {\n return transformPrefsToArray<S>(this.getPreferencesObj());\n }\n\n public getPreferencesObj<S>() {\n const defaultPrefs: IPreferences<S>[] = merge([], ...this.createPreference);\n const overwritePrefs: IOverwritePreference[] = merge([], ...this.overwritePreference);\n return getCurrentPreferences<S>(defaultPrefs, overwritePrefs);\n }\n\n public getPermissionPreferences<T = ConfigurationScope>(): IPreferences<T>[] {\n return transformPrefsToArray<T>(this.getPermissionPreferencesObj());\n }\n\n public getPermissionPreferencesObj<T>() {\n const { createPermissions = [], overwritePermissions = [] } = this.addPermissions;\n const defaultPrefs: IPreferences<T>[] = merge([], ...castArray(createPermissions));\n const overwritePrefs: IOverwritePreference[] = merge([], ...castArray(overwritePermissions));\n return getCurrentPreferences<T>(defaultPrefs, overwritePrefs);\n }\n\n public getPolicyPreferences<T = ConfigurationScope>(): IPreferences<T>[] {\n return transformPrefsToArray<T>(this.getPolicyPreferencesObj());\n }\n\n public getPolicyPreferencesObj<T>() {\n const { createPolicies = [], overwritePolicies = [] } = this.addPolicies;\n const defaultPrefs: IPreferences<T>[] = merge([], ...castArray(createPolicies));\n const overwritePrefs: IOverwritePreference[] = merge([], ...castArray(overwritePolicies));\n return getCurrentPreferences<T>(defaultPrefs, overwritePrefs);\n }\n\n public getRoles() {\n const { createRoles, overwriteRolesPermissions } = this.rolesUpdate;\n const mergedRoles: IPreferences<T>[] = merge({}, ...castArray(createRoles));\n const mergedOverwriteRolesPermissions = merge({}, ...castArray(overwriteRolesPermissions));\n let result = {};\n for (const role in mergedRoles) {\n const rolePermission = mergedOverwriteRolesPermissions[role] ? merge({}, mergedRoles[role].permissions, mergedOverwriteRolesPermissions[role]) : mergedRoles[role].permissions;\n const mmm = {\n ...mergedRoles[role],\n permissions: { ...rolePermission },\n };\n result = merge({}, result, { [role]: mmm });\n }\n return result;\n }\n\n public getRolesObj<S>() {\n const { createRoles } = this.rolesUpdate;\n const defaultPrefs: IPreferences<S>[] = merge([], ...castArray(createRoles));\n const overwritePrefs: IOverwritePreference[] = merge([], ...castArray(createRoles));\n return getCurrentPreferences<S>(defaultPrefs, overwritePrefs);\n }\n\n public getWebsocketConfig() {\n return this.createWebsocketConfig.reduce((pre, curr) => {\n return merge(pre, curr);\n }, {});\n }\n\n private convertArrayToObject(arrayObject: any[]) {\n return arrayObject.reduce((pre, curr) => {\n return merge(pre, curr);\n }, {})\n }\n}\n\nexport { Feature };\n","export * from './connector';\n","export * from './types';\n","export const TYPES = {\n IHemeraSettings: Symbol.for('IHemeraSettings'),\n\n IDefaultSettings: Symbol.for('IDefaultSettings'),\n IDefaultSettingsObj: Symbol.for('IDefaultSettingsObj'),\n IDefaultPermissions: Symbol.for('IDefaultPermissions'),\n IDefaultPermissionsObj: Symbol.for('IDefaultPermissionsObj'),\n IDefaultRolesObj: Symbol.for('IDefaultRolesObj'),\n};\n","export * from './connector';\nexport * from './interfaces';\nexport * from './constants';\nexport * from './logger';\n","import { CdmLogger } from '@cdm-logger/core';\n\nexport interface IResolverOptions {\n pubsub: any;\n logger?: CdmLogger.ILogger;\n [key: string]: any;\n}\n\nexport interface IDirectiveOptions {\n [key: string]: any;\n logger?: CdmLogger.ILogger;\n}\n\nexport enum ConfigurationScope {\n WINDOW = 1,\n RESOURCE,\n}\n\nexport interface IWebsocketConfig {\n [key: string]: any;\n}\n\nexport interface IPreferences<T = ConfigurationScope> {\n [key: string]: IPreferencesData<T>;\n}\nexport interface IPreferencesData<T = ConfigurationScope> {\n type?: string | string[];\n default?: string | boolean | number | any;\n description?: string;\n overridable?: boolean;\n scope?: T;\n settings?: string;\n enum?: any;\n enumDescriptions?: string[];\n permissions?: {\n [key: string]: string | boolean | unknown,\n };\n [key: string]: any;\n}\n\n/**\n * Formatted preferences data\n */\nexport interface IPreferncesTransformed<T = ConfigurationScope> {\n type: string;\n data: IPreferencesData<T>;\n}\n\nexport interface IOverwritePreference {\n [key: string]: string | boolean | number | any;\n}\n","export * from './connector';\nexport * from './mongo-migration';\nexport * from './rules';\nexport * from './roles';\nexport * from './permissions';\nexport * from './policies';\n","\n\nexport type IResolverFunc<T> = (source: Record<string, any>, args: Record<string, any>, ctx: Record<string, any>) => Promise<T>;\n\nexport interface IRule {\n [key: string]: IResolverFunc<Record<string, any>>;\n}\n\nexport type IGraphqlShieldRules = Record<GraphqlRootType & { [key: string]: string }, IRule>;\n\nexport enum GraphqlRootType {\n Query= 'Query',\n Mutation = 'Mutation',\n Subscription = 'Subscription',\n}\n","export * from './logger';\n","import { ConsoleLogger, IConsoleLoggerSettings } from '@cdm-logger/server';\nimport { CdmLogger } from '@cdm-logger/core';\n\nconst settings: IConsoleLoggerSettings = {\n level: process.env.LOG_LEVEL as CdmLogger.LoggerLevel || 'trace',\n};\n\nconst appName = process.env.APP_NAME || 'CDMBASE_APP';\n\nexport const logger = ConsoleLogger.create(appName, settings);\n","export * from './preferences';\n\n","import {IPreferences, IOverwritePreference, IPreferencesData, IPreferncesTransformed} from '../interfaces';\n\nexport function getCurrentPreferences<T>(preferencesDefaultArr: IPreferences<T>[], overwritePreferences: IOverwritePreference[]) {\n const preferencesArr = { ...preferencesDefaultArr };\n\n Object.keys(preferencesDefaultArr).forEach(key => {\n if (preferencesDefaultArr[key].overridable) {\n const overwritesSettings = Object.keys(overwritePreferences).filter(el => el.indexOf(key) !== -1);\n let newValues = {};\n overwritesSettings.forEach(item => {\n const overwriteKey = item.split('.').pop();\n newValues[overwriteKey] = overwritePreferences[item];\n });\n preferencesArr[key] = { ...preferencesDefaultArr[key], ...newValues };\n }\n });\n return preferencesArr;\n}\n\nexport function transformPrefsToArray<T>(preferences: IPreferences<T>[]) {\n const resultArr: IPreferencesData<T>[] = [];\n Object.keys(preferences).forEach(key => {\n const type = key.split('.')[0];\n const findType = resultArr.find(el => el.type === type);\n if (!findType) {\n resultArr.push({\n type,\n data: [{\n name: key,\n ...preferences[key],\n }],\n });\n } else {\n findType['data'].push({\n name: key,\n ...preferences[key],\n });\n }\n });\n return resultArr;\n}\n","module.exports = require(\"@cdm-logger/server\");","module.exports = require(\"inversify\");","module.exports = require(\"lodash\");"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/connector/connector.ts","webpack:///./src/connector/index.ts","webpack:///./src/constants/index.ts","webpack:///./src/constants/types.ts","webpack:///./src/index.ts","webpack:///./src/interfaces/connector.ts","webpack:///./src/interfaces/index.ts","webpack:///./src/interfaces/rules.ts","webpack:///./src/logger/index.ts","webpack:///./src/logger/logger.ts","webpack:///./src/utils/index.ts","webpack:///./src/utils/preferences.ts","webpack:///external \"@cdm-logger/server\"","webpack:///external \"inversify\"","webpack:///external \"lodash\""],"names":[],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.ts\");\n","import {\n ConfigurationScope,\n IDirectiveOptions,\n IMongoMigration,\n IOverwritePreference,\n IPreferences,\n IResolverOptions,\n IRoles,\n IWebsocketConfig,\n IGraphqlShieldRules,\n IAddPermissions,\n IAddPolicies,\n} from '../interfaces';\nimport { logger } from '@cdm-logger/server';\nimport { castArray, groupBy, map, merge, union, without, keyBy } from 'lodash';\nimport { Container, interfaces } from 'inversify';\nimport { getCurrentPreferences, transformPrefsToArray } from '../utils';\nimport { IRoleUpdate } from '../interfaces/roles';\nexport const featureCatalog: any = {};\n\nexport interface IFederationServiceOptions {\n port: number;\n config?: any; // for apollo-server\n}\nexport type FederationServiceDeclaration = (options: IFederationServiceOptions) => Promise<void>;\n\n/**\n * Feature Params that can be passed to Feature Module.\n */\nexport type FeatureParams<T = ConfigurationScope> = {\n schema?: string | string[],\n createRemoteSchemas?: Function | Function[],\n createDirectivesFunc?: Function | Function[],\n createResolversFunc?: Function | Function[],\n createContextFunc?: Function | Function[],\n createServiceFunc?: Function | Function[],\n createDataSourceFunc?: Function | Function[],\n createContainerFunc?: Function | Function[],\n createHemeraContainerFunc?: Function | Function[],\n createAsyncContainerFunc?: Function | Function[],\n createAsyncHemeraContainerFunc?: Function | Function[],\n preCreateServiceFunc?: Function | Function[],\n postCreateServiceFunc?: Function | Function[],\n preStartFunc?: Function | Function[],\n postStartFunc?: Function | Function[],\n microservicePreStartFunc?: Function | Function[],\n microservicePostStartFunc?: Function | Function[],\n addBrokerMainServiceClass?: Function | Function[],\n addBrokerClientServiceClass?: Function | Function[],\n createWebsocketConfig?: IWebsocketConfig | IWebsocketConfig[],\n updateContainerFunc?: any | any[],\n createPreference?: IPreferences<T> | IPreferences<T>[],\n overwritePreference?: IOverwritePreference | IOverwritePreference[],\n /**\n * Permissions Preferences\n */\n addPermissions?: IAddPermissions<T>,\n /**\n * Policies Preferences\n */\n addPolicies?: IAddPolicies<T>,\n /**\n * Roles to provide permissions to access resources.\n */\n rolesUpdate?: IRoleUpdate<T>,\n federation?: FederationServiceDeclaration | FederationServiceDeclaration[];\n dataIdFromObject?: Function | Function[],\n disposeFunc?: any | any[],\n beforeware?: any | any[],\n middleware?: any | any[],\n catalogInfo?: any | any[],\n /**\n * Graphql shields rules, a graphql middleware for authorization\n * based on defined permissions\n */\n rules?: IGraphqlShieldRules;\n};\n\n\n\nconst combine = <T>(features: FeatureParams<T>[], extractor): any =>\n without(union(...map(features, (res: FeatureParams<T>) => castArray(extractor(res)))), undefined);\n\nclass Feature<T = ConfigurationScope> {\n public schema: string[];\n public createRemoteSchemas?: Function | Function[];\n public createDirectivesFunc: Function[];\n public createResolversFunc: Function[];\n public createContextFunc: Function[];\n public createServiceFunc: Function[];\n public createContainerFunc: Function[];\n public federation: FederationServiceDeclaration[];\n public createHemeraContainerFunc: Function[];\n public createAsyncContainerFunc: Function[];\n public createAsyncHemeraContainerFunc: Function[];\n public createDataSourceFunc: Function[];\n public preCreateServiceFunc: Function[];\n public postCreateServiceFunc: Function[];\n public preStartFunc: Function[];\n public postStartFunc: Function[];\n public microservicePreStartFunc: Function[];\n public microservicePostStartFunc: Function[];\n public addBrokerMainServiceClass: Function[];\n public addBrokerClientServiceClass: Function[];\n public disposeFunc: any[];\n public updateContainerFunc: any[];\n public beforeware: Function[];\n public middleware: Function[];\n public createWebsocketConfig: IWebsocketConfig[];\n public createPreference: IPreferences<T>[];\n public addPermissions?: IAddPermissions<T>;\n public addPolicies: IAddPolicies<T>;\n public rolesUpdate: IRoleUpdate<T>;\n public overwritePreference: IOverwritePreference[];\n public overwriteRole: IOverwritePreference[];\n public migrations?: Array<{ [id: string]: IMongoMigration }>;\n private _rules: IGraphqlShieldRules[];\n\n private services;\n private container;\n private hemeraContainer;\n private dataSources;\n\n constructor(feature?: FeatureParams<T>, ...features: Feature<T>[]) {\n const args: FeatureParams<T>[] = [feature, ...features as unknown as FeatureParams<T>[]];\n combine<T>(args, arg => arg.catalogInfo).forEach(info =>\n Object.keys(info).forEach(key => (featureCatalog[key] = info[key])),\n );\n this.schema = combine<T>(args, (arg: FeatureParams<T>) => arg.schema);\n this.createDirectivesFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createDirectivesFunc);\n this.createResolversFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createResolversFunc);\n this.createContextFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createContextFunc);\n this.createServiceFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createServiceFunc);\n this.preCreateServiceFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.preCreateServiceFunc);\n this.postCreateServiceFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.postCreateServiceFunc);\n this.preStartFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.preStartFunc);\n this.postStartFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.postStartFunc);\n this.microservicePreStartFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.microservicePreStartFunc);\n this.microservicePostStartFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.microservicePostStartFunc);\n this.addBrokerMainServiceClass = combine<T>(args, (arg: FeatureParams<T>) => arg.addBrokerMainServiceClass);\n this.addBrokerClientServiceClass = combine<T>(args, (arg: FeatureParams<T>) => arg.addBrokerClientServiceClass);\n this.disposeFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.disposeFunc);\n\n this.federation = combine<T>(args, (arg: FeatureParams<T>) => arg.federation);\n this.migrations = combine<T>(args, (arg: FeatureParams<T>) => arg);\n this.createContainerFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createContainerFunc);\n this.createHemeraContainerFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createHemeraContainerFunc);\n this.createAsyncContainerFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createAsyncContainerFunc);\n this.createAsyncHemeraContainerFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createAsyncHemeraContainerFunc);\n this.updateContainerFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.updateContainerFunc);\n this.createDataSourceFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.createDataSourceFunc);\n this.beforeware = combine<T>(args, (arg: FeatureParams<T>) => arg.beforeware);\n this.middleware = combine<T>(args, (arg: FeatureParams<T>) => arg.middleware);\n this.createWebsocketConfig = combine<T>(args, (arg: FeatureParams<T>) => arg.createWebsocketConfig);\n this.createPreference = combine<T>(args, (arg: FeatureParams<T>) => arg.createPreference);\n this.addPermissions = {\n createPermissions: combine<T>(args, (arg: FeatureParams<T>) => arg.addPermissions &&\n arg.addPermissions.createPermissions),\n overwritePermissions: combine<T>(args, (arg: FeatureParams<T>) => arg.addPermissions &&\n arg.addPermissions.overwritePermissions),\n };\n this.addPolicies = {\n createPolicies: combine<T>(args, (arg: FeatureParams<T>) => arg.addPolicies &&\n arg.addPolicies.createPolicies),\n overwritePolicies: combine<T>(args, (arg: FeatureParams<T>) => arg.addPolicies &&\n arg.addPolicies.overwritePolicies),\n };\n this.rolesUpdate = {\n createRoles: combine<T>(args, (arg: FeatureParams<T>) => arg.rolesUpdate &&\n arg.rolesUpdate.createRoles),\n overwriteRolesPermissions: combine<T>(args, (arg: FeatureParams<T>) => arg.rolesUpdate &&\n arg.rolesUpdate.overwriteRolesPermissions),\n };\n this.overwritePreference = combine<T>(args, (arg: FeatureParams<T>) => arg.overwritePreference);\n this._rules = combine<T>(args, (arg: FeatureParams<T>) => arg.rules);\n }\n\n get rules(): IGraphqlShieldRules {\n return this._rules.reduce((acc: IGraphqlShieldRules, curr) => {\n return merge(acc, curr) as IGraphqlShieldRules;\n }, {}) as IGraphqlShieldRules;\n }\n get schemas(): string[] {\n return this.schema;\n }\n\n /**\n * Creates context\n * @param req\n * @param connectionParams\n * @param webSocket\n * @deprecated\n */\n public async createContext(req: any, connectionParams: any, webSocket?: any) {\n const results = await Promise.all(\n this.createContextFunc.map(createContext => createContext(req, connectionParams, webSocket)),\n );\n return merge({}, ...results);\n }\n\n /**\n * If you need to attach service to Graphql Context, you can use this function.\n * It should be called twice to get the context.\n */\n public createServiceContext(options, updateOptions?: any) {\n return async (req: any, connectionParams: any, webSocket?: any) => {\n await this.createService(options, updateOptions);\n\n const results = await Promise.all(\n this.createContextFunc.map(createContext => createContext(req, connectionParams, webSocket)),\n );\n return merge({}, ...results, { ...this.services });\n };\n\n }\n\n /**\n * Its wrapper to container to get services\n * @param container\n */\n public async createService(options, updateOptions?: any) {\n try {\n if (this.container) {\n this.updateContainers(options, updateOptions);\n } else {\n await this.createContainers(options);\n await Promise.all(this.preCreateServiceFunc.map(async (createService) => await createService(this.container)));\n }\n this.services = merge({}, ...this.createServiceFunc.map(createService => createService(this.container)));\n\n await Promise.all(this.postCreateServiceFunc.map(async (createService) => await createService(this.container)));\n return this.services;\n } catch (err) {\n throw err;\n }\n\n }\n\n /**\n * Pre start action will be executed there.\n *\n */\n public async preStart<S = unknown>(options: S) {\n return await Promise.all(this.preStartFunc.map(async (preStart) => await preStart(this.container, options)));\n }\n\n /**\n * Post start actions will be executed here.\n */\n public async postStart<S = unknown>(options: S) {\n return await Promise.all(this.postStartFunc.map(async (postStart) => await postStart(this.container, options)));\n }\n\n /**\n * Pre start action will be executed there.\n *\n */\n public async microservicePreStart<S = unknown>(options: S) {\n return await Promise.all(this.microservicePreStartFunc.map(async (preStart) => await preStart(this.container, options)));\n }\n\n /**\n * Post start actions will be executed here.\n */\n public async microservicePostStart<S = unknown>(options: S) {\n return await Promise.all(this.microservicePostStartFunc.map(async (postStart) => await postStart(this.container, options)));\n }\n\n public createDataSource(options?: any) {\n return this.dataSources = merge({}, ...this.createDataSourceFunc.map(createDataSource => createDataSource(this.container)));\n }\n\n public createResolvers(options?: IResolverOptions) {\n return merge({}, ...this.createResolversFunc.map(createResolvers => createResolvers(options)));\n }\n\n public createDirectives(options?: IDirectiveOptions) {\n return merge({}, ...this.createDirectivesFunc.map(createDirectives => createDirectives(options)));\n }\n\n public async createContainers(options, containerOptions: interfaces.ContainerOptions = { skipBaseClassChecks: true }) {\n this.container = new Container(containerOptions);\n this.createContainerFunc.map(createModule => {\n this.container.load(createModule(options));\n });\n await Promise.all(this.createAsyncContainerFunc\n .map(async asyncCreateModule => {\n await this.container.loadAsync(asyncCreateModule(options));\n }));\n this.container.bind('IDefaultSettings').toConstantValue(this.getPreferences());\n this.container.bind('IDefaultSettingsObj').toConstantValue(this.getPreferencesObj());\n // permissions\n this.container.bind('IDefaultPermissions').toConstantValue(this.getPermissionPreferences());\n this.container.bind('IDefaultPermissionsObj').toConstantValue(this.getPermissionPreferencesObj());\n this.container.bind('IDefaultRoles').toConstantValue(this.getRoles());\n this.container.bind('IDefaultPoliciesObj').toConstantValue(this.getPolicyPreferencesObj());\n return this.container;\n }\n\n /**\n * Use createMicroserviceContainer\n * @param options\n * @deprecated\n */\n public async createHemeraContainers(options) {\n return this.createMicroserviceContainers(options);\n }\n\n /**\n * Creates container for the microservice\n *\n * @param options\n */\n public async createMicroserviceContainers(options) {\n this.hemeraContainer = new Container();\n this.createHemeraContainerFunc.map(createModule => {\n this.hemeraContainer.load(createModule(options));\n });\n await Promise.all(this.createAsyncHemeraContainerFunc\n .map(async asyncCreateModule => {\n await this.hemeraContainer.loadAsync(asyncCreateModule(options));\n }));\n return this.hemeraContainer;\n }\n\n\n public updateContainers(options, updateOptions?: any) {\n let mergedModules = merge({}, ...this.updateContainerFunc);\n const matchingModules = [];\n if (updateOptions) {\n updateOptions.forEach(option => {\n const dispose = this.disposeFunc.find(el => el.container === option);\n if (dispose) {\n this.services[dispose.ctx].dispose();\n }\n const searchModule = mergedModules[option];\n if (searchModule) {\n matchingModules.push(searchModule);\n }\n });\n }\n\n matchingModules.map(createModule => this.container.load(createModule(options)));\n }\n\n public loadMainMoleculerService({ container, broker, settings }: { container: Container, broker: any, settings: unknown }) {\n this.addBrokerMainServiceClass.map(serviceClass => broker.createService(serviceClass, { container, settings }));\n }\n\n public loadClientMoleculerService({ container, broker, settings }: { container: Container, broker: any, settings: unknown }) {\n this.addBrokerClientServiceClass.map(serviceClass => broker.createService(serviceClass, { container, settings }));\n }\n\n public createDefaultPreferences() {\n return transformPrefsToArray(merge([], ...this.createPreference));\n }\n\n get beforewares(): any[] {\n return this.beforeware;\n }\n\n get middlewares(): any[] {\n return this.middleware;\n }\n\n public getPreferences<S = ConfigurationScope>(): IPreferences<S>[] {\n return transformPrefsToArray<S>(this.getPreferencesObj());\n }\n\n public getPreferencesObj<S>() {\n const defaultPrefs: IPreferences<S>[] = merge([], ...this.createPreference);\n const overwritePrefs: IOverwritePreference[] = merge([], ...this.overwritePreference);\n return getCurrentPreferences<S>(defaultPrefs, overwritePrefs);\n }\n\n public getPermissionPreferences<T = ConfigurationScope>(): IPreferences<T>[] {\n return transformPrefsToArray<T>(this.getPermissionPreferencesObj());\n }\n\n public getPermissionPreferencesObj<T>() {\n const { createPermissions = [], overwritePermissions = [] } = this.addPermissions;\n const defaultPrefs: IPreferences<T>[] = merge([], ...castArray(createPermissions));\n const overwritePrefs: IOverwritePreference[] = merge([], ...castArray(overwritePermissions));\n return getCurrentPreferences<T>(defaultPrefs, overwritePrefs);\n }\n\n public getPolicyPreferences<T = ConfigurationScope>(): IPreferences<T>[] {\n return transformPrefsToArray<T>(this.getPolicyPreferencesObj());\n }\n\n public getPolicyPreferencesObj<T>() {\n const { createPolicies = [], overwritePolicies = [] } = this.addPolicies;\n const defaultPrefs: IPreferences<T>[] = merge([], ...castArray(createPolicies));\n const overwritePrefs: IOverwritePreference[] = merge([], ...castArray(overwritePolicies));\n return getCurrentPreferences<T>(defaultPrefs, overwritePrefs);\n }\n\n public getRoles() {\n const { createRoles, overwriteRolesPermissions } = this.rolesUpdate;\n const mergedRoles: IPreferences<T>[] = merge({}, ...castArray(createRoles));\n const mergedOverwriteRolesPermissions = merge({}, ...castArray(overwriteRolesPermissions));\n let result = {};\n for (const role in mergedRoles) {\n const rolePermission = mergedOverwriteRolesPermissions[role] ? merge({}, mergedRoles[role].permissions, mergedOverwriteRolesPermissions[role]) : mergedRoles[role].permissions;\n const mmm = {\n ...mergedRoles[role],\n permissions: { ...rolePermission },\n };\n result = merge({}, result, { [role]: mmm });\n }\n return result;\n }\n\n public getRolesObj<S>() {\n const { createRoles } = this.rolesUpdate;\n const defaultPrefs: IPreferences<S>[] = merge([], ...castArray(createRoles));\n const overwritePrefs: IOverwritePreference[] = merge([], ...castArray(createRoles));\n return getCurrentPreferences<S>(defaultPrefs, overwritePrefs);\n }\n\n public getWebsocketConfig() {\n return this.createWebsocketConfig.reduce((pre, curr) => {\n return merge(pre, curr);\n }, {});\n }\n\n private convertArrayToObject(arrayObject: any[]) {\n return arrayObject.reduce((pre, curr) => {\n return merge(pre, curr);\n }, {})\n }\n}\n\nexport { Feature };\n","export * from './connector';\n","export * from './types';\n","export const TYPES = {\n IHemeraSettings: Symbol.for('IHemeraSettings'),\n\n IDefaultSettings: Symbol.for('IDefaultSettings'),\n IDefaultSettingsObj: Symbol.for('IDefaultSettingsObj'),\n IDefaultPermissions: Symbol.for('IDefaultPermissions'),\n IDefaultPermissionsObj: Symbol.for('IDefaultPermissionsObj'),\n IDefaultRolesObj: Symbol.for('IDefaultRolesObj'),\n};\n","export * from './connector';\nexport * from './interfaces';\nexport * from './constants';\nexport * from './logger';\n","import { CdmLogger } from '@cdm-logger/core';\n\nexport interface IResolverOptions {\n pubsub: any;\n logger?: CdmLogger.ILogger;\n [key: string]: any;\n}\n\nexport interface IDirectiveOptions {\n [key: string]: any;\n logger?: CdmLogger.ILogger;\n}\n\nexport enum ConfigurationScope {\n WINDOW = 1,\n RESOURCE,\n}\n\nexport interface IWebsocketConfig {\n [key: string]: any;\n}\n\nexport interface IPreferences<T = ConfigurationScope> {\n [key: string]: IPreferencesData<T>;\n}\nexport interface IPreferencesData<T = ConfigurationScope> {\n type?: string | string[];\n default?: string | boolean | number | any;\n description?: string;\n overridable?: boolean;\n scope?: T;\n settings?: string;\n enum?: any;\n enumDescriptions?: string[];\n permissions?: {\n [key: string]: string | boolean | unknown,\n };\n [key: string]: any;\n}\n\n/**\n * Formatted preferences data\n */\nexport interface IPreferncesTransformed<T = ConfigurationScope> {\n type: string;\n data: IPreferencesData<T>;\n}\n\nexport interface IOverwritePreference {\n [key: string]: string | boolean | number | any;\n}\n","export * from './connector';\nexport * from './mongo-migration';\nexport * from './rules';\nexport * from './roles';\nexport * from './permissions';\nexport * from './policies';\n","\n\nexport type IResolverFunc<T> = (source: Record<string, any>, args: Record<string, any>, ctx: Record<string, any>) => Promise<T>;\n\nexport interface IRule {\n [key: string]: IResolverFunc<Record<string, any>>;\n}\n\nexport type IGraphqlShieldRules = Record<GraphqlRootType & { [key: string]: string }, IRule>;\n\nexport enum GraphqlRootType {\n Query= 'Query',\n Mutation = 'Mutation',\n Subscription = 'Subscription',\n}\n","export * from './logger';\n","import { ConsoleLogger, IConsoleLoggerSettings } from '@cdm-logger/server';\nimport { CdmLogger } from '@cdm-logger/core';\n\nconst settings: IConsoleLoggerSettings = {\n level: process.env.LOG_LEVEL as CdmLogger.LoggerLevel || 'trace',\n};\n\nconst appName = process.env.APP_NAME || 'CDMBASE_APP';\n\nexport const logger = ConsoleLogger.create(appName, settings);\n","export * from './preferences';\n\n","import {IPreferences, IOverwritePreference, IPreferencesData, IPreferncesTransformed} from '../interfaces';\n\nexport function getCurrentPreferences<T>(preferencesDefaultArr: IPreferences<T>[], overwritePreferences: IOverwritePreference[]) {\n const preferencesArr = { ...preferencesDefaultArr };\n\n Object.keys(preferencesDefaultArr).forEach(key => {\n if (preferencesDefaultArr[key].overridable) {\n const overwritesSettings = Object.keys(overwritePreferences).filter(el => el.indexOf(key) !== -1);\n let newValues = {};\n overwritesSettings.forEach(item => {\n const overwriteKey = item.split('.').pop();\n newValues[overwriteKey] = overwritePreferences[item];\n });\n preferencesArr[key] = { ...preferencesDefaultArr[key], ...newValues };\n }\n });\n return preferencesArr;\n}\n\nexport function transformPrefsToArray<T>(preferences: IPreferences<T>[]) {\n const resultArr: IPreferencesData<T>[] = [];\n Object.keys(preferences).forEach(key => {\n const type = key.split('.')[0];\n const findType = resultArr.find(el => el.type === type);\n if (!findType) {\n resultArr.push({\n type,\n data: [{\n name: key,\n ...preferences[key],\n }],\n });\n } else {\n findType['data'].push({\n name: key,\n ...preferences[key],\n });\n }\n });\n return resultArr;\n}\n","module.exports = require(\"@cdm-logger/server\");","module.exports = require(\"inversify\");","module.exports = require(\"lodash\");"],"sourceRoot":""}
@@ -18,19 +18,20 @@ export declare function getCurrentPreferences<T>(preferencesDefaultArr: IPrefere
18
18
  unshift(...items: IPreferences<T>[]): number;
19
19
  indexOf(searchElement: IPreferences<T>, fromIndex?: number): number;
20
20
  lastIndexOf(searchElement: IPreferences<T>, fromIndex?: number): number;
21
- every(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): boolean;
22
- some(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): boolean;
21
+ every<S extends IPreferences<T>>(predicate: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => value is S, thisArg?: any): this is S[];
22
+ every(predicate: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): boolean;
23
+ some(predicate: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): boolean;
23
24
  forEach(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => void, thisArg?: any): void;
24
25
  map<U>(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => U, thisArg?: any): U[];
25
- filter<S extends IPreferences<T>>(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => value is S, thisArg?: any): S[];
26
- filter(callbackfn: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): IPreferences<T>[];
26
+ filter<S_1 extends IPreferences<T>>(predicate: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => value is S_1, thisArg?: any): S_1[];
27
+ filter(predicate: (value: IPreferences<T>, index: number, array: IPreferences<T>[]) => unknown, thisArg?: any): IPreferences<T>[];
27
28
  reduce(callbackfn: (previousValue: IPreferences<T>, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => IPreferences<T>): IPreferences<T>;
28
29
  reduce(callbackfn: (previousValue: IPreferences<T>, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => IPreferences<T>, initialValue: IPreferences<T>): IPreferences<T>;
29
30
  reduce<U_1>(callbackfn: (previousValue: U_1, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => U_1, initialValue: U_1): U_1;
30
31
  reduceRight(callbackfn: (previousValue: IPreferences<T>, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => IPreferences<T>): IPreferences<T>;
31
32
  reduceRight(callbackfn: (previousValue: IPreferences<T>, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => IPreferences<T>, initialValue: IPreferences<T>): IPreferences<T>;
32
33
  reduceRight<U_2>(callbackfn: (previousValue: U_2, currentValue: IPreferences<T>, currentIndex: number, array: IPreferences<T>[]) => U_2, initialValue: U_2): U_2;
33
- find<S_1 extends IPreferences<T>>(predicate: (this: void, value: IPreferences<T>, index: number, obj: IPreferences<T>[]) => value is S_1, thisArg?: any): S_1;
34
+ find<S_2 extends IPreferences<T>>(predicate: (this: void, value: IPreferences<T>, index: number, obj: IPreferences<T>[]) => value is S_2, thisArg?: any): S_2;
34
35
  find(predicate: (value: IPreferences<T>, index: number, obj: IPreferences<T>[]) => unknown, thisArg?: any): IPreferences<T>;
35
36
  findIndex(predicate: (value: IPreferences<T>, index: number, obj: IPreferences<T>[]) => unknown, thisArg?: any): number;
36
37
  fill(value: IPreferences<T>, start?: number, end?: number): IPreferences<T>[];
package/package.json CHANGED
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "name": "@common-stack/server-core",
3
- "version": "0.1.7",
3
+ "version": "0.1.19",
4
4
  "description": "common core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
7
7
  "main": "lib/index.js",
8
8
  "typings": "lib/index.d.ts",
9
9
  "scripts": {
10
- "build": "npm run build:clean && npm run build:lib",
10
+ "build": "yarn build:clean && yarn build:lib",
11
11
  "build:clean": "rimraf lib",
12
12
  "build:lib": "webpack",
13
- "build:lib:watch": "npm run build:lib -- --watch",
13
+ "build:lib:watch": "yarn build:lib -- --watch",
14
14
  "jest": "./node_modules/.bin/jest",
15
- "prepublish": "npm run build",
15
+ "prepublish": "yarn build",
16
16
  "test": "jest",
17
17
  "test:debug": "npm test -- --runInBand",
18
18
  "test:watch": "npm test -- --watch",
19
- "watch": "npm run build:lib:watch"
19
+ "watch": "yarn build:lib:watch"
20
20
  },
21
21
  "jest": {
22
22
  "moduleFileExtensions": [
@@ -38,15 +38,15 @@
38
38
  }
39
39
  },
40
40
  "dependencies": {
41
- "@common-stack/core": "^0.1.7"
41
+ "@common-stack/core": "^0.1.19"
42
42
  },
43
43
  "peerDependencies": {
44
- "@cdm-logger/core": ">=6.0.0"
44
+ "@cdm-logger/core": ">=7.0.7"
45
45
  },
46
46
  "publishConfig": {
47
47
  "access": "public"
48
48
  },
49
- "gitHead": "9a2107d6d0cd80791c0cecf7f287ee06334641c6",
49
+ "gitHead": "07b5a92c5d84b83b96389ee85c2e1174c0ef75c6",
50
50
  "typescript": {
51
51
  "definition": "lib/index.d.ts"
52
52
  }
package/CHANGELOG.md DELETED
@@ -1,152 +0,0 @@
1
- # Change Log
2
-
3
- All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
-
6
- ## [0.1.7](https://github.com/cdmbase/common-stack/compare/v0.1.6...v0.1.7) (2021-08-11)
7
-
8
- **Note:** Version bump only for package @common-stack/server-core
9
-
10
-
11
-
12
-
13
-
14
- ## [0.1.6](https://github.com/cdmbase/common-stack/compare/v0.1.5...v0.1.6) (2021-08-11)
15
-
16
- **Note:** Version bump only for package @common-stack/server-core
17
-
18
-
19
-
20
-
21
-
22
- ## [0.1.5](https://github.com/cdmbase/common-stack/compare/v0.1.4...v0.1.5) (2021-08-11)
23
-
24
- **Note:** Version bump only for package @common-stack/server-core
25
-
26
-
27
-
28
-
29
-
30
- ## [0.1.4](https://github.com/cdmbase/common-stack/compare/v0.1.3...v0.1.4) (2021-08-11)
31
-
32
- **Note:** Version bump only for package @common-stack/server-core
33
-
34
-
35
-
36
-
37
-
38
- ## [0.1.3](https://github.com/cdmbase/common-stack/compare/v0.1.2...v0.1.3) (2021-08-11)
39
-
40
- **Note:** Version bump only for package @common-stack/server-core
41
-
42
-
43
-
44
-
45
-
46
- ## [0.1.1](https://github.com/cdmbase/common-stack/compare/v0.0.264...v0.1.1) (2021-08-05)
47
-
48
- **Note:** Version bump only for package @common-stack/server-core
49
-
50
-
51
-
52
-
53
-
54
- ## [0.0.264](https://github.com/cdmbase/common-stack/compare/v0.0.263...v0.0.264) (2021-07-04)
55
-
56
- **Note:** Version bump only for package @common-stack/server-core
57
-
58
-
59
-
60
-
61
-
62
- ## [0.0.263](https://github.com/cdmbase/common-stack/compare/v0.0.262...v0.0.263) (2021-07-03)
63
-
64
- **Note:** Version bump only for package @common-stack/server-core
65
-
66
-
67
-
68
-
69
-
70
- ## [0.0.262](https://github.com/cdmbase/common-stack/compare/v0.0.261...v0.0.262) (2021-06-23)
71
-
72
- **Note:** Version bump only for package @common-stack/server-core
73
-
74
-
75
-
76
-
77
-
78
- ## [0.0.261](https://github.com/cdmbase/common-stack/compare/v0.0.260...v0.0.261) (2021-06-01)
79
-
80
- **Note:** Version bump only for package @common-stack/server-core
81
-
82
-
83
-
84
-
85
-
86
- ## [0.0.260](https://github.com/cdmbase/common-stack/compare/v0.0.259...v0.0.260) (2021-05-28)
87
-
88
- **Note:** Version bump only for package @common-stack/server-core
89
-
90
-
91
-
92
-
93
-
94
- ## [0.0.259](https://github.com/cdmbase/common-stack/compare/v0.0.258...v0.0.259) (2021-05-28)
95
-
96
- **Note:** Version bump only for package @common-stack/server-core
97
-
98
-
99
-
100
-
101
-
102
- ## [0.0.258](https://github.com/cdmbase/common-stack/compare/v0.0.257...v0.0.258) (2021-05-14)
103
-
104
- **Note:** Version bump only for package @common-stack/server-core
105
-
106
-
107
-
108
-
109
-
110
- ## [0.0.257](https://github.com/cdmbase/common-stack/compare/v0.0.256...v0.0.257) (2021-05-05)
111
-
112
- **Note:** Version bump only for package @common-stack/server-core
113
-
114
-
115
-
116
-
117
-
118
- ## [0.0.256](https://github.com/cdmbase/common-stack/compare/v0.0.255...v0.0.256) (2021-05-05)
119
-
120
- **Note:** Version bump only for package @common-stack/server-core
121
-
122
-
123
-
124
-
125
-
126
- ## [0.0.255](https://github.com/cdmbase/common-stack/compare/v0.0.254...v0.0.255) (2021-04-03)
127
-
128
- **Note:** Version bump only for package @common-stack/server-core
129
-
130
-
131
-
132
-
133
-
134
- ## [0.0.254](https://github.com/cdmbase/common-stack/compare/v0.0.253...v0.0.254) (2021-03-31)
135
-
136
- **Note:** Version bump only for package @common-stack/server-core
137
-
138
-
139
-
140
-
141
-
142
- ## [0.0.253](https://github.com/cdmbase/common-stack/compare/v0.0.252...v0.0.253) (2021-03-31)
143
-
144
- **Note:** Version bump only for package @common-stack/server-core
145
-
146
-
147
-
148
-
149
-
150
- ## [0.0.252](https://github.com/cdmbase/common-stack/compare/v0.0.251...v0.0.252) (2021-03-29)
151
-
152
- **Note:** Version bump only for package @common-stack/server-core