@futdevpro/nts-dynamo 1.15.88 → 1.15.89

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 (29) hide show
  1. package/build/_collections/global-settings.const.d.ts.map +1 -1
  2. package/build/_collections/global-settings.const.js +7 -0
  3. package/build/_collections/global-settings.const.js.map +1 -1
  4. package/build/_collections/security-headers.util.d.ts +17 -0
  5. package/build/_collections/security-headers.util.d.ts.map +1 -0
  6. package/build/_collections/security-headers.util.js +78 -0
  7. package/build/_collections/security-headers.util.js.map +1 -0
  8. package/build/_models/interfaces/global-settings.interface.d.ts +8 -0
  9. package/build/_models/interfaces/global-settings.interface.d.ts.map +1 -1
  10. package/build/_models/interfaces/security-headers-settings.interface.d.ts +42 -0
  11. package/build/_models/interfaces/security-headers-settings.interface.d.ts.map +1 -0
  12. package/build/_models/interfaces/security-headers-settings.interface.js +3 -0
  13. package/build/_models/interfaces/security-headers-settings.interface.js.map +1 -0
  14. package/build/_services/server/app.server.d.ts +7 -0
  15. package/build/_services/server/app.server.d.ts.map +1 -1
  16. package/build/_services/server/app.server.js +22 -0
  17. package/build/_services/server/app.server.js.map +1 -1
  18. package/build/index.d.ts +2 -0
  19. package/build/index.d.ts.map +1 -1
  20. package/build/index.js +2 -0
  21. package/build/index.js.map +1 -1
  22. package/package.json +1 -1
  23. package/src/_collections/global-settings.const.ts +8 -0
  24. package/src/_collections/security-headers.util.spec.ts +98 -0
  25. package/src/_collections/security-headers.util.ts +96 -0
  26. package/src/_models/interfaces/global-settings.interface.ts +9 -0
  27. package/src/_models/interfaces/security-headers-settings.interface.ts +50 -0
  28. package/src/_services/server/app.server.ts +29 -0
  29. package/src/index.ts +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"global-settings.const.d.ts","sourceRoot":"","sources":["../../src/_collections/global-settings.const.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAIxF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,qBAgGnC,CAAC"}
