@futdevpro/nts-dynamo 1.11.30 → 1.11.31

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 (63) hide show
  1. package/.github/workflows/main.yml +1 -1
  2. package/build/_models/control-models/endpoint-params.control-model.d.ts +1 -1
  3. package/build/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
  4. package/build/_models/control-models/endpoint-params.control-model.js +9 -9
  5. package/build/_models/control-models/endpoint-params.control-model.js.map +1 -1
  6. package/build/_modules/discord-assistant/_services/dias-main.control-service.d.ts.map +1 -1
  7. package/build/_modules/discord-assistant/_services/dias-main.control-service.js.map +1 -1
  8. package/build/_modules/discord-bot/_services/dibo-main.control-service.js +1 -1
  9. package/build/_modules/discord-bot/_services/dibo-main.control-service.js.map +1 -1
  10. package/build/_modules/discord-bot/_services/dibo-routines.control-service.js.map +1 -1
  11. package/build/_modules/open-ai/_collections/oai-chunking.util.d.ts.map +1 -1
  12. package/build/_modules/open-ai/_collections/oai-chunking.util.js +1 -1
  13. package/build/_modules/open-ai/_collections/oai-chunking.util.js.map +1 -1
  14. package/build/_modules/open-ai/_services/oai-chunk.service-base.d.ts.map +1 -1
  15. package/build/_modules/open-ai/_services/oai-chunk.service-base.js +1 -1
  16. package/build/_modules/open-ai/_services/oai-chunk.service-base.js.map +1 -1
  17. package/build/_modules/open-ai/_services/oai-llm-chat.service-base.js +10 -10
  18. package/build/_modules/open-ai/_services/oai-llm-chat.service-base.js.map +1 -1
  19. package/build/_modules/open-ai/_services/oai-llm.service-base.js +6 -6
  20. package/build/_modules/open-ai/_services/oai-vector-data.service.d.ts.map +1 -1
  21. package/build/_modules/open-ai/_services/oai-vector-data.service.js +2 -2
  22. package/build/_modules/open-ai/_services/oai-vector-data.service.js.map +1 -1
  23. package/build/_modules/server/errors/errors.control-service.d.ts.map +1 -1
  24. package/build/_modules/server/errors/errors.data-service.d.ts.map +1 -1
  25. package/build/_modules/server/errors/errors.data-service.js +3 -3
  26. package/build/_modules/server/errors/errors.data-service.js.map +1 -1
  27. package/build/_modules/socket/_services/socket-client.service.js +2 -2
  28. package/build/_modules/socket/_services/socket-client.service.js.map +1 -1
  29. package/build/_modules/socket/app-extended.server.d.ts.map +1 -1
  30. package/build/_modules/socket/app-extended.server.js +2 -2
  31. package/build/_modules/socket/app-extended.server.js.map +1 -1
  32. package/build/_modules/socket/app-extended.server.spec.js +19 -19
  33. package/build/_modules/socket/app-extended.server.spec.js.map +1 -1
  34. package/build/_services/route/routing-module.service.d.ts +4 -3
  35. package/build/_services/route/routing-module.service.d.ts.map +1 -1
  36. package/build/_services/route/routing-module.service.js +2 -0
  37. package/build/_services/route/routing-module.service.js.map +1 -1
  38. package/build/_services/server/app.server.d.ts.map +1 -1
  39. package/build/_services/server/app.server.js +9 -7
  40. package/build/_services/server/app.server.js.map +1 -1
  41. package/build/_services/server/app.server.spec.js +10 -10
  42. package/build/_services/server/app.server.spec.js.map +1 -1
  43. package/build/_services/shared.static-service.d.ts +2 -2
  44. package/build/_services/shared.static-service.js +1 -1
  45. package/package.json +3 -3
  46. package/src/_models/control-models/endpoint-params.control-model.ts +10 -10
  47. package/src/_modules/discord-assistant/_services/dias-main.control-service.ts +1 -2
  48. package/src/_modules/discord-bot/_services/dibo-main.control-service.ts +2 -2
  49. package/src/_modules/discord-bot/_services/dibo-routines.control-service.ts +1 -1
  50. package/src/_modules/open-ai/_collections/oai-chunking.util.ts +2 -2
  51. package/src/_modules/open-ai/_services/oai-chunk.service-base.ts +2 -2
  52. package/src/_modules/open-ai/_services/oai-llm-chat.service-base.ts +11 -11
  53. package/src/_modules/open-ai/_services/oai-llm.service-base.ts +7 -7
  54. package/src/_modules/open-ai/_services/oai-vector-data.service.ts +3 -4
  55. package/src/_modules/server/errors/errors.control-service.ts +1 -1
  56. package/src/_modules/server/errors/errors.data-service.ts +4 -4
  57. package/src/_modules/socket/_services/socket-client.service.ts +3 -3
  58. package/src/_modules/socket/app-extended.server.spec.ts +20 -20
  59. package/src/_modules/socket/app-extended.server.ts +3 -4
  60. package/src/_services/route/routing-module.service.ts +9 -4
  61. package/src/_services/server/app.server.spec.ts +11 -12
  62. package/src/_services/server/app.server.ts +14 -11
  63. package/src/_services/shared.static-service.ts +2 -2
