warpo 3.1.1 → 3.1.3

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 (189) hide show
  1. package/asconfig.schema.json +10 -2
  2. package/dist/debug_server/debugPath.d.ts +1 -0
  3. package/dist/debug_server/debugPath.js +10 -0
  4. package/dist/debug_server/debugPath.js.map +1 -0
  5. package/dist/debug_server/debugSession.d.ts +61 -3
  6. package/dist/debug_server/debugSession.js +919 -80
  7. package/dist/debug_server/debugSession.js.map +1 -1
  8. package/dist/debug_server/debugger.d.ts +30 -2
  9. package/dist/debug_server/debuggerWasmModule.d.ts +59 -3
  10. package/dist/debug_server/debuggerWasmModule.js +234 -14
  11. package/dist/debug_server/debuggerWasmModule.js.map +1 -1
  12. package/dist/debug_server/nodeDebugger.d.ts +42 -3
  13. package/dist/debug_server/nodeDebugger.js +648 -59
  14. package/dist/debug_server/nodeDebugger.js.map +1 -1
  15. package/dist/debug_server/tests/debugSession.test.js +1154 -26
  16. package/dist/debug_server/tests/debugSession.test.js.map +1 -1
  17. package/dist/debug_server/tests/launcher.js +1 -0
  18. package/dist/debug_server/tests/launcher.js.map +1 -1
  19. package/dist/debug_server/tests/testModule/debugger_array.d.ts +1 -0
  20. package/dist/debug_server/tests/testModule/debugger_array.js +9 -0
  21. package/dist/debug_server/tests/testModule/debugger_array.js.map +1 -0
  22. package/dist/debug_server/tests/testModule/debugger_array_buffer.d.ts +1 -0
  23. package/dist/debug_server/tests/testModule/debugger_array_buffer.js +12 -0
  24. package/dist/debug_server/tests/testModule/debugger_array_buffer.js.map +1 -0
  25. package/dist/debug_server/tests/testModule/debugger_basic.d.ts +1 -0
  26. package/dist/debug_server/tests/testModule/debugger_basic.js +9 -1
  27. package/dist/debug_server/tests/testModule/debugger_basic.js.map +1 -1
  28. package/dist/debug_server/tests/testModule/debugger_breakpoint_update.d.ts +1 -0
  29. package/dist/debug_server/tests/testModule/debugger_breakpoint_update.js +10 -0
  30. package/dist/debug_server/tests/testModule/debugger_breakpoint_update.js.map +1 -0
  31. package/dist/debug_server/tests/testModule/debugger_callee.d.ts +10 -0
  32. package/dist/debug_server/tests/testModule/debugger_callee.js +106 -0
  33. package/dist/debug_server/tests/testModule/debugger_callee.js.map +1 -0
  34. package/dist/debug_server/tests/testModule/debugger_caller.d.ts +1 -0
  35. package/dist/debug_server/tests/testModule/debugger_caller.js +7 -0
  36. package/dist/debug_server/tests/testModule/debugger_caller.js.map +1 -0
  37. package/dist/debug_server/tests/testModule/debugger_class.d.ts +1 -0
  38. package/dist/debug_server/tests/testModule/debugger_class.js +39 -0
  39. package/dist/debug_server/tests/testModule/debugger_class.js.map +1 -0
  40. package/dist/debug_server/tests/testModule/debugger_class_array.d.ts +1 -0
  41. package/dist/debug_server/tests/testModule/debugger_class_array.js +15 -0
  42. package/dist/debug_server/tests/testModule/debugger_class_array.js.map +1 -0
  43. package/dist/debug_server/tests/testModule/debugger_closure.d.ts +1 -0
  44. package/dist/debug_server/tests/testModule/debugger_closure.js +48 -0
  45. package/dist/debug_server/tests/testModule/debugger_closure.js.map +1 -0
  46. package/dist/debug_server/tests/testModule/debugger_closure_if.d.ts +1 -0
  47. package/dist/debug_server/tests/testModule/debugger_closure_if.js +16 -0
  48. package/dist/debug_server/tests/testModule/debugger_closure_if.js.map +1 -0
  49. package/dist/debug_server/tests/testModule/debugger_generic_function.d.ts +1 -0
  50. package/dist/debug_server/tests/testModule/debugger_generic_function.js +10 -0
  51. package/dist/debug_server/tests/testModule/debugger_generic_function.js.map +1 -0
  52. package/dist/debug_server/tests/testModule/debugger_global.d.ts +1 -0
  53. package/dist/debug_server/tests/testModule/debugger_global.js +11 -0
  54. package/dist/debug_server/tests/testModule/debugger_global.js.map +1 -0
  55. package/dist/debug_server/tests/testModule/debugger_map.d.ts +1 -0
  56. package/dist/debug_server/tests/testModule/debugger_map.js +22 -0
  57. package/dist/debug_server/tests/testModule/debugger_map.js.map +1 -0
  58. package/dist/debug_server/tests/testModule/debugger_member_function.d.ts +1 -0
  59. package/dist/debug_server/tests/testModule/debugger_member_function.js +16 -0
  60. package/dist/debug_server/tests/testModule/debugger_member_function.js.map +1 -0
  61. package/dist/debug_server/tests/testModule/debugger_scopes.d.ts +1 -0
  62. package/dist/debug_server/tests/testModule/debugger_scopes.js +22 -0
  63. package/dist/debug_server/tests/testModule/debugger_scopes.js.map +1 -0
  64. package/dist/debug_server/tests/testModule/debugger_set.d.ts +1 -0
  65. package/dist/debug_server/tests/testModule/debugger_set.js +23 -0
  66. package/dist/debug_server/tests/testModule/debugger_set.js.map +1 -0
  67. package/dist/debug_server/tests/testModule/debugger_static_array.d.ts +1 -0
  68. package/dist/debug_server/tests/testModule/debugger_static_array.js +21 -0
  69. package/dist/debug_server/tests/testModule/debugger_static_array.js.map +1 -0
  70. package/dist/debug_server/tests/testModule/debugger_string.d.ts +1 -0
  71. package/dist/debug_server/tests/testModule/debugger_string.js +16 -0
  72. package/dist/debug_server/tests/testModule/debugger_string.js.map +1 -0
  73. package/dist/debug_server/tests/testModule/debugger_trap.d.ts +1 -0
  74. package/dist/debug_server/tests/testModule/debugger_trap.js +9 -0
  75. package/dist/debug_server/tests/testModule/debugger_trap.js.map +1 -0
  76. package/dist/debug_server/tests/testModule/debugger_tuple.d.ts +1 -0
  77. package/dist/debug_server/tests/testModule/debugger_tuple.js +15 -0
  78. package/dist/debug_server/tests/testModule/debugger_tuple.js.map +1 -0
  79. package/dist/debug_server/tests/testModule/import_failure.d.ts +1 -0
  80. package/dist/debug_server/tests/testModule/import_failure.js +4 -0
  81. package/dist/debug_server/tests/testModule/import_failure.js.map +1 -0
  82. package/dist/debug_server/tests/testModule/unittest_debug.case.js +10 -0
  83. package/dist/debug_server/tests/testModule/unittest_debug.case.js.map +1 -0
  84. package/dist/debug_server/tests/testModule/unittest_debug.d.ts +1 -0
  85. package/dist/debug_server/tests/testModule/unittest_debug.js +6 -0
  86. package/dist/debug_server/tests/testModule/unittest_debug.js.map +1 -0
  87. package/dist/debug_server/wasmEntry.js +32 -12
  88. package/dist/debug_server/wasmEntry.js.map +1 -1
  89. package/dist/dwarf/classDebugInfo.d.ts +45 -0
  90. package/dist/dwarf/classDebugInfo.js +292 -0
  91. package/dist/dwarf/classDebugInfo.js.map +1 -0
  92. package/dist/{heap_analyzer/src → dwarf}/dwarfParser.js +2 -0
  93. package/dist/dwarf/dwarfParser.js.map +1 -0
  94. package/dist/dwarf/functionDebugInfo.d.ts +63 -0
  95. package/dist/dwarf/functionDebugInfo.js +377 -0
  96. package/dist/dwarf/functionDebugInfo.js.map +1 -0
  97. package/dist/dwarf/tests/fixtures/functionDebugInfo.d.ts +3 -0
  98. package/dist/dwarf/tests/fixtures/functionDebugInfo.js +24 -0
  99. package/dist/dwarf/tests/fixtures/functionDebugInfo.js.map +1 -0
  100. package/dist/dwarf/tests/functionDebugInfo.test.d.ts +1 -0
  101. package/dist/dwarf/tests/functionDebugInfo.test.js +102 -0
  102. package/dist/dwarf/tests/functionDebugInfo.test.js.map +1 -0
  103. package/dist/heap_analyzer/cli.js +1 -1
  104. package/dist/heap_analyzer/cli.js.map +1 -1
  105. package/dist/heap_analyzer/src/constants.js +2 -1
  106. package/dist/heap_analyzer/src/constants.js.map +1 -1
  107. package/dist/heap_analyzer/src/debugInfoResolver.d.ts +4 -15
  108. package/dist/heap_analyzer/src/debugInfoResolver.js +20 -231
  109. package/dist/heap_analyzer/src/debugInfoResolver.js.map +1 -1
  110. package/dist/heap_analyzer/src/dominator.js +4 -1
  111. package/dist/heap_analyzer/src/dominator.js.map +1 -1
  112. package/dist/heap_analyzer/src/referenceScanner.js +7 -7
  113. package/dist/heap_analyzer/src/referenceScanner.js.map +1 -1
  114. package/dist/heap_analyzer/src/retainedSize.js +2 -0
  115. package/dist/heap_analyzer/src/retainedSize.js.map +1 -1
  116. package/dist/heap_analyzer/src/snapshot.js +1 -1
  117. package/dist/heap_analyzer/src/snapshot.js.map +1 -1
  118. package/dist/heap_analyzer/src/{tlsf.js → tlsfBlockWalker.js} +4 -3
  119. package/dist/heap_analyzer/src/tlsfBlockWalker.js.map +1 -0
  120. package/dist/heap_analyzer/src/types.d.ts +3 -32
  121. package/dist/heap_analyzer/src/types.js +1 -8
  122. package/dist/heap_analyzer/src/types.js.map +1 -1
  123. package/dist/heap_analyzer/tests/debugInfoResolver.test.js +1 -1
  124. package/dist/heap_analyzer/tests/debugInfoResolver.test.js.map +1 -1
  125. package/dist/heap_analyzer/tests/dwarfParser.test.js +57 -40
  126. package/dist/heap_analyzer/tests/dwarfParser.test.js.map +1 -1
  127. package/dist/heap_analyzer/tests/roots.test.js +1 -1
  128. package/dist/heap_analyzer/tests/roots.test.js.map +1 -1
  129. package/dist/heap_analyzer/tests/snapshot.test.js +4 -4
  130. package/dist/heap_analyzer/tests/testHelper.js +4 -7
  131. package/dist/heap_analyzer/tests/testHelper.js.map +1 -1
  132. package/dist/heap_analyzer/tests/tlsfBlockWalker.test.d.ts +1 -0
  133. package/dist/heap_analyzer/tests/{tlsf.test.js → tlsfBlockWalker.test.js} +2 -2
  134. package/dist/heap_analyzer/tests/tlsfBlockWalker.test.js.map +1 -0
  135. package/dist/heap_analyzer/tests/wasmExecutor.d.ts +2 -2
  136. package/dist/heap_analyzer/tests/wasmExecutor.js +5 -5
  137. package/dist/heap_analyzer/tests/wasmExecutor.js.map +1 -1
  138. package/dist/runtime/objectLayout.d.ts +10 -0
  139. package/dist/runtime/objectLayout.js +13 -0
  140. package/dist/runtime/objectLayout.js.map +1 -0
  141. package/dist/scripts/lib.d.ts +1 -0
  142. package/dist/scripts/lib.js +86 -22
  143. package/dist/scripts/lib.js.map +1 -1
  144. package/dist/test_runner/cli.d.ts +0 -1
  145. package/dist/test_runner/cli.js +37 -19
  146. package/dist/test_runner/cli.js.map +1 -1
  147. package/dist/test_runner/config.d.ts +3 -0
  148. package/dist/test_runner/config.js +8 -0
  149. package/dist/test_runner/config.js.map +1 -0
  150. package/dist/test_runner/core/analyze.js +12 -3
  151. package/dist/test_runner/core/analyze.js.map +1 -1
  152. package/dist/test_runner/core/compile.js +1 -4
  153. package/dist/test_runner/core/compile.js.map +1 -1
  154. package/dist/test_runner/core/compiler.js +2 -0
  155. package/dist/test_runner/core/compiler.js.map +1 -1
  156. package/dist/test_runner/core/execute.js +20 -3
  157. package/dist/test_runner/core/execute.js.map +1 -1
  158. package/dist/test_runner/executionResult.js +10 -8
  159. package/dist/test_runner/executionResult.js.map +1 -1
  160. package/dist/test_runner/generator/table-generator/index.js +4 -2
  161. package/dist/test_runner/generator/table-generator/index.js.map +1 -1
  162. package/dist/test_runner/parser/index.js +6 -5
  163. package/dist/test_runner/parser/index.js.map +1 -1
  164. package/dist/test_runner/parser/singleFileAnalysis.js +7 -4
  165. package/dist/test_runner/parser/singleFileAnalysis.js.map +1 -1
  166. package/dist/test_runner/parser/singleFunctionAnalysis.js +1 -1
  167. package/dist/test_runner/parser/singleFunctionAnalysis.js.map +1 -1
  168. package/dist/test_runner/utils/errorTraceHandler.js +2 -1
  169. package/dist/test_runner/utils/errorTraceHandler.js.map +1 -1
  170. package/dist/test_runner/utils/index.js +9 -2
  171. package/dist/test_runner/utils/index.js.map +1 -1
  172. package/dist/test_runner/utils/interface.js +2 -1
  173. package/dist/test_runner/utils/interface.js.map +1 -1
  174. package/dist/test_runner/utils/pathResolver.js +9 -7
  175. package/dist/test_runner/utils/pathResolver.js.map +1 -1
  176. package/dist/test_runner/utils/wasm.js +16 -8
  177. package/dist/test_runner/utils/wasm.js.map +1 -1
  178. package/dist/trace_visualizer.d.ts +2 -0
  179. package/dist/trace_visualizer.js +18 -0
  180. package/dist/trace_visualizer.js.map +1 -0
  181. package/dist/warpo.js +2 -1
  182. package/dist/warpo.js.map +1 -1
  183. package/package.json +9 -5
  184. package/dist/heap_analyzer/src/dwarfParser.js.map +0 -1
  185. package/dist/heap_analyzer/src/tlsf.js.map +0 -1
  186. package/dist/heap_analyzer/tests/tlsf.test.js.map +0 -1
  187. /package/dist/{heap_analyzer/tests/tlsf.test.d.ts → debug_server/tests/testModule/unittest_debug.case.d.ts} +0 -0
  188. /package/dist/{heap_analyzer/src → dwarf}/dwarfParser.d.ts +0 -0
  189. /package/dist/heap_analyzer/src/{tlsf.d.ts → tlsfBlockWalker.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"debugSession.js","sourceRoot":"","sources":["../../tools/debug_server/debugSession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debugSession.js","sourceRoot":"","sources":["../../tools/debug_server/debugSession.ts"],"names":[],"mappings":"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"}
@@ -8,18 +8,46 @@ export interface WasmLaunchConfig {
8
8
  entryFunctionName: string;
9
9
  args: number[];
10
10
  }
11
+ export interface UnitTestLaunchConfig {
12
+ wasmFilePath: string;
13
+ cwd: string;
14
+ warpoPath?: string;
15
+ }
11
16
  export interface DebugPauseInfo {
12
17
  reason: string;
18
+ wasmBytecodeOffset?: number;
19
+ }
20
+ export interface DebugRuntimeVariable {
21
+ name: string;
22
+ value: string;
23
+ type?: string;
24
+ localIndex: number;
25
+ }
26
+ export interface DebugRuntimeGlobal {
27
+ globalIndex: number;
28
+ value: string;
29
+ type?: string;
30
+ }
31
+ export interface DebugPausedWasmFrame {
32
+ functionName: string;
33
+ wasmBytecodeOffset?: number;
13
34
  }
14
35
  export interface Debugger {
15
36
  readonly name: string;
16
- launch(config: WasmLaunchConfig): Promise<void>;
37
+ launch(config: WasmLaunchConfig | UnitTestLaunchConfig): Promise<void>;
17
38
  dispose(): void;
18
39
  isPaused(): boolean;
19
40
  pause(): void;
20
41
  resume(): Promise<void>;
21
42
  finishModuleLoad(): void;
22
- setWasmBreakpoint(module: DebuggerWasmModule, bytecodeOffset: number, callbacks?: DebuggerCommandCallbacks): void;
43
+ getPausedWasmFrames(): DebugPausedWasmFrame[];
44
+ getPausedWasmFrameVariables(frameIndex: number): Promise<DebugRuntimeVariable[]>;
45
+ getPausedWasmGlobalVariables(): Promise<DebugRuntimeGlobal[]>;
46
+ readWasmMemory(address: number, byteLength: number): Promise<Uint8Array | undefined>;
47
+ setWasmBreakpoints(module: DebuggerWasmModule, wasmBytecodeOffsets: number[], callbacks?: DebuggerCommandCallbacks): void;
23
48
  onModuleLoad: ((module: DebuggerWasmModule) => void | Promise<void>) | undefined;
24
49
  onPause: ((info: DebugPauseInfo) => void | Promise<void>) | undefined;
50
+ onRuntimeError: ((message: string) => void) | undefined;
51
+ onRuntimeExit: (() => void) | undefined;
52
+ onLog: ((message: string) => void) | undefined;
25
53
  }
@@ -1,28 +1,84 @@
1
- import { type BasicSourceMapConsumer, type IndexedSourceMapConsumer } from "source-map";
2
- export type ParsedSourceMap = BasicSourceMapConsumer | IndexedSourceMapConsumer;
1
+ import { type ClassLayout } from "../dwarf/classDebugInfo.js";
2
+ import { type BasicSourceMapConsumer } from "source-map";
3
+ export type ParsedSourceMap = BasicSourceMapConsumer;
3
4
  export interface DebuggerBreakpointInfo {
4
5
  id: number;
5
6
  line: number;
6
7
  verified: boolean;
7
8
  source: string;
8
9
  }
10
+ interface DebuggerSourceVariableInfoBase {
11
+ name: string;
12
+ typeName: string;
13
+ }
14
+ export interface DebuggerWasmLocalVariableInfo extends DebuggerSourceVariableInfoBase {
15
+ kind: "wasm-local";
16
+ localIndex: number;
17
+ }
18
+ export interface DebuggerClosureVariableInfo extends DebuggerSourceVariableInfoBase {
19
+ kind: "closure";
20
+ closureEnvLocalIndex: number;
21
+ fieldOffset: number;
22
+ }
23
+ export interface DebuggerWasmGlobalVariableInfo extends DebuggerSourceVariableInfoBase {
24
+ kind: "wasm-global";
25
+ globalIndex: number;
26
+ }
27
+ export type DebuggerSourceVariableInfo = DebuggerWasmLocalVariableInfo | DebuggerClosureVariableInfo | DebuggerWasmGlobalVariableInfo;
28
+ export interface DebuggerVariableScope {
29
+ name: string;
30
+ variables: DebuggerSourceVariableInfo[];
31
+ closureEnvLocalIndex?: number;
32
+ rootClosureEnvLocalIndex?: number;
33
+ tupleLevel?: number;
34
+ }
35
+ export interface DebuggerBreakpointLocation {
36
+ wasmBytecodeOffset: number;
37
+ sourceLine: number;
38
+ }
39
+ export interface DebuggerSourceLocation {
40
+ sourcePath: string;
41
+ sourceLine: number;
42
+ }
9
43
  export declare class DebuggerWasmModule {
10
44
  readonly scriptId: string;
11
45
  readonly url: string;
12
46
  readonly wasmFilePath: string;
13
47
  readonly sourceMapFilePath: string;
14
48
  readonly bytecode: Uint8Array;
15
- readonly sourceMap: ParsedSourceMap;
49
+ private readonly sourceMap;
50
+ private readonly functionInfoResolver;
51
+ private readonly classInfoResolver;
16
52
  private readonly sourcesByPath;
53
+ private readonly breakpointLocations;
17
54
  private constructor();
18
55
  static load(wasmFilePath: string, runtimeInfo?: {
19
56
  scriptId?: string;
20
57
  url?: string;
21
58
  }): Promise<DebuggerWasmModule>;
22
59
  dispose(): void;
60
+ resolveBreakpointLocations(breakpoint: DebuggerBreakpointInfo): DebuggerBreakpointLocation[];
61
+ resolveBreakpointLocation(breakpoint: DebuggerBreakpointInfo): DebuggerBreakpointLocation | undefined;
23
62
  findBytecodeOffset(sourcePath: string, line: number): number | undefined;
63
+ getVariablesAtBytecodeOffset(wasmBytecodeOffset: number): DebuggerSourceVariableInfo[] | undefined;
64
+ getVariableScopesAtBytecodeOffset(wasmBytecodeOffset: number): DebuggerVariableScope[] | undefined;
65
+ private getVariableScopes;
66
+ getClassLayout(typeName: string): ClassLayout | undefined;
67
+ getInternalClassLayout(typeName: string): ClassLayout | undefined;
68
+ getClassLayoutByRtid(rtid: number): ClassLayout | undefined;
69
+ resolveSourceLine(wasmBytecodeOffset: number): number | undefined;
70
+ resolveSourceLocation(wasmBytecodeOffset: number): DebuggerSourceLocation | undefined;
24
71
  hasSource(sourcePath: string): boolean;
25
72
  private findSource;
26
73
  private static loadSourceMap;
27
74
  private static resolveSourcePath;
75
+ private static toVariableScope;
76
+ private static findClosureEnvLocalIndex;
77
+ private static toClosureVariableScope;
78
+ private static getFunctionBaseName;
79
+ private static getClosureFunctionName;
80
+ private static toSourceVariableInfo;
81
+ private static toClosureSourceVariableInfo;
82
+ private static toGlobalSourceVariableInfo;
28
83
  }
84
+ export {};
@@ -1,8 +1,13 @@
1
1
  // Copyright (C) 2025 wasm-ecosystem
2
2
  // SPDX-License-Identifier: Apache-2.0
3
+ import assert from "node:assert/strict";
4
+ import { existsSync } from "node:fs";
3
5
  import { readFile } from "node:fs/promises";
4
6
  import * as path from "node:path";
5
- import { SourceMapConsumer, } from "source-map";
7
+ import { DwarfClassInfoResolver } from "../dwarf/classDebugInfo.js";
8
+ import { DwarfFunctionInfoResolver, getClosureVariableLevels, getScopeChainInFunctionAtBytecodeOffset, getVariablesInFunctionAtBytecodeOffset, } from "../dwarf/functionDebugInfo.js";
9
+ import { SourceMapConsumer } from "source-map";
10
+ import { normalizeDebugPath } from "./debugPath.js";
6
11
  export class DebuggerWasmModule {
7
12
  scriptId;
8
13
  url;
@@ -10,15 +15,20 @@ export class DebuggerWasmModule {
10
15
  sourceMapFilePath;
11
16
  bytecode;
12
17
  sourceMap;
18
+ functionInfoResolver;
19
+ classInfoResolver;
13
20
  sourcesByPath;
14
- constructor(scriptId, url, wasmFilePath, sourceMapFilePath, bytecode, sourceMap, sourcesByPath) {
21
+ breakpointLocations = new Map();
22
+ constructor(scriptId, url, wasmFilePath, sourceMapFilePath, bytecode, sourceMap, functionInfoResolver, classInfoResolver) {
15
23
  this.scriptId = scriptId;
16
24
  this.url = url;
17
25
  this.wasmFilePath = wasmFilePath;
18
26
  this.sourceMapFilePath = sourceMapFilePath;
19
27
  this.bytecode = bytecode;
20
28
  this.sourceMap = sourceMap;
21
- this.sourcesByPath = sourcesByPath;
29
+ this.functionInfoResolver = functionInfoResolver;
30
+ this.classInfoResolver = classInfoResolver;
31
+ this.sourcesByPath = new Map(sourceMap.sources.map((source) => [DebuggerWasmModule.resolveSourcePath(sourceMapFilePath, source), source]));
22
32
  }
23
33
  static async load(wasmFilePath, runtimeInfo) {
24
34
  const sourceMapFilePath = `${wasmFilePath}.map`;
@@ -26,28 +36,153 @@ export class DebuggerWasmModule {
26
36
  readFile(wasmFilePath),
27
37
  DebuggerWasmModule.loadSourceMap(sourceMapFilePath),
28
38
  ]);
29
- const sourcesByPath = new Map(sourceMap.sources.map((source) => [DebuggerWasmModule.resolveSourcePath(sourceMapFilePath, source), source]));
30
- return new DebuggerWasmModule(runtimeInfo?.scriptId ?? "", runtimeInfo?.url ?? "", wasmFilePath, sourceMapFilePath, bytecode, sourceMap, sourcesByPath);
39
+ return new DebuggerWasmModule(runtimeInfo?.scriptId ?? "", runtimeInfo?.url ?? "", wasmFilePath, sourceMapFilePath, bytecode, sourceMap, DwarfFunctionInfoResolver.fromWasm(bytecode), DwarfClassInfoResolver.fromWasm(bytecode));
31
40
  }
32
41
  dispose() {
33
42
  this.sourceMap.destroy();
34
43
  }
35
- findBytecodeOffset(sourcePath, line) {
44
+ resolveBreakpointLocations(breakpoint) {
45
+ const { source: sourcePath, line } = breakpoint;
36
46
  const source = this.findSource(sourcePath);
37
47
  if (!source) {
48
+ return [];
49
+ }
50
+ const cacheKey = `${source}:${line}`;
51
+ const cachedWasmBytecodeOffsets = this.breakpointLocations.get(cacheKey);
52
+ if (cachedWasmBytecodeOffsets !== undefined) {
53
+ return cachedWasmBytecodeOffsets.map((wasmBytecodeOffset) => ({ wasmBytecodeOffset, sourceLine: line }));
54
+ }
55
+ const wasmBytecodeOffsetsByFunction = new Map();
56
+ let firstWasmBytecodeOffsetWithoutFunction;
57
+ this.sourceMap.eachMapping((mapping) => {
58
+ if (mapping.source !== source || mapping.originalLine !== line || mapping.generatedLine !== 1) {
59
+ return;
60
+ }
61
+ const functionInfo = this.functionInfoResolver.findFunctionByBytecodeOffset(mapping.generatedColumn);
62
+ if (!functionInfo) {
63
+ if (firstWasmBytecodeOffsetWithoutFunction === undefined ||
64
+ mapping.generatedColumn < firstWasmBytecodeOffsetWithoutFunction) {
65
+ firstWasmBytecodeOffsetWithoutFunction = mapping.generatedColumn;
66
+ }
67
+ return;
68
+ }
69
+ const existingOffset = wasmBytecodeOffsetsByFunction.get(functionInfo);
70
+ if (existingOffset === undefined || mapping.generatedColumn < existingOffset) {
71
+ wasmBytecodeOffsetsByFunction.set(functionInfo, mapping.generatedColumn);
72
+ }
73
+ });
74
+ const wasmBytecodeOffsets = Array.from(wasmBytecodeOffsetsByFunction.values());
75
+ if (firstWasmBytecodeOffsetWithoutFunction !== undefined) {
76
+ wasmBytecodeOffsets.push(firstWasmBytecodeOffsetWithoutFunction);
77
+ }
78
+ const sortedWasmBytecodeOffsets = wasmBytecodeOffsets.toSorted((left, right) => left - right);
79
+ this.breakpointLocations.set(cacheKey, sortedWasmBytecodeOffsets);
80
+ return sortedWasmBytecodeOffsets.map((wasmBytecodeOffset) => ({ wasmBytecodeOffset, sourceLine: line }));
81
+ }
82
+ resolveBreakpointLocation(breakpoint) {
83
+ return this.resolveBreakpointLocations(breakpoint)[0];
84
+ }
85
+ findBytecodeOffset(sourcePath, line) {
86
+ return this.resolveBreakpointLocation({
87
+ id: 0,
88
+ line,
89
+ verified: true,
90
+ source: sourcePath,
91
+ })?.wasmBytecodeOffset;
92
+ }
93
+ getVariablesAtBytecodeOffset(wasmBytecodeOffset) {
94
+ const functionInfo = this.functionInfoResolver.findFunctionByBytecodeOffset(wasmBytecodeOffset);
95
+ if (!functionInfo) {
38
96
  return undefined;
39
97
  }
40
- const generatedPositions = this.sourceMap.allGeneratedPositionsFor({ source, line });
41
- let firstOffset;
42
- for (const generatedPosition of generatedPositions) {
43
- if (generatedPosition.line === null || generatedPosition.column === null) {
98
+ const variables = [];
99
+ for (const variable of getVariablesInFunctionAtBytecodeOffset(functionInfo, wasmBytecodeOffset)) {
100
+ variables.push(DebuggerWasmModule.toSourceVariableInfo(variable));
101
+ }
102
+ return variables;
103
+ }
104
+ getVariableScopesAtBytecodeOffset(wasmBytecodeOffset) {
105
+ const functionInfo = this.functionInfoResolver.findFunctionByBytecodeOffset(wasmBytecodeOffset);
106
+ if (!functionInfo) {
107
+ return undefined;
108
+ }
109
+ return this.getVariableScopes(functionInfo, wasmBytecodeOffset);
110
+ }
111
+ getVariableScopes(functionInfo, wasmBytecodeOffset) {
112
+ assert(functionInfo !== undefined);
113
+ const scopeChain = getScopeChainInFunctionAtBytecodeOffset(functionInfo, wasmBytecodeOffset);
114
+ const scopes = [];
115
+ const functionName = DebuggerWasmModule.getFunctionBaseName(functionInfo.name);
116
+ const closureEnvLocalIndex = functionInfo.closureEnvLocalIndex;
117
+ const currentTupleLevel = closureEnvLocalIndex === undefined ? undefined : 0;
118
+ for (const scope of scopeChain.toReversed()) {
119
+ if (scope.variables.length > 0) {
120
+ scopes.push(DebuggerWasmModule.toVariableScope(`Block: ${functionName}`, scope, closureEnvLocalIndex, currentTupleLevel));
121
+ }
122
+ }
123
+ const functionVariables = [];
124
+ for (const parameter of functionInfo.parameters) {
125
+ functionVariables.push(parameter);
126
+ }
127
+ for (const variable of functionInfo.variables) {
128
+ functionVariables.push(variable);
129
+ }
130
+ if (functionVariables.length > 0) {
131
+ const localClosureEnvLocalIndex = closureEnvLocalIndex ?? DebuggerWasmModule.findClosureEnvLocalIndex(functionVariables);
132
+ scopes.push({
133
+ name: `Local: ${functionName}`,
134
+ variables: functionVariables.map((variable) => DebuggerWasmModule.toSourceVariableInfo(variable)),
135
+ closureEnvLocalIndex: localClosureEnvLocalIndex,
136
+ rootClosureEnvLocalIndex: localClosureEnvLocalIndex,
137
+ tupleLevel: localClosureEnvLocalIndex === undefined ? undefined : 0,
138
+ });
139
+ }
140
+ const closureLevels = getClosureVariableLevels(functionInfo);
141
+ for (const level of closureLevels) {
142
+ if (level.level === 0) {
44
143
  continue;
45
144
  }
46
- if (firstOffset === undefined || generatedPosition.column < firstOffset) {
47
- firstOffset = generatedPosition.column;
145
+ if (level.variables.length > 0) {
146
+ scopes.push(DebuggerWasmModule.toClosureVariableScope(level, closureEnvLocalIndex ?? -1));
48
147
  }
49
148
  }
50
- return firstOffset;
149
+ const globals = this.functionInfoResolver.getGlobals();
150
+ if (globals.length > 0) {
151
+ scopes.push({
152
+ name: "Global",
153
+ variables: globals.map((variable) => DebuggerWasmModule.toGlobalSourceVariableInfo(variable)),
154
+ });
155
+ }
156
+ return scopes;
157
+ }
158
+ getClassLayout(typeName) {
159
+ return this.classInfoResolver.getClassLayout(typeName);
160
+ }
161
+ getInternalClassLayout(typeName) {
162
+ return this.classInfoResolver.getInternalClassLayout(typeName);
163
+ }
164
+ getClassLayoutByRtid(rtid) {
165
+ return this.classInfoResolver.getClassDef(rtid);
166
+ }
167
+ resolveSourceLine(wasmBytecodeOffset) {
168
+ const position = this.sourceMap.originalPositionFor({
169
+ line: 1,
170
+ column: wasmBytecodeOffset,
171
+ });
172
+ return position.line ?? undefined;
173
+ }
174
+ resolveSourceLocation(wasmBytecodeOffset) {
175
+ const position = this.sourceMap.originalPositionFor({
176
+ line: 1,
177
+ column: wasmBytecodeOffset,
178
+ });
179
+ if (!position.source || position.line === null) {
180
+ return undefined;
181
+ }
182
+ return {
183
+ sourcePath: DebuggerWasmModule.resolveSourcePath(this.sourceMapFilePath, position.source),
184
+ sourceLine: position.line,
185
+ };
51
186
  }
52
187
  hasSource(sourcePath) {
53
188
  return this.findSource(sourcePath) !== undefined;
@@ -69,7 +204,92 @@ export class DebuggerWasmModule {
69
204
  return new SourceMapConsumer(rawSourceMap);
70
205
  }
71
206
  static resolveSourcePath(sourceMapFilePath, sourcePath) {
72
- return path.resolve(path.dirname(sourceMapFilePath), sourcePath).replaceAll("\\", "/");
207
+ if (path.isAbsolute(sourcePath)) {
208
+ return normalizeDebugPath(sourcePath);
209
+ }
210
+ const sourceMapDir = path.dirname(sourceMapFilePath);
211
+ const sourceMapDirCandidate = path.resolve(sourceMapDir, sourcePath);
212
+ if (existsSync(sourceMapDirCandidate)) {
213
+ return normalizeDebugPath(sourceMapDirCandidate);
214
+ }
215
+ const sourceMapParentCandidate = path.resolve(sourceMapDir, "..", sourcePath);
216
+ if (existsSync(sourceMapParentCandidate)) {
217
+ return normalizeDebugPath(sourceMapParentCandidate);
218
+ }
219
+ return normalizeDebugPath(sourceMapDirCandidate);
220
+ }
221
+ static toVariableScope(name, scope, functionClosureEnvLocalIndex, tupleLevel) {
222
+ const closureEnvLocalIndex = scope.closureEnvLocalIndex ??
223
+ DebuggerWasmModule.findClosureEnvLocalIndex(scope.variables) ??
224
+ functionClosureEnvLocalIndex;
225
+ return {
226
+ name,
227
+ variables: scope.variables.map((variable) => DebuggerWasmModule.toSourceVariableInfo(variable)),
228
+ closureEnvLocalIndex,
229
+ rootClosureEnvLocalIndex: closureEnvLocalIndex,
230
+ tupleLevel: tupleLevel ?? (closureEnvLocalIndex === undefined ? undefined : 0),
231
+ };
232
+ }
233
+ static findClosureEnvLocalIndex(variables) {
234
+ for (const variable of variables) {
235
+ if (variable.fieldOffset !== undefined) {
236
+ return variable.localIndex;
237
+ }
238
+ }
239
+ return undefined;
240
+ }
241
+ static toClosureVariableScope(level, rootClosureEnvLocalIndex) {
242
+ return {
243
+ name: level.kind === "scope" ? "Scope" : `Closure(${DebuggerWasmModule.getClosureFunctionName(level.name)})`,
244
+ variables: level.variables.map((variable) => DebuggerWasmModule.toClosureSourceVariableInfo(variable)),
245
+ closureEnvLocalIndex: level.closureEnvLocalIndex,
246
+ rootClosureEnvLocalIndex,
247
+ tupleLevel: level.level,
248
+ };
249
+ }
250
+ static getFunctionBaseName(name) {
251
+ const lastSlash = name.lastIndexOf("/");
252
+ if (lastSlash === -1) {
253
+ return name;
254
+ }
255
+ return name.slice(lastSlash + 1);
256
+ }
257
+ static getClosureFunctionName(name) {
258
+ const functionName = DebuggerWasmModule.getFunctionBaseName(name);
259
+ const lastSeparator = functionName.lastIndexOf("~");
260
+ if (lastSeparator === -1) {
261
+ return functionName;
262
+ }
263
+ return functionName.slice(lastSeparator + 1);
264
+ }
265
+ static toSourceVariableInfo(variable) {
266
+ if (variable.fieldOffset !== undefined) {
267
+ return DebuggerWasmModule.toClosureSourceVariableInfo(variable);
268
+ }
269
+ return {
270
+ kind: "wasm-local",
271
+ name: variable.name,
272
+ typeName: variable.typeName,
273
+ localIndex: variable.localIndex,
274
+ };
275
+ }
276
+ static toClosureSourceVariableInfo(variable) {
277
+ assert(variable.fieldOffset !== undefined);
278
+ return {
279
+ kind: "closure",
280
+ name: variable.name,
281
+ typeName: variable.typeName,
282
+ closureEnvLocalIndex: variable.localIndex,
283
+ fieldOffset: variable.fieldOffset,
284
+ };
285
+ }
286
+ static toGlobalSourceVariableInfo(variable) {
287
+ return {
288
+ kind: "wasm-global",
289
+ name: variable.name,
290
+ typeName: variable.typeName,
291
+ globalIndex: variable.globalIndex,
292
+ };
73
293
  }
74
294
  }
75
295
  //# sourceMappingURL=debuggerWasmModule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"debuggerWasmModule.js","sourceRoot":"","sources":["../../tools/debug_server/debuggerWasmModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debuggerWasmModule.js","sourceRoot":"","sources":["../../tools/debug_server/debuggerWasmModule.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,sCAAsC;AAEtC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAoB,MAAM,4BAA4B,CAAC;AACtF,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,uCAAuC,EACvC,sCAAsC,GAMvC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAkD,MAAM,YAAY,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAuDpD,MAAM,OAAO,kBAAkB;IAKlB;IACA;IACA;IACA;IACA;IACQ;IACA;IACA;IAXF,aAAa,CAA8B;IAC3C,mBAAmB,GAAG,IAAI,GAAG,EAAoB,CAAC;IAEnE,YACW,QAAgB,EAChB,GAAW,EACX,YAAoB,EACpB,iBAAyB,EACzB,QAAoB,EACZ,SAA0B,EAC1B,oBAA+C,EAC/C,iBAAyC;QAPjD,aAAQ,GAAR,QAAQ,CAAQ;QAChB,QAAG,GAAH,GAAG,CAAQ;QACX,iBAAY,GAAZ,YAAY,CAAQ;QACpB,sBAAiB,GAAjB,iBAAiB,CAAQ;QACzB,aAAQ,GAAR,QAAQ,CAAY;QACZ,cAAS,GAAT,SAAS,CAAiB;QAC1B,yBAAoB,GAApB,oBAAoB,CAA2B;QAC/C,sBAAiB,GAAjB,iBAAiB,CAAwB;QAE1D,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,CAC1B,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAC7G,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,YAAoB,EACpB,WAAiD;QAEjD,MAAM,iBAAiB,GAAG,GAAG,YAAY,MAAM,CAAC;QAChD,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC9C,QAAQ,CAAC,YAAY,CAAC;YACtB,kBAAkB,CAAC,aAAa,CAAC,iBAAiB,CAAC;SACpD,CAAC,CAAC;QAEH,OAAO,IAAI,kBAAkB,CAC3B,WAAW,EAAE,QAAQ,IAAI,EAAE,EAC3B,WAAW,EAAE,GAAG,IAAI,EAAE,EACtB,YAAY,EACZ,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,yBAAyB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC5C,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC1C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,0BAA0B,CAAC,UAAkC;QAC3D,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;QACrC,MAAM,yBAAyB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzE,IAAI,yBAAyB,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,yBAAyB,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3G,CAAC;QAED,MAAM,6BAA6B,GAAG,IAAI,GAAG,EAA6B,CAAC;QAC3E,IAAI,sCAA0D,CAAC;QAC/D,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE;YACrC,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,IAAI,OAAO,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;gBAC9F,OAAO;YACT,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,4BAA4B,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YACrG,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IACE,sCAAsC,KAAK,SAAS;oBACpD,OAAO,CAAC,eAAe,GAAG,sCAAsC,EAChE,CAAC;oBACD,sCAAsC,GAAG,OAAO,CAAC,eAAe,CAAC;gBACnE,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,cAAc,GAAG,6BAA6B,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACvE,IAAI,cAAc,KAAK,SAAS,IAAI,OAAO,CAAC,eAAe,GAAG,cAAc,EAAE,CAAC;gBAC7E,6BAA6B,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/E,IAAI,sCAAsC,KAAK,SAAS,EAAE,CAAC;YACzD,mBAAmB,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,yBAAyB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QAC9F,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;QAClE,OAAO,yBAAyB,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED,yBAAyB,CAAC,UAAkC;QAC1D,OAAO,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,kBAAkB,CAAC,UAAkB,EAAE,IAAY;QACjD,OAAO,IAAI,CAAC,yBAAyB,CAAC;YACpC,EAAE,EAAE,CAAC;YACL,IAAI;YACJ,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,UAAU;SACnB,CAAC,EAAE,kBAAkB,CAAC;IACzB,CAAC;IAED,4BAA4B,CAAC,kBAA0B;QACrD,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,4BAA4B,CAAC,kBAAkB,CAAC,CAAC;QAChG,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAiC,EAAE,CAAC;QACnD,KAAK,MAAM,QAAQ,IAAI,sCAAsC,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAAE,CAAC;YAChG,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,iCAAiC,CAAC,kBAA0B;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,4BAA4B,CAAC,kBAAkB,CAAC,CAAC;QAChG,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IAClE,CAAC;IAEO,iBAAiB,CACvB,YAAmF,EACnF,kBAA0B;QAE1B,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,uCAAuC,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;QAC7F,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/E,MAAM,oBAAoB,GAAG,YAAY,CAAC,oBAAoB,CAAC;QAC/D,MAAM,iBAAiB,GAAG,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7E,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC;YAC5C,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CACT,kBAAkB,CAAC,eAAe,CAAC,UAAU,YAAY,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,CAC7G,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,iBAAiB,GAA6B,EAAE,CAAC;QACvD,KAAK,MAAM,SAAS,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;YAChD,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;YAC9C,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,yBAAyB,GAC7B,oBAAoB,IAAI,kBAAkB,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;YACzF,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,UAAU,YAAY,EAAE;gBAC9B,SAAS,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBACjG,oBAAoB,EAAE,yBAAyB;gBAC/C,wBAAwB,EAAE,yBAAyB;gBACnD,UAAU,EAAE,yBAAyB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACpE,CAAC,CAAC;QACL,CAAC;QAED,MAAM,aAAa,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;QAC7D,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;gBACtB,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,KAAK,EAAE,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,CAAC;QACvD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;aAC9F,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,sBAAsB,CAAC,QAAgB;QACrC,OAAO,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED,oBAAoB,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,iBAAiB,CAAC,kBAA0B;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;YAClD,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,kBAAkB;SAC3B,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,IAAI,SAAS,CAAC;IACpC,CAAC;IAED,qBAAqB,CAAC,kBAA0B;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;YAClD,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,kBAAkB;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO;YACL,UAAU,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC;YACzF,UAAU,EAAE,QAAQ,CAAC,IAAI;SAC1B,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,UAAkB;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC;IACnD,CAAC;IAEO,UAAU,CAAC,UAAkB;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC5C,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC;gBAC/D,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,iBAAyB;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAiB,CAAC;QAC3F,OAAO,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,iBAAyB,EAAE,UAAkB;QAC5E,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACrE,IAAI,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACtC,OAAO,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAC9E,IAAI,UAAU,CAAC,wBAAwB,CAAC,EAAE,CAAC;YACzC,OAAO,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IACnD,CAAC;IAEO,MAAM,CAAC,eAAe,CAC5B,IAAY,EACZ,KAAqB,EACrB,4BAAqC,EACrC,UAAmB;QAEnB,MAAM,oBAAoB,GACxB,KAAK,CAAC,oBAAoB;YAC1B,kBAAkB,CAAC,wBAAwB,CAAC,KAAK,CAAC,SAAS,CAAC;YAC5D,4BAA4B,CAAC;QAC/B,OAAO;YACL,IAAI;YACJ,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAC/F,oBAAoB;YACpB,wBAAwB,EAAE,oBAAoB;YAC9C,UAAU,EAAE,UAAU,IAAI,CAAC,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/E,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,wBAAwB,CAAC,SAAmC;QACzE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACvC,OAAO,QAAQ,CAAC,UAAU,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,MAAM,CAAC,sBAAsB,CACnC,KAAgC,EAChC,wBAAgC;QAEhC,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,kBAAkB,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;YAC5G,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;YACtG,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;YAChD,wBAAwB;YACxB,UAAU,EAAE,KAAK,CAAC,KAAK;SACxB,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,IAAY;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IAEO,MAAM,CAAC,sBAAsB,CAAC,IAAY;QAChD,MAAM,YAAY,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;YACzB,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,OAAO,YAAY,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,QAAgC;QAClE,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,kBAAkB,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QAClE,CAAC;QAED,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;SAChC,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,2BAA2B,CAAC,QAAgC;QACzE,MAAM,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC;QAC3C,OAAO;YACL,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,oBAAoB,EAAE,QAAQ,CAAC,UAAU;YACzC,WAAW,EAAE,QAAQ,CAAC,WAAW;SAClC,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,0BAA0B,CAAC,QAAiC;QACzE,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;SAClC,CAAC;IACJ,CAAC;CACF"}