1
+ {"version":3,"file":"global-settings.const.d.ts","sourceRoot":"","sources":["../../src/_collections/global-settings.const.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAIxF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,qBAwGnC,CAAC"}
@@ -55,6 +55,13 @@ exports.DyNTS_global_settings = {
55
55
  maxChunkSize: 1000,
56
56
  maxChunkCount: 1000,
57
57
  },
58
+ // BFR-MASTERPROMPTER-011 / SEC-R2-8 — security response-headerek default-ON (safe-by-default
59
+ // készlet: x-powered-by removal + SAMEORIGIN + nosniff + strict-origin-when-cross-origin;
60
+ // HSTS AUTO csak prod-on; CSP opt-in). Per-app tweak az overrideDynamoNTSGlobalSettings()-ben.
61
+ securityHeaders: {
62
+ enabled: true,
63
+ removePoweredBy: true,
64
+ },
58
65
  // FR-193 — bedrock OOM korai-figyelmeztető heap-watchdog. Default-on: minden nts-szerver
59
66
  // megkapja a heap-nyomás-figyelést a base App startup-ban (lásd DyNTS_MemoryGuard). Csak
60
67
  // MEGFIGYELÉS + tartós rögzítés a near-OOM küszöböknél — nem változtat a viselkedésen.
@@ -1 +1 @@
1
- {"version":3,"file":"global-settings.const.js","sourceRoot":"","sources":["../../src/_collections/global-settings.const.ts"],"names":[],"mappings":";;;AAEA,uEAAoE;AAEpE,yFAAsF;AACtF,mFAAgF;AAEhF;;;GAGG;AACU,QAAA,qBAAqB,GAA0B;IAC1D,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,iBAAiB;IAChC,oBAAoB,EAAE,yCAAmB,CAAC,IAAI;IAC9C,qBAAqB,EAAE,2CAAoB,CAAC,IAAI;IAEhD,eAAe,EAAE,EAAE;IACnB,gBAAgB,EAAE,GAAG;IACrB,YAAY,EAAE,IAAA,6DAA6B,GAAE;IAE7C,oCAAoC,EAAE,IAAI;IAC1C,oBAAoB,EAAE,IAAI;IAE1B,YAAY,EAAE;QACZ,gBAAgB,EAAE,KAAK;QAEvB,KAAK,EAAE,KAAK;QAEZ,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,KAAK;QACtB,eAAe,EAAE,KAAK;QACtB,oBAAoB,EAAE,KAAK;QAE3B,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;QACvB,mBAAmB,EAAE,KAAK;QAE1B,UAAU,EAAE,IAAI;QAChB,mBAAmB,EAAE,KAAK;QAC1B,mBAAmB,EAAE,KAAK;QAC1B,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE,IAAI;QAEhB,cAAc,EAAE,KAAK;QAErB,YAAY,EAAE,KAAK;QAEnB,aAAa,EAAE;YACb,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,IAAI;SACjB;KACF;IAED,kBAAkB,EAAE,IAAI;IAExB,iFAAiF;IACjF,oFAAoF;IACpF,kEAAkE;IAClE,aAAa,EAAE;QACb,QAAQ,EAAE,KAAK;KAChB;IAED,YAAY,EAAE,IAAI;IAElB,eAAe,EAAE,IAAI;IAErB,aAAa,EAAE,IAAI;IAEnB,kBAAkB,EAAE,IAAI;IAExB,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,IAAI;KACpB;IAED,yFAAyF;IACzF,yFAAyF;IACzF,uFAAuF;IACvF,WAAW,EAAE;QACX,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,KAAK;QACrB,oBAAoB,EAAE,EAAE;QACxB,qBAAqB,EAAE,EAAE;QACzB,cAAc,EAAE,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,kHAAkH;QAClH,iBAAiB,EAAE,IAAI;QACvB,kBAAkB,EAAE,IAAI;QACxB,oBAAoB,EAAE,IAAI;QAC1B,uBAAuB,EAAE,KAAK;QAC9B,sBAAsB,EAAE,CAAC;QACzB,QAAQ,EAAE,GAAG;QACb,WAAW,EAAE,KAAK;KACnB;IAED,+FAA+F;IAC/F,iGAAiG;IACjG,iGAAiG;IACjG,gGAAgG;IAChG,uBAAuB,EAAE;QACvB,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,MAAM;QACtB,qBAAqB,EAAE,MAAM;QAC7B,sBAAsB,EAAE,EAAE;QAC1B,iBAAiB,EAAE,OAAO;KAC3B;CACF,CAAC"}
1
+ {"version":3,"file":"global-settings.const.js","sourceRoot":"","sources":["../../src/_collections/global-settings.const.ts"],"names":[],"mappings":";;;AAEA,uEAAoE;AAEpE,yFAAsF;AACtF,mFAAgF;AAEhF;;;GAGG;AACU,QAAA,qBAAqB,GAA0B;IAC1D,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,iBAAiB;IAChC,oBAAoB,EAAE,yCAAmB,CAAC,IAAI;IAC9C,qBAAqB,EAAE,2CAAoB,CAAC,IAAI;IAEhD,eAAe,EAAE,EAAE;IACnB,gBAAgB,EAAE,GAAG;IACrB,YAAY,EAAE,IAAA,6DAA6B,GAAE;IAE7C,oCAAoC,EAAE,IAAI;IAC1C,oBAAoB,EAAE,IAAI;IAE1B,YAAY,EAAE;QACZ,gBAAgB,EAAE,KAAK;QAEvB,KAAK,EAAE,KAAK;QAEZ,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,KAAK;QACtB,eAAe,EAAE,KAAK;QACtB,oBAAoB,EAAE,KAAK;QAE3B,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;QACvB,mBAAmB,EAAE,KAAK;QAE1B,UAAU,EAAE,IAAI;QAChB,mBAAmB,EAAE,KAAK;QAC1B,mBAAmB,EAAE,KAAK;QAC1B,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE,IAAI;QAEhB,cAAc,EAAE,KAAK;QAErB,YAAY,EAAE,KAAK;QAEnB,aAAa,EAAE;YACb,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,IAAI;SACjB;KACF;IAED,kBAAkB,EAAE,IAAI;IAExB,iFAAiF;IACjF,oFAAoF;IACpF,kEAAkE;IAClE,aAAa,EAAE;QACb,QAAQ,EAAE,KAAK;KAChB;IAED,YAAY,EAAE,IAAI;IAElB,eAAe,EAAE,IAAI;IAErB,aAAa,EAAE,IAAI;IAEnB,kBAAkB,EAAE,IAAI;IAExB,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,IAAI;KACpB;IAED,6FAA6F;IAC7F,0FAA0F;IAC1F,+FAA+F;IAC/F,eAAe,EAAE;QACf,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,IAAI;KACtB;IAED,yFAAyF;IACzF,yFAAyF;IACzF,uFAAuF;IACvF,WAAW,EAAE;QACX,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,KAAK;QACrB,oBAAoB,EAAE,EAAE;QACxB,qBAAqB,EAAE,EAAE;QACzB,cAAc,EAAE,EAAE;QAClB,eAAe,EAAE,GAAG;QACpB,kHAAkH;QAClH,iBAAiB,EAAE,IAAI;QACvB,kBAAkB,EAAE,IAAI;QACxB,oBAAoB,EAAE,IAAI;QAC1B,uBAAuB,EAAE,KAAK;QAC9B,sBAAsB,EAAE,CAAC;QACzB,QAAQ,EAAE,GAAG;QACb,WAAW,EAAE,KAAK;KACnB;IAED,+FAA+F;IAC/F,iGAAiG;IACjG,iGAAiG;IACjG,gGAAgG;IAChG,uBAAuB,EAAE;QACvB,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,MAAM;QACtB,qBAAqB,EAAE,MAAM;QAC7B,sBAAsB,EAAE,EAAE;QAC1B,iBAAiB,EAAE,OAAO;KAC3B;CACF,CAAC"}
@@ -0,0 +1,17 @@
1
+ import * as Express from 'express';
2
+ import { DyFM_EnvironmentFlag } from '@futdevpro/fsm-dynamo';
3
+ import { DyNTS_SecurityHeaders_Settings } from '../_models/interfaces/security-headers-settings.interface';
4
+ /**
5
+ * A security response-headerek TISZTA (Express-mentes, unit-tesztelhető) resolvere
6
+ * (BFR-MASTERPROMPTER-011 / SEC-R2-8). A `DyNTS_App.mountSecurityHeaders` ebből épít middleware-t.
7
+ *
8
+ * **HSTS AUTO-env-gate**: ha a `hsts` beállítás nem explicit, CSAK prod environment-en emittálunk
9
+ * (a test-környezeti sticky-HSTS elkerülésére); explicit `hsts.enabled` felülbírálja mindkét irányba.
10
+ */
11
+ export declare function DyNTS_resolveSecurityHeaders(settings: DyNTS_SecurityHeaders_Settings, environment: DyFM_EnvironmentFlag): Record<string, string>;
12
+ /**
13
+ * Express-middleware factory a resolvelt headerekből. A headereket boot-kor EGYSZER resolvoljuk
14
+ * (a settings boot után nem változik), a middleware kérésenként csak setHeader-öl.
15
+ */
16
+ export declare function DyNTS_createSecurityHeadersMiddleware(settings: DyNTS_SecurityHeaders_Settings, environment: DyFM_EnvironmentFlag): Express.Handler;
17
+ //# sourceMappingURL=security-headers.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-headers.util.d.ts","sourceRoot":"","sources":["../../src/_collections/security-headers.util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,2DAA2D,CAAC;AAE3G;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,8BAA8B,EACxC,WAAW,EAAE,oBAAoB,GAChC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA4DxB;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,QAAQ,EAAE,8BAA8B,EACxC,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,OAAO,CAUjB"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyNTS_resolveSecurityHeaders = DyNTS_resolveSecurityHeaders;
4
+ exports.DyNTS_createSecurityHeadersMiddleware = DyNTS_createSecurityHeadersMiddleware;
5
+ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
6
+ /**
7
+ * A security response-headerek TISZTA (Express-mentes, unit-tesztelhető) resolvere
8
+ * (BFR-MASTERPROMPTER-011 / SEC-R2-8). A `DyNTS_App.mountSecurityHeaders` ebből épít middleware-t.
9
+ *
10
+ * **HSTS AUTO-env-gate**: ha a `hsts` beállítás nem explicit, CSAK prod environment-en emittálunk
11
+ * (a test-környezeti sticky-HSTS elkerülésére); explicit `hsts.enabled` felülbírálja mindkét irányba.
12
+ */
13
+ function DyNTS_resolveSecurityHeaders(settings, environment) {
14
+ const headers = {};
15
+ if (!settings.enabled) {
16
+ return headers;
17
+ }
18
+ // Clickjacking-védelem — default SAMEORIGIN.
19
+ const frameOptions = settings.frameOptions ?? 'SAMEORIGIN';
20
+ if (frameOptions) {
21
+ headers['X-Frame-Options'] = frameOptions;
22
+ }
23
+ // MIME-sniffing tiltás — default nosniff.
24
+ const contentTypeOptions = settings.contentTypeOptions ?? 'nosniff';
25
+ if (contentTypeOptions) {
26
+ headers['X-Content-Type-Options'] = contentTypeOptions;
27
+ }
28
+ // Referrer-szivárgás korlátozás — default strict-origin-when-cross-origin.
29
+ const referrerPolicy = settings.referrerPolicy ?? 'strict-origin-when-cross-origin';
30
+ if (referrerPolicy) {
31
+ headers['Referrer-Policy'] = referrerPolicy;
32
+ }
33
+ // Permissions-Policy — opt-in (app-specifikus feature-készlet).
34
+ if (settings.permissionsPolicy) {
35
+ headers['Permissions-Policy'] = settings.permissionsPolicy;
36
+ }
37
+ // HSTS — AUTO-env-gate: default CSAK prod-on; explicit enabled felülbírál.
38
+ if (settings.hsts !== false) {
39
+ const hstsExplicitlyEnabled = settings.hsts?.enabled === true;
40
+ const hstsExplicitlyDisabled = settings.hsts?.enabled === false;
41
+ const hstsAutoOn = environment === fsm_dynamo_1.DyFM_EnvironmentFlag.prod;
42
+ if (!hstsExplicitlyDisabled && (hstsExplicitlyEnabled || hstsAutoOn)) {
43
+ const maxAge = settings.hsts?.maxAgeSeconds ?? 15768000;
44
+ const includeSubDomains = (settings.hsts?.includeSubDomains ?? true) ? '; includeSubDomains' : '';
45
+ const preload = settings.hsts?.preload ? '; preload' : '';
46
+ headers['Strict-Transport-Security'] = `max-age=${maxAge}${includeSubDomains}${preload}`;
47
+ }
48
+ }
49
+ // CSP — opt-in string; a Report-Only header-név a fokozatos bevezetéshez.
50
+ if (settings.csp) {
51
+ const cspHeaderName = settings.cspReportOnly
52
+ ? 'Content-Security-Policy-Report-Only'
53
+ : 'Content-Security-Policy';
54
+ headers[cspHeaderName] = settings.csp;
55
+ }
56
+ // Tetszőleges további headerek (merge, felülírással).
57
+ if (settings.additionalHeaders) {
58
+ for (const [key, value] of Object.entries(settings.additionalHeaders)) {
59
+ headers[key] = value;
60
+ }
61
+ }
62
+ return headers;
63
+ }
64
+ /**
65
+ * Express-middleware factory a resolvelt headerekből. A headereket boot-kor EGYSZER resolvoljuk
66
+ * (a settings boot után nem változik), a middleware kérésenként csak setHeader-öl.
67
+ */
68
+ function DyNTS_createSecurityHeadersMiddleware(settings, environment) {
69
+ const resolvedHeaders = DyNTS_resolveSecurityHeaders(settings, environment);
70
+ const headerEntries = Object.entries(resolvedHeaders);
71
+ return (req, res, next) => {
72
+ for (const [key, value] of headerEntries) {
73
+ res.setHeader(key, value);
74
+ }
75
+ next();
76
+ };
77
+ }
78
+ //# sourceMappingURL=security-headers.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-headers.util.js","sourceRoot":"","sources":["../../src/_collections/security-headers.util.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { DyNTS_RouteSecurity } from '../../_enums/route-security.enum';
2
+ import { DyNTS_SecurityHeaders_Settings } from './security-headers-settings.interface';
2
3
  import { DyNTS_SocketSecurity } from '../../_modules/socket/_enums/socket-security.enum';
3
4
  import { DyNTS_GlobalLog_Settings } from './global-log-settings.interface';
4
5
  import { DyNTS_Environment_Settings } from './environment-settings.interface';
@@ -137,6 +138,13 @@ export interface DyNTS_Global_Settings {
137
138
  * default settings: {@link DyNTS_Msg_global_settings}
138
139
  */
139
140
  messaging_settings?: any;
141
+ /**
142
+ * BFR-MASTERPROMPTER-011 / SEC-R2-8 — security response-header middleware. Ha enabled
143
+ * (default: true), a base App az open+secure Express-en a CORS-mount ELŐTT minden válaszra
144
+ * ráteszi a biztonsági headereket (x-powered-by removal + X-Frame-Options + nosniff +
145
+ * Referrer-Policy; HSTS auto-prod-gated; CSP opt-in). Lásd {@link DyNTS_SecurityHeaders_Settings}.
146
+ */
147
+ securityHeaders?: DyNTS_SecurityHeaders_Settings;
140
148
  /**
141
149
  * FR-193 — bedrock OOM korai-figyelmeztető heap-watchdog ({@link DyNTS_MemoryGuard}).
142
150
  * Ha `enabled`, a base `App` startup automatikusan feltelepíti. Periodikusan figyeli a
@@ -1 +1 @@
1
- {"version":3,"file":"global-settings.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/global-settings.interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"global-settings.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/global-settings.interface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * `DyNTS_SecurityHeaders_Settings` — a bedrock security response-header middleware beállításai
3
+ * (BFR-MASTERPROMPTER-011 / SEC-R2-8). A middleware minden `DyNTS_App`-leszármazott open+secure
4
+ * Express-én, a CORS-mount ELŐTT fut (így az OPTIONS preflight-válaszok is megkapják a headereket).
5
+ *
6
+ * **Default-ON, safe-by-default**: zéró-konfiggal a bizonyítottan nem-törő készlet megy ki
7
+ * (x-powered-by removal + X-Frame-Options + nosniff + Referrer-Policy). A HSTS auto-env-gated
8
+ * (csak prod), a CSP opt-in (app-specifikus). Bármely header `false`-szal kikapcsolható;
9
+ * `enabled: false` = teljes opt-out.
10
+ */
11
+ export interface DyNTS_SecurityHeaders_Settings {
12
+ /** Fő kapcsoló. Default: true (a middleware minden szerveren aktív). */
13
+ enabled: boolean;
14
+ /** `app.disable('x-powered-by')` — Express tech-leak eltávolítás. Default: true. */
15
+ removePoweredBy?: boolean;
16
+ /** `X-Frame-Options` értéke, vagy `false` a kihagyáshoz. Default: 'SAMEORIGIN'. */
17
+ frameOptions?: string | false;
18
+ /** `X-Content-Type-Options` értéke, vagy `false`. Default: 'nosniff'. */
19
+ contentTypeOptions?: string | false;
20
+ /** `Referrer-Policy` értéke, vagy `false`. Default: 'strict-origin-when-cross-origin'. */
21
+ referrerPolicy?: string | false;
22
+ /** `Permissions-Policy` értéke, vagy `false`. Default: false (opt-in — app-specifikus). */
23
+ permissionsPolicy?: string | false;
24
+ /**
25
+ * HSTS (`Strict-Transport-Security`). Default: AUTO — CSAK prod environment-en emittál
26
+ * (`max-age=15768000; includeSubDomains`); a test-en a sticky-HSTS strukturálisan elkerülve.
27
+ * Explicit `{ enabled: true }` bármely env-en bekapcsolja; `false` mindenhol kikapcsolja.
28
+ */
29
+ hsts?: {
30
+ enabled?: boolean;
31
+ maxAgeSeconds?: number;
32
+ includeSubDomains?: boolean;
33
+ preload?: boolean;
34
+ } | false;
35
+ /** `Content-Security-Policy` string, vagy `false`. Default: false (app-specifikus, OPT-IN). */
36
+ csp?: string | false;
37
+ /** Ha true, a CSP a `Content-Security-Policy-Report-Only` header-névvel megy ki (rollout-segéd). */
38
+ cspReportOnly?: boolean;
39
+ /** További tetszőleges fix headerek (merge a resolvelt készletre). */
40
+ additionalHeaders?: Record<string, string>;
41
+ }
42
+ //# sourceMappingURL=security-headers-settings.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-headers-settings.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/security-headers-settings.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,WAAW,8BAA8B;IAC7C,wEAAwE;IACxE,OAAO,EAAE,OAAO,CAAC;IAEjB,oFAAoF;IACpF,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAE9B,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEpC,0FAA0F;IAC1F,cAAc,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEhC,2FAA2F;IAC3F,iBAAiB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEnC;;;;OAIG;IACH,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG,KAAK,CAAC;IAEV,+FAA+F;IAC/F,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAErB,oGAAoG;IACpG,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=security-headers-settings.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-headers-settings.interface.js","sourceRoot":"","sources":["../../../src/_models/interfaces/security-headers-settings.interface.ts"],"names":[],"mappings":""}
@@ -325,6 +325,13 @@ export declare abstract class DyNTS_App extends DyNTS_SingletonService {
325
325
  * - Full control over Vary/credentials/preflight semantics.
326
326
  * - Aligns with FDP "no unnecessary deps" philosophy.
327
327
  */
328
+ /**
329
+ * BFR-011 / SEC-R2-8 — security response-headerek mountolása (a `mountCors` tükörképe).
330
+ * A `DyNTS_global_settings.securityHeaders` alapján (default-ON) minden válaszra ráteszi a
331
+ * biztonsági headereket + eltávolítja az `x-powered-by`-t. A CORS-mount ELŐTT hívandó, hogy az
332
+ * OPTIONS preflight-válaszok (amiket a mountCors 204-gyel rövidre zár) is megkapják.
333
+ */
334
+ protected mountSecurityHeaders(express: Express.Application): void;
328
335
  protected mountCors(express: Express.Application): void;
329
336
  /**
330
337
  * Generikus, auth-agnosztikus extension-point orchestrator. A `registerCustomMiddleware`
@@ -1 +1 @@
1
- {"version":3,"file":"app.server.d.ts","sourceRoot":"","sources":["../../../src/_services/server/app.server.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,GAAG,QAAQ,UAAU,CAAC,CAAC;AACtC,OAAO,OAAO,GAAG,QAAQ,SAAS,CAAC,CAAC;AAMpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EAIL,UAAU,EAQX,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uDAAuD,CAAC;AACzF,OAAO,EACL,uBAAuB,EACxB,MAAM,gEAAgE,CAAC;AAIxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0DAA0D,CAAC;AAC/F,OAAO,EACL,4BAA4B,EAC7B,MAAM,2DAA2D,CAAC;AACnE,OAAO,EACL,4BAA4B,EAC7B,MAAM,4DAA4D,CAAC;AACpE,OAAO,EACL,2BAA2B,EAC5B,MAAM,2DAA2D,CAAC;AACnE,OAAO,EACL,mBAAmB,EACpB,MAAM,kDAAkD,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAInE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAGtE;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8GG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,uGAAuG;AACvG,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC9C,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE;QAAE,kBAAkB,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzG,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAChD;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAElE,8BAAsB,SAAU,SAAQ,sBAAsB;IAE5D,SAAS,CAAC,cAAc,EAAE,uBAAuB,CAAiC;IAClF,IAAI,OAAO,IAAI,OAAO,CAErB;IACD,SAAS,KAAK,YAAY,IAAI,OAAO,CAEpC;IACD,SAAS,CAAC,eAAe,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAM;IAQvD,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,OAAO,CAAC,OAAO,CAAmB;IAClC,SAAS,KAAK,MAAM,IAAI,gBAAgB,CAEvC;IAED,SAAS,CAAC,QAAQ,kBAAY;IAE9B,OAAO,CAAC,SAAS,CAAsB;IACvC,SAAS,KAAK,QAAQ,IAAI,mBAAmB,CAE5C;IAED,SAAS,CAAC,aAAa,EAAE,mBAAmB,CAA6B;IACzE,SAAS,KAAK,YAAY,IAAI,mBAAmB,CAEhD;IAED,OAAO,CAAC,KAAK,CAAC,CAA+B;IAC7C,SAAS,KAAK,IAAI,IAAI,4BAA4B,CAEjD;IAED,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC;IAC3C,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC;IAC7C,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;IACpC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;IAElC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,aAAa,CAAgC;IAErD,OAAO,CAAC,eAAe,CAA6B;IAEpD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAe;IAE7D,SAAkB,mBAAmB,SAGP;IAE9B,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,OAAO,IAAI,OAAO,CAErB;IACD,IAAI,MAAM,IAAI,OAAO,CAEpB;IACD,QAAQ,EAAE,OAAO,CAAmD;;cAuGpD,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiN3D,KAAK,CAAC,OAAO,GAAE,MAAiC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqKtE,SAAS,CAAC,4BAA4B,IAAI,MAAM,EAAE;IAU5C,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiG5C;;OAEG;YACW,OAAO;IAkJrB;;;;;;;;;;;;;;OAcG;YACW,0BAA0B;IAoDxC;;;;;;;;;;;;OAYG;WACU,uBAAuB,CAClC,UAAU,EAAE,wBAAwB,EACpC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,oBAAoB,CAAC;IAmBhC;;OAEG;YACW,aAAa;IA+F3B;;OAEG;cACa,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAUhD;;OAEG;cACa,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBlD;;OAEG;YACW,cAAc;IAsJ5B;;OAEG;YACW,oBAAoB;IAkClC;;OAEG;YACW,iBAAiB;IA4D/B;;OAEG;YACW,eAAe;IA0D7B;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,GAAG,IAAI;IAgDvD;;;;;;OAMG;YACW,qBAAqB;IAkBnC;;;;;OAKG;YACW,iBAAiB;IAuE/B;;OAEG;IACH,OAAO,CAAC,WAAW;IA6BnB,OAAO,CAAC,wBAAwB;IAkBhC;;OAEG;IACH,QAAQ,CAAC,YAAY,IAAI,gBAAgB;IAEzC;;OAEG;IACH,QAAQ,CAAC,0BAA0B,IAAI,4BAA4B;IAEnE;;OAEG;IACH,QAAQ,CAAC,eAAe,IAAI,mBAAmB;IAE/C;;OAEG;IACH,+BAA+B,CAAC,IAAI,IAAI;IAExC;;;OAGG;IACH,cAAc,CAAC,IAAI,MAAM;IAEzB;;OAEG;IACH,iBAAiB,CAAC,IAAI,mBAAmB,EAAE;IAE3C;;OAEG;IACH,eAAe,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAElC;;OAEG;IACH,wBAAwB,CAAC,IAAI,4BAA4B;IAEzD;;;OAGG;IACH,uBAAuB,CAAC,IAAI,2BAA2B,GAAG,SAAS;IAEnE;;;;;;OAMG;IACH,eAAe,CAAC,IAAI,mBAAmB,GAAG,SAAS;IAEnD;;;;;;OAMG;IACH,wBAAwB,CAAC,CACvB,OAAO,EAAE,OAAO,CAAC,WAAW,EAC5B,QAAQ,EAAE,mBAAmB,GAC5B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAE/B;;OAEG;IACH,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;CAE9B"}
1
+ {"version":3,"file":"app.server.d.ts","sourceRoot":"","sources":["../../../src/_services/server/app.server.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,8 @@ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
15
15
  const default_fallback_cache_max_age_const_1 = require("../../_collections/default-fallback-cache-max-age.const");
16
16
  const default_not_found_page_const_1 = require("../../_collections/default-not-found-page.const");
17
17
  const global_settings_const_1 = require("../../_collections/global-settings.const");
18
+ const get_environment_settings_util_1 = require("../../_collections/get-environment-settings.util");
19
+ const security_headers_util_1 = require("../../_collections/security-headers.util");
18
20
  const mongo_reconnect_guard_util_1 = require("../../_collections/mongo-reconnect-guard.util");
19
21
  const static_cache_control_util_1 = require("../../_collections/static-cache-control.util");
20
22
  const route_security_enum_1 = require("../../_enums/route-security.enum");
@@ -825,6 +827,8 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
825
827
  this.openExpress.set('maxHeaderSize', 10 * fsm_dynamo_1.megabyte); // 1024 * 1024 * 10, // 10MB
826
828
  this.openExpress.use(BodyParser.urlencoded(this._portSettings.httpUrlencoded));
827
829
  this.openExpress.use(BodyParser.json(this._portSettings.httpJson));
830
+ // BFR-011 / SEC-R2-8 — security headerek a CORS ELŐTT (az OPTIONS preflight-válaszok is kapják).
831
+ this.mountSecurityHeaders(this.openExpress);
828
832
  // FR-041 — CORS allowlist enforcement. No-op if getCorsSettings() is not overridden.
829
833
  this.mountCors(this.openExpress);
830
834
  }
@@ -837,6 +841,8 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
837
841
  this.secureExpress = Express();
838
842
  this.secureExpress.use(BodyParser.urlencoded(this._portSettings.httpsUrlencoded));
839
843
  this.secureExpress.use(BodyParser.json(this._portSettings.httpsJson));
844
+ // BFR-011 / SEC-R2-8 — security headerek a CORS ELŐTT (mint az open expressen).
845
+ this.mountSecurityHeaders(this.secureExpress);
840
846
  // FR-041 — CORS allowlist enforcement (same as open express).
841
847
  this.mountCors(this.secureExpress);
842
848
  const options = {
@@ -1091,6 +1097,22 @@ class DyNTS_App extends singleton_service_1.DyNTS_SingletonService {
1091
1097
  * - Full control over Vary/credentials/preflight semantics.
1092
1098
  * - Aligns with FDP "no unnecessary deps" philosophy.
1093
1099
  */
1100
+ /**
1101
+ * BFR-011 / SEC-R2-8 — security response-headerek mountolása (a `mountCors` tükörképe).
1102
+ * A `DyNTS_global_settings.securityHeaders` alapján (default-ON) minden válaszra ráteszi a
1103
+ * biztonsági headereket + eltávolítja az `x-powered-by`-t. A CORS-mount ELŐTT hívandó, hogy az
1104
+ * OPTIONS preflight-válaszok (amiket a mountCors 204-gyel rövidre zár) is megkapják.
1105
+ */
1106
+ mountSecurityHeaders(express) {
1107
+ const settings = global_settings_const_1.DyNTS_global_settings.securityHeaders;
1108
+ if (!settings || !settings.enabled) {
1109
+ return;
1110
+ }
1111
+ if (settings.removePoweredBy !== false) {
1112
+ express.disable('x-powered-by');
1113
+ }
1114
+ express.use((0, security_headers_util_1.DyNTS_createSecurityHeadersMiddleware)(settings, (0, get_environment_settings_util_1.DyNTS_getEnvironment_settings)().environment));
1115
+ }
1094
1116
  mountCors(express) {
1095
1117
  const settings = this.getCorsSettings?.();
1096
1118
  if (!settings) {
@@ -1 +1 @@
1
- {"version":3,"file":"app.server.js","sourceRoot":"","sources":["../../../src/_services/server/app.server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.server.js","sourceRoot":"","sources":["../../../src/_services/server/app.server.ts"],"names":[],"mappings":";;;;AACA,qCAAsC;AACtC,mCAAoC;AACpC;iCACiC;AAEjC,gEAA0C;AAC1C,uDAAiC;AAEjC,qDAA+B;AAC/B,mDAA6B;AAG7B,sDAAsD;AAEtD,sDAY+B;AAE/B,kHAA2G;AAC3G,kGAAgG;AAChG,oFAAiF;AACjF,oGAAiG;AACjG,oFAAiG;AAEjG,8FAAyF;AACzF,4FAAqG;AACrG,0EAAuE;AAEvE,sHAEwE;AAIxE,0GAA+F;AAc/F,iEAAmE;AACnE,2DAA6D;AAC7D,iGAA0F;AAC1F,uEAAiE;AAkNjE,MAAsB,SAAU,SAAQ,0CAAsB;IAElD,cAAc,GAA4B,IAAI,2DAAuB,EAAE,CAAC;IAClF,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;IACzC,CAAC;IACD,IAAc,YAAY;QACxB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;IACzC,CAAC;IACS,eAAe,GAA2B,EAAE,CAAC;IAEvD;;;;QAII;IAEJ,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAEO,OAAO,CAAmB;IAClC,IAAc,MAAM;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAES,QAAQ,GAAG,QAAQ,CAAC;IAEtB,SAAS,CAAsB;IACvC,IAAc,QAAQ;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAES,aAAa,GAAwB,IAAI,iDAAmB,EAAE,CAAC;IACzE,IAAc,YAAY;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAgC;IAC7C,IAAc,IAAI;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAES,WAAW,CAAsB;IACjC,aAAa,CAAsB;IACnC,WAAW,CAAe;IAC1B,UAAU,CAAc;IAE1B,aAAa,CAAsB;IACnC,aAAa,GAA6B,EAAE,CAAC;IAE7C,eAAe,GAA0B,EAAE,CAAC;IAEjC,mBAAmB,GAAW,EAAE,GAAG,mBAAM,CAAC;IAE3C,mBAAmB,GACnC,4CAA4C;QAC5C,oDAAoD;QACpD,2BAA2B,CAAC;IAE9B,IAAI,QAAQ;QACV,OAAO,6CAAqB,CAAC,YAAY,CAAC,KAAK,CAAC;IAClD,CAAC;IACD,IAAI,OAAO;QACT,OAAO,6CAAqB,CAAC,YAAY,CAAC,IAAI,CAAC;IACjD,CAAC;IACD,IAAI,MAAM;QACR,OAAO,6CAAqB,CAAC,YAAY,CAAC,SAAS,CAAC;IACtD,CAAC;IACD,QAAQ,GAAY,6CAAqB,CAAC,YAAY,CAAC,YAAY,CAAC;IAEpE,aAAY,wBAAwB;QAClC,KAAK,EAAE,CAAC;QAER,qBAAqB;QAErB,OAAO,CAAC,EAAE,CACR,oBAAoB,EACpB,CAAC,eAAuB,EAAE,gCAAqC,EAAQ,EAAE;YACvE,IAAI,eAAe,YAAY,uBAAU,EAAE,CAAC;gBAC1C,eAAe,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,qBAAQ,CAAC,OAAO,CACd,sBAAsB,EAAG,gCAAiD,EAAE,QAAQ,EAAE,EACtF,yBAAyB,EAAG,eAAyB,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9E,gDAAgD;gBAChD,gBAAgB,EACf,eAAyB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,CAC1E,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,oCAAmB,CAAC,kBAAkB,EAAE,CACtC,IAAI,uBAAU,CAAC;oBACb,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,oBAAoB;oBAC3E,OAAO,EACL,0BAA2B,eAAyB,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;oBAClF,WAAW,EAAE,IAAI,CAAC,mBAAmB;oBACrC,cAAc,EAAE,IAAI;oBACpB,KAAK,EAAE,eAAwB;oBAC/B,iBAAiB,EAAE;wBACjB,MAAM,EAAE,eAAe;wBACvB,eAAe,EAAE,gCAAgC;qBAClD;oBACD,aAAa,EAAE,6CAAqB,CAAC,aAAa;oBAClD,KAAK,EAAE,4BAAe,CAAC,QAAQ;iBAChC,CAAC,CACH,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,qBAAQ,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;YAClE,CAAC;QACH,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,cAAc,EAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,KAAU,EAAQ,EAAE;YAC7D,IAAI,KAAK,YAAY,uBAAU,EAAE,CAAC;gBAChC,IAAI,KAAK,CAAC,iBAAiB,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC;oBACrD,KAAK,CAAC,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,SAAqB,EAAQ,EAAE;wBAC9E,uBAAU,CAAC,SAAS,CAAC,2CAA2C,EAAE,SAAS,CAAC,CAAC;wBAC7E;;;;;;;4BAOI;oBACN,CAAC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,qBAAQ,CAAC,MAAM,CACb,gEAAgE,EAChE,KAAK,EAAE,iBAAiB,CACzB,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,uBAAU,CAAC,SAAS,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YACzE;;;;;;;;;;;;;;gBAcI;YAEJ,MAAM,OAAO,GACV,KAAoB,EAAE,iBAAiB,EAAE,eAAe,EAAE,OAAO,CAChE,CAAC,SAAqB,EAAY,EAAE;gBAClC,OAAO,SAAS,EAAE,SAAS,IAAI,EAAE,CAAC;YACpC,CAAC,CACF,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC;gBACd,KAAoB,EAAE,MAAM,EAAE,OAAO,CACpC,CAAC,SAAwB,EAAY,EAAE,CACpC,SAAwB,EAAE,SAAS,IAAI,CAAG,SAAmB,EAAE,OAAO,CAAE,CAC5E,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,OAAO;gBACd,SAAS,CAAC;YAEZ,qBAAQ,CAAC,SAAS,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;YAE3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,cAAc,CAAC,QAAkB;QAC/C,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO;YAAE,qBAAQ,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAEvE,IAAI,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;YACpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,qBAAQ,CAAC,GAAG,CACV,sBAAsB;gBACtB,YAAY,IAAI,CAAC,OAAO,EAAE,IAAI,MAAM;gBACpC,qBAAqB;gBACrB,sBAAsB,CACvB,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;gBACpC,6CAAqB,CAAC,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;YAC9E,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC3B,6CAAqB,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC1D,gCAAmB,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YAC5D,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACxB,6CAAqB,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC1D,gCAAmB,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAC1D,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,KAAK;gBAC/B,IAAI,CAAC,OAAO,EAAE,IAAI;gBAClB,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CACvB,CAAC;YAEF,gCAAmB,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YAE3D,IAAI,CAAC,+BAA+B,EAAE,EAAE,CAAC;YAEzC,IAAI,6CAAqB,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBAC7C,qBAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE;oBACjC,UAAU,EAAE,6CAAqB,CAAC,UAAU;oBAC5C,mBAAmB,EAAE,6CAAqB,CAAC,mBAAmB;oBAC9D,aAAa,EAAE,6CAAqB,CAAC,aAAa;oBAClD,WAAW,EAAE,6CAAqB,CAAC,YAAY,CAAC,WAAW;oBAC3D;wEACoD;iBACrD,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,oCAAmB,CAAC,WAAW,EAAE,CAAC;YACvD,MAAM,oCAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;YACzE,oCAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE3C,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAC9C,CAAC;YAED,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC/C,CAAC;YAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,6CAAqB,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACxD,CAAC;YAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAEhD,4CAA4C;gBAC5C;;;;;;;oBAOI;YACN,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBAErB,0DAA0D;gBAC1D,iFAAiF;gBACjF,wDAAwD;gBACxD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBAC/D,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC7B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,qBAAQ,CAAC,GAAG,CACV,mCAAmC,CACpC,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;gBACjC,IAAI,IAAI,CAAC,QAAQ;oBAAE,qBAAQ,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;gBAElE,IAAI,CAAC,WAAW,EAAE,CAAC;gBAEnB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAE5B,IAAI,IAAI,CAAC,SAAS,KAAK,yCAAmB,CAAC,MAAM,EAAE,CAAC;oBAClD,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC/B,CAAC;gBAED,IAAI,IAAI,CAAC,SAAS,KAAK,yCAAmB,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC9D,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACjC,CAAC;gBAED,wEAAwE;gBACxE,sEAAsE;gBACtE,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAEnC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAE/B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,qBAAQ,CAAC,GAAG,CAAC,+CAA+C,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,qBAAQ,CAAC,IAAI,CACX,sBAAsB,CACvB,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YACpD,CAAC;YAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,KAAU,EAAQ,EAAE;oBAClD,uBAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,uBAAuB,EAAE,KAAK,CAAC,CAAC;oBAC1E,oCAAmB,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,CAAC;gBAClD,CAAC,CAAC,CAAC;YACL,CAAC;YAED,iFAAiF;YACjF,uFAAuF;YACvF,mFAAmF;YACnF,+EAA+E;YAC/E,IAAI,CAAC;gBACH,IAAI,6CAAqB,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;oBAC/C,wCAAiB,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC5C,CAAC;YACH,CAAC;YAAC,OAAO,gBAAyB,EAAE,CAAC;gBACnC,qBAAQ,CAAC,IAAI,CAAC,uDAAuD,EAAE,gBAAgB,CAAC,CAAC;YAC3F,CAAC;YAED,4FAA4F;YAC5F,gGAAgG;YAChG,mDAAmD;YACnD,IAAI,CAAC;gBACH,IAAI,6CAAqB,CAAC,uBAAuB,EAAE,OAAO,EAAE,CAAC;oBAC3D,iEAA6B,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC;gBACxD,CAAC;YACH,CAAC;YAAC,OAAO,QAAiB,EAAE,CAAC;gBAC3B,qBAAQ,CAAC,IAAI,CAAC,mEAAmE,EAAE,QAAQ,CAAC,CAAC;YAC/F,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBAEnB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBACtB,qBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtC,CAAC;gBACD,qBAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjD,uDAAuD;gBACvD,qBAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,wBAAwB,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEjC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,6CAAqB,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;oBACxD,qBAAQ,CAAC,OAAO,CACd,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,wDAAwD,EAC7E,2BAA2B,EAAE,IAAI,CAAC,eAAe,EACjD,iBAAiB,EAAE,KAAK,CACzB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,qBAAQ,CAAC,OAAO,CACd,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,sCAAsC,EAC3D,2BAA2B,EAAE,IAAI,CAAC,4BAA4B,EAAE,EAChE,iBAAiB,EAAE,KAAK,YAAY,uBAAU,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,KAAK,CACpF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,EAAE,KAAK,CAAC;gBAEzD,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;gBACvE,iBAAiB,EAAE;oBACjB,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,aAAa,EAAE;wBACb,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE;wBACzC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE;wBACnD,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,EAAE;wBACvD,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,UAAU,EAAE;qBAC1D;iBACF;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAAkB,IAAI,CAAC,mBAAmB;QACpD,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM;gBAAE,qBAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAE9C,MAAM,uBAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE5B,IAAI,KAAK,GAAY,KAAK,CAAC;YAC3B,MAAM,KAAK,GAAW,CAAC,IAAI,IAAI,EAAE,CAAC;YAElC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;gBAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,IAAI,6CAAqB,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;wBACxD,qBAAQ,CAAC,OAAO,CACd,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,kDAAkD,EACvE,yBAAyB,EAAE,IAAI,CAAC,eAAe,CAChD,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,qBAAQ,CAAC,OAAO,CACd,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,kDAAkD,EACvE,yBAAyB,EAAE,IAAI,CAAC,4BAA4B,EAAE,CAC/D,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,MAAM,IAAI,uBAAU,CAAC;oBACnB,GAAG,IAAI,CAAC,wBAAwB,CAC9B,OAAO,EACP,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,CAClD;oBAED,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;oBACvE,iBAAiB,EACf,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;wBACjC,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBACpC,EAAE,MAAM,EAAE,IAAI,CAAC,eAAe,EAAE;iBACrC,CAAC,CAAC;YACL,CAAC;YAED,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC;gBAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBACjC,KAAK,GAAG,CACN,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE;wBACzC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,EAAE;wBAC3C,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,UAAU,EAAE,CAC7C,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,qBAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,kDAAkD,CAAC,CAAC;gBAC1F,CAAC;gBAED,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,uBAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YAED,IAAI,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,IAAI,6CAAqB,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;wBACxD,qBAAQ,CAAC,OAAO,CACd,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,wCAAwC,EAC7D,yBAAyB,EAAE,IAAI,CAAC,eAAe,CAChD,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,qBAAQ,CAAC,OAAO,CACd,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,wCAAwC,EAC7D,yBAAyB,EAAE,IAAI,CAAC,4BAA4B,EAAE,CAC/D,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,MAAM,IAAI,uBAAU,CAAC;oBACnB,GAAG,IAAI,CAAC,wBAAwB,CAC9B,OAAO,EACP,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,yBAAyB,CAAC,CAC1D;oBAED,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;oBACvE,iBAAiB,EAAE;wBACjB,eAAe,EAAE,IAAI,CAAC,eAAe;wBACrC,cAAc,EAAE,IAAI,CAAC,cAAc;wBACnC,aAAa,EAAE;4BACb,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE;4BACnD,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,EAAE;4BACvD,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,UAAU,EAAE;yBAC1D;qBACF;iBACF,CAAC,CAAC;YACL,CAAC;YAED,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;gBAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,IAAI,6CAAqB,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;wBACxD,qBAAQ,CAAC,OAAO,CACd,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,kDAAkD,EACvE,yBAAyB,EAAE,IAAI,CAAC,eAAe,CAChD,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,qBAAQ,CAAC,OAAO,CACd,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,kDAAkD,EACvE,yBAAyB,EAAE,IAAI,CAAC,4BAA4B,EAAE,CAC/D,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,MAAM,IAAI,uBAAU,CAAC;oBACnB,GAAG,IAAI,CAAC,wBAAwB,CAC9B,OAAO,EACP,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,CAClD;oBAED,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;oBACvE,iBAAiB,EAAE,IAAI,CAAC,eAAe;iBACxC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;gBAEvC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO;oBAAE,qBAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBAEtE,OAAO;YACT,CAAC;YAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;YAExC,IAAI,GAAG,GAAW,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,yBAAyB,CAAC;YAEjE,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC/E,GAAG,IAAI,0BAA0B,CAAC;YACpC,CAAC;YAED,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACnF,GAAG,IAAI,6BAA6B,CAAC;YACvC,CAAC;YAED,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACrF,GAAG,IAAI,8BAA8B,CAAC;YACxC,CAAC;YAED,qBAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAE1C,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;gBAEzD,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;gBACvE,iBAAiB,EAAE;oBACjB,eAAe,EAAE,IAAI,CAAC,eAAe;oBACrC,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,aAAa,EAAE;wBACb,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE;wBACzC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE;wBACnD,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,EAAE;wBACvD,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,UAAU,EAAE;qBAC1D;iBACF;gBACD,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,EAAE;aAChD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,KAAK,CAAC;gBAEhD,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,mBAAmB;aAC3E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAES,4BAA4B;QACpC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAU,EAAO,EAAE;YAClD,IAAI,KAAK,YAAY,uBAAU,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC,kBAAkB,EAAE,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAiB;QAC1B,IAAI,CAAC;YACH,qBAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAExC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAEnB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAEjB,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACtC,qBAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;oBAEzC,IAAI,QAAQ,GAAW,CAAC,CAAC;oBAEzB,OACE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO;wBACrC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM;wBAC5B,QAAQ,EAAE,GAAG,EAAE,EACf,CAAC;wBACD,qBAAQ,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;wBACnD,MAAM,uBAAU,CAAC,IAAI,CAAC,mBAAM,CAAC,CAAC;oBAChC,CAAC;oBACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;oBAE7C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAClB,MAAM,uBAAU,CAAC,YAAY,CAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EACjC,KAAK,EAAE,SAAS,EAAiB,EAAE;4BACjC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;wBACvC,CAAC,CACF,CAAC;wBAEF,MAAM,UAAU,GAAkB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAQ,EAAE;4BAC9D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,eAAe,EAAE,GAAS,EAAE;gCACtD,OAAO,EAAE,CAAC;4BACZ,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,CAAC;wBAEH,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;wBACjC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;wBACvC,MAAM,UAAU,CAAC;wBAEjB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;wBAE9C,OACE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,KAAK,CAAC;4BACzC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAC5B,CAAC;4BACD,qBAAQ,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;4BACvD,MAAM,uBAAU,CAAC,IAAI,CAAC,mBAAM,CAAC,CAAC;wBAChC,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,qBAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;oBAC1C,CAAC;oBACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;gBAC5C,CAAC;gBAED,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;oBACxC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;oBAE/C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;wBACpB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAQ,EAAE;4BAClC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACjC,CAAC,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,qBAAQ,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;oBAC7C,CAAC;oBACD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC;gBAC9C,CAAC;gBAED,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;oBACzC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;oBAEhD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;wBACrB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAQ,EAAE;4BAClC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBAClC,CAAC,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,qBAAQ,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;oBAC9C,CAAC;oBACD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC;gBAC/C,CAAC;gBAED,MAAM,uBAAU,CAAC,IAAI,CAAC,mBAAM,CAAC,CAAC;gBAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,qBAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,yBAAyB,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC;gBAE/C,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,kBAAkB;aAC1E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO;QACnB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO;YAAE,qBAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;aAC3D,IAAI,IAAI,CAAC,QAAQ;YAAE,qBAAQ,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAEpE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBAE5E,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;aACzE,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBAEjF,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;aACzE,CAAC,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC9E,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBAE1F,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;aACzE,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,OAAO,CACf,CAAC,OAAO,EAAE,MAAM,EAAQ,EAAE;gBACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;gBAEzC,IAAI,CAAC,QAAQ,CAAC,UAAU;qBACrB,IAAI,CAAC,MAAM,EAAE,GAAS,EAAE;oBACvB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;oBAC5C,qBAAQ,CAAC,OAAO,CAAC,2BAA2B,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC;oBAErE,OAAO,EAAE,CAAC;oBAEV,uFAAuF;oBACvF,sFAAsF;oBACtF,yFAAyF;oBACzF,0FAA0F;oBAC1F,2FAA2F;oBAC3F,wDAAwD;oBACxD,MAAM,eAAe,GAAkC,UAAU,CAAC,GAAS,EAAE;wBAC3E,KAAK,IAAI,CAAC,0BAA0B,EAAE,CAAC;oBACzC,CAAC,EAAE,KAAK,CAAC,CAAC;oBACV,IAAI,OAAO,eAAe,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;wBAAC,eAAe,CAAC,KAAK,EAAE,CAAC;oBAAC,CAAC;gBAC/E,CAAC,CAAC;qBACD,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAQ,EAAE;oBAC3B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;wBAC1C,qCAAqC;wBACrC,uEAAuE;wBACvE,6DAA6D;wBAC7D,oEAAoE;wBACpE,gEAAgE;wBAChE,sEAAsE;wBACtE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;wBAE1C,MAAM,OAAO,GAAe,IAAI,uBAAU,CAAC;4BACzC,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,KAAK,CAAC;4BAElD,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;4BACxE,OAAO,EAAE,wCAAwC,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK;gCACtE,UAAU,KAAK,EAAE;4BACnB,KAAK,EAAE,4BAAe,CAAC,OAAO;yBAC/B,CAAC,CAAC;wBAEH,qBAAQ,CAAC,OAAO,CACd,0CAA0C,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI;4BAChE,+CAA+C;4BAC/C,sEAAsE,CACvE,CAAC;wBAEF,IAAI,IAAI,CAAC,QAAQ;4BAAE,qBAAQ,CAAC,OAAO,CACjC,2BAA2B,EAC3B,KAAK,CACN,CAAC;wBAEF,oCAAmB,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC;wBAElD,OAAO,EAAE,CAAC;oBAEZ,CAAC;yBAAM,CAAC;wBACN,IAAI,IAAI,CAAC,QAAQ;4BAAE,qBAAQ,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;wBAE9D,MAAM,OAAO,GAAe,IAAI,uBAAU,CAAC;4BACzC,GAAG,IAAI,CAAC,wBAAwB,CAAC,+BAA+B,EAAE,KAAK,CAAC;4BAExE,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;4BACxE,OAAO,EAAE,kBAAkB,KAAK,EAAE;4BAClC,KAAK,EAAE,4BAAe,CAAC,QAAQ;yBAChC,CAAC,CAAC;wBAEH,oCAAmB,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEL,IAAI,CAAC;oBACH,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB,IAAI,CAAC,OAAO,CAAC,SAAS;oBACtB;;wBAEI;qBACL,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,uBAAU,CAAC;wBACnB,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,KAAK,CAAC;wBAElD,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;qBACzE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,KAAK,CAAC;gBAElD,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;aACzE,CAAC,CAAC;QACL,CAAC;QAED,uFAAuF;QACvF,6FAA6F;QAC7F,6FAA6F;QAC7F,0FAA0F;QAC1F,6FAA6F;QAC7F,6FAA6F;QAC7F,6EAA6E;QAC7E,IAAI,CAAC;YACH,IAAA,qDAAwB,EAAC;gBACvB,aAAa,EAAE,GAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU;gBAChE,SAAS,EAAE,KAAK,IAAmB,EAAE;oBACnC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAS,EAAE,CAAC,SAAS,CAAC,CAAC;oBAC9D,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC1E,CAAC;gBACD,GAAG,EAAE,CAAC,GAAW,EAAQ,EAAE,CAAC,qBAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;aAC/C,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,qBAAQ,CAAC,IAAI,CAAC,wDAAwD,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3I,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,KAAK,CAAC,0BAA0B;QACtC,IAAI,CAAC;YACH,MAAM,QAAQ,GAA2B,oCAAmB,CAAC,gBAAgB,EAAE,CAAC;YAChF,IAAI,OAAO,GAAW,CAAC,CAAC;YAExB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAuB,IAAA,4CAA+B,EAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;gBACvG,IAAI,CAAC,UAAU,EAAE,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBAE9B,MAAM,QAAQ,GAAW,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;gBACrD,kGAAkG;gBAClG,MAAM,UAAU,GACb,OAAO,EAAE,SAAkE,EAAE,UAAU,CAAC;gBAC3F,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBAE9E,IAAI,CAAC;oBACH,MAAM,MAAM,GAAyB,MAAM,SAAS,CAAC,uBAAuB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;oBACrG,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;wBACzB,OAAO,EAAE,CAAC;wBACV,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;4BAClB,qBAAQ,CAAC,OAAO,CACd,4CAA4C,QAAQ,MAAM;gCAC1D,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,UAAU,IAAI,CACtD,CAAC;wBACJ,CAAC;oBACH,CAAC;yBAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;wBAChC,6FAA6F;wBAC7F,qBAAQ,CAAC,IAAI,CACX,uBAAuB,QAAQ,kEAAkE;4BACjG,YAAY,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,UAAU,0CAA0C;4BACpG,+CAA+C,CAChD,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,MAAe,EAAE,CAAC;oBACzB,qBAAQ,CAAC,IAAI,CACX,oCAAoC,QAAQ,wBAAwB;wBACpE,GAAG,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAC/D,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,qBAAQ,CAAC,OAAO,CAAC,sBAAsB,OAAO,iDAAiD,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,qBAAQ,CAAC,IAAI,CACX,uDAAuD;gBACvD,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACtD,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAClC,UAAoC,EACpC,UAAkB;QAElB,MAAM,YAAY,GAAyB,OAAO,UAAU,CAAC,OAAO,KAAK,UAAU;YACjF,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAyB,EAAE,CAAC,EAAE,CAAC;YAClE,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,QAAQ,GACZ,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC;QAE1E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC,CAAC;YACnF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,QAAQ,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;YAC/C,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,sGAAsG;QACtG,2GAA2G;QAC3G,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa;QACzB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO;YAAE,qBAAQ,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAEtE,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,yCAAmB,CAAC,MAAM,EAAE,CAAC;gBACpE,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACtF,IAAI,QAAQ,GACV,kDAAkD;wBAClD,eAAe,IAAI,CAAC,eAAe,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,yCAAmB,CAAC,MAAM,CAC9C,CAAC,MAAM,mBAAmB;wBAC3B,oBAAoB,IAAI,CAAC,SAAS,EAAE;wBACpC,mFAAmF,CAAC;oBAEtF,QAAQ,IAAI,2CAA2C,CAAC;oBACxD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,MAA2B,EAAQ,EAAE;wBACjE,IAAI,MAAM,CAAC,QAAQ,IAAI,yCAAmB,CAAC,MAAM,EAAE,CAAC;4BAClD,QAAQ,IAAI,OAAO,MAAM,CAAC,KAAK,eAAe,MAAM,CAAC,QAAQ,GAAG,CAAC;4BACjE,QAAQ,IAAI,iCAAiC,CAAC;4BAC9C,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAA+B,EAAQ,EAAE;gCACjE,IAAI,QAAQ,CAAC,QAAQ,IAAI,yCAAmB,CAAC,MAAM,EAAE,CAAC;oCACpD,QAAQ,IAAI,SAAS,QAAQ,CAAC,QAAQ,eAAe,QAAQ,CAAC,QAAQ,GAAG,CAAC;gCAC5E,CAAC;4BACH,CAAC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC,CAAC,CAAC;oBAEH,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;oBAC3E,MAAM,UAAU,GAAa,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAErD,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACxB,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAEpC,qBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAEzB,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/B,CAAC;YAED,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,yCAAmB,CAAC,IAAI,EAAE,CAAC;gBAClE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;oBACjD,IAAI,QAAQ,GACV,iFAAiF;wBACjF,eAAe,IAAI,CAAC,eAAe,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,yCAAmB,CAAC,IAAI,CAC3D,CAAC,MAAM,gBAAgB;wBACxB,oBAAoB,IAAI,CAAC,SAAS,EAAE;wBACpC,UAAU;wBACV,4BAA4B;wBAC5B;;;;oCAIY;wBACZ,oEAAoE,CAAC;oBAEvE,QAAQ,IAAI,6CAA6C,CAAC;oBAC1D,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,MAA2B,EAAQ,EAAE;wBACjE,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,yCAAmB,CAAC,IAAI,EAAE,CAAC;4BACpE,QAAQ,IAAI,OAAO,MAAM,CAAC,KAAK,eAAe,MAAM,CAAC,QAAQ,GAAG,CAAC;4BACjE,QAAQ,IAAI,mBAAmB,MAAM,CAAC,aAAa,EAAE,CAAC;4BACtD,QAAQ,IAAI,qCAAqC,CAAC;4BAClD,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAA+B,EAAQ,EAAE;gCACjE,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,yCAAmB,CAAC,IAAI,EAAE,CAAC;oCACxE,QAAQ,IAAI,WAAW,QAAQ,CAAC,QAAQ,eAAe,QAAQ,CAAC,QAAQ,GAAG,CAAC;oCAC5E,QAAQ,IAAI,uBAAuB,QAAQ,CAAC,aAAa,EAAE,CAAC;gCAC9D,CAAC;4BACH,CAAC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC,CAAC,CAAC;oBAEH,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,yCAAyC,QAAQ,EAAE,CAAC,CAAC;oBAC7E,MAAM,UAAU,GAAa,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAErD,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACxB,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAEpC,qBAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAEzB,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,wBAAwB,CAAC,eAAe,EAAE,KAAK,CAAC;gBAExD,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;aACxE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,eAAe;QAC7B,IAAI,IAAI,CAAC,MAAM;YAAE,qBAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,GAAG,qBAAQ,CAAC,CAAC,CAAC,4BAA4B;QAClF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnE,iGAAiG;QACjG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,qFAAqF;QACrF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,iBAAiB;QAC/B,IAAI,IAAI,CAAC,MAAM;YAAE,qBAAQ,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,GAAG,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QACtE,gFAAgF;QAChF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9C,8DAA8D;QAC9D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEnC,MAAM,OAAO,GAAG;YACd,GAAG,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YAChD,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YAClD,aAAa,EAAE,EAAE,GAAG,qBAAQ,EAAE,4BAA4B;SAC3D,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc;QAC1B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO;YAAE,qBAAQ,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAEvE,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,yCAAmB,CAAC,IAAI,EAAE,CAAC;gBAClE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAQ,EAAE;oBAChD,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;oBAC5C,IAAI,CAAC,WAAW;yBACb,MAAM,CACL,IAAI,CAAC,aAAa,CAAC,SAAS,EAC5B,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,IAAI,CAAC,MAAM,CAAC,cAAc,EAC1B,GAAS,EAAE;wBACT,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;wBAC/C,qBAAQ,CAAC,OAAO,CACd,gDAAgD;4BAC9C,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAC9D,CAAC;wBAEJ,OAAO,EAAE,CAAC;oBACZ,CAAC,CAAC;yBACD,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAQ,EAAE;wBAC3B,IAAI,IAAI,CAAC,QAAQ;4BAAE,qBAAQ,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;wBAE1E,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;4BAC7C,MAAM,OAAO,GAAe,IAAI,uBAAU,CAAC;gCACzC,GAAG,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,EAAE,KAAK,CAAC;gCAEzD,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;gCACvE,OAAO,EAAE,mCAAmC;6BAC7C,CAAC,CAAC;4BAEH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACnC,oCAAmB,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC;4BAElD,MAAM,CAAC,OAAO,CAAC,CAAC;wBAElB,CAAC;6BAAM,CAAC;4BACN,MAAM,OAAO,GAAe,IAAI,uBAAU,CAAC;gCACzC,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,EAAE,KAAK,CAAC;gCAEhE,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;gCACvE,OAAO,EAAE,6BAA6B;gCACtC,KAAK,EAAE,4BAAe,CAAC,OAAO;6BAC/B,CAAC,CAAC;4BAEH,oCAAmB,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC;wBACpD,CAAC;oBACH,CAAC,CAAC;yBACD,EAAE,CAAC,mBAAmB,EAAE,CAAC,SAAS,EAAQ,EAAE;wBAC3C,MAAM,OAAO,GAAe,IAAI,uBAAU,CAAC;4BACzC,GAAG,IAAI,CAAC,wBAAwB,CAAC,mCAAmC,EAAE,SAAS,CAAC;4BAEhF,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;4BACvE,OAAO,EAAE,yCAAyC;4BAClD,KAAK,EAAE,4BAAe,CAAC,QAAQ;yBAChC,CAAC,CAAC;wBAEH,IAAI,IAAI,CAAC,QAAQ;4BAAE,qBAAQ,CAAC,IAAI,CAC9B,2CAA2C,EAC3C,OAAO,CACR,CAAC;wBAEF,oCAAmB,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC;oBACpD,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,yCAAmB,CAAC,MAAM,EAAE,CAAC;gBACpE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC3C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAQ,EAAE;oBAChD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW;yBAC/B,MAAM,CACL,IAAI,CAAC,aAAa,CAAC,QAAQ,EAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,cAAc,EAC1B,GAAS,EAAE;wBACT,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;wBAE9C,MAAM,YAAY,GAAW,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;wBAEnG,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;4BACtC,qBAAQ,CAAC,MAAM,CACb,qEAAqE,YAAY,EAAE;gCACnF,iEAAiE,CAClE,CAAC;wBACJ,CAAC;wBAED,qBAAQ,CAAC,OAAO,CACd,6CAA6C;4BAC3C,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,YAAY,EAAE,CAC5C,CAAC;wBAEF,OAAO,EAAE,CAAC;oBACZ,CAAC,CACF;yBACA,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAQ,EAAE;wBAC3B,IAAI,IAAI,CAAC,QAAQ;4BAAE,qBAAQ,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;wBAEvE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;4BAC5C,MAAM,OAAO,GAAe,IAAI,uBAAU,CAAC;gCACzC,GAAG,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,EAAE,KAAK,CAAC;gCAEzD,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;gCACvE,OAAO,EAAE,gCAAgC;6BAC1C,CAAC,CAAC;4BAEH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BACnC,oCAAmB,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC;4BAElD,MAAM,CAAC,OAAO,CAAC,CAAC;wBAElB,CAAC;6BAAM,CAAC;4BACN,MAAM,OAAO,GAAe,IAAI,uBAAU,CAAC;gCACzC,GAAG,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,EAAE,KAAK,CAAC;gCAE/D,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;gCACvE,OAAO,EAAE,0BAA0B;gCACnC,KAAK,EAAE,4BAAe,CAAC,OAAO;6BAC/B,CAAC,CAAC;4BAEH,oCAAmB,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC;wBACpD,CAAC;oBACH,CAAC,CAAC;yBACD,EAAE,CAAC,mBAAmB,EAAE,CAAC,SAAS,EAAQ,EAAE;wBAC3C,MAAM,OAAO,GAAe,IAAI,uBAAU,CAAC;4BACzC,GAAG,IAAI,CAAC,wBAAwB,CAAC,kCAAkC,EAAE,SAAS,CAAC;4BAE/E,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;4BACvE,OAAO,EAAE,sCAAsC;4BAC/C,KAAK,EAAE,4BAAe,CAAC,QAAQ;yBAChC,CAAC,CAAC;wBAEH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;4BAClB,qBAAQ,CAAC,IAAI,CAAC,wCAAwC,EAAE,OAAO,CAAC,CAAC;wBACnE,CAAC;wBAED,oCAAmB,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,CAAC;oBACpD,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,EAAE,KAAK,CAAC;gBAEzD,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;aACxE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI;QACtD,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,OAAO,GAAe,IAAI,uBAAU,CAAC;oBACzC,GAAG,IAAI,CAAC,wBAAwB,CAAC,sBAAsB,EAAE,KAAK,CAAC;oBAE/D,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;oBACxE,OAAO,EAAE,eAAe;oBACxB,iBAAiB,EAAE;wBACjB,GAAG;wBACH,GAAG;qBACJ;oBACD,KAAK,EAAE,4BAAe,CAAC,KAAK;iBAC7B,CAAC,CAAC;gBAEH,MAAM,oCAAmB,CAAC,kBAAkB,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAElE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACjB,CAAC;iBAAM,CAAC;gBACN,qBAAQ,CAAC,OAAO,CACd,yCAAyC;oBACzC,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,GAAG,CACd,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qBAAQ,CAAC,OAAO,CACd,6CAA6C;gBAC7C,IAAI,EAAE,KAAK,CACZ,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB;QAC7B,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO;gBAAE,qBAAQ,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YAE1E,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,qCAAqC;oBACrC,0FAA0F;oBAC1F,mGAAmG;oBACnG,6DAA6D,CAC9D,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAiB,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAC3F,CAAC;YAEF,MAAM,uBAAU,CAAC,YAAY,CAC3B,IAAI,CAAC,eAAe,EACpB,KAAK,EAAE,MAA2B,EAAiB,EAAE;gBACnD,IAAI,MAAM,CAAC,QAAQ,KAAK,yCAAmB,CAAC,IAAI,EAAE,CAAC;oBACjD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAClB,qBAAQ,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;oBACxD,CAAC;oBAED,MAAM,cAAc,GAA0B,IAAI,CAAC,eAAe,CAAC,MAAM,CACvE,CAAC,GAAwB,EAAW,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAClE,CAAC;oBAEF,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC;wBAC9B,MAAM,KAAK,GAAU,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;wBACrE;;;+DAGuC;wBACvC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC;wBAEnC,qBAAQ,CAAC,OAAO,CAAC,sBAAsB,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;wBAE9D,MAAM,IAAI,uBAAU,CAAC;4BACnB,GAAG,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,EAAE,KAAK,CAAC;4BAE5D,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;4BACxE,OAAO,EAAE,sBAAsB,MAAM,CAAC,KAAK,EAAE;yBAC9C,CAAC,CAAC;oBACL,CAAC;oBAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,EAAE,KAAK,CAAC;gBAE5D,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;aACzE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe;QAC3B,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO;gBAAE,qBAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YAExE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CACb,mFAAmF;oBACnF,gGAAgG,CACjG,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAClB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAiB,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAC3F,CAAC;YAEF,MAAM,uBAAU,CAAC,YAAY,CAC3B,IAAI,CAAC,eAAe,EACpB,KAAK,EAAE,MAA2B,EAAiB,EAAE;gBACnD,IAAI,MAAM,CAAC,QAAQ,KAAK,yCAAmB,CAAC,MAAM,EAAE,CAAC;oBACnD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAClB,qBAAQ,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;oBACtD,CAAC;oBAED,MAAM,cAAc,GAA0B,IAAI,CAAC,eAAe,CAAC,MAAM,CACvE,CAAC,GAAwB,EAAW,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAClE,CAAC;oBAEF,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC;wBAC9B,MAAM,KAAK,GAAU,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;wBACrE;;;+DAGuC;wBACvC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC;wBAEnC,qBAAQ,CAAC,OAAO,CAAC,sBAAsB,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;wBAE9D,MAAM,IAAI,uBAAU,CAAC;4BACnB,GAAG,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,KAAK,CAAC;4BAE1D,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;4BACxE,OAAO,EAAE,sBAAsB,MAAM,CAAC,KAAK,EAAE;yBAC9C,CAAC,CAAC;oBACL,CAAC;oBAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,uBAAU,CAAC;gBACnB,GAAG,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,KAAK,CAAC;gBAE1D,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;aACzE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH;;;;;OAKG;IACO,oBAAoB,CAAC,OAA4B;QACzD,MAAM,QAAQ,GAA+C,6CAAqB,CAAC,eAAe,CAAC;QACnG,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,CAAC,eAAe,KAAK,KAAK,EAAE,CAAC;YACvC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAA,6DAAqC,EAC/C,QAAQ,EACR,IAAA,6DAA6B,GAAE,CAAC,WAAW,CAC5C,CAAC,CAAC;IACL,CAAC;IAES,SAAS,CAAC,OAA4B;QAC9C,MAAM,QAAQ,GAAoC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QAC3E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAY,QAAQ,CAAC,gBAAgB,KAAK,KAAK,CAAC;QAChE,MAAM,OAAO,GAAa,QAAQ,CAAC,cAAc,IAAI;YACnD,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS;SACnD,CAAC;QACF,MAAM,OAAO,GAAa,QAAQ,CAAC,cAAc,IAAI;YACnD,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB;SACnE,CAAC;QACF,MAAM,OAAO,GAAa,QAAQ,CAAC,cAAc,IAAI;YACnD,gBAAgB,EAAE,cAAc;SACjC,CAAC;QACF,MAAM,MAAM,GAAW,QAAQ,CAAC,aAAa,IAAI,KAAK,CAAC;QAEvD,MAAM,SAAS,GAAgC,CAAC,MAAc,EAAW,EAAE;YACzE,IAAI,QAAQ,CAAC,cAAc,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;YACjD,IAAI,OAAO,QAAQ,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;gBAClD,OAAO,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,CAAC,GAAoB,EAAE,GAAqB,EAAE,IAA0B,EAAQ,EAAE;YAC5F,MAAM,MAAM,GAAuB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;YACtD,IAAI,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,0EAA0E;gBAC1E,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;gBACrD,IAAI,UAAU,EAAE,CAAC;oBACf,GAAG,CAAC,SAAS,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;gBAC5D,CAAC;gBACD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClE,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClE,GAAG,CAAC,SAAS,CAAC,+BAA+B,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnE,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxD,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC7B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,qBAAqB;QACjC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,EAAE,yCAAmB,CAAC,IAAI,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,EAAE,yCAAmB,CAAC,MAAM,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,qBAAQ,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,iBAAiB;QAC7B,MAAM,QAAQ,GAA4C,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC;QAC3F,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAW,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;YACzD,CAAC,CAAC,QAAQ,CAAC,IAAI;YACf,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,aAAa,GACjB,QAAQ,CAAC,gBAAgB,KAAK,SAAS,IAAI,QAAQ,CAAC,mBAAmB,KAAK,IAAI,CAAC;QACnF,MAAM,aAAa,GACjB,aAAa,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS;YACtD,CAAC,CAAC;gBACE,UAAU,EAAE,CAAC,GAAqB,EAAE,QAAgB,EAAQ,EAAE;oBAC5D,0EAA0E;oBAC1E,gGAAgG;oBAChG,GAAG,CAAC,SAAS,CACX,eAAe,EACf,IAAA,iEAAqC,EAAC;wBACpC,QAAQ,EAAE,QAAQ;wBAClB,gBAAgB,EAAE,QAAQ,CAAC,gBAAiB;wBAC5C,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB,KAAK,IAAI;qBAC3D,CAAC,CACH,CAAC;gBACJ,CAAC;aACF;YACH,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,gBAAgB,GACpB,aAAa;YACX,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC;YAC7C,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAEnC,MAAM,cAAc,GAClB,QAAQ,CAAC,mBAAmB,IAAI,uEAAgC,CAAC;QAEnE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;YAC5C,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;gBAC1B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAoB,EAAE,GAAqB,EAAQ,EAAE;oBAC9E,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,WAAW,cAAc,EAAE,CAAC,CAAC;oBAC5D,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAa,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBAC/D,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAoB,EAAE,GAAqB,EAAQ,EAAE;oBAC9E,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,4DAA6B,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;YAC9C,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;gBAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAoB,EAAE,GAAqB,EAAQ,EAAE;oBAChF,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,WAAW,cAAc,EAAE,CAAC,CAAC;oBAC5D,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAa,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBAC/D,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAoB,EAAE,GAAqB,EAAQ,EAAE;oBAChF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,4DAA6B,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,qBAAQ,CAAC,GAAG,CAAC,uCAAuC,YAAY,GAAG,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,WAAW;QACjB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO;YAAE,qBAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACpE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,MAA2B,EAAQ,EAAE;YACjE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrB,qBAAQ,CAAC,IAAI,CAAC,yCAAyC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YAE3E,CAAC;iBAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;YAEnC,CAAC;iBAAM,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC9C,IAAI,CAAC,SAAS,GAAG,yCAAmB,CAAC,IAAI,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,GAAG,GAAG,2CAA2C,IAAI,CAAC,QAAQ,GAAG,CAAC;YAEtE,GAAG,IAAI,qBAAqB,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,MAA2B,EAAQ,EAAE;gBACjE,GAAG,IAAI,SAAS,MAAM,CAAC,KAAK,eAAe,MAAM,CAAC,QAAQ,GAAG,CAAC;YAChE,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,GAAG,IAAI,oCAAoC,CAAC;YAC9C,CAAC;YACD,qBAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,wBAAwB,CAC9B,MAAc,EACd,KAAoB;QAEpB,OAAO;YACL,MAAM,EAAG,KAAoB,EAAE,SAAS,IAAI,GAAG;YAC/C,OAAO,EAAG,KAAe,EAAE,OAAO;gBAC/B,KAAoB,EAAE,QAAQ;gBAC/B,GAAG,MAAM,yBAAyB;YACpC,WAAW,EAAG,KAAoB,EAAE,aAAa,IAAI,IAAI,CAAC,mBAAmB;YAC7E,cAAc,EAAE,CAAE,KAAoB,EAAE,aAAa;YACrD,aAAa,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,IAAI,YAAY;YACrD,KAAK,EAAE,4BAAe,CAAC,KAAK;YAC5B,KAAK,EAAE,KAAK;YACZ,aAAa,EAAE,6CAAqB,CAAC,aAAa;SACnD,CAAC;IACJ,CAAC;CAgFF;AApoDD,8BAooDC"}
package/build/index.d.ts CHANGED
@@ -17,6 +17,8 @@ export * from './_models/interfaces/global-settings.interface';
17
17
  export * from './_models/interfaces/routing-module-settings.interface';
18
18
  export * from './_models/interfaces/static-client-settings.interface';
19
19
  export * from './_models/interfaces/cors-settings.interface';
20
+ export * from './_models/interfaces/security-headers-settings.interface';
21
+ export * from './_collections/security-headers.util';
20
22
  export * from './_models/control-models/api-call-params.control-model';
21
23
  export * from './_models/control-models/app-ext-system-controls.control-model';
22
24
  export * from './_models/control-models/app-params.control-model';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA2BA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qDAAqD,CAAC;AACpE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,sCAAsC,CAAC;AAIrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAK7C,mEAAmE;AACnE,cAAc,uDAAuD,CAAC;AACtE,cAAc,qDAAqD,CAAC;AACpE,cAAc,wDAAwD,CAAC;AACvE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wDAAwD,CAAC;AACvE,cAAc,uDAAuD,CAAC;AACtE,cAAc,8CAA8C,CAAC;AAG7D,cAAc,wDAAwD,CAAC;AACvE,cAAc,gEAAgE,CAAA;AAC9E,cAAc,mDAAmD,CAAC;AAClE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,wDAAwD,CAAC;AACvE,cAAc,sDAAsD,CAAC;AACrE,cAAc,uDAAuD,CAAC;AAGtE,cAAc,gCAAgC,CAAC;AAK/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oDAAoD,CAAC;AACnE,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AAEtD,cAAc,6CAA6C,CAAC;AAG5D,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AAGnD,cAAc,+BAA+B,CAAC;AAG9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA2BA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qDAAqD,CAAC;AACpE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,sCAAsC,CAAC;AAIrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAK7C,mEAAmE;AACnE,cAAc,uDAAuD,CAAC;AACtE,cAAc,qDAAqD,CAAC;AACpE,cAAc,wDAAwD,CAAC;AACvE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wDAAwD,CAAC;AACvE,cAAc,uDAAuD,CAAC;AACtE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0DAA0D,CAAC;AACzE,cAAc,sCAAsC,CAAC;AAGrD,cAAc,wDAAwD,CAAC;AACvE,cAAc,gEAAgE,CAAA;AAC9E,cAAc,mDAAmD,CAAC;AAClE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,wDAAwD,CAAC;AACvE,cAAc,sDAAsD,CAAC;AACrE,cAAc,uDAAuD,CAAC;AAGtE,cAAc,gCAAgC,CAAC;AAK/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oDAAoD,CAAC;AACnE,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AAEtD,cAAc,6CAA6C,CAAC;AAG5D,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AAGnD,cAAc,+BAA+B,CAAC;AAG9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,mCAAmC,CAAC"}
package/build/index.js CHANGED
@@ -46,6 +46,8 @@ tslib_1.__exportStar(require("./_models/interfaces/global-settings.interface"),
46
46
  tslib_1.__exportStar(require("./_models/interfaces/routing-module-settings.interface"), exports);
47
47
  tslib_1.__exportStar(require("./_models/interfaces/static-client-settings.interface"), exports);
48
48
  tslib_1.__exportStar(require("./_models/interfaces/cors-settings.interface"), exports);
49
+ tslib_1.__exportStar(require("./_models/interfaces/security-headers-settings.interface"), exports);
50
+ tslib_1.__exportStar(require("./_collections/security-headers.util"), exports);
49
51
  // models/CONTROL MODELS
50
52
  tslib_1.__exportStar(require("./_models/control-models/api-call-params.control-model"), exports);
51
53
  tslib_1.__exportStar(require("./_models/control-models/app-ext-system-controls.control-model"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;IAsBI;;;AAEJ,cAAc;AACd,sEAA4C;AAC5C,wFAA8D;AAC9D,8FAAoE;AACpE,sFAA4D;AAC5D,mFAAyD;AACzD,uFAA6D;AAC7D,+EAAqD;AAGrD,QAAQ;AACR,wEAA8C;AAC9C,8EAAoD;AACpD,8EAAoD;AACpD,uEAA6C;AAG7C,6CAA6C;AAE7C,mEAAmE;AACnE,gGAAsE;AACtE,8FAAoE;AACpE,iGAAuE;AACvE,yFAA+D;AAC/D,iGAAuE;AACvE,gGAAsE;AACtE,uFAA6D;AAE7D,wBAAwB;AACxB,iGAAuE;AACvE,yGAA8E;AAC9E,4FAAkE;AAClE,qGAA2E;AAC3E,iGAAuE;AACvE,+FAAqE;AACrE,gGAAsE;AAEtE,eAAe;AACf,yEAA+C;AAG/C,WAAW;AACX,gBAAgB;AAChB,uEAA6C;AAC7C,wEAA8C;AAE9C,yEAA+C;AAC/C,6FAAmE;AACnE,0EAAgD;AAChD,gFAAsD;AAEtD,sFAA4D;AAE5D,gBAAgB;AAChB,4EAAkD;AAClD,gFAAsD;AACtD,wEAA8C;AAC9C,sEAA4C;AAC5C,kFAAwD;AACxD,6EAAmD;AAEnD,kBAAkB;AAClB,wEAA8C;AAE9C,iBAAiB;AACjB,+EAAqD;AACrD,mFAAyD;AAEzD,kBAAkB;AAClB,4EAAkD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;IAsBI;;;AAEJ,cAAc;AACd,sEAA4C;AAC5C,wFAA8D;AAC9D,8FAAoE;AACpE,sFAA4D;AAC5D,mFAAyD;AACzD,uFAA6D;AAC7D,+EAAqD;AAGrD,QAAQ;AACR,wEAA8C;AAC9C,8EAAoD;AACpD,8EAAoD;AACpD,uEAA6C;AAG7C,6CAA6C;AAE7C,mEAAmE;AACnE,gGAAsE;AACtE,8FAAoE;AACpE,iGAAuE;AACvE,yFAA+D;AAC/D,iGAAuE;AACvE,gGAAsE;AACtE,uFAA6D;AAC7D,mGAAyE;AACzE,+EAAqD;AAErD,wBAAwB;AACxB,iGAAuE;AACvE,yGAA8E;AAC9E,4FAAkE;AAClE,qGAA2E;AAC3E,iGAAuE;AACvE,+FAAqE;AACrE,gGAAsE;AAEtE,eAAe;AACf,yEAA+C;AAG/C,WAAW;AACX,gBAAgB;AAChB,uEAA6C;AAC7C,wEAA8C;AAE9C,yEAA+C;AAC/C,6FAAmE;AACnE,0EAAgD;AAChD,gFAAsD;AAEtD,sFAA4D;AAE5D,gBAAgB;AAChB,4EAAkD;AAClD,gFAAsD;AACtD,wEAA8C;AAC9C,sEAA4C;AAC5C,kFAAwD;AACxD,6EAAmD;AAEnD,kBAAkB;AAClB,wEAA8C;AAE9C,iBAAiB;AACjB,+EAAqD;AACrD,mFAAyD;AAEzD,kBAAkB;AAClB,4EAAkD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@futdevpro/nts-dynamo",
3
- "version": "01.15.88",
3
+ "version": "01.15.89",
4
4
  "description": "Dynamic NodeTS (NodeJS-Typescript), MongoDB Backend System Framework by Future Development Program Ltd.",
5
5
  "DyBu_settings": {
6
6
  "packageType": "server-package",
@@ -74,6 +74,14 @@ export const DyNTS_global_settings: DyNTS_Global_Settings = {
74
74
  maxChunkCount: 1000,
75
75
  },
76
76
 
77
+ // BFR-MASTERPROMPTER-011 / SEC-R2-8 — security response-headerek default-ON (safe-by-default
78
+ // készlet: x-powered-by removal + SAMEORIGIN + nosniff + strict-origin-when-cross-origin;
79
+ // HSTS AUTO csak prod-on; CSP opt-in). Per-app tweak az overrideDynamoNTSGlobalSettings()-ben.
80
+ securityHeaders: {
81
+ enabled: true,
82
+ removePoweredBy: true,
83
+ },
84
+
77
85
  // FR-193 — bedrock OOM korai-figyelmeztető heap-watchdog. Default-on: minden nts-szerver
78
86
  // megkapja a heap-nyomás-figyelést a base App startup-ban (lásd DyNTS_MemoryGuard). Csak
79
87
  // MEGFIGYELÉS + tartós rögzítés a near-OOM küszöböknél — nem változtat a viselkedésen.
@@ -0,0 +1,98 @@
1
+ import { DyFM_EnvironmentFlag } from '@futdevpro/fsm-dynamo';
2
+
3
+ import { DyNTS_createSecurityHeadersMiddleware, DyNTS_resolveSecurityHeaders } from './security-headers.util';
4
+ import { DyNTS_SecurityHeaders_Settings } from '../_models/interfaces/security-headers-settings.interface';
5
+
6
+ describe('DyNTS_resolveSecurityHeaders', () => {
7
+ // AAA: Arrange-Act-Assert
8
+
9
+ it('| defaults: pontosan a safe-készlet (3 header), HSTS NÉLKÜL test env-en', () => {
10
+ const headers = DyNTS_resolveSecurityHeaders({ enabled: true }, DyFM_EnvironmentFlag.test);
11
+
12
+ expect(headers['X-Frame-Options']).toBe('SAMEORIGIN');
13
+ expect(headers['X-Content-Type-Options']).toBe('nosniff');
14
+ expect(headers['Referrer-Policy']).toBe('strict-origin-when-cross-origin');
15
+ expect(headers['Strict-Transport-Security']).toBeUndefined();
16
+ expect(headers['Content-Security-Policy']).toBeUndefined();
17
+ expect(Object.keys(headers).length).toBe(3);
18
+ });
19
+
20
+ it('| prod env → HSTS AUTO-on a default max-age + includeSubDomains értékkel', () => {
21
+ const headers = DyNTS_resolveSecurityHeaders({ enabled: true }, DyFM_EnvironmentFlag.prod);
22
+
23
+ expect(headers['Strict-Transport-Security']).toBe('max-age=15768000; includeSubDomains');
24
+ });
25
+
26
+ it('| explicit hsts.enabled=true → HSTS test env-en IS (+preload flag)', () => {
27
+ const headers = DyNTS_resolveSecurityHeaders(
28
+ { enabled: true, hsts: { enabled: true, maxAgeSeconds: 300, includeSubDomains: false, preload: true } },
29
+ DyFM_EnvironmentFlag.test,
30
+ );
31
+
32
+ expect(headers['Strict-Transport-Security']).toBe('max-age=300; preload');
33
+ });
34
+
35
+ it('| hsts: false → prod-on SINCS HSTS', () => {
36
+ const headers = DyNTS_resolveSecurityHeaders({ enabled: true, hsts: false }, DyFM_EnvironmentFlag.prod);
37
+
38
+ expect(headers['Strict-Transport-Security']).toBeUndefined();
39
+ });
40
+
41
+ it('| csp string → Content-Security-Policy; cspReportOnly → Report-Only header-név', () => {
42
+ const csp: string = "default-src 'self'";
43
+ const normal = DyNTS_resolveSecurityHeaders({ enabled: true, csp: csp }, DyFM_EnvironmentFlag.test);
44
+ const reportOnly = DyNTS_resolveSecurityHeaders(
45
+ { enabled: true, csp: csp, cspReportOnly: true },
46
+ DyFM_EnvironmentFlag.test,
47
+ );
48
+
49
+ expect(normal['Content-Security-Policy']).toBe(csp);
50
+ expect(reportOnly['Content-Security-Policy']).toBeUndefined();
51
+ expect(reportOnly['Content-Security-Policy-Report-Only']).toBe(csp);
52
+ });
53
+
54
+ it('| per-header false → kimarad; permissionsPolicy opt-in string → jelen', () => {
55
+ const headers = DyNTS_resolveSecurityHeaders(
56
+ { enabled: true, frameOptions: false, referrerPolicy: false, permissionsPolicy: 'camera=()' },
57
+ DyFM_EnvironmentFlag.test,
58
+ );
59
+
60
+ expect(headers['X-Frame-Options']).toBeUndefined();
61
+ expect(headers['Referrer-Policy']).toBeUndefined();
62
+ expect(headers['Permissions-Policy']).toBe('camera=()');
63
+ expect(headers['X-Content-Type-Options']).toBe('nosniff');
64
+ });
65
+
66
+ it('| additionalHeaders merge (felülírással)', () => {
67
+ const headers = DyNTS_resolveSecurityHeaders(
68
+ { enabled: true, additionalHeaders: { 'X-Custom': 'v1', 'X-Frame-Options': 'DENY' } },
69
+ DyFM_EnvironmentFlag.test,
70
+ );
71
+
72
+ expect(headers['X-Custom']).toBe('v1');
73
+ expect(headers['X-Frame-Options']).toBe('DENY');
74
+ });
75
+
76
+ it('| enabled: false → üres map', () => {
77
+ const headers = DyNTS_resolveSecurityHeaders({ enabled: false, csp: 'x' }, DyFM_EnvironmentFlag.prod);
78
+
79
+ expect(Object.keys(headers).length).toBe(0);
80
+ });
81
+ });
82
+
83
+ describe('DyNTS_createSecurityHeadersMiddleware', () => {
84
+ it('| a middleware minden resolvelt headert setHeader-öl és next()-et hív', () => {
85
+ const settings: DyNTS_SecurityHeaders_Settings = { enabled: true };
86
+ const middleware = DyNTS_createSecurityHeadersMiddleware(settings, DyFM_EnvironmentFlag.test);
87
+
88
+ const setHeaderCalls: [string, string][] = [];
89
+ const res: any = { setHeader: (k: string, v: string): void => { setHeaderCalls.push([k, v]); } };
90
+ let nextCalled: boolean = false;
91
+
92
+ middleware({} as any, res, ((): void => { nextCalled = true; }) as any);
93
+
94
+ expect(nextCalled).toBe(true);
95
+ expect(setHeaderCalls.length).toBe(3);
96
+ expect(setHeaderCalls.map((c: [string, string]): string => c[0])).toContain('X-Frame-Options');
97
+ });
98
+ });
@@ -0,0 +1,96 @@
1
+ import * as Express from 'express';
2
+
3
+ import { DyFM_EnvironmentFlag } from '@futdevpro/fsm-dynamo';
4
+
5
+ import { DyNTS_SecurityHeaders_Settings } from '../_models/interfaces/security-headers-settings.interface';
6
+
7
+ /**
8
+ * A security response-headerek TISZTA (Express-mentes, unit-tesztelhető) resolvere
9
+ * (BFR-MASTERPROMPTER-011 / SEC-R2-8). A `DyNTS_App.mountSecurityHeaders` ebből épít middleware-t.
10
+ *
11
+ * **HSTS AUTO-env-gate**: ha a `hsts` beállítás nem explicit, CSAK prod environment-en emittálunk
12
+ * (a test-környezeti sticky-HSTS elkerülésére); explicit `hsts.enabled` felülbírálja mindkét irányba.
13
+ */
14
+ export function DyNTS_resolveSecurityHeaders(
15
+ settings: DyNTS_SecurityHeaders_Settings,
16
+ environment: DyFM_EnvironmentFlag,
17
+ ): Record<string, string> {
18
+ const headers: Record<string, string> = {};
19
+
20
+ if (!settings.enabled) {
21
+ return headers;
22
+ }
23
+
24
+ // Clickjacking-védelem — default SAMEORIGIN.
25
+ const frameOptions: string | false = settings.frameOptions ?? 'SAMEORIGIN';
26
+ if (frameOptions) {
27
+ headers['X-Frame-Options'] = frameOptions;
28
+ }
29
+
30
+ // MIME-sniffing tiltás — default nosniff.
31
+ const contentTypeOptions: string | false = settings.contentTypeOptions ?? 'nosniff';
32
+ if (contentTypeOptions) {
33
+ headers['X-Content-Type-Options'] = contentTypeOptions;
34
+ }
35
+
36
+ // Referrer-szivárgás korlátozás — default strict-origin-when-cross-origin.
37
+ const referrerPolicy: string | false = settings.referrerPolicy ?? 'strict-origin-when-cross-origin';
38
+ if (referrerPolicy) {
39
+ headers['Referrer-Policy'] = referrerPolicy;
40
+ }
41
+
42
+ // Permissions-Policy — opt-in (app-specifikus feature-készlet).
43
+ if (settings.permissionsPolicy) {
44
+ headers['Permissions-Policy'] = settings.permissionsPolicy;
45
+ }
46
+
47
+ // HSTS — AUTO-env-gate: default CSAK prod-on; explicit enabled felülbírál.
48
+ if (settings.hsts !== false) {
49
+ const hstsExplicitlyEnabled: boolean = settings.hsts?.enabled === true;
50
+ const hstsExplicitlyDisabled: boolean = settings.hsts?.enabled === false;
51
+ const hstsAutoOn: boolean = environment === DyFM_EnvironmentFlag.prod;
52
+
53
+ if (!hstsExplicitlyDisabled && (hstsExplicitlyEnabled || hstsAutoOn)) {
54
+ const maxAge: number = settings.hsts?.maxAgeSeconds ?? 15768000;
55
+ const includeSubDomains: string = (settings.hsts?.includeSubDomains ?? true) ? '; includeSubDomains' : '';
56
+ const preload: string = settings.hsts?.preload ? '; preload' : '';
57
+ headers['Strict-Transport-Security'] = `max-age=${maxAge}${includeSubDomains}${preload}`;
58
+ }
59
+ }
60
+
61
+ // CSP — opt-in string; a Report-Only header-név a fokozatos bevezetéshez.
62
+ if (settings.csp) {
63
+ const cspHeaderName: string = settings.cspReportOnly
64
+ ? 'Content-Security-Policy-Report-Only'
65
+ : 'Content-Security-Policy';
66
+ headers[cspHeaderName] = settings.csp;
67
+ }
68
+
69
+ // Tetszőleges további headerek (merge, felülírással).
70
+ if (settings.additionalHeaders) {
71
+ for (const [key, value] of Object.entries(settings.additionalHeaders)) {
72
+ headers[key] = value;
73
+ }
74
+ }
75
+
76
+ return headers;
77
+ }
78
+
79
+ /**
80
+ * Express-middleware factory a resolvelt headerekből. A headereket boot-kor EGYSZER resolvoljuk
81
+ * (a settings boot után nem változik), a middleware kérésenként csak setHeader-öl.
82
+ */
83
+ export function DyNTS_createSecurityHeadersMiddleware(
84
+ settings: DyNTS_SecurityHeaders_Settings,
85
+ environment: DyFM_EnvironmentFlag,
86
+ ): Express.Handler {
87
+ const resolvedHeaders: Record<string, string> = DyNTS_resolveSecurityHeaders(settings, environment);
88
+ const headerEntries: [string, string][] = Object.entries(resolvedHeaders);
89
+
90
+ return (req: Express.Request, res: Express.Response, next: Express.NextFunction): void => {
91
+ for (const [key, value] of headerEntries) {
92
+ res.setHeader(key, value);
93
+ }
94
+ next();
95
+ };
96
+ }
@@ -1,5 +1,6 @@
1
1
  import { DyFM_EnvironmentFlag } from '@futdevpro/fsm-dynamo';
2
2
  import { DyNTS_RouteSecurity } from '../../_enums/route-security.enum';
3
+ import { DyNTS_SecurityHeaders_Settings } from './security-headers-settings.interface';
3
4
  import { DyNTS_SocketSecurity } from '../../_modules/socket/_enums/socket-security.enum';
4
5
  import { DyNTS_GlobalLog_Settings } from './global-log-settings.interface';
5
6
  import { DyNTS_Environment_Settings } from './environment-settings.interface';
@@ -161,6 +162,14 @@ export interface DyNTS_Global_Settings {
161
162
  */
162
163
  messaging_settings?: any;
163
164
 
165
+ /**
166
+ * BFR-MASTERPROMPTER-011 / SEC-R2-8 — security response-header middleware. Ha enabled
167
+ * (default: true), a base App az open+secure Express-en a CORS-mount ELŐTT minden válaszra
168
+ * ráteszi a biztonsági headereket (x-powered-by removal + X-Frame-Options + nosniff +
169
+ * Referrer-Policy; HSTS auto-prod-gated; CSP opt-in). Lásd {@link DyNTS_SecurityHeaders_Settings}.
170
+ */
171
+ securityHeaders?: DyNTS_SecurityHeaders_Settings;
172
+
164
173
  /**
165
174
  * FR-193 — bedrock OOM korai-figyelmeztető heap-watchdog ({@link DyNTS_MemoryGuard}).
166
175
  * Ha `enabled`, a base `App` startup automatikusan feltelepíti. Periodikusan figyeli a
@@ -0,0 +1,50 @@
1
+ /**
2
+ * `DyNTS_SecurityHeaders_Settings` — a bedrock security response-header middleware beállításai
3
+ * (BFR-MASTERPROMPTER-011 / SEC-R2-8). A middleware minden `DyNTS_App`-leszármazott open+secure
4
+ * Express-én, a CORS-mount ELŐTT fut (így az OPTIONS preflight-válaszok is megkapják a headereket).
5
+ *
6
+ * **Default-ON, safe-by-default**: zéró-konfiggal a bizonyítottan nem-törő készlet megy ki
7
+ * (x-powered-by removal + X-Frame-Options + nosniff + Referrer-Policy). A HSTS auto-env-gated
8
+ * (csak prod), a CSP opt-in (app-specifikus). Bármely header `false`-szal kikapcsolható;
9
+ * `enabled: false` = teljes opt-out.
10
+ */
11
+ export interface DyNTS_SecurityHeaders_Settings {
12
+ /** Fő kapcsoló. Default: true (a middleware minden szerveren aktív). */
13
+ enabled: boolean;
14
+
15
+ /** `app.disable('x-powered-by')` — Express tech-leak eltávolítás. Default: true. */
16
+ removePoweredBy?: boolean;
17
+
18
+ /** `X-Frame-Options` értéke, vagy `false` a kihagyáshoz. Default: 'SAMEORIGIN'. */
19
+ frameOptions?: string | false;
20
+
21
+ /** `X-Content-Type-Options` értéke, vagy `false`. Default: 'nosniff'. */
22
+ contentTypeOptions?: string | false;
23
+
24
+ /** `Referrer-Policy` értéke, vagy `false`. Default: 'strict-origin-when-cross-origin'. */
25
+ referrerPolicy?: string | false;
26
+
27
+ /** `Permissions-Policy` értéke, vagy `false`. Default: false (opt-in — app-specifikus). */
28
+ permissionsPolicy?: string | false;
29
+
30
+ /**
31
+ * HSTS (`Strict-Transport-Security`). Default: AUTO — CSAK prod environment-en emittál
32
+ * (`max-age=15768000; includeSubDomains`); a test-en a sticky-HSTS strukturálisan elkerülve.
33
+ * Explicit `{ enabled: true }` bármely env-en bekapcsolja; `false` mindenhol kikapcsolja.
34
+ */
35
+ hsts?: {
36
+ enabled?: boolean;
37
+ maxAgeSeconds?: number;
38
+ includeSubDomains?: boolean;
39
+ preload?: boolean;
40
+ } | false;
41
+
42
+ /** `Content-Security-Policy` string, vagy `false`. Default: false (app-specifikus, OPT-IN). */
43
+ csp?: string | false;
44
+
45
+ /** Ha true, a CSP a `Content-Security-Policy-Report-Only` header-névvel megy ki (rollout-segéd). */
46
+ cspReportOnly?: boolean;
47
+
48
+ /** További tetszőleges fix headerek (merge a resolvelt készletre). */
49
+ additionalHeaders?: Record<string, string>;
50
+ }
@@ -30,6 +30,9 @@ import {
30
30
  import { DyNTS_defaultFallbackCacheMaxAge } from '../../_collections/default-fallback-cache-max-age.const';
31
31
  import { DyNTS_defaultNotFoundPageHtml } from '../../_collections/default-not-found-page.const';
32
32
  import { DyNTS_global_settings } from '../../_collections/global-settings.const';
33
+ import { DyNTS_getEnvironment_settings } from '../../_collections/get-environment-settings.util';
34
+ import { DyNTS_createSecurityHeadersMiddleware } from '../../_collections/security-headers.util';
35
+ import { DyNTS_SecurityHeaders_Settings } from '../../_models/interfaces/security-headers-settings.interface';
33
36
  import { startMongoReconnectGuard } from '../../_collections/mongo-reconnect-guard.util';
34
37
  import { DyNTS_resolveStaticCacheControlHeader } from '../../_collections/static-cache-control.util';
35
38
  import { DyNTS_RouteSecurity } from '../../_enums/route-security.enum';
@@ -1278,6 +1281,8 @@ export abstract class DyNTS_App extends DyNTS_SingletonService {
1278
1281
  this.openExpress.set('maxHeaderSize', 10 * megabyte); // 1024 * 1024 * 10, // 10MB
1279
1282
  this.openExpress.use(BodyParser.urlencoded(this._portSettings.httpUrlencoded));
1280
1283
  this.openExpress.use(BodyParser.json(this._portSettings.httpJson));
1284
+ // BFR-011 / SEC-R2-8 — security headerek a CORS ELŐTT (az OPTIONS preflight-válaszok is kapják).
1285
+ this.mountSecurityHeaders(this.openExpress);
1281
1286
  // FR-041 — CORS allowlist enforcement. No-op if getCorsSettings() is not overridden.
1282
1287
  this.mountCors(this.openExpress);
1283
1288
  }
@@ -1290,6 +1295,8 @@ export abstract class DyNTS_App extends DyNTS_SingletonService {
1290
1295
  this.secureExpress = Express();
1291
1296
  this.secureExpress.use(BodyParser.urlencoded(this._portSettings.httpsUrlencoded));
1292
1297
  this.secureExpress.use(BodyParser.json(this._portSettings.httpsJson));
1298
+ // BFR-011 / SEC-R2-8 — security headerek a CORS ELŐTT (mint az open expressen).
1299
+ this.mountSecurityHeaders(this.secureExpress);
1293
1300
  // FR-041 — CORS allowlist enforcement (same as open express).
1294
1301
  this.mountCors(this.secureExpress);
1295
1302
 
@@ -1631,6 +1638,28 @@ export abstract class DyNTS_App extends DyNTS_SingletonService {
1631
1638
  * - Full control over Vary/credentials/preflight semantics.
1632
1639
  * - Aligns with FDP "no unnecessary deps" philosophy.
1633
1640
  */
1641
+ /**
1642
+ * BFR-011 / SEC-R2-8 — security response-headerek mountolása (a `mountCors` tükörképe).
1643
+ * A `DyNTS_global_settings.securityHeaders` alapján (default-ON) minden válaszra ráteszi a
1644
+ * biztonsági headereket + eltávolítja az `x-powered-by`-t. A CORS-mount ELŐTT hívandó, hogy az
1645
+ * OPTIONS preflight-válaszok (amiket a mountCors 204-gyel rövidre zár) is megkapják.
1646
+ */
1647
+ protected mountSecurityHeaders(express: Express.Application): void {
1648
+ const settings: DyNTS_SecurityHeaders_Settings | undefined = DyNTS_global_settings.securityHeaders;
1649
+ if (!settings || !settings.enabled) {
1650
+ return;
1651
+ }
1652
+
1653
+ if (settings.removePoweredBy !== false) {
1654
+ express.disable('x-powered-by');
1655
+ }
1656
+
1657
+ express.use(DyNTS_createSecurityHeadersMiddleware(
1658
+ settings,
1659
+ DyNTS_getEnvironment_settings().environment,
1660
+ ));
1661
+ }
1662
+
1634
1663
  protected mountCors(express: Express.Application): void {
1635
1664
  const settings: DyNTS_Cors_Settings | undefined = this.getCorsSettings?.();
1636
1665
  if (!settings) {
package/src/index.ts CHANGED
@@ -50,7 +50,9 @@ export * from './_models/interfaces/global-service-settings.interface';
50
50
  export * from './_models/interfaces/global-settings.interface';
51
51
  export * from './_models/interfaces/routing-module-settings.interface';
52
52
  export * from './_models/interfaces/static-client-settings.interface';
53
- export * from './_models/interfaces/cors-settings.interface';
53
+ export * from './_models/interfaces/cors-settings.interface';
54
+ export * from './_models/interfaces/security-headers-settings.interface';
55
+ export * from './_collections/security-headers.util';
54
56
 
55
57
  // models/CONTROL MODELS
56
58
  export * from './_models/control-models/api-call-params.control-model';