@common-stack/server-core 0.6.1-alpha.3 → 3.0.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,17 +6,18 @@ export interface IFederationServiceOptions {
6
6
  port: number;
7
7
  config?: any;
8
8
  }
9
- export declare type FederationServiceDeclaration = (options: IFederationServiceOptions) => Promise<void>;
9
+ export type FederationServiceDeclaration = (options: IFederationServiceOptions) => Promise<void>;
10
10
  /**
11
11
  * Feature Params that can be passed to Feature Module.
12
12
  */
13
- export declare type FeatureParams<T = ConfigurationScope> = {
13
+ export type FeatureParams<T = ConfigurationScope> = {
14
14
  schema?: string | string[];
15
15
  createRemoteSchemas?: Function | Function[];
16
16
  createDirectivesFunc?: Function | Function[];
17
17
  createResolversFunc?: Function | Function[];
18
18
  createContextFunc?: Function | Function[];
19
19
  postBindContainerFunc?: Function[];
20
+ postBindHemraContainerFunc?: Function[];
20
21
  createServiceFunc?: Function | Function[];
21
22
  createDataSourceFunc?: Function | Function[];
22
23
  createContainerFunc?: Function | Function[];
@@ -35,10 +36,6 @@ export declare type FeatureParams<T = ConfigurationScope> = {
35
36
  updateContainerFunc?: any | any[];
36
37
  createPreference?: IPreferences<T> | IPreferences<T>[];
37
38
  overwritePreference?: IOverwritePreference | IOverwritePreference[];
38
- /**
39
- * @returns envalidConfig of a feature
40
- */
41
- readonly envalidConfig?: any;
42
39
  /**
43
40
  * Permissions Preferences
44
41
  */
@@ -72,6 +69,7 @@ declare class Feature<T = ConfigurationScope> {
72
69
  createServiceFunc: Function[];
73
70
  createContainerFunc: Function[];
74
71
  postBindContainerFunc: Function[];
72
+ postBindHemraContainerFunc: Function[];
75
73
  federation: FederationServiceDeclaration[];
76
74
  createHemeraContainerFunc: Function[];
77
75
  createAsyncContainerFunc: Function[];
@@ -87,7 +85,6 @@ declare class Feature<T = ConfigurationScope> {
87
85
  addBrokerClientServiceClass: Function[];
88
86
  disposeFunc: any[];
89
87
  updateContainerFunc: any[];
90
- envalidConfig: any[];
91
88
  beforeware: Function[];
92
89
  middleware: Function[];
93
90
  createWebsocketConfig: IWebsocketConfig[];
@@ -108,7 +105,6 @@ declare class Feature<T = ConfigurationScope> {
108
105
  constructor(feature?: FeatureParams<T>, ...features: Feature<T>[]);
109
106
  get rules(): IGraphqlShieldRules;
110
107
  get schemas(): string[];
111
- get envalidConfigs(): any;
112
108
  /**
113
109
  * Creates context
114
110
  * @param req
@@ -215,9 +211,6 @@ declare class Feature<T = ConfigurationScope> {
215
211
  copyWithin(target: number, start: number, end?: number): IPreferences<S>[];
216
212
  entries(): IterableIterator<[number, IPreferences<S>]>;
217
213
  keys(): IterableIterator<number>;
218
- /**
219
- * Permissions Preferences
220
- */
221
214
  values(): IterableIterator<IPreferences<S>>;
222
215
  includes(searchElement: IPreferences<S>, fromIndex?: number): boolean;
223
216
  flatMap<U_3, This = undefined>(callback: (this: This, value: IPreferences<S>, index: number, array: IPreferences<S>[]) => U_3 | readonly U_3[], thisArg?: This): U_3[];
@@ -274,9 +267,6 @@ declare class Feature<T = ConfigurationScope> {
274
267
  copyWithin(target: number, start: number, end?: number): IPreferences<T>[];
275
268
  entries(): IterableIterator<[number, IPreferences<T>]>;
276
269
  keys(): IterableIterator<number>;
277
- /**
278
- * Permissions Preferences
279
- */
280
270
  values(): IterableIterator<IPreferences<T>>;
281
271
  includes(searchElement: IPreferences<T>, fromIndex?: number): boolean;
282
272
  flatMap<U_3, This = undefined>(callback: (this: This, value: IPreferences<T>, index: number, array: IPreferences<T>[]) => U_3 | readonly U_3[], thisArg?: This): U_3[];
@@ -333,9 +323,6 @@ declare class Feature<T = ConfigurationScope> {
333
323
  copyWithin(target: number, start: number, end?: number): IPreferences<T>[];
334
324
  entries(): IterableIterator<[number, IPreferences<T>]>;
335
325
  keys(): IterableIterator<number>;
336
- /**
337
- * Permissions Preferences
338
- */
339
326
  values(): IterableIterator<IPreferences<T>>;
340
327
  includes(searchElement: IPreferences<T>, fromIndex?: number): boolean;
341
328
  flatMap<U_3, This = undefined>(callback: (this: This, value: IPreferences<T>, index: number, array: IPreferences<T>[]) => U_3 | readonly U_3[], thisArg?: This): U_3[];
@@ -392,9 +379,6 @@ declare class Feature<T = ConfigurationScope> {
392
379
  copyWithin(target: number, start: number, end?: number): IPreferences<S>[];
393
380
  entries(): IterableIterator<[number, IPreferences<S>]>;
394
381
  keys(): IterableIterator<number>;
395
- /**
396
- * Permissions Preferences
397
- */
398
382
  values(): IterableIterator<IPreferences<S>>;
399
383
  includes(searchElement: IPreferences<S>, fromIndex?: number): boolean;
400
384
  flatMap<U_3, This = undefined>(callback: (this: This, value: IPreferences<S>, index: number, array: IPreferences<S>[]) => U_3 | readonly U_3[], thisArg?: This): U_3[];
package/lib/index.js CHANGED
@@ -25,6 +25,7 @@ class Feature {
25
25
  this.createResolversFunc = combine(args, (arg) => arg.createResolversFunc);
26
26
  this.createContextFunc = combine(args, (arg) => arg.createContextFunc);
27
27
  this.postBindContainerFunc = combine(args, (arg) => arg.postBindContainerFunc);
28
+ this.postBindHemraContainerFunc = combine(args, (arg) => arg.postBindHemraContainerFunc);
28
29
  this.createServiceFunc = combine(args, (arg) => arg.createServiceFunc);
29
30
  this.preCreateServiceFunc = combine(args, (arg) => arg.preCreateServiceFunc);
30
31
  this.postCreateServiceFunc = combine(args, (arg) => arg.postCreateServiceFunc);
@@ -37,8 +38,6 @@ class Feature {
37
38
  this.disposeFunc = combine(args, (arg) => arg.disposeFunc);
38
39
  this.federation = combine(args, (arg) => arg.federation);
39
40
  this.migrations = combine(args, (arg) => arg);
40
- // Envalid config
41
- this.envalidConfig = combine(args, (arg) => arg.envalidConfig);
42
41
  this.createContainerFunc = combine(args, (arg) => arg.createContainerFunc);
43
42
  this.createHemeraContainerFunc = combine(args, (arg) => arg.createHemeraContainerFunc);
44
43
  this.createAsyncContainerFunc = combine(args, (arg) => arg.createAsyncContainerFunc);
@@ -72,21 +71,6 @@ class Feature {
72
71
  get schemas() {
73
72
  return this.schema;
74
73
  }
75
- get envalidConfigs() {
76
- return this.envalidConfig.reduce((prev, config) => {
77
- for (let key in config) {
78
- if (prev[key]) {
79
- if (prev[key].required) {
80
- config[key].required = prev[key].required;
81
- }
82
- if (prev[key].devRequired) {
83
- config[key].devRequired = prev[key].devRequired;
84
- }
85
- }
86
- return Object.assign(Object.assign({}, prev), config);
87
- }
88
- }, {});
89
- }
90
74
  /**
91
75
  * Creates context
92
76
  * @param req
@@ -206,6 +190,9 @@ class Feature {
206
190
  await Promise.all(this.createAsyncHemeraContainerFunc.map(async (asyncCreateModule) => {
207
191
  await this.hemeraContainer.loadAsync(asyncCreateModule(options));
208
192
  }));
193
+ this.postBindHemraContainerFunc.map((bindModule) => {
194
+ this.hemeraContainer.load(bindModule(this.container));
195
+ });
209
196
  return this.hemeraContainer;
210
197
  }
211
198
  updateContainers(options, updateOptions) {
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","mappings":"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","sources":["webpack://@common-stack/server-core/./src/connector/connector.ts","webpack://@common-stack/server-core/./src/connector/index.ts","webpack://@common-stack/server-core/./src/constants/index.ts","webpack://@common-stack/server-core/./src/constants/types.ts","webpack://@common-stack/server-core/./src/index.ts","webpack://@common-stack/server-core/./src/interfaces/connector.ts","webpack://@common-stack/server-core/./src/interfaces/index.ts","webpack://@common-stack/server-core/./src/interfaces/mongo-migration.ts","webpack://@common-stack/server-core/./src/interfaces/permissions.ts","webpack://@common-stack/server-core/./src/interfaces/policies.ts","webpack://@common-stack/server-core/./src/interfaces/roles.ts","webpack://@common-stack/server-core/./src/interfaces/rules.ts","webpack://@common-stack/server-core/./src/logger/index.ts","webpack://@common-stack/server-core/./src/logger/logger.ts","webpack://@common-stack/server-core/./src/utils/index.ts","webpack://@common-stack/server-core/./src/utils/preferences.ts","webpack://@common-stack/server-core/external commonjs \"@cdm-logger/server\"","webpack://@common-stack/server-core/external commonjs \"inversify\"","webpack://@common-stack/server-core/external commonjs \"lodash\"","webpack://@common-stack/server-core/webpack/bootstrap","webpack://@common-stack/server-core/webpack/before-startup","webpack://@common-stack/server-core/webpack/startup","webpack://@common-stack/server-core/webpack/after-startup"],"sourcesContent":["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 postBindContainerFunc?: 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 * @returns envalidConfig of a feature\n */\n readonly envalidConfig?: any;\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\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 postBindContainerFunc: 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 envalidConfig: 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.postBindContainerFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.postBindContainerFunc);\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 // Envalid config\n this.envalidConfig = combine(args, (arg: FeatureParams<T>) => arg.envalidConfig);\n\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>(\n args,\n (arg: FeatureParams<T>) => arg.createAsyncHemeraContainerFunc,\n );\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>(\n args,\n (arg: FeatureParams<T>) => arg.addPermissions && arg.addPermissions.createPermissions,\n ),\n overwritePermissions: combine<T>(\n args,\n (arg: FeatureParams<T>) => arg.addPermissions && arg.addPermissions.overwritePermissions,\n ),\n };\n this.addPolicies = {\n createPolicies: combine<T>(\n args,\n (arg: FeatureParams<T>) => arg.addPolicies && arg.addPolicies.createPolicies,\n ),\n overwritePolicies: combine<T>(\n args,\n (arg: FeatureParams<T>) => arg.addPolicies && arg.addPolicies.overwritePolicies,\n ),\n };\n this.rolesUpdate = {\n createRoles: combine<T>(args, (arg: FeatureParams<T>) => arg.rolesUpdate && arg.rolesUpdate.createRoles),\n overwriteRolesPermissions: combine<T>(\n args,\n (arg: FeatureParams<T>) => arg.rolesUpdate && arg.rolesUpdate.overwriteRolesPermissions,\n ),\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 public get envalidConfigs() {\n return this.envalidConfig.reduce((prev, config) => {\n for (let key in config) {\n if (prev[key]) {\n if (prev[key].required) {\n config[key].required = prev[key].required;\n }\n if (prev[key].devRequired) {\n config[key].devRequired = prev[key].devRequired;\n }\n }\n return { ...prev, ...config };\n }\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 * 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(\n this.preCreateServiceFunc.map(async (createService) => await createService(this.container)),\n );\n }\n this.services = merge({}, ...this.createServiceFunc.map((createService) => createService(this.container)));\n\n await Promise.all(\n this.postCreateServiceFunc.map(async (createService) => await createService(this.container)),\n );\n return this.services;\n } catch (err) {\n throw err;\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(\n this.microservicePreStartFunc.map(async (preStart) => await preStart(this.container, options)),\n );\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(\n this.microservicePostStartFunc.map(async (postStart) => await postStart(this.container, options)),\n );\n }\n\n public createDataSource(options?: any) {\n return (this.dataSources = merge(\n {},\n ...this.createDataSourceFunc.map((createDataSource) => createDataSource(this.container)),\n ));\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(\n options,\n containerOptions: interfaces.ContainerOptions = { skipBaseClassChecks: true },\n ) {\n this.container = new Container(containerOptions);\n this.createContainerFunc.map((createModule) => {\n this.container.load(createModule(options));\n });\n await Promise.all(\n this.createAsyncContainerFunc.map(async (asyncCreateModule) => {\n await this.container.loadAsync(asyncCreateModule(options));\n }),\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 this.postBindContainerFunc.map((bindModule) => {\n this.container.load(bindModule(this.container));\n });\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(\n this.createAsyncHemeraContainerFunc.map(async (asyncCreateModule) => {\n await this.hemeraContainer.loadAsync(asyncCreateModule(options));\n }),\n );\n return this.hemeraContainer;\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({\n container,\n broker,\n settings,\n }: {\n container: Container;\n broker: any;\n settings: unknown;\n }) {\n this.addBrokerMainServiceClass.map((serviceClass) =>\n broker.createService(serviceClass, { container, settings }),\n );\n }\n\n public loadClientMoleculerService({\n container,\n broker,\n settings,\n }: {\n container: Container;\n broker: any;\n settings: unknown;\n }) {\n this.addBrokerClientServiceClass.map((serviceClass) =>\n broker.createService(serviceClass, { container, settings }),\n );\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]\n ? merge({}, mergedRoles[role].permissions, mergedOverwriteRolesPermissions[role])\n : 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","export interface IMongoMigration {\n up(): Promise<void>;\n down(): Promise<void>;\n}\n\nexport interface IDatabaseMigration {\n\n /**\n * ID of the migration, and it should be changed inorder to overwrite previous migration\n * In format <string>_<date yyyymmdd>\n */\n id: string;\n\n /**\n * Name of the template\n */\n name: string;\n\n up?(): Promise<void>;\n\n\n down?(): Promise<void>;\n}\n","import { IPreferences } from \"./connector\";\n\n\nexport interface IAddPermissions<T> {\n createPermissions?: IPreferences<T>[] | IPreferences<T>;\n overwritePermissions?: IPreferences<T>[] | IPreferences<T>;\n}\n\n","import { IPreferences } from \"./connector\";\n\n\nexport interface IAddPolicies<T> {\n createPolicies?: IPreferences<T>[] | IPreferences<T>;\n overwritePolicies?: IPreferences<T>[] | IPreferences<T>;\n}\n","import { ConfigurationScope, IPreferencesData } from \"./connector\";\n\n\nexport interface IRoles<T = ConfigurationScope> {\n [key: string]: IPreferencesData<T>;\n}\n\nexport interface IRoleUpdate<T> {\n createRoles?: IRoles<T>[] | IRoles<T>;\n overwriteRolesPermissions?: IRoles<T>[] | IRoles<T>;\n}\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\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/index.ts\");\n",""],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"index.js","mappings":"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","sources":["webpack://@common-stack/server-core/./src/connector/connector.ts","webpack://@common-stack/server-core/./src/connector/index.ts","webpack://@common-stack/server-core/./src/constants/index.ts","webpack://@common-stack/server-core/./src/constants/types.ts","webpack://@common-stack/server-core/./src/index.ts","webpack://@common-stack/server-core/./src/interfaces/connector.ts","webpack://@common-stack/server-core/./src/interfaces/index.ts","webpack://@common-stack/server-core/./src/interfaces/mongo-migration.ts","webpack://@common-stack/server-core/./src/interfaces/permissions.ts","webpack://@common-stack/server-core/./src/interfaces/policies.ts","webpack://@common-stack/server-core/./src/interfaces/roles.ts","webpack://@common-stack/server-core/./src/interfaces/rules.ts","webpack://@common-stack/server-core/./src/logger/index.ts","webpack://@common-stack/server-core/./src/logger/logger.ts","webpack://@common-stack/server-core/./src/utils/index.ts","webpack://@common-stack/server-core/./src/utils/preferences.ts","webpack://@common-stack/server-core/external commonjs \"@cdm-logger/server\"","webpack://@common-stack/server-core/external commonjs \"inversify\"","webpack://@common-stack/server-core/external commonjs \"lodash\"","webpack://@common-stack/server-core/webpack/bootstrap","webpack://@common-stack/server-core/webpack/before-startup","webpack://@common-stack/server-core/webpack/startup","webpack://@common-stack/server-core/webpack/after-startup"],"sourcesContent":["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 postBindContainerFunc?: Function[];\n postBindHemraContainerFunc?: 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\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 postBindContainerFunc: Function[];\n public postBindHemraContainerFunc: 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.postBindContainerFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.postBindContainerFunc);\n this.postBindHemraContainerFunc = combine<T>(args, (arg: FeatureParams<T>) => arg.postBindHemraContainerFunc);\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\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>(\n args,\n (arg: FeatureParams<T>) => arg.createAsyncHemeraContainerFunc,\n );\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>(\n args,\n (arg: FeatureParams<T>) => arg.addPermissions && arg.addPermissions.createPermissions,\n ),\n overwritePermissions: combine<T>(\n args,\n (arg: FeatureParams<T>) => arg.addPermissions && arg.addPermissions.overwritePermissions,\n ),\n };\n this.addPolicies = {\n createPolicies: combine<T>(\n args,\n (arg: FeatureParams<T>) => arg.addPolicies && arg.addPolicies.createPolicies,\n ),\n overwritePolicies: combine<T>(\n args,\n (arg: FeatureParams<T>) => arg.addPolicies && arg.addPolicies.overwritePolicies,\n ),\n };\n this.rolesUpdate = {\n createRoles: combine<T>(args, (arg: FeatureParams<T>) => arg.rolesUpdate && arg.rolesUpdate.createRoles),\n overwriteRolesPermissions: combine<T>(\n args,\n (arg: FeatureParams<T>) => arg.rolesUpdate && arg.rolesUpdate.overwriteRolesPermissions,\n ),\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 * 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 * 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(\n this.preCreateServiceFunc.map(async (createService) => await createService(this.container)),\n );\n }\n this.services = merge({}, ...this.createServiceFunc.map((createService) => createService(this.container)));\n\n await Promise.all(\n this.postCreateServiceFunc.map(async (createService) => await createService(this.container)),\n );\n return this.services;\n } catch (err) {\n throw err;\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(\n this.microservicePreStartFunc.map(async (preStart) => await preStart(this.container, options)),\n );\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(\n this.microservicePostStartFunc.map(async (postStart) => await postStart(this.container, options)),\n );\n }\n\n public createDataSource(options?: any) {\n return (this.dataSources = merge(\n {},\n ...this.createDataSourceFunc.map((createDataSource) => createDataSource(this.container)),\n ));\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(\n options,\n containerOptions: interfaces.ContainerOptions = { skipBaseClassChecks: true },\n ) {\n this.container = new Container(containerOptions);\n this.createContainerFunc.map((createModule) => {\n this.container.load(createModule(options));\n });\n await Promise.all(\n this.createAsyncContainerFunc.map(async (asyncCreateModule) => {\n await this.container.loadAsync(asyncCreateModule(options));\n }),\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 this.postBindContainerFunc.map((bindModule) => {\n this.container.load(bindModule(this.container));\n });\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(\n this.createAsyncHemeraContainerFunc.map(async (asyncCreateModule) => {\n await this.hemeraContainer.loadAsync(asyncCreateModule(options));\n }),\n );\n this.postBindHemraContainerFunc.map((bindModule) => {\n this.hemeraContainer.load(bindModule(this.container));\n });\n return this.hemeraContainer;\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({\n container,\n broker,\n settings,\n }: {\n container: Container;\n broker: any;\n settings: unknown;\n }) {\n this.addBrokerMainServiceClass.map((serviceClass) =>\n broker.createService(serviceClass, { container, settings }),\n );\n }\n\n public loadClientMoleculerService({\n container,\n broker,\n settings,\n }: {\n container: Container;\n broker: any;\n settings: unknown;\n }) {\n this.addBrokerClientServiceClass.map((serviceClass) =>\n broker.createService(serviceClass, { container, settings }),\n );\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]\n ? merge({}, mergedRoles[role].permissions, mergedOverwriteRolesPermissions[role])\n : 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","export interface IMongoMigration {\n up(): Promise<void>;\n down(): Promise<void>;\n}\n\nexport interface IDatabaseMigration {\n\n /**\n * ID of the migration, and it should be changed inorder to overwrite previous migration\n * In format <string>_<date yyyymmdd>\n */\n id: string;\n\n /**\n * Name of the template\n */\n name: string;\n\n up?(): Promise<void>;\n\n\n down?(): Promise<void>;\n}\n","import { IPreferences } from \"./connector\";\n\n\nexport interface IAddPermissions<T> {\n createPermissions?: IPreferences<T>[] | IPreferences<T>;\n overwritePermissions?: IPreferences<T>[] | IPreferences<T>;\n}\n\n","import { IPreferences } from \"./connector\";\n\n\nexport interface IAddPolicies<T> {\n createPolicies?: IPreferences<T>[] | IPreferences<T>;\n overwritePolicies?: IPreferences<T>[] | IPreferences<T>;\n}\n","import { ConfigurationScope, IPreferencesData } from \"./connector\";\n\n\nexport interface IRoles<T = ConfigurationScope> {\n [key: string]: IPreferencesData<T>;\n}\n\nexport interface IRoleUpdate<T> {\n createRoles?: IRoles<T>[] | IRoles<T>;\n overwriteRolesPermissions?: IRoles<T>[] | IRoles<T>;\n}\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\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/index.ts\");\n",""],"names":[],"sourceRoot":""}
@@ -1,8 +1,8 @@
1
- export declare type IResolverFunc<T> = (source: Record<string, any>, args: Record<string, any>, ctx: Record<string, any>) => Promise<T>;
1
+ export type IResolverFunc<T> = (source: Record<string, any>, args: Record<string, any>, ctx: Record<string, any>) => Promise<T>;
2
2
  export interface IRule {
3
3
  [key: string]: IResolverFunc<Record<string, any>>;
4
4
  }
5
- export declare type IGraphqlShieldRules = Record<GraphqlRootType & {
5
+ export type IGraphqlShieldRules = Record<GraphqlRootType & {
6
6
  [key: string]: string;
7
7
  }, IRule>;
8
8
  export declare enum GraphqlRootType {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@common-stack/server-core",
3
- "version": "0.6.1-alpha.3",
3
+ "version": "3.0.1-alpha.0",
4
4
  "description": "common core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -38,7 +38,7 @@
38
38
  }
39
39
  },
40
40
  "dependencies": {
41
- "@common-stack/core": "0.6.1-alpha.3"
41
+ "@common-stack/core": "3.0.1-alpha.0"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "@cdm-logger/core": ">=7.0.12"
@@ -46,7 +46,7 @@
46
46
  "publishConfig": {
47
47
  "access": "public"
48
48
  },
49
- "gitHead": "8c23bfd49fb16286e23bf5d3d2dce2deb724b275",
49
+ "gitHead": "2c5be38e54fcffe218106da86a39bf5c253e504d",
50
50
  "typescript": {
51
51
  "definition": "lib/index.d.ts"
52
52
  }