@common-stack/server-core 0.3.1-alpha.0 → 0.4.3

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.
@@ -16,6 +16,7 @@ export declare type FeatureParams<T = ConfigurationScope> = {
16
16
  createDirectivesFunc?: Function | Function[];
17
17
  createResolversFunc?: Function | Function[];
18
18
  createContextFunc?: Function | Function[];
19
+ postBindContainerFunc?: Function[];
19
20
  createServiceFunc?: Function | Function[];
20
21
  createDataSourceFunc?: Function | Function[];
21
22
  createContainerFunc?: Function | Function[];
@@ -70,6 +71,7 @@ declare class Feature<T = ConfigurationScope> {
70
71
  createContextFunc: Function[];
71
72
  createServiceFunc: Function[];
72
73
  createContainerFunc: Function[];
74
+ postBindContainerFunc: Function[];
73
75
  federation: FederationServiceDeclaration[];
74
76
  createHemeraContainerFunc: Function[];
75
77
  createAsyncContainerFunc: Function[];
@@ -160,12 +162,12 @@ declare class Feature<T = ConfigurationScope> {
160
162
  */
161
163
  createMicroserviceContainers(options: any): Promise<any>;
162
164
  updateContainers(options: any, updateOptions?: any): void;
163
- loadMainMoleculerService({ container, broker, settings }: {
165
+ loadMainMoleculerService({ container, broker, settings, }: {
164
166
  container: Container;
165
167
  broker: any;
166
168
  settings: unknown;
167
169
  }): void;
168
- loadClientMoleculerService({ container, broker, settings }: {
170
+ loadClientMoleculerService({ container, broker, settings, }: {
169
171
  container: Container;
170
172
  broker: any;
171
173
  settings: unknown;
@@ -213,8 +215,13 @@ declare class Feature<T = ConfigurationScope> {
213
215
  copyWithin(target: number, start: number, end?: number): IPreferences<S>[];
214
216
  entries(): IterableIterator<[number, IPreferences<S>]>;
215
217
  keys(): IterableIterator<number>;
218
+ /**
219
+ * Permissions Preferences
220
+ */
216
221
  values(): IterableIterator<IPreferences<S>>;
217
222
  includes(searchElement: IPreferences<S>, fromIndex?: number): boolean;
223
+ 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[];
224
+ flat<A, D extends number = 1>(this: A, depth?: D): FlatArray<A, D>[];
218
225
  [Symbol.iterator](): IterableIterator<IPreferences<S>>;
219
226
  [Symbol.unscopables](): {
220
227
  copyWithin: boolean;
@@ -225,6 +232,7 @@ declare class Feature<T = ConfigurationScope> {
225
232
  keys: boolean;
226
233
  values: boolean;
227
234
  };
235
+ at(index: number): IPreferences<S>;
228
236
  };
229
237
  getPermissionPreferences<T = ConfigurationScope>(): IPreferences<T>[];
230
238
  getPermissionPreferencesObj<T>(): {
@@ -266,8 +274,13 @@ declare class Feature<T = ConfigurationScope> {
266
274
  copyWithin(target: number, start: number, end?: number): IPreferences<T>[];
267
275
  entries(): IterableIterator<[number, IPreferences<T>]>;
268
276
  keys(): IterableIterator<number>;
277
+ /**
278
+ * Permissions Preferences
279
+ */
269
280
  values(): IterableIterator<IPreferences<T>>;
270
281
  includes(searchElement: IPreferences<T>, fromIndex?: number): boolean;
282
+ 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[];
283
+ flat<A, D extends number = 1>(this: A, depth?: D): FlatArray<A, D>[];
271
284
  [Symbol.iterator](): IterableIterator<IPreferences<T>>;
272
285
  [Symbol.unscopables](): {
273
286
  copyWithin: boolean;
@@ -278,6 +291,7 @@ declare class Feature<T = ConfigurationScope> {
278
291
  keys: boolean;
279
292
  values: boolean;
280
293
  };
294
+ at(index: number): IPreferences<T>;
281
295
  };
282
296
  getPolicyPreferences<T = ConfigurationScope>(): IPreferences<T>[];
283
297
  getPolicyPreferencesObj<T>(): {
@@ -319,8 +333,13 @@ declare class Feature<T = ConfigurationScope> {
319
333
  copyWithin(target: number, start: number, end?: number): IPreferences<T>[];
320
334
  entries(): IterableIterator<[number, IPreferences<T>]>;
321
335
  keys(): IterableIterator<number>;
336
+ /**
337
+ * Permissions Preferences
338
+ */
322
339
  values(): IterableIterator<IPreferences<T>>;
323
340
  includes(searchElement: IPreferences<T>, fromIndex?: number): boolean;
341
+ 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[];
342
+ flat<A, D extends number = 1>(this: A, depth?: D): FlatArray<A, D>[];
324
343
  [Symbol.iterator](): IterableIterator<IPreferences<T>>;
325
344
  [Symbol.unscopables](): {
326
345
  copyWithin: boolean;
@@ -331,6 +350,7 @@ declare class Feature<T = ConfigurationScope> {
331
350
  keys: boolean;
332
351
  values: boolean;
333
352
  };
353
+ at(index: number): IPreferences<T>;
334
354
  };
335
355
  getRoles(): {};
336
356
  getRolesObj<S>(): {
@@ -372,8 +392,13 @@ declare class Feature<T = ConfigurationScope> {
372
392
  copyWithin(target: number, start: number, end?: number): IPreferences<S>[];
373
393
  entries(): IterableIterator<[number, IPreferences<S>]>;
374
394
  keys(): IterableIterator<number>;
395
+ /**
396
+ * Permissions Preferences
397
+ */
375
398
  values(): IterableIterator<IPreferences<S>>;
376
399
  includes(searchElement: IPreferences<S>, fromIndex?: number): boolean;
400
+ 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[];
401
+ flat<A, D extends number = 1>(this: A, depth?: D): FlatArray<A, D>[];
377
402
  [Symbol.iterator](): IterableIterator<IPreferences<S>>;
378
403
  [Symbol.unscopables](): {
379
404
  copyWithin: boolean;
@@ -384,6 +409,7 @@ declare class Feature<T = ConfigurationScope> {
384
409
  keys: boolean;
385
410
  values: boolean;
386
411
  };
412
+ at(index: number): IPreferences<S>;
387
413
  };
388
414
  getWebsocketConfig(): IWebsocketConfig;
389
415
  private convertArrayToObject;
package/lib/index.js CHANGED
@@ -19,11 +19,12 @@ const combine = (features, extractor) => (0, lodash_1.without)((0, lodash_1.unio
19
19
  class Feature {
20
20
  constructor(feature, ...features) {
21
21
  const args = [feature, ...features];
22
- combine(args, arg => arg.catalogInfo).forEach(info => Object.keys(info).forEach(key => (exports.featureCatalog[key] = info[key])));
22
+ combine(args, (arg) => arg.catalogInfo).forEach((info) => Object.keys(info).forEach((key) => (exports.featureCatalog[key] = info[key])));
23
23
  this.schema = combine(args, (arg) => arg.schema);
24
24
  this.createDirectivesFunc = combine(args, (arg) => arg.createDirectivesFunc);
25
25
  this.createResolversFunc = combine(args, (arg) => arg.createResolversFunc);
26
26
  this.createContextFunc = combine(args, (arg) => arg.createContextFunc);
27
+ this.postBindContainerFunc = combine(args, (arg) => arg.postBindContainerFunc);
27
28
  this.createServiceFunc = combine(args, (arg) => arg.createServiceFunc);
28
29
  this.preCreateServiceFunc = combine(args, (arg) => arg.preCreateServiceFunc);
29
30
  this.postCreateServiceFunc = combine(args, (arg) => arg.postCreateServiceFunc);
@@ -49,22 +50,16 @@ class Feature {
49
50
  this.createWebsocketConfig = combine(args, (arg) => arg.createWebsocketConfig);
50
51
  this.createPreference = combine(args, (arg) => arg.createPreference);
51
52
  this.addPermissions = {
52
- createPermissions: combine(args, (arg) => arg.addPermissions &&
53
- arg.addPermissions.createPermissions),
54
- overwritePermissions: combine(args, (arg) => arg.addPermissions &&
55
- arg.addPermissions.overwritePermissions),
53
+ createPermissions: combine(args, (arg) => arg.addPermissions && arg.addPermissions.createPermissions),
54
+ overwritePermissions: combine(args, (arg) => arg.addPermissions && arg.addPermissions.overwritePermissions),
56
55
  };
57
56
  this.addPolicies = {
58
- createPolicies: combine(args, (arg) => arg.addPolicies &&
59
- arg.addPolicies.createPolicies),
60
- overwritePolicies: combine(args, (arg) => arg.addPolicies &&
61
- arg.addPolicies.overwritePolicies),
57
+ createPolicies: combine(args, (arg) => arg.addPolicies && arg.addPolicies.createPolicies),
58
+ overwritePolicies: combine(args, (arg) => arg.addPolicies && arg.addPolicies.overwritePolicies),
62
59
  };
63
60
  this.rolesUpdate = {
64
- createRoles: combine(args, (arg) => arg.rolesUpdate &&
65
- arg.rolesUpdate.createRoles),
66
- overwriteRolesPermissions: combine(args, (arg) => arg.rolesUpdate &&
67
- arg.rolesUpdate.overwriteRolesPermissions),
61
+ createRoles: combine(args, (arg) => arg.rolesUpdate && arg.rolesUpdate.createRoles),
62
+ overwriteRolesPermissions: combine(args, (arg) => arg.rolesUpdate && arg.rolesUpdate.overwriteRolesPermissions),
68
63
  };
69
64
  this.overwritePreference = combine(args, (arg) => arg.overwritePreference);
70
65
  this._rules = combine(args, (arg) => arg.rules);
@@ -100,7 +95,7 @@ class Feature {
100
95
  * @deprecated
101
96
  */
102
97
  async createContext(req, connectionParams, webSocket) {
103
- const results = await Promise.all(this.createContextFunc.map(createContext => createContext(req, connectionParams, webSocket)));
98
+ const results = await Promise.all(this.createContextFunc.map((createContext) => createContext(req, connectionParams, webSocket)));
104
99
  return (0, lodash_1.merge)({}, ...results);
105
100
  }
106
101
  /**
@@ -110,7 +105,7 @@ class Feature {
110
105
  createServiceContext(options, updateOptions) {
111
106
  return async (req, connectionParams, webSocket) => {
112
107
  await this.createService(options, updateOptions);
113
- const results = await Promise.all(this.createContextFunc.map(createContext => createContext(req, connectionParams, webSocket)));
108
+ const results = await Promise.all(this.createContextFunc.map((createContext) => createContext(req, connectionParams, webSocket)));
114
109
  return (0, lodash_1.merge)({}, ...results, Object.assign({}, this.services));
115
110
  };
116
111
  }
@@ -127,7 +122,7 @@ class Feature {
127
122
  await this.createContainers(options);
128
123
  await Promise.all(this.preCreateServiceFunc.map(async (createService) => await createService(this.container)));
129
124
  }
130
- this.services = (0, lodash_1.merge)({}, ...this.createServiceFunc.map(createService => createService(this.container)));
125
+ this.services = (0, lodash_1.merge)({}, ...this.createServiceFunc.map((createService) => createService(this.container)));
131
126
  await Promise.all(this.postCreateServiceFunc.map(async (createService) => await createService(this.container)));
132
127
  return this.services;
133
128
  }
@@ -162,21 +157,20 @@ class Feature {
162
157
  return await Promise.all(this.microservicePostStartFunc.map(async (postStart) => await postStart(this.container, options)));
163
158
  }
164
159
  createDataSource(options) {
165
- return this.dataSources = (0, lodash_1.merge)({}, ...this.createDataSourceFunc.map(createDataSource => createDataSource(this.container)));
160
+ return (this.dataSources = (0, lodash_1.merge)({}, ...this.createDataSourceFunc.map((createDataSource) => createDataSource(this.container))));
166
161
  }
167
162
  createResolvers(options) {
168
- return (0, lodash_1.merge)({}, ...this.createResolversFunc.map(createResolvers => createResolvers(options)));
163
+ return (0, lodash_1.merge)({}, ...this.createResolversFunc.map((createResolvers) => createResolvers(options)));
169
164
  }
170
165
  createDirectives(options) {
171
- return (0, lodash_1.merge)({}, ...this.createDirectivesFunc.map(createDirectives => createDirectives(options)));
166
+ return (0, lodash_1.merge)({}, ...this.createDirectivesFunc.map((createDirectives) => createDirectives(options)));
172
167
  }
173
168
  async createContainers(options, containerOptions = { skipBaseClassChecks: true }) {
174
169
  this.container = new inversify_1.Container(containerOptions);
175
- this.createContainerFunc.map(createModule => {
170
+ this.createContainerFunc.map((createModule) => {
176
171
  this.container.load(createModule(options));
177
172
  });
178
- await Promise.all(this.createAsyncContainerFunc
179
- .map(async (asyncCreateModule) => {
173
+ await Promise.all(this.createAsyncContainerFunc.map(async (asyncCreateModule) => {
180
174
  await this.container.loadAsync(asyncCreateModule(options));
181
175
  }));
182
176
  this.container.bind('IDefaultSettings').toConstantValue(this.getPreferences());
@@ -186,6 +180,9 @@ class Feature {
186
180
  this.container.bind('IDefaultPermissionsObj').toConstantValue(this.getPermissionPreferencesObj());
187
181
  this.container.bind('IDefaultRoles').toConstantValue(this.getRoles());
188
182
  this.container.bind('IDefaultPoliciesObj').toConstantValue(this.getPolicyPreferencesObj());
183
+ this.postBindContainerFunc.map((bindModule) => {
184
+ this.container.load(bindModule(this.container));
185
+ });
189
186
  return this.container;
190
187
  }
191
188
  /**
@@ -203,11 +200,10 @@ class Feature {
203
200
  */
204
201
  async createMicroserviceContainers(options) {
205
202
  this.hemeraContainer = new inversify_1.Container();
206
- this.createHemeraContainerFunc.map(createModule => {
203
+ this.createHemeraContainerFunc.map((createModule) => {
207
204
  this.hemeraContainer.load(createModule(options));
208
205
  });
209
- await Promise.all(this.createAsyncHemeraContainerFunc
210
- .map(async (asyncCreateModule) => {
206
+ await Promise.all(this.createAsyncHemeraContainerFunc.map(async (asyncCreateModule) => {
211
207
  await this.hemeraContainer.loadAsync(asyncCreateModule(options));
212
208
  }));
213
209
  return this.hemeraContainer;
@@ -216,8 +212,8 @@ class Feature {
216
212
  let mergedModules = (0, lodash_1.merge)({}, ...this.updateContainerFunc);
217
213
  const matchingModules = [];
218
214
  if (updateOptions) {
219
- updateOptions.forEach(option => {
220
- const dispose = this.disposeFunc.find(el => el.container === option);
215
+ updateOptions.forEach((option) => {
216
+ const dispose = this.disposeFunc.find((el) => el.container === option);
221
217
  if (dispose) {
222
218
  this.services[dispose.ctx].dispose();
223
219
  }
@@ -227,13 +223,13 @@ class Feature {
227
223
  }
228
224
  });
229
225
  }
230
- matchingModules.map(createModule => this.container.load(createModule(options)));
226
+ matchingModules.map((createModule) => this.container.load(createModule(options)));
231
227
  }
232
- loadMainMoleculerService({ container, broker, settings }) {
233
- this.addBrokerMainServiceClass.map(serviceClass => broker.createService(serviceClass, { container, settings }));
228
+ loadMainMoleculerService({ container, broker, settings, }) {
229
+ this.addBrokerMainServiceClass.map((serviceClass) => broker.createService(serviceClass, { container, settings }));
234
230
  }
235
- loadClientMoleculerService({ container, broker, settings }) {
236
- this.addBrokerClientServiceClass.map(serviceClass => broker.createService(serviceClass, { container, settings }));
231
+ loadClientMoleculerService({ container, broker, settings, }) {
232
+ this.addBrokerClientServiceClass.map((serviceClass) => broker.createService(serviceClass, { container, settings }));
237
233
  }
238
234
  createDefaultPreferences() {
239
235
  return (0, utils_1.transformPrefsToArray)((0, lodash_1.merge)([], ...this.createPreference));
@@ -276,7 +272,9 @@ class Feature {
276
272
  const mergedOverwriteRolesPermissions = (0, lodash_1.merge)({}, ...(0, lodash_1.castArray)(overwriteRolesPermissions));
277
273
  let result = {};
278
274
  for (const role in mergedRoles) {
279
- const rolePermission = mergedOverwriteRolesPermissions[role] ? (0, lodash_1.merge)({}, mergedRoles[role].permissions, mergedOverwriteRolesPermissions[role]) : mergedRoles[role].permissions;
275
+ const rolePermission = mergedOverwriteRolesPermissions[role]
276
+ ? (0, lodash_1.merge)({}, mergedRoles[role].permissions, mergedOverwriteRolesPermissions[role])
277
+ : mergedRoles[role].permissions;
280
278
  const mmm = Object.assign(Object.assign({}, mergedRoles[role]), { permissions: Object.assign({}, rolePermission) });
281
279
  result = (0, lodash_1.merge)({}, result, { [role]: mmm });
282
280
  }
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 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\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 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.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>(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 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 /**\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","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 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":""}
@@ -40,6 +40,8 @@ export declare function getCurrentPreferences<T>(preferencesDefaultArr: IPrefere
40
40
  keys(): IterableIterator<number>;
41
41
  values(): IterableIterator<IPreferences<T>>;
42
42
  includes(searchElement: IPreferences<T>, fromIndex?: number): boolean;
43
+ 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[];
44
+ flat<A, D extends number = 1>(this: A, depth?: D): FlatArray<A, D>[];
43
45
  [Symbol.iterator](): IterableIterator<IPreferences<T>>;
44
46
  [Symbol.unscopables](): {
45
47
  copyWithin: boolean;
@@ -50,5 +52,6 @@ export declare function getCurrentPreferences<T>(preferencesDefaultArr: IPrefere
50
52
  keys: boolean;
51
53
  values: boolean;
52
54
  };
55
+ at(index: number): IPreferences<T>;
53
56
  };
54
57
  export declare function transformPrefsToArray<T>(preferences: IPreferences<T>[]): IPreferencesData<T>[];
package/package.json CHANGED
@@ -1,53 +1,53 @@
1
1
  {
2
- "name": "@common-stack/server-core",
3
- "version": "0.3.1-alpha.0",
4
- "description": "common core for higher packages to depend on",
5
- "license": "ISC",
6
- "author": "CDMBase LLC",
7
- "main": "lib/index.js",
8
- "typings": "lib/index.d.ts",
9
- "scripts": {
10
- "build": "yarn build:clean && yarn build:lib",
11
- "build:clean": "rimraf lib",
12
- "build:lib": "webpack",
13
- "build:lib:watch": "yarn build:lib -- --watch",
14
- "jest": "./node_modules/.bin/jest",
15
- "prepublish": "yarn build",
16
- "test": "jest",
17
- "test:debug": "npm test -- --runInBand",
18
- "test:watch": "npm test -- --watch",
19
- "watch": "yarn build:lib:watch"
20
- },
21
- "jest": {
22
- "moduleFileExtensions": [
23
- "ts",
24
- "tsx",
25
- "js",
26
- "json"
27
- ],
28
- "modulePaths": [
29
- "node_modules"
30
- ],
31
- "roots": [
32
- "src"
33
- ],
34
- "testEnvironment": "node",
35
- "testRegex": "/__tests__/.*test*\\.(ts|tsx|js)$",
36
- "transform": {
37
- "\\.(ts|tsx)$": "<rootDir>/../../node_modules/ts-jest/preprocessor.js"
2
+ "name": "@common-stack/server-core",
3
+ "version": "0.4.3",
4
+ "description": "common core for higher packages to depend on",
5
+ "license": "ISC",
6
+ "author": "CDMBase LLC",
7
+ "main": "lib/index.js",
8
+ "typings": "lib/index.d.ts",
9
+ "scripts": {
10
+ "build": "yarn build:clean && yarn build:lib",
11
+ "build:clean": "rimraf lib",
12
+ "build:lib": "webpack",
13
+ "build:lib:watch": "yarn build:lib -- --watch",
14
+ "jest": "./node_modules/.bin/jest",
15
+ "prepublish": "yarn build",
16
+ "test": "jest",
17
+ "test:debug": "npm test -- --runInBand",
18
+ "test:watch": "npm test -- --watch",
19
+ "watch": "yarn build:lib:watch"
20
+ },
21
+ "jest": {
22
+ "moduleFileExtensions": [
23
+ "ts",
24
+ "tsx",
25
+ "js",
26
+ "json"
27
+ ],
28
+ "modulePaths": [
29
+ "node_modules"
30
+ ],
31
+ "roots": [
32
+ "src"
33
+ ],
34
+ "testEnvironment": "node",
35
+ "testRegex": "/__tests__/.*test*\\.(ts|tsx|js)$",
36
+ "transform": {
37
+ "\\.(ts|tsx)$": "<rootDir>/../../node_modules/ts-jest/preprocessor.js"
38
+ }
39
+ },
40
+ "dependencies": {
41
+ "@common-stack/core": "0.4.1"
42
+ },
43
+ "peerDependencies": {
44
+ "@cdm-logger/core": ">=7.0.12"
45
+ },
46
+ "publishConfig": {
47
+ "access": "public"
48
+ },
49
+ "gitHead": "e3177df30a45d204757a010842268e7ee05bfb99",
50
+ "typescript": {
51
+ "definition": "lib/index.d.ts"
38
52
  }
39
- },
40
- "dependencies": {
41
- "@common-stack/core": "0.3.1-alpha.0"
42
- },
43
- "peerDependencies": {
44
- "@cdm-logger/core": ">=7.0.12"
45
- },
46
- "publishConfig": {
47
- "access": "public"
48
- },
49
- "gitHead": "38b12e16509f5521de83592aa4901d5b02394980",
50
- "typescript": {
51
- "definition": "lib/index.d.ts"
52
- }
53
53
  }