@kitajs/ts-html-plugin 4.1.4 → 5.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/util.ts ADDED
@@ -0,0 +1,438 @@
1
+ import {
2
+ type JsxFragment,
3
+ type JsxSelfClosingElement,
4
+ type default as ts
5
+ } from 'typescript';
6
+ import type {
7
+ BinaryOperatorToken,
8
+ Diagnostic,
9
+ JsxElement,
10
+ JsxOpeningElement,
11
+ Node,
12
+ default as TS,
13
+ Type,
14
+ TypeChecker
15
+ } from 'typescript/lib/tsserverlibrary';
16
+ import * as Errors from './errors';
17
+
18
+ const UPPERCASE = /[A-Z]/;
19
+ const ESCAPE_HTML_REGEX = /^(\w+\.)?(escapeHtml|e\s*`|escape)/i;
20
+
21
+ /** If the node is a JSX element or fragment */
22
+ function isJsx(
23
+ ts: typeof TS,
24
+ node: TS.Node
25
+ ): node is JsxElement | JsxFragment | JsxSelfClosingElement {
26
+ return (
27
+ ts.isJsxElement(node) || ts.isJsxFragment(node) || ts.isJsxSelfClosingElement(node)
28
+ );
29
+ }
30
+
31
+ export function recursiveDiagnoseJsxElements(
32
+ ts: typeof TS,
33
+ node: Node,
34
+ typeChecker: TypeChecker,
35
+ original: Diagnostic[]
36
+ ) {
37
+ ts.forEachChild(node, function loopSourceNodes(node) {
38
+ // Recurse through children first
39
+ ts.forEachChild(node, loopSourceNodes);
40
+
41
+ // Adds children to the array
42
+ if (isJsx(ts, node)) {
43
+ // Diagnose the node
44
+ diagnoseJsxElement(ts, node, typeChecker, original);
45
+ }
46
+ });
47
+
48
+ // Filter out duplicates
49
+ for (let i = 0; i < original.length; i++) {
50
+ for (let j = i + 1; j < original.length; j++) {
51
+ if (
52
+ original[i]!.start === original[j]!.start &&
53
+ original[i]!.length === original[j]!.length
54
+ ) {
55
+ original.splice(j--, 1);
56
+ }
57
+ }
58
+ }
59
+ }
60
+
61
+ function diagnostic(
62
+ ts: typeof TS,
63
+ node: ts.Node,
64
+ error: keyof typeof Errors,
65
+ category: keyof typeof TS.DiagnosticCategory
66
+ ): ts.Diagnostic {
67
+ return {
68
+ category: ts.DiagnosticCategory[category],
69
+ messageText: Errors[error].message,
70
+ code: Errors[error].code,
71
+ file: node.getSourceFile(),
72
+ length: node.getWidth(),
73
+ start: node.getStart()
74
+ };
75
+ }
76
+
77
+ export function diagnoseJsxElement(
78
+ ts: typeof TS,
79
+ node: JsxElement | JsxFragment | JsxSelfClosingElement,
80
+ typeChecker: TypeChecker,
81
+ diagnostics: Diagnostic[]
82
+ ): void {
83
+ // Validations that does not applies to fragments or serlf closing elements
84
+ if (ts.isJsxElement(node)) {
85
+ // Script tags should be ignored
86
+ if (node.openingElement.tagName.getText() === 'script') {
87
+ return;
88
+ }
89
+
90
+ const safeAttribute = getSafeAttribute(node.openingElement);
91
+
92
+ // Safe mode warnings
93
+ if (safeAttribute && node.children) {
94
+ if (
95
+ // Empty element
96
+ node.children.length === 0 ||
97
+ // Only text elements
98
+ (node.children.length === 1 && node.children[0]!.kind === ts.SyntaxKind.JsxText)
99
+ ) {
100
+ diagnostics.push(diagnostic(ts, safeAttribute, 'UnusedSafe', 'Warning'));
101
+ return;
102
+ }
103
+
104
+ for (const exp of node.children) {
105
+ if (
106
+ // JSX Element inside safe (includes self-closing elements like <Component />)
107
+ isJsx(ts, exp) ||
108
+ // Element is using safe with escapeHtml
109
+ (ts.isJsxExpression(exp) && exp.expression?.getText().match(ESCAPE_HTML_REGEX))
110
+ ) {
111
+ diagnostics.push(diagnostic(ts, safeAttribute, 'DoubleEscape', 'Error'));
112
+ continue;
113
+ }
114
+
115
+ // Warn on unnecessary safe attributes
116
+ if (
117
+ ts.isJsxExpression(exp) &&
118
+ // has inner expression
119
+ exp.expression
120
+ ) {
121
+ // gets this expression or array of sub expressions
122
+ const expressions = getNodeExpressions(ts, exp.expression) || [exp.expression];
123
+
124
+ // at least one jsx inside another jsx with safe (includes self-closing elements)
125
+ if (expressions.some((inner) => isJsx(ts, inner))) {
126
+ diagnostics.push(diagnostic(ts, safeAttribute, 'DoubleEscape', 'Error'));
127
+ continue;
128
+ }
129
+
130
+ // all of them must be safe
131
+ if (
132
+ expressions.every((inner) =>
133
+ isSafeAttribute(
134
+ ts,
135
+ typeChecker.getTypeAtLocation(inner),
136
+ typeChecker,
137
+ inner
138
+ )
139
+ )
140
+ ) {
141
+ diagnostics.push(diagnostic(ts, safeAttribute, 'UnusedSafe', 'Warning'));
142
+ }
143
+ }
144
+ }
145
+
146
+ return;
147
+ }
148
+ }
149
+
150
+ // If this expression does not have children, we can ignore it
151
+ // for example it could be a self closing element
152
+ if (ts.isJsxSelfClosingElement(node) || !node.children) {
153
+ return;
154
+ }
155
+
156
+ // Look for expressions
157
+ for (const exp of node.children) {
158
+ if (!ts.isJsxExpression(exp)) {
159
+ continue;
160
+ }
161
+
162
+ // Should always have an expression
163
+ if (!exp.expression) {
164
+ continue;
165
+ }
166
+
167
+ diagnoseExpression(
168
+ ts,
169
+ exp.expression,
170
+ typeChecker,
171
+ diagnostics,
172
+ ts.isJsxElement(node) && !!node.openingElement.tagName.getText().match(UPPERCASE)
173
+ );
174
+ }
175
+
176
+ return;
177
+ }
178
+
179
+ function diagnoseExpression(
180
+ ts: typeof TS,
181
+ node: ts.Expression,
182
+ typeChecker: TypeChecker,
183
+ diagnostics: Diagnostic[],
184
+ isComponent: boolean
185
+ ): void {
186
+ // Unwrap parenthesis
187
+ if (ts.isParenthesizedExpression(node)) {
188
+ node = node.expression;
189
+ }
190
+
191
+ // Ignores JSX elements as they are already diagnosed by the loopChildNodes
192
+ if (isJsx(ts, node)) {
193
+ return;
194
+ }
195
+
196
+ const expressions = getNodeExpressions(ts, node);
197
+
198
+ // ternary or binary expressions should be evaluated on each side
199
+ if (expressions) {
200
+ for (const inner of expressions) {
201
+ diagnoseExpression(ts, inner, typeChecker, diagnostics, isComponent);
202
+ }
203
+
204
+ return;
205
+ }
206
+
207
+ const type = typeChecker.getTypeAtLocation(node);
208
+
209
+ // Safe can be ignored
210
+ if (isSafeAttribute(ts, type, typeChecker, node)) {
211
+ return;
212
+ }
213
+
214
+ // Anything other than a identifier should be diagnosed
215
+ if (!ts.isIdentifier(node)) {
216
+ let hadJsx = false;
217
+
218
+ for (const tag of node.getChildren()) {
219
+ if (!isJsx(ts, tag)) {
220
+ continue;
221
+ }
222
+
223
+ hadJsx = true;
224
+
225
+ diagnoseJsxElement(ts, tag, typeChecker, diagnostics);
226
+ }
227
+
228
+ // If root JSX element found inside array, diagnose it,
229
+ // otherwise let the diagnostic pass
230
+ if (hadJsx) {
231
+ return;
232
+ }
233
+ }
234
+
235
+ // Switch between component and element xss errors
236
+ if (isComponent || ts.isJsxFragment(node)) {
237
+ diagnostics.push(diagnostic(ts, node, 'ComponentXss', 'Error'));
238
+ } else {
239
+ diagnostics.push(diagnostic(ts, node, 'Xss', 'Error'));
240
+ }
241
+ }
242
+
243
+ export function isSafeAttribute(
244
+ ts: typeof TS,
245
+ type: Type | undefined,
246
+ checker: TypeChecker,
247
+ node: ts.Node
248
+ ): boolean {
249
+ // Nothing to do if type cannot be resolved
250
+ if (!type) {
251
+ return true;
252
+ }
253
+
254
+ // Check if this is a property access to .children (from PropsWithChildren)
255
+ // This must be checked BEFORE union recursion to avoid false positives
256
+ if (ts.isPropertyAccessExpression(node) && node.name.text === 'children') {
257
+ return true;
258
+ }
259
+
260
+ // Consolidated identifier checks - MUST be before union recursion
261
+ if (ts.isIdentifier(node)) {
262
+ // Destructured or direct `children` parameter (e.g., function Test({ children }: PropsWithChildren))
263
+ if (node.text === 'children') {
264
+ return true;
265
+ }
266
+
267
+ // Check if variable is initialized with JSX (e.g., const element = <div />)
268
+ const symbol = checker.getSymbolAtLocation(node);
269
+ if (symbol) {
270
+ const declarations = symbol.getDeclarations();
271
+ if (declarations) {
272
+ for (const decl of declarations) {
273
+ if (
274
+ ts.isVariableDeclaration(decl) &&
275
+ decl.initializer &&
276
+ isJsx(ts, decl.initializer)
277
+ ) {
278
+ return true;
279
+ }
280
+ }
281
+ }
282
+ }
283
+ }
284
+
285
+ // Any type is never safe
286
+ if (type.flags & ts.TypeFlags.Any) {
287
+ return false;
288
+ }
289
+
290
+ // Check type aliases for JSX.Element and Html.Children
291
+ if (type.aliasSymbol) {
292
+ // Allows JSX.Element (when the alias is preserved)
293
+ if (
294
+ node &&
295
+ type.aliasSymbol.escapedName === 'Element' &&
296
+ // @ts-expect-error - Fast way of checking
297
+ type.aliasSymbol.parent?.escapedName === 'JSX' &&
298
+ // Only allows in .map(), other method calls or the expression itself
299
+ (ts.isCallExpression(node) || ts.isIdentifier(node))
300
+ ) {
301
+ return true;
302
+ }
303
+
304
+ // Allows Html.Children
305
+ if (
306
+ type.aliasSymbol.escapedName === 'Children' &&
307
+ // @ts-expect-error - When using export namespace X {} and export default X, parent.escapedName
308
+ // ends up as the original namespace name, not the quoted export name.
309
+ (type.aliasSymbol.parent?.escapedName === 'Html' ||
310
+ // @ts-expect-error - When using export as namespace X, parent.escapedName ends up
311
+ // as a complete (without resolving symlinks) quoted import path to its original file.
312
+ type.aliasSymbol.parent?.escapedName.endsWith('@kitajs/html/index"') ||
313
+ // This is needed because of the resolved path of the parent if is installed with pnpm is a symlink
314
+ // that ts resolves to the original file path, so the path is not related to the node_modules but instead
315
+ // is absolute to the file system (this is only here because of the monorepo setup, it is not needed when used as a package)
316
+ (process.env.KITA_TS_HTML_PLUGIN_TESTING === 'true' &&
317
+ // @ts-expect-error - When using export as namespace X, parent.escapedName ends up
318
+ type.aliasSymbol.parent?.escapedName.endsWith('packages/html/index"')))
319
+ ) {
320
+ return true;
321
+ }
322
+ }
323
+
324
+ // Union types should be checked recursively
325
+ if (type.isUnionOrIntersection()) {
326
+ return type.types.every((innerType) => isSafeAttribute(ts, innerType, checker, node));
327
+ }
328
+
329
+ // For Array or Promise, we check the type of the first generic
330
+ if (checker.isArrayType(type) || type.symbol?.escapedName === 'Promise') {
331
+ return isSafeAttribute(ts, (type as any).resolvedTypeArguments?.[0], checker, node);
332
+ }
333
+
334
+ const text = node.getText();
335
+
336
+ // manual unsafe variables should not pass
337
+ if (text.startsWith('unsafe')) {
338
+ return false;
339
+ }
340
+
341
+ // We allow literal string types here, as if they have XSS content,
342
+ // the user has explicitly written it
343
+ if (
344
+ // Non string types cannot have XSS values
345
+ !(type.flags & ts.TypeFlags.String) &&
346
+ // Objects may have toString() overridden
347
+ !(type.flags & ts.TypeFlags.Object)
348
+ ) {
349
+ return true;
350
+ }
351
+
352
+ if (
353
+ // Variables starting with safe are suppressed
354
+ text.startsWith('safe') ||
355
+ // Starts with a call to a escapeHtml function name
356
+ text.match(ESCAPE_HTML_REGEX)
357
+ ) {
358
+ return true;
359
+ }
360
+
361
+ return false;
362
+ }
363
+
364
+ export function getSafeAttribute(element: JsxOpeningElement) {
365
+ for (const attribute of element.attributes.properties) {
366
+ if (attribute.getText() === 'safe') {
367
+ return attribute;
368
+ }
369
+ }
370
+
371
+ return undefined;
372
+ }
373
+
374
+ export function proxyObject<T extends object>(obj: T): T {
375
+ const proxy: T = Object.create(null);
376
+
377
+ for (const k of Object.keys(obj) as Array<keyof T>) {
378
+ const x = obj[k]!;
379
+ // @ts-expect-error - JS runtime trickery which is tricky to type tersely
380
+ proxy[k] = (...args: Array<{}>) => x.apply(obj, args);
381
+ }
382
+
383
+ return proxy;
384
+ }
385
+
386
+ /**
387
+ * Returns more than one node if the node is a binary expression or a conditional
388
+ * expression
389
+ */
390
+ function getNodeExpressions(
391
+ ts: typeof TS,
392
+ node: TS.Expression
393
+ ): TS.Expression[] | undefined {
394
+ // Checks operators
395
+ if (ts.isBinaryExpression(node)) {
396
+ // Ignores operations which results in a boolean
397
+ if (isBooleanBinaryOperatorToken(ts, node.operatorToken)) {
398
+ return [];
399
+ }
400
+
401
+ // For && operator, the left side is only rendered when falsy
402
+ // (empty string, null, undefined, 0, false, NaN) - none of which are XSS risks
403
+ // So we only need to diagnose the right side
404
+ if (node.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken) {
405
+ return [node.right];
406
+ }
407
+
408
+ // For || and ?? operators, both sides can be rendered with potentially unsafe values
409
+ // So we diagnose both sides
410
+ return [node.left, node.right];
411
+ }
412
+
413
+ // Checks the inner expression
414
+ if (ts.isConditionalExpression(node)) {
415
+ // ignore node.condition because its value will never be rendered
416
+ return [node.whenTrue, node.whenFalse];
417
+ }
418
+
419
+ return undefined;
420
+ }
421
+
422
+ function isBooleanBinaryOperatorToken(ts: typeof TS, operator: BinaryOperatorToken) {
423
+ switch (operator.kind) {
424
+ case ts.SyntaxKind.EqualsEqualsEqualsToken:
425
+ case ts.SyntaxKind.EqualsEqualsToken:
426
+ case ts.SyntaxKind.ExclamationEqualsEqualsToken:
427
+ case ts.SyntaxKind.ExclamationEqualsToken:
428
+ case ts.SyntaxKind.GreaterThanToken:
429
+ case ts.SyntaxKind.GreaterThanEqualsToken:
430
+ case ts.SyntaxKind.LessThanEqualsToken:
431
+ case ts.SyntaxKind.LessThanToken:
432
+ case ts.SyntaxKind.InstanceOfKeyword:
433
+ case ts.SyntaxKind.InKeyword:
434
+ return true;
435
+ }
436
+
437
+ return false;
438
+ }
@@ -1 +0,0 @@
1
- {"fileNames":["../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.full.d.ts","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.d.ts","../../../node_modules/.pnpm/csstype@3.1.3/node_modules/csstype/index.d.ts","../../html/suspense.d.ts","../../html/error-boundary.d.ts","../../html/index.d.ts","../../html/jsx.d.ts","../../html/jsx-runtime.d.ts","../../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/ansi-styles/index.d.ts","../../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/vendor/supports-color/index.d.ts","../../../node_modules/.pnpm/chalk@5.6.2/node_modules/chalk/source/index.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/typescript.d.ts","../../../node_modules/.pnpm/@types+yargs-parser@21.0.3/node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/.pnpm/@types+yargs@17.0.33/node_modules/@types/yargs/index.d.ts","../../../node_modules/.pnpm/@types+yargs@17.0.33/node_modules/@types/yargs/helpers.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/tsserverlibrary.d.ts","../src/errors.ts","../src/util.ts","../src/cli.ts","../src/index.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/utility.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/client-stats.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/h2c-client.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@7.12.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@24.5.0/node_modules/@types/node/index.d.ts"],"fileIdsList":[[87,135,138,155,156],[87,137,138,155,156],[138,155,156],[87,138,143,155,156,173],[87,138,139,144,149,155,156,158,170,181],[87,138,139,140,149,155,156,158],[87,138,155,156],[87,138,141,155,156,182],[87,138,142,143,150,155,156,159],[87,138,143,155,156,170,178],[87,138,144,146,149,155,156,158],[87,137,138,145,155,156],[87,138,146,147,155,156],[87,138,148,149,155,156],[87,137,138,149,155,156],[87,138,149,150,151,155,156,170,181],[87,138,149,150,151,155,156,165,170,173],[87,131,138,146,149,152,155,156,158,170,181],[87,138,149,150,152,153,155,156,158,170,178,181],[87,138,152,154,155,156,170,178,181],[85,86,87,88,89,90,91,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[87,138,149,155,156],[87,138,155,156,157,181],[87,138,146,149,155,156,158,170],[87,138,155,156,159],[87,138,155,156,160],[87,137,138,155,156,161],[87,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187],[87,138,155,156,163],[87,138,155,156,164],[87,138,149,155,156,165,166],[87,138,155,156,165,167,182,184],[87,138,149,155,156,170,171,173],[87,138,155,156,172,173],[87,138,155,156,170,171],[87,138,155,156,173],[87,138,155,156,174],[87,135,138,155,156,170,175],[87,138,149,155,156,176,177],[87,138,155,156,176,177],[87,138,143,155,156,158,170,178],[87,138,155,156,179],[87,138,155,156,158,180],[87,138,152,155,156,164,181],[87,138,143,155,156,182],[87,138,155,156,170,183],[87,138,155,156,157,184],[87,138,155,156,185],[87,131,138,155,156],[87,138,155,156,186],[87,138,149,151,155,156,161,170,173,181,183,184,186],[87,138,155,156,170,187],[77,87,138,155,156],[73,74,87,138,155,156],[87,138,155,156,180],[76,87,138,155,156],[87,98,101,104,105,138,155,156,181],[87,101,138,155,156,170,181],[87,101,105,138,155,156,181],[87,138,155,156,170],[87,95,138,155,156],[87,99,138,155,156],[87,97,98,101,138,155,156,181],[87,138,155,156,158,178],[87,138,155,156,188],[87,95,138,155,156,188],[87,97,101,138,155,156,158,181],[87,92,93,94,96,100,138,149,155,156,170,181],[87,101,109,116,138,155,156],[87,93,99,138,155,156],[87,101,125,126,138,155,156],[87,93,96,101,138,155,156,173,181,188],[87,101,138,155,156],[87,97,101,138,155,156,181],[87,92,138,155,156],[87,95,96,97,99,100,101,102,103,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,126,127,128,129,130,138,155,156],[87,101,118,121,138,146,155,156],[87,101,109,110,111,138,155,156],[87,99,101,110,112,138,155,156],[87,100,138,155,156],[87,93,95,101,138,155,156],[87,101,105,110,112,138,155,156],[87,105,138,155,156],[87,99,101,104,138,155,156,181],[87,93,97,101,109,138,155,156],[87,101,118,138,155,156],[87,95,101,125,138,155,156,173,186,188],[70,87,138,155,156],[68,69,70,71,87,138,155,156],[67,70,87,138,155,156],[70,87,138,155,156,170],[66,72,75,76,78,79,82,87,138,150,155,156,160],[66,72,87,138,155,156],[66,72,80,82,87,138,155,156],[66,72,76,80,81,87,138,155,156]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"3cbad9a1ba4453443026ed38e4b8be018abb26565fa7c944376463ad9df07c41","impliedFormat":1},{"version":"a6a5253138c5432c68a1510c70fe78a644fe2e632111ba778e1978010d6edfec","impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"320c924b3ea1544f82e8f0ebc7b2cb9285f64f49295d1d024e10e6c2531a69f3","affectsGlobalScope":true},"6a0bab83a32c61f1939ef011d4d24fa0c7efdb087eaa3c25f170bcc3ccd8833c","68f22ae22bc02263e9d179d594600e8fd79b73bba1666fc4cf3de8d6c420d46d",{"version":"48eeeeca362ed1dde61ad0d397b7968cee6f1341c1d1855d5e8af0111c29079b","affectsGlobalScope":true},"2af08391e26510caf6742db02566b14286c27971ed8b39fb2b2e60cef8d7bdc2",{"version":"acfed6cc001e7f7f26d2ba42222a180ba669bb966d4dd9cb4ad5596516061b13","impliedFormat":99},{"version":"f61a4dc92450609c353738f0a2daebf8cae71b24716dbd952456d80b1e1a48b6","impliedFormat":99},{"version":"f3f76db6e76bc76d13cc4bfa10e1f74390b8ebe279535f62243e8d8acd919314","impliedFormat":99},{"version":"e134052a6b1ded61693b4037f615dc72f14e2881e79c1ddbff6c514c8a516b05","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","impliedFormat":1},{"version":"4eb2499d385eff0db377104ae091822c4ba889b318b55a764dee8ee323c837ed","impliedFormat":1},{"version":"73b15a0b7cf5c6df9076b9408c5ce682f11813453bf54c54cb284f075b5224cf","impliedFormat":1},{"version":"05d3efc988952bc7f69262e9d44276c4d770fb9ea7cef35039f26bcd93be461a","signature":"bc5efa61f4c3492f4831f738e0556dfac26c79a835130dc5fb363791941390b2"},{"version":"aee9bb7408a33b66de98f21b1de719961ea3b331a3eb490c5e7d6ce48d867d27","signature":"8fb629d312cfed0a0206dce2b60ab8213eaa40f6dfb0f413782da0d58eb99097"},{"version":"30fdc0e933717898d28352f14d269535097a4d2acbc3b1319145a08765cdd7f8","signature":"43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012"},{"version":"eb1c8342ffc22b0b28423e646bcaa7b535eb44a8e74ca1561011ca6ee0318df8","signature":"15f327a31a2696c9ceaa67e73ba0d4c55bee1728196299ecc5150b2e6d11b76d"},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0671b50bb99cc7ad46e9c68fa0e7f15ba4bc898b59c31a17ea4611fab5095da","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"aa83e100f0c74a06c9d24f40a096c9e9cc3c02704250d01541e22c0ae9264eda","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"456fa0c0ab68731564917642b977c71c3b7682240685b118652fb9253c9a6429","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"3a80bc85f38526ca3b08007ee80712e7bb0601df178b23fbf0bf87036fce40ce","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"4bc0794175abedf989547e628949888c1085b1efcd93fc482bccd77ee27f8b7c","impliedFormat":1},{"version":"3c8e93af4d6ce21eb4c8d005ad6dc02e7b5e6781f429d52a35290210f495a674","impliedFormat":1},{"version":"78c69908f7b42d6001037eb8e2d7ec501897ac9cee8d58f31923ff15b3fd4e02","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"1cd673d367293fc5cb31cd7bf03d598eb368e4f31f39cf2b908abbaf120ab85a","impliedFormat":1},{"version":"af13e99445f37022c730bfcafcdc1761e9382ce1ea02afb678e3130b01ce5676","impliedFormat":1},{"version":"e5c4fceee379a4a8f5e0266172c33de9dd240e1218b6a439a30c96200190752b","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"78b29846349d4dfdd88bd6650cc5d2baaa67f2e89dc8a80c8e26ef7995386583","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"0040f0c70a793bdc76e4eace5de03485d76f667009656c5fc8d4da4eaf0aa2da","impliedFormat":1},{"version":"18f8cfbb14ba9405e67d30968ae67b8d19133867d13ebc49c8ed37ec64ce9bdb","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"99f569b42ea7e7c5fe404b2848c0893f3e1a56e0547c1cd0f74d5dbb9a9de27e","impliedFormat":1},{"version":"830171b27c5fdf9bcbe4cf7d428fcf3ae2c67780fb7fbdccdf70d1623d938bc4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"bbcfd9cd76d92c3ee70475270156755346c9086391e1b9cb643d072e0cf576b8","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7","impliedFormat":1},{"version":"18334defc3d0a0e1966f5f3c23c7c83b62c77811e51045c5a7ff3883b446f81f","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b17fcd63aa13734bf1d01419f4d6031b1c6a5fb2cbdb45e9839fb1762bdf0df","impliedFormat":1},{"version":"c4e8e8031808b158cfb5ac5c4b38d4a26659aec4b57b6a7e2ba0a141439c208c","impliedFormat":1},{"version":"2c91d8366ff2506296191c26fd97cc1990bab3ee22576275d28b654a21261a44","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"247b8f93f31c5918444116471bfb90810e268339bf5c678657ca99ca7183dabb","affectsGlobalScope":true,"impliedFormat":1},{"version":"289e9894a4668c61b5ffed09e196c1f0c2f87ca81efcaebdf6357cfb198dac14","impliedFormat":1},{"version":"25a1105595236f09f5bce42398be9f9ededc8d538c258579ab662d509aa3b98e","impliedFormat":1},{"version":"aa9224557befad144262c85b463c0a7ba8a3a0ad2a7c907349f8bb8bc3fe4abc","impliedFormat":1},{"version":"a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","impliedFormat":1},{"version":"ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c","impliedFormat":1},{"version":"62f572306e0b173cc5dfc4c583471151f16ef3779cf27ab96922c92ec82a3bc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"92dab1293d03f6cbd5d53c31b723c30ff5a52eaacd717ee3226e18739b5bb722","impliedFormat":1},{"version":"c6176c7b9f3769ba7f076c7a791588562c653cc0ba08fb2184f87bf78db2a87c","impliedFormat":1},{"version":"935b3d7510493c03fda1e43f5cb754ed2ac2f16b41f5477a02bf803509b8ddda","impliedFormat":1},{"version":"bcbabfaca3f6b8a76cb2739e57710daf70ab5c9479ab70f5351c9b4932abf6bd","impliedFormat":1},{"version":"77fced47f495f4ff29bb49c52c605c5e73cd9b47d50080133783032769a9d8a6","impliedFormat":1},{"version":"ca0f30343ce1a43181684c02af2ac708ba26d00f689be5e96e7301c374d64c7e","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"c8b85f7aed29f8f52b813f800611406b0bfe5cf3224d20a4bdda7c7f73ce368e","affectsGlobalScope":true,"impliedFormat":1},{"version":"7baae9bf5b50e572e7742c886c73c6f8fa50b34190bc5f0fd20dd7e706fda832","impliedFormat":1},{"version":"e99b0e71f07128fc32583e88ccd509a1aaa9524c290efb2f48c22f9bf8ba83b1","impliedFormat":1},{"version":"76957a6d92b94b9e2852cf527fea32ad2dc0ef50f67fe2b14bd027c9ceef2d86","impliedFormat":1},{"version":"5e9f8c1e042b0f598a9be018fc8c3cb670fe579e9f2e18e3388b63327544fe16","affectsGlobalScope":true,"impliedFormat":1},{"version":"a8a99a5e6ed33c4a951b67cc1fd5b64fd6ad719f5747845c165ca12f6c21ba16","affectsGlobalScope":true,"impliedFormat":1},{"version":"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","impliedFormat":1},{"version":"b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","impliedFormat":1},{"version":"de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","impliedFormat":1},{"version":"70b57b5529051497e9f6482b76d91c0dcbb103d9ead8a0549f5bab8f65e5d031","impliedFormat":1},{"version":"8c81fd4a110490c43d7c578e8c6f69b3af01717189196899a6a44f93daa57a3a","impliedFormat":1},{"version":"1013eb2e2547ad8c100aca52ef9df8c3f209edee32bb387121bb3227f7c00088","impliedFormat":1},{"version":"29c83cc89ddbdd5ffae8c00f4e6fab6f8f0e8076f87a866b132e8751e88cb848","impliedFormat":1},{"version":"363eedb495912790e867da6ff96e81bf792c8cfe386321e8163b71823a35719a","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"dba28a419aec76ed864ef43e5f577a5c99a010c32e5949fe4e17a4d57c58dd11","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea713aa14a670b1ea0fbaaca4fd204e645f71ca7653a834a8ec07ee889c45de6","impliedFormat":1},{"version":"07199a85560f473f37363d8f1300fac361cda2e954caf8a40221f83a6bfa7ade","impliedFormat":1},{"version":"9705cd157ffbb91c5cab48bdd2de5a437a372e63f870f8a8472e72ff634d47c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","impliedFormat":1},{"version":"3af7d02e5d6ecbf363e61fb842ee55d3518a140fd226bdfb24a3bca6768c58df","impliedFormat":1},{"version":"e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","impliedFormat":1},{"version":"4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055","impliedFormat":1},{"version":"0d7393564d48a3f6f08c76b8d4de48260a072801422548e2030e386acd530dbf","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fcb71410ad8a48bbdd13cd4c3eedf78ac0416e9f3533ae98e19cc6f3c7f5474","affectsGlobalScope":true,"impliedFormat":1},{"version":"784490137935e1e38c49b9289110e74a1622baf8a8907888dcbe9e476d7c5e44","impliedFormat":1},{"version":"420fdd37c51263be9db3fcac35ffd836216c71e6000e6a9740bb950fb0540654","impliedFormat":1},{"version":"73b0bff83ee76e3a9320e93c7fc15596e858b33c687c39a57567e75c43f2a324","impliedFormat":1},{"version":"355a5a582a78ba5aa382f7190616a8f8bb29b19d9226ace56f25efc13fc32fc5","affectsGlobalScope":true,"impliedFormat":1},{"version":"4445f6ce6289c5b2220398138da23752fd84152c5c95bb8b58dedefc1758c036","impliedFormat":1},{"version":"7ac7756e2b43f021fa3d3b562a7ea8bf579543521a18b5682935d015361e6a35","impliedFormat":1}],"root":[[81,84]],"options":{"allowJs":true,"alwaysStrict":true,"checkJs":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"importHelpers":true,"jsx":4,"jsxImportSource":"@kitajs/html","module":1,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitOverride":true,"noImplicitReturns":true,"noImplicitThis":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","skipDefaultLibCheck":true,"sourceMap":true,"strict":true,"strictBindCallApply":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"target":9,"useUnknownInCatchVariables":true},"referencedMap":[[135,1],[136,1],[137,2],[87,3],[138,4],[139,5],[140,6],[85,7],[141,8],[142,9],[143,10],[144,11],[145,12],[146,13],[147,13],[148,14],[149,15],[150,16],[151,17],[88,7],[86,7],[152,18],[153,19],[154,20],[188,21],[155,22],[156,7],[157,23],[158,24],[159,25],[160,26],[161,27],[162,28],[163,29],[164,30],[165,31],[166,31],[167,32],[168,7],[169,7],[170,33],[172,34],[171,35],[173,36],[174,37],[175,38],[176,39],[177,40],[178,41],[179,42],[180,43],[181,44],[182,45],[183,46],[184,47],[185,48],[89,7],[90,7],[91,7],[132,49],[133,50],[134,7],[186,51],[187,52],[77,7],[79,53],[78,53],[75,54],[73,7],[74,55],[67,7],[66,7],[63,7],[64,7],[12,7],[10,7],[11,7],[16,7],[15,7],[2,7],[17,7],[18,7],[19,7],[20,7],[21,7],[22,7],[23,7],[24,7],[3,7],[25,7],[26,7],[4,7],[27,7],[31,7],[28,7],[29,7],[30,7],[32,7],[33,7],[34,7],[5,7],[35,7],[36,7],[37,7],[38,7],[6,7],[42,7],[39,7],[40,7],[41,7],[43,7],[7,7],[44,7],[49,7],[50,7],[45,7],[46,7],[47,7],[48,7],[8,7],[54,7],[51,7],[52,7],[53,7],[55,7],[9,7],[56,7],[65,7],[57,7],[58,7],[60,7],[59,7],[1,7],[61,7],[62,7],[14,7],[13,7],[80,56],[76,7],[109,57],[120,58],[107,59],[121,60],[130,61],[98,62],[99,63],[97,64],[129,65],[124,66],[128,67],[101,68],[117,69],[100,70],[127,71],[95,72],[96,66],[102,73],[103,7],[108,74],[106,73],[93,75],[131,76],[122,77],[112,78],[111,73],[113,79],[115,80],[110,81],[114,82],[125,65],[104,83],[105,84],[116,85],[94,60],[119,86],[118,73],[123,7],[92,7],[126,87],[69,88],[70,89],[72,89],[71,90],[68,91],[83,92],[81,93],[84,94],[82,95]],"version":"5.9.3"}