@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.
- package/lib/connector/connector.d.ts +26 -22
- package/lib/index.js +8 -8
- package/lib/index.js.map +1 -1
- package/lib/utils/preferences.d.ts +6 -5
- package/package.json +8 -8
- package/CHANGELOG.md +0 -152
|
@@ -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(
|
|
191
|
-
|
|
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<
|
|
195
|
-
filter(
|
|
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<
|
|
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(
|
|
243
|
-
|
|
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<
|
|
247
|
-
filter(
|
|
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<
|
|
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(
|
|
295
|
-
|
|
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<
|
|
299
|
-
filter(
|
|
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<
|
|
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(
|
|
347
|
-
|
|
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<
|
|
351
|
-
filter(
|
|
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<
|
|
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" && !
|
|
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" && !
|
|
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" && !
|
|
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" && !
|
|
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" && !
|
|
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" && !
|
|
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(
|
|
22
|
-
|
|
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<
|
|
26
|
-
filter(
|
|
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<
|
|
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.
|
|
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": "
|
|
10
|
+
"build": "yarn build:clean && yarn build:lib",
|
|
11
11
|
"build:clean": "rimraf lib",
|
|
12
12
|
"build:lib": "webpack",
|
|
13
|
-
"build:lib:watch": "
|
|
13
|
+
"build:lib:watch": "yarn build:lib -- --watch",
|
|
14
14
|
"jest": "./node_modules/.bin/jest",
|
|
15
|
-
"prepublish": "
|
|
15
|
+
"prepublish": "yarn build",
|
|
16
16
|
"test": "jest",
|
|
17
17
|
"test:debug": "npm test -- --runInBand",
|
|
18
18
|
"test:watch": "npm test -- --watch",
|
|
19
|
-
"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.
|
|
41
|
+
"@common-stack/core": "^0.1.19"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
|
-
"@cdm-logger/core": ">=
|
|
44
|
+
"@cdm-logger/core": ">=7.0.7"
|
|
45
45
|
},
|
|
46
46
|
"publishConfig": {
|
|
47
47
|
"access": "public"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
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
|