@futdevpro/nts-dynamo 1.9.8 → 1.9.10

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.
Files changed (49) hide show
  1. package/build/_constants/global-settings.const.d.ts.map +1 -1
  2. package/build/_constants/global-settings.const.js +1 -0
  3. package/build/_constants/global-settings.const.js.map +1 -1
  4. package/build/_constants/mocks/auth-service.mock.d.ts +3 -3
  5. package/build/_constants/mocks/auth-service.mock.d.ts.map +1 -1
  6. package/build/_constants/mocks/auth-service.mock.js +3 -3
  7. package/build/_constants/mocks/auth-service.mock.js.map +1 -1
  8. package/build/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
  9. package/build/_models/control-models/endpoint-params.control-model.js +6 -0
  10. package/build/_models/control-models/endpoint-params.control-model.js.map +1 -1
  11. package/build/_models/interfaces/global-settings.interface.d.ts +4 -0
  12. package/build/_models/interfaces/global-settings.interface.d.ts.map +1 -1
  13. package/build/_modules/usage/usage.controller.js +1 -1
  14. package/build/_modules/usage/usage.controller.js.map +1 -1
  15. package/build/_services/base/data.service.d.ts.map +1 -1
  16. package/build/_services/base/data.service.js +16 -5
  17. package/build/_services/base/data.service.js.map +1 -1
  18. package/build/_services/base/db.service.d.ts.map +1 -1
  19. package/build/_services/base/db.service.js +13 -3
  20. package/build/_services/base/db.service.js.map +1 -1
  21. package/build/_services/core/api.service.d.ts.map +1 -1
  22. package/build/_services/core/api.service.js +37 -10
  23. package/build/_services/core/api.service.js.map +1 -1
  24. package/build/_services/core/auth.service.d.ts +3 -3
  25. package/build/_services/core/auth.service.d.ts.map +1 -1
  26. package/build/_services/core/global.service.d.ts.map +1 -1
  27. package/build/_services/core/global.service.js +9 -2
  28. package/build/_services/core/global.service.js.map +1 -1
  29. package/build/_services/server/app.server.d.ts.map +1 -1
  30. package/build/_services/server/app.server.js +12 -11
  31. package/build/_services/server/app.server.js.map +1 -1
  32. package/build/_services/socket/socket-client.service.d.ts.map +1 -1
  33. package/build/_services/socket/socket-client.service.js +4 -0
  34. package/build/_services/socket/socket-client.service.js.map +1 -1
  35. package/build/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +1 -1
  37. package/src/_constants/global-settings.const.ts +2 -0
  38. package/src/_constants/mocks/auth-service.mock.ts +3 -3
  39. package/src/_models/control-models/endpoint-params.control-model.ts +8 -0
  40. package/src/_models/interfaces/global-settings.interface.ts +5 -0
  41. package/src/_modules/usage/usage.controller.ts +1 -1
  42. package/src/_services/base/data.service.ts +12 -3
  43. package/src/_services/base/db.service.ts +11 -3
  44. package/src/_services/core/api.service.ts +51 -16
  45. package/src/_services/core/auth.service.ts +3 -3
  46. package/src/_services/core/global.service.ts +11 -2
  47. package/src/_services/server/app.server.ts +20 -11
  48. package/src/_services/socket/socket-client.service.ts +5 -0
  49. package/tsconfig.json +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/nts-dynamo",
3
- "version": "01.09.08",
3
+ "version": "01.09.10",
4
4
  "description": "Dynamic NodeTS (NodeJS-Typescript), MongoDB Backend System Framework by Future Development Program Ltd.",
