@vizejs/vite-plugin-musea 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/{a11y-C6xqILwZ.js → a11y-7maCHrYD.js} +164 -143
  2. package/dist/a11y-7maCHrYD.js.map +1 -0
  3. package/dist/a11y-CjpWs0s0.js +3 -0
  4. package/dist/autogen-Dx-SIBf_.js +3 -0
  5. package/dist/{autogen-ymQnARZK.js → autogen-dfLosbY_.js} +97 -85
  6. package/dist/autogen-dfLosbY_.js.map +1 -0
  7. package/dist/cli/index.d.ts +61 -0
  8. package/dist/cli/index.d.ts.map +1 -0
  9. package/dist/{cli.js → cli/index.js} +146 -138
  10. package/dist/cli/index.js.map +1 -0
  11. package/dist/gallery/assets/{cssMode-CcXMra0m.js → cssMode-Bh8Yx3kR.js} +1 -1
  12. package/dist/gallery/assets/{editor.api-DngZ07MW.js → editor.api-CmduODkO.js} +1 -1
  13. package/dist/gallery/assets/{editor.main-B7YVyVYi.js → editor.main-BGzZ6mZ7.js} +2 -2
  14. package/dist/gallery/assets/{freemarker2-VkSVdked.js → freemarker2-Cn3sOnVM.js} +1 -1
  15. package/dist/gallery/assets/{handlebars-YowBDP4W.js → handlebars-Bxtt_XDm.js} +1 -1
  16. package/dist/gallery/assets/{html-DJtSoeLQ.js → html-wxaydg4H.js} +1 -1
  17. package/dist/gallery/assets/{htmlMode-CfXIwSy5.js → htmlMode-EOxgEq0U.js} +1 -1
  18. package/dist/gallery/assets/{index-0_abCQYn.css → index-Cp7AWs0x.css} +1 -1
  19. package/dist/gallery/assets/{index-D94E3YZ4.js → index-DiHal_rf.js} +3 -3
  20. package/dist/gallery/assets/{javascript-OR93O4ZK.js → javascript-DN4Z2eWk.js} +1 -1
  21. package/dist/gallery/assets/{jsonMode-Cgol9YnW.js → jsonMode-tuRq32My.js} +1 -1
  22. package/dist/gallery/assets/{liquid-CrwTQQjB.js → liquid-D4J1rGOp.js} +1 -1
  23. package/dist/gallery/assets/{mdx-DwR18PX6.js → mdx-DxeOF6WC.js} +1 -1
  24. package/dist/gallery/assets/{monaco.contribution-CtStVxRd.js → monaco.contribution-C457czx3.js} +2 -2
  25. package/dist/gallery/assets/{python-D86nvZ4A.js → python-HLp-R9eA.js} +1 -1
  26. package/dist/gallery/assets/{razor-1784i4Ae.js → razor-2U4-SYvG.js} +1 -1
  27. package/dist/gallery/assets/{tsMode-DMkSHunc.js → tsMode-jWuA-Omz.js} +1 -1
  28. package/dist/gallery/assets/{typescript-Bu4A5btR.js → typescript-rOoZv0aH.js} +1 -1
  29. package/dist/gallery/assets/{xml-Sny7sZAt.js → xml-BfA65ILD.js} +1 -1
  30. package/dist/gallery/assets/{yaml-DKD1HvU8.js → yaml-CddGDANN.js} +1 -1
  31. package/dist/gallery/index.html +2 -2
  32. package/dist/index.css +496 -0
  33. package/dist/index.css.map +1 -0
  34. package/dist/index.d.ts +342 -24
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +925 -1320
  37. package/dist/index.js.map +1 -1
  38. package/dist/{vrt-CrjRhMVE.js → vrt-5_c9P1YY.js} +224 -184
  39. package/dist/vrt-5_c9P1YY.js.map +1 -0
  40. package/dist/{vrt-BuMkTrLK.d.ts → vrt-D6OumJUH.d.ts} +76 -260
  41. package/dist/vrt-D6OumJUH.d.ts.map +1 -0
  42. package/dist/vrt.d.ts +1 -1
  43. package/dist/vrt.js +1 -1
  44. package/package.json +7 -7
  45. package/dist/a11y-C6xqILwZ.js.map +0 -1
  46. package/dist/a11y-cQIJXM5k.d.ts +0 -61
  47. package/dist/a11y-cQIJXM5k.d.ts.map +0 -1
  48. package/dist/a11y.d.ts +0 -3
  49. package/dist/a11y.js +0 -3
  50. package/dist/autogen-D3Zjc3zI.d.ts +0 -64
  51. package/dist/autogen-D3Zjc3zI.d.ts.map +0 -1
  52. package/dist/autogen-ymQnARZK.js.map +0 -1
  53. package/dist/autogen.d.ts +0 -2
  54. package/dist/autogen.js +0 -3
  55. package/dist/cli.d.ts +0 -1
  56. package/dist/cli.js.map +0 -1
  57. package/dist/vrt-BuMkTrLK.d.ts.map +0 -1
  58. package/dist/vrt-CrjRhMVE.js.map +0 -1
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env node
2
+ //#region src/cli/index.d.ts
3
+ /**
4
+ * Musea CLI
5
+ *
6
+ * Usage:
7
+ * musea-vrt [command] [options]
8
+ *
9
+ * Commands:
10
+ * (default) Run VRT tests
11
+ * approve [pat] Approve failed snapshots (optionally filtered by pattern)
12
+ * clean Remove orphaned snapshots
13
+ *
14
+ * Options:
15
+ * -u, --update Update baseline snapshots
16
+ * -c, --config Path to vite config (default: vite.config.ts)
17
+ * -o, --output Output directory for reports (default: .vize)
18
+ * -t, --threshold Diff threshold percentage (default: 0.1)
19
+ * --json Output JSON report instead of HTML
20
+ * --ci CI mode - exit with non-zero code on failures
21
+ * --a11y Run accessibility audits alongside VRT
22
+ * -h, --help Show help
23
+ */
24
+ /**
25
+ * Musea CLI
26
+ *
27
+ * Usage:
28
+ * musea-vrt [command] [options]
29
+ *
30
+ * Commands:
31
+ * (default) Run VRT tests
32
+ * approve [pat] Approve failed snapshots (optionally filtered by pattern)
33
+ * clean Remove orphaned snapshots
34
+ *
35
+ * Options:
36
+ * -u, --update Update baseline snapshots
37
+ * -c, --config Path to vite config (default: vite.config.ts)
38
+ * -o, --output Output directory for reports (default: .vize)
39
+ * -t, --threshold Diff threshold percentage (default: 0.1)
40
+ * --json Output JSON report instead of HTML
41
+ * --ci CI mode - exit with non-zero code on failures
42
+ * --a11y Run accessibility audits alongside VRT
43
+ * -h, --help Show help
44
+ */
45
+ type Command = "run" | "approve" | "clean" | "generate";
46
+ interface CliOptions {
47
+ command: Command;
48
+ update: boolean;
49
+ config: string;
50
+ output: string;
51
+ threshold: number;
52
+ json: boolean;
53
+ ci: boolean;
54
+ a11y: boolean;
55
+ help: boolean;
56
+ baseUrl: string;
57
+ pattern?: string;
58
+ componentPath?: string;
59
+ } //#endregion
60
+ export { CliOptions };
61
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/cli/index.ts"],"sourcesContent":null,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2BK,OAAA;AAAA,UAEY,UAAA,CAFL;EAEK,OAAA,EACN,OADgB"}
@@ -1,141 +1,10 @@
1
1
  #!/usr/bin/env node
2
- import { MuseaVrtRunner, generateVrtJsonReport, generateVrtReport } from "./vrt-CrjRhMVE.js";
3
- import path from "node:path";
2
+ import { MuseaVrtRunner, generateVrtJsonReport, generateVrtReport } from "../vrt-5_c9P1YY.js";
4
3
  import fs from "node:fs";
4
+ import path from "node:path";
5
5
 
