@harness-engineering/eslint-plugin 0.1.1 → 0.2.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 (62) hide show
  1. package/README.md +8 -0
  2. package/dist/index.d.ts +113 -23
  3. package/dist/index.js +929 -43
  4. package/package.json +8 -7
  5. package/dist/configs/index.d.ts +0 -5
  6. package/dist/configs/index.d.ts.map +0 -1
  7. package/dist/configs/index.js +0 -8
  8. package/dist/configs/index.js.map +0 -1
  9. package/dist/configs/recommended.d.ts +0 -4
  10. package/dist/configs/recommended.d.ts.map +0 -1
  11. package/dist/configs/recommended.js +0 -16
  12. package/dist/configs/recommended.js.map +0 -1
  13. package/dist/configs/strict.d.ts +0 -4
  14. package/dist/configs/strict.d.ts.map +0 -1
  15. package/dist/configs/strict.js +0 -16
  16. package/dist/configs/strict.js.map +0 -1
  17. package/dist/index.d.ts.map +0 -1
  18. package/dist/index.js.map +0 -1
  19. package/dist/rules/enforce-doc-exports.d.ts +0 -12
  20. package/dist/rules/enforce-doc-exports.d.ts.map +0 -1
  21. package/dist/rules/enforce-doc-exports.js +0 -78
  22. package/dist/rules/enforce-doc-exports.js.map +0 -1
  23. package/dist/rules/index.d.ts +0 -21
  24. package/dist/rules/index.d.ts.map +0 -1
  25. package/dist/rules/index.js +0 -14
  26. package/dist/rules/index.js.map +0 -1
  27. package/dist/rules/no-circular-deps.d.ts +0 -20
  28. package/dist/rules/no-circular-deps.d.ts.map +0 -1
  29. package/dist/rules/no-circular-deps.js +0 -110
  30. package/dist/rules/no-circular-deps.js.map +0 -1
  31. package/dist/rules/no-forbidden-imports.d.ts +0 -6
  32. package/dist/rules/no-forbidden-imports.d.ts.map +0 -1
  33. package/dist/rules/no-forbidden-imports.js +0 -58
  34. package/dist/rules/no-forbidden-imports.js.map +0 -1
  35. package/dist/rules/no-layer-violation.d.ts +0 -6
  36. package/dist/rules/no-layer-violation.d.ts.map +0 -1
  37. package/dist/rules/no-layer-violation.js +0 -62
  38. package/dist/rules/no-layer-violation.js.map +0 -1
  39. package/dist/rules/require-boundary-schema.d.ts +0 -6
  40. package/dist/rules/require-boundary-schema.d.ts.map +0 -1
  41. package/dist/rules/require-boundary-schema.js +0 -53
  42. package/dist/rules/require-boundary-schema.js.map +0 -1
  43. package/dist/utils/ast-helpers.d.ts +0 -14
  44. package/dist/utils/ast-helpers.d.ts.map +0 -1
  45. package/dist/utils/ast-helpers.js +0 -94
  46. package/dist/utils/ast-helpers.js.map +0 -1
  47. package/dist/utils/config-loader.d.ts +0 -10
  48. package/dist/utils/config-loader.d.ts.map +0 -1
  49. package/dist/utils/config-loader.js +0 -56
  50. package/dist/utils/config-loader.js.map +0 -1
  51. package/dist/utils/index.d.ts +0 -5
  52. package/dist/utils/index.d.ts.map +0 -1
  53. package/dist/utils/index.js +0 -6
  54. package/dist/utils/index.js.map +0 -1
  55. package/dist/utils/path-utils.d.ts +0 -24
  56. package/dist/utils/path-utils.d.ts.map +0 -1
  57. package/dist/utils/path-utils.js +0 -62
  58. package/dist/utils/path-utils.js.map +0 -1
  59. package/dist/utils/schema.d.ts +0 -117
  60. package/dist/utils/schema.d.ts.map +0 -1
  61. package/dist/utils/schema.js +0 -34
  62. package/dist/utils/schema.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@harness-engineering/eslint-plugin",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "ESLint plugin for harness engineering architectural constraints",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -17,16 +17,17 @@
