@nahisaho/musubix-security 1.8.0 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -0
- package/dist/analyzers/ai/index.d.ts +6 -0
- package/dist/analyzers/ai/index.d.ts.map +1 -0
- package/dist/analyzers/ai/index.js +6 -0
- package/dist/analyzers/ai/index.js.map +1 -0
- package/dist/analyzers/ai/prompt-injection-detector.d.ts +152 -0
- package/dist/analyzers/ai/prompt-injection-detector.d.ts.map +1 -0
- package/dist/analyzers/ai/prompt-injection-detector.js +468 -0
- package/dist/analyzers/ai/prompt-injection-detector.js.map +1 -0
- package/dist/analyzers/api/api-security-analyzer.d.ts +263 -0
- package/dist/analyzers/api/api-security-analyzer.d.ts.map +1 -0
- package/dist/analyzers/api/api-security-analyzer.js +581 -0
- package/dist/analyzers/api/api-security-analyzer.js.map +1 -0
- package/dist/analyzers/compliance/compliance-checker.d.ts +201 -0
- package/dist/analyzers/compliance/compliance-checker.d.ts.map +1 -0
- package/dist/analyzers/compliance/compliance-checker.js +772 -0
- package/dist/analyzers/compliance/compliance-checker.js.map +1 -0
- package/dist/analyzers/container/image-scanner.d.ts +163 -0
- package/dist/analyzers/container/image-scanner.d.ts.map +1 -0
- package/dist/analyzers/container/image-scanner.js +459 -0
- package/dist/analyzers/container/image-scanner.js.map +1 -0
- package/dist/analyzers/container/index.d.ts +6 -0
- package/dist/analyzers/container/index.d.ts.map +1 -0
- package/dist/analyzers/container/index.js +6 -0
- package/dist/analyzers/container/index.js.map +1 -0
- package/dist/analyzers/dashboard/security-dashboard.d.ts +286 -0
- package/dist/analyzers/dashboard/security-dashboard.d.ts.map +1 -0
- package/dist/analyzers/dashboard/security-dashboard.js +796 -0
- package/dist/analyzers/dashboard/security-dashboard.js.map +1 -0
- package/dist/analyzers/iac/iac-checker.d.ts +124 -0
- package/dist/analyzers/iac/iac-checker.d.ts.map +1 -0
- package/dist/analyzers/iac/iac-checker.js +755 -0
- package/dist/analyzers/iac/iac-checker.js.map +1 -0
- package/dist/analyzers/iac/index.d.ts +6 -0
- package/dist/analyzers/iac/index.d.ts.map +1 -0
- package/dist/analyzers/iac/index.js +6 -0
- package/dist/analyzers/iac/index.js.map +1 -0
- package/dist/analyzers/index.d.ts +9 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +13 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/analyzers/monitor/realtime-monitor.d.ts +216 -0
- package/dist/analyzers/monitor/realtime-monitor.d.ts.map +1 -0
- package/dist/analyzers/monitor/realtime-monitor.js +601 -0
- package/dist/analyzers/monitor/realtime-monitor.js.map +1 -0
- package/dist/analyzers/sast/index.d.ts +7 -0
- package/dist/analyzers/sast/index.d.ts.map +1 -0
- package/dist/analyzers/sast/index.js +7 -0
- package/dist/analyzers/sast/index.js.map +1 -0
- package/dist/analyzers/sast/interprocedural-analyzer.d.ts +276 -0
- package/dist/analyzers/sast/interprocedural-analyzer.d.ts.map +1 -0
- package/dist/analyzers/sast/interprocedural-analyzer.js +635 -0
- package/dist/analyzers/sast/interprocedural-analyzer.js.map +1 -0
- package/dist/analyzers/sast/zero-day-detector.d.ts +183 -0
- package/dist/analyzers/sast/zero-day-detector.d.ts.map +1 -0
- package/dist/analyzers/sast/zero-day-detector.js +593 -0
- package/dist/analyzers/sast/zero-day-detector.js.map +1 -0
- package/dist/analyzers/sca/dependency-scanner.d.ts +275 -0
- package/dist/analyzers/sca/dependency-scanner.d.ts.map +1 -0
- package/dist/analyzers/sca/dependency-scanner.js +642 -0
- package/dist/analyzers/sca/dependency-scanner.js.map +1 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +10 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/pipeline-manager.d.ts +105 -0
- package/dist/core/pipeline-manager.d.ts.map +1 -0
- package/dist/core/pipeline-manager.js +449 -0
- package/dist/core/pipeline-manager.js.map +1 -0
- package/dist/core/result-aggregator.d.ts +96 -0
- package/dist/core/result-aggregator.d.ts.map +1 -0
- package/dist/core/result-aggregator.js +462 -0
- package/dist/core/result-aggregator.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -1
- package/dist/integrations/ci-integration.d.ts +227 -0
- package/dist/integrations/ci-integration.d.ts.map +1 -0
- package/dist/integrations/ci-integration.js +472 -0
- package/dist/integrations/ci-integration.js.map +1 -0
- package/dist/integrations/git-hooks.d.ts +155 -0
- package/dist/integrations/git-hooks.d.ts.map +1 -0
- package/dist/integrations/git-hooks.js +425 -0
- package/dist/integrations/git-hooks.js.map +1 -0
- package/dist/integrations/index.d.ts +9 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +9 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/report-aggregator.d.ts +250 -0
- package/dist/integrations/report-aggregator.d.ts.map +1 -0
- package/dist/integrations/report-aggregator.js +488 -0
- package/dist/integrations/report-aggregator.js.map +1 -0
- package/dist/integrations/vscode-integration.d.ts +245 -0
- package/dist/integrations/vscode-integration.d.ts.map +1 -0
- package/dist/integrations/vscode-integration.js +449 -0
- package/dist/integrations/vscode-integration.js.map +1 -0
- package/dist/intelligence/attack-pattern-matcher.d.ts +217 -0
- package/dist/intelligence/attack-pattern-matcher.d.ts.map +1 -0
- package/dist/intelligence/attack-pattern-matcher.js +887 -0
- package/dist/intelligence/attack-pattern-matcher.js.map +1 -0
- package/dist/intelligence/index.d.ts +12 -0
- package/dist/intelligence/index.d.ts.map +1 -0
- package/dist/intelligence/index.js +18 -0
- package/dist/intelligence/index.js.map +1 -0
- package/dist/intelligence/neuro-symbolic-core.d.ts +88 -0
- package/dist/intelligence/neuro-symbolic-core.d.ts.map +1 -0
- package/dist/intelligence/neuro-symbolic-core.js +403 -0
- package/dist/intelligence/neuro-symbolic-core.js.map +1 -0
- package/dist/intelligence/predictive-analyzer.d.ts +317 -0
- package/dist/intelligence/predictive-analyzer.d.ts.map +1 -0
- package/dist/intelligence/predictive-analyzer.js +714 -0
- package/dist/intelligence/predictive-analyzer.js.map +1 -0
- package/dist/intelligence/risk-scorer.d.ts +333 -0
- package/dist/intelligence/risk-scorer.d.ts.map +1 -0
- package/dist/intelligence/risk-scorer.js +824 -0
- package/dist/intelligence/risk-scorer.js.map +1 -0
- package/dist/intelligence/security-analytics.d.ts +349 -0
- package/dist/intelligence/security-analytics.d.ts.map +1 -0
- package/dist/intelligence/security-analytics.js +813 -0
- package/dist/intelligence/security-analytics.js.map +1 -0
- package/dist/intelligence/threat-intelligence.d.ts +288 -0
- package/dist/intelligence/threat-intelligence.d.ts.map +1 -0
- package/dist/intelligence/threat-intelligence.js +639 -0
- package/dist/intelligence/threat-intelligence.js.map +1 -0
- package/dist/policy/index.d.ts +6 -0
- package/dist/policy/index.d.ts.map +1 -0
- package/dist/policy/index.js +6 -0
- package/dist/policy/index.js.map +1 -0
- package/dist/policy/policy-engine.d.ts +254 -0
- package/dist/policy/policy-engine.d.ts.map +1 -0
- package/dist/policy/policy-engine.js +651 -0
- package/dist/policy/policy-engine.js.map +1 -0
- package/dist/remediation/auto-fixer.d.ts +179 -0
- package/dist/remediation/auto-fixer.d.ts.map +1 -0
- package/dist/remediation/auto-fixer.js +540 -0
- package/dist/remediation/auto-fixer.js.map +1 -0
- package/dist/remediation/fix-validator.d.ts +195 -0
- package/dist/remediation/fix-validator.d.ts.map +1 -0
- package/dist/remediation/fix-validator.js +462 -0
- package/dist/remediation/fix-validator.js.map +1 -0
- package/dist/remediation/index.d.ts +10 -0
- package/dist/remediation/index.d.ts.map +1 -0
- package/dist/remediation/index.js +15 -0
- package/dist/remediation/index.js.map +1 -0
- package/dist/remediation/patch-generator.d.ts +203 -0
- package/dist/remediation/patch-generator.d.ts.map +1 -0
- package/dist/remediation/patch-generator.js +533 -0
- package/dist/remediation/patch-generator.js.map +1 -0
- package/dist/remediation/remediation-planner.d.ts +262 -0
- package/dist/remediation/remediation-planner.d.ts.map +1 -0
- package/dist/remediation/remediation-planner.js +531 -0
- package/dist/remediation/remediation-planner.js.map +1 -0
- package/dist/remediation/secure-code-transformer.d.ts +222 -0
- package/dist/remediation/secure-code-transformer.d.ts.map +1 -0
- package/dist/remediation/secure-code-transformer.js +625 -0
- package/dist/remediation/secure-code-transformer.js.map +1 -0
- package/dist/types/fix.d.ts +3 -1
- package/dist/types/fix.d.ts.map +1 -1
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/interprocedural.d.ts +203 -0
- package/dist/types/interprocedural.d.ts.map +1 -0
- package/dist/types/interprocedural.js +7 -0
- package/dist/types/interprocedural.js.map +1 -0
- package/dist/types/neuro-symbolic.d.ts +179 -0
- package/dist/types/neuro-symbolic.d.ts.map +1 -0
- package/dist/types/neuro-symbolic.js +7 -0
- package/dist/types/neuro-symbolic.js.map +1 -0
- package/dist/types/pipeline.d.ts +173 -0
- package/dist/types/pipeline.d.ts.map +1 -0
- package/dist/types/pipeline.js +7 -0
- package/dist/types/pipeline.js.map +1 -0
- package/dist/types/result.d.ts +134 -0
- package/dist/types/result.d.ts.map +1 -0
- package/dist/types/result.js +25 -0
- package/dist/types/result.js.map +1 -0
- package/dist/types/vulnerability.d.ts +2 -2
- package/dist/types/vulnerability.d.ts.map +1 -1
- package/dist/types/zero-day.d.ts +146 -0
- package/dist/types/zero-day.d.ts.map +1 -0
- package/dist/types/zero-day.js +7 -0
- package/dist/types/zero-day.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Secure Code Transformer
|
|
3
|
+
* @module @nahisaho/musubix-security/remediation/secure-code-transformer
|
|
4
|
+
*
|
|
5
|
+
* Transforms insecure code patterns into secure alternatives using
|
|
6
|
+
* AST-based transformations and secure coding patterns.
|
|
7
|
+
*/
|
|
8
|
+
import type { SourceLocation, Vulnerability } from '../types/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Code transformation
|
|
11
|
+
*/
|
|
12
|
+
export interface CodeTransformation {
|
|
13
|
+
/** Transformation ID */
|
|
14
|
+
id: string;
|
|
15
|
+
/** Transformation name */
|
|
16
|
+
name: string;
|
|
17
|
+
/** Category */
|
|
18
|
+
category: TransformationCategory;
|
|
19
|
+
/** Pattern to match */
|
|
20
|
+
pattern: CodePattern;
|
|
21
|
+
/** Replacement pattern */
|
|
22
|
+
replacement: ReplacementPattern;
|
|
23
|
+
/** Description */
|
|
24
|
+
description: string;
|
|
25
|
+
/** Risk level */
|
|
26
|
+
riskLevel: 'safe' | 'caution' | 'review-required';
|
|
27
|
+
/** Applicable languages */
|
|
28
|
+
languages: string[];
|
|
29
|
+
/** Required imports */
|
|
30
|
+
imports?: ImportSpec[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Transformation category
|
|
34
|
+
*/
|
|
35
|
+
export type TransformationCategory = 'input-validation' | 'output-encoding' | 'authentication' | 'authorization' | 'cryptography' | 'data-protection' | 'error-handling' | 'logging' | 'session-management' | 'general';
|
|
36
|
+
/**
|
|
37
|
+
* Code pattern
|
|
38
|
+
*/
|
|
39
|
+
export interface CodePattern {
|
|
40
|
+
/** Pattern type */
|
|
41
|
+
type: 'regex' | 'ast' | 'function-call' | 'api-usage';
|
|
42
|
+
/** Pattern value */
|
|
43
|
+
value: string;
|
|
44
|
+
/** Flags (for regex) */
|
|
45
|
+
flags?: string;
|
|
46
|
+
/** Context requirements */
|
|
47
|
+
context?: PatternContext;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Pattern context
|
|
51
|
+
*/
|
|
52
|
+
export interface PatternContext {
|
|
53
|
+
/** Must be inside function */
|
|
54
|
+
insideFunction?: boolean;
|
|
55
|
+
/** Must be inside class */
|
|
56
|
+
insideClass?: boolean;
|
|
57
|
+
/** Must have specific imports */
|
|
58
|
+
hasImports?: string[];
|
|
59
|
+
/** File extension */
|
|
60
|
+
fileExtension?: string[];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Replacement pattern
|
|
64
|
+
*/
|
|
65
|
+
export interface ReplacementPattern {
|
|
66
|
+
/** Replacement type */
|
|
67
|
+
type: 'template' | 'function' | 'snippet';
|
|
68
|
+
/** Template/snippet value */
|
|
69
|
+
value: string;
|
|
70
|
+
/** Capture group mappings */
|
|
71
|
+
captures?: Record<string, string>;
|
|
72
|
+
/** Wrap existing code */
|
|
73
|
+
wrapExisting?: boolean;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Import specification
|
|
77
|
+
*/
|
|
78
|
+
export interface ImportSpec {
|
|
79
|
+
/** Module name */
|
|
80
|
+
module: string;
|
|
81
|
+
/** Named imports */
|
|
82
|
+
named?: string[];
|
|
83
|
+
/** Default import */
|
|
84
|
+
default?: string;
|
|
85
|
+
/** Is type import */
|
|
86
|
+
typeOnly?: boolean;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Transformation result
|
|
90
|
+
*/
|
|
91
|
+
export interface TransformationResult {
|
|
92
|
+
/** Whether transformation succeeded */
|
|
93
|
+
success: boolean;
|
|
94
|
+
/** Original code */
|
|
95
|
+
originalCode: string;
|
|
96
|
+
/** Transformed code */
|
|
97
|
+
transformedCode: string;
|
|
98
|
+
/** Applied transformations */
|
|
99
|
+
transformationsApplied: AppliedTransformation[];
|
|
100
|
+
/** Warnings */
|
|
101
|
+
warnings: string[];
|
|
102
|
+
/** Errors */
|
|
103
|
+
errors: string[];
|
|
104
|
+
/** Required imports */
|
|
105
|
+
requiredImports: ImportSpec[];
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Applied transformation
|
|
109
|
+
*/
|
|
110
|
+
export interface AppliedTransformation {
|
|
111
|
+
/** Transformation ID */
|
|
112
|
+
transformationId: string;
|
|
113
|
+
/** Location in code */
|
|
114
|
+
location: SourceLocation;
|
|
115
|
+
/** Original code snippet */
|
|
116
|
+
original: string;
|
|
117
|
+
/** Replacement code */
|
|
118
|
+
replacement: string;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Transformer options
|
|
122
|
+
*/
|
|
123
|
+
export interface SecureCodeTransformerOptions {
|
|
124
|
+
/** Custom transformations */
|
|
125
|
+
customTransformations?: CodeTransformation[];
|
|
126
|
+
/** Enable specific categories */
|
|
127
|
+
enabledCategories?: TransformationCategory[];
|
|
128
|
+
/** Target language */
|
|
129
|
+
language?: string;
|
|
130
|
+
/** Preserve formatting */
|
|
131
|
+
preserveFormatting?: boolean;
|
|
132
|
+
/** Dry run (preview only) */
|
|
133
|
+
dryRun?: boolean;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Transform options
|
|
137
|
+
*/
|
|
138
|
+
export interface TransformOptions {
|
|
139
|
+
/** Only apply specific transformations */
|
|
140
|
+
onlyTransformations?: string[];
|
|
141
|
+
/** Exclude transformations */
|
|
142
|
+
excludeTransformations?: string[];
|
|
143
|
+
/** Target specific vulnerabilities */
|
|
144
|
+
targetVulnerabilities?: Vulnerability[];
|
|
145
|
+
/** Max transformations */
|
|
146
|
+
maxTransformations?: number;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Transforms insecure code patterns to secure alternatives
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```typescript
|
|
153
|
+
* const transformer = createSecureCodeTransformer();
|
|
154
|
+
* const result = transformer.transform(code, { targetVulnerabilities: [...] });
|
|
155
|
+
* console.log(result.transformedCode);
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
export declare class SecureCodeTransformer {
|
|
159
|
+
private transformations;
|
|
160
|
+
private options;
|
|
161
|
+
constructor(options?: SecureCodeTransformerOptions);
|
|
162
|
+
/**
|
|
163
|
+
* Transform code using security patterns
|
|
164
|
+
*/
|
|
165
|
+
transform(code: string, options?: TransformOptions): TransformationResult;
|
|
166
|
+
/**
|
|
167
|
+
* Transform code for specific vulnerability
|
|
168
|
+
*/
|
|
169
|
+
transformForVulnerability(code: string, vulnerability: Vulnerability): TransformationResult;
|
|
170
|
+
/**
|
|
171
|
+
* Get available transformations
|
|
172
|
+
*/
|
|
173
|
+
getAvailableTransformations(): CodeTransformation[];
|
|
174
|
+
/**
|
|
175
|
+
* Get transformations by category
|
|
176
|
+
*/
|
|
177
|
+
getTransformationsByCategory(category: TransformationCategory): CodeTransformation[];
|
|
178
|
+
/**
|
|
179
|
+
* Add custom transformation
|
|
180
|
+
*/
|
|
181
|
+
addTransformation(transformation: CodeTransformation): void;
|
|
182
|
+
/**
|
|
183
|
+
* Remove transformation
|
|
184
|
+
*/
|
|
185
|
+
removeTransformation(id: string): boolean;
|
|
186
|
+
/**
|
|
187
|
+
* Preview transformation without applying
|
|
188
|
+
*/
|
|
189
|
+
preview(code: string, transformationId: string): {
|
|
190
|
+
matches: Array<{
|
|
191
|
+
location: SourceLocation;
|
|
192
|
+
original: string;
|
|
193
|
+
preview: string;
|
|
194
|
+
}>;
|
|
195
|
+
wouldApply: boolean;
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* Validate code after transformation
|
|
199
|
+
*/
|
|
200
|
+
validateTransformation(_originalCode: string, transformedCode: string): {
|
|
201
|
+
valid: boolean;
|
|
202
|
+
issues: string[];
|
|
203
|
+
};
|
|
204
|
+
private getApplicableTransformations;
|
|
205
|
+
private applyTransformation;
|
|
206
|
+
private generateReplacement;
|
|
207
|
+
private addImports;
|
|
208
|
+
private mapVulnerabilityToCategory;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Create a secure code transformer
|
|
212
|
+
*/
|
|
213
|
+
export declare function createSecureCodeTransformer(options?: SecureCodeTransformerOptions): SecureCodeTransformer;
|
|
214
|
+
/**
|
|
215
|
+
* Quick transform code
|
|
216
|
+
*/
|
|
217
|
+
export declare function quickTransform(code: string): TransformationResult;
|
|
218
|
+
/**
|
|
219
|
+
* Get all built-in transformations
|
|
220
|
+
*/
|
|
221
|
+
export declare function getBuiltInTransformations(): CodeTransformation[];
|
|
222
|
+
//# sourceMappingURL=secure-code-transformer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secure-code-transformer.d.ts","sourceRoot":"","sources":["../../src/remediation/secure-code-transformer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAMvE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,eAAe;IACf,QAAQ,EAAE,sBAAsB,CAAC;IACjC,uBAAuB;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,0BAA0B;IAC1B,WAAW,EAAE,kBAAkB,CAAC;IAChC,kBAAkB;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB;IACjB,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,CAAC;IAClD,2BAA2B;IAC3B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,uBAAuB;IACvB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAC9B,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,iBAAiB,GACjB,gBAAgB,GAChB,SAAS,GACT,oBAAoB,GACpB,SAAS,CAAC;AAEd;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mBAAmB;IACnB,IAAI,EAAE,OAAO,GAAG,KAAK,GAAG,eAAe,GAAG,WAAW,CAAC;IACtD,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uBAAuB;IACvB,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IAC1C,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,yBAAyB;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,8BAA8B;IAC9B,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAChD,eAAe;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,uBAAuB;IACvB,eAAe,EAAE,UAAU,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,wBAAwB;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB;IACvB,QAAQ,EAAE,cAAc,CAAC;IACzB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,6BAA6B;IAC7B,qBAAqB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC7C,iCAAiC;IACjC,iBAAiB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC7C,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,6BAA6B;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,8BAA8B;IAC9B,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,sCAAsC;IACtC,qBAAqB,CAAC,EAAE,aAAa,EAAE,CAAC;IACxC,0BAA0B;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AA0OD;;;;;;;;;GASG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,OAAO,CAEb;gBAEU,OAAO,GAAE,4BAAiC;IA6BtD;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,oBAAoB;IA2D7E;;OAEG;IACH,yBAAyB,CACvB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,aAAa,GAC3B,oBAAoB;IAWvB;;OAEG;IACH,2BAA2B,IAAI,kBAAkB,EAAE;IAInD;;OAEG;IACH,4BAA4B,CAAC,QAAQ,EAAE,sBAAsB,GAAG,kBAAkB,EAAE;IAKpF;;OAEG;IACH,iBAAiB,CAAC,cAAc,EAAE,kBAAkB,GAAG,IAAI;IAI3D;;OAEG;IACH,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIzC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG;QAC/C,OAAO,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,cAAc,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChF,UAAU,EAAE,OAAO,CAAC;KACrB;IA8DD;;OAEG;IACH,sBAAsB,CACpB,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,GACtB;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAuCvC,OAAO,CAAC,4BAA4B;IAkCpC,OAAO,CAAC,mBAAmB;IAsF3B,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,UAAU;IAkDlB,OAAO,CAAC,0BAA0B;CAenC;AAMD;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,CAAC,EAAE,4BAA4B,GACrC,qBAAqB,CAEvB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,CAGjE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,kBAAkB,EAAE,CAEhE"}
|