@futdevpro/nts-dynamo 1.10.50 → 1.10.52

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 (37) hide show
  1. package/build/_models/control-models/app-params.control-model.d.ts.map +1 -1
  2. package/build/_models/control-models/app-params.control-model.js +16 -19
  3. package/build/_models/control-models/app-params.control-model.js.map +1 -1
  4. package/build/_models/control-models/app-params.control-model.spec.js +3 -3
  5. package/build/_models/control-models/app-params.control-model.spec.js.map +1 -1
  6. package/build/_modules/mock/app-extended-server.mock.d.ts.map +1 -1
  7. package/build/_modules/mock/app-extended-server.mock.js +3 -0
  8. package/build/_modules/mock/app-extended-server.mock.js.map +1 -1
  9. package/build/_modules/mock/app-server.mock.d.ts.map +1 -1
  10. package/build/_modules/mock/app-server.mock.js +3 -0
  11. package/build/_modules/mock/app-server.mock.js.map +1 -1
  12. package/build/_modules/open-ai/_services/embedding.control-service.d.ts.map +1 -1
  13. package/build/_modules/open-ai/_services/embedding.control-service.js +12 -0
  14. package/build/_modules/open-ai/_services/embedding.control-service.js.map +1 -1
  15. package/build/_modules/open-ai/_services/vector-data.service.d.ts.map +1 -1
  16. package/build/_modules/open-ai/_services/vector-data.service.js +13 -1
  17. package/build/_modules/open-ai/_services/vector-data.service.js.map +1 -1
  18. package/build/_modules/server/errors/errors.data-service.js +2 -2
  19. package/build/_modules/server/errors/errors.data-service.js.map +1 -1
  20. package/build/_modules/socket/app-extended.server.spec.js +24 -9
  21. package/build/_modules/socket/app-extended.server.spec.js.map +1 -1
  22. package/build/_services/server/app.server.d.ts.map +1 -1
  23. package/build/_services/server/app.server.js +24 -2
  24. package/build/_services/server/app.server.js.map +1 -1
  25. package/build/_services/server/app.server.spec.js +16 -7
  26. package/build/_services/server/app.server.spec.js.map +1 -1
  27. package/package.json +3 -3
  28. package/src/_models/control-models/app-params.control-model.spec.ts +3 -3
  29. package/src/_models/control-models/app-params.control-model.ts +11 -17
  30. package/src/_modules/mock/app-extended-server.mock.ts +3 -0
  31. package/src/_modules/mock/app-server.mock.ts +3 -0
  32. package/src/_modules/open-ai/_services/embedding.control-service.ts +16 -0
  33. package/src/_modules/open-ai/_services/vector-data.service.ts +17 -1
  34. package/src/_modules/server/errors/errors.data-service.ts +2 -2
  35. package/src/_modules/socket/app-extended.server.spec.ts +99 -15
  36. package/src/_services/server/app.server.spec.ts +66 -10
  37. package/src/_services/server/app.server.ts +31 -2
@@ -1,16 +1,21 @@
1
1
 
2
- import { DyFM_Error, DyFM_Log, DyFM_delay, second } from '@futdevpro/fsm-dynamo';
2
+ import { DyFM_Error, DyFM_Log, DyFM_delay, DyFM_waitUntil, second } from '@futdevpro/fsm-dynamo';
3
3
  import { DyNTS_AppBase_Mock, DyNTS_AppFull_Mock } from '../../_modules/mock/app-server.mock';
4
+ import { DyNTS_App } from './app.server';
4
5
 
