@dollhousemcp/mcp-server 2.0.11 → 2.0.12-rc.2
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/CHANGELOG.md +33 -0
- package/dist/config/ConfigManager.d.ts +34 -0
- package/dist/config/ConfigManager.d.ts.map +1 -1
- package/dist/config/ConfigManager.js +46 -1
- package/dist/config/env.d.ts +18 -0
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +89 -2
- package/dist/di/Container.d.ts +1 -0
- package/dist/di/Container.d.ts.map +1 -1
- package/dist/di/Container.js +38 -2
- package/dist/elements/agents/AgentManager.js +2 -2
- package/dist/generated/version.d.ts +2 -2
- package/dist/generated/version.d.ts.map +1 -1
- package/dist/generated/version.js +3 -3
- package/dist/handlers/mcp-aql/GatekeeperSession.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/GatekeeperSession.js +3 -2
- package/dist/handlers/mcp-aql/MCPAQLHandler.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/MCPAQLHandler.js +11 -3
- package/dist/handlers/mcp-aql/OperationSchema.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/OperationSchema.js +11 -6
- package/dist/handlers/mcp-aql/policies/ToolClassification.d.ts.map +1 -1
- package/dist/handlers/mcp-aql/policies/ToolClassification.js +8 -1
- package/dist/index.js +53 -3
- package/dist/security/InputNormalizer.d.ts +4 -6
- package/dist/security/InputNormalizer.d.ts.map +1 -1
- package/dist/security/InputNormalizer.js +10 -16
- package/dist/security/audit/config/suppressions.d.ts.map +1 -1
- package/dist/security/audit/config/suppressions.js +26 -1
- package/dist/security/constants.d.ts +7 -0
- package/dist/security/constants.d.ts.map +1 -1
- package/dist/security/constants.js +10 -1
- package/dist/security/contentValidator.d.ts.map +1 -1
- package/dist/security/contentValidator.js +14 -6
- package/dist/security/encryption/PatternEncryptor.d.ts.map +1 -1
- package/dist/security/encryption/PatternEncryptor.js +18 -10
- package/dist/security/securityMonitor.d.ts +1 -1
- package/dist/security/securityMonitor.d.ts.map +1 -1
- package/dist/security/securityMonitor.js +1 -1
- package/dist/security/tokenManager.d.ts +18 -2
- package/dist/security/tokenManager.d.ts.map +1 -1
- package/dist/security/tokenManager.js +47 -15
- package/dist/security/validators/unicodeValidator.d.ts +4 -5
- package/dist/security/validators/unicodeValidator.d.ts.map +1 -1
- package/dist/security/validators/unicodeValidator.js +19 -20
- package/dist/services/VerificationNotifier.d.ts.map +1 -1
- package/dist/services/VerificationNotifier.js +15 -13
- package/dist/services/validation/GenericElementValidator.js +5 -5
- package/dist/web/console/IngestRoutes.d.ts +14 -2
- package/dist/web/console/IngestRoutes.d.ts.map +1 -1
- package/dist/web/console/IngestRoutes.js +69 -5
- package/dist/web/console/LeaderElection.d.ts +37 -3
- package/dist/web/console/LeaderElection.d.ts.map +1 -1
- package/dist/web/console/LeaderElection.js +67 -7
- package/dist/web/console/LeaderForwardingSink.d.ts +19 -3
- package/dist/web/console/LeaderForwardingSink.d.ts.map +1 -1
- package/dist/web/console/LeaderForwardingSink.js +44 -9
- package/dist/web/console/PromotionManager.d.ts +29 -0
- package/dist/web/console/PromotionManager.d.ts.map +1 -0
- package/dist/web/console/PromotionManager.js +94 -0
- package/dist/web/console/SessionNames.d.ts +7 -0
- package/dist/web/console/SessionNames.d.ts.map +1 -1
- package/dist/web/console/SessionNames.js +10 -1
- package/dist/web/console/UnifiedConsole.d.ts +26 -1
- package/dist/web/console/UnifiedConsole.d.ts.map +1 -1
- package/dist/web/console/UnifiedConsole.js +143 -20
- package/dist/web/portDiscovery.d.ts +4 -3
- package/dist/web/portDiscovery.d.ts.map +1 -1
- package/dist/web/portDiscovery.js +7 -5
- package/dist/web/public/app.js +35 -18
- package/dist/web/public/consoleAuth.js +152 -0
- package/dist/web/public/index.html +243 -9
- package/dist/web/public/logs.js +1 -1
- package/dist/web/public/metrics.js +3 -3
- package/dist/web/public/permissions.js +1 -1
- package/dist/web/public/security.css +396 -0
- package/dist/web/public/security.js +393 -0
- package/dist/web/public/sessions.css +54 -4
- package/dist/web/public/sessions.js +46 -6
- package/dist/web/public/setup.css +439 -0
- package/dist/web/public/setup.js +490 -18
- package/dist/web/public/styles.css +10 -0
- package/dist/web/routes/permissionRoutes.d.ts.map +1 -1
- package/dist/web/routes/permissionRoutes.js +8 -3
- package/dist/web/routes/setupRoutes.d.ts +4 -0
- package/dist/web/routes/setupRoutes.d.ts.map +1 -1
- package/dist/web/routes/setupRoutes.js +418 -7
- package/dist/web/routes.d.ts.map +1 -1
- package/dist/web/routes.js +9 -5
- package/dist/web/server.d.ts +49 -3
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +282 -82
- package/package.json +11 -2
- package/server.json +2 -2
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* // At the validation boundary (GenericElementValidator)
|
|
21
21
|
* const normalized = InputNormalizer.normalize(data);
|
|
22
22
|
*
|
|
23
|
-
* if (normalized.
|
|
23
|
+
* if (normalized.hasHighOrCriticalIssues) {
|
|
24
24
|
* return ValidatorHelpers.fail(normalized.errors);
|
|
25
25
|
* }
|
|
26
26
|
*
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
*/
|
|
34
34
|
import { UnicodeValidator } from './validators/unicodeValidator.js';
|
|
35
35
|
import { SecurityMonitor } from './securityMonitor.js';
|
|
36
|
+
import { escalateSeverity } from './constants.js';
|
|
36
37
|
/**
|
|
37
38
|
* InputNormalizer - Recursively normalizes all string values in an object
|
|
38
39
|
*
|
|
@@ -86,7 +87,7 @@ export class InputNormalizer {
|
|
|
86
87
|
issuesByPath.set(currentPath, unicodeResult.detectedIssues);
|
|
87
88
|
// Categorize by severity
|
|
88
89
|
if (unicodeResult.severity) {
|
|
89
|
-
maxSeverity =
|
|
90
|
+
maxSeverity = escalateSeverity(maxSeverity, unicodeResult.severity);
|
|
90
91
|
if (unicodeResult.severity === 'critical' || unicodeResult.severity === 'high') {
|
|
91
92
|
errors.push(...pathIssues);
|
|
92
93
|
}
|
|
@@ -117,11 +118,12 @@ export class InputNormalizer {
|
|
|
117
118
|
};
|
|
118
119
|
// Normalize the input
|
|
119
120
|
const normalizedData = normalizeValue(input, path);
|
|
120
|
-
// Calculate aggregate status
|
|
121
|
+
// Calculate aggregate status (#1782-6: separate critical-only from high+critical)
|
|
121
122
|
const hasIssues = errors.length > 0 || warnings.length > 0;
|
|
122
|
-
const hasCriticalIssues = maxSeverity === 'critical'
|
|
123
|
-
|
|
124
|
-
if
|
|
123
|
+
const hasCriticalIssues = maxSeverity === 'critical';
|
|
124
|
+
const hasHighOrCriticalIssues = maxSeverity === 'critical' || maxSeverity === 'high';
|
|
125
|
+
// Log if high or critical issues detected
|
|
126
|
+
if (hasHighOrCriticalIssues) {
|
|
125
127
|
SecurityMonitor.logSecurityEvent({
|
|
126
128
|
type: 'UNICODE_VALIDATION_ERROR',
|
|
127
129
|
severity: maxSeverity === 'critical' ? 'CRITICAL' : 'HIGH',
|
|
@@ -133,21 +135,13 @@ export class InputNormalizer {
|
|
|
133
135
|
data: normalizedData,
|
|
134
136
|
hasIssues,
|
|
135
137
|
hasCriticalIssues,
|
|
138
|
+
hasHighOrCriticalIssues,
|
|
136
139
|
errors,
|
|
137
140
|
warnings,
|
|
138
141
|
issuesByPath,
|
|
139
142
|
maxSeverity
|
|
140
143
|
};
|
|
141
144
|
}
|
|
142
|
-
/**
|
|
143
|
-
* Escalate severity level (higher severity takes precedence)
|
|
144
|
-
*/
|
|
145
|
-
static escalateSeverity(current, newSeverity) {
|
|
146
|
-
const severityLevels = { low: 1, medium: 2, high: 3, critical: 4 };
|
|
147
|
-
const currentLevel = current ? severityLevels[current] : 0;
|
|
148
|
-
const newLevel = severityLevels[newSeverity];
|
|
149
|
-
return newLevel > currentLevel ? newSeverity : (current || 'low');
|
|
150
|
-
}
|
|
151
145
|
/**
|
|
152
146
|
* Quick check if input needs normalization (has suspicious Unicode)
|
|
153
147
|
*
|
|
@@ -170,4 +164,4 @@ export class InputNormalizer {
|
|
|
170
164
|
return false;
|
|
171
165
|
}
|
|
172
166
|
}
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5wdXROb3JtYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlY3VyaXR5L0lucHV0Tm9ybWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ0c7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFzQnZEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQzFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FxQkc7SUFDSCxNQUFNLENBQUMsU0FBUyxDQUFjLEtBQVEsRUFBRSxPQUFlLEdBQUc7UUFDeEQsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzVCLE1BQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUM5QixNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUNqRCxJQUFJLFdBQStELENBQUM7UUFFcEUseUNBQXlDO1FBQ3pDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBYyxFQUFFLFdBQW1CLEVBQVcsRUFBRTtZQUN0RSx3QkFBd0I7WUFDeEIsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDMUMsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsdURBQXVEO1lBQ3ZELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFeEQsOEJBQThCO2dCQUM5QixJQUFJLGFBQWEsQ0FBQyxjQUFjLElBQUksYUFBYSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzVFLE1BQU0sVUFBVSxHQUFHLGFBQWEs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InNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSW5wdXROb3JtYWxpemVyIC0gSW5kdXN0cnktc3RhbmRhcmQgaW5wdXQgbm9ybWFsaXphdGlvbiBhdCB0aGUgYm91bmRhcnlcbiAqXG4gKiBBcmNoaXRlY3R1cmUgUGF0dGVybjogRGVmZW5zZSBpbiBEZXB0aCAtIE5vcm1hbGl6ZSBPbmNlIGF0IEVudHJ5IFBvaW50XG4gKlxuICogVGhpcyB1dGlsaXR5IGVuZm9yY2VzIHRoZSBwcmluY2lwbGUgb2YgXCJub3JtYWxpemUgYXQgdGhlIGJvdW5kYXJ5XCIgZm9yIHNlY3VyaXR5OlxuICogLSBSZWN1cnNpdmVseSBub3JtYWxpemVzIEFMTCBzdHJpbmcgdmFsdWVzIGluIGlucHV0IG9iamVjdHNcbiAqIC0gVXNlcyBVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZSgpIGFzIHRoZSBzaW5nbGUgbm9ybWFsaXphdGlvbiBpbXBsZW1lbnRhdGlvblxuICogLSBSZXR1cm5zIG5vcm1hbGl6ZWQgb2JqZWN0ICsgYWdncmVnYXRlZCBzZWN1cml0eSBpc3N1ZXNcbiAqIC0gVmFsaWRhdG9ycyByZWNlaXZlIGNsZWFuLCBwcmUtbm9ybWFsaXplZCBkYXRhXG4gKlxuICogU2VjdXJpdHkgQmVuZWZpdHM6XG4gKiAtIFNpbmdsZSBub3JtYWxpemF0aW9uIHBvaW50IChubyBzY2F0dGVyZWQgdmFsaWRhdGVDb250ZW50IGNhbGxzKVxuICogLSBDYW4ndCBmb3JnZXQgdG8gbm9ybWFsaXplIGEgZmllbGRcbiAqIC0gU2VwYXJhdGlvbiBvZiBjb25jZXJucyAobm9ybWFsaXphdGlvbiB2cyB2YWxpZGF0aW9uKVxuICogLSBFYXNpZXIgdG8gYXVkaXQgYW5kIG1haW50YWluXG4gKlxuICogVXNhZ2U6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBBdCB0aGUgdmFsaWRhdGlvbiBib3VuZGFyeSAoR2VuZXJpY0VsZW1lbnRWYWxpZGF0b3IpXG4gKiBjb25zdCBub3JtYWxpemVkID0gSW5wdXROb3JtYWxpemVyLm5vcm1hbGl6ZShkYXRhKTtcbiAqXG4gKiBpZiAobm9ybWFsaXplZC5oYXNDcml0aWNhbElzc3Vlcykge1xuICogICByZXR1cm4gVmFsaWRhdG9ySGVscGVycy5mYWlsKG5vcm1hbGl6ZWQuZXJyb3JzKTtcbiAqIH1cbiAqXG4gKiAvLyBOb3cgdmFsaWRhdGUgdGhlIG5vcm1hbGl6ZWQgZGF0YVxuICogY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy52YWxpZGF0ZUZpZWxkcyhub3JtYWxpemVkLmRhdGEpO1xuICogYGBgXG4gKlxuICogQHNlZSBVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZSgpIC0gQ29yZSBub3JtYWxpemF0aW9uIGltcGxlbWVudGF0aW9uXG4gKiBAc2VlIEdlbmVyaWNFbGVtZW50VmFsaWRhdG9yIC0gVXNlcyB0aGlzIGF0IHRoZSBib3VuZGFyeVxuICovXG5cbmltcG9ydCB7IFVuaWNvZGVWYWxpZGF0b3IgfSBmcm9tICcuL3ZhbGlkYXRvcnMvdW5pY29kZVZhbGlkYXRvci5qcyc7XG5pbXBvcnQgeyBTZWN1cml0eU1vbml0b3IgfSBmcm9tICcuL3NlY3VyaXR5TW9uaXRvci5qcyc7XG5cbi8qKlxuICogUmVzdWx0IGZyb20gaW5wdXQgbm9ybWFsaXphdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vcm1hbGl6YXRpb25SZXN1bHQ8VCA9IHVua25vd24+IHtcbiAgLyoqIFRoZSBub3JtYWxpemVkIGRhdGEgc3RydWN0dXJlIHdpdGggYWxsIHN0cmluZ3Mgbm9ybWFsaXplZCAqL1xuICBkYXRhOiBUO1xuICAvKiogV2hldGhlciBub3JtYWxpemF0aW9uIGRldGVjdGVkIGFueSBpc3N1ZXMgKi9cbiAgaGFzSXNzdWVzOiBib29sZWFuO1xuICAvKiogV2hldGhlciBjcml0aWNhbCBpc3N1ZXMgd2VyZSBkZXRlY3RlZCB0aGF0IHNob3VsZCBmYWlsIHZhbGlkYXRpb24gKi9cbiAgaGFzQ3JpdGljYWxJc3N1ZXM6IGJvb2xlYW47XG4gIC8qKiBBbGwgZXJyb3JzIGRldGVjdGVkIGR1cmluZyBub3JtYWxpemF0aW9uIChjcml0aWNhbCBpc3N1ZXMpICovXG4gIGVycm9yczogc3RyaW5nW107XG4gIC8qKiBBbGwgd2FybmluZ3MgZGV0ZWN0ZWQgZHVyaW5nIG5vcm1hbGl6YXRpb24gKG5vbi1jcml0aWNhbCBpc3N1ZXMpICovXG4gIHdhcm5pbmdzOiBzdHJpbmdbXTtcbiAgLyoqIERldGFpbGVkIGlzc3VlcyBieSBwYXRoIChmb3IgZGVidWdnaW5nKSAqL1xuICBpc3N1ZXNCeVBhdGg6IE1hcDxzdHJpbmcsIHN0cmluZ1tdPjtcbiAgLyoqIEhpZ2hlc3Qgc2V2ZXJpdHkgbGV2ZWwgZGV0ZWN0ZWQgKi9cbiAgbWF4U2V2ZXJpdHk/OiAnbG93JyB8ICdtZWRpdW0nIHwgJ2hpZ2gnIHwgJ2NyaXRpY2FsJztcbn1cblxuLyoqXG4gKiBJbnB1dE5vcm1hbGl6ZXIgLSBSZWN1cnNpdmVseSBub3JtYWxpemVzIGFsbCBzdHJpbmcgdmFsdWVzIGluIGFuIG9iamVjdFxuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBjZW50cmFsaXplZCwgcmVjdXJzaXZlIG5vcm1hbGl6YXRpb24gdXRpbGl0eSB0aGF0OlxuICogLSBXYWxrcyBvYmplY3QvYXJyYXkgc3RydWN0dXJlcyByZWN1cnNpdmVseVxuICogLSBOb3JtYWxpemVzIGV2ZXJ5IHN0cmluZyB2YWx1ZSB1c2luZyBVbmljb2RlVmFsaWRhdG9yXG4gKiAtIEFnZ3JlZ2F0ZXMgc2VjdXJpdHkgaXNzdWVzIGFjcm9zcyBhbGwgZmllbGRzXG4gKiAtIFByZXNlcnZlcyBub24tc3RyaW5nIHZhbHVlcyB1bmNoYW5nZWRcbiAqIC0gVHJhY2tzIG5vcm1hbGl6YXRpb24gcGF0aCBmb3IgZGV0YWlsZWQgZXJyb3IgcmVwb3J0aW5nXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnB1dE5vcm1hbGl6ZXIge1xuICAvKipcbiAgICogTm9ybWFsaXplIGFsbCBzdHJpbmcgdmFsdWVzIGluIGFuIG9iamVjdC9hcnJheSBzdHJ1Y3R1cmVcbiAgICpcbiAgICogQHBhcmFtIGlucHV0IC0gSW5wdXQgZGF0YSB0byBub3JtYWxpemUgKG9iamVjdCwgYXJyYXksIG9yIHByaW1pdGl2ZSlcbiAgICogQHBhcmFtIHBhdGggLSBDdXJyZW50IHBhdGggaW4gb2JqZWN0IHRyZWUgKGZvciBlcnJvciB0cmFja2luZylcbiAgICogQHJldHVybnMgTm9ybWFsaXphdGlvbiByZXN1bHQgd2l0aCBub3JtYWxpemVkIGRhdGEgYW5kIGRldGVjdGVkIGlzc3Vlc1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGlucHV0ID0ge1xuICAgKiAgIG5hbWU6ICdUZXN0XFx1MjAwQk5hbWUnLCAgLy8gWmVyby13aWR0aCBzcGFjZVxuICAgKiAgIGRlc2NyaXB0aW9uOiAnQ2Fmw6knLCAgICAgIC8vIExlZ2l0aW1hdGUgVW5pY29kZVxuICAgKiAgIG5lc3RlZDoge1xuICAgKiAgICAgZmllbGQ6ICdWYWxcXHUyMDJFdWUnICAgIC8vIERpcmVjdGlvbiBvdmVycmlkZVxuICAgKiAgIH1cbiAgICogfTtcbiAgICpcbiAgICogY29uc3QgcmVzdWx0ID0gSW5wdXROb3JtYWxpemVyLm5vcm1hbGl6ZShpbnB1dCk7XG4gICAqIGNvbnNvbGUubG9nKHJlc3VsdC5kYXRhLm5hbWUpOyAgLy8gJ1Rlc3ROYW1lJyAoY2xlYW5lZClcbiAgICogY29uc29sZS5sb2cocmVzdWx0Lndhcm5pbmdzKTsgICAvLyBbJ25hbWU6IFplcm8td2lkdGggY2hhcmFjdGVycyBkZXRlY3RlZCcsIC4uLl1cbiAgICogYGBgXG4gICAqL1xuICBzdGF0aWMgbm9ybWFsaXplPFQgPSB1bmtub3duPihpbnB1dDogVCwgcGF0aDogc3RyaW5nID0gJyQnKTogTm9ybWFsaXphdGlvblJlc3VsdDxUPiB7XG4gICAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IHdhcm5pbmdzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGlzc3Vlc0J5UGF0aCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmdbXT4oKTtcbiAgICBsZXQgbWF4U2V2ZXJpdHk6ICdsb3cnIHwgJ21lZGl1bScgfCAnaGlnaCcgfCAnY3JpdGljYWwnIHwgdW5kZWZpbmVkO1xuXG4gICAgLy8gUmVjdXJzaXZlIG5vcm1hbGl6YXRpb24gaW1wbGVtZW50YXRpb25cbiAgICBjb25zdCBub3JtYWxpemVWYWx1ZSA9ICh2YWx1ZTogdW5rbm93biwgY3VycmVudFBhdGg6IHN0cmluZyk6IHVua25vd24gPT4ge1xuICAgICAgLy8gSGFuZGxlIG51bGwvdW5kZWZpbmVkXG4gICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vIEhhbmRsZSBzdHJpbmdzIC0gdGhpcyBpcyB3aGVyZSBub3JtYWxpemF0aW9uIGhhcHBlbnNcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IHVuaWNvZGVSZXN1bHQgPSBVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZSh2YWx1ZSk7XG5cbiAgICAgICAgLy8gVHJhY2sgaXNzdWVzIGZvciB0aGlzIGZpZWxkXG4gICAgICAgIGlmICh1bmljb2RlUmVzdWx0LmRldGVjdGVkSXNzdWVzICYmIHVuaWNvZGVSZXN1bHQuZGV0ZWN0ZWRJc3N1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IHBhdGhJc3N1ZXMgPSB1bmljb2RlUmVzdWx0LmRldGVjdGVkSXNzdWVzLm1hcChcbiAgICAgICAgICAgIGlzc3VlID0+IGAke2N1cnJlbnRQYXRofTogJHtpc3N1ZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpc3N1ZXNCeVBhdGguc2V0KGN1cnJlbnRQYXRoLCB1bmljb2RlUmVzdWx0LmRldGVjdGVkSXNzdWVzKTtcblxuICAgICAgICAgIC8vIENhdGVnb3JpemUgYnkgc2V2ZXJpdHlcbiAgICAgICAgICBpZiAodW5pY29kZVJlc3VsdC5zZXZlcml0eSkge1xuICAgICAgICAgICAgbWF4U2V2ZXJpdHkgPSB0aGlzLmVzY2FsYXRlU2V2ZXJpdHkobWF4U2V2ZXJpdHksIHVuaWNvZGVSZXN1bHQuc2V2ZXJpdHkpO1xuXG4gICAgICAgICAgICBpZiAodW5pY29kZVJlc3VsdC5zZXZlcml0eSA9PT0gJ2NyaXRpY2FsJyB8fCB1bmljb2RlUmVzdWx0LnNldmVyaXR5ID09PSAnaGlnaCcpIHtcbiAgICAgICAgICAgICAgZXJyb3JzLnB1c2goLi4ucGF0aElzc3Vlcyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB3YXJuaW5ncy5wdXNoKC4uLnBhdGhJc3N1ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3YXJuaW5ncy5wdXNoKC4uLnBhdGhJc3N1ZXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1bmljb2RlUmVzdWx0Lm5vcm1hbGl6ZWRDb250ZW50O1xuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgYXJyYXlzIC0gcmVjdXJzaXZlbHkgbm9ybWFsaXplIGVhY2ggZWxlbWVudFxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5tYXAoKGl0ZW0sIGluZGV4KSA9PlxuICAgICAgICAgIG5vcm1hbGl6ZVZhbHVlKGl0ZW0sIGAke2N1cnJlbnRQYXRofVske2luZGV4fV1gKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgb2JqZWN0cyAtIHJlY3Vyc2l2ZWx5IG5vcm1hbGl6ZSBlYWNoIHByb3BlcnR5XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXModmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pKSB7XG4gICAgICAgICAgbm9ybWFsaXplZFtrZXldID0gbm9ybWFsaXplVmFsdWUodmFsLCBgJHtjdXJyZW50UGF0aH0uJHtrZXl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWQ7XG4gICAgICB9XG5cbiAgICAgIC8vIFByZXNlcnZlIG90aGVyIHR5cGVzIHVuY2hhbmdlZCAobnVtYmVycywgYm9vbGVhbnMsIGV0Yy4pXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxuICAgIC8vIE5vcm1hbGl6ZSB0aGUgaW5wdXRcbiAgICBjb25zdCBub3JtYWxpemVkRGF0YSA9IG5vcm1hbGl6ZVZhbHVlKGlucHV0LCBwYXRoKSBhcyBUO1xuXG4gICAgLy8gQ2FsY3VsYXRlIGFnZ3JlZ2F0ZSBzdGF0dXNcbiAgICBjb25zdCBoYXNJc3N1ZXMgPSBlcnJvcnMubGVuZ3RoID4gMCB8fCB3YXJuaW5ncy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGhhc0NyaXRpY2FsSXNzdWVzID0gbWF4U2V2ZXJpdHkgPT09ICdjcml0aWNhbCcgfHwgbWF4U2V2ZXJpdHkgPT09ICdoaWdoJztcblxuICAgIC8vIExvZyBpZiBjcml0aWNhbCBpc3N1ZXMgZGV0ZWN0ZWRcbiAgICBpZiAoaGFzQ3JpdGljYWxJc3N1ZXMpIHtcbiAgICAgIFNlY3VyaXR5TW9uaXRvci5sb2dTZWN1cml0eUV2ZW50KHtcbiAgICAgICAgdHlwZTogJ1VOSUNPREVfVkFMSURBVElPTl9FUlJPUicsXG4gICAgICAgIHNldmVyaXR5OiBtYXhTZXZlcml0eSA9PT0gJ2NyaXRpY2FsJyA/ICdDUklUSUNBTCcgOiAnSElHSCcsXG4gICAgICAgIHNvdXJjZTogJ0lucHV0Tm9ybWFsaXplcicsXG4gICAgICAgIGRldGFpbHM6IGBDcml0aWNhbCBVbmljb2RlIGlzc3VlcyBkZXRlY3RlZCBkdXJpbmcgbm9ybWFsaXphdGlvbjogJHtlcnJvcnMuam9pbignOyAnKX1gXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YTogbm9ybWFsaXplZERhdGEsXG4gICAgICBoYXNJc3N1ZXMsXG4gICAgICBoYXNDcml0aWNhbElzc3VlcyxcbiAgICAgIGVycm9ycyxcbiAgICAgIHdhcm5pbmdzLFxuICAgICAgaXNzdWVzQnlQYXRoLFxuICAgICAgbWF4U2V2ZXJpdHlcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEVzY2FsYXRlIHNldmVyaXR5IGxldmVsIChoaWdoZXIgc2V2ZXJpdHkgdGFrZXMgcHJlY2VkZW5jZSlcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGVzY2FsYXRlU2V2ZXJpdHkoXG4gICAgY3VycmVudDogJ2xvdycgfCAnbWVkaXVtJyB8ICdoaWdoJyB8ICdjcml0aWNhbCcgfCB1bmRlZmluZWQsXG4gICAgbmV3U2V2ZXJpdHk6ICdsb3cnIHwgJ21lZGl1bScgfCAnaGlnaCcgfCAnY3JpdGljYWwnXG4gICk6ICdsb3cnIHwgJ21lZGl1bScgfCAnaGlnaCcgfCAnY3JpdGljYWwnIHtcbiAgICBjb25zdCBzZXZlcml0eUxldmVscyA9IHsgbG93OiAxLCBtZWRpdW06IDIsIGhpZ2g6IDMsIGNyaXRpY2FsOiA0IH07XG4gICAgY29uc3QgY3VycmVudExldmVsID0gY3VycmVudCA/IHNldmVyaXR5TGV2ZWxzW2N1cnJlbnRdIDogMDtcbiAgICBjb25zdCBuZXdMZXZlbCA9IHNldmVyaXR5TGV2ZWxzW25ld1NldmVyaXR5XTtcblxuICAgIHJldHVybiBuZXdMZXZlbCA+IGN1cnJlbnRMZXZlbCA/IG5ld1NldmVyaXR5IDogKGN1cnJlbnQgfHwgJ2xvdycpO1xuICB9XG5cbiAgLyoqXG4gICAqIFF1aWNrIGNoZWNrIGlmIGlucHV0IG5lZWRzIG5vcm1hbGl6YXRpb24gKGhhcyBzdXNwaWNpb3VzIFVuaWNvZGUpXG4gICAqXG4gICAqIFRoaXMgaXMgYW4gb3B0aW1pemF0aW9uIC0geW91IGNhbiBjaGVjayBpZiBub3JtYWxpemF0aW9uIGlzIG5lZWRlZFxuICAgKiBiZWZvcmUgZG9pbmcgZXhwZW5zaXZlIHJlY3Vyc2l2ZSBub3JtYWxpemF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gaW5wdXQgLSBJbnB1dCBkYXRhIHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIFRydWUgaWYgaW5wdXQgY29udGFpbnMgcG90ZW50aWFsbHkgZGFuZ2Vyb3VzIFVuaWNvZGVcbiAgICovXG4gIHN0YXRpYyBuZWVkc05vcm1hbGl6YXRpb24oaW5wdXQ6IHVua25vd24pOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIFVuaWNvZGVWYWxpZGF0b3IuY29udGFpbnNEYW5nZXJvdXNVbmljb2RlKGlucHV0KTtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbnB1dCkpIHtcbiAgICAgIHJldHVybiBpbnB1dC5zb21lKGl0ZW0gPT4gdGhpcy5uZWVkc05vcm1hbGl6YXRpb24oaXRlbSkpO1xuICAgIH1cblxuICAgIGlmIChpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhpbnB1dCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikuc29tZShcbiAgICAgICAgdmFsdWUgPT4gdGhpcy5uZWVkc05vcm1hbGl6YXRpb24odmFsdWUpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5wdXROb3JtYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlY3VyaXR5L0lucHV0Tm9ybWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ0c7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUF3QmxEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQzFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FxQkc7SUFDSCxNQUFNLENBQUMsU0FBUyxDQUFjLEtBQVEsRUFBRSxPQUFlLEdBQUc7UUFDeEQsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzVCLE1BQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUM5QixNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUNqRCxJQUFJLFdBQStELENBQUM7UUFFcEUseUNBQXlDO1FBQ3pDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBYyxFQUFFLFdBQW1CLEVBQVcsRUFBRTtZQUN0RSx3QkFBd0I7WUFDeEIsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDMUMsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsdURBQXVEO1lBQ3ZELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFeEQsOEJBQThCO2dCQUM5QixJQUFJLGFBQWEsQ0FBQyxjQUFjLElBQUksYUFBYSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdB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QkFBdUI7WUFDdkIsTUFBTTtZQUNOLFFBQVE7WUFDUixZQUFZO1lBQ1osV0FBVztTQUNaLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBYztRQUN0QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE9BQU8sZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFFRCxJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN2QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBZ0MsQ0FBQyxDQUFDLElBQUksQ0FDekQsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQ3hDLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIElucHV0Tm9ybWFsaXplciAtIEluZHVzdHJ5LXN0YW5kYXJkIGlucHV0IG5vcm1hbGl6YXRpb24gYXQgdGhlIGJvdW5kYXJ5XG4gKlxuICogQXJjaGl0ZWN0dXJlIFBhdHRlcm46IERlZmVuc2UgaW4gRGVwdGggLSBOb3JtYWxpemUgT25jZSBhdCBFbnRyeSBQb2ludFxuICpcbiAqIFRoaXMgdXRpbGl0eSBlbmZvcmNlcyB0aGUgcHJpbmNpcGxlIG9mIFwibm9ybWFsaXplIGF0IHRoZSBib3VuZGFyeVwiIGZvciBzZWN1cml0eTpcbiAqIC0gUmVjdXJzaXZlbHkgbm9ybWFsaXplcyBBTEwgc3RyaW5nIHZhbHVlcyBpbiBpbnB1dCBvYmplY3RzXG4gKiAtIFVzZXMgVW5pY29kZVZhbGlkYXRvci5ub3JtYWxpemUoKSBhcyB0aGUgc2luZ2xlIG5vcm1hbGl6YXRpb24gaW1wbGVtZW50YXRpb25cbiAqIC0gUmV0dXJucyBub3JtYWxpemVkIG9iamVjdCArIGFnZ3JlZ2F0ZWQgc2VjdXJpdHkgaXNzdWVzXG4gKiAtIFZhbGlkYXRvcnMgcmVjZWl2ZSBjbGVhbiwgcHJlLW5vcm1hbGl6ZWQgZGF0YVxuICpcbiAqIFNlY3VyaXR5IEJlbmVmaXRzOlxuICogLSBTaW5nbGUgbm9ybWFsaXphdGlvbiBwb2ludCAobm8gc2NhdHRlcmVkIHZhbGlkYXRlQ29udGVudCBjYWxscylcbiAqIC0gQ2FuJ3QgZm9yZ2V0IHRvIG5vcm1hbGl6ZSBhIGZpZWxkXG4gKiAtIFNlcGFyYXRpb24gb2YgY29uY2VybnMgKG5vcm1hbGl6YXRpb24gdnMgdmFsaWRhdGlvbilcbiAqIC0gRWFzaWVyIHRvIGF1ZGl0IGFuZCBtYWludGFpblxuICpcbiAqIFVzYWdlOlxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQXQgdGhlIHZhbGlkYXRpb24gYm91bmRhcnkgKEdlbmVyaWNFbGVtZW50VmFsaWRhdG9yKVxuICogY29uc3Qgbm9ybWFsaXplZCA9IElucHV0Tm9ybWFsaXplci5ub3JtYWxpemUoZGF0YSk7XG4gKlxuICogaWYgKG5vcm1hbGl6ZWQuaGFzSGlnaE9yQ3JpdGljYWxJc3N1ZXMpIHtcbiAqICAgcmV0dXJuIFZhbGlkYXRvckhlbHBlcnMuZmFpbChub3JtYWxpemVkLmVycm9ycyk7XG4gKiB9XG4gKlxuICogLy8gTm93IHZhbGlkYXRlIHRoZSBub3JtYWxpemVkIGRhdGFcbiAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMudmFsaWRhdGVGaWVsZHMobm9ybWFsaXplZC5kYXRhKTtcbiAqIGBgYFxuICpcbiAqIEBzZWUgVW5pY29kZVZhbGlkYXRvci5ub3JtYWxpemUoKSAtIENvcmUgbm9ybWFsaXphdGlvbiBpbXBsZW1lbnRhdGlvblxuICogQHNlZSBHZW5lcmljRWxlbWVudFZhbGlkYXRvciAtIFVzZXMgdGhpcyBhdCB0aGUgYm91bmRhcnlcbiAqL1xuXG5pbXBvcnQgeyBVbmljb2RlVmFsaWRhdG9yIH0gZnJvbSAnLi92YWxpZGF0b3JzL3VuaWNvZGVWYWxpZGF0b3IuanMnO1xuaW1wb3J0IHsgU2VjdXJpdHlNb25pdG9yIH0gZnJvbSAnLi9zZWN1cml0eU1vbml0b3IuanMnO1xuaW1wb3J0IHsgZXNjYWxhdGVTZXZlcml0eSB9IGZyb20gJy4vY29uc3RhbnRzLmpzJztcblxuLyoqXG4gKiBSZXN1bHQgZnJvbSBpbnB1dCBub3JtYWxpemF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm9ybWFsaXphdGlvblJlc3VsdDxUID0gdW5rbm93bj4ge1xuICAvKiogVGhlIG5vcm1hbGl6ZWQgZGF0YSBzdHJ1Y3R1cmUgd2l0aCBhbGwgc3RyaW5ncyBub3JtYWxpemVkICovXG4gIGRhdGE6IFQ7XG4gIC8qKiBXaGV0aGVyIG5vcm1hbGl6YXRpb24gZGV0ZWN0ZWQgYW55IGlzc3VlcyAqL1xuICBoYXNJc3N1ZXM6IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIGNyaXRpY2FsLXNldmVyaXR5IGlzc3VlcyB3ZXJlIGRldGVjdGVkICovXG4gIGhhc0NyaXRpY2FsSXNzdWVzOiBib29sZWFuO1xuICAvKiogV2hldGhlciBoaWdoLW9yLWNyaXRpY2FsIGlzc3VlcyB3ZXJlIGRldGVjdGVkIHRoYXQgc2hvdWxkIGZhaWwgdmFsaWRhdGlvbiAoIzE3ODItNikgKi9cbiAgaGFzSGlnaE9yQ3JpdGljYWxJc3N1ZXM6IGJvb2xlYW47XG4gIC8qKiBBbGwgZXJyb3JzIGRldGVjdGVkIGR1cmluZyBub3JtYWxpemF0aW9uIChjcml0aWNhbCBpc3N1ZXMpICovXG4gIGVycm9yczogc3RyaW5nW107XG4gIC8qKiBBbGwgd2FybmluZ3MgZGV0ZWN0ZWQgZHVyaW5nIG5vcm1hbGl6YXRpb24gKG5vbi1jcml0aWNhbCBpc3N1ZXMpICovXG4gIHdhcm5pbmdzOiBzdHJpbmdbXTtcbiAgLyoqIERldGFpbGVkIGlzc3VlcyBieSBwYXRoIChmb3IgZGVidWdnaW5nKSAqL1xuICBpc3N1ZXNCeVBhdGg6IE1hcDxzdHJpbmcsIHN0cmluZ1tdPjtcbiAgLyoqIEhpZ2hlc3Qgc2V2ZXJpdHkgbGV2ZWwgZGV0ZWN0ZWQgKi9cbiAgbWF4U2V2ZXJpdHk/OiAnbG93JyB8ICdtZWRpdW0nIHwgJ2hpZ2gnIHwgJ2NyaXRpY2FsJztcbn1cblxuLyoqXG4gKiBJbnB1dE5vcm1hbGl6ZXIgLSBSZWN1cnNpdmVseSBub3JtYWxpemVzIGFsbCBzdHJpbmcgdmFsdWVzIGluIGFuIG9iamVjdFxuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBjZW50cmFsaXplZCwgcmVjdXJzaXZlIG5vcm1hbGl6YXRpb24gdXRpbGl0eSB0aGF0OlxuICogLSBXYWxrcyBvYmplY3QvYXJyYXkgc3RydWN0dXJlcyByZWN1cnNpdmVseVxuICogLSBOb3JtYWxpemVzIGV2ZXJ5IHN0cmluZyB2YWx1ZSB1c2luZyBVbmljb2RlVmFsaWRhdG9yXG4gKiAtIEFnZ3JlZ2F0ZXMgc2VjdXJpdHkgaXNzdWVzIGFjcm9zcyBhbGwgZmllbGRzXG4gKiAtIFByZXNlcnZlcyBub24tc3RyaW5nIHZhbHVlcyB1bmNoYW5nZWRcbiAqIC0gVHJhY2tzIG5vcm1hbGl6YXRpb24gcGF0aCBmb3IgZGV0YWlsZWQgZXJyb3IgcmVwb3J0aW5nXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnB1dE5vcm1hbGl6ZXIge1xuICAvKipcbiAgICogTm9ybWFsaXplIGFsbCBzdHJpbmcgdmFsdWVzIGluIGFuIG9iamVjdC9hcnJheSBzdHJ1Y3R1cmVcbiAgICpcbiAgICogQHBhcmFtIGlucHV0IC0gSW5wdXQgZGF0YSB0byBub3JtYWxpemUgKG9iamVjdCwgYXJyYXksIG9yIHByaW1pdGl2ZSlcbiAgICogQHBhcmFtIHBhdGggLSBDdXJyZW50IHBhdGggaW4gb2JqZWN0IHRyZWUgKGZvciBlcnJvciB0cmFja2luZylcbiAgICogQHJldHVybnMgTm9ybWFsaXphdGlvbiByZXN1bHQgd2l0aCBub3JtYWxpemVkIGRhdGEgYW5kIGRldGVjdGVkIGlzc3Vlc1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGlucHV0ID0ge1xuICAgKiAgIG5hbWU6ICdUZXN0XFx1MjAwQk5hbWUnLCAgLy8gWmVyby13aWR0aCBzcGFjZVxuICAgKiAgIGRlc2NyaXB0aW9uOiAnQ2Fmw6knLCAgICAgIC8vIExlZ2l0aW1hdGUgVW5pY29kZVxuICAgKiAgIG5lc3RlZDoge1xuICAgKiAgICAgZmllbGQ6ICdWYWxcXHUyMDJFdWUnICAgIC8vIERpcmVjdGlvbiBvdmVycmlkZVxuICAgKiAgIH1cbiAgICogfTtcbiAgICpcbiAgICogY29uc3QgcmVzdWx0ID0gSW5wdXROb3JtYWxpemVyLm5vcm1hbGl6ZShpbnB1dCk7XG4gICAqIGNvbnNvbGUubG9nKHJlc3VsdC5kYXRhLm5hbWUpOyAgLy8gJ1Rlc3ROYW1lJyAoY2xlYW5lZClcbiAgICogY29uc29sZS5sb2cocmVzdWx0Lndhcm5pbmdzKTsgICAvLyBbJ25hbWU6IFplcm8td2lkdGggY2hhcmFjdGVycyBkZXRlY3RlZCcsIC4uLl1cbiAgICogYGBgXG4gICAqL1xuICBzdGF0aWMgbm9ybWFsaXplPFQgPSB1bmtub3duPihpbnB1dDogVCwgcGF0aDogc3RyaW5nID0gJyQnKTogTm9ybWFsaXphdGlvblJlc3VsdDxUPiB7XG4gICAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IHdhcm5pbmdzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGlzc3Vlc0J5UGF0aCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmdbXT4oKTtcbiAgICBsZXQgbWF4U2V2ZXJpdHk6ICdsb3cnIHwgJ21lZGl1bScgfCAnaGlnaCcgfCAnY3JpdGljYWwnIHwgdW5kZWZpbmVkO1xuXG4gICAgLy8gUmVjdXJzaXZlIG5vcm1hbGl6YXRpb24gaW1wbGVtZW50YXRpb25cbiAgICBjb25zdCBub3JtYWxpemVWYWx1ZSA9ICh2YWx1ZTogdW5rbm93biwgY3VycmVudFBhdGg6IHN0cmluZyk6IHVua25vd24gPT4ge1xuICAgICAgLy8gSGFuZGxlIG51bGwvdW5kZWZpbmVkXG4gICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIC8vIEhhbmRsZSBzdHJpbmdzIC0gdGhpcyBpcyB3aGVyZSBub3JtYWxpemF0aW9uIGhhcHBlbnNcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IHVuaWNvZGVSZXN1bHQgPSBVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZSh2YWx1ZSk7XG5cbiAgICAgICAgLy8gVHJhY2sgaXNzdWVzIGZvciB0aGlzIGZpZWxkXG4gICAgICAgIGlmICh1bmljb2RlUmVzdWx0LmRldGVjdGVkSXNzdWVzICYmIHVuaWNvZGVSZXN1bHQuZGV0ZWN0ZWRJc3N1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IHBhdGhJc3N1ZXMgPSB1bmljb2RlUmVzdWx0LmRldGVjdGVkSXNzdWVzLm1hcChcbiAgICAgICAgICAgIGlzc3VlID0+IGAke2N1cnJlbnRQYXRofTogJHtpc3N1ZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpc3N1ZXNCeVBhdGguc2V0KGN1cnJlbnRQYXRoLCB1bmljb2RlUmVzdWx0LmRldGVjdGVkSXNzdWVzKTtcblxuICAgICAgICAgIC8vIENhdGVnb3JpemUgYnkgc2V2ZXJpdHlcbiAgICAgICAgICBpZiAodW5pY29kZVJlc3VsdC5zZXZlcml0eSkge1xuICAgICAgICAgICAgbWF4U2V2ZXJpdHkgPSBlc2NhbGF0ZVNldmVyaXR5KG1heFNldmVyaXR5LCB1bmljb2RlUmVzdWx0LnNldmVyaXR5KTtcblxuICAgICAgICAgICAgaWYgKHVuaWNvZGVSZXN1bHQuc2V2ZXJpdHkgPT09ICdjcml0aWNhbCcgfHwgdW5pY29kZVJlc3VsdC5zZXZlcml0eSA9PT0gJ2hpZ2gnKSB7XG4gICAgICAgICAgICAgIGVycm9ycy5wdXNoKC4uLnBhdGhJc3N1ZXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgd2FybmluZ3MucHVzaCguLi5wYXRoSXNzdWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd2FybmluZ3MucHVzaCguLi5wYXRoSXNzdWVzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5pY29kZVJlc3VsdC5ub3JtYWxpemVkQ29udGVudDtcbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIGFycmF5cyAtIHJlY3Vyc2l2ZWx5IG5vcm1hbGl6ZSBlYWNoIGVsZW1lbnRcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gdmFsdWUubWFwKChpdGVtLCBpbmRleCkgPT5cbiAgICAgICAgICBub3JtYWxpemVWYWx1ZShpdGVtLCBgJHtjdXJyZW50UGF0aH1bJHtpbmRleH1dYClcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIG9iamVjdHMgLSByZWN1cnNpdmVseSBub3JtYWxpemUgZWFjaCBwcm9wZXJ0eVxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWxdIG9mIE9iamVjdC5lbnRyaWVzKHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSkge1xuICAgICAgICAgIG5vcm1hbGl6ZWRba2V5XSA9IG5vcm1hbGl6ZVZhbHVlKHZhbCwgYCR7Y3VycmVudFBhdGh9LiR7a2V5fWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub3JtYWxpemVkO1xuICAgICAgfVxuXG4gICAgICAvLyBQcmVzZXJ2ZSBvdGhlciB0eXBlcyB1bmNoYW5nZWQgKG51bWJlcnMsIGJvb2xlYW5zLCBldGMuKVxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH07XG5cbiAgICAvLyBOb3JtYWxpemUgdGhlIGlucHV0XG4gICAgY29uc3Qgbm9ybWFsaXplZERhdGEgPSBub3JtYWxpemVWYWx1ZShpbnB1dCwgcGF0aCkgYXMgVDtcblxuICAgIC8vIENhbGN1bGF0ZSBhZ2dyZWdhdGUgc3RhdHVzICgjMTc4Mi02OiBzZXBhcmF0ZSBjcml0aWNhbC1vbmx5IGZyb20gaGlnaCtjcml0aWNhbClcbiAgICBjb25zdCBoYXNJc3N1ZXMgPSBlcnJvcnMubGVuZ3RoID4gMCB8fCB3YXJuaW5ncy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGhhc0NyaXRpY2FsSXNzdWVzID0gbWF4U2V2ZXJpdHkgPT09ICdjcml0aWNhbCc7XG4gICAgY29uc3QgaGFzSGlnaE9yQ3JpdGljYWxJc3N1ZXMgPSBtYXhTZXZlcml0eSA9PT0gJ2NyaXRpY2FsJyB8fCBtYXhTZXZlcml0eSA9PT0gJ2hpZ2gnO1xuXG4gICAgLy8gTG9nIGlmIGhpZ2ggb3IgY3JpdGljYWwgaXNzdWVzIGRldGVjdGVkXG4gICAgaWYgKGhhc0hpZ2hPckNyaXRpY2FsSXNzdWVzKSB7XG4gICAgICBTZWN1cml0eU1vbml0b3IubG9nU2VjdXJpdHlFdmVudCh7XG4gICAgICAgIHR5cGU6ICdVTklDT0RFX1ZBTElEQVRJT05fRVJST1InLFxuICAgICAgICBzZXZlcml0eTogbWF4U2V2ZXJpdHkgPT09ICdjcml0aWNhbCcgPyAnQ1JJVElDQUwnIDogJ0hJR0gnLFxuICAgICAgICBzb3VyY2U6ICdJbnB1dE5vcm1hbGl6ZXInLFxuICAgICAgICBkZXRhaWxzOiBgQ3JpdGljYWwgVW5pY29kZSBpc3N1ZXMgZGV0ZWN0ZWQgZHVyaW5nIG5vcm1hbGl6YXRpb246ICR7ZXJyb3JzLmpvaW4oJzsgJyl9YFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IG5vcm1hbGl6ZWREYXRhLFxuICAgICAgaGFzSXNzdWVzLFxuICAgICAgaGFzQ3JpdGljYWxJc3N1ZXMsXG4gICAgICBoYXNIaWdoT3JDcml0aWNhbElzc3VlcyxcbiAgICAgIGVycm9ycyxcbiAgICAgIHdhcm5pbmdzLFxuICAgICAgaXNzdWVzQnlQYXRoLFxuICAgICAgbWF4U2V2ZXJpdHlcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFF1aWNrIGNoZWNrIGlmIGlucHV0IG5lZWRzIG5vcm1hbGl6YXRpb24gKGhhcyBzdXNwaWNpb3VzIFVuaWNvZGUpXG4gICAqXG4gICAqIFRoaXMgaXMgYW4gb3B0aW1pemF0aW9uIC0geW91IGNhbiBjaGVjayBpZiBub3JtYWxpemF0aW9uIGlzIG5lZWRlZFxuICAgKiBiZWZvcmUgZG9pbmcgZXhwZW5zaXZlIHJlY3Vyc2l2ZSBub3JtYWxpemF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gaW5wdXQgLSBJbnB1dCBkYXRhIHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIFRydWUgaWYgaW5wdXQgY29udGFpbnMgcG90ZW50aWFsbHkgZGFuZ2Vyb3VzIFVuaWNvZGVcbiAgICovXG4gIHN0YXRpYyBuZWVkc05vcm1hbGl6YXRpb24oaW5wdXQ6IHVua25vd24pOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIFVuaWNvZGVWYWxpZGF0b3IuY29udGFpbnNEYW5nZXJvdXNVbmljb2RlKGlucHV0KTtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbnB1dCkpIHtcbiAgICAgIHJldHVybiBpbnB1dC5zb21lKGl0ZW0gPT4gdGhpcy5uZWVkc05vcm1hbGl6YXRpb24oaXRlbSkpO1xuICAgIH1cblxuICAgIGlmIChpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhpbnB1dCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikuc29tZShcbiAgICAgICAgdmFsdWUgPT4gdGhpcy5uZWVkc05vcm1hbGl6YXRpb24odmFsdWUpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suppressions.d.ts","sourceRoot":"","sources":["../../../../src/security/audit/config/suppressions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAqCD,eAAO,MAAM,YAAY,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"suppressions.d.ts","sourceRoot":"","sources":["../../../../src/security/audit/config/suppressions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAqCD,eAAO,MAAM,YAAY,EAAE,WAAW,EAskCrC,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CA8B/C;AAuJD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CA+CzE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAiBA"}
|