5
5
  "scripts": {
6
6
  "prep": "npm i rimraf nodemon -g",
@@ -22,4 +22,6 @@ export const DynamoNTS_globalSettings: DynamoNTS_Global_Settings = {
22
22
  logApiRequestContents: false,
23
23
  logApiRequestSettings: false,
24
24
  logApiResponseContents: false,
25
+
26
+ logDetailedErrors: false,
25
27
  };
@@ -10,11 +10,11 @@ export class AuthService_Mock extends DynamoNTS_AuthService {
10
10
  return AuthService_Mock.getSingletonInstance();
11
11
  }
12
12
 
13
- async authenticateToken(req: Request, res: Response): Promise<void> {}
13
+ authenticate_token = async (req: Request, res: Response): Promise<void> => {};
14
14
 
15
- async authenticateTokenSelf(req: Request, res: Response): Promise<void> {}
15
+ authenticate_tokenSelf = async (req: Request, res: Response): Promise<void> => {};
16
16
 
17
- async authTokenPermAccUsageData(req: Request, res: Response): Promise<void> {}
17
+ authenticate_tokenPermAccUsageData = async (req: Request, res: Response): Promise<void> => {};
18
18
 
19
19
  getIssuerFromRequest(req: Request): string {
20
20
  return 'accountId_mock';
@@ -230,6 +230,8 @@ export class DynamoNTS_Endpoint_Params {
230
230
  (error as DynamoFM_Error).additionalContent = {};
231
231
  }
232
232
  (error as DynamoFM_Error).additionalContent.endpointInfo = msg;
233
+ DynamoFM_Log.error(`ErrorMessage: ${(error as DynamoFM_Error)._message}`);
234
+ DynamoFM_Log.error(`ErrorCode: ${(error as DynamoFM_Error)._errorCode}`);
233
235
  }
234
236
 
235
237
  await DynamoNTS_GlobalService.globalErrorHandler?.(
@@ -262,6 +264,7 @@ export class DynamoNTS_Endpoint_Params {
262
264
  );
263
265
  }
264
266
  }
267
+
265
268
  } catch (error) {
266
269
  DynamoFM_Log.H_error(
267
270
  `\n\nDYNAMO MULTILEVEL ERROR:DynamoNTS_EndpointParams: error: ` +
@@ -271,6 +274,11 @@ export class DynamoNTS_Endpoint_Params {
271
274
  `\nERROR:`, error,
272
275
  '\n'
273
276
  );
277
+
278
+ if (error?.flag?.includes?.('DYNAMO-ERROR-OBJECT')) {
279
+ DynamoFM_Log.error(`ErrorMessage: ${(error as DynamoFM_Error)._message}`);
280
+ DynamoFM_Log.error(`ErrorCode: ${(error as DynamoFM_Error)._errorCode}`);
281
+ }
274
282
  }
275
283
  }
276
284
 
@@ -75,4 +75,9 @@ export interface DynamoNTS_Global_Settings {
75
75
  * this is an application wide default setting for api debug logs
76
76
  */
77
77
  logApiResponseContents?: boolean;
78
+
79
+ /**
80
+ * this is an application wide default setting for detailed error logs
81
+ */
82
+ logDetailedErrors?: boolean;
78
83
  }
