@nithin554/code-crawler 0.1.39 → 0.1.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +206 -33
  2. package/dist/crawler.d.ts +27 -1
  3. package/dist/crawler.js +360 -11
  4. package/dist/crawler.js.map +1 -1
  5. package/dist/graph/queries.d.ts +70 -4
  6. package/dist/graph/queries.js +125 -1
  7. package/dist/graph/queries.js.map +1 -1
  8. package/dist/graph/schema.d.ts +24 -2
  9. package/dist/graph/schema.js +9 -0
  10. package/dist/graph/schema.js.map +1 -1
  11. package/dist/parser/controlFlow.d.ts +27 -0
  12. package/dist/parser/controlFlow.js +82 -0
  13. package/dist/parser/controlFlow.js.map +1 -0
  14. package/dist/parser/language.d.ts +101 -2
  15. package/dist/parser/languages/index.js +4 -0
  16. package/dist/parser/languages/index.js.map +1 -1
  17. package/dist/parser/languages/java.js +160 -6
  18. package/dist/parser/languages/java.js.map +1 -1
  19. package/dist/parser/languages/python.d.ts +2 -0
  20. package/dist/parser/languages/python.js +956 -0
  21. package/dist/parser/languages/python.js.map +1 -0
  22. package/dist/parser/languages/typescript.d.ts +2 -0
  23. package/dist/parser/languages/typescript.js +1111 -0
  24. package/dist/parser/languages/typescript.js.map +1 -0
  25. package/dist/parser/moduleId.d.ts +35 -0
  26. package/dist/parser/moduleId.js +93 -0
  27. package/dist/parser/moduleId.js.map +1 -0
  28. package/dist/parser/treeSitter.d.ts +6 -0
  29. package/dist/parser/treeSitter.js +13 -2
  30. package/dist/parser/treeSitter.js.map +1 -1
  31. package/dist/resolver/common.d.ts +52 -0
  32. package/dist/resolver/common.js +624 -0
  33. package/dist/resolver/common.js.map +1 -0
  34. package/dist/resolver/dynamic.js +66 -1
  35. package/dist/resolver/dynamic.js.map +1 -1
  36. package/dist/resolver/genericResolver.d.ts +45 -0
  37. package/dist/resolver/genericResolver.js +235 -0
  38. package/dist/resolver/genericResolver.js.map +1 -0
  39. package/dist/resolver/types.d.ts +24 -1
  40. package/dist/resolver/types.js +50 -0
  41. package/dist/resolver/types.js.map +1 -1
  42. package/dist/server.js +108 -5
  43. package/dist/server.js.map +1 -1
  44. package/package.json +2 -2
@@ -9,7 +9,14 @@
9
9
  * The crawler then converts a `ParsedFile` into graph nodes/edges and feeds the
10
10
  * raw call sites to the language-specific resolver.
11
11
  */
12
- export type TypeKind = "class" | "interface" | "enum" | "annotation";
12
+ export type TypeKind = "class" | "interface" | "enum" | "annotation" | "module";
13
+ /** How a call site is nested: unconditional, or behind a guard. */
14
+ export type ControlFlowKind = "branch" | "loop" | "exception" | "predicate";
15
+ export interface ControlFlowInfo {
16
+ kinds: ControlFlowKind[];
17
+ /** Compact source text of the enclosing conditions (max 3). */
18
+ guards: string[];
19
+ }
13
20
  /**
14
21
  * An annotation (Java) or decorator (Python/TypeScript) applied to a symbol.
15
22
  * Kept deliberately simple: the name plus raw argument expressions, so the
@@ -43,6 +50,56 @@ export interface TypeInfo {
43
50
  annotations: AnnotationInfo[];
44
51
  /** True when the type is an aspect (`@Aspect`). */
45
52
  isAspect?: boolean;