6
- //#region src/cli.ts
7
- function parseArgs(args) {
8
- const options = {
9
- command: "run",
10
- update: false,
11
- config: "vite.config.ts",
12
- output: ".vize",
13
- threshold: .1,
14
- json: false,
15
- ci: false,
16
- a11y: false,
17
- help: false,
18
- baseUrl: "http://localhost:5173"
19
- };
20
- let i = 0;
21
- if (args.length > 0 && !args[0].startsWith("-")) {
22
- const sub = args[0];
23
- if (sub === "approve") {
24
- options.command = "approve";
25
- i = 1;
26
- if (args.length > 1 && !args[1].startsWith("-")) {
27
- options.pattern = args[1];
28
- i = 2;
29
- }
30
- } else if (sub === "clean") {
31
- options.command = "clean";
32
- i = 1;
33
- } else if (sub === "generate") {
34
- options.command = "generate";
35
- i = 1;
36
- if (args.length > 1 && !args[1].startsWith("-")) {
37
- options.componentPath = args[1];
38
- i = 2;
39
- }
40
- }
41
- }
42
- for (; i < args.length; i++) {
43
- const arg = args[i];
44
- switch (arg) {
45
- case "-u":
46
- case "--update":
47
- options.update = true;
48
- break;
49
- case "-c":
50
- case "--config":
51
- options.config = args[++i] || "vite.config.ts";
52
- break;
53
- case "-o":
54
- case "--output":
55
- options.output = args[++i] || ".vize";
56
- break;
57
- case "-t":
58
- case "--threshold":
59
- options.threshold = parseFloat(args[++i]) || .1;
60
- break;
61
- case "--json":
62
- options.json = true;
63
- break;
64
- case "--ci":
65
- options.ci = true;
66
- break;
67
- case "--a11y":
68
- options.a11y = true;
69
- break;
70
- case "-b":
71
- case "--base-url":
72
- options.baseUrl = args[++i] || "http://localhost:5173";
73
- break;
74
- case "-h":
75
- case "--help":
76
- options.help = true;
77
- break;
78
- }
79
- }
80
- return options;
81
- }
82
- function printHelp() {
83
- console.log(`
84
- Musea VRT - Visual Regression Testing for Component Gallery
85
-
86
- Usage:
87
- musea-vrt [command] [options]
88
-
89
- Commands:
90
- (default) Run VRT tests
91
- approve [pattern] Approve failed snapshots and update baselines
92
- Optional pattern filters which snapshots to approve
93
- clean Remove orphaned snapshots (no matching art/variant)
94
- generate <component> Auto-generate .art.vue from a Vue component
95
-
96
- Options:
97
- -u, --update Update baseline snapshots with current screenshots
98
- -c, --config <path> Path to vite config file (default: vite.config.ts)
99
- -o, --output <dir> Output directory for reports (default: .vize)
100
- -t, --threshold <n> Diff threshold percentage (default: 0.1)
101
- -b, --base-url <url> Base URL for dev server (default: http://localhost:5173)
102
- --json Output JSON report instead of HTML
103
- --ci CI mode - exit with non-zero code on failures
104
- --a11y Run accessibility audits alongside VRT
105
- -h, --help Show this help message
106
-
107
- Examples:
108
- # Run VRT tests
109
- musea-vrt
110
-
111
- # Update baseline snapshots
112
- musea-vrt -u
113
-
114
- # Run with custom threshold
115
- musea-vrt -t 0.5
116
-
117
- # CI mode with JSON output
118
- musea-vrt --ci --json
119
-
120
- # Run with accessibility audits
121
- musea-vrt --a11y
122
-
123
- # Approve all failed snapshots
124
- musea-vrt approve
125
-
126
- # Approve specific snapshots by pattern
127
- musea-vrt approve "Button/*"
128
-
129
- # Clean orphaned snapshots
130
- musea-vrt clean
131
-
132
- # Auto-generate .art.vue from component
133
- musea-vrt generate src/components/Button.vue
134
-
135
- # Custom base URL
136
- musea-vrt -b http://localhost:3000
137
- `);
138
- }
6
+ //#region src/cli/utils.ts
7
+ /** Recursively scan a directory for .art.vue files. */
139
8
  async function scanArtFiles(root) {
140
9
  const files = [];
141
10
  async function scan(dir) {
@@ -150,6 +19,7 @@ async function scanArtFiles(root) {
150
19
  await scan(root);
151
20
  return files;
152
21
  }
22
+ /** Parse a single .art.vue file into an ArtFileInfo structure. */
153
23
  async function parseArtFile(filePath) {
154
24
  try {
155
25
  const source = await fs.promises.readFile(filePath, "utf-8");
@@ -191,6 +61,9 @@ async function parseArtFile(filePath) {
191
61
  return null;
192
62
  }
193
63
  }
64
+
65
+ //#endregion
66
+ //#region src/cli/commands.ts
194
67
  async function runVrt(options, artFiles) {
195
68
  const totalVariants = artFiles.reduce((sum, art) => sum + art.variants.filter((v) => !v.skipVrt).length, 0);
196
69
  console.log(` Testing ${totalVariants} variant(s) across ${artFiles.length} art file(s)\n`);
@@ -222,7 +95,7 @@ async function runVrt(options, artFiles) {
222
95
  if (options.a11y) {
223
96
  console.log(" Running accessibility audits...\n");
224
97
  try {
225
- const { MuseaA11yRunner } = await import("./a11y.js");
98
+ const { MuseaA11yRunner } = await import("../a11y-CjpWs0s0.js");
226
99
  const a11yRunner = new MuseaA11yRunner();
227
100
  const a11yResults = await a11yRunner.runAudits(artFiles, options.baseUrl, runner);
228
101
  const a11ySummary = a11yRunner.getSummary(a11yResults);
@@ -332,7 +205,7 @@ async function runGenerate(options) {
332
205
  }
333
206
  console.log(` Generating art file for: ${path.relative(process.cwd(), componentPath)}\n`);
334
207
  try {
335
- const { writeArtFile } = await import("./autogen.js");
208
+ const { writeArtFile } = await import("../autogen-Dx-SIBf_.js");
336
209
  const outputPath = await writeArtFile(componentPath);
337
210
  const relOutput = path.relative(process.cwd(), outputPath);
338
211
  console.log(` Generated: ${relOutput}\n`);
@@ -341,6 +214,141 @@ async function runGenerate(options) {
341
214
  process.exit(1);
342
215
  }
343
216
  }
217
+
218
+ //#endregion
219
+ //#region src/cli/index.ts
220
+ function parseArgs(args) {
221
+ const options = {
222
+ command: "run",
223
+ update: false,
224
+ config: "vite.config.ts",
225
+ output: ".vize",
226
+ threshold: .1,
227
+ json: false,
228
+ ci: false,
229
+ a11y: false,
230
+ help: false,
231
+ baseUrl: "http://localhost:5173"
232
+ };
233
+ let i = 0;
234
+ if (args.length > 0 && !args[0].startsWith("-")) {
235
+ const sub = args[0];
236
+ if (sub === "approve") {
237
+ options.command = "approve";
238
+ i = 1;
239
+ if (args.length > 1 && !args[1].startsWith("-")) {
240
+ options.pattern = args[1];
241
+ i = 2;
242
+ }
243
+ } else if (sub === "clean") {
244
+ options.command = "clean";
245
+ i = 1;
246
+ } else if (sub === "generate") {
247
+ options.command = "generate";
248
+ i = 1;
249
+ if (args.length > 1 && !args[1].startsWith("-")) {
250
+ options.componentPath = args[1];
251
+ i = 2;
252
+ }
253
+ }
254
+ }
255
+ for (; i < args.length; i++) {
256
+ const arg = args[i];
257
+ switch (arg) {
258
+ case "-u":
259
+ case "--update":
260
+ options.update = true;
261
+ break;
262
+ case "-c":
263
+ case "--config":
264
+ options.config = args[++i] || "vite.config.ts";
265
+ break;
266
+ case "-o":
267
+ case "--output":
268
+ options.output = args[++i] || ".vize";
269
+ break;
270
+ case "-t":
271
+ case "--threshold":
272
+ options.threshold = parseFloat(args[++i]) || .1;
273
+ break;
274
+ case "--json":
275
+ options.json = true;
276
+ break;
277
+ case "--ci":
278
+ options.ci = true;
279
+ break;
280
+ case "--a11y":
281
+ options.a11y = true;
282
+ break;
283
+ case "-b":
284
+ case "--base-url":
285
+ options.baseUrl = args[++i] || "http://localhost:5173";
286
+ break;
287
+ case "-h":
288
+ case "--help":
289
+ options.help = true;
290
+ break;
291
+ }
292
+ }
293
+ return options;
294
+ }
295
+ function printHelp() {
296
+ console.log(`
297
+ Musea VRT - Visual Regression Testing for Component Gallery
298
+
299
+ Usage:
300
+ musea-vrt [command] [options]
301
+
302
+ Commands:
303
+ (default) Run VRT tests
304
+ approve [pattern] Approve failed snapshots and update baselines
305
+ Optional pattern filters which snapshots to approve
306
+ clean Remove orphaned snapshots (no matching art/variant)
307
+ generate <component> Auto-generate .art.vue from a Vue component
308
+
309
+ Options:
310
+ -u, --update Update baseline snapshots with current screenshots
311
+ -c, --config <path> Path to vite config file (default: vite.config.ts)
312
+ -o, --output <dir> Output directory for reports (default: .vize)
313
+ -t, --threshold <n> Diff threshold percentage (default: 0.1)
314
+ -b, --base-url <url> Base URL for dev server (default: http://localhost:5173)
315
+ --json Output JSON report instead of HTML
316
+ --ci CI mode - exit with non-zero code on failures
317
+ --a11y Run accessibility audits alongside VRT
318
+ -h, --help Show this help message
319
+
320
+ Examples:
321
+ # Run VRT tests
322
+ musea-vrt
323
+
324
+ # Update baseline snapshots
325
+ musea-vrt -u
326
+
327
+ # Run with custom threshold
328
+ musea-vrt -t 0.5
329
+
330
+ # CI mode with JSON output
331
+ musea-vrt --ci --json
332
+
333
+ # Run with accessibility audits
334
+ musea-vrt --a11y
335
+
336
+ # Approve all failed snapshots
337
+ musea-vrt approve
338
+
339
+ # Approve specific snapshots by pattern
340
+ musea-vrt approve "Button/*"
341
+
342
+ # Clean orphaned snapshots
343
+ musea-vrt clean
344
+
345
+ # Auto-generate .art.vue from component
346
+ musea-vrt generate src/components/Button.vue
347
+
348
+ # Custom base URL
349
+ musea-vrt -b http://localhost:3000
350
+ `);
351
+ }
344
352
  async function main() {
345
353
  const args = process.argv.slice(2);
346
354
  const options = parseArgs(args);
@@ -396,4 +404,4 @@ main().catch((error) => {
396
404
  });
397
405
 
398
406
  //#endregion
399
- //# sourceMappingURL=cli.js.map
407
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["root: string","files: string[]","dir: string","filePath: string","variants: ArtFileInfo[\"variants\"]","options: CliOptions","artFiles: ArtFileInfo[]","vrtOptions: VrtOptions","reportDir","args: string[]","options: CliOptions","artFiles: ArtFileInfo[]"],"sources":["../../src/cli/utils.ts","../../src/cli/commands.ts","../../src/cli/index.ts"],"sourcesContent":["/**\n * CLI utility functions for art file scanning and parsing.\n *\n * Extracted from cli.ts to keep file sizes manageable.\n */\n\nimport fs from \"node:fs\";\nimport path from \"node:path\";\n\nimport type { ArtFileInfo } from \"../types/index.js\";\n\n/** Recursively scan a directory for .art.vue files. */\nexport async function scanArtFiles(root: string): Promise<string[]> {\n const files: string[] = [];\n\n async function scan(dir: string): Promise<void> {\n const entries = await fs.promises.readdir(dir, { withFileTypes: true });\n\n for (const entry of entries) {\n const fullPath = path.join(dir, entry.name);\n\n // Skip node_modules and dist\n if (entry.name === \"node_modules\" || entry.name === \"dist\") {\n continue;\n }\n\n if (entry.isDirectory()) {\n await scan(fullPath);\n } else if (entry.isFile() && entry.name.endsWith(\".art.vue\")) {\n files.push(fullPath);\n }\n }\n }\n\n await scan(root);\n return files;\n}\n\n/** Parse a single .art.vue file into an ArtFileInfo structure. */\nexport async function parseArtFile(filePath: string): Promise<ArtFileInfo | null> {\n try {\n const source = await fs.promises.readFile(filePath, \"utf-8\");\n\n // Simple parsing - in production, use @vizejs/native\n const titleMatch = source.match(/<art[^>]*\\stitle=[\"']([^\"']+)[\"']/);\n const componentMatch = source.match(/<art[^>]*\\scomponent=[\"']([^\"']+)[\"']/);\n const categoryMatch = source.match(/<art[^>]*\\scategory=[\"']([^\"']+)[\"']/);\n\n const variants: ArtFileInfo[\"variants\"] = [];\n const variantRegex = /<variant\\s+([^>]*)>([\\s\\S]*?)<\\/variant>/g;\n let match;\n\n while ((match = variantRegex.exec(source)) !== null) {\n const attrs = match[1];\n const template = match[2].trim();\n\n const nameMatch = attrs.match(/name=[\"']([^\"']+)[\"']/);\n const isDefault = /\\bdefault\\b/.test(attrs);\n const skipVrt = /\\bskip-vrt\\b/.test(attrs);\n\n if (nameMatch) {\n variants.push({\n name: nameMatch[1],\n template,\n isDefault,\n skipVrt,\n });\n }\n }\n\n return {\n path: filePath,\n metadata: {\n title: titleMatch?.[1] || path.basename(filePath, \".art.vue\"),\n component: componentMatch?.[1],\n category: categoryMatch?.[1],\n tags: [],\n status: \"ready\",\n },\n variants,\n hasScriptSetup: /<script\\s+setup/.test(source),\n hasScript: /<script(?!\\s+setup)/.test(source),\n styleCount: (source.match(/<style/g) || []).length,\n };\n } catch (error) {\n console.error(`Failed to parse ${filePath}:`, error);\n return null;\n }\n}\n","/**\n * CLI command handlers for the Musea VRT tool.\n *\n * Extracted from cli.ts to keep file sizes manageable.\n * Contains the runVrt, runApprove, runClean, and runGenerate command implementations.\n */\n\nimport fs from \"node:fs\";\nimport path from \"node:path\";\n\nimport { MuseaVrtRunner, generateVrtReport, generateVrtJsonReport } from \"../vrt.js\";\nimport type { ArtFileInfo, VrtOptions } from \"../types/index.js\";\n\nimport type { CliOptions } from \"./index.js\";\n\nexport async function runVrt(options: CliOptions, artFiles: ArtFileInfo[]): Promise<void> {\n const totalVariants = artFiles.reduce(\n (sum, art) => sum + art.variants.filter((v) => !v.skipVrt).length,\n 0,\n );\n\n console.log(` Testing ${totalVariants} variant(s) across ${artFiles.length} art file(s)\\n`);\n\n // Initialize VRT runner\n const vrtOptions: VrtOptions = {\n snapshotDir: path.join(options.output, \"snapshots\"),\n threshold: options.threshold,\n };\n\n const runner = new MuseaVrtRunner({\n ...vrtOptions,\n ci: options.ci ? { failOnDiff: true, jsonReport: options.json } : undefined,\n });\n\n try {\n console.log(\" Launching browser...\");\n await runner.init();\n\n console.log(\" Running visual regression tests...\\n\");\n\n // Run tests\n const results = await runner.runAllTests(artFiles, options.baseUrl);\n const summary = runner.getSummary(results);\n\n // Print results\n console.log(\" Results:\");\n console.log(\" ---------\");\n console.log(` Passed: ${summary.passed}`);\n console.log(` Failed: ${summary.failed}`);\n console.log(` New: ${summary.new}`);\n console.log(` Skipped: ${summary.skipped}`);\n console.log(` Total: ${summary.total}`);\n console.log(` Duration: ${(summary.duration / 1000).toFixed(2)}s\\n`);\n\n // Run a11y audits if requested\n if (options.a11y) {\n console.log(\" Running accessibility audits...\\n\");\n try {\n const { MuseaA11yRunner } = await import(\"../a11y/index.js\");\n const a11yRunner = new MuseaA11yRunner();\n const a11yResults = await a11yRunner.runAudits(artFiles, options.baseUrl, runner);\n const a11ySummary = a11yRunner.getSummary(a11yResults);\n\n console.log(\" A11y Results:\");\n console.log(\" -------------\");\n console.log(` Components: ${a11ySummary.totalComponents}`);\n console.log(` Variants: ${a11ySummary.totalVariants}`);\n console.log(` Violations: ${a11ySummary.totalViolations}`);\n console.log(` Critical: ${a11ySummary.criticalCount}`);\n console.log(` Serious: ${a11ySummary.seriousCount}\\n`);\n\n // Generate a11y report\n const reportDir = options.output;\n await fs.promises.mkdir(reportDir, { recursive: true });\n\n if (options.json) {\n const a11yJson = a11yRunner.generateJsonReport(a11yResults);\n const a11yPath = path.join(reportDir, \"a11y-report.json\");\n await fs.promises.writeFile(a11yPath, a11yJson);\n console.log(` A11y JSON report: ${a11yPath}\\n`);\n } else {\n const a11yHtml = a11yRunner.generateHtmlReport(a11yResults);\n const a11yPath = path.join(reportDir, \"a11y-report.html\");\n await fs.promises.writeFile(a11yPath, a11yHtml);\n console.log(` A11y HTML report: ${a11yPath}\\n`);\n }\n\n // CI mode - exit with error on critical/serious violations\n if (options.ci && (a11ySummary.criticalCount > 0 || a11ySummary.seriousCount > 0)) {\n console.log(\" CI mode: Accessibility violations found\\n\");\n process.exit(1);\n }\n } catch (e) {\n console.warn(\" A11y audits skipped:\", e instanceof Error ? e.message : String(e));\n console.warn(\" Make sure axe-core is installed: npm install axe-core\\n\");\n }\n }\n\n // Update baselines if requested\n if (options.update) {\n console.log(\" Updating baselines...\");\n const updated = await runner.updateBaselines(results);\n console.log(` Updated ${updated} baseline(s)\\n`);\n }\n\n // Generate VRT report\n const reportDir = options.output;\n await fs.promises.mkdir(reportDir, { recursive: true });\n\n if (options.json) {\n const jsonReport = generateVrtJsonReport(results, summary);\n const jsonPath = path.join(reportDir, \"vrt-report.json\");\n await fs.promises.writeFile(jsonPath, jsonReport);\n console.log(` JSON report: ${jsonPath}\\n`);\n } else {\n const htmlReport = generateVrtReport(results, summary);\n const htmlPath = path.join(reportDir, \"vrt-report.html\");\n await fs.promises.writeFile(htmlPath, htmlReport);\n console.log(` HTML report: ${htmlPath}\\n`);\n }\n\n // CI mode - exit with error if failures\n if (options.ci && summary.failed > 0) {\n console.log(\" CI mode: Exiting with error due to failures\\n\");\n process.exit(1);\n }\n } finally {\n await runner.close();\n }\n}\n\nexport async function runApprove(options: CliOptions, artFiles: ArtFileInfo[]): Promise<void> {\n const vrtOptions: VrtOptions = {\n snapshotDir: path.join(options.output, \"snapshots\"),\n threshold: options.threshold,\n };\n\n const runner = new MuseaVrtRunner(vrtOptions);\n\n try {\n console.log(\" Launching browser...\");\n await runner.init();\n\n console.log(\" Running tests to find diffs...\\n\");\n\n const results = await runner.runAllTests(artFiles, options.baseUrl);\n const failed = results.filter((r) => !r.passed && !r.error);\n\n if (failed.length === 0) {\n console.log(\" No failed tests to approve.\\n\");\n return;\n }\n\n const pattern = options.pattern;\n if (pattern) {\n console.log(` Approving snapshots matching: ${pattern}\\n`);\n } else {\n console.log(` Approving all ${failed.length} failed snapshot(s)...\\n`);\n }\n\n const approved = await runner.approveResults(results, pattern);\n console.log(` Approved ${approved} snapshot(s)\\n`);\n } finally {\n await runner.close();\n }\n}\n\nexport async function runClean(options: CliOptions, artFiles: ArtFileInfo[]): Promise<void> {\n const vrtOptions: VrtOptions = {\n snapshotDir: path.join(options.output, \"snapshots\"),\n threshold: options.threshold,\n };\n\n const runner = new MuseaVrtRunner(vrtOptions);\n\n console.log(\" Scanning for orphaned snapshots...\\n\");\n\n const cleaned = await runner.cleanOrphans(artFiles);\n\n if (cleaned === 0) {\n console.log(\" No orphaned snapshots found.\\n\");\n } else {\n console.log(`\\n Cleaned ${cleaned} orphaned snapshot(s)\\n`);\n }\n}\n\nexport async function runGenerate(options: CliOptions): Promise<void> {\n if (!options.componentPath) {\n console.error(\" Error: Missing component path.\");\n console.error(\" Usage: musea-vrt generate <component.vue>\\n\");\n process.exit(1);\n }\n\n const componentPath = path.resolve(options.componentPath);\n\n // Check file exists\n try {\n await fs.promises.access(componentPath);\n } catch {\n console.error(` Error: File not found: ${componentPath}\\n`);\n process.exit(1);\n }\n\n console.log(` Generating art file for: ${path.relative(process.cwd(), componentPath)}\\n`);\n\n try {\n const { writeArtFile } = await import(\"../autogen/index.js\");\n const outputPath = await writeArtFile(componentPath);\n const relOutput = path.relative(process.cwd(), outputPath);\n\n console.log(` Generated: ${relOutput}\\n`);\n } catch (e) {\n console.error(\" Generation failed:\", e instanceof Error ? e.message : String(e));\n process.exit(1);\n }\n}\n","#!/usr/bin/env node\n/**\n * Musea CLI\n *\n * Usage:\n * musea-vrt [command] [options]\n *\n * Commands:\n * (default) Run VRT tests\n * approve [pat] Approve failed snapshots (optionally filtered by pattern)\n * clean Remove orphaned snapshots\n *\n * Options:\n * -u, --update Update baseline snapshots\n * -c, --config Path to vite config (default: vite.config.ts)\n * -o, --output Output directory for reports (default: .vize)\n * -t, --threshold Diff threshold percentage (default: 0.1)\n * --json Output JSON report instead of HTML\n * --ci CI mode - exit with non-zero code on failures\n * --a11y Run accessibility audits alongside VRT\n * -h, --help Show help\n */\n\nimport type { ArtFileInfo } from \"../types/index.js\";\nimport { scanArtFiles, parseArtFile } from \"./utils.js\";\nimport { runVrt, runApprove, runClean, runGenerate } from \"./commands.js\";\n\ntype Command = \"run\" | \"approve\" | \"clean\" | \"generate\";\n\nexport interface CliOptions {\n command: Command;\n update: boolean;\n config: string;\n output: string;\n threshold: number;\n json: boolean;\n ci: boolean;\n a11y: boolean;\n help: boolean;\n baseUrl: string;\n pattern?: string;\n componentPath?: string;\n}\n\nfunction parseArgs(args: string[]): CliOptions {\n const options: CliOptions = {\n command: \"run\",\n update: false,\n config: \"vite.config.ts\",\n output: \".vize\",\n threshold: 0.1,\n json: false,\n ci: false,\n a11y: false,\n help: false,\n baseUrl: \"http://localhost:5173\",\n };\n\n let i = 0;\n\n // Check for subcommand as first arg\n if (args.length > 0 && !args[0].startsWith(\"-\")) {\n const sub = args[0];\n if (sub === \"approve\") {\n options.command = \"approve\";\n i = 1;\n // Optional pattern argument after approve\n if (args.length > 1 && !args[1].startsWith(\"-\")) {\n options.pattern = args[1];\n i = 2;\n }\n } else if (sub === \"clean\") {\n options.command = \"clean\";\n i = 1;\n } else if (sub === \"generate\") {\n options.command = \"generate\";\n i = 1;\n // Required component path argument\n if (args.length > 1 && !args[1].startsWith(\"-\")) {\n options.componentPath = args[1];\n i = 2;\n }\n }\n }\n\n for (; i < args.length; i++) {\n const arg = args[i];\n switch (arg) {\n case \"-u\":\n case \"--update\":\n options.update = true;\n break;\n case \"-c\":\n case \"--config\":\n options.config = args[++i] || \"vite.config.ts\";\n break;\n case \"-o\":\n case \"--output\":\n options.output = args[++i] || \".vize\";\n break;\n case \"-t\":\n case \"--threshold\":\n options.threshold = parseFloat(args[++i]) || 0.1;\n break;\n case \"--json\":\n options.json = true;\n break;\n case \"--ci\":\n options.ci = true;\n break;\n case \"--a11y\":\n options.a11y = true;\n break;\n case \"-b\":\n case \"--base-url\":\n options.baseUrl = args[++i] || \"http://localhost:5173\";\n break;\n case \"-h\":\n case \"--help\":\n options.help = true;\n break;\n }\n }\n\n return options;\n}\n\nfunction printHelp(): void {\n console.log(`\nMusea VRT - Visual Regression Testing for Component Gallery\n\nUsage:\n musea-vrt [command] [options]\n\nCommands:\n (default) Run VRT tests\n approve [pattern] Approve failed snapshots and update baselines\n Optional pattern filters which snapshots to approve\n clean Remove orphaned snapshots (no matching art/variant)\n generate <component> Auto-generate .art.vue from a Vue component\n\nOptions:\n -u, --update Update baseline snapshots with current screenshots\n -c, --config <path> Path to vite config file (default: vite.config.ts)\n -o, --output <dir> Output directory for reports (default: .vize)\n -t, --threshold <n> Diff threshold percentage (default: 0.1)\n -b, --base-url <url> Base URL for dev server (default: http://localhost:5173)\n --json Output JSON report instead of HTML\n --ci CI mode - exit with non-zero code on failures\n --a11y Run accessibility audits alongside VRT\n -h, --help Show this help message\n\nExamples:\n # Run VRT tests\n musea-vrt\n\n # Update baseline snapshots\n musea-vrt -u\n\n # Run with custom threshold\n musea-vrt -t 0.5\n\n # CI mode with JSON output\n musea-vrt --ci --json\n\n # Run with accessibility audits\n musea-vrt --a11y\n\n # Approve all failed snapshots\n musea-vrt approve\n\n # Approve specific snapshots by pattern\n musea-vrt approve \"Button/*\"\n\n # Clean orphaned snapshots\n musea-vrt clean\n\n # Auto-generate .art.vue from component\n musea-vrt generate src/components/Button.vue\n\n # Custom base URL\n musea-vrt -b http://localhost:3000\n`);\n}\n\nasync function main(): Promise<void> {\n const args = process.argv.slice(2);\n const options = parseArgs(args);\n\n if (options.help) {\n printHelp();\n process.exit(0);\n }\n\n const cwd = process.cwd();\n\n console.log(\"\\n Musea VRT\");\n console.log(\" =========\\n\");\n\n // Handle generate command early (doesn't need art file scanning)\n if (options.command === \"generate\") {\n try {\n await runGenerate(options);\n } catch (error) {\n console.error(\"\\n Error:\", error);\n process.exit(1);\n }\n return;\n }\n\n // Scan for art files\n console.log(\" Scanning for art files...\");\n const artFilePaths = await scanArtFiles(cwd);\n\n if (artFilePaths.length === 0) {\n console.log(\" No art files found.\\n\");\n process.exit(0);\n }\n\n console.log(` Found ${artFilePaths.length} art file(s)\\n`);\n\n // Parse art files\n const artFiles: ArtFileInfo[] = [];\n for (const filePath of artFilePaths) {\n const art = await parseArtFile(filePath);\n if (art) {\n artFiles.push(art);\n }\n }\n\n try {\n switch (options.command) {\n case \"run\":\n await runVrt(options, artFiles);\n break;\n case \"approve\":\n await runApprove(options, artFiles);\n break;\n case \"clean\":\n await runClean(options, artFiles);\n break;\n case \"generate\":\n // Handled above before art file scanning\n break;\n }\n } catch (error) {\n console.error(\"\\n Error:\", error);\n process.exit(1);\n }\n}\n\nmain().catch((error) => {\n console.error(\"Fatal error:\", error);\n process.exit(1);\n});\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{m as e}from"./editor.api-DngZ07MW.js";var t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,a=(e,a,o,s)=>{if(a&&typeof a==`object`||typeof a==`function`)for(let c of r(a))!i.call(e,c)&&c!==o&&t(e,c,{get:()=>a[c],enumerable:!(s=n(a,c))||s.enumerable});return e},o=(e,t,n)=>(a(e,t,`default`),n&&a(n,t,`default`)),s={};o(s,e);var c=120*1e3,l=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){this._worker&&Date.now()-this._lastUsedTime>c&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||=(this._worker=s.editor.createWebWorker({moduleId:`vs/language/css/cssWorker`,label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(e=>{t=e}).then(t=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(e=>t)}},u;(function(e){function t(e){return typeof e==`string`}e.is=t})(u||={});var d;(function(e){function t(e){return typeof e==`string`}e.is=t})(d||={});var f;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(t){return typeof t==`number`&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}e.is=t})(f||={});var p;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(t){return typeof t==`number`&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}e.is=t})(p||={});var m;(function(e){function t(e,t){return e===Number.MAX_VALUE&&(e=p.MAX_VALUE),t===Number.MAX_VALUE&&(t=p.MAX_VALUE),{line:e,character:t}}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&V.uinteger(t.line)&&V.uinteger(t.character)}e.is=n})(m||={});var h;(function(e){function t(e,t,n,r){if(V.uinteger(e)&&V.uinteger(t)&&V.uinteger(n)&&V.uinteger(r))return{start:m.create(e,t),end:m.create(n,r)};if(m.is(e)&&m.is(t))return{start:e,end:t};throw Error(`Range#create called with invalid arguments[${e}, ${t}, ${n}, ${r}]`)}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&m.is(t.start)&&m.is(t.end)}e.is=n})(h||={});var g;(function(e){function t(e,t){return{uri:e,range:t}}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&h.is(t.range)&&(V.string(t.uri)||V.undefined(t.uri))}e.is=n})(g||={});var ee;(function(e){function t(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&h.is(t.targetRange)&&V.string(t.targetUri)&&h.is(t.targetSelectionRange)&&(h.is(t.originSelectionRange)||V.undefined(t.originSelectionRange))}e.is=n})(ee||={});var _;(function(e){function t(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&V.numberRange(t.red,0,1)&&V.numberRange(t.green,0,1)&&V.numberRange(t.blue,0,1)&&V.numberRange(t.alpha,0,1)}e.is=n})(_||={});var te;(function(e){function t(e,t){return{range:e,color:t}}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&h.is(t.range)&&_.is(t.color)}e.is=n})(te||={});var ne;(function(e){function t(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&V.string(t.label)&&(V.undefined(t.textEdit)||C.is(t))&&(V.undefined(t.additionalTextEdits)||V.typedArray(t.additionalTextEdits,C.is))}e.is=n})(ne||={});var v;(function(e){e.Comment=`comment`,e.Imports=`imports`,e.Region=`region`})(v||={});var re;(function(e){function t(e,t,n,r,i,a){let o={startLine:e,endLine:t};return V.defined(n)&&(o.startCharacter=n),V.defined(r)&&(o.endCharacter=r),V.defined(i)&&(o.kind=i),V.defined(a)&&(o.collapsedText=a),o}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&V.uinteger(t.startLine)&&V.uinteger(t.startLine)&&(V.undefined(t.startCharacter)||V.uinteger(t.startCharacter))&&(V.undefined(t.endCharacter)||V.uinteger(t.endCharacter))&&(V.undefined(t.kind)||V.string(t.kind))}e.is=n})(re||={});var y;(function(e){function t(e,t){return{location:e,message:t}}e.create=t;function n(e){let t=e;return V.defined(t)&&g.is(t.location)&&V.string(t.message)}e.is=n})(y||={});var b;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(b||={});var ie;(function(e){e.Unnecessary=1,e.Deprecated=2})(ie||={});var ae;(function(e){function t(e){let t=e;return V.objectLiteral(t)&&V.string(t.href)}e.is=t})(ae||={});var x;(function(e){function t(e,t,n,r,i,a){let o={range:e,message:t};return V.defined(n)&&(o.severity=n),V.defined(r)&&(o.code=r),V.defined(i)&&(o.source=i),V.defined(a)&&(o.relatedInformation=a),o}e.create=t;function n(e){let t=e;return V.defined(t)&&h.is(t.range)&&V.string(t.message)&&(V.number(t.severity)||V.undefined(t.severity))&&(V.integer(t.code)||V.string(t.code)||V.undefined(t.code))&&(V.undefined(t.codeDescription)||V.string(t.codeDescription?.href))&&(V.string(t.source)||V.undefined(t.source))&&(V.undefined(t.relatedInformation)||V.typedArray(t.relatedInformation,y.is))}e.is=n})(x||={});var S;(function(e){function t(e,t,...n){let r={title:e,command:t};return V.defined(n)&&n.length>0&&(r.arguments=n),r}e.create=t;function n(e){let t=e;return V.defined(t)&&V.string(t.title)&&V.string(t.command)}e.is=n})(S||={});var C;(function(e){function t(e,t){return{range:e,newText:t}}e.replace=t;function n(e,t){return{range:{start:e,end:e},newText:t}}e.insert=n;function r(e){return{range:e,newText:``}}e.del=r;function i(e){let t=e;return V.objectLiteral(t)&&V.string(t.newText)&&h.is(t.range)}e.is=i})(C||={});var w;(function(e){function t(e,t,n){let r={label:e};return t!==void 0&&(r.needsConfirmation=t),n!==void 0&&(r.description=n),r}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&V.string(t.label)&&(V.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(V.string(t.description)||t.description===void 0)}e.is=n})(w||={});var T;(function(e){function t(e){let t=e;return V.string(t)}e.is=t})(T||={});var oe;(function(e){function t(e,t,n){return{range:e,newText:t,annotationId:n}}e.replace=t;function n(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}}e.insert=n;function r(e,t){return{range:e,newText:``,annotationId:t}}e.del=r;function i(e){let t=e;return C.is(t)&&(w.is(t.annotationId)||T.is(t.annotationId))}e.is=i})(oe||={});var se;(function(e){function t(e,t){return{textDocument:e,edits:t}}e.create=t;function n(e){let t=e;return V.defined(t)&&A.is(t.textDocument)&&Array.isArray(t.edits)}e.is=n})(se||={});var E;(function(e){function t(e,t,n){let r={kind:`create`,uri:e};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(r.options=t),n!==void 0&&(r.annotationId=n),r}e.create=t;function n(e){let t=e;return t&&t.kind===`create`&&V.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||V.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||V.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||T.is(t.annotationId))}e.is=n})(E||={});var D;(function(e){function t(e,t,n,r){let i={kind:`rename`,oldUri:e,newUri:t};return n!==void 0&&(n.overwrite!==void 0||n.ignoreIfExists!==void 0)&&(i.options=n),r!==void 0&&(i.annotationId=r),i}e.create=t;function n(e){let t=e;return t&&t.kind===`rename`&&V.string(t.oldUri)&&V.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||V.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||V.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||T.is(t.annotationId))}e.is=n})(D||={});var O;(function(e){function t(e,t,n){let r={kind:`delete`,uri:e};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(r.options=t),n!==void 0&&(r.annotationId=n),r}e.create=t;function n(e){let t=e;return t&&t.kind===`delete`&&V.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||V.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||V.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||T.is(t.annotationId))}e.is=n})(O||={});var k;(function(e){function t(e){let t=e;return t&&(t.changes!==void 0||t.documentChanges!==void 0)&&(t.documentChanges===void 0||t.documentChanges.every(e=>V.string(e.kind)?E.is(e)||D.is(e)||O.is(e):se.is(e)))}e.is=t})(k||={});var ce;(function(e){function t(e){return{uri:e}}e.create=t;function n(e){let t=e;return V.defined(t)&&V.string(t.uri)}e.is=n})(ce||={});var le;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return V.defined(t)&&V.string(t.uri)&&V.integer(t.version)}e.is=n})(le||={});var A;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return V.defined(t)&&V.string(t.uri)&&(t.version===null||V.integer(t.version))}e.is=n})(A||={});var ue;(function(e){function t(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}}e.create=t;function n(e){let t=e;return V.defined(t)&&V.string(t.uri)&&V.string(t.languageId)&&V.integer(t.version)&&V.string(t.text)}e.is=n})(ue||={});var j;(function(e){e.PlainText=`plaintext`,e.Markdown=`markdown`;function t(t){let n=t;return n===e.PlainText||n===e.Markdown}e.is=t})(j||={});var M;(function(e){function t(e){let t=e;return V.objectLiteral(e)&&j.is(t.kind)&&V.string(t.value)}e.is=t})(M||={});var N;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(N||={});var P;(function(e){e.PlainText=1,e.Snippet=2})(P||={});var de;(function(e){e.Deprecated=1})(de||={});var fe;(function(e){function t(e,t,n){return{newText:e,insert:t,replace:n}}e.create=t;function n(e){let t=e;return t&&V.string(t.newText)&&h.is(t.insert)&&h.is(t.replace)}e.is=n})(fe||={});var pe;(function(e){e.asIs=1,e.adjustIndentation=2})(pe||={});var me;(function(e){function t(e){let t=e;return t&&(V.string(t.detail)||t.detail===void 0)&&(V.string(t.description)||t.description===void 0)}e.is=t})(me||={});var he;(function(e){function t(e){return{label:e}}e.create=t})(he||={});var ge;(function(e){function t(e,t){return{items:e||[],isIncomplete:!!t}}e.create=t})(ge||={});var F;(function(e){function t(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,`\\$&`)}e.fromPlainText=t;function n(e){let t=e;return V.string(t)||V.objectLiteral(t)&&V.string(t.language)&&V.string(t.value)}e.is=n})(F||={});var _e;(function(e){function t(e){let t=e;return!!t&&V.objectLiteral(t)&&(M.is(t.contents)||F.is(t.contents)||V.typedArray(t.contents,F.is))&&(e.range===void 0||h.is(e.range))}e.is=t})(_e||={});var ve;(function(e){function t(e,t){return t?{label:e,documentation:t}:{label:e}}e.create=t})(ve||={});var ye;(function(e){function t(e,t,...n){let r={label:e};return V.defined(t)&&(r.documentation=t),V.defined(n)?r.parameters=n:r.parameters=[],r}e.create=t})(ye||={});var I;(function(e){e.Text=1,e.Read=2,e.Write=3})(I||={});var be;(function(e){function t(e,t){let n={range:e};return V.number(t)&&(n.kind=t),n}e.create=t})(be||={});var L;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(L||={});var xe;(function(e){e.Deprecated=1})(xe||={});var Se;(function(e){function t(e,t,n,r,i){let a={name:e,kind:t,location:{uri:r,range:n}};return i&&(a.containerName=i),a}e.create=t})(Se||={});var Ce;(function(e){function t(e,t,n,r){return r===void 0?{name:e,kind:t,location:{uri:n}}:{name:e,kind:t,location:{uri:n,range:r}}}e.create=t})(Ce||={});var we;(function(e){function t(e,t,n,r,i,a){let o={name:e,detail:t,kind:n,range:r,selectionRange:i};return a!==void 0&&(o.children=a),o}e.create=t;function n(e){let t=e;return t&&V.string(t.name)&&V.number(t.kind)&&h.is(t.range)&&h.is(t.selectionRange)&&(t.detail===void 0||V.string(t.detail))&&(t.deprecated===void 0||V.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=n})(we||={});var Te;(function(e){e.Empty=``,e.QuickFix=`quickfix`,e.Refactor=`refactor`,e.RefactorExtract=`refactor.extract`,e.RefactorInline=`refactor.inline`,e.RefactorRewrite=`refactor.rewrite`,e.Source=`source`,e.SourceOrganizeImports=`source.organizeImports`,e.SourceFixAll=`source.fixAll`})(Te||={});var R;(function(e){e.Invoked=1,e.Automatic=2})(R||={});var Ee;(function(e){function t(e,t,n){let r={diagnostics:e};return t!=null&&(r.only=t),n!=null&&(r.triggerKind=n),r}e.create=t;function n(e){let t=e;return V.defined(t)&&V.typedArray(t.diagnostics,x.is)&&(t.only===void 0||V.typedArray(t.only,V.string))&&(t.triggerKind===void 0||t.triggerKind===R.Invoked||t.triggerKind===R.Automatic)}e.is=n})(Ee||={});var De;(function(e){function t(e,t,n){let r={title:e},i=!0;return typeof t==`string`?(i=!1,r.kind=t):S.is(t)?r.command=t:r.edit=t,i&&n!==void 0&&(r.kind=n),r}e.create=t;function n(e){let t=e;return t&&V.string(t.title)&&(t.diagnostics===void 0||V.typedArray(t.diagnostics,x.is))&&(t.kind===void 0||V.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||S.is(t.command))&&(t.isPreferred===void 0||V.boolean(t.isPreferred))&&(t.edit===void 0||k.is(t.edit))}e.is=n})(De||={});var Oe;(function(e){function t(e,t){let n={range:e};return V.defined(t)&&(n.data=t),n}e.create=t;function n(e){let t=e;return V.defined(t)&&h.is(t.range)&&(V.undefined(t.command)||S.is(t.command))}e.is=n})(Oe||={});var ke;(function(e){function t(e,t){return{tabSize:e,insertSpaces:t}}e.create=t;function n(e){let t=e;return V.defined(t)&&V.uinteger(t.tabSize)&&V.boolean(t.insertSpaces)}e.is=n})(ke||={});var Ae;(function(e){function t(e,t,n){return{range:e,target:t,data:n}}e.create=t;function n(e){let t=e;return V.defined(t)&&h.is(t.range)&&(V.undefined(t.target)||V.string(t.target))}e.is=n})(Ae||={});var je;(function(e){function t(e,t){return{range:e,parent:t}}e.create=t;function n(t){let n=t;return V.objectLiteral(n)&&h.is(n.range)&&(n.parent===void 0||e.is(n.parent))}e.is=n})(je||={});var Me;(function(e){e.namespace=`namespace`,e.type=`type`,e.class=`class`,e.enum=`enum`,e.interface=`interface`,e.struct=`struct`,e.typeParameter=`typeParameter`,e.parameter=`parameter`,e.variable=`variable`,e.property=`property`,e.enumMember=`enumMember`,e.event=`event`,e.function=`function`,e.method=`method`,e.macro=`macro`,e.keyword=`keyword`,e.modifier=`modifier`,e.comment=`comment`,e.string=`string`,e.number=`number`,e.regexp=`regexp`,e.operator=`operator`,e.decorator=`decorator`})(Me||={});var Ne;(function(e){e.declaration=`declaration`,e.definition=`definition`,e.readonly=`readonly`,e.static=`static`,e.deprecated=`deprecated`,e.abstract=`abstract`,e.async=`async`,e.modification=`modification`,e.documentation=`documentation`,e.defaultLibrary=`defaultLibrary`})(Ne||={});var Pe;(function(e){function t(e){let t=e;return V.objectLiteral(t)&&(t.resultId===void 0||typeof t.resultId==`string`)&&Array.isArray(t.data)&&(t.data.length===0||typeof t.data[0]==`number`)}e.is=t})(Pe||={});var Fe;(function(e){function t(e,t){return{range:e,text:t}}e.create=t;function n(e){let t=e;return t!=null&&h.is(t.range)&&V.string(t.text)}e.is=n})(Fe||={});var Ie;(function(e){function t(e,t,n){return{range:e,variableName:t,caseSensitiveLookup:n}}e.create=t;function n(e){let t=e;return t!=null&&h.is(t.range)&&V.boolean(t.caseSensitiveLookup)&&(V.string(t.variableName)||t.variableName===void 0)}e.is=n})(Ie||={});var Le;(function(e){function t(e,t){return{range:e,expression:t}}e.create=t;function n(e){let t=e;return t!=null&&h.is(t.range)&&(V.string(t.expression)||t.expression===void 0)}e.is=n})(Le||={});var Re;(function(e){function t(e,t){return{frameId:e,stoppedLocation:t}}e.create=t;function n(e){let t=e;return V.defined(t)&&h.is(e.stoppedLocation)}e.is=n})(Re||={});var z;(function(e){e.Type=1,e.Parameter=2;function t(e){return e===1||e===2}e.is=t})(z||={});var B;(function(e){function t(e){return{value:e}}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&(t.tooltip===void 0||V.string(t.tooltip)||M.is(t.tooltip))&&(t.location===void 0||g.is(t.location))&&(t.command===void 0||S.is(t.command))}e.is=n})(B||={});var ze;(function(e){function t(e,t,n){let r={position:e,label:t};return n!==void 0&&(r.kind=n),r}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&m.is(t.position)&&(V.string(t.label)||V.typedArray(t.label,B.is))&&(t.kind===void 0||z.is(t.kind))&&t.textEdits===void 0||V.typedArray(t.textEdits,C.is)&&(t.tooltip===void 0||V.string(t.tooltip)||M.is(t.tooltip))&&(t.paddingLeft===void 0||V.boolean(t.paddingLeft))&&(t.paddingRight===void 0||V.boolean(t.paddingRight))}e.is=n})(ze||={});var Be;(function(e){function t(e){return{kind:`snippet`,value:e}}e.createSnippet=t})(Be||={});var Ve;(function(e){function t(e,t,n,r){return{insertText:e,filterText:t,range:n,command:r}}e.create=t})(Ve||={});var He;(function(e){function t(e){return{items:e}}e.create=t})(He||={});var Ue;(function(e){e.Invoked=0,e.Automatic=1})(Ue||={});var We;(function(e){function t(e,t){return{range:e,text:t}}e.create=t})(We||={});var Ge;(function(e){function t(e,t){return{triggerKind:e,selectedCompletionInfo:t}}e.create=t})(Ge||={});var Ke;(function(e){function t(e){let t=e;return V.objectLiteral(t)&&d.is(t.uri)&&V.string(t.name)}e.is=t})(Ke||={});var qe;(function(e){function t(e,t,n,r){return new Je(e,t,n,r)}e.create=t;function n(e){let t=e;return!!(V.defined(t)&&V.string(t.uri)&&(V.undefined(t.languageId)||V.string(t.languageId))&&V.uinteger(t.lineCount)&&V.func(t.getText)&&V.func(t.positionAt)&&V.func(t.offsetAt))}e.is=n;function r(e,t){let n=e.getText(),r=i(t,(e,t)=>{let n=e.range.start.line-t.range.start.line;return n===0?e.range.start.character-t.range.start.character:n}),a=n.length;for(let t=r.length-1;t>=0;t--){let i=r[t],o=e.offsetAt(i.range.start),s=e.offsetAt(i.range.end);if(s<=a)n=n.substring(0,o)+i.newText+n.substring(s,n.length);else throw Error(`Overlapping edit`);a=o}return n}e.applyEdits=r;function i(e,t){if(e.length<=1)return e;let n=e.length/2|0,r=e.slice(0,n),a=e.slice(n);i(r,t),i(a,t);let o=0,s=0,c=0;for(;o<r.length&&s<a.length;)t(r[o],a[s])<=0?e[c++]=r[o++]:e[c++]=a[s++];for(;o<r.length;)e[c++]=r[o++];for(;s<a.length;)e[c++]=a[s++];return e}})(qe||={});var Je=class{constructor(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],t=this._content,n=!0;for(let r=0;r<t.length;r++){n&&=(e.push(r),!1);let i=t.charAt(r);n=i===`\r`||i===`
1
+ import{m as e}from"./editor.api-CmduODkO.js";var t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,a=(e,a,o,s)=>{if(a&&typeof a==`object`||typeof a==`function`)for(let c of r(a))!i.call(e,c)&&c!==o&&t(e,c,{get:()=>a[c],enumerable:!(s=n(a,c))||s.enumerable});return e},o=(e,t,n)=>(a(e,t,`default`),n&&a(n,t,`default`)),s={};o(s,e);var c=120*1e3,l=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){this._worker&&Date.now()-this._lastUsedTime>c&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||=(this._worker=s.editor.createWebWorker({moduleId:`vs/language/css/cssWorker`,label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(e=>{t=e}).then(t=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(e=>t)}},u;(function(e){function t(e){return typeof e==`string`}e.is=t})(u||={});var d;(function(e){function t(e){return typeof e==`string`}e.is=t})(d||={});var f;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(t){return typeof t==`number`&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}e.is=t})(f||={});var p;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(t){return typeof t==`number`&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}e.is=t})(p||={});var m;(function(e){function t(e,t){return e===Number.MAX_VALUE&&(e=p.MAX_VALUE),t===Number.MAX_VALUE&&(t=p.MAX_VALUE),{line:e,character:t}}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&V.uinteger(t.line)&&V.uinteger(t.character)}e.is=n})(m||={});var h;(function(e){function t(e,t,n,r){if(V.uinteger(e)&&V.uinteger(t)&&V.uinteger(n)&&V.uinteger(r))return{start:m.create(e,t),end:m.create(n,r)};if(m.is(e)&&m.is(t))return{start:e,end:t};throw Error(`Range#create called with invalid arguments[${e}, ${t}, ${n}, ${r}]`)}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&m.is(t.start)&&m.is(t.end)}e.is=n})(h||={});var g;(function(e){function t(e,t){return{uri:e,range:t}}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&h.is(t.range)&&(V.string(t.uri)||V.undefined(t.uri))}e.is=n})(g||={});var ee;(function(e){function t(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&h.is(t.targetRange)&&V.string(t.targetUri)&&h.is(t.targetSelectionRange)&&(h.is(t.originSelectionRange)||V.undefined(t.originSelectionRange))}e.is=n})(ee||={});var _;(function(e){function t(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&V.numberRange(t.red,0,1)&&V.numberRange(t.green,0,1)&&V.numberRange(t.blue,0,1)&&V.numberRange(t.alpha,0,1)}e.is=n})(_||={});var te;(function(e){function t(e,t){return{range:e,color:t}}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&h.is(t.range)&&_.is(t.color)}e.is=n})(te||={});var ne;(function(e){function t(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&V.string(t.label)&&(V.undefined(t.textEdit)||C.is(t))&&(V.undefined(t.additionalTextEdits)||V.typedArray(t.additionalTextEdits,C.is))}e.is=n})(ne||={});var v;(function(e){e.Comment=`comment`,e.Imports=`imports`,e.Region=`region`})(v||={});var re;(function(e){function t(e,t,n,r,i,a){let o={startLine:e,endLine:t};return V.defined(n)&&(o.startCharacter=n),V.defined(r)&&(o.endCharacter=r),V.defined(i)&&(o.kind=i),V.defined(a)&&(o.collapsedText=a),o}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&V.uinteger(t.startLine)&&V.uinteger(t.startLine)&&(V.undefined(t.startCharacter)||V.uinteger(t.startCharacter))&&(V.undefined(t.endCharacter)||V.uinteger(t.endCharacter))&&(V.undefined(t.kind)||V.string(t.kind))}e.is=n})(re||={});var y;(function(e){function t(e,t){return{location:e,message:t}}e.create=t;function n(e){let t=e;return V.defined(t)&&g.is(t.location)&&V.string(t.message)}e.is=n})(y||={});var b;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(b||={});var ie;(function(e){e.Unnecessary=1,e.Deprecated=2})(ie||={});var ae;(function(e){function t(e){let t=e;return V.objectLiteral(t)&&V.string(t.href)}e.is=t})(ae||={});var x;(function(e){function t(e,t,n,r,i,a){let o={range:e,message:t};return V.defined(n)&&(o.severity=n),V.defined(r)&&(o.code=r),V.defined(i)&&(o.source=i),V.defined(a)&&(o.relatedInformation=a),o}e.create=t;function n(e){let t=e;return V.defined(t)&&h.is(t.range)&&V.string(t.message)&&(V.number(t.severity)||V.undefined(t.severity))&&(V.integer(t.code)||V.string(t.code)||V.undefined(t.code))&&(V.undefined(t.codeDescription)||V.string(t.codeDescription?.href))&&(V.string(t.source)||V.undefined(t.source))&&(V.undefined(t.relatedInformation)||V.typedArray(t.relatedInformation,y.is))}e.is=n})(x||={});var S;(function(e){function t(e,t,...n){let r={title:e,command:t};return V.defined(n)&&n.length>0&&(r.arguments=n),r}e.create=t;function n(e){let t=e;return V.defined(t)&&V.string(t.title)&&V.string(t.command)}e.is=n})(S||={});var C;(function(e){function t(e,t){return{range:e,newText:t}}e.replace=t;function n(e,t){return{range:{start:e,end:e},newText:t}}e.insert=n;function r(e){return{range:e,newText:``}}e.del=r;function i(e){let t=e;return V.objectLiteral(t)&&V.string(t.newText)&&h.is(t.range)}e.is=i})(C||={});var w;(function(e){function t(e,t,n){let r={label:e};return t!==void 0&&(r.needsConfirmation=t),n!==void 0&&(r.description=n),r}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&V.string(t.label)&&(V.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(V.string(t.description)||t.description===void 0)}e.is=n})(w||={});var T;(function(e){function t(e){let t=e;return V.string(t)}e.is=t})(T||={});var oe;(function(e){function t(e,t,n){return{range:e,newText:t,annotationId:n}}e.replace=t;function n(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}}e.insert=n;function r(e,t){return{range:e,newText:``,annotationId:t}}e.del=r;function i(e){let t=e;return C.is(t)&&(w.is(t.annotationId)||T.is(t.annotationId))}e.is=i})(oe||={});var se;(function(e){function t(e,t){return{textDocument:e,edits:t}}e.create=t;function n(e){let t=e;return V.defined(t)&&A.is(t.textDocument)&&Array.isArray(t.edits)}e.is=n})(se||={});var E;(function(e){function t(e,t,n){let r={kind:`create`,uri:e};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(r.options=t),n!==void 0&&(r.annotationId=n),r}e.create=t;function n(e){let t=e;return t&&t.kind===`create`&&V.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||V.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||V.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||T.is(t.annotationId))}e.is=n})(E||={});var D;(function(e){function t(e,t,n,r){let i={kind:`rename`,oldUri:e,newUri:t};return n!==void 0&&(n.overwrite!==void 0||n.ignoreIfExists!==void 0)&&(i.options=n),r!==void 0&&(i.annotationId=r),i}e.create=t;function n(e){let t=e;return t&&t.kind===`rename`&&V.string(t.oldUri)&&V.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||V.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||V.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||T.is(t.annotationId))}e.is=n})(D||={});var O;(function(e){function t(e,t,n){let r={kind:`delete`,uri:e};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(r.options=t),n!==void 0&&(r.annotationId=n),r}e.create=t;function n(e){let t=e;return t&&t.kind===`delete`&&V.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||V.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||V.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||T.is(t.annotationId))}e.is=n})(O||={});var k;(function(e){function t(e){let t=e;return t&&(t.changes!==void 0||t.documentChanges!==void 0)&&(t.documentChanges===void 0||t.documentChanges.every(e=>V.string(e.kind)?E.is(e)||D.is(e)||O.is(e):se.is(e)))}e.is=t})(k||={});var ce;(function(e){function t(e){return{uri:e}}e.create=t;function n(e){let t=e;return V.defined(t)&&V.string(t.uri)}e.is=n})(ce||={});var le;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return V.defined(t)&&V.string(t.uri)&&V.integer(t.version)}e.is=n})(le||={});var A;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return V.defined(t)&&V.string(t.uri)&&(t.version===null||V.integer(t.version))}e.is=n})(A||={});var ue;(function(e){function t(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}}e.create=t;function n(e){let t=e;return V.defined(t)&&V.string(t.uri)&&V.string(t.languageId)&&V.integer(t.version)&&V.string(t.text)}e.is=n})(ue||={});var j;(function(e){e.PlainText=`plaintext`,e.Markdown=`markdown`;function t(t){let n=t;return n===e.PlainText||n===e.Markdown}e.is=t})(j||={});var M;(function(e){function t(e){let t=e;return V.objectLiteral(e)&&j.is(t.kind)&&V.string(t.value)}e.is=t})(M||={});var N;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(N||={});var P;(function(e){e.PlainText=1,e.Snippet=2})(P||={});var de;(function(e){e.Deprecated=1})(de||={});var fe;(function(e){function t(e,t,n){return{newText:e,insert:t,replace:n}}e.create=t;function n(e){let t=e;return t&&V.string(t.newText)&&h.is(t.insert)&&h.is(t.replace)}e.is=n})(fe||={});var pe;(function(e){e.asIs=1,e.adjustIndentation=2})(pe||={});var me;(function(e){function t(e){let t=e;return t&&(V.string(t.detail)||t.detail===void 0)&&(V.string(t.description)||t.description===void 0)}e.is=t})(me||={});var he;(function(e){function t(e){return{label:e}}e.create=t})(he||={});var ge;(function(e){function t(e,t){return{items:e||[],isIncomplete:!!t}}e.create=t})(ge||={});var F;(function(e){function t(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,`\\$&`)}e.fromPlainText=t;function n(e){let t=e;return V.string(t)||V.objectLiteral(t)&&V.string(t.language)&&V.string(t.value)}e.is=n})(F||={});var _e;(function(e){function t(e){let t=e;return!!t&&V.objectLiteral(t)&&(M.is(t.contents)||F.is(t.contents)||V.typedArray(t.contents,F.is))&&(e.range===void 0||h.is(e.range))}e.is=t})(_e||={});var ve;(function(e){function t(e,t){return t?{label:e,documentation:t}:{label:e}}e.create=t})(ve||={});var ye;(function(e){function t(e,t,...n){let r={label:e};return V.defined(t)&&(r.documentation=t),V.defined(n)?r.parameters=n:r.parameters=[],r}e.create=t})(ye||={});var I;(function(e){e.Text=1,e.Read=2,e.Write=3})(I||={});var be;(function(e){function t(e,t){let n={range:e};return V.number(t)&&(n.kind=t),n}e.create=t})(be||={});var L;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(L||={});var xe;(function(e){e.Deprecated=1})(xe||={});var Se;(function(e){function t(e,t,n,r,i){let a={name:e,kind:t,location:{uri:r,range:n}};return i&&(a.containerName=i),a}e.create=t})(Se||={});var Ce;(function(e){function t(e,t,n,r){return r===void 0?{name:e,kind:t,location:{uri:n}}:{name:e,kind:t,location:{uri:n,range:r}}}e.create=t})(Ce||={});var we;(function(e){function t(e,t,n,r,i,a){let o={name:e,detail:t,kind:n,range:r,selectionRange:i};return a!==void 0&&(o.children=a),o}e.create=t;function n(e){let t=e;return t&&V.string(t.name)&&V.number(t.kind)&&h.is(t.range)&&h.is(t.selectionRange)&&(t.detail===void 0||V.string(t.detail))&&(t.deprecated===void 0||V.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=n})(we||={});var Te;(function(e){e.Empty=``,e.QuickFix=`quickfix`,e.Refactor=`refactor`,e.RefactorExtract=`refactor.extract`,e.RefactorInline=`refactor.inline`,e.RefactorRewrite=`refactor.rewrite`,e.Source=`source`,e.SourceOrganizeImports=`source.organizeImports`,e.SourceFixAll=`source.fixAll`})(Te||={});var R;(function(e){e.Invoked=1,e.Automatic=2})(R||={});var Ee;(function(e){function t(e,t,n){let r={diagnostics:e};return t!=null&&(r.only=t),n!=null&&(r.triggerKind=n),r}e.create=t;function n(e){let t=e;return V.defined(t)&&V.typedArray(t.diagnostics,x.is)&&(t.only===void 0||V.typedArray(t.only,V.string))&&(t.triggerKind===void 0||t.triggerKind===R.Invoked||t.triggerKind===R.Automatic)}e.is=n})(Ee||={});var De;(function(e){function t(e,t,n){let r={title:e},i=!0;return typeof t==`string`?(i=!1,r.kind=t):S.is(t)?r.command=t:r.edit=t,i&&n!==void 0&&(r.kind=n),r}e.create=t;function n(e){let t=e;return t&&V.string(t.title)&&(t.diagnostics===void 0||V.typedArray(t.diagnostics,x.is))&&(t.kind===void 0||V.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||S.is(t.command))&&(t.isPreferred===void 0||V.boolean(t.isPreferred))&&(t.edit===void 0||k.is(t.edit))}e.is=n})(De||={});var Oe;(function(e){function t(e,t){let n={range:e};return V.defined(t)&&(n.data=t),n}e.create=t;function n(e){let t=e;return V.defined(t)&&h.is(t.range)&&(V.undefined(t.command)||S.is(t.command))}e.is=n})(Oe||={});var ke;(function(e){function t(e,t){return{tabSize:e,insertSpaces:t}}e.create=t;function n(e){let t=e;return V.defined(t)&&V.uinteger(t.tabSize)&&V.boolean(t.insertSpaces)}e.is=n})(ke||={});var Ae;(function(e){function t(e,t,n){return{range:e,target:t,data:n}}e.create=t;function n(e){let t=e;return V.defined(t)&&h.is(t.range)&&(V.undefined(t.target)||V.string(t.target))}e.is=n})(Ae||={});var je;(function(e){function t(e,t){return{range:e,parent:t}}e.create=t;function n(t){let n=t;return V.objectLiteral(n)&&h.is(n.range)&&(n.parent===void 0||e.is(n.parent))}e.is=n})(je||={});var Me;(function(e){e.namespace=`namespace`,e.type=`type`,e.class=`class`,e.enum=`enum`,e.interface=`interface`,e.struct=`struct`,e.typeParameter=`typeParameter`,e.parameter=`parameter`,e.variable=`variable`,e.property=`property`,e.enumMember=`enumMember`,e.event=`event`,e.function=`function`,e.method=`method`,e.macro=`macro`,e.keyword=`keyword`,e.modifier=`modifier`,e.comment=`comment`,e.string=`string`,e.number=`number`,e.regexp=`regexp`,e.operator=`operator`,e.decorator=`decorator`})(Me||={});var Ne;(function(e){e.declaration=`declaration`,e.definition=`definition`,e.readonly=`readonly`,e.static=`static`,e.deprecated=`deprecated`,e.abstract=`abstract`,e.async=`async`,e.modification=`modification`,e.documentation=`documentation`,e.defaultLibrary=`defaultLibrary`})(Ne||={});var Pe;(function(e){function t(e){let t=e;return V.objectLiteral(t)&&(t.resultId===void 0||typeof t.resultId==`string`)&&Array.isArray(t.data)&&(t.data.length===0||typeof t.data[0]==`number`)}e.is=t})(Pe||={});var Fe;(function(e){function t(e,t){return{range:e,text:t}}e.create=t;function n(e){let t=e;return t!=null&&h.is(t.range)&&V.string(t.text)}e.is=n})(Fe||={});var Ie;(function(e){function t(e,t,n){return{range:e,variableName:t,caseSensitiveLookup:n}}e.create=t;function n(e){let t=e;return t!=null&&h.is(t.range)&&V.boolean(t.caseSensitiveLookup)&&(V.string(t.variableName)||t.variableName===void 0)}e.is=n})(Ie||={});var Le;(function(e){function t(e,t){return{range:e,expression:t}}e.create=t;function n(e){let t=e;return t!=null&&h.is(t.range)&&(V.string(t.expression)||t.expression===void 0)}e.is=n})(Le||={});var Re;(function(e){function t(e,t){return{frameId:e,stoppedLocation:t}}e.create=t;function n(e){let t=e;return V.defined(t)&&h.is(e.stoppedLocation)}e.is=n})(Re||={});var z;(function(e){e.Type=1,e.Parameter=2;function t(e){return e===1||e===2}e.is=t})(z||={});var B;(function(e){function t(e){return{value:e}}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&(t.tooltip===void 0||V.string(t.tooltip)||M.is(t.tooltip))&&(t.location===void 0||g.is(t.location))&&(t.command===void 0||S.is(t.command))}e.is=n})(B||={});var ze;(function(e){function t(e,t,n){let r={position:e,label:t};return n!==void 0&&(r.kind=n),r}e.create=t;function n(e){let t=e;return V.objectLiteral(t)&&m.is(t.position)&&(V.string(t.label)||V.typedArray(t.label,B.is))&&(t.kind===void 0||z.is(t.kind))&&t.textEdits===void 0||V.typedArray(t.textEdits,C.is)&&(t.tooltip===void 0||V.string(t.tooltip)||M.is(t.tooltip))&&(t.paddingLeft===void 0||V.boolean(t.paddingLeft))&&(t.paddingRight===void 0||V.boolean(t.paddingRight))}e.is=n})(ze||={});var Be;(function(e){function t(e){return{kind:`snippet`,value:e}}e.createSnippet=t})(Be||={});var Ve;(function(e){function t(e,t,n,r){return{insertText:e,filterText:t,range:n,command:r}}e.create=t})(Ve||={});var He;(function(e){function t(e){return{items:e}}e.create=t})(He||={});var Ue;(function(e){e.Invoked=0,e.Automatic=1})(Ue||={});var We;(function(e){function t(e,t){return{range:e,text:t}}e.create=t})(We||={});var Ge;(function(e){function t(e,t){return{triggerKind:e,selectedCompletionInfo:t}}e.create=t})(Ge||={});var Ke;(function(e){function t(e){let t=e;return V.objectLiteral(t)&&d.is(t.uri)&&V.string(t.name)}e.is=t})(Ke||={});var qe;(function(e){function t(e,t,n,r){return new Je(e,t,n,r)}e.create=t;function n(e){let t=e;return!!(V.defined(t)&&V.string(t.uri)&&(V.undefined(t.languageId)||V.string(t.languageId))&&V.uinteger(t.lineCount)&&V.func(t.getText)&&V.func(t.positionAt)&&V.func(t.offsetAt))}e.is=n;function r(e,t){let n=e.getText(),r=i(t,(e,t)=>{let n=e.range.start.line-t.range.start.line;return n===0?e.range.start.character-t.range.start.character:n}),a=n.length;for(let t=r.length-1;t>=0;t--){let i=r[t],o=e.offsetAt(i.range.start),s=e.offsetAt(i.range.end);if(s<=a)n=n.substring(0,o)+i.newText+n.substring(s,n.length);else throw Error(`Overlapping edit`);a=o}return n}e.applyEdits=r;function i(e,t){if(e.length<=1)return e;let n=e.length/2|0,r=e.slice(0,n),a=e.slice(n);i(r,t),i(a,t);let o=0,s=0,c=0;for(;o<r.length&&s<a.length;)t(r[o],a[s])<=0?e[c++]=r[o++]:e[c++]=a[s++];for(;o<r.length;)e[c++]=r[o++];for(;s<a.length;)e[c++]=a[s++];return e}})(qe||={});var Je=class{constructor(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],t=this._content,n=!0;for(let r=0;r<t.length;r++){n&&=(e.push(r),!1);let i=t.charAt(r);n=i===`\r`||i===`
2
2
  `,i===`\r`&&r+1<t.length&&t.charAt(r+1)===`
3
3
  `&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),n=0,r=t.length;if(r===0)return m.create(0,e);for(;n<r;){let i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}let i=n-1;return m.create(i,e-t[i])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)}get lineCount(){return this.getLineOffsets().length}},V;(function(e){let t=Object.prototype.toString;function n(e){return e!==void 0}e.defined=n;function r(e){return e===void 0}e.undefined=r;function i(e){return e===!0||e===!1}e.boolean=i;function a(e){return t.call(e)===`[object String]`}e.string=a;function o(e){return t.call(e)===`[object Number]`}e.number=o;function s(e,n,r){return t.call(e)===`[object Number]`&&n<=e&&e<=r}e.numberRange=s;function c(e){return t.call(e)===`[object Number]`&&-2147483648<=e&&e<=2147483647}e.integer=c;function l(e){return t.call(e)===`[object Number]`&&0<=e&&e<=2147483647}e.uinteger=l;function u(e){return t.call(e)===`[object Function]`}e.func=u;function d(e){return typeof e==`object`&&!!e}e.objectLiteral=d;function f(e,t){return Array.isArray(e)&&e.every(t)}e.typedArray=f})(V||={});var H=class{constructor(e,t,n){this._languageId=e,this._worker=t,this._disposables=[],this._listener=Object.create(null);let r=e=>{let t=e.getLanguageId();if(t!==this._languageId)return;let n;this._listener[e.uri.toString()]=e.onDidChangeContent(()=>{window.clearTimeout(n),n=window.setTimeout(()=>this._doValidate(e.uri,t),500)}),this._doValidate(e.uri,t)},i=e=>{s.editor.setModelMarkers(e,this._languageId,[]);let t=e.uri.toString(),n=this._listener[t];n&&(n.dispose(),delete this._listener[t])};this._disposables.push(s.editor.onDidCreateModel(r)),this._disposables.push(s.editor.onWillDisposeModel(i)),this._disposables.push(s.editor.onDidChangeModelLanguage(e=>{i(e.model),r(e.model)})),this._disposables.push(n(e=>{s.editor.getModels().forEach(e=>{e.getLanguageId()===this._languageId&&(i(e),r(e))})})),this._disposables.push({dispose:()=>{for(let e in s.editor.getModels().forEach(i),this._listener)this._listener[e].dispose()}}),s.editor.getModels().forEach(r)}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables.length=0}_doValidate(e,t){this._worker(e).then(t=>t.doValidation(e.toString())).then(n=>{let r=n.map(t=>Xe(e,t)),i=s.editor.getModel(e);i&&i.getLanguageId()===t&&s.editor.setModelMarkers(i,t,r)}).then(void 0,e=>{console.error(e)})}};function Ye(e){switch(e){case b.Error:return s.MarkerSeverity.Error;case b.Warning:return s.MarkerSeverity.Warning;case b.Information:return s.MarkerSeverity.Info;case b.Hint:return s.MarkerSeverity.Hint;default:return s.MarkerSeverity.Info}}function Xe(e,t){let n=typeof t.code==`number`?String(t.code):t.code;return{severity:Ye(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:n,source:t.source}}var U=class{constructor(e,t){this._worker=e,this._triggerCharacters=t}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(e,t,n,r){let i=e.uri;return this._worker(i).then(e=>e.doComplete(i.toString(),W(t))).then(n=>{if(!n)return;let r=e.getWordUntilPosition(t),i=new s.Range(t.lineNumber,r.startColumn,t.lineNumber,r.endColumn),a=n.items.map(e=>{let t={label:e.label,insertText:e.insertText||e.label,sortText:e.sortText,filterText:e.filterText,documentation:e.documentation,detail:e.detail,command:$e(e.command),range:i,kind:Qe(e.kind)};return e.textEdit&&(Ze(e.textEdit)?t.range={insert:K(e.textEdit.insert),replace:K(e.textEdit.replace)}:t.range=K(e.textEdit.range),t.insertText=e.textEdit.newText),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(q)),e.insertTextFormat===P.Snippet&&(t.insertTextRules=s.languages.CompletionItemInsertTextRule.InsertAsSnippet),t});return{isIncomplete:n.isIncomplete,suggestions:a}})}};function W(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function G(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function K(e){if(e)return new s.Range(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function Ze(e){return e.insert!==void 0&&e.replace!==void 0}function Qe(e){let t=s.languages.CompletionItemKind;switch(e){case N.Text:return t.Text;case N.Method:return t.Method;case N.Function:return t.Function;case N.Constructor:return t.Constructor;case N.Field:return t.Field;case N.Variable:return t.Variable;case N.Class:return t.Class;case N.Interface:return t.Interface;case N.Module:return t.Module;case N.Property:return t.Property;case N.Unit:return t.Unit;case N.Value:return t.Value;case N.Enum:return t.Enum;case N.Keyword:return t.Keyword;case N.Snippet:return t.Snippet;case N.Color:return t.Color;case N.File:return t.File;case N.Reference:return t.Reference}return t.Property}function q(e){if(e)return{range:K(e.range),text:e.newText}}function $e(e){return e&&e.command===`editor.action.triggerSuggest`?{id:e.command,title:e.title,arguments:e.arguments}:void 0}var et=class{constructor(e){this._worker=e}provideHover(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.doHover(r.toString(),W(t))).then(e=>{if(e)return{range:K(e.range),contents:nt(e.contents)}})}};function tt(e){return e&&typeof e==`object`&&typeof e.kind==`string`}function J(e){return typeof e==`string`?{value:e}:tt(e)?e.kind===`plaintext`?{value:e.value.replace(/[\\`*_{}[\]()#+\-.!]/g,`\\$&`)}:{value:e.value}:{value:"```"+e.language+`
4
4
  `+e.value+"\n```\n"}}function nt(e){if(e)return Array.isArray(e)?e.map(J):[J(e)]}var Y=class{constructor(e){this._worker=e}provideDocumentHighlights(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.findDocumentHighlights(r.toString(),W(t))).then(e=>{if(e)return e.map(e=>({range:K(e.range),kind:rt(e.kind)}))})}};function rt(e){switch(e){case I.Read:return s.languages.DocumentHighlightKind.Read;case I.Write:return s.languages.DocumentHighlightKind.Write;case I.Text:return s.languages.DocumentHighlightKind.Text}return s.languages.DocumentHighlightKind.Text}var X=class{constructor(e){this._worker=e}provideDefinition(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.findDefinition(r.toString(),W(t))).then(e=>{if(e)return[Z(e)]})}};function Z(e){return{uri:s.Uri.parse(e.uri),range:K(e.range)}}var Q=class{constructor(e){this._worker=e}provideReferences(e,t,n,r){let i=e.uri;return this._worker(i).then(e=>e.findReferences(i.toString(),W(t))).then(e=>{if(e)return e.map(Z)})}},it=class{constructor(e){this._worker=e}provideRenameEdits(e,t,n,r){let i=e.uri;return this._worker(i).then(e=>e.doRename(i.toString(),W(t),n)).then(e=>at(e))}};function at(e){if(!e||!e.changes)return;let t=[];for(let n in e.changes){let r=s.Uri.parse(n);for(let i of e.changes[n])t.push({resource:r,versionId:void 0,textEdit:{range:K(i.range),text:i.newText}})}return{edits:t}}var ot=class{constructor(e){this._worker=e}provideDocumentSymbols(e,t){let n=e.uri;return this._worker(n).then(e=>e.findDocumentSymbols(n.toString())).then(e=>{if(e)return e.map(e=>st(e)?ct(e):{name:e.name,detail:``,containerName:e.containerName,kind:lt(e.kind),range:K(e.location.range),selectionRange:K(e.location.range),tags:[]})})}};function st(e){return`children`in e}function ct(e){return{name:e.name,detail:e.detail??``,kind:lt(e.kind),range:K(e.range),selectionRange:K(e.selectionRange),tags:e.tags??[],children:(e.children??[]).map(e=>ct(e))}}function lt(e){let t=s.languages.SymbolKind;switch(e){case L.File:return t.File;case L.Module:return t.Module;case L.Namespace:return t.Namespace;case L.Package:return t.Package;case L.Class:return t.Class;case L.Method:return t.Method;case L.Property:return t.Property;case L.Field:return t.Field;case L.Constructor:return t.Constructor;case L.Enum:return t.Enum;case L.Interface:return t.Interface;case L.Function:return t.Function;case L.Variable:return t.Variable;case L.Constant:return t.Constant;case L.String:return t.String;case L.Number:return t.Number;case L.Boolean:return t.Boolean;case L.Array:return t.Array}return t.Function}var ut=class{constructor(e){this._worker=e}provideLinks(e,t){let n=e.uri;return this._worker(n).then(e=>e.findDocumentLinks(n.toString())).then(e=>{if(e)return{links:e.map(e=>({range:K(e.range),url:e.target}))}})}},dt=class{constructor(e){this._worker=e}provideDocumentFormattingEdits(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.format(r.toString(),null,$(t)).then(e=>{if(!(!e||e.length===0))return e.map(q)}))}},ft=class{constructor(e){this._worker=e,this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(e,t,n,r){let i=e.uri;return this._worker(i).then(e=>e.format(i.toString(),G(t),$(n)).then(e=>{if(!(!e||e.length===0))return e.map(q)}))}};function $(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}var pt=class{constructor(e){this._worker=e}provideDocumentColors(e,t){let n=e.uri;return this._worker(n).then(e=>e.findDocumentColors(n.toString())).then(e=>{if(e)return e.map(e=>({color:e.color,range:K(e.range)}))})}provideColorPresentations(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.getColorPresentations(r.toString(),t.color,G(t.range))).then(e=>{if(e)return e.map(e=>{let t={label:e.label};return e.textEdit&&(t.textEdit=q(e.textEdit)),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(q)),t})})}},mt=class{constructor(e){this._worker=e}provideFoldingRanges(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.getFoldingRanges(r.toString(),t)).then(e=>{if(e)return e.map(e=>{let t={start:e.startLine+1,end:e.endLine+1};return e.kind!==void 0&&(t.kind=ht(e.kind)),t})})}};function ht(e){switch(e){case v.Comment:return s.languages.FoldingRangeKind.Comment;case v.Imports:return s.languages.FoldingRangeKind.Imports;case v.Region:return s.languages.FoldingRangeKind.Region}}var gt=class{constructor(e){this._worker=e}provideSelectionRanges(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.getSelectionRanges(r.toString(),t.map(W))).then(e=>{if(e)return e.map(e=>{let t=[];for(;e;)t.push({range:K(e.range)}),e=e.parent;return t})})}};function _t(e){let t=[],n=[],r=new l(e);t.push(r);let i=(...e)=>r.getLanguageServiceWorker(...e);function a(){let{languageId:t,modeConfiguration:r}=e;yt(n),r.completionItems&&n.push(s.languages.registerCompletionItemProvider(t,new U(i,[`/`,`-`,`:`]))),r.hovers&&n.push(s.languages.registerHoverProvider(t,new et(i))),r.documentHighlights&&n.push(s.languages.registerDocumentHighlightProvider(t,new Y(i))),r.definitions&&n.push(s.languages.registerDefinitionProvider(t,new X(i))),r.references&&n.push(s.languages.registerReferenceProvider(t,new Q(i))),r.documentSymbols&&n.push(s.languages.registerDocumentSymbolProvider(t,new ot(i))),r.rename&&n.push(s.languages.registerRenameProvider(t,new it(i))),r.colors&&n.push(s.languages.registerColorProvider(t,new pt(i))),r.foldingRanges&&n.push(s.languages.registerFoldingRangeProvider(t,new mt(i))),r.diagnostics&&n.push(new H(t,i,e.onDidChange)),r.selectionRanges&&n.push(s.languages.registerSelectionRangeProvider(t,new gt(i))),r.documentFormattingEdits&&n.push(s.languages.registerDocumentFormattingEditProvider(t,new dt(i))),r.documentRangeFormattingEdits&&n.push(s.languages.registerDocumentRangeFormattingEditProvider(t,new ft(i)))}return a(),t.push(vt(n)),vt(t)}function vt(e){return{dispose:()=>yt(e)}}function yt(e){for(;e.length;)e.pop().dispose()}export{U as CompletionAdapter,X as DefinitionAdapter,H as DiagnosticsAdapter,pt as DocumentColorAdapter,dt as DocumentFormattingEditProvider,Y as DocumentHighlightAdapter,ut as DocumentLinkAdapter,ft as DocumentRangeFormattingEditProvider,ot as DocumentSymbolAdapter,mt as FoldingRangeAdapter,et as HoverAdapter,Q as ReferenceAdapter,it as RenameAdapter,gt as SelectionRangeAdapter,l as WorkerManager,W as fromPosition,G as fromRange,_t as setupMode,K as toRange,q as toTextEdit};