@@ -99,7 +99,7 @@ export class DynamoNTS_Usage_Controller extends DynamoNTS_Controller {
99
99
  name: 'getUsageData',
100
100
  type: DynamoNTS_HttpCallType.get,
101
101
  endpoint: DynamoFM_usageModule_settings.endPoints.getUsageData,
102
- preProcesses: [this.authService.authTokenPermAccUsageData],
102
+ preProcesses: [ this.authService.authenticate_tokenPermAccUsageData ],
103
103
  tasks: [
104
104
  async (req: Request, res: Response): Promise<void> => {
105
105
  const range: DynamoFM_RelativeDate = req.params.range as DynamoFM_RelativeDate;
@@ -1,7 +1,7 @@
1
1
 
2
2
  import {
3
3
  DynamoFM_Metadata, DynamoFM_DataModel_Params, DynamoFM_DataProperty_Params, DynamoFM_Error,
4
- DynamoFM_Log, DynamoFM_AnyError, DynamoFM_Error_Settings
4
+ DynamoFM_Log, DynamoFM_AnyError, DynamoFM_Error_Settings, DynamoFM_ErrorLevel
5
5
  } from '@futdevpro/fsm-dynamo';
6
6
  import { DynamoNTS_DBFilter } from '../../_models/types/db-filter.type';
7
7
  import { DynamoNTS_DBUpdate } from '../../_models/types/db-update.type';
@@ -74,14 +74,23 @@ export class DynamoNTS_DataService<T extends DynamoFM_Metadata> {
74
74
  this.lookForDependencyDataSettings();
75
75
  this.issuer = issuer;
76
76
  } catch (error) {
77
- DynamoFM_Log.error(
77
+ throw new DynamoFM_Error({
78
+ ...this._getDefaultErrorSettings('constructor', error),
79
+ message: `The dataService construction failed for ${dataParams?.dataName}. ` +
80
+ `${this.serviceName} (${this.constructor.name})` +
81
+ `\nMaybe you forgot to add the dbService to the GlobalService?\n\n`,
82
+ level: DynamoFM_ErrorLevel.critical,
83
+
84
+ errorCode: 'NTS-DS0-C00',
85
+ });
86
+ /* DynamoFM_Log.error(
78
87
  `\nDynamoNTS_DataService ERROR: ` +
79
88
  `\nThe dataService construction failed for ` +
80
89
  `${dataParams?.dataName}. ${this.serviceName} (${this.constructor.name})` +
81
90
  `\nMaybe you forgot to add the dbService to the GlobalService?` +
82
91
  `\n\n`,
83
92
  new Error()
84
- );
93
+ ); */
85
94
  }
86
95
  }
87
96
 
@@ -4,7 +4,7 @@ import { Schema } from 'mongoose';
4
4
 
5
5
  import {
6
6
  DynamoFM_Metadata, DynamoFM_DataModel_Params, DynamoFM_DataProperty_Params, DynamoFM_Error,
7
- DynamoFM_Log, DynamoFM_AnyError, DynamoFM_Error_Settings
7
+ DynamoFM_Log, DynamoFM_AnyError, DynamoFM_Error_Settings, DynamoFM_ErrorLevel
8
8
  } from '@futdevpro/fsm-dynamo';
9
9
  import { DynamoNTS_DBFilter } from '../../_models/types/db-filter.type';
10
10
  import { DynamoNTS_DBUpdate } from '../../_models/types/db-update.type';
@@ -48,12 +48,20 @@ export class DynamoNTS_DBService<T extends DynamoFM_Metadata> {
48
48
 
49
49
  this.lookForDependencyDataSettings();
50
50
  } catch (error) {
51
- DynamoFM_Log.error(
51
+ throw new DynamoFM_Error({
52
+ message:
53
+ `DynamoNTS_DBService construction failed! ${dataParams.dataName} - ${this.serviceName}`,
54
+ errorCode: 'NTS-DBS-C00',
55
+ level: DynamoFM_ErrorLevel.critical,
56
+ additionalContent: { dataParams: this.dataParams },
57
+ error,
58
+ });
59
+ /* DynamoFM_Log.error(
52
60
  `\nDynamoNTS_DBService ERROR, ` +
53
61
  `The dbService construction failed for ${dataParams.dataName}. ${this.serviceName}` +
54
62
  `\nERROR: `, error,
55
63
  new Error()
56
- );
64
+ ); */
57
65
  }
58
66
  }
59
67
 
@@ -106,7 +106,18 @@ export class DynamoNTS_ApiService {
106
106
  break;
107
107
 
108
108
  default:
109
- DynamoFM_Log.error('DYNAMOBE ERROR: \n wrong api call type'/* , '\n\n', new Error() */);
109
+ throw new DynamoFM_Error({
110
+ ...this._getDefaultErrorSettings(
111
+ 'startApiCall',
112
+ new Error('wrong api call type')
113
+ ),
114
+ errorCode: 'NTS-API-SAC0',
115
+ additionalContent: {
116
+ callParams,
117
+ inputParams,
118
+ },
119
+ });
120
+ //DynamoFM_Log.error('DYNAMO-NTS ERROR: \n wrong api call type'/* , '\n\n', new Error() */);
110
121
  break;
111
122
  }
112
123
 
@@ -137,7 +148,7 @@ export class DynamoNTS_ApiService {
137
148
  break;
138
149
 
139
150
  default:
140
- console.error('DYNAMOBE ERROR: \n wrong query param type', '\n\n', new Error());
151
+ console.error('DYNAMO-NTS ERROR: \n wrong query param type', '\n\n', new Error());
141
152
  break;
142
153
  }
143
154
  }
@@ -212,11 +223,11 @@ export class DynamoNTS_ApiService {
212
223
 
213
224
  status: 404,
214
225
  errorCode: 'NTS-API-SAC3',
215
- message: `Can't connect to the endpoin!`,
226
+ message: `Can't connect to the endpoint!`,
216
227
  additionalContent: {
217
228
  callParams,
218
229
  inputParams,
219
- }
230
+ },
220
231
  });