@@ -6,7 +6,7 @@ import {
6
6
  DyFM_AnyError,
7
7
  DyFM_DBFilter,
8
8
  DyFM_DataModel_Params, DyFM_Error, DyFM_ErrorLevel, DyFM_Error_Settings,
9
- DyFM_Log, DyFM_Shared, DyFM_clone, DyFM_errorFlag, DyFM_Errors,
9
+ DyFM_Log, DyFM_Object, DyFM_errorFlag, DyFM_Errors,
10
10
  DyFM_RelativeDate,
11
11
  DyFM_Array,
12
12
  DyFM_Paged,
@@ -140,7 +140,7 @@ export class DyNTS_Errors_DataService<
140
140
  await this.updateData({
141
141
  filterBy: { _id: duplicateError._id } as DyFM_DBFilter<Error_T>,
142
142
  update: {
143
- $push: { duplications: DyFM_clone(data) },
143
+ $push: { duplications: DyFM_Object.clone(data) },
144
144
  } as DyNTS_DBUpdate<Error_T>,
145
145
  }).catch((pushError) => {
146
146
  DyFM_Log.error('pushError:', pushError);
@@ -165,7 +165,7 @@ export class DyNTS_Errors_DataService<
165
165
  if (this.debugLog) DyFM_Log.error('Error:', errorsRecord);
166
166
 
167
167
  errorsRecord.priority = this.getPriorityMultiplierByLevel(errorsRecord?.level);
168
- errorsRecord.duplications.push(DyFM_clone(errorsRecord));
168
+ errorsRecord.duplications.push(DyFM_Object.clone(errorsRecord));
169
169
 
170
170
  this.duplicationCounter = 1;
171
171
 
@@ -315,7 +315,7 @@ export class DyNTS_Errors_DataService<
315
315
  DyFM_Log.error('checkErrorIsStringifyableOrResolvable error:', err);
316
316
  }
317
317
 
318
- error = DyFM_Shared.resolveCirculation(error);
318
+ error = DyFM_Object.resolveCirculation(error);
319
319
 
320
320
  try {
321
321
  JSON.stringify(error);
@@ -4,7 +4,7 @@
4
4
  import * as SocketIOClient from 'socket.io-client';
5
5
 
6
6
  import {
7
- DyFM_Error, DyFM_Log, DyFM_delay, DyFM_Array, DyFM_errorFlag
7
+ DyFM_Error, DyFM_Log, DyFM_Async, DyFM_Array, DyFM_errorFlag
8
8
  } from '@futdevpro/fsm-dynamo';
9
9
  import { DyFM_SocketEvent, DyFM_SocketEvent_Key } from '@futdevpro/fsm-dynamo/socket';
10
10
 
@@ -49,7 +49,7 @@ export abstract class DyNTS_SocketClient_ServiceBase extends DyNTS_SingletonServ
49
49
  DyFM_Log.warn(`<x > socket-client (${this.params.name}) disconnected!`);
50
50
 
51
51
  if (this._params.reconnect) {
52
- await DyFM_delay(this._params.reconnectDelay);
52
+ await DyFM_Async.delay(this._params.reconnectDelay);
53
53
  this.connectSocket();
54
54
  }
55
55
  },
@@ -212,7 +212,7 @@ export abstract class DyNTS_SocketClient_ServiceBase extends DyNTS_SingletonServ
212
212
  try {
213
213
  if (this.logFn) console.log(`\nFn:. tryReconnectIfNeeded`);
214
214
  this.tryingToReconnect = true;
215
- await DyFM_delay(this._params.reconnectDelay);
215
+ await DyFM_Async.delay(this._params.reconnectDelay);
216
216
 
217
217
  this.tryingToReconnect = false;
218
218
  if (!this._connected) {
@@ -1,4 +1,4 @@
1
- import { DyFM_delay, DyFM_Error, DyFM_Log, DyFM_waitUntil, second } from '@futdevpro/fsm-dynamo';
1
+ import { DyFM_Async, DyFM_Error, DyFM_Log, second } from '@futdevpro/fsm-dynamo';
2
2
  import {
3
3
  DyNTS_AppExtendedBase_Mock, DyNTS_AppExtendedFull_Mock, DyNTS_AppWbMock_Mock
4
4
  } from '../mock/app-extended-server.mock';
@@ -25,7 +25,7 @@ describe('| DyNTS_AppExtended;', (): void => {
25
25
  const waitForAppReady = async (appInstance: DyNTS_AppExtended, timeoutMs: number = 10000): Promise<void> => {
26
26
  const startTime = Date.now();
27
27
  while (!appInstance.started && (Date.now() - startTime) < timeoutMs) {
28
- await DyFM_delay(100);
28
+ await DyFM_Async.delay(100);
29
29
  }
30
30
 
31
31
  if (!appInstance.started) {
@@ -36,16 +36,16 @@ describe('| DyNTS_AppExtended;', (): void => {
36
36
  describe('| a extended-base instance;', (): void => {
37
37
  beforeEach(async (): Promise<void> => {
38
38
  try {
39
- await DyFM_waitUntil((): boolean => !app, second);
40
- await DyFM_delay(100); // Ensure previous instance is fully cleaned up
39
+ await DyFM_Async.waitUntil((): boolean => !app, second);
40
+ await DyFM_Async.delay(100); // Ensure previous instance is fully cleaned up
41
41
 
42
42
  app = new DyNTS_AppExtendedBase_Mock();
43
- await DyFM_delay(100);
43
+ await DyFM_Async.delay(100);
44
44
 
45
45
  await app.ready();
46
46
  await waitForAppReady(app);
47
47
 
48
- await DyFM_delay(100);
48
+ await DyFM_Async.delay(100);
49
49
  } catch (error) {
50
50
  DyFM_Log.testError(
51
51
  '| DyNTS_AppExtended; | a extended-base instance; test beforeEach error:\n',
@@ -66,9 +66,9 @@ describe('| DyNTS_AppExtended;', (): void => {
66
66
 
67
67
  afterEach(async (): Promise<void> => {
68
68
  try {
69
- await DyFM_delay(100);
69
+ await DyFM_Async.delay(100);
70
70
  await safeStopApp();
71
- await DyFM_delay(100);
71
+ await DyFM_Async.delay(100);
72
72
  } catch (error) {
73
73
  DyFM_Log.testError(
74
74
  '| DyNTS_AppExtended; | a extended-base instance; test afterEach error:\n',
@@ -100,16 +100,16 @@ describe('| DyNTS_AppExtended;', (): void => {
100
100
  describe('| a extended-full instance;', (): void => {
101
101
  beforeEach(async (): Promise<void> => {
102
102
  try {
103
- await DyFM_waitUntil((): boolean => !app, second);
104
- await DyFM_delay(100); // Ensure previous instance is fully cleaned up
103
+ await DyFM_Async.waitUntil((): boolean => !app, second);
104
+ await DyFM_Async.delay(100); // Ensure previous instance is fully cleaned up
105
105
 
106
106
  app = new DyNTS_AppExtendedFull_Mock();
107
- await DyFM_delay(100);
107
+ await DyFM_Async.delay(100);
108
108
 
109
109
  await app.ready();
110
110
  await waitForAppReady(app);
111
111
 
112
- await DyFM_delay(100);
112
+ await DyFM_Async.delay(100);
113
113
  } catch (error) {
114
114
  DyFM_Log.testError(
115
115
  '| DyNTS_AppExtended; | a extended-full instance; test beforeEach error:\n',
@@ -130,9 +130,9 @@ describe('| DyNTS_AppExtended;', (): void => {
130
130
 
131
131
  afterEach(async (): Promise<void> => {
132
132
  try {
133
- await DyFM_delay(100);
133
+ await DyFM_Async.delay(100);
134
134
  await safeStopApp();
135
- await DyFM_delay(100);
135
+ await DyFM_Async.delay(100);
136
136
  } catch (error) {
137
137
  DyFM_Log.testError(
138
138
  '| DyNTS_AppExtended; | a extended-full instance; test afterEach error:\n',
@@ -164,16 +164,16 @@ describe('| DyNTS_AppExtended;', (): void => {
164
164
  describe('| a wb-mock instance;', (): void => {
165
165
  beforeEach(async (): Promise<void> => {
166
166
  try {
167
- await DyFM_waitUntil((): boolean => !app, second);
168
- await DyFM_delay(100); // Ensure previous instance is fully cleaned up
167
+ await DyFM_Async.waitUntil((): boolean => !app, second);
168
+ await DyFM_Async.delay(100); // Ensure previous instance is fully cleaned up
169
169
 
170
170
  app = new DyNTS_AppWbMock_Mock();
171
- await DyFM_delay(100);
171
+ await DyFM_Async.delay(100);
172
172
 
173
173
  await app.ready();
174
174
  await waitForAppReady(app);
175
175
 
176
- await DyFM_delay(100);
176
+ await DyFM_Async.delay(100);
177
177
  } catch (error) {
178
178
  DyFM_Log.testError(
179
179
  '| DyNTS_AppExtended; | a wb-mock instance; test beforeEach error:\n',
@@ -194,9 +194,9 @@ describe('| DyNTS_AppExtended;', (): void => {
194
194
 
195
195
  afterEach(async (): Promise<void> => {
196
196
  try {
197
- await DyFM_delay(100);
197
+ await DyFM_Async.delay(100);
198
198
  await safeStopApp();
199
- await DyFM_delay(100);
199
+ await DyFM_Async.delay(100);
200
200
  } catch (error) {
201
201
  DyFM_Log.testError(
202
202
  '| DyNTS_AppExtended; | a wb-mock instance; test afterEach error:\n',
@@ -5,12 +5,11 @@ import * as SocketIO from 'socket.io';
5
5
  import {
6
6
  DyFM_AnyError,
7
7
  DyFM_Array,
8
- DyFM_delay,
8
+ DyFM_Async,
9
9
  DyFM_Error,
10
10
  DyFM_Error_Settings,
11
11
  DyFM_ErrorLevel,
12
12
  DyFM_Log,
13
- DyFM_wait
14
13
  } from '@futdevpro/fsm-dynamo';
15
14
 
16
15
  import { DyNTS_global_settings } from '../../_collections/global-settings.const';
@@ -283,7 +282,7 @@ export abstract class DyNTS_AppExtended extends DyNTS_App {
283
282
  }
284
283
 
285
284
  if (!ready) {
286
- await DyFM_wait(100);
285
+ await DyFM_Async.wait(100);
287
286
  }
288
287
  }
289
288
 
@@ -400,7 +399,7 @@ export abstract class DyNTS_AppExtended extends DyNTS_App {
400
399
  this.systemControlsExt.httpSocketServer.init = false;
401
400
  this.systemControlsExt.httpsSocketServer.init = false;
402
401
 
403
- await DyFM_delay(100);
402
+ await DyFM_Async.delay(100);
404
403
 
405
404
  DyFM_Log.H_info(`"${this.params.name}" stopped successfully.`);
406
405
  }
@@ -4,7 +4,9 @@ import { Router } from 'express';
4
4
  import {
5
5
  DyFM_AnyError, DyFM_Error, DyFM_ErrorLevel, DyFM_Error_Settings,
6
6
  DyFM_HttpCallType,
7
- DyFM_Log
7
+ DyFM_Log,
8
+ DyFM_getConstructionStackLocation,
9
+ DyFM_getLocalStackLocation
8
10
  } from '@futdevpro/fsm-dynamo';
9
11
 
10
12
  import { DyNTS_global_settings } from '../../_collections/global-settings.const';
@@ -66,13 +68,15 @@ export class DyNTS_RoutingModule {
66
68
  /* serviceName: string; */
67
69
 
68
70
  security: DyNTS_RouteSecurity;
69
- route: string;
71
+ readonly route: string;
70
72
 
71
73
  private readonly controllers: DyNTS_Controller[];
72
74
  endpoints: DyNTS_Endpoint_Params[] = [];
73
75
 
74
- openRouter: Router = Router();
75
- secureRouter: Router = Router();
76
+ readonly openRouter: Router = Router();
77
+ readonly secureRouter: Router = Router();
78
+
79
+ readonly stackLocation: string;
76
80
 
77
81
  get logSetup(): boolean {
78
82
  return DyNTS_global_settings.log_settings.setup;
@@ -91,6 +95,7 @@ export class DyNTS_RoutingModule {
91
95
  this.controllers = set.controllers ?? [];
92
96
  this.setupRoutes();
93
97
  this.mountRoutes(set.securityOverride);
98
+ this.stackLocation = DyFM_getConstructionStackLocation();
94
99
 
95
100
  if (this.logSetup) console.log(
96
101
  `routing module setup done: ${this.route} security: ${this.security}\n`
@@ -1,5 +1,4 @@
1
-
2
- import { DyFM_Error, DyFM_Log, DyFM_delay, DyFM_waitUntil, second } from '@futdevpro/fsm-dynamo';
1
+ import { DyFM_Error, DyFM_Log, DyFM_Async, second } from '@futdevpro/fsm-dynamo';
3
2
  import { DyNTS_AppBase_Mock, DyNTS_AppFull_Mock } from '../../_modules/mock/app-server.mock';
4
3
  import { DyNTS_App } from './app.server';
5
4
 
@@ -11,15 +10,15 @@ describe('| DyNTS_App AND DyNTS_AppExtended?;', (): void => {
11
10
  describe('| a base instance;', (): void => {
12
11
  beforeEach(async (): Promise<void> => {
13
12
  try {
14
- await DyFM_waitUntil((): boolean => !app, second);
13
+ await DyFM_Async.waitUntil((): boolean => !app, second);
15
14
 
16
15
  app = new DyNTS_AppBase_Mock();
17
16
 
18
- await DyFM_delay(100);
17
+ await DyFM_Async.delay(100);
19
18
 
20
19
  await app.ready();
21
20
 
22
- await DyFM_delay(100);
21
+ await DyFM_Async.delay(100);
23
22
  } catch (error) {
24
23
  DyFM_Log.testError(
25
24
  '| DyNTS_App; | a base instance; test beforeEach error:\n',
@@ -39,13 +38,13 @@ describe('| DyNTS_App AND DyNTS_AppExtended?;', (): void => {
39
38
 
40
39
  afterEach(async (): Promise<void> => {
41
40
  try {
42
- await DyFM_delay(100);
41
+ await DyFM_Async.delay(100);
43
42
 
44
43
  await app.stop();
45
44
 
46
45
  app = null;
47
46
 
48
- await DyFM_delay(100);
47
+ await DyFM_Async.delay(100);
49
48
  } catch (error) {
50
49
  DyFM_Log.testError(
51
50
  '| DyNTS_App; | a base instance; test afterEach error:\n',
@@ -75,15 +74,15 @@ describe('| DyNTS_App AND DyNTS_AppExtended?;', (): void => {
75
74
  describe('| a full instance;', (): void => {
76
75
  beforeEach(async (): Promise<void> => {
77
76
  try {
78
- await DyFM_waitUntil((): boolean => !app, second);
77
+ await DyFM_Async.waitUntil((): boolean => !app, second);
79
78
 
80
79
  app = new DyNTS_AppFull_Mock();
81
80
 
82
- await DyFM_delay(100);
81
+ await DyFM_Async.delay(100);
83
82
 
84
83
  await app.ready();
85
84
 
86
- await DyFM_delay(100);
85
+ await DyFM_Async.delay(100);
87
86
  } catch (error) {
88
87
  DyFM_Log.testError(
89
88
  '| DyNTS_App; | a full instance; test beforeEach error:\n',
@@ -103,13 +102,13 @@ describe('| DyNTS_App AND DyNTS_AppExtended?;', (): void => {
103
102
 
104
103
  afterEach(async (): Promise<void> => {
105
104
  try {
106
- await DyFM_delay(100);
105
+ await DyFM_Async.delay(100);
107
106
 
108
107
  await app.stop();
109
108
 
110
109
  app = null;
111
110
 
112
- await DyFM_delay(100);
111
+ await DyFM_Async.delay(100);
113
112
  } catch (error) {
114
113
  DyFM_Log.testError(
115
114
  '| DyNTS_App; | a full instance; test afterEach error:\n',
@@ -15,11 +15,12 @@ import dotenv from 'dotenv'
15
15
  import {
16
16
  DyFM_AnyError,
17
17
  DyFM_Array,
18
- DyFM_delay,
19
- DyFM_Error, DyFM_error_defaults,
18
+ DyFM_Async,
19
+ DyFM_Error,
20
+ DyFM_error_defaults,
20
21
  DyFM_Error_Settings,
21
- DyFM_ErrorLevel, DyFM_Log,
22
- DyFM_wait,
22
+ DyFM_ErrorLevel,
23
+ DyFM_Log,
23
24
  second
24
25
  } from '@futdevpro/fsm-dynamo';
25
26
 
@@ -530,7 +531,7 @@ export abstract class DyNTS_App extends DyNTS_SingletonService {
530
531
  try {
531
532
  if (this.fnLogs) DyFM_Log.log('\nfn:. ready');
532
533
 
533
- await DyFM_delay(100);
534
+ await DyFM_Async.delay(100);
534
535
 
535
536
  let ready: boolean = false;
536
537
  const start: number = +new Date();
@@ -576,7 +577,7 @@ export abstract class DyNTS_App extends DyNTS_SingletonService {
576
577
  }
577
578
 
578
579
  if (!ready) {
579
- await DyFM_wait(100);
580
+ await DyFM_Async.wait(100);
580
581
  }
581
582
  }
582
583
 
@@ -720,7 +721,7 @@ export abstract class DyNTS_App extends DyNTS_SingletonService {
720
721
  tryCount++ < 10
721
722
  ) {
722
723
  DyFM_Log.warn(`Mongoose not even started yet....`);
723
- await DyFM_wait(second);
724
+ await DyFM_Async.wait(second);
724
725
  }
725
726
  this.systemControls.mongoose.started = false;
726
727
 
@@ -749,7 +750,7 @@ export abstract class DyNTS_App extends DyNTS_SingletonService {
749
750
  !this.constructErrors.length
750
751
  ) {
751
752
  DyFM_Log.warn(`\nMongoose still not disconnected....`);
752
- await DyFM_wait(second);
753
+ await DyFM_Async.wait(second);
753
754
  }
754
755
  } else {
755
756
  DyFM_Log.error(`\nMongoose not found.`);
@@ -783,7 +784,7 @@ export abstract class DyNTS_App extends DyNTS_SingletonService {
783
784
  this.systemControls.httpsServer.init = false;
784
785
  }
785
786
 
786
- await DyFM_wait(second);
787
+ await DyFM_Async.wait(second);
787
788
 
788
789
  if (!dontLog) {
789
790
  DyFM_Log.H_log(`"${this._params.name}" stopped successfully.`);
@@ -968,10 +969,12 @@ export abstract class DyNTS_App extends DyNTS_SingletonService {
968
969
  this._routingModules.forEach((module: DyNTS_RoutingModule): void => {
969
970
  if (module.security && module.security !== DyNTS_RouteSecurity.open) {
970
971
  errorMsg += `\n ${module.route} (security: ${module.security})`;
971
- errorMsg += `\n subroutes using secure sever:`;
972
+ errorMsg += `\n location: ${module.stackLocation}`;
973
+ errorMsg += `\n subroutes using secure sever:`;
972
974
  module.endpoints.forEach((endpoint: DyNTS_Endpoint_Params): void => {
973
975
  if (endpoint.security && endpoint.security !== DyNTS_RouteSecurity.open) {
974
- errorMsg += `\n ${endpoint.endpoint} (security: ${endpoint.security})`;
976
+ errorMsg += `\n ${endpoint.endpoint} (security: ${endpoint.security})`;
977
+ errorMsg += `\n location: ${endpoint.stackLocation}`;
975
978
  }
976
979
  });
977
980
  }
@@ -3,13 +3,13 @@ import * as ReadLine from 'readline';
3
3
  import * as GeoIp from 'geoip-lite';
4
4
  import { Request } from 'express';
5
5
 
6
- import { DyFM_Shared } from '@futdevpro/fsm-dynamo';
6
+ import { DyFM_Object } from '@futdevpro/fsm-dynamo';
7
7
  import { DyFM_GeoIpLocation } from '@futdevpro/fsm-dynamo/location';
8
8
 
9
9
  /**
10
10
  * Collection of static helper utilities shared across modules.
11
11
  */
12
- export class DyNTS_Shared extends DyFM_Shared {
12
+ export class DyNTS_Shared extends DyFM_Object {
13
13
 
14
14
  /**
15
15
  * Extract the IP address from an Express request.