@digitaldefiance/node-express-suite 1.3.25 → 1.3.26
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/README.md +4 -0
- package/package.json +1 -1
- package/src/application.d.ts +5 -1
- package/src/application.d.ts.map +1 -1
- package/src/application.js +11 -2
- package/src/application.js.map +1 -1
- package/src/get-timezone.js +8 -9
- package/src/get-timezone.js.map +1 -1
- package/src/interfaces/csp-config.d.ts +3 -10
- package/src/interfaces/csp-config.d.ts.map +1 -1
- package/src/interfaces/csp-config.js +9 -0
- package/src/interfaces/csp-config.js.map +1 -1
- package/src/interfaces/csp-definition.d.ts +13 -0
- package/src/interfaces/csp-definition.d.ts.map +1 -0
- package/src/interfaces/csp-definition.js +23 -0
- package/src/interfaces/csp-definition.js.map +1 -0
- package/src/interfaces/flexible-csp.d.ts +8 -0
- package/src/interfaces/flexible-csp.d.ts.map +1 -0
- package/src/interfaces/flexible-csp.js +14 -0
- package/src/interfaces/flexible-csp.js.map +1 -0
- package/src/interfaces/index.d.ts +2 -0
- package/src/interfaces/index.d.ts.map +1 -1
- package/src/interfaces/index.js +2 -0
- package/src/interfaces/index.js.map +1 -1
- package/src/middlewares.d.ts +5 -12
- package/src/middlewares.d.ts.map +1 -1
- package/src/middlewares.js +7 -21
- package/src/middlewares.js.map +1 -1
package/README.md
CHANGED
package/package.json
CHANGED
package/src/application.d.ts
CHANGED
|
@@ -5,18 +5,22 @@ import { IBaseDocument } from './documents/base';
|
|
|
5
5
|
import { Environment } from './environment';
|
|
6
6
|
import { IApplication, ICSPConfig, IFailableResult } from './interfaces';
|
|
7
7
|
import { IConstants } from './interfaces/constants';
|
|
8
|
+
import { initMiddleware } from './middlewares';
|
|
8
9
|
import { AppRouter } from './routers/app';
|
|
9
10
|
import { BaseRouter } from './routers/base';
|
|
10
11
|
import { SchemaMap } from './types';
|
|
12
|
+
import { HelmetOptions } from 'helmet';
|
|
13
|
+
import { IFlexibleCSP } from './interfaces/flexible-csp';
|
|
11
14
|
export declare class Application<T, I extends Types.ObjectId | string, TInitResults, TModelDocs extends Record<string, IBaseDocument<any>>, TBaseDocument extends IBaseDocument<T, I> = IBaseDocument<T, I>, TEnvironment extends Environment = Environment, TConstants extends IConstants = IConstants, TAppRouter extends AppRouter = AppRouter> extends BaseApplication<TModelDocs, TInitResults, TConstants> implements IApplication<T, I, TBaseDocument, TEnvironment, TConstants> {
|
|
12
15
|
readonly expressApp: ExpressApplication;
|
|
13
16
|
private server;
|
|
14
17
|
private readonly _cspConfig;
|
|
15
18
|
private readonly _apiRouterFactory;
|
|
16
19
|
private readonly _appRouterFactory;
|
|
20
|
+
private readonly _initMiddleware;
|
|
17
21
|
private _apiRouter?;
|
|
18
22
|
get environment(): TEnvironment;
|
|
19
|
-
constructor(environment: TEnvironment, apiRouterFactory: (app: IApplication<T, I, TBaseDocument, TEnvironment, TConstants>) => BaseRouter, schemaMapFactory: (connection: mongoose.Connection) => SchemaMap<TModelDocs>, databaseInitFunction: (application: BaseApplication<TModelDocs, TInitResults>) => Promise<IFailableResult<TInitResults>>, initResultHashFunction: (initResults: TInitResults) => string, cspConfig?: ICSPConfig, constants?: TConstants, appRouterFactory?: (apiRouter: BaseRouter) => TAppRouter);
|
|
23
|
+
constructor(environment: TEnvironment, apiRouterFactory: (app: IApplication<T, I, TBaseDocument, TEnvironment, TConstants>) => BaseRouter, schemaMapFactory: (connection: mongoose.Connection) => SchemaMap<TModelDocs>, databaseInitFunction: (application: BaseApplication<TModelDocs, TInitResults>) => Promise<IFailableResult<TInitResults>>, initResultHashFunction: (initResults: TInitResults) => string, cspConfig?: ICSPConfig | HelmetOptions | IFlexibleCSP, constants?: TConstants, appRouterFactory?: (apiRouter: BaseRouter) => TAppRouter, customInitMiddleware?: typeof initMiddleware);
|
|
20
24
|
start(mongoUri?: string): Promise<void>;
|
|
21
25
|
stop(): Promise<void>;
|
|
22
26
|
}
|
package/src/application.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/application.ts"],"names":[],"mappings":"AAQA,OAAgB,EACd,WAAW,IAAI,kBAAkB,EAIlC,MAAM,SAAS,CAAC;AAIjB,OAAO,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/application.ts"],"names":[],"mappings":"AAQA,OAAgB,EACd,WAAW,IAAI,kBAAkB,EAIlC,MAAM,SAAS,CAAC;AAIjB,OAAO,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAe,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAmB,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,YAAY,EAAiB,MAAM,2BAA2B,CAAC;AAOxE,qBAAa,WAAW,CACpB,CAAC,EACD,CAAC,SAAS,KAAK,CAAC,QAAQ,GAAG,MAAM,EACjC,YAAY,EACZ,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,EACrD,aAAa,SAAS,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/D,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,UAAU,SAAS,UAAU,GAAG,UAAU,EAC1C,UAAU,SAAS,SAAS,GAAG,SAAS,CAE1C,SAAQ,eAAe,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAC5D,YAAW,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,CAAC;IAEtE,SAAgB,UAAU,EAAE,kBAAkB,CAAC;IAC/C,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4C;IACvE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmF;IACrH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwC;IAC1E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwB;IACxD,OAAO,CAAC,UAAU,CAAC,CAAa;IAEhC,IAAoB,WAAW,IAAI,YAAY,CAE9C;gBAGC,WAAW,EAAE,YAAY,EACzB,gBAAgB,EAAE,CAChB,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,CAAC,KAC7D,UAAU,EACf,gBAAgB,EAAE,CAChB,UAAU,EAAE,QAAQ,CAAC,UAAU,KAC5B,SAAS,CAAC,UAAU,CAAC,EAC1B,oBAAoB,EAAE,CACpB,WAAW,EAAE,eAAe,CAAC,UAAU,EAAE,YAAY,CAAC,KACnD,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,EAC3C,sBAAsB,EAAE,CAAC,WAAW,EAAE,YAAY,KAAK,MAAM,EAC7D,SAAS,GAAE,UAAU,GAAG,aAAa,GAAG,YAWvC,EACD,SAAS,GAAE,UAAoC,EAC/C,gBAAgB,GAAE,CAAC,SAAS,EAAE,UAAU,KAAK,UAAkE,EAC/G,oBAAoB,GAAE,OAAO,cAA+B;IAiBxC,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4HvC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAyC5C"}
|
package/src/application.js
CHANGED
|
@@ -9,15 +9,18 @@ const fs_1 = require("fs");
|
|
|
9
9
|
const https_1 = require("https");
|
|
10
10
|
const path_1 = require("path");
|
|
11
11
|
const application_base_1 = require("./application-base");
|
|
12
|
+
const interfaces_1 = require("./interfaces");
|
|
12
13
|
const middlewares_1 = require("./middlewares");
|
|
13
14
|
const app_1 = require("./routers/app");
|
|
14
15
|
const utils_1 = require("./utils");
|
|
16
|
+
const flexible_csp_1 = require("./interfaces/flexible-csp");
|
|
15
17
|
class Application extends application_base_1.BaseApplication {
|
|
16
18
|
expressApp;
|
|
17
19
|
server = null;
|
|
18
20
|
_cspConfig;
|
|
19
21
|
_apiRouterFactory;
|
|
20
22
|
_appRouterFactory;
|
|
23
|
+
_initMiddleware;
|
|
21
24
|
_apiRouter;
|
|
22
25
|
get environment() {
|
|
23
26
|
return super.environment;
|
|
@@ -33,10 +36,11 @@ class Application extends application_base_1.BaseApplication {
|
|
|
33
36
|
fontSrc: [],
|
|
34
37
|
frameSrc: [],
|
|
35
38
|
},
|
|
36
|
-
}, constants = suite_core_lib_1.Constants, appRouterFactory = (apiRouter) => new app_1.AppRouter(apiRouter)) {
|
|
39
|
+
}, constants = suite_core_lib_1.Constants, appRouterFactory = (apiRouter) => new app_1.AppRouter(apiRouter), customInitMiddleware = middlewares_1.initMiddleware) {
|
|
37
40
|
super(environment, schemaMapFactory, databaseInitFunction, initResultHashFunction, constants);
|
|
38
41
|
this._apiRouterFactory = apiRouterFactory;
|
|
39
42
|
this._appRouterFactory = appRouterFactory;
|
|
43
|
+
this._initMiddleware = customInitMiddleware;
|
|
40
44
|
this.expressApp = (0, express_1.default)();
|
|
41
45
|
this.server = null;
|
|
42
46
|
this._cspConfig = cspConfig;
|
|
@@ -46,7 +50,12 @@ class Application extends application_base_1.BaseApplication {
|
|
|
46
50
|
await super.start(mongoUri, true);
|
|
47
51
|
try {
|
|
48
52
|
this._apiRouter = this._apiRouterFactory(this);
|
|
49
|
-
(0,
|
|
53
|
+
if ((0, flexible_csp_1.isFlexibleCSP)(this._cspConfig) || (0, interfaces_1.isCSPConfig)(this._cspConfig)) {
|
|
54
|
+
this._initMiddleware(this.expressApp, this._cspConfig.corsWhitelist, this._cspConfig.csp);
|
|
55
|
+
}
|
|
56
|
+
else if ((0, middlewares_1.isHelmetOptions)(this._cspConfig)) {
|
|
57
|
+
this._initMiddleware(this.expressApp, [], this._cspConfig);
|
|
58
|
+
}
|
|
50
59
|
const appRouter = this._appRouterFactory(this._apiRouter);
|
|
51
60
|
appRouter.init(this.expressApp);
|
|
52
61
|
this.expressApp.use((err, req, res, next) => {
|
package/src/application.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/application.ts"],"names":[],"mappings":";;;;AAAA,wDAA4D;AAC5D,oEAMyC;AACzC,8DAKiB;AACjB,2BAAkC;AAElC,iCAAqC;AAErC,+BAAsD;AACtD,yDAAqD;
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/application.ts"],"names":[],"mappings":"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"}
|
package/src/get-timezone.js
CHANGED
|
@@ -9,21 +9,20 @@ function setGlobalActiveContextAdminTimezoneFromProcessArgvOrEnv() {
|
|
|
9
9
|
: undefined;
|
|
10
10
|
const consoleTimezoneEnv = process.env['TZ'];
|
|
11
11
|
const consoleTimezoneArgv = process.argv.find((arg) => arg.startsWith('--timezone='));
|
|
12
|
-
// Prioritize
|
|
13
|
-
// if
|
|
14
|
-
// if TZ env is set, and is valid (isValidTimezone),
|
|
15
|
-
// if
|
|
12
|
+
// Prioritize command-line argument, then environment variable, then /etc/timezone
|
|
13
|
+
// if command-line argument is set, and is valid (isValidTimezone), use that
|
|
14
|
+
// if TZ env is set, and is valid (isValidTimezone), use that
|
|
15
|
+
// if /etc/timezone has a timezone, and is valid (isValidTimezone) use that
|
|
16
16
|
const validSystemTz = systemTz && (0, i18n_lib_1.isValidTimezone)(systemTz) ? new i18n_lib_1.Timezone(systemTz) : undefined;
|
|
17
17
|
const validConsoleTimezoneEnv = consoleTimezoneEnv && (0, i18n_lib_1.isValidTimezone)(consoleTimezoneEnv)
|
|
18
18
|
? new i18n_lib_1.Timezone(consoleTimezoneEnv)
|
|
19
19
|
: undefined;
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
: undefined;
|
|
20
|
+
const argValue = consoleTimezoneArgv?.split('=')[1];
|
|
21
|
+
const validConsoleTimezoneArgv = argValue && (0, i18n_lib_1.isValidTimezone)(argValue) ? new i18n_lib_1.Timezone(argValue) : undefined;
|
|
23
22
|
const context = i18n_lib_1.GlobalActiveContext.getInstance();
|
|
24
|
-
const timezone =
|
|
23
|
+
const timezone = validConsoleTimezoneArgv ??
|
|
25
24
|
validConsoleTimezoneEnv ??
|
|
26
|
-
|
|
25
|
+
validSystemTz ??
|
|
27
26
|
context.adminTimezone;
|
|
28
27
|
context.adminTimezone = timezone;
|
|
29
28
|
return timezone;
|
package/src/get-timezone.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-timezone.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/get-timezone.ts"],"names":[],"mappings":";;AAQA,0HAoCC;AA5CD,wDAKmC;AACnC,2BAA8C;AAE9C,SAAgB,uDAAuD;IACrE,MAAM,QAAQ,GAAG,IAAA,eAAU,EAAC,eAAe,CAAC;QAC1C,CAAC,CAAC,IAAA,iBAAY,EAAC,eAAe,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE;QAC9C,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACpD,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAC9B,CAAC;IAEF,
|
|
1
|
+
{"version":3,"file":"get-timezone.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/get-timezone.ts"],"names":[],"mappings":";;AAQA,0HAoCC;AA5CD,wDAKmC;AACnC,2BAA8C;AAE9C,SAAgB,uDAAuD;IACrE,MAAM,QAAQ,GAAG,IAAA,eAAU,EAAC,eAAe,CAAC;QAC1C,CAAC,CAAC,IAAA,iBAAY,EAAC,eAAe,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE;QAC9C,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACpD,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAC9B,CAAC;IAEF,kFAAkF;IAClF,4EAA4E;IAC5E,6DAA6D;IAC7D,2EAA2E;IAC3E,MAAM,aAAa,GACjB,QAAQ,IAAI,IAAA,0BAAe,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,MAAM,uBAAuB,GAC3B,kBAAkB,IAAI,IAAA,0BAAe,EAAC,kBAAkB,CAAC;QACvD,CAAC,CAAC,IAAI,mBAAQ,CAAC,kBAAkB,CAAC;QAClC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,QAAQ,GAAG,mBAAmB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,wBAAwB,GAC5B,QAAQ,IAAI,IAAA,0BAAe,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7E,MAAM,OAAO,GAAG,8BAAmB,CAAC,WAAW,EAG5C,CAAC;IAEJ,MAAM,QAAQ,GACZ,wBAAwB;QACxB,uBAAuB;QACvB,aAAa;QACb,OAAO,CAAC,aAAa,CAAC;IAExB,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC;IACjC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ISimpleCSPDef } from './csp-definition';
|
|
2
2
|
export interface ICSPConfig {
|
|
3
3
|
corsWhitelist: string[];
|
|
4
|
-
csp:
|
|
5
|
-
defaultSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
6
|
-
imgSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
7
|
-
connectSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
8
|
-
scriptSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
9
|
-
styleSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
10
|
-
fontSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
11
|
-
frameSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
12
|
-
};
|
|
4
|
+
csp: ISimpleCSPDef;
|
|
13
5
|
}
|
|
6
|
+
export declare const isCSPConfig: (obj: any) => obj is ICSPConfig;
|
|
14
7
|
//# sourceMappingURL=csp-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csp-config.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/csp-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"csp-config.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/csp-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,kBAAkB,CAAC;AAEjE,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,GAAG,EAAE,aAAa,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,UAO7C,CAAA"}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isCSPConfig = void 0;
|
|
4
|
+
const csp_definition_1 = require("./csp-definition");
|
|
5
|
+
const isCSPConfig = (obj) => {
|
|
6
|
+
return (obj &&
|
|
7
|
+
typeof obj === 'object' &&
|
|
8
|
+
'corsWhitelist' in obj &&
|
|
9
|
+
(0, csp_definition_1.isSimpleCSPDef)(obj.csp));
|
|
10
|
+
};
|
|
11
|
+
exports.isCSPConfig = isCSPConfig;
|
|
3
12
|
//# sourceMappingURL=csp-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csp-config.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/csp-config.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"csp-config.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/csp-config.ts"],"names":[],"mappings":";;;AAAA,qDAAiE;AAO1D,MAAM,WAAW,GAAG,CAAC,GAAQ,EAAqB,EAAE;IACzD,OAAO,CACL,GAAG;QACH,OAAO,GAAG,KAAK,QAAQ;QACvB,eAAe,IAAI,GAAG;QACtB,IAAA,+BAAc,EAAC,GAAG,CAAC,GAAG,CAAC,CACxB,CAAC;AACJ,CAAC,CAAA;AAPY,QAAA,WAAW,eAOvB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { HelmetOptions } from 'helmet';
|
|
2
|
+
import { IncomingMessage, ServerResponse } from 'http';
|
|
3
|
+
export interface ISimpleCSPDef {
|
|
4
|
+
defaultSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
5
|
+
imgSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
6
|
+
connectSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
7
|
+
scriptSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
8
|
+
styleSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
9
|
+
fontSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
10
|
+
frameSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
11
|
+
}
|
|
12
|
+
export declare const isSimpleCSPDef: (obj: ISimpleCSPDef | HelmetOptions) => obj is ISimpleCSPDef;
|
|
13
|
+
//# sourceMappingURL=csp-definition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csp-definition.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/csp-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAEvD,MAAM,WAAW,aAAa;IACxB,UAAU,EAAE,CACR,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;IACJ,MAAM,EAAE,CACJ,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;IACJ,UAAU,EAAE,CACR,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;IACJ,SAAS,EAAE,CACP,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;IACJ,QAAQ,EAAE,CACN,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;IACJ,OAAO,EAAE,CACL,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;IACJ,QAAQ,EAAE,CACN,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;CACL;AAEL,eAAO,MAAM,cAAc,GAAI,KAAK,aAAa,GAAG,aAAa,KAAG,GAAG,IAAI,aAkB1E,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isSimpleCSPDef = void 0;
|
|
4
|
+
;
|
|
5
|
+
const isSimpleCSPDef = (obj) => {
|
|
6
|
+
return (obj &&
|
|
7
|
+
'defaultSrc' in obj &&
|
|
8
|
+
'imgSrc' in obj &&
|
|
9
|
+
'connectSrc' in obj &&
|
|
10
|
+
'scriptSrc' in obj &&
|
|
11
|
+
'styleSrc' in obj &&
|
|
12
|
+
'fontSrc' in obj &&
|
|
13
|
+
'frameSrc' in obj &&
|
|
14
|
+
Array.isArray(obj.defaultSrc) &&
|
|
15
|
+
Array.isArray(obj.imgSrc) &&
|
|
16
|
+
Array.isArray(obj.connectSrc) &&
|
|
17
|
+
Array.isArray(obj.scriptSrc) &&
|
|
18
|
+
Array.isArray(obj.styleSrc) &&
|
|
19
|
+
Array.isArray(obj.fontSrc) &&
|
|
20
|
+
Array.isArray(obj.frameSrc));
|
|
21
|
+
};
|
|
22
|
+
exports.isSimpleCSPDef = isSimpleCSPDef;
|
|
23
|
+
//# sourceMappingURL=csp-definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csp-definition.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/csp-definition.ts"],"names":[],"mappings":";;;AAgCK,CAAC;AAEC,MAAM,cAAc,GAAG,CAAC,GAAkC,EAAwB,EAAE;IACzF,OAAO,CACL,GAAG;QACH,YAAY,IAAI,GAAG;QACnB,QAAQ,IAAI,GAAG;QACf,YAAY,IAAI,GAAG;QACnB,WAAW,IAAI,GAAG;QAClB,UAAU,IAAI,GAAG;QACjB,SAAS,IAAI,GAAG;QAChB,UAAU,IAAI,GAAG;QACjB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QAC7B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QAC7B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;QAC5B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC3B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAC1B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAC5B,CAAC;AACJ,CAAC,CAAA;AAlBY,QAAA,cAAc,kBAkB1B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { HelmetOptions } from 'helmet';
|
|
2
|
+
import { ISimpleCSPDef } from './csp-definition';
|
|
3
|
+
export interface IFlexibleCSP {
|
|
4
|
+
corsWhitelist: string[];
|
|
5
|
+
csp: ISimpleCSPDef | HelmetOptions;
|
|
6
|
+
}
|
|
7
|
+
export declare const isFlexibleCSP: (obj: any) => obj is IFlexibleCSP;
|
|
8
|
+
//# sourceMappingURL=flexible-csp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flexible-csp.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/flexible-csp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAkB,MAAM,kBAAkB,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,GAAG,EAAE,aAAa,GAAE,aAAa,CAAC;CACnC;AAED,eAAO,MAAM,aAAa,GAAI,KAAK,GAAG,KAAG,GAAG,IAAI,YAQ/C,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isFlexibleCSP = void 0;
|
|
4
|
+
const middlewares_1 = require("../middlewares");
|
|
5
|
+
const csp_definition_1 = require("./csp-definition");
|
|
6
|
+
const isFlexibleCSP = (obj) => {
|
|
7
|
+
return (obj &&
|
|
8
|
+
typeof obj === 'object' &&
|
|
9
|
+
'corsWhitelist' in obj &&
|
|
10
|
+
'csp' in obj &&
|
|
11
|
+
(0, csp_definition_1.isSimpleCSPDef)(obj.csp) || (0, middlewares_1.isHelmetOptions)(obj.csp));
|
|
12
|
+
};
|
|
13
|
+
exports.isFlexibleCSP = isFlexibleCSP;
|
|
14
|
+
//# sourceMappingURL=flexible-csp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flexible-csp.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/flexible-csp.ts"],"names":[],"mappings":";;;AACA,gDAAiD;AACjD,qDAAiE;AAO1D,MAAM,aAAa,GAAG,CAAC,GAAQ,EAAuB,EAAE;IAC7D,OAAO,CACL,GAAG;QACH,OAAO,GAAG,KAAK,QAAQ;QACvB,eAAe,IAAI,GAAG;QACtB,KAAK,IAAI,GAAG;QACZ,IAAA,+BAAc,EAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAA,6BAAe,EAAC,GAAG,CAAC,GAAG,CAAC,CACpD,CAAC;AACJ,CAAC,CAAA;AARY,QAAA,aAAa,iBAQzB"}
|
|
@@ -10,12 +10,14 @@ export * from './checksum-consts';
|
|
|
10
10
|
export * from './constants';
|
|
11
11
|
export * from './create-user-basics';
|
|
12
12
|
export * from './csp-config';
|
|
13
|
+
export * from './csp-definition';
|
|
13
14
|
export * from './discriminator-collections';
|
|
14
15
|
export * from './email-service';
|
|
15
16
|
export * from './environment';
|
|
16
17
|
export * from './environment-mongo';
|
|
17
18
|
export * from './failable-result';
|
|
18
19
|
export * from './fec-consts';
|
|
20
|
+
export * from './flexible-csp';
|
|
19
21
|
export * from './handleable-error-options';
|
|
20
22
|
export * from './jwt-consts';
|
|
21
23
|
export * from './jwt-sign-response';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yCAAyC,CAAC;AACxD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AACtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yCAAyC,CAAC;AACxD,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AACtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC"}
|
package/src/interfaces/index.js
CHANGED
|
@@ -13,12 +13,14 @@ tslib_1.__exportStar(require("./checksum-consts"), exports);
|
|
|
13
13
|
tslib_1.__exportStar(require("./constants"), exports);
|
|
14
14
|
tslib_1.__exportStar(require("./create-user-basics"), exports);
|
|
15
15
|
tslib_1.__exportStar(require("./csp-config"), exports);
|
|
16
|
+
tslib_1.__exportStar(require("./csp-definition"), exports);
|
|
16
17
|
tslib_1.__exportStar(require("./discriminator-collections"), exports);
|
|
17
18
|
tslib_1.__exportStar(require("./email-service"), exports);
|
|
18
19
|
tslib_1.__exportStar(require("./environment"), exports);
|
|
19
20
|
tslib_1.__exportStar(require("./environment-mongo"), exports);
|
|
20
21
|
tslib_1.__exportStar(require("./failable-result"), exports);
|
|
21
22
|
tslib_1.__exportStar(require("./fec-consts"), exports);
|
|
23
|
+
tslib_1.__exportStar(require("./flexible-csp"), exports);
|
|
22
24
|
tslib_1.__exportStar(require("./handleable-error-options"), exports);
|
|
23
25
|
tslib_1.__exportStar(require("./jwt-consts"), exports);
|
|
24
26
|
tslib_1.__exportStar(require("./jwt-sign-response"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC;AACrC,kFAAwD;AACxD,iEAAuC;AACvC,gFAAsD;AACtD,0DAAgC;AAChC,wDAA8B;AAC9B,4DAAkC;AAClC,4DAAkC;AAClC,4DAAkC;AAClC,sDAA4B;AAC5B,+DAAqC;AACrC,uDAA6B;AAC7B,sEAA4C;AAC5C,0DAAgC;AAChC,wDAA8B;AAC9B,8DAAoC;AACpC,4DAAkC;AAClC,uDAA6B;AAC7B,qEAA2C;AAC3C,uDAA6B;AAC7B,8DAAoC;AACpC,yDAA+B;AAC/B,yDAA+B;AAC/B,iEAAuC;AACvC,mDAAyB;AACzB,+DAAqC;AACrC,iEAAuC;AACvC,yEAA+C;AAC/C,2DAAiC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,+DAAqC;AACrC,kFAAwD;AACxD,iEAAuC;AACvC,gFAAsD;AACtD,0DAAgC;AAChC,wDAA8B;AAC9B,4DAAkC;AAClC,4DAAkC;AAClC,4DAAkC;AAClC,sDAA4B;AAC5B,+DAAqC;AACrC,uDAA6B;AAC7B,2DAAiC;AACjC,sEAA4C;AAC5C,0DAAgC;AAChC,wDAA8B;AAC9B,8DAAoC;AACpC,4DAAkC;AAClC,uDAA6B;AAC7B,yDAA+B;AAC/B,qEAA2C;AAC3C,uDAA6B;AAC7B,8DAAoC;AACpC,yDAA+B;AAC/B,yDAA+B;AAC/B,iEAAuC;AACvC,mDAAyB;AACzB,+DAAqC;AACrC,iEAAuC;AACvC,yEAA+C;AAC/C,2DAAiC"}
|
package/src/middlewares.d.ts
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
|
+
import cors from 'cors';
|
|
1
2
|
import { Application } from 'express';
|
|
2
3
|
import { HelmetOptions } from 'helmet';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
connectSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
8
|
-
scriptSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
9
|
-
styleSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
10
|
-
fontSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
11
|
-
frameSrc: (string | ((req: IncomingMessage, res: ServerResponse) => string))[];
|
|
12
|
-
};
|
|
13
|
-
export declare const initMiddleware: (app: Application, corsWhitelist: string[], csp: CSPDef | HelmetOptions) => void;
|
|
14
|
-
export {};
|
|
4
|
+
import { ISimpleCSPDef } from './interfaces/csp-definition';
|
|
5
|
+
export declare const corsOptionsDelegate: (corsWhitelist: string[]) => (req: cors.CorsRequest, callback: (error: Error | null, options: cors.CorsOptions | undefined) => void) => void;
|
|
6
|
+
export declare const isHelmetOptions: (obj: any) => boolean;
|
|
7
|
+
export declare const initMiddleware: (app: Application, corsWhitelist: string[], csp: ISimpleCSPDef | HelmetOptions) => void;
|
|
15
8
|
//# sourceMappingURL=middlewares.d.ts.map
|
package/src/middlewares.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/middlewares.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/middlewares.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EACL,WAAW,EAMZ,MAAM,SAAS,CAAC;AACjB,OAAe,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAkB,MAAM,6BAA6B,CAAC;AAE5E,eAAO,MAAM,mBAAmB,GAAI,eAAe,MAAM,EAAE,MAEvD,KAAK,IAAI,CAAC,WAAW,EACrB,UAAU,CACR,KAAK,EAAE,KAAK,GAAG,IAAI,EACnB,OAAO,EAAE,IAAI,CAAC,WAAW,GAAG,SAAS,KAClC,IAAI,SAoBZ,CAAC;AAGF,eAAO,MAAM,eAAe,GAAI,KAAK,GAAG,KAAG,OAS1C,CAAA;AAED,eAAO,MAAM,cAAc,GACvB,KAAK,WAAW,EAChB,eAAe,MAAM,EAAE,EACvB,KAAK,aAAa,GAAG,aAAa,KACjC,IA6CF,CAAC"}
|
package/src/middlewares.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.initMiddleware = void 0;
|
|
3
|
+
exports.initMiddleware = exports.isHelmetOptions = exports.corsOptionsDelegate = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const cors_1 = tslib_1.__importDefault(require("cors"));
|
|
6
6
|
const crypto_1 = require("crypto");
|
|
7
7
|
const express_1 = require("express");
|
|
8
8
|
const helmet_1 = tslib_1.__importDefault(require("helmet"));
|
|
9
|
+
const csp_definition_1 = require("./interfaces/csp-definition");
|
|
9
10
|
const corsOptionsDelegate = (corsWhitelist) => {
|
|
10
11
|
return (req, callback) => {
|
|
11
12
|
let corsOptions;
|
|
@@ -27,23 +28,7 @@ const corsOptionsDelegate = (corsWhitelist) => {
|
|
|
27
28
|
callback(null, corsOptions);
|
|
28
29
|
};
|
|
29
30
|
};
|
|
30
|
-
|
|
31
|
-
return (obj &&
|
|
32
|
-
'defaultSrc' in obj &&
|
|
33
|
-
'imgSrc' in obj &&
|
|
34
|
-
'connectSrc' in obj &&
|
|
35
|
-
'scriptSrc' in obj &&
|
|
36
|
-
'styleSrc' in obj &&
|
|
37
|
-
'fontSrc' in obj &&
|
|
38
|
-
'frameSrc' in obj &&
|
|
39
|
-
Array.isArray(obj.defaultSrc) &&
|
|
40
|
-
Array.isArray(obj.imgSrc) &&
|
|
41
|
-
Array.isArray(obj.connectSrc) &&
|
|
42
|
-
Array.isArray(obj.scriptSrc) &&
|
|
43
|
-
Array.isArray(obj.styleSrc) &&
|
|
44
|
-
Array.isArray(obj.fontSrc) &&
|
|
45
|
-
Array.isArray(obj.frameSrc));
|
|
46
|
-
};
|
|
31
|
+
exports.corsOptionsDelegate = corsOptionsDelegate;
|
|
47
32
|
const isHelmetOptions = (obj) => {
|
|
48
33
|
// A very basic check; in real scenarios, you might want to be more thorough
|
|
49
34
|
return obj && typeof obj === 'object' && (('contentSecurityPolicy' in obj) ||
|
|
@@ -53,6 +38,7 @@ const isHelmetOptions = (obj) => {
|
|
|
53
38
|
('originAgentCluster' in obj) ||
|
|
54
39
|
('referrerPolicy' in obj));
|
|
55
40
|
};
|
|
41
|
+
exports.isHelmetOptions = isHelmetOptions;
|
|
56
42
|
const initMiddleware = (app, corsWhitelist, csp) => {
|
|
57
43
|
// Helmet helps you secure your Express apps by setting various HTTP headers
|
|
58
44
|
// CSP nonce
|
|
@@ -60,7 +46,7 @@ const initMiddleware = (app, corsWhitelist, csp) => {
|
|
|
60
46
|
res.locals['cspNonce'] = (0, crypto_1.randomBytes)(32).toString('hex');
|
|
61
47
|
next();
|
|
62
48
|
});
|
|
63
|
-
if (
|
|
49
|
+
if ((0, csp_definition_1.isSimpleCSPDef)(csp)) {
|
|
64
50
|
app.use((0, helmet_1.default)({
|
|
65
51
|
contentSecurityPolicy: {
|
|
66
52
|
directives: {
|
|
@@ -85,14 +71,14 @@ const initMiddleware = (app, corsWhitelist, csp) => {
|
|
|
85
71
|
},
|
|
86
72
|
}));
|
|
87
73
|
}
|
|
88
|
-
else if (isHelmetOptions(csp)) {
|
|
74
|
+
else if ((0, exports.isHelmetOptions)(csp)) {
|
|
89
75
|
app.use((0, helmet_1.default)(csp));
|
|
90
76
|
}
|
|
91
77
|
else {
|
|
92
78
|
throw new Error('Invalid CSP or Helmet options provided.');
|
|
93
79
|
}
|
|
94
80
|
// Enable CORS
|
|
95
|
-
app.use((0, cors_1.default)(corsOptionsDelegate(corsWhitelist)));
|
|
81
|
+
app.use((0, cors_1.default)((0, exports.corsOptionsDelegate)(corsWhitelist)));
|
|
96
82
|
// Parse incoming requests with JSON payloads
|
|
97
83
|
app.use((0, express_1.json)());
|
|
98
84
|
// Parse incoming requests with urlencoded payloads
|
package/src/middlewares.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/middlewares.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AACxB,mCAAqC;AACrC,qCAOiB;AACjB,4DAA+C;
|
|
1
|
+
{"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/middlewares.ts"],"names":[],"mappings":"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"}
|