221
232
 
222
233
  } else if (error.config && error.message) {
@@ -235,7 +246,10 @@ export class DynamoNTS_ApiService {
235
246
  },
236
247
  });
237
248
  } else {
238
- DynamoFM_Log.error(`\n${callParams.name} was UNSUCCESSFUL`, error /*, '\n\n' , new Error() */);
249
+ DynamoFM_Log.error(
250
+ `\n${callParams.name} was UNSUCCESSFUL`,
251
+ error /*, '\n\n' , new Error() */
252
+ );
239
253
 
240
254
  throw error;
241
255
  }
@@ -345,10 +359,13 @@ export class DynamoNTS_ApiService {
345
359
  axios.defaults.headers.common[headerKey] = callParams.httpOptions.headers[headerKey];
346
360
 
347
361
  } else {
348
- DynamoFM_Log.error(
349
- 'DYNAMOBE ERROR: \n missing header:',
350
- headerKey
351
- );
362
+ throw new DynamoFM_Error({
363
+ ...this._getDefaultErrorSettings(
364
+ 'setupHeaders',
365
+ new Error(`missing header: ${headerKey}`)
366
+ ),
367
+ errorCode: 'NTS-API-SH0',
368
+ });
352
369
  }
353
370
  }
354
371
  }
@@ -374,20 +391,38 @@ export class DynamoNTS_ApiService {
374
391
  break;
375
392
 
376
393
  default:
377
- DynamoFM_Log.error(
378
- `DYNAMOBE ERROR: \n wrong path param type: (${pathParamKey}): ${paramType} ` +
394
+ /* DynamoFM_Log.error(
395
+ `DYNAMO-NTS ERROR:`+
396
+ `\nwrong path param type: (${pathParamKey}): ${paramType} ` +
379
397
  `\n${pathParams[pathParamKey]}` +
380
398
  `\nMUST BE string or number` +
381
399
  `\n\n`,
382
400
  new Error()
383
- );
401
+ ); */
402
+ throw new DynamoFM_Error({
403
+ ...this._getDefaultErrorSettings(
404
+ 'setupPathParams',
405
+ new Error(
406
+ `wrong path param type: (${pathParamKey}): ${paramType}` +
407
+ `\n${pathParams[pathParamKey]}`
408
+ )
409
+ ),
410
+ errorCode: 'NTS-API-SP1',
411
+ additionalContent: {
412
+ pathParams: pathParams,
413
+ url: url,
414
+ },
415
+ });
384
416
  break;
385
417
  }
386
418
  } else {
387
- DynamoFM_Log.error(
388
- 'DYNAMOBE ERROR: \n missing pathParam:',
389
- pathParamKey /* , '\n\n', new Error() */
390
- );
419
+ throw new DynamoFM_Error({
420
+ ...this._getDefaultErrorSettings(
421
+ 'setupPathParams',
422
+ new Error(`missing pathParam: ${pathParamKey}`)
423
+ ),
424
+ errorCode: 'NTS-API-SP0',
425
+ });
391
426
  }
392
427
  }
393
428
 
@@ -92,7 +92,7 @@ export abstract class DynamoNTS_AuthService extends DynamoNTS_SingletonService {
92
92
  * }
93
93
  * }
94
94
  * */
95
- abstract authenticateToken(req: Request, res: Response): Promise<void>;
95
+ abstract authenticate_token: (req: Request, res: Response) => Promise<void>;
96
96
 
97
97
  /**
98
98
  * You need to implement a token validation logic,
@@ -128,7 +128,7 @@ export abstract class DynamoNTS_AuthService extends DynamoNTS_SingletonService {
128
128
  * }
129
129
  *
130
130
  */
131
- abstract authenticateTokenSelf(req: Request, res: Response): Promise<void>;
131
+ abstract authenticate_tokenSelf: (req: Request, res: Response) => Promise<void>;
132
132
 
