tailwind-typescript-plugin 1.4.0-beta.1 → 1.4.0-beta.11

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 (77) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/README.md +373 -34
  3. package/lib/core/interfaces.d.ts +2 -2
  4. package/lib/core/interfaces.d.ts.map +1 -1
  5. package/lib/core/types.d.ts +27 -1
  6. package/lib/core/types.d.ts.map +1 -1
  7. package/lib/extractors/BaseExtractor.d.ts +49 -2
  8. package/lib/extractors/BaseExtractor.d.ts.map +1 -1
  9. package/lib/extractors/BaseExtractor.js +184 -5
  10. package/lib/extractors/BaseExtractor.js.map +1 -1
  11. package/lib/extractors/CvaExtractor.d.ts.map +1 -1
  12. package/lib/extractors/CvaExtractor.js +7 -3
  13. package/lib/extractors/CvaExtractor.js.map +1 -1
  14. package/lib/extractors/ExpressionExtractor.d.ts.map +1 -1
  15. package/lib/extractors/ExpressionExtractor.js +35 -5
  16. package/lib/extractors/ExpressionExtractor.js.map +1 -1
  17. package/lib/extractors/JsxAttributeExtractor.js +1 -1
  18. package/lib/extractors/JsxAttributeExtractor.js.map +1 -1
  19. package/lib/extractors/TailwindVariantsExtractor.d.ts +2 -0
  20. package/lib/extractors/TailwindVariantsExtractor.d.ts.map +1 -1
  21. package/lib/extractors/TailwindVariantsExtractor.js +12 -8
  22. package/lib/extractors/TailwindVariantsExtractor.js.map +1 -1
  23. package/lib/extractors/VariableReferenceExtractor.d.ts.map +1 -1
  24. package/lib/extractors/VariableReferenceExtractor.js +21 -0
  25. package/lib/extractors/VariableReferenceExtractor.js.map +1 -1
  26. package/lib/infrastructure/TailwindConflictDetector.d.ts +83 -0
  27. package/lib/infrastructure/TailwindConflictDetector.d.ts.map +1 -0
  28. package/lib/infrastructure/TailwindConflictDetector.js +342 -0
  29. package/lib/infrastructure/TailwindConflictDetector.js.map +1 -0
  30. package/lib/infrastructure/TailwindValidator.d.ts +15 -0
  31. package/lib/infrastructure/TailwindValidator.d.ts.map +1 -1
  32. package/lib/infrastructure/TailwindValidator.js +84 -5
  33. package/lib/infrastructure/TailwindValidator.js.map +1 -1
  34. package/lib/infrastructure/TailwindValidator.spec.js +194 -0
  35. package/lib/infrastructure/TailwindValidator.spec.js.map +1 -1
  36. package/lib/plugin/TailwindTypescriptPlugin.d.ts +26 -0
  37. package/lib/plugin/TailwindTypescriptPlugin.d.ts.map +1 -1
  38. package/lib/plugin/TailwindTypescriptPlugin.js +180 -1
  39. package/lib/plugin/TailwindTypescriptPlugin.js.map +1 -1
  40. package/lib/services/ClassNameExtractionService.d.ts +2 -2
  41. package/lib/services/ClassNameExtractionService.d.ts.map +1 -1
  42. package/lib/services/ClassNameExtractionService.js.map +1 -1
  43. package/lib/services/CompletionService.d.ts +98 -0
  44. package/lib/services/CompletionService.d.ts.map +1 -0
  45. package/lib/services/CompletionService.js +484 -0
  46. package/lib/services/CompletionService.js.map +1 -0
  47. package/lib/services/CompletionService.spec.d.ts +2 -0
  48. package/lib/services/CompletionService.spec.d.ts.map +1 -0
  49. package/lib/services/CompletionService.spec.js +334 -0
  50. package/lib/services/CompletionService.spec.js.map +1 -0
  51. package/lib/services/ConflictClassDetection.spec.d.ts +2 -0
  52. package/lib/services/ConflictClassDetection.spec.d.ts.map +1 -0
  53. package/lib/services/ConflictClassDetection.spec.js +477 -0
  54. package/lib/services/ConflictClassDetection.spec.js.map +1 -0
  55. package/lib/services/DiagnosticService.d.ts +14 -0
  56. package/lib/services/DiagnosticService.d.ts.map +1 -1
  57. package/lib/services/DiagnosticService.js +32 -1
  58. package/lib/services/DiagnosticService.js.map +1 -1
  59. package/lib/services/DuplicateClassDetection.spec.js +41 -60
  60. package/lib/services/DuplicateClassDetection.spec.js.map +1 -1
  61. package/lib/services/PluginConfigService.d.ts +2 -1
  62. package/lib/services/PluginConfigService.d.ts.map +1 -1
  63. package/lib/services/PluginConfigService.js +19 -12
  64. package/lib/services/PluginConfigService.js.map +1 -1
  65. package/lib/services/ValidationService.d.ts +5 -2
  66. package/lib/services/ValidationService.d.ts.map +1 -1
  67. package/lib/services/ValidationService.js +22 -9
  68. package/lib/services/ValidationService.js.map +1 -1
  69. package/package.json +4 -2
  70. package/lib/extractors/StringLiteralExtractor.d.ts +0 -12
  71. package/lib/extractors/StringLiteralExtractor.d.ts.map +0 -1
  72. package/lib/extractors/StringLiteralExtractor.js +0 -21
  73. package/lib/extractors/StringLiteralExtractor.js.map +0 -1
  74. package/lib/services/ClassNameExtractionService.original.d.ts +0 -20
  75. package/lib/services/ClassNameExtractionService.original.d.ts.map +0 -1
  76. package/lib/services/ClassNameExtractionService.original.js +0 -48
  77. package/lib/services/ClassNameExtractionService.original.js.map +0 -1
