@futdevpro/dynamo-eslint 1.14.4 → 1.14.7

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 (67) hide show
  1. package/.vscode/settings.json +0 -2
  2. package/build/configs/base.js +29 -7
  3. package/build/configs/base.js.map +1 -1
  4. package/build/plugin/index.d.ts +8 -0
  5. package/build/plugin/index.d.ts.map +1 -1
  6. package/build/plugin/index.js +12 -0
  7. package/build/plugin/index.js.map +1 -1
  8. package/build/plugin/rules/explicit-types.d.ts.map +1 -1
  9. package/build/plugin/rules/explicit-types.js +16 -2
  10. package/build/plugin/rules/explicit-types.js.map +1 -1
  11. package/build/plugin/rules/import/import-order.d.ts.map +1 -1
  12. package/build/plugin/rules/import/import-order.js +0 -9
  13. package/build/plugin/rules/import/import-order.js.map +1 -1
  14. package/build/plugin/rules/import/no-js-import.d.ts.map +1 -1
  15. package/build/plugin/rules/import/no-js-import.js +12 -15
  16. package/build/plugin/rules/import/no-js-import.js.map +1 -1
  17. package/build/plugin/rules/prefer-enum-over-string-union.d.ts +4 -0
  18. package/build/plugin/rules/prefer-enum-over-string-union.d.ts.map +1 -0
  19. package/build/plugin/rules/prefer-enum-over-string-union.js +290 -0
  20. package/build/plugin/rules/prefer-enum-over-string-union.js.map +1 -0
  21. package/build/plugin/rules/prefer-enum-over-string-union.spec.d.ts +2 -0
  22. package/build/plugin/rules/prefer-enum-over-string-union.spec.d.ts.map +1 -0
  23. package/build/plugin/rules/prefer-enum-over-string-union.spec.js +505 -0
  24. package/build/plugin/rules/prefer-enum-over-string-union.spec.js.map +1 -0
  25. package/build/plugin/rules/prefer-interface-over-duplicate-types.d.ts +4 -0
  26. package/build/plugin/rules/prefer-interface-over-duplicate-types.d.ts.map +1 -0
  27. package/build/plugin/rules/prefer-interface-over-duplicate-types.js +231 -0
  28. package/build/plugin/rules/prefer-interface-over-duplicate-types.js.map +1 -0
  29. package/build/plugin/rules/prefer-interface-over-duplicate-types.spec.d.ts +2 -0
  30. package/build/plugin/rules/prefer-interface-over-duplicate-types.spec.d.ts.map +1 -0
  31. package/build/plugin/rules/prefer-interface-over-duplicate-types.spec.js +324 -0
  32. package/build/plugin/rules/prefer-interface-over-duplicate-types.spec.js.map +1 -0
  33. package/build/plugin/rules/require-jsdoc-description.d.ts +4 -0
  34. package/build/plugin/rules/require-jsdoc-description.d.ts.map +1 -0
  35. package/build/plugin/rules/require-jsdoc-description.js +379 -0
  36. package/build/plugin/rules/require-jsdoc-description.js.map +1 -0
  37. package/build/plugin/rules/require-jsdoc-description.spec.d.ts +2 -0
  38. package/build/plugin/rules/require-jsdoc-description.spec.d.ts.map +1 -0
  39. package/build/plugin/rules/require-jsdoc-description.spec.js +452 -0
  40. package/build/plugin/rules/require-jsdoc-description.spec.js.map +1 -0
  41. package/build/plugin/rules/require-test-description-prefix.d.ts +4 -0
  42. package/build/plugin/rules/require-test-description-prefix.d.ts.map +1 -0
  43. package/build/plugin/rules/require-test-description-prefix.js +135 -0
  44. package/build/plugin/rules/require-test-description-prefix.js.map +1 -0
  45. package/build/plugin/rules/require-test-description-prefix.spec.d.ts +2 -0
  46. package/build/plugin/rules/require-test-description-prefix.spec.d.ts.map +1 -0
  47. package/build/plugin/rules/require-test-description-prefix.spec.js +371 -0
  48. package/build/plugin/rules/require-test-description-prefix.spec.js.map +1 -0
  49. package/build/scripts/eslintrc-audit.js.map +1 -1
  50. package/futdevpro-dynamo-eslint-1.14.7.tgz +0 -0
  51. package/package.json +1 -1
  52. package/samples/package.json.example +1 -1
  53. package/src/configs/base.ts +45 -23
  54. package/src/plugin/index.ts +12 -0
  55. package/src/plugin/rules/explicit-types.ts +19 -2
  56. package/src/plugin/rules/import/import-order.ts +0 -9
  57. package/src/plugin/rules/import/no-js-import.ts +19 -17
  58. package/src/plugin/rules/prefer-enum-over-string-union.spec.ts +583 -0
  59. package/src/plugin/rules/prefer-enum-over-string-union.ts +333 -0
  60. package/src/plugin/rules/prefer-interface-over-duplicate-types.spec.ts +374 -0
  61. package/src/plugin/rules/prefer-interface-over-duplicate-types.ts +276 -0
  62. package/src/plugin/rules/require-jsdoc-description.spec.ts +542 -0
  63. package/src/plugin/rules/require-jsdoc-description.ts +436 -0
  64. package/src/plugin/rules/require-test-description-prefix.spec.ts +459 -0
  65. package/src/plugin/rules/require-test-description-prefix.ts +153 -0
  66. package/src/scripts/eslintrc-audit.ts +8 -6
  67. package/futdevpro-dynamo-eslint-01.14.4.tgz +0 -0