133
133
  /**
134
134
  * Authenticate Token for Permission to Access UsageData
@@ -144,7 +144,7 @@ export abstract class DynamoNTS_AuthService extends DynamoNTS_SingletonService {
144
144
  * AuthService.authTokenAndPerm(req, res, next, Permission.accessUsageData);
145
145
  * }
146
146
  */
147
- abstract authTokenPermAccUsageData(req: Request, res: Response): Promise<void>;
147
+ abstract authenticate_tokenPermAccUsageData: (req: Request, res: Response) => Promise<void>;
148
148
 
149
149
  /**
150
150
  * The DynamoBE System is using this to get issuer, that will be set on DBServices
@@ -18,6 +18,7 @@ import { DynamoNTS_EmailService } from './email.service';
18
18
  import { DynamoNTS_Service_Collection } from './service-collection.service';
19
19
  /* import { DynamoNTS_EmailServiceCollection } from './email-service-collection.service'; */
20
20
  import { DynamoNTS_SingletonService } from '../base/singleton.service';
21
+ import { DynamoNTS_globalSettings } from '../../_constants';
21
22
 
22
23
  /**
23
24
  * This is the main Global/Core Service Collection used by DynamoBE,
@@ -105,7 +106,15 @@ export class DynamoNTS_GlobalService extends DynamoNTS_SingletonService {
105
106
  set.errorHandler ??
106
107
  (async (error: any): Promise<void> => {
107
108
  DynamoFM_Log.warn(`globalErrorHandler not set!`);
108
- DynamoFM_Log.error(`ERROR:\n`, error);
109
+
110
+ if (DynamoNTS_globalSettings.logDetailedErrors) {
111
+ DynamoFM_Log.error(`ERROR:\n`, error);
112
+ }
113
+
114
+ if (error?.flag?.includes?.('DYNAMO-ERROR-OBJECT')) {
115
+ DynamoFM_Log.error(`\nErrorMessage: ${(error as DynamoFM_Error)._message}`);
116
+ DynamoFM_Log.error(`ErrorCode: ${(error as DynamoFM_Error)._errorCode}`);
117
+ }
109
118
  });
110
119
  } catch (error) {
111
120
  throw new DynamoFM_Error({
@@ -125,7 +134,7 @@ export class DynamoNTS_GlobalService extends DynamoNTS_SingletonService {
125
134
  * @returns
126
135
  */
127
136
  static getAuthService(): DynamoNTS_AuthService {
128
- if (!this.instance?.authService?.authenticateToken) {
137
+ if (!(this.instance?.authService as DynamoNTS_AuthService)?.authenticate_token) {
129
138
  throw new Error(
130
139
  `\n Unique Authentication Service missing!` +
131
140
  `\n Please create a Unique Authentication Service extending DynamoNTS_AuthService, ` +
@@ -288,7 +288,7 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
288
288
  );
289
289
 
290
290
  } catch (error) {
291
- DynamoFM_Log.error('getGlobalErrorHandler ERROR:', error);
291
+ DynamoFM_Log.error('globalErrorHandler (MULTILEVEL) ERROR:', error);
292
292
  }
293
293
  });
294
294
 
@@ -299,7 +299,7 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
299
299
  );
300
300
 
301
301
  if (error?.flag?.includes?.('DYNAMO-ERROR-OBJECT')) {
302
- DynamoFM_Log.error(`\nError: ${(error as DynamoFM_Error)._message}`);
302
+ DynamoFM_Log.error(`\nErrorMessage: ${(error as DynamoFM_Error)._message}`);
303
303
  DynamoFM_Log.error(`ErrorCode: ${(error as DynamoFM_Error)._errorCode}`);
304
304
  }
305
305
  });
@@ -389,7 +389,11 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
389
389
  }
