@stride.it/appoint-lint-governance 0.1.20 → 0.1.21

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.
package/dist/index.js CHANGED
@@ -47,7 +47,8 @@ function typescriptConventions(options = {}) {
47
47
  "import/no-default-export": "error",
48
48
  "@typescript-eslint/consistent-type-definitions": ["error", "type"],
49
49
  "@typescript-eslint/consistent-type-imports": "error",
50
- "@typescript-eslint/consistent-type-exports": "error"
50
+ "@typescript-eslint/consistent-type-exports": "error",
51
+ "prefer-arrow-callback": "error"
51
52
  }
52
53
  },
53
54
  // 6.2 Overrides
@@ -193,6 +194,8 @@ function typescriptQuality(options = {}) {
193
194
  }
194
195
  }
195
196
  ],
197
+ // Best Practices
198
+ "consistent-return": "error",
196
199
  // SonarJS
197
200
  "sonarjs/cognitive-complexity": ["error", 15],
198
201
  "sonarjs/no-identical-functions": "error",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/configs/typescript/base.ts","../src/configs/typescript/conventions.ts","../src/configs/typescript/docs.ts","../src/configs/typescript/imports.ts","../src/configs/typescript/minimal.ts","../src/configs/typescript/prettier.ts","../src/configs/typescript/recommended.ts","../src/configs/typescript/quality.ts","../src/configs/typescript/security.ts","../src/configs/typescript/size-complexity.ts","../src/configs/typescript/type-aware.ts","../src/plugin/index.ts"],"sourcesContent":["import tseslint from \"typescript-eslint\";\r\n\r\nexport interface TypescriptBaseOptions {\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptBase(options: TypescriptBaseOptions = {}) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config({\r\n files,\r\n plugins: {\r\n \"@typescript-eslint\": tseslint.plugin,\r\n },\r\n languageOptions: {\r\n parser: tseslint.parser,\r\n parserOptions: {\r\n ecmaVersion: \"latest\",\r\n sourceType: \"module\",\r\n },\r\n },\r\n rules: {\r\n \"@typescript-eslint/consistent-type-imports\": \"error\",\r\n \"@typescript-eslint/no-unused-vars\": \"error\",\r\n \"@typescript-eslint/no-shadow\": \"error\",\r\n \"@typescript-eslint/ban-ts-comment\": \"error\",\r\n \"@typescript-eslint/no-explicit-any\": \"warn\",\r\n \"@typescript-eslint/no-inferrable-types\": \"error\",\r\n \"no-undef\": \"off\",\r\n \"no-unused-vars\": \"off\",\r\n \"no-var\": \"error\",\r\n \"prefer-const\": \"error\",\r\n eqeqeq: [\"error\", \"always\", { null: \"ignore\" }],\r\n \"no-implicit-coercion\": \"error\",\r\n },\r\n });\r\n}\r\n","import importPlugin from \"eslint-plugin-import\";\r\nimport tseslint from \"typescript-eslint\";\r\n\r\nexport interface TypescriptConventionsOptions {\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptConventions(\r\n options: TypescriptConventionsOptions = {}\r\n) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config(\r\n {\r\n files,\r\n plugins: {\r\n import: importPlugin,\r\n },\r\n rules: {\r\n // 6.1 Rule table\r\n \"import/no-default-export\": \"error\",\r\n \"@typescript-eslint/consistent-type-definitions\": [\"error\", \"type\"],\r\n \"@typescript-eslint/consistent-type-imports\": \"error\",\r\n \"@typescript-eslint/consistent-type-exports\": \"error\",\r\n },\r\n },\r\n // 6.2 Overrides\r\n {\r\n files: [\r\n \"**/*.config.{js,mjs,ts}\",\r\n \"**/app/**/{page,layout,template,not-found,global-error,loading,error}.tsx\",\r\n \"**/*.stories.tsx\",\r\n ],\r\n rules: {\r\n \"import/no-default-export\": \"off\",\r\n },\r\n }\r\n );\r\n}\r\n","import comments from \"@eslint-community/eslint-plugin-eslint-comments\";\r\nimport jsdoc from \"eslint-plugin-jsdoc\";\r\nimport tseslint from \"typescript-eslint\";\r\n\r\nexport interface TypescriptDocsOptions {\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptDocs(options: TypescriptDocsOptions = {}) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config({\r\n files,\r\n plugins: {\r\n jsdoc: jsdoc,\r\n \"eslint-comments\": comments,\r\n },\r\n rules: {\r\n \"eslint-comments/no-unused-disable\": \"error\",\r\n \"eslint-comments/require-description\": \"error\",\r\n \"eslint-comments/disable-enable-pair\": \"error\",\r\n \"jsdoc/check-alignment\": \"error\",\r\n \"jsdoc/require-param\": \"error\",\r\n \"jsdoc/require-returns\": \"error\",\r\n },\r\n });\r\n}\r\n","import importPlugin from \"eslint-plugin-import\";\r\nimport simpleImportSort from \"eslint-plugin-simple-import-sort\";\r\nimport tseslint from \"typescript-eslint\";\r\n\r\nexport interface TypescriptImportsOptions {\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptImports(options: TypescriptImportsOptions = {}) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config({\r\n files,\r\n plugins: {\r\n import: importPlugin,\r\n \"simple-import-sort\": simpleImportSort,\r\n },\r\n settings: {\r\n \"import/parsers\": {\r\n \"@typescript-eslint/parser\": [\".ts\", \".tsx\", \".mts\", \".cts\"],\r\n },\r\n \"import/resolver\": {\r\n typescript: {\r\n alwaysTryTypes: true,\r\n project: [\"tsconfig.json\", \"*/tsconfig.json\"],\r\n },\r\n node: true,\r\n },\r\n },\r\n rules: {\r\n // Import Correctness\r\n \"import/no-duplicates\": \"error\",\r\n \"import/no-cycle\": \"error\",\r\n \"import/no-mutable-exports\": \"error\",\r\n \"import/first\": \"error\",\r\n \"import/newline-after-import\": \"error\",\r\n \"import/no-extraneous-dependencies\": \"error\",\r\n\r\n // Sorting\r\n \"simple-import-sort/imports\": \"error\",\r\n \"simple-import-sort/exports\": \"error\",\r\n },\r\n });\r\n}\r\n","import { typescriptBase } from \"./base.js\";\r\n\r\nexport type TypescriptConfigFiles = string[];\r\n\r\nexport interface TypescriptMinimalOptions {\r\n files?: TypescriptConfigFiles;\r\n}\r\n\r\n/**\r\n * MVP TypeScript profile.\r\n *\r\n * Intentionally minimal: enables TypeScript parsing and one rule to prove\r\n * end-to-end packaging + consumption.\r\n * @param options - Configuration options.\r\n * @returns The ESLint configuration.\r\n */\r\nexport function typescriptMinimal(options: TypescriptMinimalOptions = {}) {\r\n return typescriptBase(options);\r\n}\r\n","import eslintConfigPrettier from \"eslint-config-prettier\";\r\nimport tseslint from \"typescript-eslint\";\r\n\r\nexport interface TypescriptPrettierOptions {\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptPrettierInterop(\r\n options: TypescriptPrettierOptions = {}\r\n) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config({\r\n files,\r\n rules: {\r\n ...eslintConfigPrettier.rules,\r\n },\r\n });\r\n}\r\n","import tseslint from \"typescript-eslint\";\r\n\r\nimport { typescriptBase } from \"./base.js\";\r\nimport { typescriptConventions } from \"./conventions.js\";\r\nimport { typescriptDocs } from \"./docs.js\";\r\nimport { typescriptImports } from \"./imports.js\";\r\nimport { typescriptQuality } from \"./quality.js\";\r\nimport { typescriptSecurity } from \"./security.js\";\r\nimport { typescriptSizeComplexity } from \"./size-complexity.js\";\r\nimport { typescriptTypeAware } from \"./type-aware.js\";\r\n\r\nexport interface TypescriptRecommendedOptions {\r\n /**\r\n * When set, enables type-aware rules (more powerful, can be slower).\r\n *\r\n * Recommended for mature codebases, but not required for MVP.\r\n */\r\n typeChecked?: boolean;\r\n\r\n /**\r\n * Type-aware linting requires a project TSConfig.\r\n * Example: \"./tsconfig.json\".\r\n */\r\n tsconfigPath?: string | string[];\r\n\r\n /**\r\n * tsconfigRootDir should usually be import.meta.dirname from the consumer repo.\r\n */\r\n tsconfigRootDir?: string;\r\n\r\n files?: string[];\r\n\r\n /**\r\n * When true (default), enables strict conventions (e.g. no default exports).\r\n */\r\n enableConventions?: boolean;\r\n}\r\n\r\nexport function typescriptRecommended(\r\n options: TypescriptRecommendedOptions = {}\r\n) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n const enableConventions = options.enableConventions ?? true;\r\n\r\n const upstreamConfigs = options.typeChecked\r\n ? tseslint.configs.recommendedTypeChecked\r\n : tseslint.configs.recommended;\r\n\r\n const typeAwareConfig = options.typeChecked\r\n ? typescriptTypeAware({\r\n files,\r\n tsconfigPath: options.tsconfigPath,\r\n tsconfigRootDir: options.tsconfigRootDir,\r\n })\r\n : [];\r\n\r\n const conventionsConfig = enableConventions\r\n ? typescriptConventions({ files })\r\n : [];\r\n\r\n return tseslint.config(\r\n ...typescriptBase({ files }),\r\n ...typescriptQuality({ files }),\r\n ...typescriptImports({ files }),\r\n ...typescriptSecurity({ files }),\r\n ...typescriptDocs({ files }),\r\n ...typescriptSizeComplexity({ files }),\r\n ...conventionsConfig,\r\n ...typeAwareConfig,\r\n ...upstreamConfigs.map((config) => ({\r\n ...config,\r\n files,\r\n }))\r\n );\r\n}\r\n","import sonarjs from \"eslint-plugin-sonarjs\";\r\nimport unicorn from \"eslint-plugin-unicorn\";\r\nimport tseslint from \"typescript-eslint\";\r\n\r\nexport interface TypescriptQualityOptions {\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptQuality(options: TypescriptQualityOptions = {}) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config({\r\n files,\r\n plugins: {\r\n unicorn,\r\n sonarjs,\r\n },\r\n rules: {\r\n // Unicorn\r\n \"unicorn/prefer-node-protocol\": \"error\",\r\n \"unicorn/no-useless-undefined\": \"error\",\r\n \"unicorn/no-lonely-if\": \"error\",\r\n \"unicorn/prefer-optional-catch-binding\": \"error\",\r\n \"unicorn/prefer-string-replace-all\": \"error\",\r\n \"unicorn/prevent-abbreviations\": [\r\n \"warn\",\r\n {\r\n allowList: {\r\n Props: true,\r\n props: true,\r\n Ref: true,\r\n ref: true,\r\n Src: true,\r\n src: true,\r\n Params: true,\r\n params: true,\r\n Env: true,\r\n env: true,\r\n Args: true,\r\n args: true,\r\n Docs: true,\r\n docs: true,\r\n arg: true,\r\n err: true,\r\n req: true,\r\n res: true,\r\n ctx: true,\r\n val: true,\r\n },\r\n },\r\n ],\r\n\r\n // SonarJS\r\n \"sonarjs/cognitive-complexity\": [\"error\", 15],\r\n \"sonarjs/no-identical-functions\": \"error\",\r\n \"sonarjs/no-duplicated-branches\": \"error\",\r\n \"sonarjs/no-redundant-boolean\": \"error\",\r\n \"sonarjs/no-inverted-boolean-check\": \"error\",\r\n },\r\n });\r\n}\r\n","import regexpPlugin from \"eslint-plugin-regexp\";\r\nimport securityPlugin from \"eslint-plugin-security\";\r\nimport tseslint, { type FlatConfig } from \"typescript-eslint\";\r\n\r\nexport interface TypescriptSecurityOptions {\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptSecurity(options: TypescriptSecurityOptions = {}) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config({\r\n files,\r\n plugins: {\r\n security: securityPlugin as unknown as FlatConfig.Plugin,\r\n regexp: regexpPlugin,\r\n },\r\n rules: {\r\n // eslint-plugin-security\r\n \"security/detect-object-injection\": \"error\",\r\n \"security/detect-unsafe-regex\": \"error\",\r\n\r\n // eslint-plugin-regexp\r\n \"regexp/no-super-linear-backtracking\": \"error\",\r\n \"regexp/no-useless-escape\": \"error\",\r\n \"regexp/no-empty-capturing-group\": \"error\",\r\n },\r\n });\r\n}\r\n","import tseslint from \"typescript-eslint\";\r\n\r\nexport interface TypescriptSizeComplexityOptions {\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptSizeComplexity(\r\n options: TypescriptSizeComplexityOptions = {}\r\n) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config({\r\n files,\r\n rules: {\r\n \"max-lines\": [\r\n \"error\",\r\n { max: 100, skipBlankLines: true, skipComments: true },\r\n ],\r\n \"max-lines-per-function\": [\r\n \"error\",\r\n { max: 50, skipBlankLines: true, skipComments: true },\r\n ],\r\n complexity: [\"error\", 15],\r\n \"max-params\": [\"error\", 3],\r\n \"no-var\": \"error\",\r\n \"prefer-const\": \"warn\",\r\n },\r\n });\r\n}\r\n","import tseslint from \"typescript-eslint\";\r\n\r\nexport interface TypescriptTypeAwareOptions {\r\n /**\r\n * Type-aware linting requires a project TSConfig.\r\n * Example: \"./tsconfig.json\".\r\n */\r\n tsconfigPath?: string | string[];\r\n\r\n /**\r\n * tsconfigRootDir should usually be import.meta.dirname from the consumer repo.\r\n */\r\n tsconfigRootDir?: string;\r\n\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptTypeAware(options: TypescriptTypeAwareOptions = {}) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config({\r\n files,\r\n plugins: {\r\n \"@typescript-eslint\": tseslint.plugin,\r\n },\r\n languageOptions: {\r\n parserOptions: {\r\n project: options.tsconfigPath ?? \"./tsconfig.json\",\r\n tsconfigRootDir: options.tsconfigRootDir,\r\n },\r\n },\r\n rules: {\r\n \"@typescript-eslint/require-await\": \"error\",\r\n \"@typescript-eslint/no-floating-promises\": \"error\",\r\n \"@typescript-eslint/no-misused-promises\": \"error\",\r\n \"@typescript-eslint/await-thenable\": \"error\",\r\n \"@typescript-eslint/no-unnecessary-condition\": \"warn\",\r\n \"@typescript-eslint/no-unnecessary-type-assertion\": \"error\",\r\n \"@typescript-eslint/restrict-template-expressions\": \"error\",\r\n \"@typescript-eslint/prefer-nullish-coalescing\": \"error\",\r\n \"@typescript-eslint/prefer-optional-chain\": \"error\",\r\n \"@typescript-eslint/switch-exhaustiveness-check\": \"error\",\r\n \"@typescript-eslint/no-deprecated\": \"error\",\r\n },\r\n });\r\n}\r\n","import type { ESLint } from \"eslint\";\r\n\r\n/**\r\n * Placeholder for future custom rules.\r\n *\r\n * Exporting a plugin object now keeps the package structure stable as you add\r\n * domain-specific rules later.\r\n */\r\nexport const plugin: ESLint.Plugin = {\r\n rules: {},\r\n};\r\n"],"mappings":"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","names":["tseslint","tseslint","importPlugin","tseslint","tseslint","tseslint","tseslint","tseslint","tseslint","tseslint","tseslint"]}