@@ -0,0 +1,334 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const ts = __importStar(require("typescript/lib/tsserverlibrary"));
37
+ const TailwindValidator_1 = require("../infrastructure/TailwindValidator");
38
+ const Logger_1 = require("../utils/Logger");
39
+ const CompletionService_1 = require("./CompletionService");
40
+ describe('CompletionService', () => {
41
+ let validator;
42
+ let completionService;
43
+ beforeEach(() => {
44
+ validator = new TailwindValidator_1.TailwindValidator('/fake/path.css', new Logger_1.NoOpLogger());
45
+ // Mock the validator methods
46
+ jest
47
+ .spyOn(validator, 'getAllClasses')
48
+ .mockReturnValue([
49
+ 'flex',
50
+ 'flex-row',
51
+ 'flex-col',
52
+ 'items-center',
53
+ 'items-start',
54
+ 'items-end',
55
+ 'justify-center',
56
+ 'justify-between',
57
+ 'p-4',
58
+ 'px-4',
59
+ 'py-4',
60
+ 'bg-red-500',
61
+ 'bg-blue-500',
62
+ 'text-white',
63
+ 'text-black'
64
+ ]);
65
+ jest.spyOn(validator, 'isValidClass').mockImplementation((className) => {
66
+ return validator.getAllClasses().includes(className);
67
+ });
68
+ jest.spyOn(validator, 'getCssForClasses').mockImplementation((classNames) => {
69
+ return classNames.map(name => {
70
+ if (name === 'flex')
71
+ return '.flex { display: flex; }';
72
+ if (name === 'p-4')
73
+ return '.p-4 { padding: 1rem; }';
74
+ return null;
75
+ });
76
+ });
77
+ completionService = new CompletionService_1.CompletionService(validator, new Logger_1.NoOpLogger());
78
+ });
79
+ describe('getCompletionsAtPosition', () => {
80
+ it('should return original completions when not in className context', () => {
81
+ const sourceCode = 'const x = 1;';
82
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
83
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, 5, // Position in "const"
84
+ undefined);
85
+ expect(result).toBeUndefined();
86
+ });
87
+ it('should provide completions inside className attribute', () => {
88
+ const sourceCode = '<div className="">Hello</div>';
89
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
90
+ // Position inside the empty className string (after the opening quote)
91
+ const position = 16;
92
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
93
+ expect(result).toBeDefined();
94
+ expect(result.entries.length).toBeGreaterThan(0);
95
+ // Should include flex classes
96
+ const flexEntry = result.entries.find(e => e.name === 'flex');
97
+ expect(flexEntry).toBeDefined();
98
+ });
99
+ it('should filter completions based on prefix', () => {
100
+ const sourceCode = '<div className="fl">Hello</div>';
101
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
102
+ // Position after "fl"
103
+ const position = 18;
104
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
105
+ expect(result).toBeDefined();
106
+ // Should only include classes starting with "fl"
107
+ const allStartWithFl = result.entries.every(e => e.name.toLowerCase().startsWith('fl'));
108
+ expect(allStartWithFl).toBe(true);
109
+ // Should include flex, flex-row, flex-col
110
+ const names = result.entries.map(e => e.name);
111
+ expect(names).toContain('flex');
112
+ expect(names).toContain('flex-row');
113
+ expect(names).toContain('flex-col');
114
+ });
115
+ it('should provide completions after space in className', () => {
116
+ const sourceCode = '<div className="flex ">Hello</div>';
117
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
118
+ // Position after "flex " (after the space)
119
+ const position = 21;
120
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
121
+ expect(result).toBeDefined();
122
+ // Should provide all classes except "flex" which is already present
123
+ const names = result.entries.map(e => e.name);
124
+ expect(names).not.toContain('flex');
125
+ expect(names).toContain('items-center');
126
+ });
127
+ it('should exclude already existing classes from completions', () => {
128
+ // className="flex items-center p"
129
+ // Position: 16 21 35
130
+ const sourceCode = '<div className="flex items-center p">Hello</div>';
131
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
132
+ // Position after "p" (typing a new class) - position 35 is after the "p"
133
+ const position = 35;
134
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
135
+ expect(result).toBeDefined();
136
+ const names = result.entries.map(e => e.name);
137
+ // Should not include already present classes
138
+ expect(names).not.toContain('flex');
139
+ expect(names).not.toContain('items-center');
140
+ // Should include p-4, px-4, py-4 as they match the "p" prefix
141
+ expect(names).toContain('p-4');
142
+ expect(names).toContain('px-4');
143
+ expect(names).toContain('py-4');
144
+ });
145
+ it('should provide completions in utility function arguments', () => {
146
+ const sourceCode = 'const classes = cn("flex ", isActive && "");';
147
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
148
+ // Position inside the second empty string in cn()
149
+ const position = 41;
150
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
151
+ expect(result).toBeDefined();
152
+ expect(result.entries.length).toBeGreaterThan(0);
153
+ });
154
+ it('should provide completions in clsx function', () => {
155
+ const sourceCode = 'const classes = clsx("f");';
156
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
157
+ // Position after "f"
158
+ const position = 23;
159
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
160
+ expect(result).toBeDefined();
161
+ // Should include classes starting with "f"
162
+ const names = result.entries.map(e => e.name);
163
+ expect(names).toContain('flex');
164
+ });
165
+ it('should provide completions in object property className', () => {
166
+ const sourceCode = 'const obj = { className: "fl" };';
167
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
168
+ // Position after "fl"
169
+ const position = 28;
170
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
171
+ expect(result).toBeDefined();
172
+ const names = result.entries.map(e => e.name);
173
+ expect(names).toContain('flex');
174
+ });
175
+ it('should set correct replacement span for partial class names', () => {
176
+ const sourceCode = '<div className="flex ite">Hello</div>';
177
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
178
+ // Position after "ite"
179
+ const position = 24;
180
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, position, undefined);
181
+ expect(result).toBeDefined();
182
+ // Each entry should have a replacement span
183
+ const itemsCenter = result.entries.find(e => e.name === 'items-center');
184
+ expect(itemsCenter).toBeDefined();
185
+ expect(itemsCenter.replacementSpan).toBeDefined();
186
+ expect(itemsCenter.replacementSpan.length).toBe(3); // "ite" length
187
+ });
188
+ });
189
+ describe('getCompletionEntryDetails', () => {
190
+ it('should return CSS documentation for valid Tailwind class', () => {
191
+ const sourceCode = '<div className="flex">Hello</div>';
192
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
193
+ const result = completionService.getCompletionEntryDetails(ts, sourceFile, 16, 'flex');
194
+ expect(result).toBeDefined();
195
+ expect(result.name).toBe('flex');
196
+ expect(result.documentation).toBeDefined();
197
+ expect(result.documentation.length).toBeGreaterThan(0);
198
+ expect(result.documentation[0].text).toContain('display: flex');
199
+ });
200
+ it('should format documentation with markdown CSS code block', () => {
201
+ const sourceCode = '<div className="flex">Hello</div>';
202
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
203
+ const result = completionService.getCompletionEntryDetails(ts, sourceFile, 16, 'flex');
204
+ expect(result).toBeDefined();
205
+ expect(result.documentation).toBeDefined();
206
+ // Documentation should be wrapped in markdown CSS code block for syntax highlighting
207
+ const docText = result.documentation[0].text;
208
+ expect(docText).toContain('```css');
209
+ expect(docText).toContain('```');
210
+ });
211
+ it('should provide short CSS summary in displayParts', () => {
212
+ const sourceCode = '<div className="flex">Hello</div>';
213
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
214
+ const result = completionService.getCompletionEntryDetails(ts, sourceFile, 16, 'flex');
215
+ expect(result).toBeDefined();
216
+ expect(result.displayParts).toBeDefined();
217
+ expect(result.displayParts.length).toBeGreaterThan(0);
218
+ // displayParts should contain just the declaration (e.g., "display: flex;")
219
+ const displayText = result.displayParts[0].text;
220
+ expect(displayText).toContain('display: flex');
221
+ expect(displayText).not.toContain('.flex');
222
+ expect(displayText).not.toContain('{');
223
+ });
224
+ it('should return undefined for non-Tailwind class', () => {
225
+ const sourceCode = '<div className="my-custom-class">Hello</div>';
226
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
227
+ const result = completionService.getCompletionEntryDetails(ts, sourceFile, 16, 'my-custom-class');
228
+ expect(result).toBeUndefined();
229
+ });
230
+ it('should format CSS with proper indentation', () => {
231
+ // Mock a class with multiple declarations
232
+ jest.spyOn(validator, 'getCssForClasses').mockImplementation((classNames) => {
233
+ return classNames.map(name => {
234
+ if (name === 'p-4')
235
+ return '.p-4 { padding-top: 1rem; padding-right: 1rem; padding-bottom: 1rem; padding-left: 1rem; }';
236
+ return null;
237
+ });
238
+ });
239
+ const sourceCode = '<div className="p-4">Hello</div>';
240
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
241
+ const result = completionService.getCompletionEntryDetails(ts, sourceFile, 16, 'p-4');
242
+ expect(result).toBeDefined();
243
+ const docText = result.documentation[0].text;
244
+ // Should be formatted with newlines for multiple declarations
245
+ expect(docText).toContain('\n');
246
+ expect(docText).toContain('padding-top: 1rem;');
247
+ expect(docText).toContain('padding-right: 1rem;');
248
+ });
249
+ });
250
+ describe('color class detection', () => {
251
+ it('should mark color classes with "color" kindModifier', () => {
252
+ // Add color classes to the mock
253
+ jest.spyOn(validator, 'getAllClasses').mockReturnValue([
254
+ 'flex',
255
+ 'bg-red-500',
256
+ 'bg-blue-200',
257
+ 'text-white',
258
+ 'text-black',
259
+ 'border-gray-300',
260
+ 'ring-indigo-500',
261
+ 'text-sm', // not a color
262
+ 'border-2' // not a color
263
+ ]);
264
+ const sourceCode = '<div className="">Hello</div>';
265
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
266
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, 16, undefined);
267
+ expect(result).toBeDefined();
268
+ // Color classes should have 'color' kindModifier
269
+ const bgRed = result.entries.find(e => e.name === 'bg-red-500');
270
+ expect(bgRed?.kindModifiers).toBe('color');
271
+ const textWhite = result.entries.find(e => e.name === 'text-white');
272
+ expect(textWhite?.kindModifiers).toBe('color');
273
+ const borderGray = result.entries.find(e => e.name === 'border-gray-300');
274
+ expect(borderGray?.kindModifiers).toBe('color');
275
+ // Non-color classes should have empty kindModifier
276
+ const flexEntry = result.entries.find(e => e.name === 'flex');
277
+ expect(flexEntry?.kindModifiers).toBe('');
278
+ const textSm = result.entries.find(e => e.name === 'text-sm');
279
+ expect(textSm?.kindModifiers).toBe('');
280
+ const border2 = result.entries.find(e => e.name === 'border-2');
281
+ expect(border2?.kindModifiers).toBe('');
282
+ });
283
+ it('should detect various color class patterns', () => {
284
+ jest.spyOn(validator, 'getAllClasses').mockReturnValue([
285
+ 'from-purple-400', // gradient from
286
+ 'via-pink-500', // gradient via
287
+ 'to-red-500', // gradient to
288
+ 'fill-current', // SVG fill
289
+ 'stroke-blue-600', // SVG stroke
290
+ 'accent-violet-500', // accent color
291
+ 'shadow-sm', // not a color (shadow size)
292
+ 'outline-none', // not a color (outline style)
293
+ 'divide-y', // not a color (divide direction)
294
+ 'text-center' // not a color (text alignment)
295
+ ]);
296
+ const sourceCode = '<div className="">Hello</div>';
297
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
298
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, 16, undefined);
299
+ expect(result).toBeDefined();
300
+ // Color classes
301
+ expect(result.entries.find(e => e.name === 'from-purple-400')?.kindModifiers).toBe('color');
302
+ expect(result.entries.find(e => e.name === 'via-pink-500')?.kindModifiers).toBe('color');
303
+ expect(result.entries.find(e => e.name === 'to-red-500')?.kindModifiers).toBe('color');
304
+ expect(result.entries.find(e => e.name === 'fill-current')?.kindModifiers).toBe('color');
305
+ expect(result.entries.find(e => e.name === 'stroke-blue-600')?.kindModifiers).toBe('color');
306
+ expect(result.entries.find(e => e.name === 'accent-violet-500')?.kindModifiers).toBe('color');
307
+ // Non-color classes
308
+ expect(result.entries.find(e => e.name === 'shadow-sm')?.kindModifiers).toBe('');
309
+ expect(result.entries.find(e => e.name === 'outline-none')?.kindModifiers).toBe('');
310
+ expect(result.entries.find(e => e.name === 'divide-y')?.kindModifiers).toBe('');
311
+ expect(result.entries.find(e => e.name === 'text-center')?.kindModifiers).toBe('');
312
+ });
313
+ });
314
+ describe('clearCache', () => {
315
+ it('should clear the cached class list', () => {
316
+ const sourceCode = '<div className="">Hello</div>';
317
+ const sourceFile = ts.createSourceFile('test.tsx', sourceCode, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
318
+ // First call to populate cache
319
+ completionService.getCompletionsAtPosition(ts, sourceFile, 16, undefined);
320
+ // Clear cache
321
+ completionService.clearCache();
322
+ // Mock different classes
323
+ jest.spyOn(validator, 'getAllClasses').mockReturnValue(['new-class', 'another-class']);
324
+ // Get completions again
325
+ const result = completionService.getCompletionsAtPosition(ts, sourceFile, 16, undefined);
326
+ expect(result).toBeDefined();
327
+ const names = result.entries.map(e => e.name);
328
+ expect(names).toContain('new-class');
329
+ expect(names).toContain('another-class');
330
+ expect(names).not.toContain('flex');
331
+ });
332
+ });
333
+ });
334
+ //# sourceMappingURL=CompletionService.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompletionService.spec.js","sourceRoot":"","sources":["../../src/services/CompletionService.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAAqD;AAErD,2EAAwE;AACxE,4CAA6C;AAC7C,2DAAwD;AAExD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAClC,IAAI,SAA4B,CAAC;IACjC,IAAI,iBAAoC,CAAC;IAEzC,UAAU,CAAC,GAAG,EAAE;QACf,SAAS,GAAG,IAAI,qCAAiB,CAAC,gBAAgB,EAAE,IAAI,mBAAU,EAAE,CAAC,CAAC;QACtE,6BAA6B;QAC7B,IAAI;aACF,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC;aACjC,eAAe,CAAC;YAChB,MAAM;YACN,UAAU;YACV,UAAU;YACV,cAAc;YACd,aAAa;YACb,WAAW;YACX,gBAAgB;YAChB,iBAAiB;YACjB,KAAK;YACL,MAAM;YACN,MAAM;YACN,YAAY;YACZ,aAAa;YACb,YAAY;YACZ,YAAY;SACZ,CAAC,CAAC;QACJ,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,kBAAkB,CAAC,CAAC,SAAiB,EAAE,EAAE;YAC9E,OAAO,SAAS,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,CAAC,UAAoB,EAAE,EAAE;YACrF,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC5B,IAAI,IAAI,KAAK,MAAM;oBAAE,OAAO,0BAA0B,CAAC;gBACvD,IAAI,IAAI,KAAK,KAAK;oBAAE,OAAO,yBAAyB,CAAC;gBACrD,OAAO,IAAI,CAAC;YACb,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,iBAAiB,GAAG,IAAI,qCAAiB,CAAC,SAAS,EAAE,IAAI,mBAAU,EAAE,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC3E,MAAM,UAAU,GAAG,cAAc,CAAC;YAClC,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,CAAC,EAAE,sBAAsB;YACzB,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAChE,MAAM,UAAU,GAAG,+BAA+B,CAAC;YACnD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,uEAAuE;YACvE,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAElD,8BAA8B;YAC9B,MAAM,SAAS,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC/D,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,MAAM,UAAU,GAAG,iCAAiC,CAAC;YACrD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,sBAAsB;YACtB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAE7B,iDAAiD;YACjD,MAAM,cAAc,GAAG,MAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YACzF,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAElC,0CAA0C;YAC1C,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC9D,MAAM,UAAU,GAAG,oCAAoC,CAAC;YACxD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,2CAA2C;YAC3C,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,oEAAoE;YACpE,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YACnE,kCAAkC;YAClC,oCAAoC;YACpC,MAAM,UAAU,GAAG,kDAAkD,CAAC;YACtE,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,yEAAyE;YACzE,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAE/C,6CAA6C;YAC7C,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAE5C,8DAA8D;YAC9D,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YACnE,MAAM,UAAU,GAAG,8CAA8C,CAAC;YAClE,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,kDAAkD;YAClD,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACtD,MAAM,UAAU,GAAG,4BAA4B,CAAC;YAChD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,qBAAqB;YACrB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,2CAA2C;YAC3C,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YAClE,MAAM,UAAU,GAAG,kCAAkC,CAAC;YACtD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,sBAAsB;YACtB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACtE,MAAM,UAAU,GAAG,uCAAuC,CAAC;YAC3D,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,uBAAuB;YACvB,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CACxD,EAAE,EACF,UAAU,EACV,QAAQ,EACR,SAAS,CACT,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAE7B,4CAA4C;YAC5C,MAAM,WAAW,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;YACzE,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,WAAY,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;YACnD,MAAM,CAAC,WAAY,CAAC,eAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;QACtE,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QAC1C,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YACnE,MAAM,UAAU,GAAG,mCAAmC,CAAC;YACvD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAEvF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,CAAC,MAAO,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,CAAC,MAAO,CAAC,aAAc,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,MAAO,CAAC,aAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YACnE,MAAM,UAAU,GAAG,mCAAmC,CAAC;YACvD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAEvF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;YAE5C,qFAAqF;YACrF,MAAM,OAAO,GAAG,MAAO,CAAC,aAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/C,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC3D,MAAM,UAAU,GAAG,mCAAmC,CAAC;YACvD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAEvF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,CAAC,MAAO,CAAC,YAAa,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAExD,4EAA4E;YAC5E,MAAM,WAAW,GAAG,MAAO,CAAC,YAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAClD,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACzD,MAAM,UAAU,GAAG,8CAA8C,CAAC;YAClE,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,yBAAyB,CACzD,EAAE,EACF,UAAU,EACV,EAAE,EACF,iBAAiB,CACjB,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACpD,0CAA0C;YAC1C,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,kBAAkB,CAAC,CAAC,UAAoB,EAAE,EAAE;gBACrF,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBAC5B,IAAI,IAAI,KAAK,KAAK;wBACjB,OAAO,4FAA4F,CAAC;oBACrG,OAAO,IAAI,CAAC;gBACb,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,kCAAkC,CAAC;YACtD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YAEtF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAO,CAAC,aAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAE/C,8DAA8D;YAC9D,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC9D,gCAAgC;YAChC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC;gBACtD,MAAM;gBACN,YAAY;gBACZ,aAAa;gBACb,YAAY;gBACZ,YAAY;gBACZ,iBAAiB;gBACjB,iBAAiB;gBACjB,SAAS,EAAE,cAAc;gBACzB,UAAU,CAAC,cAAc;aACzB,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,+BAA+B,CAAC;YACnD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YAEzF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAE7B,iDAAiD;YACjD,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;YACjE,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE3C,MAAM,SAAS,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;YACrE,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE/C,MAAM,UAAU,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC;YAC3E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEhD,mDAAmD;YACnD,MAAM,SAAS,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAC/D,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE1C,MAAM,MAAM,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YAC/D,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEvC,MAAM,OAAO,GAAG,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YACjE,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACrD,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC;gBACtD,iBAAiB,EAAE,gBAAgB;gBACnC,cAAc,EAAE,eAAe;gBAC/B,YAAY,EAAE,cAAc;gBAC5B,cAAc,EAAE,WAAW;gBAC3B,iBAAiB,EAAE,aAAa;gBAChC,mBAAmB,EAAE,eAAe;gBACpC,WAAW,EAAE,4BAA4B;gBACzC,cAAc,EAAE,8BAA8B;gBAC9C,UAAU,EAAE,iCAAiC;gBAC7C,aAAa,CAAC,+BAA+B;aAC7C,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,+BAA+B,CAAC;YACnD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YAEzF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAE7B,gBAAgB;YAChB,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7F,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1F,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxF,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1F,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7F,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CACpF,OAAO,CACP,CAAC;YAEF,oBAAoB;YACpB,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClF,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrF,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjF,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC7C,MAAM,UAAU,GAAG,+BAA+B,CAAC;YACnD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACrC,UAAU,EACV,UAAU,EACV,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,EACJ,EAAE,CAAC,UAAU,CAAC,GAAG,CACjB,CAAC;YAEF,+BAA+B;YAC/B,iBAAiB,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YAE1E,cAAc;YACd,iBAAiB,CAAC,UAAU,EAAE,CAAC;YAE/B,yBAAyB;YACzB,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;YAEvF,wBAAwB;YACxB,MAAM,MAAM,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YAEzF,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ConflictClassDetection.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConflictClassDetection.spec.d.ts","sourceRoot":"","sources":["../../src/services/ConflictClassDetection.spec.ts"],"names":[],"mappings":""}