390
390
  } catch (error) {
391
391
  this.constructErrors.push(error);
392
- DynamoFM_Log.error(`${this._params.name} start failed. ERRORS`, this.constructErrors);
392
+ DynamoFM_Log.error(
393
+ `${this._params.name} start failed. ERRORS`,
394
+ this.constructErrors,
395
+ error
396
+ );
393
397
 
394
398
  throw new DynamoFM_Error({
395
399
  ...this._getDefaultErrorSettings(
@@ -418,7 +422,10 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
418
422
  const start: number = +new Date();
419
423
 
420
424
  if (this.constructErrors.length) {
421
- DynamoFM_Log.error(`${this._params.name} start failed. ERRORS`, this.constructErrors);
425
+ DynamoFM_Log.error(
426
+ `${this._params.name} start failed. \nERRORS:`,
427
+ this.constructErrors
428
+ );
422
429
 
423
430
  throw new DynamoFM_Error({
424
431
  ...this._getDefaultErrorSettings(
@@ -426,7 +433,7 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
426
433
  new Error(`${this._params.name} start failed. ERRORS`)
427
434
  ),
428
435
 
429
- errorCode: 'NTS-AS0-R1',
436
+ errorCode: 'NTS-AS0-R01',
430
437
  additionalContent:
431
438
  this.constructErrors.length === 1 ?
432
439
  this.constructErrors[0] :
@@ -459,7 +466,7 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
459
466
  new Error(`${this._params.name} start failed. TIMEOUT`)
460
467
  ),
461
468
 
462
- errorCode: 'NTS-AS0-R2',
469
+ errorCode: 'NTS-AS0-R02',
463
470
  additionalContent: {
464
471
  constructErrors: this.constructErrors,
465
472
  systemControls: this.systemControls,
@@ -481,7 +488,7 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
481
488
  new Error(`${this._params.name} start failed. ERROR`)
482
489
  ),
483
490
 
484
- errorCode: 'NTS-AS0-R3',
491
+ errorCode: 'NTS-AS0-R03',
485
492
  additionalContent: this.constructErrors,
486
493
  });
487
494
  }
@@ -517,7 +524,7 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
517
524
  new Error(msg)
518
525
  ),
519
526
 
520
- errorCode: 'NTS-AS0-R4',
527
+ errorCode: 'NTS-AS0-R04',
521
528
  additionalContent: {
522
529
  constructErrors: this.constructErrors,
523
530
  systemControls: this.systemControls,
@@ -915,11 +922,11 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
915
922
  DynamoNTS_GlobalService.globalErrorHandler?.(d_error);
916
923
  }
917
924
  })
918
- .on('uncaughtException', (ex): void => {
925
+ .on('uncaughtException', (exception): void => {
919
926
  const d_error: DynamoFM_Error = new DynamoFM_Error({
920
927
  ...this._getDefaultErrorSettings(
921
928
  'httpServer.on(uncaughtException)',
922
- ex
929
+ exception
923
930
  ),
924
931
 
925
932
  errorCode: 'NTS-AS0-SE5',
@@ -927,7 +934,9 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
927
934
  level: DynamoFM_ErrorLevel.critical,
928
935
  });
929
936
 
930
- if (this.debugLog) DynamoFM_Log.warn(`\nHTTP (open) server uncaughtException`, d_error);
937
+ if (this.debugLog) {
938
+ DynamoFM_Log.warn(`\nHTTP (open) server uncaughtException`, d_error);
939
+ }
931
940
 
932
941
  DynamoNTS_GlobalService.globalErrorHandler?.(d_error);
933
942
  });
@@ -79,6 +79,11 @@ export abstract class DynamoNTS_SocketClientService extends DynamoNTS_SingletonS
79
79
 
80
80
  this.asyncConstructor().catch((error: any) => {
81
81
  DynamoFM_Log.error(`socket-client(${this.params?.name}) Service setup failed! ERROR:`, error);
82
+
83
+ if (error?.flag?.includes?.('DYNAMO-ERROR-OBJECT')) {
84
+ DynamoFM_Log.error(`\nErrorMessage: ${(error as DynamoFM_Error)._message}`);
85
+ DynamoFM_Log.error(`ErrorCode: ${(error as DynamoFM_Error)._errorCode}`);
86
+ }
82
87
  });
83
88
  }
84
89
 
package/tsconfig.json CHANGED
@@ -18,9 +18,9 @@
18
18
  "moduleResolution": "node",
19
19
  "esModuleInterop": true,
20
20
  "skipLibCheck": true,
21
+ "noImplicitOverride": true,
21
22
  "allowSyntheticDefaultImports": true,
22
23
  "forceConsistentCasingInFileNames": true,
23
- "noImplicitOverride": true,
24
24
  "resolveJsonModule": true,
25
25
  "paths": {
26
26