devtools-tracing 1.0.1 → 1.1.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.
Files changed (132) hide show
  1. package/generate.ts +32 -26
  2. package/index.ts +2 -1
  3. package/lib/extension-api/ExtensionAPI.d.ts +357 -0
  4. package/lib/front_end/models/bindings/CSSWorkspaceBinding.ts +318 -0
  5. package/lib/front_end/models/bindings/CompilerScriptMapping.ts +536 -0
  6. package/lib/front_end/models/bindings/ContentProviderBasedProject.ts +187 -0
  7. package/lib/front_end/models/bindings/DebuggerLanguagePlugins.ts +1197 -0
  8. package/lib/front_end/models/bindings/DebuggerWorkspaceBinding.ts +733 -0
  9. package/lib/front_end/models/bindings/DefaultScriptMapping.ts +141 -0
  10. package/lib/front_end/models/bindings/FileUtils.ts +228 -0
  11. package/lib/front_end/models/bindings/LiveLocation.ts +81 -0
  12. package/lib/front_end/models/bindings/NetworkProject.ts +157 -0
  13. package/lib/front_end/models/bindings/PresentationConsoleMessageHelper.ts +312 -0
  14. package/lib/front_end/models/bindings/ResourceMapping.ts +539 -0
  15. package/lib/front_end/models/bindings/ResourceScriptMapping.ts +491 -0
  16. package/lib/front_end/models/bindings/ResourceUtils.ts +103 -0
  17. package/lib/front_end/models/bindings/SASSSourceMapping.ts +222 -0
  18. package/lib/front_end/models/bindings/StylesSourceMapping.ts +316 -0
  19. package/lib/front_end/models/bindings/TempFile.ts +67 -0
  20. package/lib/front_end/models/bindings/bindings.ts +39 -0
  21. package/lib/front_end/models/source_map_scopes/NamesResolver.ts +765 -0
  22. package/lib/front_end/models/source_map_scopes/ScopeChainModel.ts +84 -0
  23. package/lib/front_end/models/source_map_scopes/source_map_scopes.ts +11 -0
  24. package/lib/front_end/models/stack_trace/StackTrace.ts +53 -0
  25. package/lib/front_end/models/stack_trace/StackTraceImpl.ts +85 -0
  26. package/lib/front_end/models/stack_trace/StackTraceModel.ts +128 -0
  27. package/lib/front_end/models/stack_trace/Trie.ts +163 -0
  28. package/lib/front_end/models/stack_trace/stack_trace.ts +9 -0
  29. package/lib/front_end/models/stack_trace/stack_trace_impl.ts +13 -0
  30. package/lib/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +240 -0
  31. package/lib/front_end/models/trace_source_maps_resolver/trace_source_maps_resolver.ts +5 -0
  32. package/lib/front_end/models/workspace/FileManager.ts +97 -0
  33. package/lib/front_end/models/workspace/IgnoreListManager.ts +628 -0
  34. package/lib/front_end/models/workspace/SearchConfig.ts +149 -0
  35. package/lib/front_end/models/workspace/UISourceCode.ts +698 -0
  36. package/lib/front_end/models/workspace/WorkspaceImpl.ts +339 -0
  37. package/lib/front_end/models/workspace/workspace.ts +17 -0
  38. package/lib/front_end/panels/timeline/TimelineUIUtils.ts +1029 -0
  39. package/lib/front_end/panels/timeline/extensions/ExtensionUI.ts +49 -0
  40. package/lib/front_end/panels/timeline/extensions/extensions.ts +9 -0
  41. package/lib/front_end/third_party/codemirror.next/LICENSE +21 -0
  42. package/lib/front_end/third_party/codemirror.next/README.chromium +30 -0
  43. package/lib/front_end/third_party/codemirror.next/bundle-tsconfig.json +24 -0
  44. package/lib/front_end/third_party/codemirror.next/bundle.ts +135 -0
  45. package/lib/front_end/third_party/codemirror.next/chunk/angular.js +2 -0
  46. package/lib/front_end/third_party/codemirror.next/chunk/angular.js.map +1 -0
  47. package/lib/front_end/third_party/codemirror.next/chunk/codemirror.js +2 -0
  48. package/lib/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -0
  49. package/lib/front_end/third_party/codemirror.next/chunk/cpp.js +2 -0
  50. package/lib/front_end/third_party/codemirror.next/chunk/cpp.js.map +1 -0
  51. package/lib/front_end/third_party/codemirror.next/chunk/css.js +2 -0
  52. package/lib/front_end/third_party/codemirror.next/chunk/html.js +4 -0
  53. package/lib/front_end/third_party/codemirror.next/chunk/java.js +2 -0
  54. package/lib/front_end/third_party/codemirror.next/chunk/java.js.map +1 -0
  55. package/lib/front_end/third_party/codemirror.next/chunk/javascript.js +2 -0
  56. package/lib/front_end/third_party/codemirror.next/chunk/legacy.js +2 -0
  57. package/lib/front_end/third_party/codemirror.next/chunk/legacy.js.map +1 -0
  58. package/lib/front_end/third_party/codemirror.next/chunk/less.js +2 -0
  59. package/lib/front_end/third_party/codemirror.next/chunk/less.js.map +1 -0
  60. package/lib/front_end/third_party/codemirror.next/chunk/markdown.js +2 -0
  61. package/lib/front_end/third_party/codemirror.next/chunk/markdown.js.map +1 -0
  62. package/lib/front_end/third_party/codemirror.next/chunk/php.js +2 -0
  63. package/lib/front_end/third_party/codemirror.next/chunk/php.js.map +1 -0
  64. package/lib/front_end/third_party/codemirror.next/chunk/python.js +2 -0
  65. package/lib/front_end/third_party/codemirror.next/chunk/python.js.map +1 -0
  66. package/lib/front_end/third_party/codemirror.next/chunk/sass.js +2 -0
  67. package/lib/front_end/third_party/codemirror.next/chunk/sass.js.map +1 -0
  68. package/lib/front_end/third_party/codemirror.next/chunk/svelte.js +2 -0
  69. package/lib/front_end/third_party/codemirror.next/chunk/svelte.js.map +1 -0
  70. package/lib/front_end/third_party/codemirror.next/chunk/vue.js +2 -0
  71. package/lib/front_end/third_party/codemirror.next/chunk/vue.js.map +1 -0
  72. package/lib/front_end/third_party/codemirror.next/chunk/wast.js +2 -0
  73. package/lib/front_end/third_party/codemirror.next/chunk/wast.js.map +1 -0
  74. package/lib/front_end/third_party/codemirror.next/chunk/xml.js +2 -0
  75. package/lib/front_end/third_party/codemirror.next/chunk/xml.js.map +1 -0
  76. package/lib/front_end/third_party/codemirror.next/codemirror.next.d.ts +8057 -0
  77. package/lib/front_end/third_party/codemirror.next/codemirror.next.js +2 -0
  78. package/lib/front_end/third_party/codemirror.next/codemirror.next.js.map +1 -0
  79. package/lib/front_end/third_party/codemirror.next/package.json +43 -0
  80. package/lib/front_end/third_party/codemirror.next/rebuild.sh +6 -0
  81. package/lib/front_end/third_party/codemirror.next/rollup.config.mjs +49 -0
  82. package/lib/front_end/third_party/source-map-scopes-codec/LICENSE +26 -0
  83. package/lib/front_end/third_party/source-map-scopes-codec/README.chromium +31 -0
  84. package/lib/front_end/third_party/source-map-scopes-codec/package/CONTRIBUTING.md +33 -0
  85. package/lib/front_end/third_party/source-map-scopes-codec/package/LICENSE +26 -0
  86. package/lib/front_end/third_party/source-map-scopes-codec/package/README.md +64 -0
  87. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts +62 -0
  88. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/builder.d.ts.map +1 -0
  89. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts +37 -0
  90. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/builder/safe_builder.d.ts.map +1 -0
  91. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts +29 -0
  92. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/decode/decode.d.ts.map +1 -0
  93. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/encode/encode.d.ts +8 -0
  94. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/encode/encode.d.ts.map +1 -0
  95. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/mod.d.ts +6 -0
  96. package/lib/front_end/third_party/source-map-scopes-codec/package/_dist/src/mod.d.ts.map +1 -0
  97. package/lib/front_end/third_party/source-map-scopes-codec/package/deno.json +21 -0
  98. package/lib/front_end/third_party/source-map-scopes-codec/package/package.json +14 -0
  99. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +196 -0
  100. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js.map +1 -0
  101. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.ts +262 -0
  102. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +235 -0
  103. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js.map +1 -0
  104. package/lib/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.ts +359 -0
  105. package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.js +39 -0
  106. package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.js.map +1 -0
  107. package/lib/front_end/third_party/source-map-scopes-codec/package/src/codec.ts +53 -0
  108. package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +438 -0
  109. package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js.map +1 -0
  110. package/lib/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.ts +539 -0
  111. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +23 -0
  112. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js.map +1 -0
  113. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.ts +35 -0
  114. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +257 -0
  115. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js.map +1 -0
  116. package/lib/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.ts +348 -0
  117. package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.js +8 -0
  118. package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.js.map +1 -0
  119. package/lib/front_end/third_party/source-map-scopes-codec/package/src/mod.ts +20 -0
  120. package/lib/front_end/third_party/source-map-scopes-codec/package/src/scopes-tsconfig.json +8 -0
  121. package/lib/front_end/third_party/source-map-scopes-codec/package/src/scopes.d.ts +184 -0
  122. package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.js +9 -0
  123. package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.js.map +1 -0
  124. package/lib/front_end/third_party/source-map-scopes-codec/package/src/util.ts +12 -0
  125. package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +82 -0
  126. package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.js.map +1 -0
  127. package/lib/front_end/third_party/source-map-scopes-codec/package/src/vlq.ts +99 -0
  128. package/lib/front_end/third_party/source-map-scopes-codec/source-map-scopes-codec.ts +5 -0
  129. package/lib/front_end/ui/legacy/theme_support/ThemeSupport.ts +222 -0
  130. package/lib/front_end/ui/legacy/theme_support/theme_support.ts +5 -0
  131. package/package.json +4 -3
  132. package/patches/chrome-devtools-frontend+1.0.1533544.patch +1549 -20
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe_builder.js","sources":["./safe_builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,359 @@
1
+ // Copyright 2025 The Chromium Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ import type {
6
+ Binding,
7
+ OriginalPosition,
8
+ OriginalScope,
9
+ Position,
10
+ ScopeInfo,
11
+ } from "../scopes.d.ts";
12
+ import { comparePositions } from "../util.js";
13
+ import { ScopeInfoBuilder, type ScopeKey } from "./builder.js";
14
+
15
+ /**
16
+ * Similar to `ScopeInfoBuilder`, but with checks that scopes/ranges are well
17
+ * nested and don't partially overlap.
18
+ */
19
+ export class SafeScopeInfoBuilder extends ScopeInfoBuilder {
20
+ override addNullScope(): this {
21
+ this.#verifyEmptyScopeStack("add null scope");
22
+ this.#verifyEmptyRangeStack("add null scope");
23
+
24
+ super.addNullScope();
25
+ return this;
26
+ }
27
+
28
+ override startScope(
29
+ line: number,
30
+ column: number,
31
+ options?: {
32
+ name?: string;
33
+ kind?: string;
34
+ isStackFrame?: boolean;
35
+ variables?: string[];
36
+ key?: ScopeKey;
37
+ },
38
+ ): this {
39
+ this.#verifyEmptyRangeStack("start scope");
40
+
41
+ const parent = this.scopeStack.at(-1);
42
+
43
+ if (parent && comparePositions(parent.start, { line, column }) > 0) {
44
+ throw new Error(
45
+ `Scope start (${line}, ${column}) must not precede parent start (${parent.start.line}, ${parent.start.column})`,
46
+ );
47
+ }
48
+
49
+ const precedingSibling = parent?.children.at(-1);
50
+ if (
51
+ precedingSibling &&
52
+ comparePositions(precedingSibling.end, { line, column }) > 0
53
+ ) {
54
+ throw new Error(
55
+ `Scope start (${line}, ${column}) must not precede preceding siblings' end (${precedingSibling
56
+ .end.line,
57
+ precedingSibling.end.column})`,
58
+ );
59
+ }
60
+
61
+ super.startScope(line, column, options);
62
+ return this;
63
+ }
64
+
65
+ override setScopeName(name: string): this {
66
+ this.#verifyScopePresent("setScopeName");
67
+ this.#verifyEmptyRangeStack("setScopeName");
68
+
69
+ super.setScopeName(name);
70
+ return this;
71
+ }
72
+
73
+ override setScopeKind(kind: string): this {
74
+ this.#verifyScopePresent("setScopeKind");
75
+ this.#verifyEmptyRangeStack("setScopeKind");
76
+
77
+ super.setScopeKind(kind);
78
+ return this;
79
+ }
80
+
81
+ override setScopeStackFrame(isStackFrame: boolean): this {
82
+ this.#verifyScopePresent("setScopeStackFrame");
83
+ this.#verifyEmptyRangeStack("setScopeStackFrame");
84
+
85
+ super.setScopeStackFrame(isStackFrame);
86
+ return this;
87
+ }
88
+
89
+ override setScopeVariables(variables: string[]): this {
90
+ this.#verifyScopePresent("setScopeVariables");
91
+ this.#verifyEmptyRangeStack("setScopeVariables");
92
+
93
+ super.setScopeVariables(variables);
94
+ return this;
95
+ }
96
+
97
+ override endScope(line: number, column: number): this {
98
+ this.#verifyEmptyRangeStack("end scope");
99
+
100
+ if (this.scopeStack.length === 0) {
101
+ throw new Error("No scope to end");
102
+ }
103
+
104
+ const scope = this.scopeStack.at(-1) as OriginalScope;
105
+ if (comparePositions(scope.start, { line, column }) > 0) {
106
+ throw new Error(
107
+ `Scope end (${line}, ${column}) must not precede scope start (${scope.start.line}, ${scope.start.column})`,
108
+ );
109
+ }
110
+
111
+ super.endScope(line, column);
112
+ return this;
113
+ }
114
+
115
+ override startRange(
116
+ line: number,
117
+ column: number,
118
+ options?: {
119
+ scope?: OriginalScope;
120
+ scopeKey?: ScopeKey;
121
+ isStackFrame?: boolean;
122
+ isHidden?: boolean;
123
+ values?: Binding[];
124
+ callSite?: OriginalPosition;
125
+ },
126
+ ): this {
127
+ this.#verifyEmptyScopeStack("starRange");
128
+
129
+ const parent = this.rangeStack.at(-1);
130
+ if (parent && comparePositions(parent.start, { line, column }) > 0) {
131
+ throw new Error(
132
+ `Range start (${line}, ${column}) must not precede parent start (${parent.start.line}, ${parent.start.column})`,
133
+ );
134
+ }
135
+
136
+ const precedingSibling = parent?.children.at(-1);
137
+ if (
138
+ precedingSibling &&
139
+ comparePositions(precedingSibling.end, { line, column }) > 0
140
+ ) {
141
+ throw new Error(
142
+ `Range start (${line}, ${column}) must not precede preceding siblings' end (${precedingSibling
143
+ .end.line,
144
+ precedingSibling.end.column})`,
145
+ );
146
+ }
147
+
148
+ if (
149
+ options?.scopeKey !== undefined &&
150
+ !this.isValidScopeKey(options.scopeKey)
151
+ ) {
152
+ throw new Error(
153
+ `${options.scopeKey} does not reference a valid OriginalScope`,
154
+ );
155
+ }
156
+ if (options?.scope && !this.isKnownScope(options.scope)) {
157
+ throw new Error(
158
+ "The provided definition scope was not produced by this builder!",
159
+ );
160
+ }
161
+
162
+ if (
163
+ options?.values?.length && options?.scope === undefined &&
164
+ options?.scopeKey === undefined
165
+ ) {
166
+ throw new Error("Provided bindings without providing an OriginalScope");
167
+ } else if (
168
+ options?.values?.length && options?.scope &&
169
+ options.values.length !== options.scope.variables.length
170
+ ) {
171
+ throw new Error(
172
+ "Provided bindings don't match up with OriginalScope.variables",
173
+ );
174
+ } else if (options?.values?.length && options?.scopeKey !== undefined) {
175
+ const scope = this.getScopeByValidKey(options.scopeKey);
176
+ if (options.values.length !== scope.variables.length) {
177
+ throw new Error(
178
+ "Provided bindings don't match up with OriginalScope.variables",
179
+ );
180
+ }
181
+ }
182
+
183
+ super.startRange(line, column, options);
184
+ return this;
185
+ }
186
+
187
+ override setRangeDefinitionScope(scope: OriginalScope): this {
188
+ this.#verifyEmptyScopeStack("setRangeDefinitionScope");
189
+ this.#verifyRangePresent("setRangeDefinitionScope");
190
+
191
+ if (!this.isKnownScope(scope)) {
192
+ throw new Error(
193
+ "The provided definition scope was not produced by this builder!",
194
+ );
195
+ }
196
+
197
+ super.setRangeDefinitionScope(scope);
198
+ return this;
199
+ }
200
+
201
+ override setRangeDefinitionScopeKey(scopeKey: ScopeKey): this {
202
+ this.#verifyEmptyScopeStack("setRangeDefinitionScope");
203
+ this.#verifyRangePresent("setRangeDefinitionScope");
204
+
205
+ if (!this.isValidScopeKey(scopeKey)) {
206
+ throw new Error(
207
+ `The provided scope key ${scopeKey} is not know nto the builder!`,
208
+ );
209
+ }
210
+
211
+ super.setRangeDefinitionScopeKey(scopeKey);
212
+ return this;
213
+ }
214
+
215
+ override setRangeStackFrame(isStackFrame: boolean): this {
216
+ this.#verifyEmptyScopeStack("setRangeStackFrame");
217
+ this.#verifyRangePresent("setRangeStackFrame");
218
+
219
+ super.setRangeStackFrame(isStackFrame);
220
+ return this;
221
+ }
222
+
223
+ override setRangeHidden(isHidden: boolean): this {
224
+ this.#verifyEmptyScopeStack("setRangeHidden");
225
+ this.#verifyRangePresent("setRangeHidden");
226
+
227
+ super.setRangeHidden(isHidden);
228
+ return this;
229
+ }
230
+
231
+ override setRangeValues(values: Binding[]): this {
232
+ this.#verifyEmptyScopeStack("setRangeValues");
233
+ this.#verifyRangePresent("setRangeValues");
234
+
235
+ const range = this.rangeStack.at(-1)!;
236
+ if (!range.originalScope) {
237
+ throw new Error(
238
+ "Setting an OriginalScope for a range is required before value bindings can be provided!",
239
+ );
240
+ } else if (range.originalScope.variables.length !== values.length) {
241
+ throw new Error(
242
+ "Provided bindings don't match up with OriginalScope.variables",
243
+ );
244
+ }
245
+
246
+ super.setRangeValues(values);
247
+ return this;
248
+ }
249
+
250
+ override setRangeCallSite(callSite: OriginalPosition): this {
251
+ this.#verifyEmptyScopeStack("setRangeCallSite");
252
+ this.#verifyRangePresent("setRangeCallSite");
253
+
254
+ super.setRangeCallSite(callSite);
255
+ return this;
256
+ }
257
+
258
+ override endRange(line: number, column: number): this {
259
+ this.#verifyEmptyScopeStack("endRange");
260
+
261
+ if (this.rangeStack.length === 0) {
262
+ throw new Error("No range to end");
263
+ }
264
+
265
+ const range = this.rangeStack.at(-1)!;
266
+ if (comparePositions(range.start, { line, column }) > 0) {
267
+ throw new Error(
268
+ `Range end (${line}, ${column}) must not precede range start (${range.start.line}, ${range.start.column})`,
269
+ );
270
+ }
271
+
272
+ this.#verifyRangeValues(range, { line, column });
273
+ super.endRange(line, column);
274
+ return this;
275
+ }
276
+
277
+ override build(): ScopeInfo {
278
+ if (this.scopeStack.length > 0) {
279
+ throw new Error(
280
+ "Can't build ScopeInfo while an OriginalScope is unclosed.",
281
+ );
282
+ }
283
+ this.#verifyEmptyRangeStack("build ScopeInfo");
284
+
285
+ return super.build();
286
+ }
287
+
288
+ #verifyEmptyScopeStack(op: string): void {
289
+ if (this.scopeStack.length > 0) {
290
+ throw new Error(`Can't ${op} while a OriginalScope is unclosed.`);
291
+ }
292
+ }
293
+
294
+ #verifyEmptyRangeStack(op: string): void {
295
+ if (this.rangeStack.length > 0) {
296
+ throw new Error(`Can't ${op} while a GeneratedRange is unclosed.`);
297
+ }
298
+ }
299
+
300
+ #verifyScopePresent(op: string): void {
301
+ if (this.scopeStack.length === 0) {
302
+ throw new Error(`Can't ${op} while no OriginalScope is on the stack.`);
303
+ }
304
+ }
305
+
306
+ #verifyRangePresent(op: string): void {
307
+ if (this.rangeStack.length === 0) {
308
+ throw new Error(`Can't ${op} while no GeneratedRange is on the stack.`);
309
+ }
310
+ }
311
+
312
+ #verifyRangeValues(
313
+ range: { start: Position; values: Binding[] },
314
+ end: Position,
315
+ ): void {
316
+ for (const value of range.values) {
317
+ if (!Array.isArray(value)) {
318
+ continue;
319
+ }
320
+
321
+ const subRanges = value;
322
+ if (subRanges.length === 0) {
323
+ continue;
324
+ }
325
+
326
+ const first = subRanges.at(0)!;
327
+ if (comparePositions(first.from, range.start) !== 0) {
328
+ throw new Error(
329
+ `Sub-range bindings must start at the generated range's start. Expected ${range.start.line}:${range.start.column}, but got ${first.from.line}:${first.from.column}`,
330
+ );
331
+ }
332
+
333
+ const last = subRanges.at(-1)!;
334
+ if (comparePositions(last.to, end) !== 0) {
335
+ throw new Error(
336
+ `Sub-range bindings must end at the generated range's end. Expected ${end.line}:${end.column}, but got ${last.to.line}:${last.to.column}`,
337
+ );
338
+ }
339
+
340
+ for (let i = 0; i < subRanges.length; ++i) {
341
+ const current = subRanges[i];
342
+ if (comparePositions(current.from, current.to) >= 0) {
343
+ throw new Error(
344
+ `Sub-range binding 'from' (${current.from.line}:${current.from.column}) must precede 'to' (${current.to.line}:${current.to.column})`,
345
+ );
346
+ }
347
+
348
+ if (i > 0) {
349
+ const prev = subRanges[i - 1];
350
+ if (comparePositions(prev.to, current.from) !== 0) {
351
+ throw new Error(
352
+ `Sub-range bindings must be sorted and not overlap. Found gap between ${prev.to.line}:${prev.to.column} and ${current.from.line}:${current.from.column}`,
353
+ );
354
+ }
355
+ }
356
+ }
357
+ }
358
+ }
359
+ }
@@ -0,0 +1,39 @@
1
+ // Copyright 2025 The Chromium Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+ export var Tag = /*#__PURE__*/ function(Tag) {
5
+ Tag[Tag["ORIGINAL_SCOPE_START"] = 1] = "ORIGINAL_SCOPE_START";
6
+ Tag[Tag["ORIGINAL_SCOPE_END"] = 2] = "ORIGINAL_SCOPE_END";
7
+ Tag[Tag["ORIGINAL_SCOPE_VARIABLES"] = 3] = "ORIGINAL_SCOPE_VARIABLES";
8
+ Tag[Tag["GENERATED_RANGE_START"] = 4] = "GENERATED_RANGE_START";
9
+ Tag[Tag["GENERATED_RANGE_END"] = 5] = "GENERATED_RANGE_END";
10
+ Tag[Tag["GENERATED_RANGE_BINDINGS"] = 6] = "GENERATED_RANGE_BINDINGS";
11
+ Tag[Tag["GENERATED_RANGE_SUBRANGE_BINDING"] = 7] = "GENERATED_RANGE_SUBRANGE_BINDING";
12
+ Tag[Tag["GENERATED_RANGE_CALL_SITE"] = 8] = "GENERATED_RANGE_CALL_SITE";
13
+ return Tag;
14
+ }({});
15
+ export var EncodedTag = /*#__PURE__*/ function(EncodedTag) {
16
+ EncodedTag["ORIGINAL_SCOPE_START"] = "B";
17
+ EncodedTag["ORIGINAL_SCOPE_END"] = "C";
18
+ EncodedTag["ORIGINAL_SCOPE_VARIABLES"] = "D";
19
+ EncodedTag["GENERATED_RANGE_START"] = "E";
20
+ EncodedTag["GENERATED_RANGE_END"] = "F";
21
+ EncodedTag["GENERATED_RANGE_BINDINGS"] = "G";
22
+ EncodedTag["GENERATED_RANGE_SUBRANGE_BINDING"] = "H";
23
+ EncodedTag["GENERATED_RANGE_CALL_SITE"] = "I";
24
+ return EncodedTag;
25
+ }({});
26
+ export var OriginalScopeFlags = /*#__PURE__*/ function(OriginalScopeFlags) {
27
+ OriginalScopeFlags[OriginalScopeFlags["HAS_NAME"] = 1] = "HAS_NAME";
28
+ OriginalScopeFlags[OriginalScopeFlags["HAS_KIND"] = 2] = "HAS_KIND";
29
+ OriginalScopeFlags[OriginalScopeFlags["IS_STACK_FRAME"] = 4] = "IS_STACK_FRAME";
30
+ return OriginalScopeFlags;
31
+ }({});
32
+ export var GeneratedRangeFlags = /*#__PURE__*/ function(GeneratedRangeFlags) {
33
+ GeneratedRangeFlags[GeneratedRangeFlags["HAS_LINE"] = 1] = "HAS_LINE";
34
+ GeneratedRangeFlags[GeneratedRangeFlags["HAS_DEFINITION"] = 2] = "HAS_DEFINITION";
35
+ GeneratedRangeFlags[GeneratedRangeFlags["IS_STACK_FRAME"] = 4] = "IS_STACK_FRAME";
36
+ GeneratedRangeFlags[GeneratedRangeFlags["IS_HIDDEN"] = 8] = "IS_HIDDEN";
37
+ return GeneratedRangeFlags;
38
+ }({});
39
+ //# sourceMappingURL=codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.js","sources":["./codec.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,yEAAyE;AACzE,6BAA6B;AAE7B,OAAO,IAAA,AAAW,6BAAA;;;;;;;;;SAAA;MASjB;AAED,OAAO,IAAA,AAAW,oCAAA;;;;;;;;;SAAA;MASjB;AAED,OAAO,IAAA,AAAW,4CAAA;;;;SAAA;MAIjB;AAED,OAAO,IAAA,AAAW,6CAAA;;;;;SAAA;MAKjB"}
@@ -0,0 +1,53 @@
1
+ // Copyright 2025 The Chromium Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ export const enum Tag {
6
+ ORIGINAL_SCOPE_START = 0x1,
7
+ ORIGINAL_SCOPE_END = 0x2,
8
+ ORIGINAL_SCOPE_VARIABLES = 0x3,
9
+ GENERATED_RANGE_START = 0x4,
10
+ GENERATED_RANGE_END = 0x5,
11
+ GENERATED_RANGE_BINDINGS = 0x6,
12
+ GENERATED_RANGE_SUBRANGE_BINDING = 0x7,
13
+ GENERATED_RANGE_CALL_SITE = 0x8,
14
+ }
15
+
16
+ export const enum EncodedTag {
17
+ ORIGINAL_SCOPE_START = "B", // 0x1
18
+ ORIGINAL_SCOPE_END = "C", // 0x2
19
+ ORIGINAL_SCOPE_VARIABLES = "D", // 0x3
20
+ GENERATED_RANGE_START = "E", // 0x4
21
+ GENERATED_RANGE_END = "F", // 0x5
22
+ GENERATED_RANGE_BINDINGS = "G", // 0x6
23
+ GENERATED_RANGE_SUBRANGE_BINDING = "H", // 0x7
24
+ GENERATED_RANGE_CALL_SITE = "I", // 0x8
25
+ }
26
+
27
+ export const enum OriginalScopeFlags {
28
+ HAS_NAME = 0x1,
29
+ HAS_KIND = 0x2,
30
+ IS_STACK_FRAME = 0x4,
31
+ }
32
+
33
+ export const enum GeneratedRangeFlags {
34
+ HAS_LINE = 0x1,
35
+ HAS_DEFINITION = 0x2,
36
+ IS_STACK_FRAME = 0x4,
37
+ IS_HIDDEN = 0x8,
38
+ }
39
+
40
+ export interface OriginalScopeStartItem {
41
+ flags: number;
42
+ line: number;
43
+ column: number;
44
+ nameIdx?: number;
45
+ kindIdx?: number;
46
+ }
47
+
48
+ export interface GeneratedRangeStartItem {
49
+ flags: number;
50
+ line?: number;
51
+ column: number;
52
+ definitionIdx?: number;
53
+ }