53
+ /** Export visibility. Modules and members default to file-visible. */
54
+ exported?: boolean;
55
+ }
56
+ /**
57
+ * A call site whose target is only known at run time
58
+ * (`Class.forName`, `getattr`, `require`, dynamic `import()`, ...).
59
+ */
60
+ export interface ReflectiveRef {
61
+ /** Framework/API that performs the lookup, e.g. `Class.forName`, `getattr`. */
62
+ mechanism: string;
63
+ /** What the lookup produces. */
64
+ targetKind: "type" | "module" | "method";
65
+ /** Raw target text as written (quotes stripped when it is a string literal). */
66
+ target: string;
67
+ /** Receiver expression for member lookups, e.g. `this.registry`. */
68
+ receiver?: string;
69
+ enclosingTypeId: string;
70
+ enclosingMethodId: string;
71
+ line: number;
72
+ }
73
+ /** A dependency the framework supplies at run time rather than the call site. */
74
+ export interface InjectionPoint {
75
+ kind: "field" | "constructor-parameter" | "parameter" | "method";
76
+ /** Id of the type (or module) that owns the injection point. */
77
+ ownerId: string;
78
+ /** Field or parameter name. */
79
+ name: string;
80
+ /** Raw declared type text (empty when only a token/decorator was given). */
81
+ type: string;
82
+ /** Framework that performs the injection, e.g. `spring`, `nestjs`. */
83
+ framework: string;
84
+ line: number;
85
+ optional?: boolean;
86
+ }
87
+ /** Why a method is a root even though nothing in the source calls it. */
88
+ export type EntryPointKind = "http" | "messaging" | "scheduler" | "event" | "cli" | "test" | "route";
89
+ export interface EntryPointInfo {
90
+ kind: EntryPointKind;
91
+ /** Framework detail, e.g. `GET /orders/{id}` or `@Scheduled`. */
92
+ detail?: string;
93
+ }
94
+ /** Express-style route registration resolved to a handler by name. */
95
+ export interface RouteRegistration {
96
+ framework: string;
97
+ httpMethod: string;
98
+ path: string;
99
+ handlerName: string;
100
+ moduleId: string;
101
+ enclosingTypeId: string;
102
+ line: number;
46
103
  }
