tywrap 0.8.0 → 0.9.0
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 +22 -7
- package/SECURITY.md +39 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +8 -0
- package/dist/config/index.js.map +1 -1
- package/dist/core/annotation-parser.d.ts +2 -1
- package/dist/core/annotation-parser.d.ts.map +1 -1
- package/dist/core/annotation-parser.js +6 -3
- package/dist/core/annotation-parser.js.map +1 -1
- package/dist/core/generator.d.ts +23 -4
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/generator.js +243 -170
- package/dist/core/generator.js.map +1 -1
- package/dist/core/mapper.d.ts +3 -2
- package/dist/core/mapper.d.ts.map +1 -1
- package/dist/core/mapper.js +5 -5
- package/dist/core/mapper.js.map +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/runtime/base-bridge.d.ts +3 -7
- package/dist/runtime/base-bridge.d.ts.map +1 -1
- package/dist/runtime/base-bridge.js +4 -17
- package/dist/runtime/base-bridge.js.map +1 -1
- package/dist/runtime/bounded-context.d.ts +3 -22
- package/dist/runtime/bounded-context.d.ts.map +1 -1
- package/dist/runtime/bounded-context.js +13 -53
- package/dist/runtime/bounded-context.js.map +1 -1
- package/dist/runtime/bridge-codec.d.ts +1 -1
- package/dist/runtime/bridge-codec.d.ts.map +1 -1
- package/dist/runtime/bridge-codec.js +78 -55
- package/dist/runtime/bridge-codec.js.map +1 -1
- package/dist/runtime/errors.d.ts +16 -0
- package/dist/runtime/errors.d.ts.map +1 -1
- package/dist/runtime/errors.js +17 -0
- package/dist/runtime/errors.js.map +1 -1
- package/dist/runtime/http-transport.d.ts +1 -1
- package/dist/runtime/http-transport.d.ts.map +1 -1
- package/dist/runtime/http-transport.js +1 -1
- package/dist/runtime/http-transport.js.map +1 -1
- package/dist/runtime/index.d.ts +1 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +1 -0
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/node.d.ts +7 -36
- package/dist/runtime/node.d.ts.map +1 -1
- package/dist/runtime/node.js +2 -80
- package/dist/runtime/node.js.map +1 -1
- package/dist/runtime/pooled-transport.d.ts +120 -59
- package/dist/runtime/pooled-transport.d.ts.map +1 -1
- package/dist/runtime/pooled-transport.js +345 -78
- package/dist/runtime/pooled-transport.js.map +1 -1
- package/dist/runtime/pyodide-bootstrap-core.generated.d.ts.map +1 -1
- package/dist/runtime/pyodide-bootstrap-core.generated.js +1 -1
- package/dist/runtime/pyodide-bootstrap-core.generated.js.map +1 -1
- package/dist/runtime/pyodide-transport.d.ts +1 -1
- package/dist/runtime/pyodide-transport.d.ts.map +1 -1
- package/dist/runtime/pyodide-transport.js +2 -3
- package/dist/runtime/pyodide-transport.js.map +1 -1
- package/dist/runtime/rpc-client.d.ts +7 -36
- package/dist/runtime/rpc-client.d.ts.map +1 -1
- package/dist/runtime/rpc-client.js +20 -102
- package/dist/runtime/rpc-client.js.map +1 -1
- package/dist/runtime/subprocess-transport.d.ts +30 -69
- package/dist/runtime/subprocess-transport.d.ts.map +1 -1
- package/dist/runtime/subprocess-transport.js +179 -236
- package/dist/runtime/subprocess-transport.js.map +1 -1
- package/dist/runtime/timed-out-request-tracker.d.ts +2 -1
- package/dist/runtime/timed-out-request-tracker.d.ts.map +1 -1
- package/dist/runtime/transport.d.ts +9 -19
- package/dist/runtime/transport.d.ts.map +1 -1
- package/dist/runtime/transport.js +1 -1
- package/dist/runtime/transport.js.map +1 -1
- package/dist/runtime/validators.d.ts +49 -0
- package/dist/runtime/validators.d.ts.map +1 -1
- package/dist/runtime/validators.js +152 -0
- package/dist/runtime/validators.js.map +1 -1
- package/dist/types/index.d.ts +14 -39
- package/dist/types/index.d.ts.map +1 -1
- package/dist/tywrap.d.ts +3 -2
- package/dist/tywrap.d.ts.map +1 -1
- package/dist/tywrap.js +140 -13
- package/dist/tywrap.js.map +1 -1
- package/dist/utils/cache.d.ts +3 -16
- package/dist/utils/cache.d.ts.map +1 -1
- package/dist/utils/codec.d.ts +1 -0
- package/dist/utils/codec.d.ts.map +1 -1
- package/dist/utils/codec.js +13 -13
- package/dist/utils/codec.js.map +1 -1
- package/dist/utils/ir-cache.d.ts +2 -1
- package/dist/utils/ir-cache.d.ts.map +1 -1
- package/dist/utils/runtime.d.ts +0 -29
- package/dist/utils/runtime.d.ts.map +1 -1
- package/dist/utils/runtime.js +16 -107
- package/dist/utils/runtime.js.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +7 -6
- package/runtime/frame_codec.py +7 -1
- package/runtime/python_bridge.py +85 -125
- package/runtime/tywrap_bridge_core.py +133 -150
- package/src/config/index.ts +11 -0
- package/src/core/annotation-parser.ts +7 -4
- package/src/core/generator.ts +315 -205
- package/src/core/mapper.ts +8 -8
- package/src/index.ts +7 -4
- package/src/runtime/base-bridge.ts +5 -30
- package/src/runtime/bounded-context.ts +12 -67
- package/src/runtime/bridge-codec.ts +94 -65
- package/src/runtime/errors.ts +21 -0
- package/src/runtime/http-transport.ts +6 -1
- package/src/runtime/index.ts +6 -0
- package/src/runtime/node.ts +9 -120
- package/src/runtime/pooled-transport.ts +424 -90
- package/src/runtime/pyodide-bootstrap-core.generated.ts +1 -1
- package/src/runtime/pyodide-transport.ts +7 -3
- package/src/runtime/rpc-client.ts +37 -139
- package/src/runtime/subprocess-transport.ts +210 -285
- package/src/runtime/timed-out-request-tracker.ts +1 -1
- package/src/runtime/transport.ts +15 -23
- package/src/runtime/validators.ts +204 -0
- package/src/types/index.ts +21 -60
- package/src/tywrap.ts +157 -22
- package/src/utils/cache.ts +3 -3
- package/src/utils/codec.ts +21 -13
- package/src/utils/ir-cache.ts +1 -1
- package/src/utils/runtime.ts +17 -128
- package/src/version.ts +1 -1
- package/dist/core/discovery.d.ts +0 -103
- package/dist/core/discovery.d.ts.map +0 -1
- package/dist/core/discovery.js +0 -380
- package/dist/core/discovery.js.map +0 -1
- package/dist/core/validation.d.ts +0 -102
- package/dist/core/validation.d.ts.map +0 -1
- package/dist/core/validation.js +0 -490
- package/dist/core/validation.js.map +0 -1
- package/dist/runtime/base.d.ts +0 -22
- package/dist/runtime/base.d.ts.map +0 -1
- package/dist/runtime/base.js +0 -23
- package/dist/runtime/base.js.map +0 -1
- package/dist/runtime/transport-pool.d.ts +0 -196
- package/dist/runtime/transport-pool.d.ts.map +0 -1
- package/dist/runtime/transport-pool.js +0 -418
- package/dist/runtime/transport-pool.js.map +0 -1
- package/runtime/__pycache__/_tywrap_conformance_chunking_fixtures.cpython-311.pyc +0 -0
- package/runtime/__pycache__/_tywrap_member_fixtures.cpython-311.pyc +0 -0
- package/runtime/__pycache__/_tywrap_w4_chunking_fixture.cpython-311.pyc +0 -0
- package/runtime/__pycache__/_tywrap_w5_request_chunking_fixture.cpython-311.pyc +0 -0
- package/runtime/__pycache__/_tywrap_w6_pool_chunking_fixture.cpython-311.pyc +0 -0
- package/runtime/__pycache__/frame_codec.cpython-311.pyc +0 -0
- package/runtime/__pycache__/safe_codec.cpython-311.pyc +0 -0
- package/runtime/__pycache__/tywrap_bridge_core.cpython-311.pyc +0 -0
- package/runtime/safe_codec.py +0 -352
- package/src/core/discovery.ts +0 -477
- package/src/core/validation.ts +0 -729
- package/src/runtime/base.ts +0 -24
- package/src/runtime/transport-pool.ts +0 -538
package/dist/core/validation.js
DELETED
|
@@ -1,490 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Error Handling & Validation Framework
|
|
3
|
-
*
|
|
4
|
-
* Comprehensive error handling, syntax validation, and analysis reporting system
|
|
5
|
-
*/
|
|
6
|
-
export class ValidationEngine {
|
|
7
|
-
config;
|
|
8
|
-
constructor(config = {}) {
|
|
9
|
-
this.config = {
|
|
10
|
-
strictTypeChecking: config.strictTypeChecking ?? true,
|
|
11
|
-
allowMissingTypeHints: config.allowMissingTypeHints ?? false,
|
|
12
|
-
maxComplexityScore: 10,
|
|
13
|
-
deprecatedPatterns: [],
|
|
14
|
-
requiredDocstrings: false,
|
|
15
|
-
...config,
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Validate Python functions for type safety and best practices
|
|
20
|
-
*/
|
|
21
|
-
validateFunction(func, filePath) {
|
|
22
|
-
const errors = [];
|
|
23
|
-
const warnings = [];
|
|
24
|
-
const recommendations = [];
|
|
25
|
-
// Check type hints
|
|
26
|
-
this.validateTypeHints(func, errors, warnings);
|
|
27
|
-
// Check docstring
|
|
28
|
-
this.validateDocstring(func, warnings, filePath);
|
|
29
|
-
// Check parameter patterns
|
|
30
|
-
this.validateParameters(func, warnings, filePath);
|
|
31
|
-
// Check for deprecated patterns
|
|
32
|
-
this.validateDeprecatedPatterns(func, warnings, filePath);
|
|
33
|
-
// Check complexity
|
|
34
|
-
this.validateComplexity(func, warnings, filePath);
|
|
35
|
-
// Generate recommendations
|
|
36
|
-
this.generateFunctionRecommendations(func, recommendations, filePath);
|
|
37
|
-
const statistics = this.calculateFunctionStatistics(func, errors, warnings);
|
|
38
|
-
return {
|
|
39
|
-
errors,
|
|
40
|
-
warnings,
|
|
41
|
-
statistics,
|
|
42
|
-
recommendations,
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Validate Python classes for structure and best practices
|
|
47
|
-
*/
|
|
48
|
-
validateClass(cls, filePath) {
|
|
49
|
-
const errors = [];
|
|
50
|
-
const warnings = [];
|
|
51
|
-
const recommendations = [];
|
|
52
|
-
// Validate each method
|
|
53
|
-
for (const method of cls.methods) {
|
|
54
|
-
const methodReport = this.validateFunction(method, filePath);
|
|
55
|
-
errors.push(...methodReport.errors);
|
|
56
|
-
warnings.push(...methodReport.warnings);
|
|
57
|
-
recommendations.push(...methodReport.recommendations);
|
|
58
|
-
}
|
|
59
|
-
// Validate class-specific patterns
|
|
60
|
-
this.validateClassStructure(cls, warnings, filePath);
|
|
61
|
-
this.validateInheritance(cls, warnings, filePath);
|
|
62
|
-
const statistics = this.calculateClassStatistics(cls, errors, warnings);
|
|
63
|
-
return {
|
|
64
|
-
errors,
|
|
65
|
-
warnings,
|
|
66
|
-
statistics,
|
|
67
|
-
recommendations,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Validate type annotations for correctness
|
|
72
|
-
*/
|
|
73
|
-
validateTypeAnnotation(type, context = '') {
|
|
74
|
-
const errors = [];
|
|
75
|
-
try {
|
|
76
|
-
this.validateTypeStructure(type, errors, context);
|
|
77
|
-
}
|
|
78
|
-
catch (error) {
|
|
79
|
-
errors.push({
|
|
80
|
-
type: 'type',
|
|
81
|
-
message: `Type validation failed: ${error}`,
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
return errors;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Generate comprehensive analysis report
|
|
88
|
-
*/
|
|
89
|
-
generateReport(functions, classes, filePath) {
|
|
90
|
-
const errors = [];
|
|
91
|
-
const warnings = [];
|
|
92
|
-
const recommendations = [];
|
|
93
|
-
// Validate all functions
|
|
94
|
-
for (const func of functions) {
|
|
95
|
-
const funcReport = this.validateFunction(func, filePath);
|
|
96
|
-
errors.push(...funcReport.errors);
|
|
97
|
-
warnings.push(...funcReport.warnings);
|
|
98
|
-
recommendations.push(...funcReport.recommendations);
|
|
99
|
-
}
|
|
100
|
-
// Validate all classes
|
|
101
|
-
for (const cls of classes) {
|
|
102
|
-
const classReport = this.validateClass(cls, filePath);
|
|
103
|
-
errors.push(...classReport.errors);
|
|
104
|
-
warnings.push(...classReport.warnings);
|
|
105
|
-
recommendations.push(...classReport.recommendations);
|
|
106
|
-
}
|
|
107
|
-
// Generate module-level recommendations
|
|
108
|
-
this.generateModuleRecommendations(functions, classes, recommendations, filePath);
|
|
109
|
-
const statistics = this.calculateModuleStatistics(functions, classes, errors, warnings);
|
|
110
|
-
return {
|
|
111
|
-
errors,
|
|
112
|
-
warnings,
|
|
113
|
-
statistics,
|
|
114
|
-
recommendations,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Private validation methods
|
|
119
|
-
*/
|
|
120
|
-
validateTypeHints(func, errors, warnings) {
|
|
121
|
-
this.checkReturnTypeHint(func, errors, warnings);
|
|
122
|
-
// Check parameter types (skip 'self' and 'cls' parameters)
|
|
123
|
-
for (const param of func.parameters) {
|
|
124
|
-
this.checkParameterTypeHint(func, param, errors, warnings);
|
|
125
|
-
this.checkParameterTypeStructure(param, errors);
|
|
126
|
-
}
|
|
127
|
-
this.checkReturnTypeStructure(func, errors);
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Emit a missing-type warning, and—in strict mode—an accompanying error.
|
|
131
|
-
* In strict mode without allowMissingTypeHints, we warn first then error.
|
|
132
|
-
*/
|
|
133
|
-
reportMissingType(warningMessage, errorMessage, warnings, errors) {
|
|
134
|
-
if (this.config.allowMissingTypeHints) {
|
|
135
|
-
warnings.push({ type: 'missing-type', message: warningMessage });
|
|
136
|
-
}
|
|
137
|
-
else if (this.config.strictTypeChecking) {
|
|
138
|
-
warnings.push({ type: 'missing-type', message: warningMessage });
|
|
139
|
-
errors.push({ type: 'type', message: errorMessage });
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Check the function return type annotation (skip __init__ methods as they
|
|
144
|
-
* conventionally don't need return type annotations).
|
|
145
|
-
*/
|
|
146
|
-
checkReturnTypeHint(func, errors, warnings) {
|
|
147
|
-
if (this.isEmptyType(func.returnType) && func.name !== '__init__') {
|
|
148
|
-
this.reportMissingType(`Function '${func.name}' is missing return type annotation`, `Function '${func.name}' requires return type annotation`, warnings, errors);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Check a single parameter's type annotation (skip 'self' and 'cls').
|
|
153
|
-
*/
|
|
154
|
-
checkParameterTypeHint(func, param, errors, warnings) {
|
|
155
|
-
if (this.isEmptyType(param.type) && param.name !== 'self' && param.name !== 'cls') {
|
|
156
|
-
this.reportMissingType(`Parameter '${param.name}' in function '${func.name}' is missing type annotation`, `Parameter '${param.name}' in function '${func.name}' requires type annotation`, warnings, errors);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Validate a single parameter's type structure only in strict mode
|
|
161
|
-
* (skip 'self' and 'cls' parameters).
|
|
162
|
-
*/
|
|
163
|
-
checkParameterTypeStructure(param, errors) {
|
|
164
|
-
if (this.config.strictTypeChecking &&
|
|
165
|
-
!this.config.allowMissingTypeHints &&
|
|
166
|
-
param.name !== 'self' &&
|
|
167
|
-
param.name !== 'cls') {
|
|
168
|
-
const typeErrors = this.validateTypeAnnotation(param.type, `parameter '${param.name}'`);
|
|
169
|
-
errors.push(...typeErrors);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Validate the return type structure only in strict mode.
|
|
174
|
-
*/
|
|
175
|
-
checkReturnTypeStructure(func, errors) {
|
|
176
|
-
if (this.config.strictTypeChecking && !this.config.allowMissingTypeHints) {
|
|
177
|
-
const returnTypeErrors = this.validateTypeAnnotation(func.returnType, 'return type');
|
|
178
|
-
errors.push(...returnTypeErrors);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
validateDocstring(func, warnings, filePath) {
|
|
182
|
-
if (this.config.requiredDocstrings && !func.docstring) {
|
|
183
|
-
warnings.push({
|
|
184
|
-
type: 'missing-type',
|
|
185
|
-
message: `Function '${func.name}' is missing docstring`,
|
|
186
|
-
file: filePath,
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
// Check docstring quality
|
|
190
|
-
if (func.docstring && func.docstring.length < 10) {
|
|
191
|
-
warnings.push({
|
|
192
|
-
type: 'missing-type',
|
|
193
|
-
message: `Function '${func.name}' has very short docstring`,
|
|
194
|
-
file: filePath,
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
validateParameters(func, warnings, filePath) {
|
|
199
|
-
// Check for too many parameters
|
|
200
|
-
if (func.parameters.length > 8) {
|
|
201
|
-
warnings.push({
|
|
202
|
-
type: 'performance',
|
|
203
|
-
message: `Function '${func.name}' has too many parameters (${func.parameters.length})`,
|
|
204
|
-
file: filePath,
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
// Check parameter naming
|
|
208
|
-
for (const param of func.parameters) {
|
|
209
|
-
if (param.name.length < 2 && !['x', 'y', 'z', 'i', 'j', 'k'].includes(param.name)) {
|
|
210
|
-
warnings.push({
|
|
211
|
-
type: 'missing-type',
|
|
212
|
-
message: `Parameter '${param.name}' in function '${func.name}' should have a more descriptive name`,
|
|
213
|
-
file: filePath,
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
validateDeprecatedPatterns(func, warnings, filePath) {
|
|
219
|
-
for (const pattern of this.config.deprecatedPatterns) {
|
|
220
|
-
if (func.name.includes(pattern)) {
|
|
221
|
-
warnings.push({
|
|
222
|
-
type: 'deprecated',
|
|
223
|
-
message: `Function '${func.name}' uses deprecated pattern '${pattern}'`,
|
|
224
|
-
file: filePath,
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
validateComplexity(func, warnings, filePath) {
|
|
230
|
-
// Simple complexity estimation based on parameters and async/generator flags
|
|
231
|
-
let complexity = func.parameters.length * 0.5;
|
|
232
|
-
if (func.isAsync) {
|
|
233
|
-
complexity += 1;
|
|
234
|
-
}
|
|
235
|
-
if (func.isGenerator) {
|
|
236
|
-
complexity += 1;
|
|
237
|
-
}
|
|
238
|
-
if (func.decorators.length > 0) {
|
|
239
|
-
complexity += func.decorators.length * 0.5;
|
|
240
|
-
}
|
|
241
|
-
if (complexity > this.config.maxComplexityScore) {
|
|
242
|
-
warnings.push({
|
|
243
|
-
type: 'performance',
|
|
244
|
-
message: `Function '${func.name}' has high complexity (${complexity.toFixed(1)})`,
|
|
245
|
-
file: filePath,
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
validateClassStructure(cls, warnings, filePath) {
|
|
250
|
-
// Check for empty classes
|
|
251
|
-
if (cls.methods.length === 0 && cls.properties.length === 0) {
|
|
252
|
-
warnings.push({
|
|
253
|
-
type: 'missing-type',
|
|
254
|
-
message: `Class '${cls.name}' appears to be empty`,
|
|
255
|
-
file: filePath,
|
|
256
|
-
});
|
|
257
|
-
}
|
|
258
|
-
// Check for missing __init__ method
|
|
259
|
-
const hasInit = cls.methods.some(method => method.name === '__init__');
|
|
260
|
-
if (!hasInit && cls.properties.length > 0) {
|
|
261
|
-
warnings.push({
|
|
262
|
-
type: 'missing-type',
|
|
263
|
-
message: `Class '${cls.name}' has properties but no __init__ method`,
|
|
264
|
-
file: filePath,
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
validateInheritance(cls, warnings, filePath) {
|
|
269
|
-
// Check for deep inheritance chains
|
|
270
|
-
if (cls.bases.length > 3) {
|
|
271
|
-
warnings.push({
|
|
272
|
-
type: 'compatibility',
|
|
273
|
-
message: `Class '${cls.name}' inherits from many classes (${cls.bases.length})`,
|
|
274
|
-
file: filePath,
|
|
275
|
-
});
|
|
276
|
-
}
|
|
277
|
-
// Check for diamond inheritance pattern
|
|
278
|
-
if (cls.bases.length > 1) {
|
|
279
|
-
warnings.push({
|
|
280
|
-
type: 'compatibility',
|
|
281
|
-
message: `Class '${cls.name}' uses multiple inheritance, consider composition`,
|
|
282
|
-
file: filePath,
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
validateTypeStructure(type, errors, context) {
|
|
287
|
-
switch (type.kind) {
|
|
288
|
-
case 'union':
|
|
289
|
-
if (type.types.length < 2) {
|
|
290
|
-
errors.push({
|
|
291
|
-
type: 'type',
|
|
292
|
-
message: `Union type in ${context} should have at least 2 types`,
|
|
293
|
-
});
|
|
294
|
-
}
|
|
295
|
-
// Recursively validate union member types
|
|
296
|
-
for (const unionType of type.types) {
|
|
297
|
-
this.validateTypeStructure(unionType, errors, context);
|
|
298
|
-
}
|
|
299
|
-
break;
|
|
300
|
-
case 'collection':
|
|
301
|
-
if (type.itemTypes.length === 0 && ['list', 'dict', 'set'].includes(type.name)) {
|
|
302
|
-
errors.push({
|
|
303
|
-
type: 'type',
|
|
304
|
-
message: `Collection type '${type.name}' in ${context} should specify item types`,
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
|
-
// Recursively validate item types
|
|
308
|
-
for (const itemType of type.itemTypes) {
|
|
309
|
-
this.validateTypeStructure(itemType, errors, context);
|
|
310
|
-
}
|
|
311
|
-
break;
|
|
312
|
-
case 'optional':
|
|
313
|
-
this.validateTypeStructure(type.type, errors, context);
|
|
314
|
-
break;
|
|
315
|
-
case 'generic':
|
|
316
|
-
// Validate generic arguments
|
|
317
|
-
for (const arg of type.typeArgs) {
|
|
318
|
-
this.validateTypeStructure(arg, errors, context);
|
|
319
|
-
}
|
|
320
|
-
break;
|
|
321
|
-
case 'custom':
|
|
322
|
-
// Could add checks for known custom types
|
|
323
|
-
break;
|
|
324
|
-
case 'primitive':
|
|
325
|
-
// Basic types are always valid
|
|
326
|
-
break;
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
isEmptyType(type) {
|
|
330
|
-
return type.kind === 'primitive' && type.name === 'None';
|
|
331
|
-
}
|
|
332
|
-
generateFunctionRecommendations(func, recommendations, filePath) {
|
|
333
|
-
// Recommend async for I/O operations
|
|
334
|
-
if ((!func.isAsync && func.name.includes('read')) ||
|
|
335
|
-
func.name.includes('write') ||
|
|
336
|
-
func.name.includes('fetch')) {
|
|
337
|
-
recommendations.push({
|
|
338
|
-
type: 'performance',
|
|
339
|
-
severity: 'medium',
|
|
340
|
-
message: `Consider making '${func.name}' async for I/O operations`,
|
|
341
|
-
suggestion: `Add 'async def' instead of 'def' and use await for I/O operations`,
|
|
342
|
-
file: filePath,
|
|
343
|
-
impact: 'Improved performance for I/O-bound operations',
|
|
344
|
-
});
|
|
345
|
-
}
|
|
346
|
-
// Recommend type hints if missing
|
|
347
|
-
if (func.parameters.some(p => this.isEmptyType(p.type)) || this.isEmptyType(func.returnType)) {
|
|
348
|
-
recommendations.push({
|
|
349
|
-
type: 'type-safety',
|
|
350
|
-
severity: 'high',
|
|
351
|
-
message: `Add type hints to '${func.name}' for better IDE support`,
|
|
352
|
-
suggestion: 'Add type annotations to parameters and return type',
|
|
353
|
-
file: filePath,
|
|
354
|
-
impact: 'Better IDE support, type checking, and documentation',
|
|
355
|
-
});
|
|
356
|
-
}
|
|
357
|
-
// Recommend docstrings
|
|
358
|
-
if (!func.docstring) {
|
|
359
|
-
recommendations.push({
|
|
360
|
-
type: 'documentation',
|
|
361
|
-
severity: 'medium',
|
|
362
|
-
message: `Add docstring to '${func.name}'`,
|
|
363
|
-
suggestion: 'Add a docstring explaining the function purpose, parameters, and return value',
|
|
364
|
-
file: filePath,
|
|
365
|
-
impact: 'Better code documentation and IDE support',
|
|
366
|
-
});
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
generateModuleRecommendations(functions, classes, recommendations, filePath) {
|
|
370
|
-
const totalFunctions = functions.length + classes.reduce((acc, cls) => acc + cls.methods.length, 0);
|
|
371
|
-
// Recommend breaking up large modules
|
|
372
|
-
if (totalFunctions > 50) {
|
|
373
|
-
recommendations.push({
|
|
374
|
-
type: 'maintainability',
|
|
375
|
-
severity: 'medium',
|
|
376
|
-
message: 'Module has many functions, consider breaking it up',
|
|
377
|
-
suggestion: 'Split module into smaller, focused modules',
|
|
378
|
-
file: filePath,
|
|
379
|
-
impact: 'Improved maintainability and code organization',
|
|
380
|
-
});
|
|
381
|
-
}
|
|
382
|
-
// Check type hint coverage
|
|
383
|
-
const functionsWithTypes = functions.filter(f => !this.isEmptyType(f.returnType) || f.parameters.some(p => !this.isEmptyType(p.type)));
|
|
384
|
-
const typeHintCoverage = totalFunctions > 0 ? (functionsWithTypes.length / totalFunctions) * 100 : 100;
|
|
385
|
-
if (typeHintCoverage < 50) {
|
|
386
|
-
recommendations.push({
|
|
387
|
-
type: 'type-safety',
|
|
388
|
-
severity: 'high',
|
|
389
|
-
message: `Low type hint coverage (${typeHintCoverage.toFixed(1)}%)`,
|
|
390
|
-
suggestion: 'Add type annotations to improve type safety',
|
|
391
|
-
file: filePath,
|
|
392
|
-
impact: 'Better type checking and IDE support',
|
|
393
|
-
});
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
calculateFunctionStatistics(func, errors, warnings) {
|
|
397
|
-
const hasTypeHints = !this.isEmptyType(func.returnType) || func.parameters.some(p => !this.isEmptyType(p.type));
|
|
398
|
-
return {
|
|
399
|
-
totalIssues: errors.length + warnings.length,
|
|
400
|
-
errorCount: errors.length,
|
|
401
|
-
warningCount: warnings.length,
|
|
402
|
-
typeHintCoverage: hasTypeHints ? 100 : 0,
|
|
403
|
-
docstringCoverage: func.docstring ? 100 : 0,
|
|
404
|
-
complexityScore: this.calculateComplexity(func),
|
|
405
|
-
qualityScore: this.calculateQualityScore(func, errors, warnings),
|
|
406
|
-
};
|
|
407
|
-
}
|
|
408
|
-
calculateClassStatistics(cls, errors, warnings) {
|
|
409
|
-
const methodsWithTypes = cls.methods.filter(m => !this.isEmptyType(m.returnType) || m.parameters.some(p => !this.isEmptyType(p.type))).length;
|
|
410
|
-
const methodsWithDocstrings = cls.methods.filter(m => m.docstring).length;
|
|
411
|
-
const typeHintCoverage = cls.methods.length > 0 ? (methodsWithTypes / cls.methods.length) * 100 : 100;
|
|
412
|
-
const docstringCoverage = cls.methods.length > 0 ? (methodsWithDocstrings / cls.methods.length) * 100 : 100;
|
|
413
|
-
return {
|
|
414
|
-
totalIssues: errors.length + warnings.length,
|
|
415
|
-
errorCount: errors.length,
|
|
416
|
-
warningCount: warnings.length,
|
|
417
|
-
typeHintCoverage,
|
|
418
|
-
docstringCoverage,
|
|
419
|
-
complexityScore: Math.max(...cls.methods.map(m => this.calculateComplexity(m)), 0),
|
|
420
|
-
qualityScore: this.calculateClassQualityScore(cls, errors, warnings),
|
|
421
|
-
};
|
|
422
|
-
}
|
|
423
|
-
calculateModuleStatistics(functions, classes, errors, warnings) {
|
|
424
|
-
const allMethods = classes.flatMap(cls => cls.methods);
|
|
425
|
-
const allFunctions = [...functions, ...allMethods];
|
|
426
|
-
const functionsWithTypes = allFunctions.filter(f => !this.isEmptyType(f.returnType) || f.parameters.some(p => !this.isEmptyType(p.type))).length;
|
|
427
|
-
const functionsWithDocstrings = allFunctions.filter(f => f.docstring).length;
|
|
428
|
-
const typeHintCoverage = allFunctions.length > 0 ? (functionsWithTypes / allFunctions.length) * 100 : 100;
|
|
429
|
-
const docstringCoverage = allFunctions.length > 0 ? (functionsWithDocstrings / allFunctions.length) * 100 : 100;
|
|
430
|
-
return {
|
|
431
|
-
totalIssues: errors.length + warnings.length,
|
|
432
|
-
errorCount: errors.length,
|
|
433
|
-
warningCount: warnings.length,
|
|
434
|
-
typeHintCoverage,
|
|
435
|
-
docstringCoverage,
|
|
436
|
-
complexityScore: Math.max(...allFunctions.map(f => this.calculateComplexity(f)), 0),
|
|
437
|
-
qualityScore: this.calculateModuleQualityScore(allFunctions, errors, warnings),
|
|
438
|
-
};
|
|
439
|
-
}
|
|
440
|
-
calculateComplexity(func) {
|
|
441
|
-
let complexity = 1; // Base complexity
|
|
442
|
-
complexity += func.parameters.length * 0.5;
|
|
443
|
-
complexity += func.isAsync ? 1 : 0;
|
|
444
|
-
complexity += func.isGenerator ? 1 : 0;
|
|
445
|
-
complexity += func.decorators.length * 0.5;
|
|
446
|
-
return Math.round(complexity * 10) / 10;
|
|
447
|
-
}
|
|
448
|
-
calculateQualityScore(func, errors, warnings) {
|
|
449
|
-
let score = 100;
|
|
450
|
-
// Deduct points for errors and warnings
|
|
451
|
-
score -= errors.length * 20;
|
|
452
|
-
score -= warnings.length * 10;
|
|
453
|
-
// Add points for good practices
|
|
454
|
-
if (!this.isEmptyType(func.returnType)) {
|
|
455
|
-
score += 10;
|
|
456
|
-
}
|
|
457
|
-
if (func.parameters.every(p => !this.isEmptyType(p.type))) {
|
|
458
|
-
score += 10;
|
|
459
|
-
}
|
|
460
|
-
if (func.docstring) {
|
|
461
|
-
score += 10;
|
|
462
|
-
}
|
|
463
|
-
return Math.max(0, Math.min(100, score));
|
|
464
|
-
}
|
|
465
|
-
calculateClassQualityScore(cls, errors, warnings) {
|
|
466
|
-
let score = 100;
|
|
467
|
-
// Deduct points for errors and warnings
|
|
468
|
-
score -= errors.length * 15;
|
|
469
|
-
score -= warnings.length * 8;
|
|
470
|
-
// Add points for good practices
|
|
471
|
-
if (cls.docstring) {
|
|
472
|
-
score += 10;
|
|
473
|
-
}
|
|
474
|
-
if (cls.methods.some(m => m.name === '__init__')) {
|
|
475
|
-
score += 10;
|
|
476
|
-
}
|
|
477
|
-
if (cls.methods.length > 0) {
|
|
478
|
-
score += 5;
|
|
479
|
-
}
|
|
480
|
-
return Math.max(0, Math.min(100, score));
|
|
481
|
-
}
|
|
482
|
-
calculateModuleQualityScore(functions, errors, warnings) {
|
|
483
|
-
if (functions.length === 0) {
|
|
484
|
-
return 100;
|
|
485
|
-
}
|
|
486
|
-
const functionScores = functions.map(f => this.calculateQualityScore(f, errors.filter(e => e.message?.includes(f.name)), warnings.filter(w => w.message?.includes(f.name))));
|
|
487
|
-
return functionScores.reduce((sum, score) => sum + score, 0) / functionScores.length;
|
|
488
|
-
}
|
|
489
|
-
}
|
|
490
|
-
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/core/validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8CH,MAAM,OAAO,gBAAgB;IACnB,MAAM,CAAmB;IAEjC,YAAY,SAAoC,EAAE;QAChD,IAAI,CAAC,MAAM,GAAG;YACZ,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,IAAI;YACrD,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,IAAI,KAAK;YAC5D,kBAAkB,EAAE,EAAE;YACtB,kBAAkB,EAAE,EAAE;YACtB,kBAAkB,EAAE,KAAK;YACzB,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,IAAoB,EAAE,QAAiB;QACtD,MAAM,MAAM,GAAoB,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAsB,EAAE,CAAC;QACvC,MAAM,eAAe,GAA+B,EAAE,CAAC;QAEvD,mBAAmB;QACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE/C,kBAAkB;QAClB,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEjD,2BAA2B;QAC3B,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAElD,gCAAgC;QAChC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE1D,mBAAmB;QACnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAElD,2BAA2B;QAC3B,IAAI,CAAC,+BAA+B,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QAEtE,MAAM,UAAU,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE5E,OAAO;YACL,MAAM;YACN,QAAQ;YACR,UAAU;YACV,eAAe;SAChB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,GAAgB,EAAE,QAAiB;QAC/C,MAAM,MAAM,GAAoB,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAsB,EAAE,CAAC;QACvC,MAAM,eAAe,GAA+B,EAAE,CAAC;QAEvD,uBAAuB;QACvB,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACxC,eAAe,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;QACxD,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAElD,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAExE,OAAO;YACL,MAAM;YACN,QAAQ;YACR,UAAU;YACV,eAAe;SAChB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,IAAgB,EAAE,UAAkB,EAAE;QAC3D,MAAM,MAAM,GAAoB,EAAE,CAAC;QAEnC,IAAI,CAAC;YACH,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,2BAA2B,KAAK,EAAE;aAC5C,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,cAAc,CACZ,SAA2B,EAC3B,OAAsB,EACtB,QAAiB;QAEjB,MAAM,MAAM,GAAoB,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAsB,EAAE,CAAC;QACvC,MAAM,eAAe,GAA+B,EAAE,CAAC;QAEvD,yBAAyB;QACzB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACzD,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACtC,eAAe,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;QACtD,CAAC;QAED,uBAAuB;QACvB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YACnC,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YACvC,eAAe,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;QACvD,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC,6BAA6B,CAAC,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QAElF,MAAM,UAAU,GAAG,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAExF,OAAO;YACL,MAAM;YACN,QAAQ;YACR,UAAU;YACV,eAAe;SAChB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,IAAoB,EACpB,MAAuB,EACvB,QAA2B;QAE3B,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEjD,2DAA2D;QAC3D,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC3D,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACK,iBAAiB,CACvB,cAAsB,EACtB,YAAoB,EACpB,QAA2B,EAC3B,MAAuB;QAEvB,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;QACnE,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,mBAAmB,CACzB,IAAoB,EACpB,MAAuB,EACvB,QAA2B;QAE3B,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAClE,IAAI,CAAC,iBAAiB,CACpB,aAAa,IAAI,CAAC,IAAI,qCAAqC,EAC3D,aAAa,IAAI,CAAC,IAAI,mCAAmC,EACzD,QAAQ,EACR,MAAM,CACP,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,sBAAsB,CAC5B,IAAoB,EACpB,KAA2C,EAC3C,MAAuB,EACvB,QAA2B;QAE3B,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAClF,IAAI,CAAC,iBAAiB,CACpB,cAAc,KAAK,CAAC,IAAI,kBAAkB,IAAI,CAAC,IAAI,8BAA8B,EACjF,cAAc,KAAK,CAAC,IAAI,kBAAkB,IAAI,CAAC,IAAI,4BAA4B,EAC/E,QAAQ,EACR,MAAM,CACP,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,2BAA2B,CACjC,KAA2C,EAC3C,MAAuB;QAEvB,IACE,IAAI,CAAC,MAAM,CAAC,kBAAkB;YAC9B,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB;YAClC,KAAK,CAAC,IAAI,KAAK,MAAM;YACrB,KAAK,CAAC,IAAI,KAAK,KAAK,EACpB,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;YACxF,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,IAAoB,EAAE,MAAuB;QAC5E,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACzE,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YACrF,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,iBAAiB,CACvB,IAAoB,EACpB,QAA2B,EAC3B,QAAiB;QAEjB,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACtD,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,aAAa,IAAI,CAAC,IAAI,wBAAwB;gBACvD,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;QAED,0BAA0B;QAC1B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,aAAa,IAAI,CAAC,IAAI,4BAA4B;gBAC3D,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,kBAAkB,CACxB,IAAoB,EACpB,QAA2B,EAC3B,QAAiB;QAEjB,gCAAgC;QAChC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,aAAa,IAAI,CAAC,IAAI,8BAA8B,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG;gBACtF,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;QAED,yBAAyB;QACzB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClF,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,cAAc,KAAK,CAAC,IAAI,kBAAkB,IAAI,CAAC,IAAI,uCAAuC;oBACnG,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAEO,0BAA0B,CAChC,IAAoB,EACpB,QAA2B,EAC3B,QAAiB;QAEjB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACrD,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,aAAa,IAAI,CAAC,IAAI,8BAA8B,OAAO,GAAG;oBACvE,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAEO,kBAAkB,CACxB,IAAoB,EACpB,QAA2B,EAC3B,QAAiB;QAEjB,6EAA6E;QAC7E,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC;QAC9C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,UAAU,IAAI,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,UAAU,IAAI,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC;QAC7C,CAAC;QAED,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAChD,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,aAAa,IAAI,CAAC,IAAI,0BAA0B,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;gBACjF,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,sBAAsB,CAC5B,GAAgB,EAChB,QAA2B,EAC3B,QAAiB;QAEjB,0BAA0B;QAC1B,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5D,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,UAAU,GAAG,CAAC,IAAI,uBAAuB;gBAClD,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;QAED,oCAAoC;QACpC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACvE,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,UAAU,GAAG,CAAC,IAAI,yCAAyC;gBACpE,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,mBAAmB,CACzB,GAAgB,EAChB,QAA2B,EAC3B,QAAiB;QAEjB,oCAAoC;QACpC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,UAAU,GAAG,CAAC,IAAI,iCAAiC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG;gBAC/E,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;QAED,wCAAwC;QACxC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,UAAU,GAAG,CAAC,IAAI,mDAAmD;gBAC9E,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAC,IAAgB,EAAE,MAAuB,EAAE,OAAe;QACtF,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,OAAO;gBACV,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,iBAAiB,OAAO,+BAA+B;qBACjE,CAAC,CAAC;gBACL,CAAC;gBACD,0CAA0C;gBAC1C,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACnC,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBACzD,CAAC;gBACD,MAAM;YAER,KAAK,YAAY;gBACf,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/E,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,oBAAoB,IAAI,CAAC,IAAI,QAAQ,OAAO,4BAA4B;qBAClF,CAAC,CAAC;gBACL,CAAC;gBACD,kCAAkC;gBAClC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACtC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBACxD,CAAC;gBACD,MAAM;YAER,KAAK,UAAU;gBACb,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBACvD,MAAM;YAER,KAAK,SAAS;gBACZ,6BAA6B;gBAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAChC,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBACnD,CAAC;gBACD,MAAM;YAER,KAAK,QAAQ;gBACX,0CAA0C;gBAC1C,MAAM;YAER,KAAK,WAAW;gBACd,+BAA+B;gBAC/B,MAAM;QACV,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,IAAgB;QAClC,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;IAC3D,CAAC;IAEO,+BAA+B,CACrC,IAAoB,EACpB,eAA2C,EAC3C,QAAiB;QAEjB,qCAAqC;QACrC,IACE,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC3B,CAAC;YACD,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,oBAAoB,IAAI,CAAC,IAAI,4BAA4B;gBAClE,UAAU,EAAE,mEAAmE;gBAC/E,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,+CAA+C;aACxD,CAAC,CAAC;QACL,CAAC;QAED,kCAAkC;QAClC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7F,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,sBAAsB,IAAI,CAAC,IAAI,0BAA0B;gBAClE,UAAU,EAAE,oDAAoD;gBAChE,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,sDAAsD;aAC/D,CAAC,CAAC;QACL,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,eAAe;gBACrB,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,qBAAqB,IAAI,CAAC,IAAI,GAAG;gBAC1C,UAAU,EAAE,+EAA+E;gBAC3F,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,2CAA2C;aACpD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,6BAA6B,CACnC,SAA2B,EAC3B,OAAsB,EACtB,eAA2C,EAC3C,QAAiB;QAEjB,MAAM,cAAc,GAClB,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAE/E,sCAAsC;QACtC,IAAI,cAAc,GAAG,EAAE,EAAE,CAAC;YACxB,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,iBAAiB;gBACvB,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,oDAAoD;gBAC7D,UAAU,EAAE,4CAA4C;gBACxD,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,gDAAgD;aACzD,CAAC,CAAC;QACL,CAAC;QAED,2BAA2B;QAC3B,MAAM,kBAAkB,GAAG,SAAS,CAAC,MAAM,CACzC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAC1F,CAAC;QAEF,MAAM,gBAAgB,GACpB,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAEhF,IAAI,gBAAgB,GAAG,EAAE,EAAE,CAAC;YAC1B,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,2BAA2B,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;gBACnE,UAAU,EAAE,6CAA6C;gBACzD,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,sCAAsC;aAC/C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,2BAA2B,CACjC,IAAoB,EACpB,MAAuB,EACvB,QAA2B;QAE3B,MAAM,YAAY,GAChB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE7F,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;YAC5C,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,YAAY,EAAE,QAAQ,CAAC,MAAM;YAC7B,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3C,eAAe,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC/C,YAAY,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC;SACjE,CAAC;IACJ,CAAC;IAEO,wBAAwB,CAC9B,GAAgB,EAChB,MAAuB,EACvB,QAA2B;QAE3B,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CACzC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAC1F,CAAC,MAAM,CAAC;QAET,MAAM,qBAAqB,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAE1E,MAAM,gBAAgB,GACpB,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/E,MAAM,iBAAiB,GACrB,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAEpF,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;YAC5C,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,YAAY,EAAE,QAAQ,CAAC,MAAM;YAC7B,gBAAgB;YAChB,iBAAiB;YACjB,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAClF,YAAY,EAAE,IAAI,CAAC,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC;SACrE,CAAC;IACJ,CAAC;IAEO,yBAAyB,CAC/B,SAA2B,EAC3B,OAAsB,EACtB,MAAuB,EACvB,QAA2B;QAE3B,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC;QAEnD,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAC5C,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAC1F,CAAC,MAAM,CAAC;QAET,MAAM,uBAAuB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAE7E,MAAM,gBAAgB,GACpB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACnF,MAAM,iBAAiB,GACrB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAExF,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;YAC5C,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,YAAY,EAAE,QAAQ,CAAC,MAAM;YAC7B,gBAAgB;YAChB,iBAAiB;YACjB,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnF,YAAY,EAAE,IAAI,CAAC,2BAA2B,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC;SAC/E,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,IAAoB;QAC9C,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,kBAAkB;QACtC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC;QAC3C,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAC1C,CAAC;IAEO,qBAAqB,CAC3B,IAAoB,EACpB,MAAuB,EACvB,QAA2B;QAE3B,IAAI,KAAK,GAAG,GAAG,CAAC;QAEhB,wCAAwC;QACxC,KAAK,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;QAC5B,KAAK,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;QAE9B,gCAAgC;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACvC,KAAK,IAAI,EAAE,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC1D,KAAK,IAAI,EAAE,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,KAAK,IAAI,EAAE,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEO,0BAA0B,CAChC,GAAgB,EAChB,MAAuB,EACvB,QAA2B;QAE3B,IAAI,KAAK,GAAG,GAAG,CAAC;QAEhB,wCAAwC;QACxC,KAAK,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;QAC5B,KAAK,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAE7B,gCAAgC;QAChC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,KAAK,IAAI,EAAE,CAAC;QACd,CAAC;QACD,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;YACjD,KAAK,IAAI,EAAE,CAAC;QACd,CAAC;QACD,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEO,2BAA2B,CACjC,SAA2B,EAC3B,MAAuB,EACvB,QAA2B;QAE3B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC;QACb,CAAC;QAED,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACvC,IAAI,CAAC,qBAAqB,CACxB,CAAC,EACD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAC/C,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAClD,CACF,CAAC;QAEF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;IACvF,CAAC;CACF"}
|
package/dist/runtime/base.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base runtime bridge
|
|
3
|
-
*
|
|
4
|
-
* @deprecated Use DisposableBase instead. RuntimeBridge will be removed in the next major version.
|
|
5
|
-
*/
|
|
6
|
-
import { DisposableBase } from './bounded-context.js';
|
|
7
|
-
/**
|
|
8
|
-
* @deprecated Use DisposableBase instead. RuntimeBridge will be removed in the next major version.
|
|
9
|
-
*
|
|
10
|
-
* All bridges now build on DisposableBase which provides:
|
|
11
|
-
* - Lifecycle management (init/dispose state machine)
|
|
12
|
-
* - Validation helpers
|
|
13
|
-
* - Error classification
|
|
14
|
-
* - Bounded execution (timeout, retry)
|
|
15
|
-
* - Resource ownership tracking
|
|
16
|
-
*
|
|
17
|
-
* @see DisposableBase
|
|
18
|
-
*/
|
|
19
|
-
export declare abstract class RuntimeBridge extends DisposableBase {
|
|
20
|
-
}
|
|
21
|
-
export { DisposableBase };
|
|
22
|
-
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/runtime/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;;;;;;;GAWG;AACH,8BAAsB,aAAc,SAAQ,cAAc;CAAG;AAG7D,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/runtime/base.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base runtime bridge
|
|
3
|
-
*
|
|
4
|
-
* @deprecated Use DisposableBase instead. RuntimeBridge will be removed in the next major version.
|
|
5
|
-
*/
|
|
6
|
-
import { DisposableBase } from './bounded-context.js';
|
|
7
|
-
/**
|
|
8
|
-
* @deprecated Use DisposableBase instead. RuntimeBridge will be removed in the next major version.
|
|
9
|
-
*
|
|
10
|
-
* All bridges now build on DisposableBase which provides:
|
|
11
|
-
* - Lifecycle management (init/dispose state machine)
|
|
12
|
-
* - Validation helpers
|
|
13
|
-
* - Error classification
|
|
14
|
-
* - Bounded execution (timeout, retry)
|
|
15
|
-
* - Resource ownership tracking
|
|
16
|
-
*
|
|
17
|
-
* @see DisposableBase
|
|
18
|
-
*/
|
|
19
|
-
export class RuntimeBridge extends DisposableBase {
|
|
20
|
-
}
|
|
21
|
-
// Re-export DisposableBase for backwards compatibility
|
|
22
|
-
export { DisposableBase };
|
|
23
|
-
//# sourceMappingURL=base.js.map
|
package/dist/runtime/base.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/runtime/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;;;;;;;GAWG;AACH,MAAM,OAAgB,aAAc,SAAQ,cAAc;CAAG;AAE7D,uDAAuD;AACvD,OAAO,EAAE,cAAc,EAAE,CAAC"}
|