@futdevpro/nts-dynamo 1.7.4 → 1.7.5
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.
- package/lib/_constants/mocks/app-extended-server.mock.d.ts +1 -1
- package/lib/_constants/mocks/app-extended-server.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/app-server.mock.d.ts +1 -1
- package/lib/_constants/mocks/app-server.mock.d.ts.map +1 -1
- package/lib/_constants/mocks/socket-server.mock.js +1 -1
- package/lib/_constants/mocks/socket-server.mock.js.map +1 -1
- package/lib/_models/control-models/endpoint-params.control-model.d.ts.map +1 -1
- package/lib/_models/control-models/endpoint-params.control-model.js +2 -2
- package/lib/_models/control-models/endpoint-params.control-model.js.map +1 -1
- package/lib/_models/{interfaces/port-settings.interface.d.ts → control-models/port-settings.control-model.d.ts} +1 -1
- package/lib/_models/control-models/port-settings.control-model.d.ts.map +1 -0
- package/lib/_models/{interfaces/port-settings.interface.js → control-models/port-settings.control-model.js} +1 -1
- package/lib/_models/control-models/port-settings.control-model.js.map +1 -0
- package/lib/_models/interfaces/index.d.ts +1 -1
- package/lib/_models/interfaces/index.d.ts.map +1 -1
- package/lib/_models/interfaces/index.js +1 -1
- package/lib/_models/interfaces/index.js.map +1 -1
- package/lib/_modules/app-extended.index.d.ts +1 -1
- package/lib/_modules/app-extended.index.d.ts.map +1 -1
- package/lib/_modules/app-extended.index.js +1 -1
- package/lib/_modules/app-extended.index.js.map +1 -1
- package/lib/_modules/app.index.d.ts +1 -1
- package/lib/_modules/app.index.d.ts.map +1 -1
- package/lib/_modules/app.index.js +1 -1
- package/lib/_modules/app.index.js.map +1 -1
- package/lib/_services/server/app-extended.server.js +1 -1
- package/lib/_services/server/app-extended.server.js.map +1 -1
- package/lib/_services/server/app.server.d.ts +5 -36
- package/lib/_services/server/app.server.d.ts.map +1 -1
- package/lib/_services/server/app.server.js +33 -11
- package/lib/_services/server/app.server.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/_constants/mocks/app-extended-server.mock.ts +1 -1
- package/src/_constants/mocks/app-server.mock.ts +1 -1
- package/src/_constants/mocks/socket-server.mock.ts +1 -1
- package/src/_models/control-models/endpoint-params.control-model.ts +7 -4
- package/src/_models/control-models/socket-presence.control-model.ts +1 -1
- package/src/_models/interfaces/index.ts +1 -1
- package/src/_modules/app-extended.index.ts +1 -1
- package/src/_modules/app.index.ts +1 -1
- package/src/_services/server/app-extended.server.ts +1 -1
- package/src/_services/server/app.server.ts +44 -48
- package/lib/_models/interfaces/port-settings.interface.d.ts.map +0 -1
- package/lib/_models/interfaces/port-settings.interface.js.map +0 -1
- /package/src/_models/{interfaces/port-settings.interface.ts → control-models/port-settings.control-model.ts} +0 -0
|
@@ -5,7 +5,7 @@ import { customDataModelParams } from '@futdevpro/fsm-dynamo/custom-data-module'
|
|
|
5
5
|
|
|
6
6
|
import { DynamoNTS_AppParams } from '../../_models/control-models/app-params.control-model';
|
|
7
7
|
import { DynamoNTS_GlobalServiceSettings } from '../../_models/interfaces/global-service-settings.interface';
|
|
8
|
-
import { DynamoNTS_PortSettings } from '../../_models/
|
|
8
|
+
import { DynamoNTS_PortSettings } from '../../_models/control-models/port-settings.control-model';
|
|
9
9
|
import { getTestRoutingModule } from '../../_modules/test';
|
|
10
10
|
import { getUsageRoutingModule } from '../../_modules/usage';
|
|
11
11
|
import { DynamoNTS_SingletonService } from '../../_services';
|
|
@@ -185,9 +185,11 @@ export class DynamoNTS_EndpointParams{
|
|
|
185
185
|
}
|
|
186
186
|
} catch (error) {
|
|
187
187
|
Dynamo_Log.error(
|
|
188
|
-
|
|
188
|
+
`UNCATCHED endpoint ERROR (${this.name}, ${this.endpoint})`,
|
|
189
|
+
'\nError:', error,
|
|
189
190
|
'\nRequest:', req,
|
|
190
|
-
'\nResponse:', res,
|
|
191
|
+
'\nResponse:', res,
|
|
192
|
+
'\nissuer:', issuer
|
|
191
193
|
);
|
|
192
194
|
}
|
|
193
195
|
};
|
|
@@ -234,10 +236,11 @@ export class DynamoNTS_EndpointParams{
|
|
|
234
236
|
}
|
|
235
237
|
}
|
|
236
238
|
} catch (error) {
|
|
237
|
-
Dynamo_Log.
|
|
239
|
+
Dynamo_Log.H_error(
|
|
238
240
|
`\n\nDYNAMO MULTILEVEL ERROR:DynamoNTS_EndpointParams: error: (${this.name}, ${this.endpoint})` +
|
|
239
241
|
`\n(DYNAMO MULTILEVEL ERROR means, that the ERRORHANDLING is ALSO FAILED, and the error message was not sent.)` +
|
|
240
|
-
`\nERROR:`, error,
|
|
242
|
+
`\nERROR:`, error,
|
|
243
|
+
'\n'
|
|
241
244
|
);
|
|
242
245
|
}
|
|
243
246
|
}
|
|
@@ -149,7 +149,7 @@ export class DynamoNTS_SocketPresence {
|
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
private _getDefaultErrorSettings?(fnName: string, error: Error | Dynamo_Error, issuer: string) {
|
|
152
|
+
private _getDefaultErrorSettings?(fnName: string, error: Error | Dynamo_Error, issuer: string): any {
|
|
153
153
|
return {
|
|
154
154
|
status: (error as Dynamo_Error)?.___status ?? 406,
|
|
155
155
|
message: (error as Error)?.message ?? `${fnName} was UNSUCCESFUL (NTS; ${this.serviceName})`,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
// INTERFACES
|
|
3
3
|
export * from './global-service-settings.interface';
|
|
4
|
-
export * from '
|
|
4
|
+
export * from '../control-models/port-settings.control-model';
|
|
5
5
|
export * from './certification-settings.interface';
|
|
6
6
|
export * from './global-settings.interface';
|
|
7
7
|
export * from './routing-module-settings.interface';
|
|
@@ -9,7 +9,7 @@ export * from '../_services/socket/socket-server.service';
|
|
|
9
9
|
|
|
10
10
|
// INTERFACES
|
|
11
11
|
export * from '../_models/interfaces/global-service-settings.interface';
|
|
12
|
-
export * from '../_models/
|
|
12
|
+
export * from '../_models/control-models/port-settings.control-model';
|
|
13
13
|
export * from '../_models/interfaces/certification-settings.interface';
|
|
14
14
|
export * from '../_models/interfaces/global-settings.interface';
|
|
15
15
|
export * from '../_models/interfaces/routing-module-settings.interface';
|
|
@@ -7,7 +7,7 @@ export * from '../_services/shared.static-service';
|
|
|
7
7
|
|
|
8
8
|
// INTERFACES
|
|
9
9
|
export * from '../_models/interfaces/global-service-settings.interface';
|
|
10
|
-
export * from '../_models/
|
|
10
|
+
export * from '../_models/control-models/port-settings.control-model';
|
|
11
11
|
export * from '../_models/interfaces/certification-settings.interface';
|
|
12
12
|
export * from '../_models/interfaces/global-settings.interface';
|
|
13
13
|
export * from '../_models/interfaces/routing-module-settings.interface';
|
|
@@ -383,7 +383,7 @@ export abstract class DynamoNTS_AppExtended extends DynamoNTS_App {
|
|
|
383
383
|
(mod: DynamoNTS_SocketServerService<any>) => mod.port === service.port
|
|
384
384
|
);
|
|
385
385
|
|
|
386
|
-
if (1 < existingPorts.length || this.
|
|
386
|
+
if (1 < existingPorts.length || this.portSettings.httpPort === service.port || this.portSettings.httpsPort === service.port) {
|
|
387
387
|
let error = new Error(`PORT DUPLICATION: ${service.port}`);
|
|
388
388
|
let errorStack: string[] = error.stack.split('\n');
|
|
389
389
|
errorStack.splice(1, 4);
|
|
@@ -7,15 +7,13 @@ import * as Https from 'https';
|
|
|
7
7
|
import * as FileSystem from 'fs';
|
|
8
8
|
import * as BodyParser from 'body-parser';
|
|
9
9
|
|
|
10
|
-
import { ErrorRequestHandler } from 'express';
|
|
11
|
-
|
|
12
10
|
import { Dynamo_Array, Dynamo_Error, dynamo_error_default, Dynamo_Log, second, wait } from '@futdevpro/fsm-dynamo';
|
|
13
11
|
|
|
14
12
|
import { DynamoNTS_SingletonService } from '../base/singleton.service';
|
|
15
13
|
import { DynamoNTS_RouteSecurity } from '../../_enums/route-security.enum';
|
|
16
14
|
import { DynamoNTS_RoutingModule } from '../route/routing-module.service';
|
|
17
15
|
import { DynamoNTS_GlobalService } from '../core/global.service';
|
|
18
|
-
import { DynamoNTS_PortSettings } from '../../_models/
|
|
16
|
+
import { DynamoNTS_PortSettings } from '../../_models/control-models/port-settings.control-model';
|
|
19
17
|
import { DynamoNTS_CertificationSettings } from '../../_models/interfaces/certification-settings.interface';
|
|
20
18
|
import { DynamoNTS_GlobalServiceSettings } from '../../_models/interfaces/global-service-settings.interface';
|
|
21
19
|
import { dynamoNTS_globalSettings } from '../../_constants/global-settings.const';
|
|
@@ -198,7 +196,7 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
|
|
|
198
196
|
protected get security(): DynamoNTS_RouteSecurity { return this._security; }
|
|
199
197
|
|
|
200
198
|
protected _portSettings: DynamoNTS_PortSettings;
|
|
201
|
-
protected get
|
|
199
|
+
protected get portSettings(): DynamoNTS_PortSettings { return this._portSettings; }
|
|
202
200
|
|
|
203
201
|
private _cert?: DynamoNTS_CertificationSettings;
|
|
204
202
|
protected get cert(): DynamoNTS_CertificationSettings { return this._cert; }
|
|
@@ -745,11 +743,50 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
|
|
|
745
743
|
}
|
|
746
744
|
}
|
|
747
745
|
|
|
746
|
+
private async expressErrorHandling(err, req, res, next): Promise<void> {
|
|
747
|
+
try {
|
|
748
|
+
if (err) {
|
|
749
|
+
if (DynamoNTS_GlobalService.globalErrorHandler) {
|
|
750
|
+
Dynamo_Log.error('unhandled express ERROR (must be a parsing error...)');
|
|
751
|
+
await DynamoNTS_GlobalService.globalErrorHandler?.(err, req, res);
|
|
752
|
+
} else {
|
|
753
|
+
Dynamo_Log.error('unhandled express ERROR (must be a parsing error...)', err);
|
|
754
|
+
}
|
|
755
|
+
} else {
|
|
756
|
+
Dynamo_Log.H_error(
|
|
757
|
+
'WTF??? express error; without error?...' +
|
|
758
|
+
'\nerr:', err,
|
|
759
|
+
'\nreq:', req,
|
|
760
|
+
'\nres:', res
|
|
761
|
+
);
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
res.status(err?.status || 500);
|
|
765
|
+
res.render('error', {
|
|
766
|
+
message: err?.message,
|
|
767
|
+
});
|
|
768
|
+
res.send(err);
|
|
769
|
+
} catch (error) {
|
|
770
|
+
Dynamo_Log.H_error(
|
|
771
|
+
'MULTILEVEL ERROR (expressErrorHandling)....', error
|
|
772
|
+
);
|
|
773
|
+
|
|
774
|
+
res.status(err?.status || 500);
|
|
775
|
+
res.render('error', {
|
|
776
|
+
message: err?.message,
|
|
777
|
+
});
|
|
778
|
+
res.send(err);
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
|
|
748
782
|
/**
|
|
749
783
|
*
|
|
750
784
|
*/
|
|
751
785
|
private async mountSecureRoutes (): Promise<void> {
|
|
752
786
|
if (this.logFn && this.deepLog) console.log('\nfn:. mountSecureRoutes');
|
|
787
|
+
|
|
788
|
+
this.openExpress.use(this.expressErrorHandling);
|
|
789
|
+
|
|
753
790
|
await Dynamo_Array.asyncForEach(this._routingModules, async (module: DynamoNTS_RoutingModule) => {
|
|
754
791
|
if (module.security !== DynamoNTS_RouteSecurity.open) {
|
|
755
792
|
if (this.logSetup) {
|
|
@@ -789,16 +826,7 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
|
|
|
789
826
|
private async mountOpenRoutes(): Promise<void> {
|
|
790
827
|
if (this.logFn && this.deepLog) console.log('\nfn:. mountOpenRoutes');
|
|
791
828
|
|
|
792
|
-
this.openExpress.use(
|
|
793
|
-
if (err) {
|
|
794
|
-
Dynamo_Log.error('openExpress ERROR', err);
|
|
795
|
-
DynamoNTS_GlobalService.globalErrorHandler?.(err, req, res);
|
|
796
|
-
} else {
|
|
797
|
-
Dynamo_Log.H_error('WTF', err, req, res);
|
|
798
|
-
}
|
|
799
|
-
|
|
800
|
-
next();
|
|
801
|
-
})
|
|
829
|
+
this.openExpress.use(this.expressErrorHandling);
|
|
802
830
|
|
|
803
831
|
await Dynamo_Array.asyncForEach(this._routingModules, async (module: DynamoNTS_RoutingModule) => {
|
|
804
832
|
if (module.security !== DynamoNTS_RouteSecurity.secure) {
|
|
@@ -875,44 +903,12 @@ export abstract class DynamoNTS_App extends DynamoNTS_SingletonService {
|
|
|
875
903
|
}
|
|
876
904
|
|
|
877
905
|
/**
|
|
878
|
-
*
|
|
879
|
-
* Setting up App params, and preparing project global settings
|
|
880
|
-
* You must setup app params in this function like this:
|
|
881
|
-
*
|
|
882
|
-
* @example
|
|
883
|
-
* setupAppParams(): void {
|
|
884
|
-
* this.params = new DynamoBEAppParams({
|
|
885
|
-
* name: 'Sample Server',
|
|
886
|
-
* title: 'A BIG nice header that will be logged on start',
|
|
887
|
-
* version: version,
|
|
888
|
-
* dbName: 'sampleapp',
|
|
889
|
-
* });
|
|
890
|
-
*
|
|
891
|
-
* DBE_Global_S.setGlobalSettings({
|
|
892
|
-
* defaultRouteSecurity: DynamoBERouteSecurity.secure,
|
|
893
|
-
* logSetup: true,
|
|
894
|
-
* });
|
|
895
|
-
* }
|
|
906
|
+
* MISSING Description (TODO)
|
|
896
907
|
*/
|
|
897
908
|
abstract getAppParams(): DynamoNTS_AppParams;
|
|
898
909
|
|
|
899
910
|
/**
|
|
900
|
-
*
|
|
901
|
-
* Setting up DBServices
|
|
902
|
-
* You must setup globalServiceCollection and dbServices in this function
|
|
903
|
-
*
|
|
904
|
-
* @example
|
|
905
|
-
* setGlobalServiceCollection(): void {
|
|
906
|
-
* DBE_Global_S.setServices({
|
|
907
|
-
* authService: AuthService.getInstance(),
|
|
908
|
-
* emailServiceCollection: EmailServiceCollectionService.getInstance(),
|
|
909
|
-
* dbModels: [
|
|
910
|
-
* accountModelParams,
|
|
911
|
-
* projectModelParams,
|
|
912
|
-
* ...
|
|
913
|
-
* ]
|
|
914
|
-
* });
|
|
915
|
-
* }
|
|
911
|
+
* MISSING Description (TODO)
|
|
916
912
|
*/
|
|
917
913
|
abstract getGlobalServiceCollection(): DynamoNTS_GlobalServiceSettings;
|
|
918
914
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"port-settings.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/port-settings.interface.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,UAAU,MAAM,aAAa,CAAC;AAC1C,qBAAa,sBAAsB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,kBAAkB,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAG/C;IACF,gBAAgB,CAAC,EAAE,UAAU,CAAC,WAAW,CAEvC;IACF,mBAAmB,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAGhD;IACF,iBAAiB,CAAC,EAAE,UAAU,CAAC,WAAW,CAExC;gBAGA,GAAG,EAAE,sBAAsB;CAI9B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"port-settings.interface.js","sourceRoot":"","sources":["../../../src/_models/interfaces/port-settings.interface.ts"],"names":[],"mappings":";;;AAEA,MAAa,sBAAsB;IACjC,QAAQ,CAAU;IAClB,SAAS,CAAU;IAEnB,kBAAkB,GAAkC;QAClD,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,gBAAgB,GAA4B;QAC1C,KAAK,EAAE,MAAM;KACd,CAAC;IACF,mBAAmB,GAAkC;QACnD,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,iBAAiB,GAA4B;QAC3C,KAAK,EAAE,MAAM;KACd,CAAC;IAEF,YACE,GAA2B;QAE3B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;CACF;AAxBD,wDAwBC"}
|
|
File without changes
|