47
104
  export interface MethodInfo {
48
105
  /** Node id, e.g. `com.acme.OrderService#place` (or `#<init>` for constructors). */
@@ -72,6 +129,8 @@ export interface MethodInfo {
72
129
  adviceKind?: string;
73
130
  /** AspectJ pointcut expression carried by advice/pointcut methods. */
74
131
  pointcut?: string;
132
+ /** Why this method is an entry point (framework-invoked root). */
133
+ entryPoint?: EntryPointInfo;
75
134
  }
76
135
  export interface FieldInfo {
77
136
  /** Node id, e.g. `com.acme.OrderService.repo`. */
@@ -91,6 +150,16 @@ export interface ImportInfo {
91
150
  /** Short name used in source, e.g. `OrderService`. */
92
151
  simpleName: string;
93
152
  isStatic: boolean;
153
+ /** Imported module/specifier for Python/TypeScript imports. */
154
+ module?: string;
155
+ /** Imported symbol when the import names one (`from x import y`). */
156
+ importedName?: string;
157
+ /** True for `import * as ns` / `import x` (the name refers to a module). */
158
+ isNamespace?: boolean;
159
+ /** Local alias, when different from the imported name. */
160
+ alias?: string;
161
+ /** Known-external module (non-relative TS specifier). */
162
+ external?: boolean;
94
163
  }
95
164
  export interface CallSite {
96
165
  /** 0-based row of the call. */
@@ -113,6 +182,8 @@ export interface CallSite {
113
182
  isConstructorCall: boolean;
114
183
  /** True when the receiver looks like a qualified type (e.g. `com.acme.Foo.bar`). */
115
184
  qualifiedReceiver: boolean;
185
+ /** Enclosing branches/loops/handlers and their guard text. */
186
+ controlFlow?: ControlFlowInfo;
116
187
  }
117
188
  export interface ParsedFile {
118
189
  filePath: string;
@@ -129,6 +200,34 @@ export interface ParsedFile {
129
200
  * Used by the resolver for receiver-type inference.
130
201
  */
131
202
  localsByMethod: Map<string, Map<string, string>>;
203
+ /** Module id for module-based languages (Python/TypeScript). */
204
+ moduleId?: string;
205
+ /**
206
+ * Local name -> candidate type id (`module.Symbol`), from imports or local
207
+ * declarations. Values may be unresolved guesses; the resolver validates.
208
+ */
209
+ scopeTypes?: Map<string, string>;
210
+ /**
211
+ * Local name -> candidate module id (`app.services.order`). Values may not
212
+ * exist in the index; the resolver treats missing modules as external.
213
+ */
214
+ scopeModules?: Map<string, string>;
215
+ /** Local name -> known-external package (non-relative imports). */
216
+ externalModules?: Map<string, string>;
217
+ /** Name exported by `export default` / `__all__`, when present. */
218
+ defaultExportName?: string;
219
+ /** Run-time-only targets (reflection, dynamic import, getattr). */
220
+ reflectiveRefs?: ReflectiveRef[];
221
+ /** Framework-injected dependencies declared by this file. */
222
+ injections?: InjectionPoint[];
223
+ /** Express/Fastify-style route registrations declared by this file. */
224
+ routes?: RouteRegistration[];
225
+ /** Entry point when the whole file is one (e.g. `__main__` script). */
226
+ entryPoint?: EntryPointInfo;
227
+ }
228
+ export interface ParseContext {
229
+ /** Project root, used to derive stable module ids. */
230
+ projectRoot?: string;
132
231
  }
133
232
  export interface LanguageConfig {
134
233
  /** Registry key, e.g. "java". */
@@ -138,5 +237,5 @@ export interface LanguageConfig {
138
237
  /** Load (once) and return the compiled tree-sitter grammar. */
139
238
  loadGrammar(): Promise<unknown>;
140
239
  /** Extract structural entities + raw call sites from source text. */
141
- parseFile(source: string, filePath: string): Promise<ParsedFile>;
240
+ parseFile(source: string, filePath: string, context?: ParseContext): Promise<ParsedFile>;
142
241
  }
@@ -1,4 +1,6 @@
1
1
  import { javaConfig } from "./java.js";
2
+ import { pythonConfig } from "./python.js";
3
+ import { typescriptConfig } from "./typescript.js";
2
4
  /**
3
5
  * Registry of supported languages. Adding a language means:
4
6
  * 1. implement a LanguageConfig in `./<lang>.ts`
@@ -7,6 +9,8 @@ import { javaConfig } from "./java.js";
7
9
  */
8
10
  const registry = new Map([
9
11
  ["java", javaConfig],
12
+ ["python", pythonConfig],
13
+ ["typescript", typescriptConfig],
10
14
  ]);
11
15
  export function getLanguageConfig(name) {
12
16
  return registry.get(name.toLowerCase()) ?? null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/parser/languages/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC;;;;;GAKG;AAEH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAyB;IAC/C,CAAC,MAAM,EAAE,UAAU,CAAC;CACrB,CAAC,CAAC;AAEH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,SAAkB;IAClE,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/parser/languages/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;;GAKG;AAEH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAyB;IAC/C,CAAC,MAAM,EAAE,UAAU,CAAC;IACpB,CAAC,QAAQ,EAAE,YAAY,CAAC;IACxB,CAAC,YAAY,EAAE,gBAAgB,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,SAAkB;IAClE,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;YAAE,OAAO,MAAM,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { controlFlowOf } from "../controlFlow.js";
1
2
  import { baseTypeName, childOfType, childrenOfType, createParser, fieldChild, loadGrammar, walk, } from "../treeSitter.js";
2
3
  /**
3
4
  * Java extraction via the tree-sitter-java grammar.
@@ -6,8 +7,8 @@ import { baseTypeName, childOfType, childrenOfType, createParser, fieldChild, lo
6
7
  * imports) and raw call sites. The Java resolver consumes the call sites and
7
8
  * the per-method local-variable tables to resolve call targets.
8
9
  */
9
- const GRAMMAR_PACKAGE = "tree-sitter-java";
10
- const GRAMMAR_WASM = "tree-sitter-java.wasm";
10
+ const GRAMMAR_PACKAGE = "@vscode/tree-sitter-wasm";
11
+ const GRAMMAR_WASM = "wasm/tree-sitter-java.wasm";
11
12
  export const javaConfig = {
12
13
  name: "java",
13
14
  extensions: ["java"],
@@ -38,6 +39,85 @@ const ADVICE_ANNOTATIONS = {
38
39
  AfterThrowing: "afterThrowing",
39
40
  Pointcut: "pointcut",
40
41
  };
42
+ /** Control-flow ancestors that make a call conditional in Java. */
43
+ const JAVA_FLOW = [
44
+ { type: "if_statement", kind: "branch", guardField: "condition" },
45
+ { type: "switch_expression", kind: "branch", guardField: "condition" },
46
+ { type: "switch_statement", kind: "branch", guardField: "condition" },
47
+ { type: "conditional_expression", kind: "branch" },
48
+ { type: "for_statement", kind: "loop", guardField: "condition" },
49
+ { type: "enhanced_for_statement", kind: "loop" },
50
+ { type: "while_statement", kind: "loop", guardField: "condition" },
51
+ { type: "do_statement", kind: "loop", guardField: "condition" },
52
+ { type: "catch_clause", kind: "exception" },
53
+ ];
54
+ /** HTTP mapping annotations and the verb they imply. */
55
+ const HTTP_MAPPINGS = {
56
+ GetMapping: "GET",
57
+ PostMapping: "POST",
58
+ PutMapping: "PUT",
59
+ DeleteMapping: "DELETE",
60
+ PatchMapping: "PATCH",
61
+ RequestMapping: "ANY",
62
+ };
63
+ /** Framework-supplied injection annotations. */
64
+ const INJECTION_ANNOTATIONS = {
65
+ Autowired: "spring",
66
+ Inject: "jakarta",
67
+ Resource: "jakarta",
68
+ Value: "spring",
69
+ Qualifier: "spring",
70
+ ManagedProperty: "jakarta",
71
+ };
72
+ /** Run-time lookup methods and the kind of target they produce. */
73
+ const REFLECTIVE_METHODS = {
74
+ forName: { targetKind: "type", mechanism: "Class.forName" },
75
+ loadClass: { targetKind: "type", mechanism: "ClassLoader.loadClass" },
76
+ getMethod: { targetKind: "method", mechanism: "Class.getMethod" },
77
+ getDeclaredMethod: { targetKind: "method", mechanism: "Class.getDeclaredMethod" },
78
+ getConstructor: { targetKind: "method", mechanism: "Class.getConstructor" },
79
+ getDeclaredConstructor: { targetKind: "method", mechanism: "Class.getDeclaredConstructor" },
80
+ getField: { targetKind: "method", mechanism: "Class.getField" },
81
+ getDeclaredField: { targetKind: "method", mechanism: "Class.getDeclaredField" },
82
+ };
83
+ /** Why a Java method is invoked by the framework rather than by source. */
84
+ function javaEntryPointOf(annotations, name, modifiers) {
85
+ for (const annotation of annotations) {
86
+ const simple = annotation.name;
87
+ const httpVerb = HTTP_MAPPINGS[simple];
88
+ if (httpVerb) {
89
+ const path = annotationValue(annotation) ?? "/";
90
+ return { kind: "http", detail: `${httpVerb} ${path}` };
91
+ }
92
+ if (simple === "KafkaListener" || simple === "RabbitListener" || simple === "JmsListener" || simple === "StreamListener" || simple === "SqsListener") {
93
+ const topic = annotationValue(annotation);
94
+ return { kind: "messaging", detail: topic ? `${simple}(${topic})` : simple };
95
+ }
96
+ if (simple === "Scheduled") {
97
+ const cron = annotation.arguments[0];
98
+ return { kind: "scheduler", detail: cron ? `@Scheduled(${cron})` : "@Scheduled" };
99
+ }
100
+ if (simple === "EventListener" || simple === "TransactionalEventListener") {
101
+ return { kind: "event", detail: simple };
102
+ }
103
+ if (simple === "Test" || simple === "ParameterizedTest" || simple === "RepeatedTest") {
104
+ return { kind: "test", detail: simple };
105
+ }
106
+ }
107
+ if (name === "main" && modifiers.includes("static")) {
108
+ return { kind: "cli", detail: "main" };
109
+ }
110
+ return undefined;
111
+ }
112
+ /** Framework that injects the annotated symbol, if any. */
113
+ function injectionFrameworkOf(annotations) {
114
+ for (const annotation of annotations) {
115
+ const framework = INJECTION_ANNOTATIONS[annotation.name];
116
+ if (framework)
117
+ return framework;
118
+ }
119
+ return null;
120
+ }
41
121
  /** Extract simple/qualified type names from a `superclass`/`super_interfaces` node. */
42
122
  function superTypes(node) {
43
123
  const list = childOfType(node, "type_list");
@@ -79,6 +159,8 @@ export async function parseFile(source, filePath) {
79
159
  const methods = [];
80
160
  const fields = [];
81
161
  const callSites = [];
162
+ const reflectiveRefs = [];
163
+ const injections = [];
82
164
  const localsByMethod = new Map();
83
165
  // === Pass A: structural extraction with nesting stack for type FQNs. ===
84
166
  const nestingStack = [];
@@ -125,6 +207,8 @@ export async function parseFile(source, filePath) {
125
207
  const id = `${typeId}#${name}`;
126
208
  const annotations = extractAnnotations(node);
127
209
  const advice = adviceOf(annotations);
210
+ const modifiers = extractModifiers(node);
211
+ const entryPoint = javaEntryPointOf(annotations, name, modifiers);
128
212
  methods.push({
129
213
  id,
130
214
  typeId,
@@ -134,16 +218,43 @@ export async function parseFile(source, filePath) {
134
218
  startLine: node.startPosition.row,
135
219
  endLine: node.endPosition.row,
136
220
  returnType: extractReturnType(node),
137
- modifiers: extractModifiers(node),
221
+ modifiers,
138
222
  annotations,
139
223
  ...advice,
224
+ ...(entryPoint ? { entryPoint } : {}),
140
225
  });
226
+ collectParamInjections(node, id, annotations);
141
227
  const locals = collectLocals(node);
142
228
  if (locals)
143
229
  localsByMethod.set(id, locals);
144
230
  }
231
+ /** Constructor parameter injections: Spring/Jakarta constructor injection. */
232
+ function collectParamInjections(node, typeId, memberAnnotations) {
233
+ const paramsNode = fieldChild(node, "parameters") ?? childOfType(node, "formal_parameters");
234
+ if (!paramsNode)
235
+ return;
236
+ const memberFramework = injectionFrameworkOf(memberAnnotations);
237
+ for (const fp of childrenOfType(paramsNode, "formal_parameter")) {
238
+ const framework = injectionFrameworkOf(extractAnnotations(fp));
239
+ if (!framework)
240
+ continue;
241
+ const name = childOfType(fp, "identifier")?.text ?? "";
242
+ if (!name)
243
+ continue;
244
+ const typeNode = typeNodeOf(fp);
245
+ injections.push({
246
+ kind: "constructor-parameter",
247
+ ownerId: typeId,
248
+ name,
249
+ type: typeNode ? baseTypeName(typeNode.text) : "",
250
+ framework: framework ?? memberFramework ?? "unknown",
251
+ line: fp.startPosition.row,
252
+ });
253
+ }
254
+ }
145
255
  function extractConstructor(node, typeId) {
146
256
  const id = `${typeId}#<init>`;
257
+ const annotations = extractAnnotations(node);
147
258
  methods.push({
148
259
  id,
149
260
  typeId,
@@ -154,8 +265,9 @@ export async function parseFile(source, filePath) {
154
265
  endLine: node.endPosition.row,
155
266
  returnType: "",
156
267
  modifiers: extractModifiers(node),
157
- annotations: extractAnnotations(node),
268
+ annotations,
158
269
  });
270
+ collectParamInjections(node, id, annotations);
159
271
  const locals = collectLocals(node);
160
272
  if (locals)
161
273
  localsByMethod.set(id, locals);
@@ -164,6 +276,7 @@ export async function parseFile(source, filePath) {
164
276
  const typeNode = typeNodeOf(node);
165
277
  const type = typeNode ? baseTypeName(typeNode.text) : "";
166
278
  const annotations = extractAnnotations(node);
279
+ const framework = injectionFrameworkOf(annotations);
167
280
  for (const declarator of childrenOfType(node, "variable_declarator")) {
168
281
  const name = childOfType(declarator, "identifier")?.text ?? "";
169
282
  if (!name)
@@ -177,6 +290,16 @@ export async function parseFile(source, filePath) {
177
290
  modifiers: extractModifiers(node),
178
291
  annotations,
179
292
  });
293
+ if (framework && !extractModifiers(node).includes("static")) {
294
+ injections.push({
295
+ kind: "field",
296
+ ownerId: typeId,
297
+ name,
298
+ type,
299
+ framework,
300
+ line: node.startPosition.row,
301
+ });
302
+ }
180
303
  }
181
304
  }
182
305
  for (const child of root.namedChildren) {
@@ -191,16 +314,22 @@ export async function parseFile(source, filePath) {
191
314
  walk(root, (node) => {
192
315
  if (node.type === "method_invocation") {
193
316
  const info = invocationInfo(node);
317
+ const enclosingType = enclosingId(typeRanges, node.startPosition.row) ?? "";
318
+ const enclosingMethod = enclosingId(methodRanges, node.startPosition.row) ?? "";
194
319
  callSites.push({
195
320
  line: node.startPosition.row,
196
321
  receiver: info.receiver,
197
322
  name: info.name,
198
323
  argumentTexts: info.args,
199
- enclosingTypeId: enclosingId(typeRanges, node.startPosition.row) ?? "",
200
- enclosingMethodId: enclosingId(methodRanges, node.startPosition.row) ?? "",
324
+ enclosingTypeId: enclosingType,
325
+ enclosingMethodId: enclosingMethod,
201
326
  isConstructorCall: false,
202
327
  qualifiedReceiver: info.qualified,
328
+ controlFlow: controlFlowOf(node, JAVA_FLOW),
203
329
  });
330
+ const reflection = reflectionOf(info, enclosingType, enclosingMethod, node.startPosition.row);
331
+ if (reflection)
332
+ reflectiveRefs.push(reflection);
204
333
  }
205
334
  else if (node.type === "object_creation_expression") {
206
335
  const typeNode = fieldChild(node, "type") ?? childOfType(node, "type_identifier");
@@ -214,6 +343,7 @@ export async function parseFile(source, filePath) {
214
343
  enclosingMethodId: enclosingId(methodRanges, node.startPosition.row) ?? "",
215
344
  isConstructorCall: true,
216
345
  qualifiedReceiver: false,
346
+ controlFlow: controlFlowOf(node, JAVA_FLOW),
217
347
  });
218
348
  }
219
349
  });
@@ -239,6 +369,9 @@ export async function parseFile(source, filePath) {
239
369
  callSites,
240
370
  localsByMethod,
241
371
  typeByName,
372
+ scopeTypes: typeByName,
373
+ reflectiveRefs,
374
+ injections,
242
375
  };
243
376
  }
244
377
  /** Innermost symbol whose line range contains the given 0-based line. */
@@ -419,4 +552,25 @@ function invocationInfo(node) {
419
552
  function typeName(node) {
420
553
  return fieldChild(node, "name")?.text ?? node.namedChild(0)?.text ?? "?";
421
554
  }
555
+ /**
556
+ * Detect run-time lookups (`Class.forName`, `getDeclaredMethod`, ...). These
557
+ * have no static call target, so the resolver records them as REFLECTS edges.
558
+ */
559
+ function reflectionOf(info, enclosingTypeId, enclosingMethodId, line) {
560
+ const base = { enclosingTypeId, enclosingMethodId, line };
561
+ if (info.name === "load" && info.receiver !== null && /ServiceLoader$/.test(info.receiver)) {
562
+ const target = unquote(info.args[0] ?? "");
563
+ return target ? { ...base, mechanism: "ServiceLoader.load", targetKind: "type", target } : null;
564
+ }
565
+ const spec = REFLECTIVE_METHODS[info.name];
566
+ if (!spec || info.receiver === null)
567
+ return null;
568
+ if (spec.mechanism.startsWith("Class.getConstructor") || spec.mechanism.startsWith("Class.getDeclaredConstructor")) {
569
+ return { ...base, mechanism: spec.mechanism, targetKind: "method", target: "<init>", receiver: info.receiver };
570
+ }
571
+ const target = unquote(info.args[0] ?? "");
572
+ if (!target)
573
+ return null;
574
+ return { ...base, mechanism: spec.mechanism, targetKind: spec.targetKind, target, receiver: info.receiver };
575
+ }
422
576
  //# sourceMappingURL=java.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"java.js","sourceRoot":"","sources":["../../../src/parser/languages/java.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"java.js","sourceRoot":"","sources":["../../../src/parser/languages/java.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAiB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,UAAU,EACV,WAAW,EACX,IAAI,GAEL,MAAM,kBAAkB,CAAC;AAE1B;;;;;;GAMG;AAEH,MAAM,eAAe,GAAG,0BAA0B,CAAC;AACnD,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAUlD,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,eAAe,EAAE,YAAY,CAAC;IAC7D,SAAS;CACV,CAAC;AAEF,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,CACL,IAAI,KAAK,mBAAmB;QAC5B,IAAI,KAAK,uBAAuB;QAChC,IAAI,KAAK,kBAAkB;QAC3B,IAAI,KAAK,6BAA6B,CACvC,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,uBAAuB;QAAE,OAAO,WAAW,CAAC;IAC9D,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB;QAAE,OAAO,MAAM,CAAC;IACpD,IAAI,IAAI,CAAC,IAAI,KAAK,6BAA6B;QAAE,OAAO,YAAY,CAAC;IACrE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,uEAAuE;AACvE,MAAM,kBAAkB,GAA2B;IACjD,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;IAC9B,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF,mEAAmE;AACnE,MAAM,SAAS,GAAe;IAC5B,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE;IACjE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE;IACtE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE;IACrE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE;IAClD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE;IAChE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,EAAE;IAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE;IAClE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE;IAC/D,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE;CAC5C,CAAC;AAEF,wDAAwD;AACxD,MAAM,aAAa,GAA2B;IAC5C,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,QAAQ;IACvB,YAAY,EAAE,OAAO;IACrB,cAAc,EAAE,KAAK;CACtB,CAAC;AAEF,gDAAgD;AAChD,MAAM,qBAAqB,GAA2B;IACpD,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,QAAQ;IACnB,eAAe,EAAE,SAAS;CAC3B,CAAC;AAEF,mEAAmE;AACnE,MAAM,kBAAkB,GAAmF;IACzG,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE;IAC3D,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,uBAAuB,EAAE;IACrE,SAAS,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE;IACjE,iBAAiB,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,yBAAyB,EAAE;IACjF,cAAc,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,sBAAsB,EAAE;IAC3E,sBAAsB,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,8BAA8B,EAAE;IAC3F,QAAQ,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE;IAC/D,gBAAgB,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE;CAChF,CAAC;AAEF,2EAA2E;AAC3E,SAAS,gBAAgB,CACvB,WAA6B,EAC7B,IAAY,EACZ,SAAmB;IAEnB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;QAC/B,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC;YAChD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,IAAI,IAAI,EAAE,EAAE,CAAC;QACzD,CAAC;QACD,IAAI,MAAM,KAAK,eAAe,IAAI,MAAM,KAAK,gBAAgB,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,gBAAgB,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;YACrJ,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;YAC1C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC/E,CAAC;QACD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc,IAAI,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;QACpF,CAAC;QACD,IAAI,MAAM,KAAK,eAAe,IAAI,MAAM,KAAK,4BAA4B,EAAE,CAAC;YAC1E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC3C,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,mBAAmB,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YACrF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,2DAA2D;AAC3D,SAAS,oBAAoB,CAAC,WAA6B;IACzD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,uFAAuF;AACvF,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;IAC7D,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,0DAA0D;QAC1D,OAAO,WAAW,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;IAC3D,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB;YAAE,SAAS;QACjF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAc,EAAE,QAAgB;IAC9D,MAAM,OAAO,GAAG,CAAC,MAAM,UAAU,CAAC,WAAW,EAAE,CAAuC,CAAC;IACvF,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;IAE3B,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAErC,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,MAAM,cAAc,GAAoB,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAqB,EAAE,CAAC;IACxC,MAAM,cAAc,GAAG,IAAI,GAAG,EAA+B,CAAC;IAE9D,0EAA0E;IAC1E,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,SAAS,SAAS,CAAC,IAAY;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpD,2EAA2E;QAC3E,oEAAoE;QACpE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAE5F,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC;YACT,EAAE;YACF,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC;YAClC,eAAe,EAAE,iBAAiB,CAAC,IAAI,CAAC;YACxC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;YACjC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG;YAC7B,WAAW;YACX,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;SACxD,CAAC,CAAC;QACH,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACzE,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxC,IAAI,MAAM,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;oBACzC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC5B,CAAC;qBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;oBACrD,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACjC,CAAC;qBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;oBAC/C,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC5B,CAAC;qBAAM,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QAED,YAAY,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,SAAS,aAAa,CAAC,IAAY,EAAE,MAAc;QACjD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;QACzD,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC;YACX,EAAE;YACF,MAAM;YACN,IAAI;YACJ,aAAa,EAAE,KAAK;YACpB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC;YAC3B,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;YACjC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG;YAC7B,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC;YACnC,SAAS;YACT,WAAW;YACX,GAAG,MAAM;YACT,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC,CAAC;QACH,sBAAsB,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM;YAAE,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,8EAA8E;IAC9E,SAAS,sBAAsB,CAAC,IAAY,EAAE,MAAc,EAAE,iBAAmC;QAC/F,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QAC5F,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,MAAM,eAAe,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QAChE,KAAK,MAAM,EAAE,IAAI,cAAc,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAE,CAAC;YAChE,MAAM,SAAS,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,SAAS;gBAAE,SAAS;YACzB,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;YACvD,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;YAChC,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,MAAM;gBACf,IAAI;gBACJ,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACjD,SAAS,EAAE,SAAS,IAAI,eAAe,IAAI,SAAS;gBACpD,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG;aAC3B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,MAAc;QACtD,MAAM,EAAE,GAAG,GAAG,MAAM,SAAS,CAAC;QAC9B,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC;YACX,EAAE;YACF,MAAM;YACN,IAAI,EAAE,QAAQ;YACd,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC;YAC3B,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;YACjC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG;YAC7B,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC;YACjC,WAAW;SACZ,CAAC,CAAC;QACH,sBAAsB,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM;YAAE,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,aAAa,CAAC,IAAY,EAAE,MAAc;QACjD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACpD,KAAK,MAAM,UAAU,IAAI,cAAc,CAAC,IAAI,EAAE,qBAAqB,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;YAC/D,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,GAAG,MAAM,IAAI,IAAI,EAAE;gBACvB,MAAM;gBACN,IAAI;gBACJ,IAAI;gBACJ,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;gBACjC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC;gBACjC,WAAW;aACZ,CAAC,CAAC;YACH,IAAI,SAAS,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5D,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,MAAM;oBACf,IAAI;oBACJ,IAAI;oBACJ,SAAS;oBACT,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;iBAC7B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,4CAA4C;IAC5C,yEAAyE;IACzE,+DAA+D;IAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxF,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAE5F,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;QAClB,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,aAAa,GAAG,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5E,MAAM,eAAe,GAAG,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAChF,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;gBAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,aAAa,EAAE,IAAI,CAAC,IAAI;gBACxB,eAAe,EAAE,aAAa;gBAC9B,iBAAiB,EAAE,eAAe;gBAClC,iBAAiB,EAAE,KAAK;gBACxB,iBAAiB,EAAE,IAAI,CAAC,SAAS;gBACjC,WAAW,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC;aAC5C,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC9F,IAAI,UAAU;gBAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;YACtD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YAClF,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YACrF,SAAS,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;gBAC5B,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACjD,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACxE,eAAe,EAAE,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE;gBACtE,iBAAiB,EAAE,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE;gBAC1E,iBAAiB,EAAE,IAAI;gBACvB,iBAAiB,EAAE,KAAK;gBACxB,WAAW,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC;aAC5C,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACrD,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ;QACR,QAAQ,EAAE,MAAM;QAChB,WAAW;QACX,OAAO;QACP,KAAK;QACL,OAAO;QACP,MAAM;QACN,SAAS;QACT,cAAc;QACd,UAAU;QACV,UAAU,EAAE,UAAU;QACtB,cAAc;QACd,UAAU;KACX,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,SAAS,WAAW,CAClB,MAAoD,EACpD,IAAY;IAEZ,IAAI,IAAI,GAAyC,IAAI,CAAC;IACtD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;gBAAE,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACzE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC;AAC1B,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IACrD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,CACL,WAAW,CAAC,GAAG,EAAE,mBAAmB,CAAC,EAAE,IAAI;QAC3C,WAAW,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,IAAI;QACpC,IAAI,CACL,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,mBAAmB,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACvF,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACxE,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QAC1D,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACrF,OAAO,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACxF,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,GAAG,GAAqC,EAAE,CAAC;IACjD,KAAK,MAAM,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC;QACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnE,IAAI,GAAG;QAAE,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC;QAAE,OAAO,MAAM,CAAC;IAClD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,sEAAsE;IACtE,6DAA6D;IAC7D,OAAO,IAAI,CAAC,QAAQ;SACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC;SACxE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACzE,CAAC;AAED,6EAA6E;AAC7E,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB;YAAE,SAAS;QAChF,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAChD,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;YACtB,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC1C,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACpE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gEAAgE;AAChE,SAAS,OAAO,CAAC,UAA0B,EAAE,MAAc;IACzD,OAAO,CACL,UAAU,CAAC,IAAI,KAAK,MAAM;QAC1B,UAAU,CAAC,GAAG,KAAK,MAAM;QACzB,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,IAAI,KAAK,CAAC,CAClD,CAAC;AACJ,CAAC;AAED,gEAAgE;AAChE,SAAS,eAAe,CAAC,UAA0B;IACjD,MAAM,GAAG,GACP,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5F,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,OAAO,CAAC,GAAW;IAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5E,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,mEAAmE;AACnE,SAAS,QAAQ,CAAC,WAA6B;IAC7C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAChE,IAAI,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;gBAChC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,2EAA2E;AAC3E,SAAS,aAAa,CAAC,UAAkB;IACvC,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IAC7F,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;QACf,IAAI,CAAC,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC;gBACnD,IAAI,IAAI;oBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAMlC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAErF,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,UAAU,EAAE,CAAC;QACf,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;QAC3B,4EAA4E;QAC5E,kEAAkE;QAClE,SAAS;YACP,UAAU,CAAC,IAAI,KAAK,mBAAmB;gBACvC,UAAU,CAAC,IAAI,KAAK,YAAY;gBAChC,UAAU,CAAC,IAAI,KAAK,iBAAiB;gBACrC,UAAU,CAAC,IAAI,KAAK,wBAAwB,CAAC;IACjD,CAAC;IAED,OAAO;QACL,QAAQ;QACR,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE;QAC1B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QAC/D,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,GAAG,CAAC;AAC3E,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CACnB,IAA+D,EAC/D,eAAuB,EACvB,iBAAyB,EACzB,IAAY;IAEZ,MAAM,IAAI,GAAG,EAAE,eAAe,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3F,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAClG,CAAC;IACD,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,8BAA8B,CAAC,EAAE,CAAC;QACnH,OAAO,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjH,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC9G,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { LanguageConfig } from "../language.js";
2
+ export declare const pythonConfig: LanguageConfig;