invar-tools 1.17.2__py3-none-any.whl → 1.17.3__py3-none-any.whl

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. invar/node_tools/.gitignore +10 -6
  2. invar/node_tools/eslint-plugin/rules/__tests__/behavior.test.js +1321 -0
  3. invar/node_tools/eslint-plugin/rules/__tests__/behavior.test.js.map +1 -0
  4. invar/node_tools/eslint-plugin/rules/__tests__/e2e-scenarios.test.js +414 -0
  5. invar/node_tools/eslint-plugin/rules/__tests__/e2e-scenarios.test.js.map +1 -0
  6. invar/node_tools/eslint-plugin/rules/__tests__/fixtures/core/function-lengths.js +142 -0
  7. invar/node_tools/eslint-plugin/rules/__tests__/fixtures/core/function-lengths.js.map +1 -0
  8. invar/node_tools/eslint-plugin/rules/__tests__/fixtures/core/has-io-imports.js +15 -0
  9. invar/node_tools/eslint-plugin/rules/__tests__/fixtures/core/has-io-imports.js.map +1 -0
  10. invar/node_tools/eslint-plugin/rules/__tests__/fixtures/core/valid-small.js +27 -0
  11. invar/node_tools/eslint-plugin/rules/__tests__/fixtures/core/valid-small.js.map +1 -0
  12. invar/node_tools/eslint-plugin/rules/__tests__/fixtures/exported-functions.js +43 -0
  13. invar/node_tools/eslint-plugin/rules/__tests__/fixtures/exported-functions.js.map +1 -0
  14. invar/node_tools/eslint-plugin/rules/__tests__/fixtures/shell/with-io.js +27 -0
  15. invar/node_tools/eslint-plugin/rules/__tests__/fixtures/shell/with-io.js.map +1 -0
  16. invar/node_tools/eslint-plugin/rules/__tests__/fixtures/tests/large.test.js +260 -0
  17. invar/node_tools/eslint-plugin/rules/__tests__/fixtures/tests/large.test.js.map +1 -0
  18. invar/node_tools/eslint-plugin/rules/max-file-lines.js +105 -0
  19. invar/node_tools/eslint-plugin/rules/max-file-lines.js.map +1 -0
  20. invar/node_tools/eslint-plugin/rules/max-function-lines.js +133 -0
  21. invar/node_tools/eslint-plugin/rules/max-function-lines.js.map +1 -0
  22. invar/node_tools/eslint-plugin/rules/no-any-in-schema.js +39 -0
  23. invar/node_tools/eslint-plugin/rules/no-any-in-schema.js.map +1 -0
  24. invar/node_tools/eslint-plugin/rules/no-empty-schema.js +69 -0
  25. invar/node_tools/eslint-plugin/rules/no-empty-schema.js.map +1 -0
  26. invar/node_tools/eslint-plugin/rules/no-impure-calls-in-core.js +52 -0
  27. invar/node_tools/eslint-plugin/rules/no-impure-calls-in-core.js.map +1 -0
  28. invar/node_tools/eslint-plugin/rules/no-io-in-core.js +99 -0
  29. invar/node_tools/eslint-plugin/rules/no-io-in-core.js.map +1 -0
  30. invar/node_tools/eslint-plugin/rules/no-pure-logic-in-shell.js +197 -0
  31. invar/node_tools/eslint-plugin/rules/no-pure-logic-in-shell.js.map +1 -0
  32. invar/node_tools/eslint-plugin/rules/no-redundant-type-schema.js +99 -0
  33. invar/node_tools/eslint-plugin/rules/no-redundant-type-schema.js.map +1 -0
  34. invar/node_tools/eslint-plugin/rules/no-runtime-imports.js +66 -0
  35. invar/node_tools/eslint-plugin/rules/no-runtime-imports.js.map +1 -0
  36. invar/node_tools/eslint-plugin/rules/require-complete-validation.js +104 -0
  37. invar/node_tools/eslint-plugin/rules/require-complete-validation.js.map +1 -0
  38. invar/node_tools/eslint-plugin/rules/require-jsdoc-example.js +81 -0
  39. invar/node_tools/eslint-plugin/rules/require-jsdoc-example.js.map +1 -0
  40. invar/node_tools/eslint-plugin/rules/require-schema-validation.js +308 -0
  41. invar/node_tools/eslint-plugin/rules/require-schema-validation.js.map +1 -0
  42. invar/node_tools/eslint-plugin/rules/shell-complexity.js +273 -0
  43. invar/node_tools/eslint-plugin/rules/shell-complexity.js.map +1 -0
  44. invar/node_tools/eslint-plugin/rules/shell-result-type.js +138 -0
  45. invar/node_tools/eslint-plugin/rules/shell-result-type.js.map +1 -0
  46. invar/node_tools/eslint-plugin/rules/thin-entry-points.js +174 -0
  47. invar/node_tools/eslint-plugin/rules/thin-entry-points.js.map +1 -0
  48. invar/node_tools/eslint-plugin/utils/layer-detection.js +91 -0
  49. invar/node_tools/eslint-plugin/utils/layer-detection.js.map +1 -0
  50. invar/node_tools/eslint-plugin/utils/math-example.js +31 -0
  51. invar/node_tools/eslint-plugin/utils/math-example.js.map +1 -0
  52. {invar_tools-1.17.2.dist-info → invar_tools-1.17.3.dist-info}/METADATA +1 -1
  53. {invar_tools-1.17.2.dist-info → invar_tools-1.17.3.dist-info}/RECORD +58 -8
  54. {invar_tools-1.17.2.dist-info → invar_tools-1.17.3.dist-info}/WHEEL +0 -0
  55. {invar_tools-1.17.2.dist-info → invar_tools-1.17.3.dist-info}/entry_points.txt +0 -0
  56. {invar_tools-1.17.2.dist-info → invar_tools-1.17.3.dist-info}/licenses/LICENSE +0 -0
  57. {invar_tools-1.17.2.dist-info → invar_tools-1.17.3.dist-info}/licenses/LICENSE-GPL +0 -0
  58. {invar_tools-1.17.2.dist-info → invar_tools-1.17.3.dist-info}/licenses/NOTICE +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"behavior.test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/behavior.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,414 @@
