@kitajs/ts-html-plugin 1.2.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -43,7 +43,13 @@
43
43
  - [Running as CLI](#running-as-cli)
44
44
  - [Handling Warnings](#handling-warnings)
45
45
  - [Vscode](#vscode)
46
+ - [Error codes](#error-codes)
47
+ - [K601](#k601)
48
+ - [K602](#k602)
49
+ - [K603](#k603)
50
+ - [K604](#k604)
46
51
  - [JSX](#jsx)
52
+ - [Special cases](#special-cases)
47
53
 
48
54
  <br />
49
55
  <br />
@@ -96,17 +102,18 @@ npm install -g @kitajs/ts-html-plugin
96
102
  ```sh
97
103
  $ xss-scan --help
98
104
 
99
- ts-html-plugin v1.1.1 - A CLI tool & TypeScript LSP for finding XSS vulnerabilities in your TypeScript code.
105
+ ts-html-plugin v1.3.1 - A CLI tool & TypeScript LSP for finding XSS vulnerabilities in your TypeScript code.
100
106
 
101
- Usage: xss-scan [options]
102
- ts-html-plugin [options]
107
+ Usage: xss-scan [options] <file> <file>...
108
+ ts-html-plugin [options] <file> <file>...
103
109
 
104
110
  Options:
105
- --cwd <path> The current working directory to use (defaults to process.cwd())
106
- --project <path> The path to the tsconfig.json file to use (defaults to 'tsconfig.json')
107
- --help Show this help message
108
- --version Show the version number
109
- <file> <file>... The files to check (defaults to all files in tsconfig.json)
111
+ --cwd <path> The current working directory to use (defaults to process.cwd())
112
+ -p, --project <path> The path to the tsconfig.json file to use (defaults to 'tsconfig.json')
113
+ -s, --simplified Use simplified diagnostics
114
+ -h, --help Show this help message
115
+ --version Show the version number
116
+ <file> <file>... The files to check (defaults to all files in tsconfig.json)
110
117
 
111
118
  Examples:
112
119
  $ xss-scan
@@ -168,9 +175,128 @@ current project's typescript version.
168
175
 
169
176
  <br />
170
177
 
178
+ ## Error codes
179
+
180
+ ### K601
181
+
182
+ Usage of JSX expression without safe attribute. This could lead to XSS vulnerabilities.
183
+ Please use the safe attribute on the JSX element or prepend your variable with `safe`.
184
+
185
+ ```tsx
186
+ // ❌ Content variable may have a value of `<script>alert('xss')</script>`
187
+ // which will lead to XSS vulnerabilities.
188
+ let html = <div>{content}</div>;
189
+
190
+ // ✅ Content variable may have a value of `<script>alert('xss')</script>`,
191
+ // but it's safe to use because it will get escaped to =
192
+ // `&lt;script&gt;alert('xss')&lt;/script&gt;`.
193
+ let html = <div safe>{content}</div>;
194
+
195
+ // ⚠️ Content variable may have a value of `<script>alert('xss')</script>`,
196
+ // but variable starts with safe, so the error is suppressed.
197
+ let safeContent = content;
198
+ let html = <div>{safeContent}</div>;
199
+ ```
200
+
201
+ <br />
202
+
203
+ ### K602
204
+
205
+ Usage of safe attribute on a JSX element whose children contains other JSX elements. It
206
+ will lead to double escaping. If this is intended behavior, please extract the children
207
+ into a separate variable and use that instead.
208
+
209
+ ```tsx
210
+ // ❌ Safe attribute in the outer element will also escape inner elements.
211
+ // In this // case the <b> tag will also be escaped, resulting into
212
+ // `<a>&lt;b&gt;1&lt;/b&gt;</a>`.
213
+ let html = (
214
+ <a safe>
215
+ <b>1</b>
216
+ </a>
217
+ );
218
+
219
+ // ✅ Safe attribute in the inner element will escape only the inner element.
220
+ // In this case the <b> tag will be escaped, resulting into
221
+ // `<a><b>1</b></a>`.
222
+ let html = (
223
+ <a>
224
+ <b safe>1</b>
225
+ </a>
226
+ );
227
+ ```
228
+
229
+ <br />
230
+
231
+ ### K603
232
+
233
+ You are using a xss-prone element as a children of a component. Please wrap it into a
234
+ Html.escapeHtml() call or prepend it as a variable starting with `safe`.
235
+
236
+ This error is similar to [K601](#k601), but instead of using `safe` native attribute, you
237
+ need to use `Html.escapeHtml()` function because its a component and not a native JSX.
238
+
239
+ ```tsx
240
+ // ❌ Content variable may have a value of `<script>alert('xss')</script>`
241
+ // which will lead to XSS vulnerabilities.
242
+ let html = <Component>{content}</Component>;
243
+
244
+ // ✅ Content variable may have a value of `<script>alert('xss')</script>`,
245
+ // but it's safe to use because you manually call the escape function.
246
+ let html = <Component>{Html.escapeHtml(content)}</Component>;
247
+
248
+ // ⚠️ Content variable may have a value of `<script>alert('xss')</script>`,
249
+ // but variable starts with safe, so the error is suppressed.
250
+ let safeContent = content;
251
+ let html = <Component>{safeContent}</Component>;
252
+ ```
253
+
254
+ <br />
255
+
256
+ ### K604
257
+
258
+ You are using the safe attribute on expressions that does not contain any XSS
259
+ vulnerabilities. Please remove the safe attribute or prepend your variable with `unsafe`.
260
+
261
+ ```tsx
262
+ // ⚠️ The variable will never have any harmful XSS content, so the safe attribute is
263
+ // not needed and can be removed.
264
+ let html = <div safe>{numberVariable}</div>;
265
+
266
+ // ✅ This variable will never have any harmful XSS content, so we can use it
267
+ // as is.
268
+ let html = <div>{numberVariable}</div>;
269
+
270
+ // ✅ You manually told this plugin that the variable is unsafe, so errors will
271
+ // be thrown.
272
+ let unsafeVariable = numberVariable;
273
+ let html = <div safe>{unsafeVariable}</div>;
274
+ ```
275
+
276
+ <br />
277
+
171
278
  ## JSX
172
279
 
173
280
  For JSX support, please go to [kitajs/html](https://github.com/kitajs/html) for more
174
281
  information.
175
282
 
176
283
  <br />
284
+
285
+ ## Special cases
286
+
287
+ 1. Anything inside a `<script>` tag is allowed. If you are using a script tag, you want to
288
+ execute the content anyways.
289
+
290
+ ```tsx
291
+ let html = <script>{content}</script>;
292
+ ```
293
+
294
+ 2. Ternary and binary operations are evaluated in both sides separately and will throw
295
+ errors if any of the sides is not safe.
296
+
297
+ ```tsx
298
+ let html = <div>{isSafe ? safeContent : content}</div>;
299
+ // ~~~~~~~
300
+ ```
301
+
302
+ <br />
package/dist/cli.js CHANGED
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const tslib_1 = require("tslib");
5
5
  const chalk_1 = tslib_1.__importDefault(require("chalk"));
6
6
  const fs_1 = tslib_1.__importDefault(require("fs"));
7
+ const os_1 = require("os");
7
8
  const path_1 = tslib_1.__importDefault(require("path"));
8
9
  const typescript_1 = tslib_1.__importDefault(require("typescript"));
9
10
  const yargs_1 = tslib_1.__importDefault(require("yargs"));
@@ -20,6 +21,7 @@ Usage: xss-scan [options] <file> <file>...
20
21
  Options:
21
22
  --cwd <path> The current working directory to use (defaults to process.cwd())
22
23
  -p, --project <path> The path to the tsconfig.json file to use (defaults to 'tsconfig.json')
24
+ -s, --simplified Use simplified diagnostics
23
25
  -h, --help Show this help message
24
26
  --version Show the version number
25
27
  <file> <file>... The files to check (defaults to all files in tsconfig.json)
@@ -34,6 +36,7 @@ Exit codes:
34
36
  0 - No XSS vulnerabilities were found
35
37
  1 - XSS vulnerabilities were found
36
38
  2 - Only XSS warnings were found
39
+
37
40
  `.trim();
38
41
  function readCompilerOptions(tsconfigPath) {
39
42
  const { config, error } = typescript_1.default.readConfigFile(tsconfigPath, typescript_1.default.sys.readFile);
@@ -46,39 +49,6 @@ function readCompilerOptions(tsconfigPath) {
46
49
  }
47
50
  return { options, fileNames, errors: undefined };
48
51
  }
49
- function prettyPrintDiagnostics(diagnostics, root) {
50
- // Prints an error message in the same way as tsc does
51
- for (const diagnostic of diagnostics) {
52
- const message = typescript_1.default.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
53
- if (!diagnostic.file) {
54
- console.error(diagnostic);
55
- continue;
56
- }
57
- const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
58
- let error = '';
59
- error += chalk_1.default.cyan(path_1.default.relative(root, diagnostic.file.fileName));
60
- error += ':';
61
- error += chalk_1.default.yellow(line + 1);
62
- error += ':';
63
- error += chalk_1.default.yellow(character + 1);
64
- error += ' - ';
65
- error += chalk_1.default.red('error');
66
- error += ' ';
67
- error += chalk_1.default.grey(`TS${diagnostic.code}:`);
68
- error += ' ';
69
- error += message;
70
- error += '\n\n';
71
- error += chalk_1.default.bgWhite.black(line + 1);
72
- error += ' ';
73
- error += diagnostic.file.text.split('\n')[line];
74
- error += '\n';
75
- error += chalk_1.default.bgWhite.black(' '.repeat((line + 1).toString().length));
76
- error += ' '.repeat(character + 1);
77
- error += chalk_1.default.red('~'.repeat(diagnostic.length));
78
- error += '\n';
79
- console.error(error);
80
- }
81
- }
82
52
  function prettyPrintErrorCount(diagnostics, root) {
83
53
  const files = new Map();
84
54
  // Counts the amount of errors per file
@@ -110,7 +80,7 @@ function fileExists(p) {
110
80
  }
111
81
  }
112
82
  async function main() {
113
- const args = await (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv)).help(false).argv;
83
+ const args = await (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv)).help(false).version(version).argv;
114
84
  if (args.help || args.h) {
115
85
  console.log(help);
116
86
  return process.exit(0);
@@ -124,6 +94,8 @@ async function main() {
124
94
  case 'cwd':
125
95
  case 'project':
126
96
  case 'p':
97
+ case 's':
98
+ case 'simplified':
127
99
  continue;
128
100
  default:
129
101
  console.error(`Unknown argument: ${key}. Run --help for more information.`);
@@ -132,13 +104,22 @@ async function main() {
132
104
  }
133
105
  const root = args.cwd ? String(args.cwd) : process.cwd();
134
106
  const tsconfigPath = String(args.project || args.p || 'tsconfig.json');
107
+ const simplified = !!(args.simplified || args.s);
108
+ const diagnosticFormatter = simplified
109
+ ? typescript_1.default.formatDiagnostics
110
+ : typescript_1.default.formatDiagnosticsWithColorAndContext;
135
111
  if (!fileExists(tsconfigPath)) {
136
- console.error(`Could not find ${tsconfigPath}`);
112
+ console.error((!simplified ? chalk_1.default.red : String)(`Could not find ${tsconfigPath}`));
137
113
  return process.exit(1);
138
114
  }
139
115
  const tsconfig = readCompilerOptions(tsconfigPath);
116
+ const diagnosticHost = {
117
+ getCurrentDirectory: () => root,
118
+ getCanonicalFileName: (fileName) => fileName,
119
+ getNewLine: () => os_1.EOL
120
+ };
140
121
  if (tsconfig.errors) {
141
- prettyPrintDiagnostics(tsconfig.errors, root);
122
+ console.error(diagnosticFormatter(tsconfig.errors, diagnosticHost));
142
123
  return process.exit(1);
143
124
  }
144
125
  let files = tsconfig.fileNames;
@@ -148,16 +129,20 @@ async function main() {
148
129
  for (let i = 0; i < args._.length; i++) {
149
130
  let file = String(args._[i]);
150
131
  if (!fileExists(file)) {
151
- console.error(chalk_1.default.red(`Could not find provided '${file}' file.`));
132
+ console.error((!simplified ? chalk_1.default.red : String)(`Could not find provided '${file}' file.`));
152
133
  return process.exit(1);
153
134
  }
154
135
  if (!file.match(/(t|j)sx$/)) {
155
- console.warn(chalk_1.default.yellow(`Provided '${file}' file is not a TSX/JSX file.`));
136
+ console.warn((!simplified ? chalk_1.default.yellow : String)(`Provided '${file}' file is not a TSX/JSX file.`));
156
137
  continue;
157
138
  }
158
139
  files.push(file);
159
140
  }
160
141
  }
142
+ if (!files.length) {
143
+ console.error((!simplified ? chalk_1.default.red : String)(`No files were found to check.`));
144
+ return process.exit(1);
145
+ }
161
146
  const program = typescript_1.default.createProgram(files, tsconfig.options);
162
147
  const typeChecker = program.getTypeChecker();
163
148
  const sources = program.getSourceFiles();
@@ -172,14 +157,13 @@ async function main() {
172
157
  (0, util_1.recursiveDiagnoseJsxElements)(typescript_1.default, node, typeChecker, diagnostics);
173
158
  });
174
159
  }
175
- console.log();
176
160
  if (diagnostics.length) {
177
- const exitCode = diagnostics.some((diagnostic) => diagnostic.category === typescript_1.default.DiagnosticCategory.Error)
178
- ? 1
179
- : 2;
180
- prettyPrintDiagnostics(diagnostics, root);
181
- prettyPrintErrorCount(diagnostics, root);
182
- process.exit(exitCode);
161
+ const hasError = diagnostics.some((diagnostic) => diagnostic.category === typescript_1.default.DiagnosticCategory.Error);
162
+ console.error(diagnosticFormatter(diagnostics, diagnosticHost));
163
+ if (!simplified) {
164
+ prettyPrintErrorCount(diagnostics, root);
165
+ }
166
+ process.exit(hasError ? 1 : 2);
183
167
  }
184
168
  console.log(chalk_1.default.green(`No XSS vulnerabilities found in ${files.length} files!`));
185
169
  process.exit(0);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -1,17 +1,17 @@
1
1
  export declare const Xss: {
2
- code: number;
2
+ code: any;
3
3
  message: string;
4
4
  };
5
5
  export declare const DoubleEscape: {
6
- code: number;
6
+ code: any;
7
7
  message: string;
8
8
  };
9
- export declare const UnusedSafe: {
10
- code: number;
9
+ export declare const ComponentXss: {
10
+ code: any;
11
11
  message: string;
12
12
  };
13
- export declare const ComponentXss: {
14
- code: number;
13
+ export declare const UnusedSafe: {
14
+ code: any;
15
15
  message: string;
16
16
  };
17
17
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,GAAG;;;CAIf,CAAC;AAEF,eAAO,MAAM,YAAY;;;CAIxB,CAAC;AAEF,eAAO,MAAM,UAAU;;;CAItB,CAAC;AAEF,eAAO,MAAM,YAAY;;;CAIxB,CAAC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,GAAG;;;CAIf,CAAC;AAEF,eAAO,MAAM,YAAY;;;CAIxB,CAAC;AAEF,eAAO,MAAM,YAAY;;;CAIxB,CAAC;AAEF,eAAO,MAAM,UAAU;;;CAGtB,CAAC"}
package/dist/errors.js CHANGED
@@ -1,20 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ComponentXss = exports.UnusedSafe = exports.DoubleEscape = exports.Xss = void 0;
3
+ exports.UnusedSafe = exports.ComponentXss = exports.DoubleEscape = exports.Xss = void 0;
4
4
  exports.Xss = {
5
- code: 27022005,
6
- message: 'Usage of JSX expression without safe attribute. This could lead to XSS vulnerabilities. Please use the safe attribute on the JSX element or prepend your variable with `safe`.'
5
+ code: '0 K601',
6
+ message: 'Usage of xss-prone content without `safe` attribute. https://kitajs.github.io/ts-html-plugin#k601'
7
7
  };
8
8
  exports.DoubleEscape = {
9
- code: 16061999,
10
- message: 'You are using the safe attribute on a JSX element whose children contains other JSX elements. It will lead to double escaping. If this is intended behavior, please extract the children into a separate variable and use that instead.'
11
- };
12
- exports.UnusedSafe = {
13
- code: 17091977,
14
- message: 'You are using the safe attribute on expressions that does not contain any XSS vulnerabilities. Please remove the safe attribute or prepend your variable with `unsafe`.'
9
+ code: '0 K602',
10
+ message: 'Double escaping detected. Please remove the `safe` attribute. https://kitajs.github.io/ts-html-plugin#k602'
15
11
  };
16
12
  exports.ComponentXss = {
17
- code: 27061977,
18
- message: 'You are using a xss-prone element as a children of a component. Please wrap it into a Html.escapeHtml() call or prepend it as a variable starting with `safe`.'
13
+ code: '0 K603',
14
+ message: 'Xss-prone content inside a Component, wrap it into a Html.escapeHtml() call. https://kitajs.github.io/ts-html-plugin#k603'
15
+ };
16
+ exports.UnusedSafe = {
17
+ code: '0 K604',
18
+ message: 'Unused safe attribute. https://kitajs.github.io/ts-html-plugin#k604'
19
19
  };
20
20
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAa,QAAA,GAAG,GAAG;IACjB,IAAI,EAAE,QAAQ;IACd,OAAO,EACL,gLAAgL;CACnL,CAAC;AAEW,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,QAAQ;IACd,OAAO,EACL,yOAAyO;CAC5O,CAAC;AAEW,QAAA,UAAU,GAAG;IACxB,IAAI,EAAE,QAAQ;IACd,OAAO,EACL,yKAAyK;CAC5K,CAAC;AAEW,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,QAAQ;IACd,OAAO,EACL,gKAAgK;CACnK,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAa,QAAA,GAAG,GAAG;IACjB,IAAI,EAAE,QAAe;IACrB,OAAO,EACL,mGAAmG;CACtG,CAAC;AAEW,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,QAAe;IACrB,OAAO,EACL,4GAA4G;CAC/G,CAAC;AAEW,QAAA,YAAY,GAAG;IAC1B,IAAI,EAAE,QAAe;IACrB,OAAO,EACL,2HAA2H;CAC9H,CAAC;AAEW,QAAA,UAAU,GAAG;IACxB,IAAI,EAAE,QAAe;IACrB,OAAO,EAAE,qEAAqE;CAC/E,CAAC"}
package/dist/index.js CHANGED
@@ -8,7 +8,7 @@ module.exports = function initHtmlPlugin(modules) {
8
8
  proxy.getSemanticDiagnostics = function clonedSemanticDiagnostics(filename) {
9
9
  const diagnostics = info.languageService.getSemanticDiagnostics(filename);
10
10
  // Not a tsx file, so don't do anything
11
- if (!filename.match(/(t|j)sx$/)) {
11
+ if (!filename.endsWith('.tsx') && !filename.endsWith('.jsx')) {
12
12
  return diagnostics;
13
13
  }
14
14
  const program = info.languageService.getProgram();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,iCAAmE;AAEnE,iBAAS,SAAS,cAAc,CAAC,OAAkC;IACjE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAE9B,OAAO;QACL,MAAM,CAAC,IAA6B;YAClC,MAAM,KAAK,GAAG,IAAA,kBAAW,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAEhD,KAAK,CAAC,sBAAsB,GAAG,SAAS,yBAAyB,CAAC,QAAQ;gBACxE,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;gBAE1E,uCAAuC;gBACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;oBAC/B,OAAO,WAAW,CAAC;iBACpB;gBAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;gBAElD,IAAI,CAAC,OAAO,EAAE;oBACZ,OAAO,WAAW,CAAC;iBACpB;gBAED,MAAM,MAAM,GAAG,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAEhD,IAAI,CAAC,MAAM,EAAE;oBACX,OAAO,WAAW,CAAC;iBACpB;gBAED,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;gBAE7C,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,eAAe,CAAC,IAAI;oBACnD,IAAA,mCAA4B,EAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC;gBAEH,OAAO,WAAW,CAAC;YACrB,CAAC,CAAC;YAEF,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,iCAAmE;AAEnE,iBAAS,SAAS,cAAc,CAAC,OAAkC;IACjE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAE9B,OAAO;QACL,MAAM,CAAC,IAA6B;YAClC,MAAM,KAAK,GAAG,IAAA,kBAAW,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAEhD,KAAK,CAAC,sBAAsB,GAAG,SAAS,yBAAyB,CAAC,QAAQ;gBACxE,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;gBAE1E,uCAAuC;gBACvC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBAC5D,OAAO,WAAW,CAAC;iBACpB;gBAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;gBAElD,IAAI,CAAC,OAAO,EAAE;oBACZ,OAAO,WAAW,CAAC;iBACpB;gBAED,MAAM,MAAM,GAAG,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAEhD,IAAI,CAAC,MAAM,EAAE;oBACX,OAAO,WAAW,CAAC;iBACpB;gBAED,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;gBAE7C,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,eAAe,CAAC,IAAI;oBACnD,IAAA,mCAA4B,EAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC;gBAEH,OAAO,WAAW,CAAC;YACrB,CAAC,CAAC;YAEF,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"program":{"fileNames":["../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es5.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.dom.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.scripthost.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.esnext.full.d.ts","../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.d.ts","../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/index.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/typescript.d.ts","../node_modules/.pnpm/@types+yargs-parser@21.0.1/node_modules/@types/yargs-parser/index.d.ts","../node_modules/.pnpm/@types+yargs@17.0.26/node_modules/@types/yargs/index.d.ts","../node_modules/.pnpm/@types+yargs@17.0.26/node_modules/@types/yargs/helpers.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/tsserverlibrary.d.ts","../src/errors.ts","../src/util.ts","../src/cli.ts","../src/index.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/assert.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/assert/strict.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/globals.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/async_hooks.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/buffer.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/child_process.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/cluster.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/console.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/constants.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/crypto.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/dgram.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/dns.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/dns/promises.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/domain.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/dom-events.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/events.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/fs.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/fs/promises.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/http.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/http2.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/https.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/inspector.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/module.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/net.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/os.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/path.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/perf_hooks.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/process.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/punycode.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/querystring.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/readline.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/readline/promises.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/repl.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/stream.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/stream/promises.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/stream/consumers.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/stream/web.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/string_decoder.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/test.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/timers.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/timers/promises.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/tls.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/trace_events.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/tty.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/url.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/util.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/v8.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/vm.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/wasi.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/worker_threads.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/zlib.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/globals.global.d.ts","../node_modules/.pnpm/@types+node@20.7.1/node_modules/@types/node/index.d.ts","../node_modules/.pnpm/prettier@3.0.3/node_modules/prettier/doc.d.ts","../node_modules/.pnpm/prettier@3.0.3/node_modules/prettier/index.d.ts"],"fileInfos":[{"version":"2ac9cdcfb8f8875c18d14ec5796a8b029c426f73ad6dc3ffb580c228b58d1c44","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","bed7b7ba0eb5a160b69af72814b4dde371968e40b6c5e73d3a9f7bee407d158c",{"version":"0075fa5ceda385bcdf3488e37786b5a33be730e8bc4aa3cf1e78c63891752ce8","affectsGlobalScope":true},{"version":"35299ae4a62086698444a5aaee27fc7aa377c68cbb90b441c9ace246ffd05c97","affectsGlobalScope":true},{"version":"c5c5565225fce2ede835725a92a28ece149f83542aa4866cfb10290bff7b8996","affectsGlobalScope":true},{"version":"7d2dbc2a0250400af0809b0ad5f84686e84c73526de931f84560e483eb16b03c","affectsGlobalScope":true},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true},{"version":"09226e53d1cfda217317074a97724da3e71e2c545e18774484b61562afc53cd2","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"8b41361862022eb72fcc8a7f34680ac842aca802cf4bc1f915e8c620c9ce4331","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"bc496ef4377553e461efcf7cc5a5a57cf59f9962aea06b5e722d54a36bf66ea1","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"930b0e15811f84e203d3c23508674d5ded88266df4b10abee7b31b2ac77632d2","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"65be38e881453e16f128a12a8d36f8b012aa279381bf3d4dc4332a4905ceec83","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"e1913f656c156a9e4245aa111fbb436d357d9e1fe0379b9a802da7fe3f03d736","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"f35a831e4f0fe3b3697f4a0fe0e3caa7624c92b78afbecaf142c0f93abfaf379","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"7823c8aa42d88e6cb454fe7dc56996c6fd174b28a9f050e9bdea1c25b7d114ea","7a1971efcba559ea9002ada4c4e3c925004fb67a755300d53b5edf9399354900","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","375387db607fc72d59f4e65e3cfd86cbfa636aecf33d9d4c6015fd7d95ca42af","75fa6a9be075402ea969c1fcec4bb1421f72efbc3e2f340032684cdd3115197c","2eae2c50864a720fad05e116a0121a6ee6b6231266763c75d1f3503ddc22714a","4eb2499d385eff0db377104ae091822c4ba889b318b55a764dee8ee323c837ed","f9c2563439fc156b5d08d92ba998db0cd1302e65f8bb29a21eae42f97ff4ee6c",{"version":"602ab005a565f7ce744b802dc17f9e647ff81f2525abe4bceda23aac39f1d2aa","signature":"3c60a0a2ef2735b1ba5bd211eb778164d371bb23ba0173cdd94fe109da52a6c0"},{"version":"a72d3205feff228dd876e31a3ad0da51d607fadafa7c15607cb66df145e590fc","signature":"86c059690e90766a6cbf488d7b9e17ffdf4498cac231691fac2c9a77d60390a8"},{"version":"61ddde6ad7e0b08c41c2db59311f6149c4086ee17dcf76daf5e0d5827898f929","signature":"43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012"},{"version":"785acb56136645f5114f8eab2b36114ab338514e0254b39b06a2bf391e7146ad","signature":"15f327a31a2696c9ceaa67e73ba0d4c55bee1728196299ecc5150b2e6d11b76d"},"09df3b4f1c937f02e7fee2836d4c4d7a63e66db70fd4d4e97126f4542cc21d9d","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419",{"version":"32465ea19404cb188e84cf08c6b1f6b12d739140436402cdbc184a3fd20a7d81","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"bb6872f39c58753205c19b9f89e1e07d61116ae5d82539cef0f3bde5e8fecb57","affectsGlobalScope":true},"546ab07e19116d935ad982e76a223275b53bff7771dab94f433b7ab04652936e","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"aefb5a4a209f756b580eb53ea771cca8aad411603926f307a5e5b8ec6b16dcf6","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","3a3b3310118e79c8d394171a87f4dc8fd562337a85e33f9fa9636040a2ec2fde","b86e1a45b29437f3a99bad4147cb9fe2357617e8008c0484568e5bb5138d6e13","b5b719a47968cd61a6f83f437236bb6fe22a39223b6620da81ef89f5d7a78fb7","42c431e7965b641106b5e25ab3283aa4865ca7bb9909610a2abfa6226e4348be","0b7e732af0a9599be28c091d6bd1cb22c856ec0d415d4749c087c3881ca07a56","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"738a0de235edb5caf581c5aa86f5dd48ee28b2d0da1e327cbc57cdabde116bda","affectsGlobalScope":true},"3b4c85eea12187de9929a76792b98406e8778ce575caca8c574f06da82622c54","f788131a39c81e0c9b9e463645dd7132b5bc1beb609b0e31e5c1ceaea378b4df","f4016bf7fd9b760162521f2f18fab4023095795e4fb34496d8c61c59acfd0a56","21894466693f64957b9bd4c80fa3ec7fdfd4efa9d1861e070aca23f10220c9b2","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","ad8848c289c0b633452e58179f46edccd14b5a0fe90ebce411f79ff040b803e0",{"version":"120285cc97da7b20b0cbf2c557a5db7d215ec17ee688165ac8aff7f8de035b75","affectsGlobalScope":true},"5ca4a9fb7c9ee4f60df6d3bb6460e2c7f3a9cd7b8f7ebae29110fac74de4e50c","42a7993edf3288c33755ec08faefb1a40fd9f5f0844f82e48ae152791e80c76a","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"f49fb15c4aa06b65b0dce4db4584bfd8a9f74644baef1511b404dc95be34af00","affectsGlobalScope":true},{"version":"d48009cbe8a30a504031cc82e1286f78fed33b7a42abf7602c23b5547b382563","affectsGlobalScope":true},"7aaeb5e62f90e1b2be0fc4844df78cdb1be15c22b427bc6c39d57308785b8f10","3ba30205a029ebc0c91d7b1ab4da73f6277d730ca1fc6692d5a9144c6772c76b","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","458b216959c231df388a5de9dcbcafd4b4ca563bc3784d706d0455467d7d4942","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","8258e69a3b0de494ea55eeea7a4d3216ac112c12006c74dfd381c0d5e42a2607","cdaaf046791d7d588f28f32197c5d6acc43343e62540a67eed194c9c20535fdc","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"0466fc426b5d684b299855ed3898c30e6ce90cd742730ba5f619075507ea135a","affectsGlobalScope":true},{"version":"cbf046714f3a3ba2544957e1973ac94aa819fa8aa668846fa8de47eb1c41b0b2","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eae74e3d50820f37c72c0679fed959cd1e63c98f6a146a55b8c4361582fa6a52","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"aed89e3c18f4c659ee8153a76560dffda23e2d801e1e60d7a67abd84bc555f8d","affectsGlobalScope":true},{"version":"290276bcec65d49eb152489c62845b28bed530258751c80d04d167b36b33be72","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","2f940651c2f30e6b29f8743fae3f40b7b1c03615184f837132b56ea75edad08b","5749c327c3f789f658072f8340786966c8b05ea124a56c1d8d60e04649495a4d",{"version":"c9d62b2a51b2ff166314d8be84f6881a7fcbccd37612442cf1c70d27d5352f50","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"16dcbd7095be9ba030b671ef982dc760e03d40a0f54f27f2a6f1fa00f5670fe7","2f848b4e660b568651a6350565afc8ac5b0644853a2a863862807602cf244a05","87c316128d18c34881619a529fe0446125405fa073f1a9e533a8f66f66b6b340"],"root":[[76,79]],"options":{"alwaysStrict":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":true,"importHelpers":true,"jsx":2,"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":99,"useUnknownInCatchVariables":true},"fileIdsList":[[80,126],[83,126],[84,89,117,126],[85,96,97,104,114,125,126],[85,86,96,104,126],[87,126],[88,89,97,105,126],[89,114,122,126],[90,92,96,104,126],[91,126],[92,93,126],[96,126],[94,96,126],[96,97,98,114,125,126],[96,97,98,111,114,117,126],[126,130],[126],[92,96,99,104,114,125,126],[96,97,99,100,104,114,122,125,126],[99,101,114,122,125,126],[80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132],[96,102,126],[103,125,126,130],[92,96,104,114,126],[105,126],[106,126],[83,107,126],[108,124,126,130],[109,126],[110,126],[96,111,112,126],[111,113,126,128],[84,96,114,115,116,117,126],[84,114,116,126],[114,115,126],[117,126],[118,126],[83,114,126],[96,120,121,126],[120,121,126],[89,104,114,122,126],[123,126],[104,124,126],[84,99,110,125,126],[89,126],[114,126,127],[103,126,128],[126,129],[84,89,96,98,107,114,125,126,128,130],[114,126,131],[72,126],[126,134],[69,70,71,73,74,77,97,106,126],[69,126],[69,75,77,126],[69,71,75,76,126],[75],[71,75]],"referencedMap":[[80,1],[81,1],[83,2],[84,3],[85,4],[86,5],[87,6],[88,7],[89,8],[90,9],[91,10],[92,11],[93,11],[95,12],[94,13],[96,12],[97,14],[98,15],[82,16],[132,17],[99,18],[100,19],[101,20],[133,21],[102,22],[103,23],[104,24],[105,25],[106,26],[107,27],[108,28],[109,29],[110,30],[111,31],[112,31],[113,32],[114,33],[116,34],[115,35],[117,36],[118,37],[119,38],[120,39],[121,40],[122,41],[123,42],[124,43],[125,44],[126,45],[127,46],[128,47],[129,48],[130,49],[131,50],[72,17],[74,51],[73,51],[70,17],[134,17],[135,52],[69,17],[66,17],[67,17],[12,17],[13,17],[17,17],[16,17],[2,17],[18,17],[19,17],[20,17],[21,17],[22,17],[23,17],[24,17],[25,17],[3,17],[4,17],[26,17],[30,17],[27,17],[28,17],[29,17],[31,17],[32,17],[33,17],[5,17],[34,17],[35,17],[36,17],[37,17],[6,17],[41,17],[38,17],[39,17],[40,17],[42,17],[7,17],[43,17],[48,17],[49,17],[44,17],[45,17],[46,17],[47,17],[8,17],[53,17],[50,17],[51,17],[52,17],[54,17],[9,17],[55,17],[56,17],[57,17],[60,17],[58,17],[59,17],[61,17],[62,17],[10,17],[1,17],[11,17],[65,17],[64,17],[68,17],[63,17],[15,17],[14,17],[75,17],[71,17],[78,53],[76,54],[79,55],[77,56]],"exportedModulesMap":[[80,1],[81,1],[83,2],[84,3],[85,4],[86,5],[87,6],[88,7],[89,8],[90,9],[91,10],[92,11],[93,11],[95,12],[94,13],[96,12],[97,14],[98,15],[82,16],[132,17],[99,18],[100,19],[101,20],[133,21],[102,22],[103,23],[104,24],[105,25],[106,26],[107,27],[108,28],[109,29],[110,30],[111,31],[112,31],[113,32],[114,33],[116,34],[115,35],[117,36],[118,37],[119,38],[120,39],[121,40],[122,41],[123,42],[124,43],[125,44],[126,45],[127,46],[128,47],[129,48],[130,49],[131,50],[72,17],[74,51],[73,51],[70,17],[134,17],[135,52],[69,17],[66,17],[67,17],[12,17],[13,17],[17,17],[16,17],[2,17],[18,17],[19,17],[20,17],[21,17],[22,17],[23,17],[24,17],[25,17],[3,17],[4,17],[26,17],[30,17],[27,17],[28,17],[29,17],[31,17],[32,17],[33,17],[5,17],[34,17],[35,17],[36,17],[37,17],[6,17],[41,17],[38,17],[39,17],[40,17],[42,17],[7,17],[43,17],[48,17],[49,17],[44,17],[45,17],[46,17],[47,17],[8,17],[53,17],[50,17],[51,17],[52,17],[54,17],[9,17],[55,17],[56,17],[57,17],[60,17],[58,17],[59,17],[61,17],[62,17],[10,17],[1,17],[11,17],[65,17],[64,17],[68,17],[63,17],[15,17],[14,17],[75,17],[71,17],[79,57],[77,58]],"semanticDiagnosticsPerFile":[80,81,83,84,85,86,87,88,89,90,91,92,93,95,94,96,97,98,82,132,99,100,101,133,102,103,104,105,106,107,108,109,110,111,112,113,114,116,115,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,72,74,73,70,134,135,69,66,67,12,13,17,16,2,18,19,20,21,22,23,24,25,3,4,26,30,27,28,29,31,32,33,5,34,35,36,37,6,41,38,39,40,42,7,43,48,49,44,45,46,47,8,53,50,51,52,54,9,55,56,57,60,58,59,61,62,10,1,11,65,64,68,63,15,14,75,71,78,76,79,77]},"version":"5.2.2"}
1
+ {"program":{"fileNames":["../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es5.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.dom.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.scripthost.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/lib.es2022.full.d.ts","../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.d.ts","../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/index.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/typescript.d.ts","../node_modules/.pnpm/@types+yargs-parser@21.0.1/node_modules/@types/yargs-parser/index.d.ts","../node_modules/.pnpm/@types+yargs@17.0.31/node_modules/@types/yargs/index.d.ts","../node_modules/.pnpm/@types+yargs@17.0.31/node_modules/@types/yargs/helpers.d.ts","../node_modules/.pnpm/typescript@5.2.2/node_modules/typescript/lib/tsserverlibrary.d.ts","../src/errors.ts","../src/util.ts","../src/cli.ts","../src/index.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/assert.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/assert/strict.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/header.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/readable.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/file.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/fetch.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/formdata.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/connector.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/client.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/errors.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/dispatcher.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-dispatcher.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-origin.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool-stats.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/handlers.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/balanced-pool.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/agent.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-interceptor.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-agent.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-client.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-pool.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-errors.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/proxy-agent.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/api.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cookies.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/patch.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/filereader.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/websocket.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/content-type.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cache.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/interceptors.d.ts","../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/index.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/globals.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/async_hooks.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/buffer.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/child_process.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/cluster.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/console.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/constants.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/crypto.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/dgram.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/dns.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/dns/promises.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/domain.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/dom-events.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/events.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/fs.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/fs/promises.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/http.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/http2.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/https.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/inspector.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/module.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/net.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/os.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/path.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/perf_hooks.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/process.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/punycode.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/querystring.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/readline.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/readline/promises.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/repl.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/stream.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/stream/promises.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/stream/consumers.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/stream/web.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/string_decoder.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/test.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/timers.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/timers/promises.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/tls.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/trace_events.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/tty.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/url.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/util.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/v8.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/vm.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/wasi.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/worker_threads.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/zlib.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/globals.global.d.ts","../node_modules/.pnpm/@types+node@20.9.0/node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"2ac9cdcfb8f8875c18d14ec5796a8b029c426f73ad6dc3ffb580c228b58d1c44","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc",{"version":"0075fa5ceda385bcdf3488e37786b5a33be730e8bc4aa3cf1e78c63891752ce8","affectsGlobalScope":true},{"version":"35299ae4a62086698444a5aaee27fc7aa377c68cbb90b441c9ace246ffd05c97","affectsGlobalScope":true},{"version":"c5c5565225fce2ede835725a92a28ece149f83542aa4866cfb10290bff7b8996","affectsGlobalScope":true},{"version":"7d2dbc2a0250400af0809b0ad5f84686e84c73526de931f84560e483eb16b03c","affectsGlobalScope":true},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true},{"version":"09226e53d1cfda217317074a97724da3e71e2c545e18774484b61562afc53cd2","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"8b41361862022eb72fcc8a7f34680ac842aca802cf4bc1f915e8c620c9ce4331","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"bc496ef4377553e461efcf7cc5a5a57cf59f9962aea06b5e722d54a36bf66ea1","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"930b0e15811f84e203d3c23508674d5ded88266df4b10abee7b31b2ac77632d2","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"f35a831e4f0fe3b3697f4a0fe0e3caa7624c92b78afbecaf142c0f93abfaf379","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"1df2366de6650547b3dc1d7c4147355c0f6b4729c964e3839636fa418982d131","7a1971efcba559ea9002ada4c4e3c925004fb67a755300d53b5edf9399354900","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","375387db607fc72d59f4e65e3cfd86cbfa636aecf33d9d4c6015fd7d95ca42af","75fa6a9be075402ea969c1fcec4bb1421f72efbc3e2f340032684cdd3115197c","8495c63868f001b156fdeb6382ddd63dc6b2c9b91529ce08019caf312da37c59","4eb2499d385eff0db377104ae091822c4ba889b318b55a764dee8ee323c837ed","f9c2563439fc156b5d08d92ba998db0cd1302e65f8bb29a21eae42f97ff4ee6c",{"version":"e0beea2ac3ef37b2db48b14120284bd6d703cc16bc7a9fcad0f5b3bc58716e05","signature":"bc5efa61f4c3492f4831f738e0556dfac26c79a835130dc5fb363791941390b2"},{"version":"60ea9a764c0224b69b3139b71d85c8bc26ab1e474cbc75896b22f0d628b8c6d1","signature":"528d6a908a10b6a38c8f72787379130d76f53c2a8e40a6e3cacbe52806fd3de1"},{"version":"7e3426bd7337aae61701156ce57aeff2f41186b9aa5189503924d9bc5d26703e","signature":"43e818adf60173644896298637f47b01d5819b17eda46eaa32d0c7d64724d012"},{"version":"097cfb9ef1cb9e50f8698d43cb12ef101d782448cdb8ab1e659caa89e4c00b0e","signature":"15f327a31a2696c9ceaa67e73ba0d4c55bee1728196299ecc5150b2e6d11b76d"},"09df3b4f1c937f02e7fee2836d4c4d7a63e66db70fd4d4e97126f4542cc21d9d","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"4d719cfab49ae4045d15cb6bed0f38ad3d7d6eb7f277d2603502a0f862ca3182","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"5a856afb15f9dc9983faa391dde989826995a33983c1cccb173e9606688e9709","affectsGlobalScope":true},"546ab07e19116d935ad982e76a223275b53bff7771dab94f433b7ab04652936e","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"aefb5a4a209f756b580eb53ea771cca8aad411603926f307a5e5b8ec6b16dcf6","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","f5a8b7ec4b798c88679194a8ebc25dcb6f5368e6e5811fcda9fe12b0d445b8db","b86e1a45b29437f3a99bad4147cb9fe2357617e8008c0484568e5bb5138d6e13","b5b719a47968cd61a6f83f437236bb6fe22a39223b6620da81ef89f5d7a78fb7","42c431e7965b641106b5e25ab3283aa4865ca7bb9909610a2abfa6226e4348be","0b7e732af0a9599be28c091d6bd1cb22c856ec0d415d4749c087c3881ca07a56","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"8d6138a264ddc6f94f16e99d4e117a2d6eb31b217891cf091b6437a2f114d561","affectsGlobalScope":true},"3b4c85eea12187de9929a76792b98406e8778ce575caca8c574f06da82622c54","f788131a39c81e0c9b9e463645dd7132b5bc1beb609b0e31e5c1ceaea378b4df","0c236069ce7bded4f6774946e928e4b3601894d294054af47a553f7abcafe2c1","21894466693f64957b9bd4c80fa3ec7fdfd4efa9d1861e070aca23f10220c9b2","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"6ec93c745c5e3e25e278fa35451bf18ef857f733de7e57c15e7920ac463baa2a","affectsGlobalScope":true},"a5fe4cc622c3bf8e09ababde5f4096ceac53163eefcd95e9cd53f062ff9bb67a","30c2ec6abf6aaa60eb4f32fb1235531506b7961c6d1bdc7430711aec8fd85295","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"308b84e1943ef30015469770e931eb21b795348893b2a6562ca54ea8f0b3c41c","affectsGlobalScope":true},{"version":"d48009cbe8a30a504031cc82e1286f78fed33b7a42abf7602c23b5547b382563","affectsGlobalScope":true},"7aaeb5e62f90e1b2be0fc4844df78cdb1be15c22b427bc6c39d57308785b8f10","3ba30205a029ebc0c91d7b1ab4da73f6277d730ca1fc6692d5a9144c6772c76b","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","458b216959c231df388a5de9dcbcafd4b4ca563bc3784d706d0455467d7d4942","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","f8c87b19eae111f8720b0345ab301af8d81add39621b63614dfc2d15fd6f140a","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"24ba151e213906027e2b1f5223d33575a3612b0234a0e2b56119520bbe0e594b","affectsGlobalScope":true},{"version":"cbf046714f3a3ba2544957e1973ac94aa819fa8aa668846fa8de47eb1c41b0b2","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eae74e3d50820f37c72c0679fed959cd1e63c98f6a146a55b8c4361582fa6a52","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"aed89e3c18f4c659ee8153a76560dffda23e2d801e1e60d7a67abd84bc555f8d","affectsGlobalScope":true},{"version":"0ed13c80faeb2b7160bffb4926ff299c468e67a37a645b3ae0917ba0db633c1b","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","2f940651c2f30e6b29f8743fae3f40b7b1c03615184f837132b56ea75edad08b","5749c327c3f789f658072f8340786966c8b05ea124a56c1d8d60e04649495a4d",{"version":"c9d62b2a51b2ff166314d8be84f6881a7fcbccd37612442cf1c70d27d5352f50","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447"],"root":[[70,73]],"options":{"alwaysStrict":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":true,"importHelpers":true,"jsx":2,"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},"fileIdsList":[[74,152],[109,152],[110,115,143,152],[111,122,123,130,140,151,152],[111,112,122,130,152],[113,152],[114,115,123,131,152],[115,140,148,152],[116,118,122,130,152],[117,152],[118,119,152],[122,152],[120,122,152],[109,122,152],[122,123,124,140,151,152],[122,123,124,137,140,143,152],[107,152,156],[152],[118,122,125,130,140,151,152],[122,123,125,126,130,140,148,151,152],[125,127,140,148,151,152],[74,75,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,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],[122,128,152],[129,151,152,156],[118,122,130,140,152],[131,152],[132,152],[109,133,152],[134,150,152,156],[135,152],[136,152],[122,137,138,152],[137,139,152,154],[110,122,140,141,142,143,152],[110,140,142,152],[140,141,152],[143,152],[144,152],[109,140,152],[122,146,147,152],[146,147,152],[115,130,140,148,152],[149,152],[130,150,152],[110,125,136,151,152],[115,152],[140,152,153],[129,152,154],[152,155],[110,115,122,124,133,140,151,152,154,156],[140,152,157],[66,152],[84,88,151,152],[84,140,151,152],[79,152],[81,84,148,151,152],[130,148,152],[152,159],[79,152,159],[81,84,130,151,152],[76,77,80,83,110,122,140,151,152],[76,82,152],[80,84,110,143,151,152,159],[110,152,159],[100,110,152,159],[78,79,152,159],[84,152],[78,79,80,81,82,83,84,85,86,88,89,90,91,92,93,94,95,96,97,98,99,101,102,103,104,105,106,152],[84,91,92,152],[82,84,92,93,152],[83,152],[76,79,84,152],[84,88,92,93,152],[88,152],[82,84,87,151,152],[76,81,82,84,88,91,152],[110,140,152],[79,84,100,110,152,156,159],[63,64,65,67,68,71,123,131,132,152],[63,152],[63,69,71,152],[63,65,69,70,152],[69],[65,69]],"referencedMap":[[74,1],[75,1],[109,2],[110,3],[111,4],[112,5],[113,6],[114,7],[115,8],[116,9],[117,10],[118,11],[119,11],[121,12],[120,13],[122,14],[123,15],[124,16],[108,17],[158,18],[125,19],[126,20],[127,21],[159,22],[128,23],[129,24],[130,25],[131,26],[132,27],[133,28],[134,29],[135,30],[136,31],[137,32],[138,32],[139,33],[140,34],[142,35],[141,36],[143,37],[144,38],[145,39],[146,40],[147,41],[148,42],[149,43],[150,44],[151,45],[152,46],[153,47],[154,48],[155,49],[156,50],[157,51],[66,18],[68,52],[67,52],[64,18],[63,18],[60,18],[61,18],[10,18],[11,18],[15,18],[14,18],[2,18],[16,18],[17,18],[18,18],[19,18],[20,18],[21,18],[22,18],[23,18],[3,18],[4,18],[24,18],[28,18],[25,18],[26,18],[27,18],[29,18],[30,18],[31,18],[5,18],[32,18],[33,18],[34,18],[35,18],[6,18],[39,18],[36,18],[37,18],[38,18],[40,18],[7,18],[41,18],[46,18],[47,18],[42,18],[43,18],[44,18],[45,18],[8,18],[51,18],[48,18],[49,18],[50,18],[52,18],[9,18],[53,18],[62,18],[54,18],[55,18],[58,18],[56,18],[57,18],[1,18],[59,18],[13,18],[12,18],[69,18],[65,18],[91,53],[98,54],[90,53],[105,55],[82,56],[81,57],[104,58],[99,59],[102,60],[84,61],[83,62],[79,63],[78,64],[101,65],[80,66],[85,67],[86,18],[89,67],[76,18],[107,68],[106,67],[93,69],[94,70],[96,71],[92,72],[95,73],[100,58],[87,74],[88,75],[97,76],[77,77],[103,78],[72,79],[70,80],[73,81],[71,82]],"exportedModulesMap":[[74,1],[75,1],[109,2],[110,3],[111,4],[112,5],[113,6],[114,7],[115,8],[116,9],[117,10],[118,11],[119,11],[121,12],[120,13],[122,14],[123,15],[124,16],[108,17],[158,18],[125,19],[126,20],[127,21],[159,22],[128,23],[129,24],[130,25],[131,26],[132,27],[133,28],[134,29],[135,30],[136,31],[137,32],[138,32],[139,33],[140,34],[142,35],[141,36],[143,37],[144,38],[145,39],[146,40],[147,41],[148,42],[149,43],[150,44],[151,45],[152,46],[153,47],[154,48],[155,49],[156,50],[157,51],[66,18],[68,52],[67,52],[64,18],[63,18],[60,18],[61,18],[10,18],[11,18],[15,18],[14,18],[2,18],[16,18],[17,18],[18,18],[19,18],[20,18],[21,18],[22,18],[23,18],[3,18],[4,18],[24,18],[28,18],[25,18],[26,18],[27,18],[29,18],[30,18],[31,18],[5,18],[32,18],[33,18],[34,18],[35,18],[6,18],[39,18],[36,18],[37,18],[38,18],[40,18],[7,18],[41,18],[46,18],[47,18],[42,18],[43,18],[44,18],[45,18],[8,18],[51,18],[48,18],[49,18],[50,18],[52,18],[9,18],[53,18],[62,18],[54,18],[55,18],[58,18],[56,18],[57,18],[1,18],[59,18],[13,18],[12,18],[69,18],[65,18],[91,53],[98,54],[90,53],[105,55],[82,56],[81,57],[104,58],[99,59],[102,60],[84,61],[83,62],[79,63],[78,64],[101,65],[80,66],[85,67],[86,18],[89,67],[76,18],[107,68],[106,67],[93,69],[94,70],[96,71],[92,72],[95,73],[100,58],[87,74],[88,75],[97,76],[77,77],[103,78],[73,83],[71,84]],"semanticDiagnosticsPerFile":[74,75,109,110,111,112,113,114,115,116,117,118,119,121,120,122,123,124,108,158,125,126,127,159,128,129,130,131,132,133,134,135,136,137,138,139,140,142,141,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,66,68,67,64,63,60,61,10,11,15,14,2,16,17,18,19,20,21,22,23,3,4,24,28,25,26,27,29,30,31,5,32,33,34,35,6,39,36,37,38,40,7,41,46,47,42,43,44,45,8,51,48,49,50,52,9,53,62,54,55,58,56,57,1,59,13,12,69,65,91,98,90,105,82,81,104,99,102,84,83,79,78,101,80,85,86,89,76,107,106,93,94,96,92,95,100,87,88,97,77,103,72,70,73,71]},"version":"5.2.2"}
package/dist/util.d.ts CHANGED
@@ -1,8 +1,6 @@
1
1
  import { JsxFragment } from 'typescript';
2
2
  import type { Diagnostic, JsxElement, JsxOpeningElement, Node, default as TS, Type, TypeChecker } from 'typescript/lib/tsserverlibrary';
3
- /**
4
- * If the node is a JSX element or fragment
5
- */
3
+ /** If the node is a JSX element or fragment */
6
4
  export declare function isJsx(ts: typeof TS, node: TS.Node): node is JsxElement | JsxFragment;
7
5
  export declare function recursiveDiagnoseJsxElements(ts: typeof TS, node: Node, typeChecker: TypeChecker, original: Diagnostic[]): void;
8
6
  export declare function diagnoseJsxElement(ts: typeof TS, node: JsxElement | JsxFragment, typeChecker: TypeChecker, diagnostics: Diagnostic[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,IAAI,EACJ,OAAO,IAAI,EAAE,EACb,IAAI,EACJ,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAMxC;;GAEG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,IAAI,UAAU,GAAG,WAAW,CAIpF;AAED,wBAAgB,4BAA4B,CAC1C,EAAE,EAAE,OAAO,EAAE,EACb,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,UAAU,EAAE,QAYvB;AAED,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,OAAO,EAAE,EACb,IAAI,EAAE,UAAU,GAAG,WAAW,EAC9B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,UAAU,EAAE,GACxB,IAAI,CAoIN;AAED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,OAAO,EAAE,EACb,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,UAAU,EAAE,IAAI,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAyET;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,mCAQ1D;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAUvD"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,IAAI,EACJ,OAAO,IAAI,EAAE,EACb,IAAI,EACJ,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAMxC,+CAA+C;AAC/C,wBAAgB,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,IAAI,UAAU,GAAG,WAAW,CAEpF;AAED,wBAAgB,4BAA4B,CAC1C,EAAE,EAAE,OAAO,EAAE,EACb,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,UAAU,EAAE,QAYvB;AAmBD,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,OAAO,EAAE,EACb,IAAI,EAAE,UAAU,GAAG,WAAW,EAC9B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,UAAU,EAAE,GACxB,IAAI,CAkFN;AA0ED,wBAAgB,eAAe,CAC7B,EAAE,EAAE,OAAO,EAAE,EACb,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,UAAU,EAAE,IAAI,EAChB,OAAO,EAAE,WAAW,GACnB,OAAO,CAyET;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,mCAQ1D;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAUvD"}
package/dist/util.js CHANGED
@@ -2,14 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.proxyObject = exports.getSafeAttribute = exports.isSafeAttribute = exports.diagnoseJsxElement = exports.recursiveDiagnoseJsxElements = exports.isJsx = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const typescript_1 = tslib_1.__importDefault(require("typescript"));
5
6
  const Errors = tslib_1.__importStar(require("./errors"));
6
7
  const UPPERCASE = /[A-Z]/;
7
8
  const ESCAPE_HTML_REGEX = /^(\w+\.)?escapeHtml/i;
8
- /**
9
- * If the node is a JSX element or fragment
10
- */
9
+ /** If the node is a JSX element or fragment */
11
10
  function isJsx(ts, node) {
12
- return (node.kind === ts.SyntaxKind.JsxElement || node.kind === ts.SyntaxKind.JsxFragment);
11
+ return ts.isJsxElement(node) || ts.isJsxFragment(node);
13
12
  }
14
13
  exports.isJsx = isJsx;
15
14
  function recursiveDiagnoseJsxElements(ts, node, typeChecker, original) {
@@ -24,64 +23,61 @@ function recursiveDiagnoseJsxElements(ts, node, typeChecker, original) {
24
23
  });
25
24
  }
26
25
  exports.recursiveDiagnoseJsxElements = recursiveDiagnoseJsxElements;
26
+ function diagnostic(node, error, category) {
27
+ console.trace('diagnostic', node.getText(), error, category);
28
+ return {
29
+ category: typescript_1.default.DiagnosticCategory[category],
30
+ messageText: Errors[error].message,
31
+ code: Errors[error].code,
32
+ file: node.getSourceFile(),
33
+ length: node.getWidth(),
34
+ start: node.getStart()
35
+ };
36
+ }
27
37
  function diagnoseJsxElement(ts, node, typeChecker, diagnostics) {
28
38
  const file = node.getSourceFile();
29
- const safeAttribute = ts.isJsxElement(node) && getSafeAttribute(node.openingElement);
30
- // Safe mode warnings
31
- if (safeAttribute) {
32
- if (
33
- // Empty element
34
- node.children.length === 0 ||
35
- // Only text elements
36
- (node.children.length === 1 && node.children[0].kind === ts.SyntaxKind.JsxText)) {
37
- diagnostics.push({
38
- category: ts.DiagnosticCategory.Warning,
39
- code: Errors.UnusedSafe.code,
40
- file,
41
- length: safeAttribute.end - safeAttribute.pos - 1,
42
- messageText: Errors.UnusedSafe.message,
43
- start: safeAttribute.pos + 1
44
- });
39
+ // Validations that does not applies to fragments
40
+ if (ts.isJsxElement(node)) {
41
+ // Script tags should be ignored
42
+ if (node.openingElement.tagName.getText() === 'script') {
45
43
  return;
46
44
  }
47
- for (const exp of node.children) {
45
+ const safeAttribute = getSafeAttribute(node.openingElement);
46
+ // Safe mode warnings
47
+ if (safeAttribute) {
48
48
  if (
49
- // JSX Element inside safe
50
- ts.isJsxElement(exp) ||
51
- // Element is using safe with escapeHtml
52
- (ts.isJsxExpression(exp) && exp.expression?.getText().match(ESCAPE_HTML_REGEX))) {
53
- diagnostics.push({
54
- category: ts.DiagnosticCategory.Error,
55
- code: Errors.DoubleEscape.code,
56
- file,
57
- length: exp.end - exp.pos,
58
- messageText: Errors.DoubleEscape.message,
59
- start: exp.pos
60
- });
61
- continue;
49
+ // Empty element
50
+ node.children.length === 0 ||
51
+ // Only text elements
52
+ (node.children.length === 1 && node.children[0].kind === ts.SyntaxKind.JsxText)) {
53
+ diagnostics.push(diagnostic(safeAttribute, 'UnusedSafe', 'Warning'));
54
+ return;
62
55
  }
63
- // Warn on unnecessary safe attributes
64
- if (ts.isJsxExpression(exp) &&
65
- // has inner expression
66
- exp.expression &&
67
- // is expression safe
68
- isSafeAttribute(ts, typeChecker.getTypeAtLocation(exp.expression), exp.expression, typeChecker) &&
69
- // does not starts with unsafe
70
- !exp.expression.getText().startsWith('unsafe') &&
71
- // Avoids double warnings
72
- !diagnostics.some((d) => d.start === safeAttribute.pos + 1 && d.file === file)) {
73
- diagnostics.push({
74
- category: ts.DiagnosticCategory.Warning,
75
- code: Errors.UnusedSafe.code,
76
- file,
77
- length: safeAttribute.end - safeAttribute.pos - 1,
78
- messageText: Errors.UnusedSafe.message,
79
- start: safeAttribute.pos + 1
80
- });
81
- continue;
56
+ for (const exp of node.children) {
57
+ if (
58
+ // JSX Element inside safe
59
+ ts.isJsxElement(exp) ||
60
+ // Element is using safe with escapeHtml
61
+ (ts.isJsxExpression(exp) && exp.expression?.getText().match(ESCAPE_HTML_REGEX))) {
62
+ diagnostics.push(diagnostic(safeAttribute, 'DoubleEscape', 'Error'));
63
+ continue;
64
+ }
65
+ // Warn on unnecessary safe attributes
66
+ if (ts.isJsxExpression(exp) &&
67
+ // has inner expression
68
+ exp.expression &&
69
+ // is expression safe
70
+ isSafeAttribute(ts, typeChecker.getTypeAtLocation(exp.expression), exp.expression, typeChecker) &&
71
+ // does not starts with unsafe
72
+ !exp.expression.getText().startsWith('unsafe') &&
73
+ // Avoids double warnings
74
+ !diagnostics.some((d) => d.start === safeAttribute.pos + 1 && d.file === file)) {
75
+ diagnostics.push(diagnostic(safeAttribute, 'UnusedSafe', 'Warning'));
76
+ continue;
77
+ }
82
78
  }
79
+ return;
83
80
  }
84
- return;
85
81
  }
86
82
  // Look for expressions
87
83
  for (const exp of node.children) {
@@ -92,43 +88,61 @@ function diagnoseJsxElement(ts, node, typeChecker, diagnostics) {
92
88
  if (!exp.expression) {
93
89
  continue;
94
90
  }
95
- const type = typeChecker.getTypeAtLocation(exp.expression);
96
- // Safe can be ignored
97
- if (isSafeAttribute(ts, type, exp.expression, typeChecker)) {
98
- continue;
99
- }
100
- // Arrays should be handled by the recursive function
101
- if (typeChecker.isArrayLikeType(type)) {
102
- let hasInnerJsx = false;
103
- ts.forEachChild(exp.expression, function loopSourceNodes(node) {
104
- // Check first to early exit
105
- if (isJsx(ts, node)) {
106
- hasInnerJsx = true;
107
- return;
108
- }
109
- ts.forEachChild(node, loopSourceNodes);
110
- });
111
- // Skips diagnostics if there is an inner JSX element
112
- if (hasInnerJsx) {
91
+ diagnoseExpression(ts, exp.expression, typeChecker, diagnostics, ts.isJsxElement(node) && !!node.openingElement.tagName.getText().match(UPPERCASE));
92
+ }
93
+ return;
94
+ }
95
+ exports.diagnoseJsxElement = diagnoseJsxElement;
96
+ function diagnoseExpression(ts, node, typeChecker, diagnostics, isComponent) {
97
+ // Unwrap parenthesis
98
+ if (ts.isParenthesizedExpression(node)) {
99
+ node = node.expression;
100
+ }
101
+ // Ignores JSX elements as they are already diagnosed by the loopChildNodes
102
+ if (isJsx(ts, node)) {
103
+ return;
104
+ }
105
+ // Checks both sides
106
+ if (ts.isBinaryExpression(node)) {
107
+ diagnoseExpression(ts, node.left, typeChecker, diagnostics, isComponent);
108
+ diagnoseExpression(ts, node.right, typeChecker, diagnostics, isComponent);
109
+ return;
110
+ }
111
+ // Checks the inner expression
112
+ if (ts.isConditionalExpression(node)) {
113
+ diagnoseExpression(ts, node.whenTrue, typeChecker, diagnostics, isComponent);
114
+ diagnoseExpression(ts, node.whenFalse, typeChecker, diagnostics, isComponent);
115
+ return;
116
+ }
117
+ const type = typeChecker.getTypeAtLocation(node);
118
+ // Safe can be ignored
119
+ if (isSafeAttribute(ts, type, node, typeChecker)) {
120
+ return;
121
+ }
122
+ // Anything other than a identifier should be diagnosed
123
+ if (!ts.isIdentifier(node)) {
124
+ let hadJsx = false;
125
+ for (const tag of node.getChildren()) {
126
+ if (!isJsx(ts, tag)) {
113
127
  continue;
114
128
  }
129
+ hadJsx = true;
130
+ diagnoseJsxElement(ts, tag, typeChecker, diagnostics);
131
+ }
132
+ // If root JSX element found inside array, diagnose it,
133
+ // otherwise let the diagnostic pass
134
+ if (hadJsx) {
135
+ return;
115
136
  }
116
- // Switch between component and element xss errors
117
- const error = ts.isJsxFragment(node) || node.openingElement.tagName.getText().match(UPPERCASE)
118
- ? Errors.ComponentXss
119
- : Errors.Xss;
120
- diagnostics.push({
121
- category: ts.DiagnosticCategory.Error,
122
- code: error.code,
123
- file,
124
- length: exp.end - exp.pos,
125
- messageText: error.message,
126
- start: exp.pos
127
- });
128
137
  }
129
- return;
138
+ // Switch between component and element xss errors
139
+ if (isComponent || ts.isJsxFragment(node)) {
140
+ diagnostics.push(diagnostic(node, 'ComponentXss', 'Error'));
141
+ }
142
+ else {
143
+ diagnostics.push(diagnostic(node, 'Xss', 'Error'));
144
+ }
130
145
  }
131
- exports.diagnoseJsxElement = diagnoseJsxElement;
132
146
  function isSafeAttribute(ts, type, expression, checker) {
133
147
  // Nothing to do if type cannot be resolved
134
148
  if (!type) {
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "@kitajs/ts-html-plugin",
3
- "version": "1.2.0",
3
+ "version": "1.3.1",
4
4
  "description": "Typescript LSP extension to catch XSS vulnerabilities.",
5
5
  "bugs": "https://github.com/kitajs/ts-html-plugin/issues",
6
- "repository": "https://github.com/kitajs/ts-html-plugin",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/kitajs/ts-html-plugin.git"
9
+ },
7
10
  "funding": "https://github.com/kitajs/ts-html-plugin?sponsor=1",
8
11
  "license": "MIT",
9
12
  "author": "arthurfiorette <npm@arthur.place>",
@@ -11,8 +14,8 @@
11
14
  "main": "dist/index.js",
12
15
  "types": "dist/index.d.ts",
13
16
  "bin": {
14
- "ts-html-plugin": "./dist/cli.js",
15
- "xss-scan": "./dist/cli.js"
17
+ "ts-html-plugin": "dist/cli.js",
18
+ "xss-scan": "dist/cli.js"
16
19
  },
17
20
  "dependencies": {
18
21
  "chalk": "^4.1.2",
@@ -20,22 +23,24 @@
20
23
  "yargs": "^17.7.2"
21
24
  },
22
25
  "devDependencies": {
23
- "@arthurfiorette/prettier-config": "^1.0.9",
24
- "@types/node": "^20.7.1",
25
- "@types/yargs": "^17.0.26",
26
- "prettier": "^3.0.3",
26
+ "@arthurfiorette/prettier-config": "^1.0.12",
27
+ "@swc-node/register": "^1.6.8",
28
+ "@swc/helpers": "^0.5.3",
29
+ "@types/node": "^20.9.0",
30
+ "@types/yargs": "^17.0.31",
31
+ "fast-defer": "^1.1.8",
32
+ "prettier": "^3.1.0",
27
33
  "self": "file:."
28
34
  },
29
35
  "peerDependencies": {
30
- "@kitajs/html": ">=3",
31
- "typescript": ">=5"
36
+ "@kitajs/html": "^3.0.8",
37
+ "typescript": "^5.2.2"
32
38
  },
33
39
  "packageManager": "pnpm@8.7.5",
34
40
  "scripts": {
35
41
  "build": "tsc -p tsconfig.build.json",
36
- "debug": "tsc -p tsconfig.build.json; xss-scan examples/debug.tsx",
37
42
  "dev": "tsc -p tsconfig.build.json --watch",
38
43
  "format": "prettier --write .",
39
- "test": "tsc --noEmit"
44
+ "test": "node --require @swc-node/register --test test/**/*.test.{ts,tsx}"
40
45
  }
41
46
  }