17
17
  ],
18
18
  "dependencies": {
19
19
  "@typescript-eslint/utils": "^8.0.0",
20
- "minimatch": "^9.0.0",
20
+ "minimatch": "^10.2.4",
21
21
  "zod": "^3.22.0"
22
22
  },
23
23
  "devDependencies": {
24
- "@types/node": "^20.0.0",
24
+ "@types/node": "^22.0.0",
25
25
  "@typescript-eslint/parser": "^8.57.0",
26
26
  "@typescript-eslint/rule-tester": "^8.0.0",
27
27
  "eslint": "^10.0.0",
28
- "typescript": "^5.0.0",
29
- "vitest": "^2.0.0"
28
+ "tsup": "^8.0.0",
29
+ "typescript": "^5.3.3",
30
+ "vitest": "^4.0.18"
30
31
  },
31
32
  "peerDependencies": {
32
33
  "eslint": "^8.0.0 || ^9.0.0 || ^10.0.0",
@@ -53,11 +54,11 @@
53
54
  },
54
55
  "homepage": "https://github.com/Intense-Visions/harness-engineering/tree/main/packages/eslint-plugin#readme",
55
56
  "scripts": {
56
- "build": "tsc",
57
+ "build": "tsup src/index.ts --format esm --dts --tsconfig tsconfig.build.json",
57
58
  "test": "vitest run",
58
59
  "test:watch": "vitest",
59
60
  "lint": "eslint src",
60
61
  "typecheck": "tsc --noEmit",
61
- "clean": "rm -rf dist"
62
+ "clean": "node ../../scripts/clean.mjs dist"
62
63
  }
63
64
  }
