@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 CHANGED
@@ -663,6 +663,10 @@ For issues and questions:
663
663
 
664
664
  ## ChangeLog
665
665
 
666
+ ### Version 1.3.26
667
+
668
+ - Refactor middlewares further
669
+
666
670
  ### Version 1.3.25
667
671
 
668
672
  - Refactor middlewares to be more extensible
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digitaldefiance/node-express-suite",
3
- "version": "1.3.25",
3
+ "version": "1.3.26",
4
4
  "description": "Generic express application and routing library with decorator support",
5
5
  "main": "src/index.js",
6
6
  "types": "src/index.d.ts",
@@ -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
  }
@@ -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,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAQpC,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,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmF;IACrH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwC;IAC1E,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,UAWV,EACD,SAAS,GAAE,UAAoC,EAC/C,gBAAgB,GAAE,CAAC,SAAS,EAAE,UAAU,KAAK,UAAkE;IAgB3F,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwHvC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAyC5C"}
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"}
@@ -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, middlewares_1.initMiddleware)(this.expressApp, this._cspConfig.corsWhitelist, this._cspConfig.csp);
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) => {
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/application.ts"],"names":[],"mappings":"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"}
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;AAGrD,6CAAsF;AAEtF,+CAAgE;AAChE,uCAA0C;AAG1C,mCAAwE;AAExE,4DAAwE;AAOxE,MAAa,WAUX,SAAQ,kCAAqD;IAG7C,UAAU,CAAqB;IACvC,MAAM,GAAmC,IAAI,CAAC;IACrC,UAAU,CAA4C;IACtD,iBAAiB,CAAmF;IACpG,iBAAiB,CAAwC;IACzD,eAAe,CAAwB;IAChD,UAAU,CAAc;IAEhC,IAAoB,WAAW;QAC7B,OAAO,KAAK,CAAC,WAA2B,CAAC;IAC3C,CAAC;IAED,YACE,WAAyB,EACzB,gBAEe,EACf,gBAE0B,EAC1B,oBAE2C,EAC3C,sBAA6D,EAC7D,YAAuD;QACrD,aAAa,EAAE,EAAE;QACjB,GAAG,EAAE;YACH,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,EAAE;SACb;KACF,EACD,YAAwB,0BAAuB,EAC/C,mBAA0D,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,eAAS,CAAC,SAAS,CAAe,EAC/G,uBAA8C,4BAAc;QAE5D,KAAK,CACH,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,SAAS,CACV,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAC1C,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAC1C,IAAI,CAAC,eAAe,GAAG,oBAAoB,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAA,iBAAO,GAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAEe,KAAK,CAAC,KAAK,CAAC,QAAiB;QAC3C,MAAM,MAAM,GAAG,IAAA,uCAAsB,GAAE,CAAC;QACxC,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,IAAA,4BAAa,EAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAA,wBAAW,EAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjE,IAAI,CAAC,eAAe,CAClB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,UAAU,CAAC,aAAa,EAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CACpB,CAAC;YACN,CAAC;iBAAM,IAAI,IAAA,6BAAe,EAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7D,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE1D,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,CACE,GAA4B,EAC5B,GAAY,EACZ,GAAa,EACb,IAAkB,EAClB,EAAE;gBACF,MAAM,eAAe,GACnB,GAAG,YAAY,0BAAe;oBAC5B,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,IAAI,0BAAe,CACjB,IAAI,KAAK,CACP,GAAG,CAAC,OAAO;wBACT,MAAM,CAAC,SAAS,CACd,qCAAoB,EACpB,mCAAkB,CAAC,sBAAsB,CAC1C,CACJ,EACD,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;gBACR,IAAA,mBAAW,EAAC,eAAe,EAAE,GAAG,EAAE,8BAAsB,EAAE,IAAI,CAAC,CAAC;YAClE,CAAC,CACF,CAAC;YAEF,MAAM,YAAY,GAAoB,EAAE,CAAC;YACzC,YAAY,CAAC,IAAI,CACf,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAClC,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,EAAE;oBACH,IAAA,gBAAQ,EACN,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,KAAK,EACL,KAAK,MAAM,CAAC,SAAS,CACnB,qCAAoB,EACpB,mCAAkB,CAAC,YAAY,CAChC,aAAa,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAC/D,CAAC;oBACF,OAAO,EAAE,CAAC;gBACZ,CAAC,CACyB,CAAC;YAC/B,CAAC,CAAC,CACH,CAAC;YAEF,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBACtC,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;oBAC9D,IAAI,CAAC,IAAA,iBAAU,EAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBACrD,MAAM,IAAI,uCAAsB,CAC9B,mCAAkB,CAAC,0CAA0C,CAC9D,CAAC;oBACJ,CAAC;oBACD,MAAM,QAAQ,GAAG,IAAA,gBAAS,EAAC,IAAA,cAAO,EAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC;oBACvD,MAAM,OAAO,GAAG,IAAA,gBAAS,EAAC,IAAA,cAAO,EAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC;oBAC1D,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBACtD,MAAM,IAAI,uCAAsB,CAC9B,mCAAkB,CAAC,2CAA2C,CAC/D,CAAC;oBACJ,CAAC;oBACD,MAAM,OAAO,GAAG;wBACd,uCAAuC;wBACvC,GAAG,EAAE,IAAA,iBAAY,EAAC,OAAO,CAAC;wBAC1B,uCAAuC;wBACvC,IAAI,EAAE,IAAA,iBAAY,EAAC,QAAQ,CAAC;qBAC7B,CAAC;oBAEF,YAAY,CAAC,IAAI,CACf,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;wBAC5B,IAAA,oBAAY,EAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAC3C,IAAI,CAAC,WAAW,CAAC,YAAY,EAC7B,GAAG,EAAE;4BACH,OAAO,CAAC,GAAG,CACT,KAAK,MAAM,CAAC,SAAS,CACnB,qCAAoB,EACpB,mCAAkB,CAAC,YAAY,CAChC,cAAc,IAAI,CAAC,WAAW,CAAC,IAAI,IAClC,IAAI,CAAC,WAAW,CAAC,YACnB,EAAE,CACH,CAAC;4BACF,OAAO,EAAE,CAAC;wBACZ,CAAC,CACF,CAAC;oBACJ,CAAC,CAAC,CACH,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YAED,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACX,MAAM,CAAC,SAAS,CACd,qCAAoB,EACpB,mCAAkB,CAAC,8BAA8B,CAClD,EACD,GAAG,CACJ,CAAC;YACF,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;gBACvC,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAEe,KAAK,CAAC,IAAI;QACxB,MAAM,MAAM,GAAG,IAAA,uCAAsB,GAAE,CAAC;QACxC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAA,gBAAQ,EACN,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,KAAK,EACL,KAAK,MAAM,CAAC,SAAS,CACnB,qCAAoB,EACpB,mCAAkB,CAAC,eAAe,CACnC,MAAM,MAAM,CAAC,SAAS,CACrB,qCAAoB,EACpB,mCAAkB,CAAC,6BAA6B,CACjD,EAAE,CACJ,CAAC;YACF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,IAAI,CAAC,MAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBACrC,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACzB,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC;yBAAM,CAAC;wBACN,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAA,gBAAQ,EACN,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,KAAK,EACL,KAAK,MAAM,CAAC,SAAS,CACnB,qCAAoB,EACpB,mCAAkB,CAAC,cAAc,CAClC,MAAM,MAAM,CAAC,SAAS,CACrB,qCAAoB,EACpB,mCAAkB,CAAC,6BAA6B,CACjD,EAAE,CACJ,CAAC;IACJ,CAAC;CACF;AAzOD,kCAyOC"}
@@ -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 /etc/timezone, environment variable, then command-line argument
13
- // if /etc/timezone has a timezone, and is valid (isValidTimezone) start with that
14
- // if TZ env is set, and is valid (isValidTimezone), override with that
15
- // if command-line argument is set, and is valid (isValidTimezone), override with that
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 validConsoleTimezoneArgv = consoleTimezoneArgv
21
- ? new i18n_lib_1.Timezone(consoleTimezoneArgv.split('=')[1])
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 = validSystemTz ??
23
+ const timezone = validConsoleTimezoneArgv ??
25
24
  validConsoleTimezoneEnv ??
26
- validConsoleTimezoneArgv ??
25
+ validSystemTz ??
27
26
  context.adminTimezone;
28
27
  context.adminTimezone = timezone;
29
28
  return timezone;
@@ -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,6EAA6E;IAC7E,kFAAkF;IAClF,uEAAuE;IACvE,sFAAsF;IACtF,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,wBAAwB,GAAG,mBAAmB;QAClD,CAAC,CAAC,IAAI,mBAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,OAAO,GAAG,8BAAmB,CAAC,WAAW,EAG5C,CAAC;IAEJ,MAAM,QAAQ,GACZ,aAAa;QACb,uBAAuB;QACvB,wBAAwB;QACxB,OAAO,CAAC,aAAa,CAAC;IAExB,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC;IACjC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
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 { IncomingMessage, ServerResponse } from 'http';
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,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAEvD,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,GAAG,EAAE;QACH,UAAU,EAAE,CACR,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;QACJ,MAAM,EAAE,CACJ,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;QACJ,UAAU,EAAE,CACR,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;QACJ,SAAS,EAAE,CACP,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;QACJ,QAAQ,EAAE,CACN,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;QACJ,OAAO,EAAE,CACL,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;QACJ,QAAQ,EAAE,CACN,MAAM,GACN,CAAC,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,MAAM,CAAC,CAC1D,EAAE,CAAC;KACL,CAAC;CACH"}
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"}
@@ -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"}
@@ -1,15 +1,8 @@
1
+ import cors from 'cors';
1
2
  import { Application } from 'express';
2
3
  import { HelmetOptions } from 'helmet';
3
- import { IncomingMessage, ServerResponse } from 'http';
4
- type CSPDef = {
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
- };
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
@@ -1 +1 @@
1
- {"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/middlewares.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EAMZ,MAAM,SAAS,CAAC;AACjB,OAAe,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AA8BvD,KAAK,MAAM,GAAG;IACR,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,CAAC;AAiCN,eAAO,MAAM,cAAc,GACvB,KAAK,WAAW,EAChB,eAAe,MAAM,EAAE,EACvB,KAAK,MAAM,GAAG,aAAa,KAC1B,IA6CF,CAAC"}
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"}
@@ -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
- const isCSPDef = (obj) => {
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 (isCSPDef(csp)) {
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
@@ -1 +1 @@
1
- {"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/middlewares.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"middlewares.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-node-express-suite/src/middlewares.ts"],"names":[],"mappings":"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"}