1
+ {"version":3,"sources":["../src/configs/typescript/base.ts","../src/configs/typescript/conventions.ts","../src/configs/typescript/docs.ts","../src/configs/typescript/imports.ts","../src/configs/typescript/minimal.ts","../src/configs/typescript/prettier.ts","../src/configs/typescript/recommended.ts","../src/configs/typescript/quality.ts","../src/configs/typescript/security.ts","../src/configs/typescript/size-complexity.ts","../src/configs/typescript/type-aware.ts","../src/plugin/index.ts"],"sourcesContent":["import tseslint from \"typescript-eslint\";\r\n\r\nexport interface TypescriptBaseOptions {\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptBase(options: TypescriptBaseOptions = {}) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config({\r\n files,\r\n plugins: {\r\n \"@typescript-eslint\": tseslint.plugin,\r\n },\r\n languageOptions: {\r\n parser: tseslint.parser,\r\n parserOptions: {\r\n ecmaVersion: \"latest\",\r\n sourceType: \"module\",\r\n },\r\n },\r\n rules: {\r\n \"@typescript-eslint/consistent-type-imports\": \"error\",\r\n \"@typescript-eslint/no-unused-vars\": \"error\",\r\n \"@typescript-eslint/no-shadow\": \"error\",\r\n \"@typescript-eslint/ban-ts-comment\": \"error\",\r\n \"@typescript-eslint/no-explicit-any\": \"warn\",\r\n \"@typescript-eslint/no-inferrable-types\": \"error\",\r\n \"no-undef\": \"off\",\r\n \"no-unused-vars\": \"off\",\r\n \"no-var\": \"error\",\r\n \"prefer-const\": \"error\",\r\n eqeqeq: [\"error\", \"always\", { null: \"ignore\" }],\r\n \"no-implicit-coercion\": \"error\",\r\n },\r\n });\r\n}\r\n","import importPlugin from \"eslint-plugin-import\";\r\nimport tseslint from \"typescript-eslint\";\r\n\r\nexport interface TypescriptConventionsOptions {\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptConventions(\r\n options: TypescriptConventionsOptions = {}\r\n) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config(\r\n {\r\n files,\r\n plugins: {\r\n import: importPlugin,\r\n },\r\n rules: {\r\n // 6.1 Rule table\r\n \"import/no-default-export\": \"error\",\r\n \"@typescript-eslint/consistent-type-definitions\": [\"error\", \"type\"],\r\n \"@typescript-eslint/consistent-type-imports\": \"error\",\r\n \"@typescript-eslint/consistent-type-exports\": \"error\",\r\n \"prefer-arrow-callback\": \"error\",\r\n },\r\n },\r\n // 6.2 Overrides\r\n {\r\n files: [\r\n \"**/*.config.{js,mjs,ts}\",\r\n \"**/app/**/{page,layout,template,not-found,global-error,loading,error}.tsx\",\r\n \"**/*.stories.tsx\",\r\n ],\r\n rules: {\r\n \"import/no-default-export\": \"off\",\r\n },\r\n }\r\n );\r\n}\r\n","import comments from \"@eslint-community/eslint-plugin-eslint-comments\";\r\nimport jsdoc from \"eslint-plugin-jsdoc\";\r\nimport tseslint from \"typescript-eslint\";\r\n\r\nexport interface TypescriptDocsOptions {\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptDocs(options: TypescriptDocsOptions = {}) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config({\r\n files,\r\n plugins: {\r\n jsdoc: jsdoc,\r\n \"eslint-comments\": comments,\r\n },\r\n rules: {\r\n \"eslint-comments/no-unused-disable\": \"error\",\r\n \"eslint-comments/require-description\": \"error\",\r\n \"eslint-comments/disable-enable-pair\": \"error\",\r\n \"jsdoc/check-alignment\": \"error\",\r\n \"jsdoc/require-param\": \"error\",\r\n \"jsdoc/require-returns\": \"error\",\r\n },\r\n });\r\n}\r\n","import importPlugin from \"eslint-plugin-import\";\r\nimport simpleImportSort from \"eslint-plugin-simple-import-sort\";\r\nimport tseslint from \"typescript-eslint\";\r\n\r\nexport interface TypescriptImportsOptions {\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptImports(options: TypescriptImportsOptions = {}) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config({\r\n files,\r\n plugins: {\r\n import: importPlugin,\r\n \"simple-import-sort\": simpleImportSort,\r\n },\r\n settings: {\r\n \"import/parsers\": {\r\n \"@typescript-eslint/parser\": [\".ts\", \".tsx\", \".mts\", \".cts\"],\r\n },\r\n \"import/resolver\": {\r\n typescript: {\r\n alwaysTryTypes: true,\r\n project: [\"tsconfig.json\", \"*/tsconfig.json\"],\r\n },\r\n node: true,\r\n },\r\n },\r\n rules: {\r\n // Import Correctness\r\n \"import/no-duplicates\": \"error\",\r\n \"import/no-cycle\": \"error\",\r\n \"import/no-mutable-exports\": \"error\",\r\n \"import/first\": \"error\",\r\n \"import/newline-after-import\": \"error\",\r\n \"import/no-extraneous-dependencies\": \"error\",\r\n\r\n // Sorting\r\n \"simple-import-sort/imports\": \"error\",\r\n \"simple-import-sort/exports\": \"error\",\r\n },\r\n });\r\n}\r\n","import { typescriptBase } from \"./base.js\";\r\n\r\nexport type TypescriptConfigFiles = string[];\r\n\r\nexport interface TypescriptMinimalOptions {\r\n files?: TypescriptConfigFiles;\r\n}\r\n\r\n/**\r\n * MVP TypeScript profile.\r\n *\r\n * Intentionally minimal: enables TypeScript parsing and one rule to prove\r\n * end-to-end packaging + consumption.\r\n * @param options - Configuration options.\r\n * @returns The ESLint configuration.\r\n */\r\nexport function typescriptMinimal(options: TypescriptMinimalOptions = {}) {\r\n return typescriptBase(options);\r\n}\r\n","import eslintConfigPrettier from \"eslint-config-prettier\";\r\nimport tseslint from \"typescript-eslint\";\r\n\r\nexport interface TypescriptPrettierOptions {\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptPrettierInterop(\r\n options: TypescriptPrettierOptions = {}\r\n) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config({\r\n files,\r\n rules: {\r\n ...eslintConfigPrettier.rules,\r\n },\r\n });\r\n}\r\n","import tseslint from \"typescript-eslint\";\r\n\r\nimport { typescriptBase } from \"./base.js\";\r\nimport { typescriptConventions } from \"./conventions.js\";\r\nimport { typescriptDocs } from \"./docs.js\";\r\nimport { typescriptImports } from \"./imports.js\";\r\nimport { typescriptQuality } from \"./quality.js\";\r\nimport { typescriptSecurity } from \"./security.js\";\r\nimport { typescriptSizeComplexity } from \"./size-complexity.js\";\r\nimport { typescriptTypeAware } from \"./type-aware.js\";\r\n\r\nexport interface TypescriptRecommendedOptions {\r\n /**\r\n * When set, enables type-aware rules (more powerful, can be slower).\r\n *\r\n * Recommended for mature codebases, but not required for MVP.\r\n */\r\n typeChecked?: boolean;\r\n\r\n /**\r\n * Type-aware linting requires a project TSConfig.\r\n * Example: \"./tsconfig.json\".\r\n */\r\n tsconfigPath?: string | string[];\r\n\r\n /**\r\n * tsconfigRootDir should usually be import.meta.dirname from the consumer repo.\r\n */\r\n tsconfigRootDir?: string;\r\n\r\n files?: string[];\r\n\r\n /**\r\n * When true (default), enables strict conventions (e.g. no default exports).\r\n */\r\n enableConventions?: boolean;\r\n}\r\n\r\nexport function typescriptRecommended(\r\n options: TypescriptRecommendedOptions = {}\r\n) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n const enableConventions = options.enableConventions ?? true;\r\n\r\n const upstreamConfigs = options.typeChecked\r\n ? tseslint.configs.recommendedTypeChecked\r\n : tseslint.configs.recommended;\r\n\r\n const typeAwareConfig = options.typeChecked\r\n ? typescriptTypeAware({\r\n files,\r\n tsconfigPath: options.tsconfigPath,\r\n tsconfigRootDir: options.tsconfigRootDir,\r\n })\r\n : [];\r\n\r\n const conventionsConfig = enableConventions\r\n ? typescriptConventions({ files })\r\n : [];\r\n\r\n return tseslint.config(\r\n ...typescriptBase({ files }),\r\n ...typescriptQuality({ files }),\r\n ...typescriptImports({ files }),\r\n ...typescriptSecurity({ files }),\r\n ...typescriptDocs({ files }),\r\n ...typescriptSizeComplexity({ files }),\r\n ...conventionsConfig,\r\n ...typeAwareConfig,\r\n ...upstreamConfigs.map((config) => ({\r\n ...config,\r\n files,\r\n }))\r\n );\r\n}\r\n","import sonarjs from \"eslint-plugin-sonarjs\";\r\nimport unicorn from \"eslint-plugin-unicorn\";\r\nimport tseslint from \"typescript-eslint\";\r\n\r\nexport interface TypescriptQualityOptions {\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptQuality(options: TypescriptQualityOptions = {}) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config({\r\n files,\r\n plugins: {\r\n unicorn,\r\n sonarjs,\r\n },\r\n rules: {\r\n // Unicorn\r\n \"unicorn/prefer-node-protocol\": \"error\",\r\n \"unicorn/no-useless-undefined\": \"error\",\r\n \"unicorn/no-lonely-if\": \"error\",\r\n \"unicorn/prefer-optional-catch-binding\": \"error\",\r\n \"unicorn/prefer-string-replace-all\": \"error\",\r\n \"unicorn/prevent-abbreviations\": [\r\n \"warn\",\r\n {\r\n allowList: {\r\n Props: true,\r\n props: true,\r\n Ref: true,\r\n ref: true,\r\n Src: true,\r\n src: true,\r\n Params: true,\r\n params: true,\r\n Env: true,\r\n env: true,\r\n Args: true,\r\n args: true,\r\n Docs: true,\r\n docs: true,\r\n arg: true,\r\n err: true,\r\n req: true,\r\n res: true,\r\n ctx: true,\r\n val: true,\r\n },\r\n },\r\n ],\r\n\r\n // Best Practices\r\n \"consistent-return\": \"error\",\r\n\r\n // SonarJS\r\n \"sonarjs/cognitive-complexity\": [\"error\", 15],\r\n \"sonarjs/no-identical-functions\": \"error\",\r\n \"sonarjs/no-duplicated-branches\": \"error\",\r\n \"sonarjs/no-redundant-boolean\": \"error\",\r\n \"sonarjs/no-inverted-boolean-check\": \"error\",\r\n },\r\n });\r\n}\r\n","import regexpPlugin from \"eslint-plugin-regexp\";\r\nimport securityPlugin from \"eslint-plugin-security\";\r\nimport tseslint, { type FlatConfig } from \"typescript-eslint\";\r\n\r\nexport interface TypescriptSecurityOptions {\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptSecurity(options: TypescriptSecurityOptions = {}) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config({\r\n files,\r\n plugins: {\r\n security: securityPlugin as unknown as FlatConfig.Plugin,\r\n regexp: regexpPlugin,\r\n },\r\n rules: {\r\n // eslint-plugin-security\r\n \"security/detect-object-injection\": \"error\",\r\n \"security/detect-unsafe-regex\": \"error\",\r\n\r\n // eslint-plugin-regexp\r\n \"regexp/no-super-linear-backtracking\": \"error\",\r\n \"regexp/no-useless-escape\": \"error\",\r\n \"regexp/no-empty-capturing-group\": \"error\",\r\n },\r\n });\r\n}\r\n","import tseslint from \"typescript-eslint\";\r\n\r\nexport interface TypescriptSizeComplexityOptions {\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptSizeComplexity(\r\n options: TypescriptSizeComplexityOptions = {}\r\n) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config({\r\n files,\r\n rules: {\r\n \"max-lines\": [\r\n \"error\",\r\n { max: 100, skipBlankLines: true, skipComments: true },\r\n ],\r\n \"max-lines-per-function\": [\r\n \"error\",\r\n { max: 50, skipBlankLines: true, skipComments: true },\r\n ],\r\n complexity: [\"error\", 15],\r\n \"max-params\": [\"error\", 3],\r\n \"no-var\": \"error\",\r\n \"prefer-const\": \"warn\",\r\n },\r\n });\r\n}\r\n","import tseslint from \"typescript-eslint\";\r\n\r\nexport interface TypescriptTypeAwareOptions {\r\n /**\r\n * Type-aware linting requires a project TSConfig.\r\n * Example: \"./tsconfig.json\".\r\n */\r\n tsconfigPath?: string | string[];\r\n\r\n /**\r\n * tsconfigRootDir should usually be import.meta.dirname from the consumer repo.\r\n */\r\n tsconfigRootDir?: string;\r\n\r\n files?: string[];\r\n}\r\n\r\nexport function typescriptTypeAware(options: TypescriptTypeAwareOptions = {}) {\r\n const files = options.files ?? [\"**/*.{ts,tsx,mts,cts}\"];\r\n\r\n return tseslint.config({\r\n files,\r\n plugins: {\r\n \"@typescript-eslint\": tseslint.plugin,\r\n },\r\n languageOptions: {\r\n parserOptions: {\r\n project: options.tsconfigPath ?? \"./tsconfig.json\",\r\n tsconfigRootDir: options.tsconfigRootDir,\r\n },\r\n },\r\n rules: {\r\n \"@typescript-eslint/require-await\": \"error\",\r\n \"@typescript-eslint/no-floating-promises\": \"error\",\r\n \"@typescript-eslint/no-misused-promises\": \"error\",\r\n \"@typescript-eslint/await-thenable\": \"error\",\r\n \"@typescript-eslint/no-unnecessary-condition\": \"warn\",\r\n \"@typescript-eslint/no-unnecessary-type-assertion\": \"error\",\r\n \"@typescript-eslint/restrict-template-expressions\": \"error\",\r\n \"@typescript-eslint/prefer-nullish-coalescing\": \"error\",\r\n \"@typescript-eslint/prefer-optional-chain\": \"error\",\r\n \"@typescript-eslint/switch-exhaustiveness-check\": \"error\",\r\n \"@typescript-eslint/no-deprecated\": \"error\",\r\n },\r\n });\r\n}\r\n","import type { ESLint } from \"eslint\";\r\n\r\n/**\r\n * Placeholder for future custom rules.\r\n *\r\n * Exporting a plugin object now keeps the package structure stable as you add\r\n * domain-specific rules later.\r\n */\r\nexport const plugin: ESLint.Plugin = {\r\n rules: {},\r\n};\r\n"],"mappings":"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","names":["tseslint","tseslint","importPlugin","tseslint","tseslint","tseslint","tseslint","tseslint","tseslint","tseslint","tseslint"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stride.it/appoint-lint-governance",
3
- "version": "0.1.20",
3
+ "version": "0.1.21",
4
4
  "description": "Shareable ESLint flat-config profiles (MVP: TypeScript) for normalizing lint across repos.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",