@@ -1,5 +0,0 @@
1
- export declare const configs: {
2
- recommended: import("@typescript-eslint/utils/ts-eslint").FlatConfig.Config;
3
- strict: import("@typescript-eslint/utils/ts-eslint").FlatConfig.Config;
4
- };
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/configs/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,OAAO;;;CAGnB,CAAC"}
@@ -1,8 +0,0 @@
1
- // src/configs/index.ts
2
- import recommended from './recommended';
3
- import strict from './strict';
4
- export const configs = {
5
- recommended,
6
- strict,
7
- };
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/configs/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,WAAW;IACX,MAAM;CACP,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { TSESLint } from '@typescript-eslint/utils';
2
- declare const config: TSESLint.FlatConfig.Config;
3
- export default config;
4
- //# sourceMappingURL=recommended.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recommended.d.ts","sourceRoot":"","sources":["../../src/configs/recommended.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,QAAA,MAAM,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,MAajC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,16 +0,0 @@
1
- const config = {
2
- plugins: {
3
- '@harness-engineering': {
4
- rules: {}, // Will be populated by index.ts
5
- },
6
- },
7
- rules: {
8
- '@harness-engineering/no-layer-violation': 'error',
9
- '@harness-engineering/no-circular-deps': 'error',
10
- '@harness-engineering/no-forbidden-imports': 'error',
11
- '@harness-engineering/require-boundary-schema': 'warn',
12
- '@harness-engineering/enforce-doc-exports': 'warn',
13
- },
14
- };
15
- export default config;
16
- //# sourceMappingURL=recommended.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recommended.js","sourceRoot":"","sources":["../../src/configs/recommended.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,GAA+B;IACzC,OAAO,EAAE;QACP,sBAAsB,EAAE;YACtB,KAAK,EAAE,EAAE,EAAE,gCAAgC;SACd;KAChC;IACD,KAAK,EAAE;QACL,yCAAyC,EAAE,OAAO;QAClD,uCAAuC,EAAE,OAAO;QAChD,2CAA2C,EAAE,OAAO;QACpD,8CAA8C,EAAE,MAAM;QACtD,0CAA0C,EAAE,MAAM;KACnD;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { TSESLint } from '@typescript-eslint/utils';
2
- declare const config: TSESLint.FlatConfig.Config;
3
- export default config;
4
- //# sourceMappingURL=strict.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"strict.d.ts","sourceRoot":"","sources":["../../src/configs/strict.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,QAAA,MAAM,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,MAajC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,16 +0,0 @@
1
- const config = {
2
- plugins: {
3
- '@harness-engineering': {
4
- rules: {}, // Will be populated by index.ts
5
- },
6
- },
7
- rules: {
8
- '@harness-engineering/no-layer-violation': 'error',
9
- '@harness-engineering/no-circular-deps': 'error',
10
- '@harness-engineering/no-forbidden-imports': 'error',
11
- '@harness-engineering/require-boundary-schema': 'error',
12
- '@harness-engineering/enforce-doc-exports': 'error',
13
- },
14
- };
15
- export default config;
16
- //# sourceMappingURL=strict.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"strict.js","sourceRoot":"","sources":["../../src/configs/strict.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,GAA+B;IACzC,OAAO,EAAE;QACP,sBAAsB,EAAE;YACtB,KAAK,EAAE,EAAE,EAAE,gCAAgC;SACd;KAChC;IACD,KAAK,EAAE;QACL,yCAAyC,EAAE,OAAO;QAClD,uCAAuC,EAAE,OAAO;QAChD,2CAA2C,EAAE,OAAO;QACpD,8CAA8C,EAAE,OAAO;QACvD,0CAA0C,EAAE,OAAO;KACpD;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCX,CAAC;AAGF,eAAe,MAAM,CAAC;AAGtB,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAiB,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,2BAA2B;AAC3B,MAAM,MAAM,GAAG;IACb,IAAI,EAAE;QACJ,IAAI,EAAE,oCAAoC;QAC1C,OAAO,EAAE,OAAO;KACjB;IACD,KAAK;IACL,OAAO,EAAE;QACP,WAAW,EAAE;YACX,OAAO,EAAE;gBACP,IAAI,sBAAsB;oBACxB,OAAO,MAAM,CAAC;gBAChB,CAAC;aACF;YACD,KAAK,EAAE;gBACL,yCAAyC,EAAE,OAAO;gBAClD,uCAAuC,EAAE,OAAO;gBAChD,2CAA2C,EAAE,OAAO;gBACpD,8CAA8C,EAAE,MAAM;gBACtD,0CAA0C,EAAE,MAAM;aACnD;SACF;QACD,MAAM,EAAE;YACN,OAAO,EAAE;gBACP,IAAI,sBAAsB;oBACxB,OAAO,MAAM,CAAC;gBAChB,CAAC;aACF;YACD,KAAK,EAAE;gBACL,yCAAyC,EAAE,OAAO;gBAClD,uCAAuC,EAAE,OAAO;gBAChD,2CAA2C,EAAE,OAAO;gBACpD,8CAA8C,EAAE,OAAO;gBACvD,0CAA0C,EAAE,OAAO;aACpD;SACF;KACF;CACF,CAAC;AAEF,qBAAqB;AACrB,eAAe,MAAM,CAAC;AAEtB,gCAAgC;AAChC,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC"}
@@ -1,12 +0,0 @@
1
- import { ESLintUtils } from '@typescript-eslint/utils';
2
- type Options = [
3
- {
4
- ignoreTypes?: boolean;
5
- ignoreInternal?: boolean;
6
- }
7
- ];
8
- declare const _default: ESLintUtils.RuleModule<"missingJSDoc", Options, unknown, ESLintUtils.RuleListener> & {
9
- name: string;
10
- };
11
- export default _default;
12
- //# sourceMappingURL=enforce-doc-exports.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enforce-doc-exports.d.ts","sourceRoot":"","sources":["../../src/rules/enforce-doc-exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAiC,MAAM,0BAA0B,CAAC;AAOtF,KAAK,OAAO,GAAG;IACb;QACE,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B;CACF,CAAC;;;;AAIF,wBAyEG"}
@@ -1,78 +0,0 @@
1
- // src/rules/enforce-doc-exports.ts
2
- import { ESLintUtils, AST_NODE_TYPES } from '@typescript-eslint/utils';
3
- import { hasJSDocComment, isMarkedInternal } from '../utils/ast-helpers';
4
- const createRule = ESLintUtils.RuleCreator((name) => `https://github.com/harness-engineering/eslint-plugin/blob/main/docs/rules/${name}.md`);
5
- export default createRule({
6
- name: 'enforce-doc-exports',
7
- meta: {
8
- type: 'suggestion',
9
- docs: {
10
- description: 'Require JSDoc comments on public exports',
11
- },
12
- messages: {
13
- missingJSDoc: 'Exported {{kind}} "{{name}}" is missing JSDoc documentation',
14
- },
15
- schema: [
16
- {
17
- type: 'object',
18
- properties: {
19
- ignoreTypes: { type: 'boolean', default: false },
20
- ignoreInternal: { type: 'boolean', default: true },
21
- },
22
- additionalProperties: false,
23
- },
24
- ],
25
- },
26
- defaultOptions: [{ ignoreTypes: false, ignoreInternal: true }],
27
- create(context, [options]) {
28
- const sourceCode = context.sourceCode.getText();
29
- function checkExport(node, kind, name) {
30
- // Skip if marked @internal and ignoreInternal is true
31
- if (options.ignoreInternal && isMarkedInternal(node, sourceCode)) {
32
- return;
33
- }
34
- if (!hasJSDocComment(node, sourceCode)) {
35
- context.report({
36
- node,
37
- messageId: 'missingJSDoc',
38
- data: { kind, name },
39
- });
40
- }
41
- }
42
- return {
43
- ExportNamedDeclaration(node) {
44
- const decl = node.declaration;
45
- if (!decl)
46
- return;
47
- const declType = decl.type;
48
- if (declType === AST_NODE_TYPES.FunctionDeclaration) {
49
- const fn = decl;
50
- if (fn.id)
51
- checkExport(node, 'function', fn.id.name);
52
- }
53
- else if (declType === AST_NODE_TYPES.ClassDeclaration) {
54
- const cls = decl;
55
- if (cls.id)
56
- checkExport(node, 'class', cls.id.name);
57
- }
58
- else if (declType === AST_NODE_TYPES.VariableDeclaration) {
59
- const varDecl = decl;
60
- for (const declarator of varDecl.declarations) {
61
- if (declarator.id.type === AST_NODE_TYPES.Identifier) {
62
- checkExport(node, 'variable', declarator.id.name);
63
- }
64
- }
65
- }
66
- else if (declType === AST_NODE_TYPES.TSTypeAliasDeclaration && !options.ignoreTypes) {
67
- const typeAlias = decl;
68
- checkExport(node, 'type', typeAlias.id.name);
69
- }
70
- else if (declType === AST_NODE_TYPES.TSInterfaceDeclaration && !options.ignoreTypes) {
71
- const iface = decl;
72
- checkExport(node, 'interface', iface.id.name);
73
- }
74
- },
75
- };
76
- },
77
- });
78
- //# sourceMappingURL=enforce-doc-exports.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enforce-doc-exports.js","sourceRoot":"","sources":["../../src/rules/enforce-doc-exports.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- export declare const rules: {
2
- 'enforce-doc-exports': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingJSDoc", [{
3
- ignoreTypes?: boolean;
4
- ignoreInternal?: boolean;
5
- }], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
6
- name: string;
7
- };
8
- 'no-circular-deps': import("@typescript-eslint/utils/ts-eslint").RuleModule<"circularDep", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
9
- name: string;
10
- };
11
- 'no-forbidden-imports': import("@typescript-eslint/utils/ts-eslint").RuleModule<"forbiddenImport", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
12
- name: string;
13
- };
14
- 'no-layer-violation': import("@typescript-eslint/utils/ts-eslint").RuleModule<"layerViolation", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
15
- name: string;
16
- };
17
- 'require-boundary-schema': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingSchema", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
18
- name: string;
19
- };
20
- };
21
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;CAMjB,CAAC"}
@@ -1,14 +0,0 @@
1
- // src/rules/index.ts
2
- import enforceDocExports from './enforce-doc-exports';
3
- import noCircularDeps from './no-circular-deps';
4
- import noForbiddenImports from './no-forbidden-imports';
5
- import noLayerViolation from './no-layer-violation';
6
- import requireBoundarySchema from './require-boundary-schema';
7
- export const rules = {
8
- 'enforce-doc-exports': enforceDocExports,
9
- 'no-circular-deps': noCircularDeps,
10
- 'no-forbidden-imports': noForbiddenImports,
11
- 'no-layer-violation': noLayerViolation,
12
- 'require-boundary-schema': requireBoundarySchema,
13
- };
14
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,iBAAiB,MAAM,uBAAuB,CAAC;AACtD,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;AACxD,OAAO,gBAAgB,MAAM,sBAAsB,CAAC;AACpD,OAAO,qBAAqB,MAAM,2BAA2B,CAAC;AAE9D,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,qBAAqB,EAAE,iBAAiB;IACxC,kBAAkB,EAAE,cAAc;IAClC,sBAAsB,EAAE,kBAAkB;IAC1C,oBAAoB,EAAE,gBAAgB;IACtC,yBAAyB,EAAE,qBAAqB;CACjD,CAAC"}
@@ -1,20 +0,0 @@
1
- import { ESLintUtils } from '@typescript-eslint/utils';
2
- /**
3
- * Clear the import graph (for testing)
4
- */
5
- export declare function clearImportGraph(): void;
6
- /**
7
- * Add an edge to the import graph (exported for testing)
8
- */
9
- export declare function addEdge(from: string, to: string): void;
10
- /**
11
- * Check if adding edge from -> to creates a cycle
12
- * Returns the cycle path if found, null otherwise
13
- * Exported for testing
14
- */
15
- export declare function detectCycle(from: string, to: string): string[] | null;
16
- declare const _default: ESLintUtils.RuleModule<"circularDep", [], unknown, ESLintUtils.RuleListener> & {
17
- name: string;
18
- };
19
- export default _default;
20
- //# sourceMappingURL=no-circular-deps.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-circular-deps.d.ts","sourceRoot":"","sources":["../../src/rules/no-circular-deps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAUtE;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAKtD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CA+BrE;;;;AAgBD,wBA+CG"}
@@ -1,110 +0,0 @@
1
- // src/rules/no-circular-deps.ts
2
- import { ESLintUtils } from '@typescript-eslint/utils';
3
- import * as path from 'path';
4
- const createRule = ESLintUtils.RuleCreator((name) => `https://github.com/harness-engineering/eslint-plugin/blob/main/docs/rules/${name}.md`);
5
- // Module-level import graph (persists per lint run)
6
- const importGraph = new Map();
7
- /**
8
- * Clear the import graph (for testing)
9
- */
10
- export function clearImportGraph() {
11
- importGraph.clear();
12
- }
13
- /**
14
- * Add an edge to the import graph (exported for testing)
15
- */
16
- export function addEdge(from, to) {
17
- if (!importGraph.has(from)) {
18
- importGraph.set(from, new Set());
19
- }
20
- importGraph.get(from).add(to);
21
- }
22
- /**
23
- * Check if adding edge from -> to creates a cycle
24
- * Returns the cycle path if found, null otherwise
25
- * Exported for testing
26
- */
27
- export function detectCycle(from, to) {
28
- // DFS from 'to' back to 'from'
29
- const visited = new Set();
30
- const cyclePath = [to];
31
- function dfs(current) {
32
- if (current === from) {
33
- return true; // Found cycle
34
- }
35
- if (visited.has(current)) {
36
- return false;
37
- }
38
- visited.add(current);
39
- const deps = importGraph.get(current);
40
- if (deps) {
41
- for (const dep of deps) {
42
- cyclePath.push(dep);
43
- if (dfs(dep)) {
44
- return true;
45
- }
46
- cyclePath.pop();
47
- }
48
- }
49
- return false;
50
- }
51
- if (dfs(to)) {
52
- return [from, ...cyclePath];
53
- }
54
- return null;
55
- }
56
- /**
57
- * Normalize file path to project-relative
58
- */
59
- function normalizePath(filePath) {
60
- // Extract path from /project/src/... or similar
61
- const srcIndex = filePath.indexOf('/src/');
62
- if (srcIndex !== -1) {
63
- return filePath.slice(srcIndex + 1);
64
- }
65
- return path.basename(filePath);
66
- }
67
- export default createRule({
68
- name: 'no-circular-deps',
69
- meta: {
70
- type: 'problem',
71
- docs: {
72
- description: 'Detect circular import dependencies',
73
- },
74
- messages: {
75
- circularDep: 'Circular dependency detected: {{cycle}}',
76
- },
77
- schema: [],
78
- },
79
- defaultOptions: [],
80
- create(context) {
81
- const currentFile = normalizePath(context.filename);
82
- return {
83
- ImportDeclaration(node) {
84
- const importPath = node.source.value;
85
- // Skip external imports
86
- if (!importPath.startsWith('.')) {
87
- return;
88
- }
89
- // Resolve import to normalized path
90
- const importingDir = path.dirname(context.filename);
91
- const resolvedPath = path.resolve(importingDir, importPath);
92
- const normalizedImport = normalizePath(resolvedPath);
93
- // Check for cycle before adding edge
94
- const cycle = detectCycle(currentFile, normalizedImport);
95
- if (cycle) {
96
- context.report({
97
- node,
98
- messageId: 'circularDep',
99
- data: {
100
- cycle: cycle.map((f) => path.basename(f)).join(' → '),
101
- },
102
- });
103
- }
104
- // Add edge to graph
105
- addEdge(currentFile, normalizedImport);
106
- },
107
- };
108
- },
109
- });
110
- //# sourceMappingURL=no-circular-deps.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-circular-deps.js","sourceRoot":"","sources":["../../src/rules/no-circular-deps.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { ESLintUtils } from '@typescript-eslint/utils';
2
- declare const _default: ESLintUtils.RuleModule<"forbiddenImport", [], unknown, ESLintUtils.RuleListener> & {
3
- name: string;
4
- };
5
- export default _default;
6
- //# sourceMappingURL=no-forbidden-imports.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-forbidden-imports.d.ts","sourceRoot":"","sources":["../../src/rules/no-forbidden-imports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAiB,MAAM,0BAA0B,CAAC;;;;AAUtE,wBA6DG"}
@@ -1,58 +0,0 @@
1
- // src/rules/no-forbidden-imports.ts
2
- import { ESLintUtils } from '@typescript-eslint/utils';
3
- import { getConfig } from '../utils/config-loader';
4
- import { matchesPattern, resolveImportPath, normalizePath } from '../utils/path-utils';
5
- const createRule = ESLintUtils.RuleCreator((name) => `https://github.com/harness-engineering/eslint-plugin/blob/main/docs/rules/${name}.md`);
6
- export default createRule({
7
- name: 'no-forbidden-imports',
8
- meta: {
9
- type: 'problem',
10
- docs: {
11
- description: 'Block forbidden imports based on configurable patterns',
12
- },
13
- messages: {
14
- forbiddenImport: '{{message}}',
15
- },
16
- schema: [],
17
- },
18
- defaultOptions: [],
19
- create(context) {
20
- const config = getConfig(context.filename);
21
- if (!config?.forbiddenImports?.length) {
22
- return {}; // No-op if no config
23
- }
24
- // Get file path relative to project
25
- const filePath = normalizePath(context.filename);
26
- // Find matching rules for this file
27
- const applicableRules = config.forbiddenImports.filter((rule) => matchesPattern(filePath, rule.from));
28
- if (applicableRules.length === 0) {
29
- return {}; // No rules apply to this file
30
- }
31
- return {
32
- ImportDeclaration(node) {
33
- const importPath = node.source.value;
34
- const resolvedImport = resolveImportPath(importPath, context.filename);
35
- for (const rule of applicableRules) {
36
- for (const disallowed of rule.disallow) {
37
- // Check if import matches disallow pattern
38
- const isMatch = importPath === disallowed ||
39
- matchesPattern(resolvedImport, disallowed) ||
40
- matchesPattern(importPath, disallowed);
41
- if (isMatch) {
42
- context.report({
43
- node,
44
- messageId: 'forbiddenImport',
45
- data: {
46
- message: rule.message ||
47
- `Import "${importPath}" is forbidden in files matching "${rule.from}"`,
48
- },
49
- });
50
- return; // Report once per import
51
- }
52
- }
53
- }
54
- },
55
- };
56
- },
57
- });
58
- //# sourceMappingURL=no-forbidden-imports.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-forbidden-imports.js","sourceRoot":"","sources":["../../src/rules/no-forbidden-imports.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,OAAO,EAAE,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEvF,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CACxC,CAAC,IAAI,EAAE,EAAE,CAAC,6EAA6E,IAAI,KAAK,CACjG,CAAC;AAIF,eAAe,UAAU,CAAiB;IACxC,IAAI,EAAE,sBAAsB;IAC5B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,wDAAwD;SACtE;QACD,QAAQ,EAAE;YACR,eAAe,EAAE,aAAa;SAC/B;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC;YACtC,OAAO,EAAE,CAAC,CAAC,qBAAqB;QAClC,CAAC;QAED,oCAAoC;QACpC,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEjD,oCAAoC;QACpC,MAAM,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9D,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CACpC,CAAC;QAEF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC,CAAC,8BAA8B;QAC3C,CAAC;QAED,OAAO;YACL,iBAAiB,CAAC,IAAgC;gBAChD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBACrC,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAEvE,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;oBACnC,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACvC,2CAA2C;wBAC3C,MAAM,OAAO,GACX,UAAU,KAAK,UAAU;4BACzB,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC;4BAC1C,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;wBAEzC,IAAI,OAAO,EAAE,CAAC;4BACZ,OAAO,CAAC,MAAM,CAAC;gCACb,IAAI;gCACJ,SAAS,EAAE,iBAAiB;gCAC5B,IAAI,EAAE;oCACJ,OAAO,EACL,IAAI,CAAC,OAAO;wCACZ,WAAW,UAAU,qCAAqC,IAAI,CAAC,IAAI,GAAG;iCACzE;6BACF,CAAC,CAAC;4BACH,OAAO,CAAC,yBAAyB;wBACnC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -1,6 +0,0 @@
1
- import { ESLintUtils } from '@typescript-eslint/utils';
2
- declare const _default: ESLintUtils.RuleModule<"layerViolation", [], unknown, ESLintUtils.RuleListener> & {
3
- name: string;
4
- };
5
- export default _default;
6
- //# sourceMappingURL=no-layer-violation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-layer-violation.d.ts","sourceRoot":"","sources":["../../src/rules/no-layer-violation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAiB,MAAM,0BAA0B,CAAC;;;;AAetE,wBAiEG"}
@@ -1,62 +0,0 @@
1
- // src/rules/no-layer-violation.ts
2
- import { ESLintUtils } from '@typescript-eslint/utils';
3
- import { getConfig } from '../utils/config-loader';
4
- import { resolveImportPath, getLayerForFile, getLayerByName, normalizePath, } from '../utils/path-utils';
5
- const createRule = ESLintUtils.RuleCreator((name) => `https://github.com/harness-engineering/eslint-plugin/blob/main/docs/rules/${name}.md`);
6
- export default createRule({
7
- name: 'no-layer-violation',
8
- meta: {
9
- type: 'problem',
10
- docs: {
11
- description: 'Enforce layer boundary imports',
12
- },
13
- messages: {
14
- layerViolation: 'Layer "{{fromLayer}}" cannot import from layer "{{toLayer}}"',
15
- },
16
- schema: [],
17
- },
18
- defaultOptions: [],
19
- create(context) {
20
- const config = getConfig(context.filename);
21
- if (!config?.layers?.length) {
22
- return {}; // No-op if no layers configured
23
- }
24
- const filePath = normalizePath(context.filename);
25
- const currentLayer = getLayerForFile(filePath, config.layers);
26
- if (!currentLayer) {
27
- return {}; // File not in any layer
28
- }
29
- const currentLayerDef = getLayerByName(currentLayer, config.layers);
30
- if (!currentLayerDef) {
31
- return {};
32
- }
33
- return {
34
- ImportDeclaration(node) {
35
- const importPath = node.source.value;
36
- // Skip external imports
37
- if (!importPath.startsWith('.')) {
38
- return;
39
- }
40
- const resolvedImport = resolveImportPath(importPath, context.filename);
41
- const importLayer = getLayerForFile(resolvedImport, config.layers);
42
- // Skip if import is not in any layer
43
- if (!importLayer) {
44
- return;
45
- }
46
- // Check if import is allowed
47
- if (importLayer !== currentLayer &&
48
- !currentLayerDef.allowedDependencies.includes(importLayer)) {
49
- context.report({
50
- node,
51
- messageId: 'layerViolation',
52
- data: {
53
- fromLayer: currentLayer,
54
- toLayer: importLayer,
55
- },
56
- });
57
- }
58
- },
59
- };
60
- },
61
- });
62
- //# sourceMappingURL=no-layer-violation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-layer-violation.js","sourceRoot":"","sources":["../../src/rules/no-layer-violation.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,EAAE,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,aAAa,GACd,MAAM,qBAAqB,CAAC;AAE7B,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CACxC,CAAC,IAAI,EAAE,EAAE,CAAC,6EAA6E,IAAI,KAAK,CACjG,CAAC;AAIF,eAAe,UAAU,CAAiB;IACxC,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,gCAAgC;SAC9C;QACD,QAAQ,EAAE;YACR,cAAc,EAAE,8DAA8D;SAC/E;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC,CAAC,gCAAgC;QAC7C,CAAC;QAED,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAE9D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,EAAE,CAAC,CAAC,wBAAwB;QACrC,CAAC;QAED,MAAM,eAAe,GAAG,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO;YACL,iBAAiB,CAAC,IAAgC;gBAChD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAErC,wBAAwB;gBACxB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,OAAO;gBACT,CAAC;gBAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACvE,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE,MAAM,CAAC,MAAO,CAAC,CAAC;gBAEpE,qCAAqC;gBACrC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO;gBACT,CAAC;gBAED,6BAA6B;gBAC7B,IACE,WAAW,KAAK,YAAY;oBAC5B,CAAC,eAAe,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC1D,CAAC;oBACD,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,gBAAgB;wBAC3B,IAAI,EAAE;4BACJ,SAAS,EAAE,YAAY;4BACvB,OAAO,EAAE,WAAW;yBACrB;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -1,6 +0,0 @@
1
- import { ESLintUtils } from '@typescript-eslint/utils';
2
- declare const _default: ESLintUtils.RuleModule<"missingSchema", [], unknown, ESLintUtils.RuleListener> & {
3
- name: string;
4
- };
5
- export default _default;
6
- //# sourceMappingURL=require-boundary-schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"require-boundary-schema.d.ts","sourceRoot":"","sources":["../../src/rules/require-boundary-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAiC,MAAM,0BAA0B,CAAC;;;;AAWtF,wBAsDG"}