5
6
  describe('| DyNTS_App AND DyNTS_AppExtended?;', (): void => {
6
- jasmine.DEFAULT_TIMEOUT_INTERVAL = 15 * second;
7
+ jasmine.DEFAULT_TIMEOUT_INTERVAL = 30 * second;
7
8
  process.setMaxListeners(20);
9
+ let app: DyNTS_App;
8
10
 
9
11
  describe('| a base instance;', (): void => {
10
- let app: DyNTS_AppBase_Mock;
11
-
12
12
  beforeEach(async (): Promise<void> => {
13
13
  try {
14
+ await DyFM_waitUntil(
15
+ (): boolean => !app,
16
+ second
17
+ );
18
+
14
19
  app = new DyNTS_AppBase_Mock();
15
20
 
16
21
  await DyFM_delay(100);
@@ -19,7 +24,19 @@ describe('| DyNTS_App AND DyNTS_AppExtended?;', (): void => {
19
24
 
20
25
  await DyFM_delay(100);
21
26
  } catch (error) {
22
- DyFM_Log.test('test beforeEach error:', (error as DyFM_Error)?._message);
27
+ DyFM_Log.testError(
28
+ '| DyNTS_App; | a base instance; test beforeEach error:\n',
29
+ (error as DyFM_Error)?._message,
30
+ '\nadditionalContent:',
31
+ (error as DyFM_Error)?.additionalContent?.errors?.reverse()?.map(
32
+ (error: DyFM_Error | Error) => (error as DyFM_Error)._messages?.join('\n') ??
33
+ (error as DyFM_Error)._message ??
34
+ (error as Error).message
35
+ ) ?? (error as DyFM_Error)?.additionalContent,
36
+ '\n\n Stack:',
37
+ (new Error()).stack,
38
+ (error as DyFM_Error)?.additionalContent?.errors?.reverse()?.unshift()?.stack
39
+ );
23
40
  }
24
41
  });
25
42
 
@@ -33,7 +50,19 @@ describe('| DyNTS_App AND DyNTS_AppExtended?;', (): void => {
33
50
 
34
51
  await DyFM_delay(100);
35
52
  } catch (error) {
36
- DyFM_Log.test('test afterEach error:', (error as DyFM_Error)?._message);
53
+ DyFM_Log.testError(
54
+ '| DyNTS_App; | a base instance; test afterEach error:\n',
55
+ (error as DyFM_Error)?._message,
56
+ '\nadditionalContent:',
57
+ (error as DyFM_Error)?.additionalContent?.errors?.reverse()?.map(
58
+ (error: DyFM_Error | Error) => (error as DyFM_Error)._messages?.join('\n') ??
59
+ (error as DyFM_Error)._message ??
60
+ (error as Error).message
61
+ ) ?? (error as DyFM_Error)?.additionalContent,
62
+ '\n\n Stack:',
63
+ (new Error()).stack,
64
+ (error as DyFM_Error)?.additionalContent?.errors?.reverse()?.unshift()?.stack
65
+ );
37
66
  }
38
67
  });
39
68
 
@@ -47,10 +76,13 @@ describe('| DyNTS_App AND DyNTS_AppExtended?;', (): void => {
47
76
  });
48
77
 
49
78
  describe('| a full instance;', (): void => {
50
- let app: DyNTS_AppFull_Mock;
51
-
52
79
  beforeEach(async (): Promise<void> => {
53
80
  try {
81
+ await DyFM_waitUntil(
82
+ (): boolean => !app,
83
+ second
84
+ );
85
+
54
86
  app = new DyNTS_AppFull_Mock();
55
87
 
56
88
  await DyFM_delay(100);
@@ -59,7 +91,19 @@ describe('| DyNTS_App AND DyNTS_AppExtended?;', (): void => {
59
91
 
60
92
  await DyFM_delay(100);
61
93
  } catch (error) {
62
- DyFM_Log.test('test beforeEach error:', (error as DyFM_Error)?._message);
94
+ DyFM_Log.testError(
95
+ '| DyNTS_App; | a full instance; test beforeEach error:\n',
96
+ (error as DyFM_Error)?._message,
97
+ '\nadditionalContent:',
98
+ (error as DyFM_Error)?.additionalContent?.errors?.reverse()?.map(
99
+ (error: DyFM_Error | Error) => (error as DyFM_Error)._messages?.join('\n') ??
100
+ (error as DyFM_Error)._message ??
101
+ (error as Error).message
102
+ ) ?? (error as DyFM_Error)?.additionalContent,
103
+ '\n\n Stack:',
104
+ (new Error()).stack,
105
+ (error as DyFM_Error)?.additionalContent?.errors?.reverse()?.unshift()?.stack
106
+ );
63
107
  }
64
108
  });
65
109
 
@@ -73,7 +117,19 @@ describe('| DyNTS_App AND DyNTS_AppExtended?;', (): void => {
73
117
 
74
118
  await DyFM_delay(100);
75
119
  } catch (error) {
76
- DyFM_Log.test('test afterEach error:', (error as DyFM_Error)?._message);
120
+ DyFM_Log.testError(
121
+ '| DyNTS_App; | a full instance; test afterEach error:\n',
122
+ (error as DyFM_Error)?._message,
123
+ '\nadditionalContent:',
124
+ (error as DyFM_Error)?.additionalContent?.errors?.reverse()?.map(
125
+ (error: DyFM_Error | Error) => (error as DyFM_Error)._messages?.join('\n') ??
126
+ (error as DyFM_Error)._message ??
127
+ (error as Error).message
128
+ ) ?? (error as DyFM_Error)?.additionalContent,
129
+ '\n\n Stack:',
130
+ (new Error()).stack,
131
+ (error as DyFM_Error)?.additionalContent?.errors?.reverse()?.unshift()?.stack
132
+ );
77
133
  }
78
134
  });
79
135
 
@@ -414,7 +414,9 @@ export abstract class DyNTS_App extends DyNTS_SingletonService {
414
414
  this._routingModules = this.getRoutingModules();
415
415
  }
416
416
 
417
- await this.startDB();
417
+ if (this._params.dbUri) {
418
+ await this.startDB();
419
+ }
418
420
 
419
421
  await this.createEntries?.();
420
422
 
@@ -706,6 +708,8 @@ export abstract class DyNTS_App extends DyNTS_SingletonService {
706
708
  await this.mongoose.connection.close();
707
709
  await disconnect;
708
710
 
711
+ this.mongoose.connection.removeAllListeners();
712
+
709
713
  while (
710
714
  this.mongoose.connection.readyState !== 0 &&
711
715
  !this.constructErrors.length
@@ -766,6 +770,30 @@ export abstract class DyNTS_App extends DyNTS_SingletonService {
766
770
  private async startDB(): Promise<void> {
767
771
  if (this.fnLogs && this.deepLog) DyFM_Log.log('\nfn:. startDB');
768
772
 
773
+ if (!this._params.dbUri) {
774
+ throw new DyFM_Error({
775
+ ...this._getDefaultErrorSettings('startDB', new Error('DB URI is not set.')),
776
+
777
+ errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SDB0`,
778
+ });
779
+ }
780
+
781
+ if (!this._params.dbOptions) {
782
+ throw new DyFM_Error({
783
+ ...this._getDefaultErrorSettings('startDB', new Error('DB OPTIONS are not set.')),
784
+
785
+ errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SDB0`,
786
+ });
787
+ }
788
+
789
+ if (this.systemControls.mongoose.init || this.systemControls.mongoose.started) {
790
+ throw new DyFM_Error({
791
+ ...this._getDefaultErrorSettings('startDB', new Error('Mongoose is already initialized.')),
792
+
793
+ errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SDB0`,
794
+ });
795
+ }
796
+
769
797
  try {
770
798
  await new Promise<void>(
771
799
  (resolve, reject): void => {
@@ -791,7 +819,8 @@ export abstract class DyNTS_App extends DyNTS_SingletonService {
791
819
  ...this._getDefaultErrorSettings('startDB', error),
792
820
 
793
821
  errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-AS0-SDB1`,
794
- message: `Unable to start connection to MongoDB server, ERROR: ${error}`,
822
+ message: `Unable to start connection to MongoDB server (${this._params.dbUri}), ` +
823
+ `ERROR: ${error}`,
795
824
  });
796
825
 
797
826
  DyNTS_GlobalService.globalErrorHandler?.(d_error);