1
+ /**
2
+ * E2E Scenario Tests for Invar ESLint Rules
3
+ *
4
+ * These tests simulate real-world usage patterns by creating
5
+ * complete code scenarios rather than isolated snippets.
6
+ *
7
+ * Unlike unit tests (behavior.test.ts), these tests:
8
+ * - Use realistic file structures
9
+ * - Test multiple rules together
10
+ * - Simulate actual agent development patterns
11
+ * - Verify cross-file interactions
12
+ */
13
+ import { RuleTester } from 'eslint';
14
+ import { noRuntimeImports } from '../no-runtime-imports';
15
+ import { noImpureCallsInCore } from '../no-impure-calls-in-core';
16
+ import { noPureLogicInShell } from '../no-pure-logic-in-shell';
17
+ import { shellComplexity } from '../shell-complexity';
18
+ import { thinEntryPoints } from '../thin-entry-points';
19
+ const ruleTester = new RuleTester({
20
+ languageOptions: {
21
+ ecmaVersion: 2022,
22
+ sourceType: 'module',
23
+ },
24
+ });
25
+ describe('E2E Scenario 1: Core/Shell Separation Violation', () => {
26
+ /**
27
+ * Scenario: Developer creates a Core calculator that reads config from file
28
+ * Expected: Should detect Core importing from Shell and suggest refactoring
29
+ */
30
+ it('should detect Core importing Shell config reader', () => {
31
+ const coreCalculatorCode = `
32
+ // src/core/calculator.ts
33
+ import { loadConfig } from '../shell/config-loader';
34
+
35
+ export function calculateDiscount(price: number): number {
36
+ const config = loadConfig();
37
+ return price * config.discountRate;
38
+ }
39
+ `;
40
+ ruleTester.run('no-impure-calls-in-core', noImpureCallsInCore, {
41
+ valid: [],
42
+ invalid: [{
43
+ code: coreCalculatorCode,
44
+ filename: '/project/src/core/calculator.ts',
45
+ errors: [{
46
+ messageId: 'shellImportInCore',
47
+ data: { source: '../shell/config-loader' },
48
+ }],
49
+ }],
50
+ });
51
+ });
52
+ it('should allow refactored version with dependency injection', () => {
53
+ const refactoredCoreCode = `
54
+ // src/core/calculator.ts
55
+ export interface DiscountConfig {
56
+ discountRate: number;
57
+ }
58
+
59
+ export function calculateDiscount(
60
+ price: number,
61
+ config: DiscountConfig
62
+ ): number {
63
+ return price * config.discountRate;
64
+ }
65
+ `;
66
+ ruleTester.run('no-impure-calls-in-core', noImpureCallsInCore, {
67
+ valid: [{
68
+ code: refactoredCoreCode,
69
+ filename: '/project/src/core/calculator.ts',
70
+ }],
71
+ invalid: [],
72
+ });
73
+ });
74
+ });
75
+ describe('E2E Scenario 2: Shell with Complex Business Logic', () => {
76
+ /**
77
+ * Scenario: Developer writes order processing in Shell with complex calculations
78
+ * Expected: Should warn about pure logic in Shell and high complexity
79
+ */
80
+ it('should detect complex pure logic in Shell function', () => {
81
+ const shellOrderProcessorCode = `
82
+ // src/shell/order-processor.ts
83
+ export async function processOrder(orderId: string) {
84
+ const order = await db.getOrder(orderId);
85
+
86
+ // Complex calculation logic (should be in Core)
87
+ const subtotal = order.items.reduce((sum, item) => {
88
+ return sum + (item.price * item.quantity);
89
+ }, 0);
90
+
91
+ const discount = subtotal > 100 ? subtotal * 0.1 : 0;
92
+ const tax = (subtotal - discount) * 0.08;
93
+ const shipping = subtotal > 50 ? 0 : 10;
94
+ const total = subtotal - discount + tax + shipping;
95
+
96
+ await db.saveOrder({ ...order, total });
97
+ return total;
98
+ }
99
+ `;
100
+ // Note: This might not trigger no-pure-logic-in-shell due to async and db calls
101
+ // But should trigger shell-complexity due to many statements
102
+ ruleTester.run('shell-complexity', shellComplexity, {
103
+ valid: [],
104
+ invalid: [{
105
+ code: shellOrderProcessorCode,
106
+ filename: '/project/src/shell/order-processor.ts',
107
+ errors: [{
108
+ messageId: 'tooManyStatements',
109
+ }],
110
+ }],
111
+ });
112
+ });
113
+ it('should allow refactored version with logic extracted to Core', () => {
114
+ const refactoredShellCode = `
115
+ // src/shell/order-processor.ts
116
+ import { calculateOrderTotal } from '../core/order-calculator';
117
+
118
+ export async function processOrder(orderId: string) {
119
+ const order = await db.getOrder(orderId);
120
+ const total = calculateOrderTotal(order);
121
+ await db.saveOrder({ ...order, total });
122
+ return total;
123
+ }
124
+ `;
125
+ ruleTester.run('shell-complexity', shellComplexity, {
126
+ valid: [{
127
+ code: refactoredShellCode,
128
+ filename: '/project/src/shell/order-processor.ts',
129
+ }],
130
+ invalid: [],
131
+ });
132
+ });
133
+ });
134
+ describe('E2E Scenario 3: Thick Entry Point with Business Logic', () => {
135
+ /**
136
+ * Scenario: Developer implements CLI command with validation and processing
137
+ * Expected: Should detect complex logic in entry point
138
+ */
139
+ it('should detect thick CLI handler with business logic', () => {
140
+ const thickCliCode = `
141
+ // cli.ts
142
+ import * as fs from 'fs';
143
+
144
+ export function handleDeploy(configPath: string) {
145
+ // Validation logic
146
+ if (!configPath) {
147
+ throw new Error('Config path required');
148
+ }
149
+
150
+ if (!configPath.endsWith('.json')) {
151
+ throw new Error('Config must be JSON');
152
+ }
153
+
154
+ // File I/O
155
+ const configData = fs.readFileSync(configPath, 'utf-8');
156
+ const config = JSON.parse(configData);
157
+
158
+ // Validation logic
159
+ if (!config.appName || !config.version) {
160
+ throw new Error('Invalid config');
161
+ }
162
+
163
+ // Processing logic
164
+ const deployInfo = {
165
+ name: config.appName,
166
+ version: config.version,
167
+ timestamp: Date.now(),
168
+ };
169
+
170
+ console.log('Deploying:', deployInfo);
171
+ }
172
+ `;
173
+ ruleTester.run('thin-entry-points', thinEntryPoints, {
174
+ valid: [],
175
+ invalid: [{
176
+ code: thickCliCode,
177
+ filename: '/project/cli.ts',
178
+ errors: [
179
+ { messageId: 'hasComplexLogic' }, // if statements
180
+ { messageId: 'tooMuchLogic' }, // too many statements
181
+ ],
182
+ }],
183
+ });
184
+ });
185
+ it('should allow thin CLI handler that delegates to Shell', () => {
186
+ const thinCliCode = `
187
+ // cli.ts
188
+ import { deployApp } from './shell/deployer';
189
+
190
+ export async function handleDeploy(configPath: string) {
191
+ const result = await deployApp(configPath);
192
+ console.log(result.success ? 'Deployed' : 'Failed');
193
+ }
194
+ `;
195
+ ruleTester.run('thin-entry-points', thinEntryPoints, {
196
+ valid: [{
197
+ code: thinCliCode,
198
+ filename: '/project/cli.ts',
199
+ }],
200
+ invalid: [],
201
+ });
202
+ });
203
+ });
204
+ describe('E2E Scenario 4: Runtime Import for Conditional Logic', () => {
205
+ /**
206
+ * Scenario: Developer uses dynamic import for conditional module loading
207
+ * Expected: Should detect runtime import and suggest top-level import
208
+ */
209
+ it('should detect conditional require() in function', () => {
210
+ const conditionalRequireCode = `
211
+ // src/core/parser.ts
212
+ export function parseData(format: string, data: string) {
213
+ if (format === 'json') {
214
+ const { parseJSON } = require('./json-parser');
215
+ return parseJSON(data);
216
+ } else {
217
+ const { parseXML } = require('./xml-parser');
218
+ return parseXML(data);
219
+ }
220
+ }
221
+ `;
222
+ ruleTester.run('no-runtime-imports', noRuntimeImports, {
223
+ valid: [],
224
+ invalid: [{
225
+ code: conditionalRequireCode,
226
+ filename: '/project/src/core/parser.ts',
227
+ errors: [
228
+ { messageId: 'runtimeRequire' },
229
+ { messageId: 'runtimeRequire' },
230
+ ],
231
+ }],
232
+ });
233
+ });
234
+ it('should allow refactored version with strategy pattern', () => {
235
+ const refactoredParserCode = `
236
+ // src/core/parser.ts
237
+ import { parseJSON } from './json-parser';
238
+ import { parseXML } from './xml-parser';
239
+
240
+ const PARSERS = {
241
+ json: parseJSON,
242
+ xml: parseXML,
243
+ } as const;
244
+
245
+ export function parseData(
246
+ format: keyof typeof PARSERS,
247
+ data: string
248
+ ) {
249
+ return PARSERS[format](data);
250
+ }
251
+ `;
252
+ ruleTester.run('no-runtime-imports', noRuntimeImports, {
253
+ valid: [{
254
+ code: refactoredParserCode,
255
+ filename: '/project/src/core/parser.ts',
256
+ }],
257
+ invalid: [],
258
+ });
259
+ });
260
+ });
261
+ describe('E2E Scenario 5: Shell Function with Pure String Manipulation', () => {
262
+ /**
263
+ * Scenario: Developer writes string formatting in Shell instead of Core
264
+ * Expected: Should warn that pure logic belongs in Core
265
+ */
266
+ it('should detect pure string manipulation in Shell', () => {
267
+ const shellFormatterCode = `
268
+ // src/shell/formatter.ts
269
+ export function formatUserName(firstName: string, lastName: string) {
270
+ const cleaned = firstName.trim() + ' ' + lastName.trim();
271
+ const capitalized = cleaned.replace(/\\b\\w/g, c => c.toUpperCase());
272
+ const abbreviated = capitalized.replace(/\\s+/g, ' ');
273
+ return abbreviated;
274
+ }
275
+ `;
276
+ ruleTester.run('no-pure-logic-in-shell', noPureLogicInShell, {
277
+ valid: [],
278
+ invalid: [{
279
+ code: shellFormatterCode,
280
+ filename: '/project/src/shell/formatter.ts',
281
+ errors: [{
282
+ messageId: 'pureLogicInShell',
283
+ data: { name: 'formatUserName' },
284
+ }],
285
+ }],
286
+ });
287
+ });
288
+ it('should allow Shell function with actual I/O', () => {
289
+ const properShellCode = `
290
+ // src/shell/user-loader.ts
291
+ import { formatUserName } from '../core/formatter';
292
+
293
+ export async function loadAndFormatUser(userId: string) {
294
+ const user = await db.getUser(userId);
295
+ return formatUserName(user.firstName, user.lastName);
296
+ }
297
+ `;
298
+ ruleTester.run('no-pure-logic-in-shell', noPureLogicInShell, {
299
+ valid: [{
300
+ code: properShellCode,
301
+ filename: '/project/src/shell/user-loader.ts',
302
+ }],
303
+ invalid: [],
304
+ });
305
+ });
306
+ });
307
+ describe('E2E Scenario 6: Complex Arrow Function in Shell', () => {
308
+ /**
309
+ * Scenario: Developer uses arrow function with complex logic
310
+ * Expected: Should extract function name from variable and report violations
311
+ */
312
+ it('should detect complex arrow function and use variable name', () => {
313
+ const complexArrowCode = `
314
+ // src/shell/validator.ts
315
+ export const validateOrder = (order) => {
316
+ const item1 = order.items[0];
317
+ const item2 = order.items[1];
318
+ const item3 = order.items[2];
319
+ const total1 = item1.price * item1.qty;
320
+ const total2 = item2.price * item2.qty;
321
+ const total3 = item3.price * item3.qty;
322
+ const subtotal = total1 + total2 + total3;
323
+ const tax = subtotal * 0.1;
324
+ const shipping = subtotal > 100 ? 0 : 10;
325
+ const total = subtotal + tax + shipping;
326
+ return total;
327
+ };
328
+ `;
329
+ ruleTester.run('no-pure-logic-in-shell', noPureLogicInShell, {
330
+ valid: [],
331
+ invalid: [{
332
+ code: complexArrowCode,
333
+ filename: '/project/src/shell/validator.ts',
334
+ errors: [{
335
+ messageId: 'pureLogicInShell',
336
+ data: { name: 'validateOrder' }, // Should use variable name, not 'anonymous'
337
+ }],
338
+ }],
339
+ });
340
+ });
341
+ it('should also detect high complexity in arrow function', () => {
342
+ const highComplexityArrowCode = `
343
+ // src/shell/router.ts
344
+ export const routeRequest = (req) => {
345
+ if (req.path === '/api/users') return handleUsers();
346
+ else if (req.path === '/api/orders') return handleOrders();
347
+ else if (req.path === '/api/products') return handleProducts();
348
+ else if (req.path === '/api/auth') return handleAuth();
349
+ else if (req.path === '/api/payments') return handlePayments();
350
+ else if (req.path === '/api/shipping') return handleShipping();
351
+ else if (req.path === '/api/inventory') return handleInventory();
352
+ else if (req.path === '/api/reports') return handleReports();
353
+ else if (req.path === '/api/settings') return handleSettings();
354
+ else if (req.path === '/api/notifications') return handleNotifications();
355
+ else return handle404();
356
+ };
357
+ `;
358
+ ruleTester.run('shell-complexity', shellComplexity, {
359
+ valid: [],
360
+ invalid: [{
361
+ code: highComplexityArrowCode,
362
+ filename: '/project/src/shell/router.ts',
363
+ errors: [{
364
+ messageId: 'tooComplex',
365
+ data: { name: 'routeRequest' }, // Should use variable name
366
+ }],
367
+ }],
368
+ });
369
+ });
370
+ });
371
+ describe('E2E Scenario 7: Entry Point with Export Declaration', () => {
372
+ /**
373
+ * Scenario: Developer exports function definition directly from entry point
374
+ * Expected: Should detect as complex logic (not just re-export)
375
+ */
376
+ it('should detect export function definition in entry point', () => {
377
+ const exportFunctionCode = `
378
+ // index.ts
379
+ export function processData(input: string) {
380
+ const cleaned = input.trim();
381
+ const validated = cleaned.length > 0;
382
+ if (!validated) throw new Error('Invalid input');
383
+ return cleaned.toUpperCase();
384
+ }
385
+ `;
386
+ ruleTester.run('thin-entry-points', thinEntryPoints, {
387
+ valid: [],
388
+ invalid: [{
389
+ code: exportFunctionCode,
390
+ filename: '/project/index.ts',
391
+ errors: [{
392
+ messageId: 'hasComplexLogic',
393
+ data: { type: 'function definition' },
394
+ }],
395
+ }],
396
+ });
397
+ });
398
+ it('should allow pure re-exports from entry point', () => {
399
+ const pureReExportCode = `
400
+ // index.ts
401
+ export { processData } from './core/processor';
402
+ export { loadData } from './shell/loader';
403
+ export type { DataConfig } from './types';
404
+ `;
405
+ ruleTester.run('thin-entry-points', thinEntryPoints, {
406
+ valid: [{
407
+ code: pureReExportCode,
408
+ filename: '/project/index.ts',
409
+ }],
410
+ invalid: [],
411
+ });
412
+ });
413
+ });
414
+ //# sourceMappingURL=e2e-scenarios.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2e-scenarios.test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/e2e-scenarios.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Test max-function-lines in Core (limit: 65 lines)
3
+ */
4
+ /**
5
+ * Valid function - 64 lines (within limit)
6
+ *
7
+ * @example
8
+ * validCoreFunction() // => 'done'
9
+ */
10
+ export function validCoreFunction() {
11
+ // Line 10
12
+ const a = 1;
13
+ const b = 2;
14
+ const c = 3;
15
+ const d = 4;
16
+ const e = 5;
17
+ const f = 6;
18
+ const g = 7;
19
+ const h = 8;
20
+ const i = 9;
21
+ const j = 10; // Line 20
22
+ const k = 11;
23
+ const l = 12;
24
+ const m = 13;
25
+ const n = 14;
26
+ const o = 15;
27
+ const p = 16;
28
+ const q = 17;
29
+ const r = 18;
30
+ const s = 19;
31
+ const t = 20; // Line 30
32
+ const u = 21;
33
+ const v = 22;
34
+ const w = 23;
35
+ const x = 24;
36
+ const y = 25;
37
+ const z = 26;
38
+ const aa = 27;
39
+ const bb = 28;
40
+ const cc = 29;
41
+ const dd = 30; // Line 40
42
+ const ee = 31;
43
+ const ff = 32;
44
+ const gg = 33;
45
+ const hh = 34;
46
+ const ii = 35;
47
+ const jj = 36;
48
+ const kk = 37;
49
+ const ll = 38;
50
+ const mm = 39;
51
+ const nn = 40; // Line 50
52
+ const oo = 41;
53
+ const pp = 42;
54
+ const qq = 43;
55
+ const rr = 44;
56
+ const ss = 45;
57
+ const tt = 46;
58
+ const uu = 47;
59
+ const vv = 48;
60
+ const ww = 49;
61
+ const xx = 50; // Line 60
62
+ const yy = 51;
63
+ const zz = 52;
64
+ return 'done'; // Line 64
65
+ }
66
+ /**
67
+ * Invalid function - 70 lines (exceeds Core limit of 65)
68
+ *
69
+ * @example
70
+ * invalidCoreFunction() // => 'done'
71
+ */
72
+ export function invalidCoreFunction() {
73
+ // Line 74
74
+ const a = 1;
75
+ const b = 2;
76
+ const c = 3;
77
+ const d = 4;
78
+ const e = 5;
79
+ const f = 6;
80
+ const g = 7;
81
+ const h = 8;
82
+ const i = 9;
83
+ const j = 10;
84
+ const k = 11;
85
+ const l = 12;
86
+ const m = 13;
87
+ const n = 14;
88
+ const o = 15;
89
+ const p = 16;
90
+ const q = 17;
91
+ const r = 18;
92
+ const s = 19;
93
+ const t = 20;
94
+ const u = 21;
95
+ const v = 22;
96
+ const w = 23;
97
+ const x = 24;
98
+ const y = 25;
99
+ const z = 26;
100
+ const aa = 27;
101
+ const bb = 28;
102
+ const cc = 29;
103
+ const dd = 30;
104
+ const ee = 31;
105
+ const ff = 32;
106
+ const gg = 33;
107
+ const hh = 34;
108
+ const ii = 35;
109
+ const jj = 36;
110
+ const kk = 37;
111
+ const ll = 38;
112
+ const mm = 39;
113
+ const nn = 40;
114
+ const oo = 41;
115
+ const pp = 42;
116
+ const qq = 43;
117
+ const rr = 44;
118
+ const ss = 45;
119
+ const tt = 46;
120
+ const uu = 47;
121
+ const vv = 48;
122
+ const ww = 49;
123
+ const xx = 50;
124
+ const yy = 51;
125
+ const zz = 52;
126
+ const aaa = 53;
127
+ const bbb = 54;
128
+ const ccc = 55;
129
+ const ddd = 56;
130
+ const eee = 57;
131
+ const fff = 58;
132
+ const ggg = 59;
133
+ const hhh = 60;
134
+ const iii = 61;
135
+ const jjj = 62;
136
+ const kkk = 63;
137
+ const lll = 64;
138
+ const mmm = 65;
139
+ const nnn = 66;
140
+ return 'done'; // Line 143 (70 lines from line 74)
141
+ }
142
+ //# sourceMappingURL=function-lengths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-lengths.js","sourceRoot":"","sources":["../../../../../src/rules/__tests__/fixtures/core/function-lengths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Invalid Core file - has I/O imports
3
+ * Tests: no-io-in-core (should fail in /core/ directory)
4
+ */
5
+ import * as fs from 'fs'; // ❌ Should trigger no-io-in-core
6
+ /**
7
+ * Function that uses I/O (not allowed in Core)
8
+ *
9
+ * @example
10
+ * readData('/path') // => 'data'
11
+ */
12
+ export function readData(path) {
13
+ return fs.readFileSync(path, 'utf-8');
14
+ }
15
+ //# sourceMappingURL=has-io-imports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-io-imports.js","sourceRoot":"","sources":["../../../../../src/rules/__tests__/fixtures/core/has-io-imports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,iCAAiC;AAK3D;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Valid Core file - within 650 line limit
3
+ * Tests: layer-detection (core), max-file-lines (core: 650)
4
+ */
5
+ /**
6
+ * Example function with JSDoc
7
+ *
8
+ * @example
9
+ * multiply(2, 3) // => 6
10
+ */
11
+ export function multiply(a, b) {
12
+ return a * b;
13
+ }
14
+ /**
15
+ * Another function
16
+ *
17
+ * @example
18
+ * add(2, 3) // => 5
19
+ */
20
+ export function add(a, b) {
21
+ return a + b;
22
+ }
23
+ // Non-exported function - no @example required
24
+ function helper() {
25
+ console.log('helper');
26
+ }
27
+ //# sourceMappingURL=valid-small.js.map