@@ -0,0 +1,505 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const prefer_enum_over_string_union_1 = tslib_1.__importDefault(require("./prefer-enum-over-string-union"));
5
+ describe('| prefer-enum-over-string-union', () => {
6
+ it('| should be a valid ESLint rule', () => {
7
+ expect(prefer_enum_over_string_union_1.default.meta.type).toBe('suggestion');
8
+ expect(prefer_enum_over_string_union_1.default.meta.docs.description).toBe('Suggest using enums instead of union types of string literals');
9
+ expect(prefer_enum_over_string_union_1.default.meta.fixable).toBe('code');
10
+ });
11
+ it('| should not report when union has less than threshold values', () => {
12
+ let reportCalled = false;
13
+ const mockContext = {
14
+ report: (options) => {
15
+ reportCalled = true;
16
+ },
17
+ options: [{ minValues: 3 }],
18
+ sourceCode: {
19
+ getText: () => '',
20
+ },
21
+ };
22
+ const rule = prefer_enum_over_string_union_1.default.create(mockContext);
23
+ const mockNode = {
24
+ type: 'TSTypeAliasDeclaration',
25
+ id: { name: 'Status' },
26
+ typeAnnotation: {
27
+ type: 'TSUnionType',
28
+ types: [
29
+ { type: 'TSLiteralType', literal: { value: 'active' } },
30
+ { type: 'TSLiteralType', literal: { value: 'inactive' } },
31
+ ],
32
+ },
33
+ };
34
+ rule.TSTypeAliasDeclaration(mockNode);
35
+ expect(reportCalled).toBe(false);
36
+ });
37
+ it('| should report when union has threshold or more string literals', () => {
38
+ let reportCalled = false;
39
+ const mockContext = {
40
+ report: (options) => {
41
+ reportCalled = true;
42
+ expect(options.messageId).toBe('preferEnum');
43
+ expect(options.data.count).toBe('3');
44
+ expect(options.fix).toBeDefined();
45
+ },
46
+ options: [{ minValues: 3 }],
47
+ sourceCode: {
48
+ getText: () => 'type Status = \'active\' | \'inactive\' | \'pending\'',
49
+ },
50
+ };
51
+ const rule = prefer_enum_over_string_union_1.default.create(mockContext);
52
+ const mockNode = {
53
+ type: 'TSTypeAliasDeclaration',
54
+ id: { name: 'Status' },
55
+ typeAnnotation: {
56
+ type: 'TSUnionType',
57
+ types: [
58
+ { type: 'TSLiteralType', literal: { value: 'active' } },
59
+ { type: 'TSLiteralType', literal: { value: 'inactive' } },
60
+ { type: 'TSLiteralType', literal: { value: 'pending' } },
61
+ ],
62
+ },
63
+ };
64
+ rule.TSTypeAliasDeclaration(mockNode);
65
+ expect(reportCalled).toBe(true);
66
+ });
67
+ it('| should not report when union contains non-string literals', () => {
68
+ let reportCalled = false;
69
+ const mockContext = {
70
+ report: (options) => {
71
+ reportCalled = true;
72
+ },
73
+ options: [{ minValues: 3 }],
74
+ sourceCode: {
75
+ getText: () => '',
76
+ },
77
+ };
78
+ const rule = prefer_enum_over_string_union_1.default.create(mockContext);
79
+ const mockNode = {
80
+ type: 'TSTypeAliasDeclaration',
81
+ id: { name: 'Value' },
82
+ typeAnnotation: {
83
+ type: 'TSUnionType',
84
+ types: [
85
+ { type: 'TSLiteralType', literal: { value: 'active' } },
86
+ { type: 'TSLiteralType', literal: { value: 'inactive' } },
87
+ { type: 'TSNumberKeyword' },
88
+ ],
89
+ },
90
+ };
91
+ rule.TSTypeAliasDeclaration(mockNode);
92
+ expect(reportCalled).toBe(false);
93
+ });
94
+ it('| should not report when allowTypeAliases is true', () => {
95
+ let reportCalled = false;
96
+ const mockContext = {
97
+ report: (options) => {
98
+ reportCalled = true;
99
+ },
100
+ options: [{ minValues: 3, allowTypeAliases: true }],
101
+ sourceCode: {
102
+ getText: () => '',
103
+ },
104
+ };
105
+ const rule = prefer_enum_over_string_union_1.default.create(mockContext);
106
+ const mockNode = {
107
+ type: 'TSTypeAliasDeclaration',
108
+ id: { name: 'Status' },
109
+ typeAnnotation: {
110
+ type: 'TSUnionType',
111
+ types: [
112
+ { type: 'TSLiteralType', literal: { value: 'active' } },
113
+ { type: 'TSLiteralType', literal: { value: 'inactive' } },
114
+ { type: 'TSLiteralType', literal: { value: 'pending' } },
115
+ ],
116
+ },
117
+ };
118
+ rule.TSTypeAliasDeclaration(mockNode);
119
+ expect(reportCalled).toBe(false);
120
+ });
121
+ it('| should report on interface properties', () => {
122
+ let reportCalled = false;
123
+ const mockContext = {
124
+ report: (options) => {
125
+ reportCalled = true;
126
+ expect(options.messageId).toBe('preferEnum');
127
+ },
128
+ options: [{ minValues: 3 }],
129
+ sourceCode: {
130
+ getText: () => '',
131
+ },
132
+ };
133
+ const rule = prefer_enum_over_string_union_1.default.create(mockContext);
134
+ const mockNode = {
135
+ type: 'TSPropertySignature',
136
+ key: { name: 'role' },
137
+ typeAnnotation: {
138
+ typeAnnotation: {
139
+ type: 'TSUnionType',
140
+ types: [
141
+ { type: 'TSLiteralType', literal: { value: 'admin' } },
142
+ { type: 'TSLiteralType', literal: { value: 'user' } },
143
+ { type: 'TSLiteralType', literal: { value: 'guest' } },
144
+ ],
145
+ },
146
+ },
147
+ parent: { type: 'TSInterfaceDeclaration' },
148
+ };
149
+ rule.TSPropertySignature(mockNode);
150
+ expect(reportCalled).toBe(true);
151
+ });
152
+ it('| should report on class properties', () => {
153
+ let reportCalled = false;
154
+ const mockContext = {
155
+ report: (options) => {
156
+ reportCalled = true;
157
+ expect(options.messageId).toBe('preferEnum');
158
+ },
159
+ options: [{ minValues: 3 }],
160
+ sourceCode: {
161
+ getText: () => '',
162
+ },
163
+ };
164
+ const rule = prefer_enum_over_string_union_1.default.create(mockContext);
165
+ const mockNode = {
166
+ type: 'PropertyDefinition',
167
+ key: { name: 'status' },
168
+ typeAnnotation: {
169
+ typeAnnotation: {
170
+ type: 'TSUnionType',
171
+ types: [
172
+ { type: 'TSLiteralType', literal: { value: 'active' } },
173
+ { type: 'TSLiteralType', literal: { value: 'inactive' } },
174
+ { type: 'TSLiteralType', literal: { value: 'pending' } },
175
+ ],
176
+ },
177
+ },
178
+ parent: { type: 'ClassDeclaration' },
179
+ };
180
+ rule.PropertyDefinition(mockNode);
181
+ expect(reportCalled).toBe(true);
182
+ });
183
+ it('| should report on function parameters', () => {
184
+ let reportCalled = false;
185
+ const mockContext = {
186
+ report: (options) => {
187
+ reportCalled = true;
188
+ expect(options.messageId).toBe('preferEnum');
189
+ },
190
+ options: [{ minValues: 3 }],
191
+ sourceCode: {
192
+ getText: () => '',
193
+ },
194
+ };
195
+ const rule = prefer_enum_over_string_union_1.default.create(mockContext);
196
+ const mockNode = {
197
+ type: 'FunctionDeclaration',
198
+ id: { name: 'setStatus' },
199
+ params: [
200
+ {
201
+ type: 'Identifier',
202
+ name: 'status',
203
+ typeAnnotation: {
204
+ typeAnnotation: {
205
+ type: 'TSUnionType',
206
+ types: [
207
+ { type: 'TSLiteralType', literal: { value: 'active' } },
208
+ { type: 'TSLiteralType', literal: { value: 'inactive' } },
209
+ { type: 'TSLiteralType', literal: { value: 'pending' } },
210
+ ],
211
+ },
212
+ },
213
+ },
214
+ ],
215
+ };
216
+ rule.FunctionDeclaration(mockNode);
217
+ expect(reportCalled).toBe(true);
218
+ });
219
+ it('| should report on arrow function parameters', () => {
220
+ let reportCalled = false;
221
+ const mockContext = {
222
+ report: (options) => {
223
+ reportCalled = true;
224
+ expect(options.messageId).toBe('preferEnum');
225
+ },
226
+ options: [{ minValues: 3 }],
227
+ sourceCode: {
228
+ getText: () => '',
229
+ },
230
+ };
231
+ const rule = prefer_enum_over_string_union_1.default.create(mockContext);
232
+ const mockNode = {
233
+ type: 'ArrowFunctionExpression',
234
+ params: [
235
+ {
236
+ type: 'Identifier',
237
+ name: 'status',
238
+ typeAnnotation: {
239
+ typeAnnotation: {
240
+ type: 'TSUnionType',
241
+ types: [
242
+ { type: 'TSLiteralType', literal: { value: 'active' } },
243
+ { type: 'TSLiteralType', literal: { value: 'inactive' } },
244
+ { type: 'TSLiteralType', literal: { value: 'pending' } },
245
+ ],
246
+ },
247
+ },
248
+ },
249
+ ],
250
+ };
251
+ rule.ArrowFunctionExpression(mockNode);
252
+ expect(reportCalled).toBe(true);
253
+ });
254
+ it('| should report on variable declarations', () => {
255
+ let reportCalled = false;
256
+ const mockContext = {
257
+ report: (options) => {
258
+ reportCalled = true;
259
+ expect(options.messageId).toBe('preferEnum');
260
+ },
261
+ options: [{ minValues: 3 }],
262
+ sourceCode: {
263
+ getText: () => '',
264
+ },
265
+ };
266
+ const rule = prefer_enum_over_string_union_1.default.create(mockContext);
267
+ const mockNode = {
268
+ type: 'VariableDeclarator',
269
+ id: { name: 'status' },
270
+ typeAnnotation: {
271
+ typeAnnotation: {
272
+ type: 'TSUnionType',
273
+ types: [
274
+ { type: 'TSLiteralType', literal: { value: 'active' } },
275
+ { type: 'TSLiteralType', literal: { value: 'inactive' } },
276
+ { type: 'TSLiteralType', literal: { value: 'pending' } },
277
+ ],
278
+ },
279
+ },
280
+ parent: { type: 'VariableDeclaration' },
281
+ };
282
+ rule.VariableDeclarator(mockNode);
283
+ expect(reportCalled).toBe(true);
284
+ });
285
+ it('| should not report on Angular @Input() properties', () => {
286
+ let reportCalled = false;
287
+ const mockContext = {
288
+ report: (options) => {
289
+ reportCalled = true;
290
+ },
291
+ options: [{ minValues: 3 }],
292
+ sourceCode: {
293
+ getText: () => '',
294
+ },
295
+ };
296
+ const rule = prefer_enum_over_string_union_1.default.create(mockContext);
297
+ const mockNode = {
298
+ type: 'PropertyDefinition',
299
+ key: { name: 'mode' },
300
+ decorators: [
301
+ {
302
+ expression: {
303
+ type: 'CallExpression',
304
+ callee: { name: 'Input' },
305
+ },
306
+ },
307
+ ],
308
+ typeAnnotation: {
309
+ typeAnnotation: {
310
+ type: 'TSUnionType',
311
+ types: [
312
+ { type: 'TSLiteralType', literal: { value: 'light' } },
313
+ { type: 'TSLiteralType', literal: { value: 'dark' } },
314
+ { type: 'TSLiteralType', literal: { value: 'auto' } },
315
+ ],
316
+ },
317
+ },
318
+ parent: { type: 'ClassDeclaration' },
319
+ };
320
+ rule.PropertyDefinition(mockNode);
321
+ expect(reportCalled).toBe(false);
322
+ });
323
+ it('| should not report on Angular input() signal properties', () => {
324
+ let reportCalled = false;
325
+ const mockContext = {
326
+ report: (options) => {
327
+ reportCalled = true;
328
+ },
329
+ options: [{ minValues: 3 }],
330
+ sourceCode: {
331
+ getText: () => '',
332
+ },
333
+ };
334
+ const rule = prefer_enum_over_string_union_1.default.create(mockContext);
335
+ const mockNode = {
336
+ type: 'PropertyDefinition',
337
+ key: { name: 'size' },
338
+ value: {
339
+ type: 'CallExpression',
340
+ callee: { name: 'input' },
341
+ },
342
+ typeAnnotation: {
343
+ typeAnnotation: {
344
+ type: 'TSUnionType',
345
+ types: [
346
+ { type: 'TSLiteralType', literal: { value: 'small' } },
347
+ { type: 'TSLiteralType', literal: { value: 'medium' } },
348
+ { type: 'TSLiteralType', literal: { value: 'large' } },
349
+ ],
350
+ },
351
+ },
352
+ parent: { type: 'ClassDeclaration' },
353
+ };
354
+ rule.PropertyDefinition(mockNode);
355
+ expect(reportCalled).toBe(false);
356
+ });
357
+ it('| should not report on Angular input.required() signal properties', () => {
358
+ let reportCalled = false;
359
+ const mockContext = {
360
+ report: (options) => {
361
+ reportCalled = true;
362
+ },
363
+ options: [{ minValues: 3 }],
364
+ sourceCode: {
365
+ getText: () => '',
366
+ },
367
+ };
368
+ const rule = prefer_enum_over_string_union_1.default.create(mockContext);
369
+ const mockNode = {
370
+ type: 'PropertyDefinition',
371
+ key: { name: 'theme' },
372
+ value: {
373
+ type: 'CallExpression',
374
+ callee: {
375
+ type: 'MemberExpression',
376
+ object: { name: 'input' },
377
+ property: { name: 'required' },
378
+ },
379
+ },
380
+ typeAnnotation: {
381
+ typeAnnotation: {
382
+ type: 'TSUnionType',
383
+ types: [
384
+ { type: 'TSLiteralType', literal: { value: 'light' } },
385
+ { type: 'TSLiteralType', literal: { value: 'dark' } },
386
+ { type: 'TSLiteralType', literal: { value: 'auto' } },
387
+ ],
388
+ },
389
+ },
390
+ parent: { type: 'ClassDeclaration' },
391
+ };
392
+ rule.PropertyDefinition(mockNode);
393
+ expect(reportCalled).toBe(false);
394
+ });
395
+ it('| should handle custom minValues threshold', () => {
396
+ let reportCalled = false;
397
+ const mockContext = {
398
+ report: (options) => {
399
+ reportCalled = true;
400
+ expect(options.data.count).toBe('2');
401
+ },
402
+ options: [{ minValues: 2 }],
403
+ sourceCode: {
404
+ getText: () => '',
405
+ },
406
+ };
407
+ const rule = prefer_enum_over_string_union_1.default.create(mockContext);
408
+ const mockNode = {
409
+ type: 'TSTypeAliasDeclaration',
410
+ id: { name: 'Binary' },
411
+ typeAnnotation: {
412
+ type: 'TSUnionType',
413
+ types: [
414
+ { type: 'TSLiteralType', literal: { value: 'yes' } },
415
+ { type: 'TSLiteralType', literal: { value: 'no' } },
416
+ ],
417
+ },
418
+ };
419
+ rule.TSTypeAliasDeclaration(mockNode);
420
+ expect(reportCalled).toBe(true);
421
+ });
422
+ it('| should handle edge cases with empty strings and special characters', () => {
423
+ let reportCalled = false;
424
+ const mockContext = {
425
+ report: (options) => {
426
+ reportCalled = true;
427
+ expect(options.data.count).toBe('3');
428
+ },
429
+ options: [{ minValues: 3 }],
430
+ sourceCode: {
431
+ getText: () => '',
432
+ },
433
+ };
434
+ const rule = prefer_enum_over_string_union_1.default.create(mockContext);
435
+ const mockNode = {
436
+ type: 'TSTypeAliasDeclaration',
437
+ id: { name: 'Special' },
438
+ typeAnnotation: {
439
+ type: 'TSUnionType',
440
+ types: [
441
+ { type: 'TSLiteralType', literal: { value: '' } },
442
+ { type: 'TSLiteralType', literal: { value: 'hello-world' } },
443
+ { type: 'TSLiteralType', literal: { value: 'test_value' } },
444
+ ],
445
+ },
446
+ };
447
+ rule.TSTypeAliasDeclaration(mockNode);
448
+ expect(reportCalled).toBe(true);
449
+ });
450
+ it('| should provide auto-fix for type aliases', () => {
451
+ const mockContext = {
452
+ report: (options) => {
453
+ expect(options.fix).toBeDefined();
454
+ expect(typeof options.fix).toBe('function');
455
+ // Test the fix function
456
+ const fixResult = options.fix({
457
+ replaceText: (node, text) => {
458
+ expect(text).toContain('Status');
459
+ return [];
460
+ },
461
+ });
462
+ expect(Array.isArray(fixResult)).toBe(true);
463
+ },
464
+ options: [{ minValues: 3 }],
465
+ sourceCode: {
466
+ getText: () => 'type Status = \'active\' | \'inactive\' | \'pending\'',
467
+ },
468
+ };
469
+ const rule = prefer_enum_over_string_union_1.default.create(mockContext);
470
+ const mockNode = {
471
+ type: 'TSTypeAliasDeclaration',
472
+ id: { name: 'Status' },
473
+ typeAnnotation: {
474
+ type: 'TSUnionType',
475
+ types: [
476
+ { type: 'TSLiteralType', literal: { value: 'active' } },
477
+ { type: 'TSLiteralType', literal: { value: 'inactive' } },
478
+ { type: 'TSLiteralType', literal: { value: 'pending' } },
479
+ ],
480
+ },
481
+ };
482
+ rule.TSTypeAliasDeclaration(mockNode);
483
+ });
484
+ it('| should handle errors gracefully', () => {
485
+ const mockContext = {
486
+ report: (options) => {
487
+ // Should not throw
488
+ },
489
+ options: [{ minValues: 3 }],
490
+ sourceCode: {
491
+ getText: () => '',
492
+ },
493
+ };
494
+ const rule = prefer_enum_over_string_union_1.default.create(mockContext);
495
+ // Test with malformed nodes
496
+ const malformedNode = {
497
+ type: 'TSTypeAliasDeclaration',
498
+ // Missing required properties
499
+ };
500
+ expect(() => {
501
+ rule.TSTypeAliasDeclaration(malformedNode);
502
+ }).not.toThrow();
503
+ });
504
+ });
505
+ //# sourceMappingURL=prefer-enum-over-string-union.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefer-enum-over-string-union.spec.js","sourceRoot":"","sources":["../../../src/plugin/rules/prefer-enum-over-string-union.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Rule } from 'eslint';
2
+ declare const rule: Rule.RuleModule;
3
+ export default rule;
4
+ //# sourceMappingURL=prefer-interface-over-duplicate-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefer-interface-over-duplicate-types.d.ts","sourceRoot":"","sources":["../../../src/plugin/rules/prefer-interface-over-duplicate-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAY9B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,UAqQhB,CAAC;AAEF,eAAe,IAAI,CAAC"}