pickier 0.1.27 → 0.1.28

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 (286) hide show
  1. package/dist/bin/cli.js +7919 -2626
  2. package/dist/src/index.js +6535 -1533
  3. package/dist/utils.d.ts +15 -21
  4. package/package.json +3 -3
  5. package/dist/ast.d.ts +0 -13
  6. package/dist/plugins/eslint.d.ts +0 -2
  7. package/dist/plugins/general.d.ts +0 -2
  8. package/dist/plugins/index.d.ts +0 -2
  9. package/dist/plugins/lockfile.d.ts +0 -22
  10. package/dist/plugins/markdown.d.ts +0 -2
  11. package/dist/plugins/node.d.ts +0 -2
  12. package/dist/plugins/perfectionist.d.ts +0 -6
  13. package/dist/plugins/pickier.d.ts +0 -2
  14. package/dist/plugins/publint.d.ts +0 -10
  15. package/dist/plugins/quality.d.ts +0 -2
  16. package/dist/plugins/regexp.d.ts +0 -2
  17. package/dist/plugins/shell.d.ts +0 -2
  18. package/dist/plugins/spell.d.ts +0 -3
  19. package/dist/plugins/style.d.ts +0 -2
  20. package/dist/plugins/ts.d.ts +0 -2
  21. package/dist/plugins/unused-imports.d.ts +0 -6
  22. package/dist/plugins/utils.d.ts +0 -4
  23. package/dist/rules/general/_template-tracking.d.ts +0 -31
  24. package/dist/rules/general/array-callback-return.d.ts +0 -2
  25. package/dist/rules/general/constructor-super.d.ts +0 -2
  26. package/dist/rules/general/for-direction.d.ts +0 -2
  27. package/dist/rules/general/getter-return.d.ts +0 -2
  28. package/dist/rules/general/no-async-promise-executor.d.ts +0 -2
  29. package/dist/rules/general/no-compare-neg-zero.d.ts +0 -2
  30. package/dist/rules/general/no-cond-assign.d.ts +0 -2
  31. package/dist/rules/general/no-const-assign.d.ts +0 -2
  32. package/dist/rules/general/no-constant-condition.d.ts +0 -2
  33. package/dist/rules/general/no-constructor-return.d.ts +0 -2
  34. package/dist/rules/general/no-dupe-class-members.d.ts +0 -2
  35. package/dist/rules/general/no-dupe-keys.d.ts +0 -2
  36. package/dist/rules/general/no-duplicate-case.d.ts +0 -2
  37. package/dist/rules/general/no-empty-pattern.d.ts +0 -2
  38. package/dist/rules/general/no-fallthrough.d.ts +0 -2
  39. package/dist/rules/general/no-irregular-whitespace.d.ts +0 -2
  40. package/dist/rules/general/no-loss-of-precision.d.ts +0 -2
  41. package/dist/rules/general/no-new.d.ts +0 -13
  42. package/dist/rules/general/no-promise-executor-return.d.ts +0 -2
  43. package/dist/rules/general/no-redeclare.d.ts +0 -2
  44. package/dist/rules/general/no-regex-spaces.d.ts +0 -10
  45. package/dist/rules/general/no-self-assign.d.ts +0 -2
  46. package/dist/rules/general/no-self-compare.d.ts +0 -2
  47. package/dist/rules/general/no-sparse-arrays.d.ts +0 -2
  48. package/dist/rules/general/no-undef.d.ts +0 -2
  49. package/dist/rules/general/no-unreachable.d.ts +0 -2
  50. package/dist/rules/general/no-unsafe-negation.d.ts +0 -2
  51. package/dist/rules/general/no-unused-vars.d.ts +0 -2
  52. package/dist/rules/general/no-useless-catch.d.ts +0 -2
  53. package/dist/rules/general/prefer-const.d.ts +0 -2
  54. package/dist/rules/general/prefer-object-spread.d.ts +0 -2
  55. package/dist/rules/general/prefer-template.d.ts +0 -2
  56. package/dist/rules/general/use-isnan.d.ts +0 -2
  57. package/dist/rules/general/valid-typeof.d.ts +0 -2
  58. package/dist/rules/imports/first.d.ts +0 -2
  59. package/dist/rules/imports/import-dedupe.d.ts +0 -2
  60. package/dist/rules/imports/named.d.ts +0 -2
  61. package/dist/rules/imports/no-cycle.d.ts +0 -2
  62. package/dist/rules/imports/no-duplicate-imports.d.ts +0 -2
  63. package/dist/rules/imports/no-import-dist.d.ts +0 -2
  64. package/dist/rules/imports/no-import-node-modules-by-path.d.ts +0 -2
  65. package/dist/rules/imports/no-unresolved.d.ts +0 -2
  66. package/dist/rules/lockfile/index.d.ts +0 -6
  67. package/dist/rules/lockfile/parser.d.ts +0 -79
  68. package/dist/rules/lockfile/validate-host.d.ts +0 -18
  69. package/dist/rules/lockfile/validate-https.d.ts +0 -14
  70. package/dist/rules/lockfile/validate-integrity.d.ts +0 -19
  71. package/dist/rules/lockfile/validate-package-names.d.ts +0 -23
  72. package/dist/rules/lockfile/validate-scheme.d.ts +0 -17
  73. package/dist/rules/markdown/_fence-tracking.d.ts +0 -32
  74. package/dist/rules/markdown/_shared.d.ts +0 -9
  75. package/dist/rules/markdown/blanks-around-fences.d.ts +0 -5
  76. package/dist/rules/markdown/blanks-around-headings.d.ts +0 -5
  77. package/dist/rules/markdown/blanks-around-lists.d.ts +0 -5
  78. package/dist/rules/markdown/blanks-around-tables.d.ts +0 -5
  79. package/dist/rules/markdown/code-block-style.d.ts +0 -5
  80. package/dist/rules/markdown/code-fence-style.d.ts +0 -5
  81. package/dist/rules/markdown/commands-show-output.d.ts +0 -5
  82. package/dist/rules/markdown/descriptive-link-text.d.ts +0 -5
  83. package/dist/rules/markdown/emphasis-style.d.ts +0 -5
  84. package/dist/rules/markdown/fenced-code-language.d.ts +0 -5
  85. package/dist/rules/markdown/first-line-heading.d.ts +0 -5
  86. package/dist/rules/markdown/heading-increment.d.ts +0 -5
  87. package/dist/rules/markdown/heading-start-left.d.ts +0 -5
  88. package/dist/rules/markdown/heading-style.d.ts +0 -5
  89. package/dist/rules/markdown/hr-style.d.ts +0 -5
  90. package/dist/rules/markdown/line-length.d.ts +0 -5
  91. package/dist/rules/markdown/link-fragments.d.ts +0 -5
  92. package/dist/rules/markdown/link-image-reference-definitions.d.ts +0 -5
  93. package/dist/rules/markdown/link-image-style.d.ts +0 -5
  94. package/dist/rules/markdown/list-indent.d.ts +0 -5
  95. package/dist/rules/markdown/list-marker-space.d.ts +0 -5
  96. package/dist/rules/markdown/no-alt-text.d.ts +0 -5
  97. package/dist/rules/markdown/no-bare-urls.d.ts +0 -5
  98. package/dist/rules/markdown/no-blanks-blockquote.d.ts +0 -5
  99. package/dist/rules/markdown/no-duplicate-heading.d.ts +0 -10
  100. package/dist/rules/markdown/no-emphasis-as-heading.d.ts +0 -9
  101. package/dist/rules/markdown/no-empty-links.d.ts +0 -5
  102. package/dist/rules/markdown/no-hard-tabs.d.ts +0 -5
  103. package/dist/rules/markdown/no-inline-html.d.ts +0 -5
  104. package/dist/rules/markdown/no-missing-space-atx.d.ts +0 -5
  105. package/dist/rules/markdown/no-missing-space-closed-atx.d.ts +0 -5
  106. package/dist/rules/markdown/no-multiple-blanks.d.ts +0 -5
  107. package/dist/rules/markdown/no-multiple-space-atx.d.ts +0 -5
  108. package/dist/rules/markdown/no-multiple-space-blockquote.d.ts +0 -5
  109. package/dist/rules/markdown/no-multiple-space-closed-atx.d.ts +0 -5
  110. package/dist/rules/markdown/no-reversed-links.d.ts +0 -5
  111. package/dist/rules/markdown/no-space-in-code.d.ts +0 -5
  112. package/dist/rules/markdown/no-space-in-emphasis.d.ts +0 -5
  113. package/dist/rules/markdown/no-space-in-links.d.ts +0 -5
  114. package/dist/rules/markdown/no-trailing-punctuation.d.ts +0 -5
  115. package/dist/rules/markdown/no-trailing-spaces.d.ts +0 -5
  116. package/dist/rules/markdown/ol-prefix.d.ts +0 -5
  117. package/dist/rules/markdown/proper-names.d.ts +0 -5
  118. package/dist/rules/markdown/reference-links-images.d.ts +0 -14
  119. package/dist/rules/markdown/required-headings.d.ts +0 -5
  120. package/dist/rules/markdown/single-title.d.ts +0 -5
  121. package/dist/rules/markdown/single-trailing-newline.d.ts +0 -5
  122. package/dist/rules/markdown/strong-style.d.ts +0 -5
  123. package/dist/rules/markdown/table-column-count.d.ts +0 -5
  124. package/dist/rules/markdown/table-column-style.d.ts +0 -5
  125. package/dist/rules/markdown/table-pipe-style.d.ts +0 -5
  126. package/dist/rules/markdown/ul-indent.d.ts +0 -14
  127. package/dist/rules/markdown/ul-style.d.ts +0 -5
  128. package/dist/rules/node/prefer-global-buffer.d.ts +0 -9
  129. package/dist/rules/node/prefer-global-process.d.ts +0 -9
  130. package/dist/rules/publint/bin-file-not-executable.d.ts +0 -2
  131. package/dist/rules/publint/deprecated-field-jsnext.d.ts +0 -2
  132. package/dist/rules/publint/exports-default-should-be-last.d.ts +0 -2
  133. package/dist/rules/publint/exports-fallback-array-use.d.ts +0 -2
  134. package/dist/rules/publint/exports-missing-root-entrypoint.d.ts +0 -2
  135. package/dist/rules/publint/exports-module-should-be-esm.d.ts +0 -2
  136. package/dist/rules/publint/exports-module-should-precede-require.d.ts +0 -2
  137. package/dist/rules/publint/exports-types-should-be-first.d.ts +0 -2
  138. package/dist/rules/publint/exports-value-invalid.d.ts +0 -2
  139. package/dist/rules/publint/field-invalid-value-type.d.ts +0 -2
  140. package/dist/rules/publint/file-does-not-exist.d.ts +0 -2
  141. package/dist/rules/publint/file-invalid-format.d.ts +0 -2
  142. package/dist/rules/publint/has-module-but-no-exports.d.ts +0 -2
  143. package/dist/rules/publint/imports-default-should-be-last.d.ts +0 -2
  144. package/dist/rules/publint/imports-key-invalid.d.ts +0 -2
  145. package/dist/rules/publint/imports-module-should-precede-require.d.ts +0 -2
  146. package/dist/rules/publint/imports-value-invalid.d.ts +0 -2
  147. package/dist/rules/publint/index.d.ts +0 -22
  148. package/dist/rules/publint/local-dependency.d.ts +0 -2
  149. package/dist/rules/publint/module-should-be-esm.d.ts +0 -2
  150. package/dist/rules/publint/use-type.d.ts +0 -2
  151. package/dist/rules/publint/utils.d.ts +0 -73
  152. package/dist/rules/quality/complexity.d.ts +0 -2
  153. package/dist/rules/quality/default-case.d.ts +0 -2
  154. package/dist/rules/quality/eqeqeq.d.ts +0 -2
  155. package/dist/rules/quality/max-depth.d.ts +0 -2
  156. package/dist/rules/quality/max-lines-per-function.d.ts +0 -2
  157. package/dist/rules/quality/no-alert.d.ts +0 -2
  158. package/dist/rules/quality/no-await-in-loop.d.ts +0 -2
  159. package/dist/rules/quality/no-caller.d.ts +0 -2
  160. package/dist/rules/quality/no-case-declarations.d.ts +0 -2
  161. package/dist/rules/quality/no-else-return.d.ts +0 -2
  162. package/dist/rules/quality/no-empty-function.d.ts +0 -2
  163. package/dist/rules/quality/no-empty.d.ts +0 -2
  164. package/dist/rules/quality/no-eval.d.ts +0 -2
  165. package/dist/rules/quality/no-extend-native.d.ts +0 -2
  166. package/dist/rules/quality/no-extra-boolean-cast.d.ts +0 -2
  167. package/dist/rules/quality/no-global-assign.d.ts +0 -2
  168. package/dist/rules/quality/no-implied-eval.d.ts +0 -2
  169. package/dist/rules/quality/no-iterator.d.ts +0 -2
  170. package/dist/rules/quality/no-lonely-if.d.ts +0 -2
  171. package/dist/rules/quality/no-new-func.d.ts +0 -2
  172. package/dist/rules/quality/no-new-wrappers.d.ts +0 -2
  173. package/dist/rules/quality/no-new.d.ts +0 -2
  174. package/dist/rules/quality/no-octal.d.ts +0 -2
  175. package/dist/rules/quality/no-param-reassign.d.ts +0 -2
  176. package/dist/rules/quality/no-proto.d.ts +0 -2
  177. package/dist/rules/quality/no-return-assign.d.ts +0 -2
  178. package/dist/rules/quality/no-sequences.d.ts +0 -2
  179. package/dist/rules/quality/no-shadow.d.ts +0 -2
  180. package/dist/rules/quality/no-throw-literal.d.ts +0 -2
  181. package/dist/rules/quality/no-use-before-define.d.ts +0 -2
  182. package/dist/rules/quality/no-useless-call.d.ts +0 -2
  183. package/dist/rules/quality/no-useless-concat.d.ts +0 -2
  184. package/dist/rules/quality/no-useless-escape.d.ts +0 -2
  185. package/dist/rules/quality/no-useless-rename.d.ts +0 -2
  186. package/dist/rules/quality/no-useless-return.d.ts +0 -2
  187. package/dist/rules/quality/no-var.d.ts +0 -2
  188. package/dist/rules/quality/no-with.d.ts +0 -2
  189. package/dist/rules/quality/prefer-arrow-callback.d.ts +0 -2
  190. package/dist/rules/quality/require-await.d.ts +0 -2
  191. package/dist/rules/regexp/no-super-linear-backtracking.d.ts +0 -2
  192. package/dist/rules/regexp/no-unused-capturing-group.d.ts +0 -2
  193. package/dist/rules/regexp/no-useless-lazy.d.ts +0 -9
  194. package/dist/rules/shell/_shared.d.ts +0 -24
  195. package/dist/rules/shell/command-substitution.d.ts +0 -6
  196. package/dist/rules/shell/consistent-case-terminators.d.ts +0 -9
  197. package/dist/rules/shell/function-style.d.ts +0 -6
  198. package/dist/rules/shell/heredoc-indent.d.ts +0 -7
  199. package/dist/rules/shell/indent.d.ts +0 -2
  200. package/dist/rules/shell/keyword-spacing.d.ts +0 -10
  201. package/dist/rules/shell/no-broken-redirect.d.ts +0 -7
  202. package/dist/rules/shell/no-cd-without-check.d.ts +0 -6
  203. package/dist/rules/shell/no-eval.d.ts +0 -6
  204. package/dist/rules/shell/no-exit-in-subshell.d.ts +0 -7
  205. package/dist/rules/shell/no-ls-parsing.d.ts +0 -7
  206. package/dist/rules/shell/no-trailing-semicolons.d.ts +0 -6
  207. package/dist/rules/shell/no-trailing-whitespace.d.ts +0 -5
  208. package/dist/rules/shell/no-useless-cat.d.ts +0 -6
  209. package/dist/rules/shell/no-variable-in-single-quotes.d.ts +0 -7
  210. package/dist/rules/shell/operator-spacing.d.ts +0 -11
  211. package/dist/rules/shell/prefer-double-brackets.d.ts +0 -6
  212. package/dist/rules/shell/prefer-printf.d.ts +0 -6
  213. package/dist/rules/shell/quote-variables.d.ts +0 -2
  214. package/dist/rules/shell/set-options.d.ts +0 -8
  215. package/dist/rules/shell/shebang.d.ts +0 -2
  216. package/dist/rules/sort/exports.d.ts +0 -2
  217. package/dist/rules/sort/heritage-clauses.d.ts +0 -2
  218. package/dist/rules/sort/imports.d.ts +0 -2
  219. package/dist/rules/sort/keys.d.ts +0 -2
  220. package/dist/rules/sort/named-imports.d.ts +0 -2
  221. package/dist/rules/sort/objects.d.ts +0 -2
  222. package/dist/rules/sort/tailwind-classes.d.ts +0 -5
  223. package/dist/rules/style/array-bracket-spacing.d.ts +0 -2
  224. package/dist/rules/style/arrow-parens.d.ts +0 -2
  225. package/dist/rules/style/arrow-spacing.d.ts +0 -2
  226. package/dist/rules/style/block-spacing.d.ts +0 -2
  227. package/dist/rules/style/brace-style.d.ts +0 -10
  228. package/dist/rules/style/comma-dangle.d.ts +0 -2
  229. package/dist/rules/style/comma-spacing.d.ts +0 -2
  230. package/dist/rules/style/comma-style.d.ts +0 -2
  231. package/dist/rules/style/computed-property-spacing.d.ts +0 -2
  232. package/dist/rules/style/consistent-chaining.d.ts +0 -2
  233. package/dist/rules/style/consistent-list-newline.d.ts +0 -2
  234. package/dist/rules/style/curly.d.ts +0 -5
  235. package/dist/rules/style/dot-location.d.ts +0 -2
  236. package/dist/rules/style/function-call-spacing.d.ts +0 -2
  237. package/dist/rules/style/generator-star-spacing.d.ts +0 -2
  238. package/dist/rules/style/if-newline.d.ts +0 -2
  239. package/dist/rules/style/indent-binary-ops.d.ts +0 -2
  240. package/dist/rules/style/indent-unindent.d.ts +0 -2
  241. package/dist/rules/style/key-spacing.d.ts +0 -2
  242. package/dist/rules/style/keyword-spacing.d.ts +0 -2
  243. package/dist/rules/style/lines-between-class-members.d.ts +0 -2
  244. package/dist/rules/style/max-statements-per-line.d.ts +0 -2
  245. package/dist/rules/style/multiline-ternary.d.ts +0 -2
  246. package/dist/rules/style/new-parens.d.ts +0 -2
  247. package/dist/rules/style/no-extra-parens.d.ts +0 -2
  248. package/dist/rules/style/no-floating-decimal.d.ts +0 -2
  249. package/dist/rules/style/no-mixed-operators.d.ts +0 -2
  250. package/dist/rules/style/no-mixed-spaces-and-tabs.d.ts +0 -2
  251. package/dist/rules/style/no-multi-spaces.d.ts +0 -10
  252. package/dist/rules/style/no-multiple-empty-lines.d.ts +0 -9
  253. package/dist/rules/style/no-tabs.d.ts +0 -2
  254. package/dist/rules/style/no-trailing-spaces.d.ts +0 -9
  255. package/dist/rules/style/no-whitespace-before-property.d.ts +0 -2
  256. package/dist/rules/style/object-curly-spacing.d.ts +0 -2
  257. package/dist/rules/style/operator-linebreak.d.ts +0 -2
  258. package/dist/rules/style/padded-blocks.d.ts +0 -2
  259. package/dist/rules/style/quote-props.d.ts +0 -2
  260. package/dist/rules/style/rest-spread-spacing.d.ts +0 -2
  261. package/dist/rules/style/semi-spacing.d.ts +0 -2
  262. package/dist/rules/style/space-before-blocks.d.ts +0 -2
  263. package/dist/rules/style/space-before-function-paren.d.ts +0 -2
  264. package/dist/rules/style/space-in-parens.d.ts +0 -2
  265. package/dist/rules/style/space-infix-ops.d.ts +0 -2
  266. package/dist/rules/style/space-unary-ops.d.ts +0 -2
  267. package/dist/rules/style/spaced-comment.d.ts +0 -2
  268. package/dist/rules/style/switch-colon-spacing.d.ts +0 -2
  269. package/dist/rules/style/template-curly-spacing.d.ts +0 -2
  270. package/dist/rules/style/template-tag-spacing.d.ts +0 -2
  271. package/dist/rules/style/top-level-function.d.ts +0 -6
  272. package/dist/rules/style/wrap-iife.d.ts +0 -2
  273. package/dist/rules/style/yield-star-spacing.d.ts +0 -2
  274. package/dist/rules/ts/member-delimiter-style.d.ts +0 -4
  275. package/dist/rules/ts/no-explicit-any.d.ts +0 -2
  276. package/dist/rules/ts/no-floating-promises.d.ts +0 -2
  277. package/dist/rules/ts/no-misused-promises.d.ts +0 -2
  278. package/dist/rules/ts/no-require-imports.d.ts +0 -2
  279. package/dist/rules/ts/no-top-level-await.d.ts +0 -4
  280. package/dist/rules/ts/no-ts-export-equal.d.ts +0 -2
  281. package/dist/rules/ts/no-unsafe-assignment.d.ts +0 -2
  282. package/dist/rules/ts/prefer-nullish-coalescing.d.ts +0 -2
  283. package/dist/rules/ts/prefer-optional-chain.d.ts +0 -2
  284. package/dist/rules/ts/type-annotation-spacing.d.ts +0 -2
  285. package/dist/rules/ts/type-generic-spacing.d.ts +0 -2
  286. package/dist/rules/ts/type-named-tuple-spacing.d.ts +0 -2
@@ -1,73 +0,0 @@
1
- import type { LintIssue } from '../../types';
2
- /**
3
- * Safely parse package.json content. Returns null on failure.
4
- */
5
- export declare function parsePackageJson(content: string): Record<string, any> | null;
6
- /**
7
- * Find the line number where a JSON key path appears in the raw content.
8
- * Walks through the path segments to find the most specific match.
9
- */
10
- export declare function findJsonKeyLine(content: string, keyPath: string[]): number;
11
- /**
12
- * Get the package directory from a file path (dirname of the package.json).
13
- */
14
- export declare function getPkgDir(filePath: string): string;
15
- /**
16
- * Resolve a package-relative path to an absolute path.
17
- */
18
- export declare function resolvePkgPath(pkgDir: string, relativePath: string): string;
19
- /**
20
- * Format a JSON path for human-readable messages.
21
- * e.g. ['exports', '.', 'types'] -> 'pkg.exports["."].types'
22
- */
23
- export declare function formatPkgPath(path: string[]): string;
24
- /**
25
- * Get a published field value, respecting publishConfig overrides.
26
- * Returns [value, path] tuple.
27
- */
28
- export declare function getPublishedField(pkg: Record<string, any>, field: string): [any, string[]];
29
- /**
30
- * Detect the code format (ESM, CJS, mixed, or unknown) from file content.
31
- */
32
- export declare function getCodeFormat(code: string): CodeFormat;
33
- /**
34
- * Determine the expected code format from a file path and nearest package.json type field.
35
- */
36
- export declare function getFilePathFormat(filePath: string, pkgType?: string): 'ESM' | 'CJS';
37
- /**
38
- * Get the expected file extension for a given code format.
39
- */
40
- export declare function getCodeFormatExtension(format: CodeFormat): string;
41
- /**
42
- * Whether an extension is explicit (.mjs or .cjs).
43
- */
44
- export declare function isExplicitExtension(ext: string): boolean;
45
- /**
46
- * Check if a file path has a lintable extension for format checking.
47
- */
48
- export declare function isLintableFilePath(filePath: string): boolean;
49
- /**
50
- * Check if a file starts with a shebang.
51
- */
52
- export declare function startsWithShebang(code: string): boolean;
53
- /**
54
- * Recursively crawl an exports or imports object, calling visitor for each node.
55
- * Handles string values, array values (fallback), and object values (conditions/subpaths).
56
- */
57
- export declare function crawlExportsOrImports(value: any, basePath: string[], isImports: boolean, visitor: CrawlVisitor): void;
58
- /**
59
- * Create a LintIssue for a publint rule.
60
- */
61
- export declare function createIssue(filePath: string, content: string, keyPath: string[], ruleId: string, message: string, severity: 'warning' | 'error', help?: string): LintIssue;
62
- // Crawl exports/imports types
63
- export declare interface CrawlContext {
64
- path: string[]
65
- isImports: boolean
66
- }
67
- export type CodeFormat = 'ESM' | 'CJS' | 'mixed' | 'unknown';
68
- export type CrawlVisitor = (
69
- value: any,
70
- ctx: CrawlContext,
71
- /** The keys of the current object level (for condition ordering checks) */
72
- objectKeys?: string[],
73
- ) => void;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const complexityRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const defaultCaseRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const eqeqeqRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const maxDepthRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const maxLinesPerFunctionRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noAlertRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noAwaitInLoopRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noCallerRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noCaseDeclarationsRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noElseReturnRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noEmptyFunctionRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noEmptyRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noEvalRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noExtendNativeRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noExtraBooleanCastRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noGlobalAssignRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noImpliedEvalRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noIteratorRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noLonelyIfRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noNewFuncRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noNewWrappersRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noNewRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noOctalRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noParamReassignRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noProtoRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noReturnAssignRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noSequencesRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noShadowRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noThrowLiteralRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noUseBeforeDefineRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noUselessCallRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noUselessConcatRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noUselessEscapeRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noUselessRenameRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noUselessReturnRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noVarRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noWithRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const preferArrowCallbackRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const requireAwaitRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noSuperLinearBacktrackingRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const noUnusedCapturingGroupRule: RuleModule;
@@ -1,9 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * Disallow lazy quantifiers when they don't affect matching behavior
4
- *
5
- * Examples of useless lazy:
6
- * - /a+?$/ - lazy is useless because $ forces end-of-string
7
- * - /a*?b/ - lazy might be useless in some contexts
8
- */
9
- export declare const noUselessLazy: RuleModule;
@@ -1,24 +0,0 @@
1
- /**
2
- * Replace the interiors of shell strings, parameter expansions, command
3
- * substitutions, and arithmetic expansions with spaces so regex-based rules
4
- * can operate on "bare shell code" without false positives from characters
5
- * that appear inside `$'...'`, `'...'`, `"..."`, `` `...` ``, `${...}`,
6
- * `$(...)`, `$((...))`, or trailing `# ...` comments.
7
- *
8
- * The returned string has the same length as the input so that indices
9
- * produced by matches on the masked line are valid indices in the original.
10
- *
11
- * Only *interior* characters are masked to spaces; structural delimiters
12
- * (`'`, `"`, `` ` ``, `$`, `(`, `)`, `{`, `}`) are preserved so that rules
13
- * can still reason about whether a token sits next to a string boundary —
14
- * e.g. `"$var"]` still reports the `"` as the character preceding `]`.
15
- */
16
- export declare function maskShellStrings(line: string): string;
17
- /**
18
- * Track heredoc start and end within a line-by-line scan. Returns the
19
- * delimiter recognised at this line, or `null` if this line does not start a
20
- * heredoc. The caller tracks state by flipping a boolean when
21
- * `heredocDelimiter` returns non-null, and clearing it when the delimiter
22
- * matches a subsequent line's trimmed content.
23
- */
24
- export declare function heredocDelimiter(line: string): string | null;
@@ -1,6 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * SC2006: Use $(...) notation instead of legacy backtick `...` command substitution.
4
- * Backticks are harder to nest and read. $() is the modern POSIX-compliant alternative.
5
- */
6
- export declare const commandSubstitutionRule: RuleModule;
@@ -1,9 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * Enforce consistent placement of case statement terminators (;;).
4
- * Each case branch must end with ;; before the next pattern or the closing
5
- * `esac`. The rule walks the case body honoring nested block structure so
6
- * `)` characters inside `for ... done`, `while ... done`, `if ... fi`, and
7
- * `$(...)` subshells are not mistaken for the next case pattern.
8
- */
9
- export declare const consistentCaseTerminatorsRule: RuleModule;
@@ -1,6 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * Enforce consistent function declaration style in shell scripts.
4
- * Default: prefer `name() {` over `function name {` (POSIX-compatible).
5
- */
6
- export declare const functionStyleRule: RuleModule;
@@ -1,7 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * Recommend <<- (with tab stripping) for indented heredocs.
4
- * When a heredoc is inside a function or loop, using << requires the delimiter
5
- * to be at column 0, which breaks indentation flow.
6
- */
7
- export declare const heredocIndentRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const indentRule: RuleModule;
@@ -1,10 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * Enforce proper spacing around shell keywords.
4
- * Flags: `if(`, `then;cmd`, missing space after ; in control flow, etc.
5
- *
6
- * String/quote/expansion interiors are ignored via `maskShellStrings`, so
7
- * ANSI-C escape codes such as `$'\033[0;31m'` are not misread as having a
8
- * missing space after `;`.
9
- */
10
- export declare const keywordSpacingRule: RuleModule;
@@ -1,7 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * SC2069: Detect broken redirect ordering.
4
- * `cmd 2>&1 > file` redirects stderr to original stdout (terminal), not the file.
5
- * Correct: `cmd > file 2>&1` or `cmd &> file` (bash).
6
- */
7
- export declare const noBrokenRedirectRule: RuleModule;
@@ -1,6 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * SC2164: Use `cd ... || exit` or `cd ... || return` to handle cd failure.
4
- * If `cd` fails, subsequent commands run in the wrong directory.
5
- */
6
- export declare const noCdWithoutCheckRule: RuleModule;
@@ -1,6 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * Disallow use of eval in shell scripts.
4
- * eval is dangerous because it re-parses its arguments, leading to code injection risks.
5
- */
6
- export declare const noEvalRule: RuleModule;
@@ -1,7 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * SC2033: exit in subshell only exits the subshell, not the script.
4
- * Code like `(cd dir && exit 1)` won't stop the parent script.
5
- * Use return in functions, or restructure to avoid subshells.
6
- */
7
- export declare const noExitInSubshellRule: RuleModule;
@@ -1,7 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * SC2012: Don't parse the output of ls.
4
- * ls output is not safe for parsing — filenames can contain newlines, spaces, and special chars.
5
- * Use globs, find, or stat instead.
6
- */
7
- export declare const noLsParsingRule: RuleModule;
@@ -1,6 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * Disallow unnecessary trailing semicolons on simple commands.
4
- * In shell, semicolons separate commands on the same line but are unnecessary at end of line.
5
- */
6
- export declare const noTrailingSemicolonsRule: RuleModule;
@@ -1,5 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * Disallow trailing whitespace in shell scripts.
4
- */
5
- export declare const noTrailingWhitespaceRule: RuleModule;
@@ -1,6 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * SC2002: Useless use of cat. Instead of `cat file | cmd`, use `cmd < file` or `cmd file`.
4
- * Avoids spawning an unnecessary process.
5
- */
6
- export declare const noUselessCatRule: RuleModule;
@@ -1,7 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * SC2016: Expressions don't expand in single quotes.
4
- * Detects cases where $var or ${var} appears inside single quotes,
5
- * which likely indicates the author intended double quotes.
6
- */
7
- export declare const noVariableInSingleQuotesRule: RuleModule;
@@ -1,11 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * Enforce spaces inside test bracket expressions [ ] and [[ ]].
4
- * Missing spaces cause syntax errors or incorrect behavior.
5
- *
6
- * The rule ignores `[` and `]` that appear inside strings (`'...'`, `"..."`,
7
- * `$'...'`), parameter expansions (`${arr[@]}`, `${arr[0]}`), command
8
- * substitutions (`$(...)`) and comments, so valid bash such as
9
- * `${CERTS[@]}` or ANSI-C escapes like `$'\033[0;31m'` are not flagged.
10
- */
11
- export declare const operatorSpacingRule: RuleModule;
@@ -1,6 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * SC2292: Prefer [[ ]] over [ ] for tests in bash/zsh.
4
- * [[ ]] is safer: no word splitting, no pathname expansion, supports && || and regex.
5
- */
6
- export declare const preferDoubleBracketsRule: RuleModule;
@@ -1,6 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * SC2059/SC2086: Prefer printf over echo -e / echo -n.
4
- * echo behavior varies across shells and platforms; printf is portable and predictable.
5
- */
6
- export declare const preferPrintfRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const quoteVariablesRule: RuleModule;
@@ -1,8 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * Recommend using `set -euo pipefail` for safer script execution.
4
- * - set -e: Exit on error
5
- * - set -u: Error on undefined variables
6
- * - set -o pipefail: Pipe failures propagate
7
- */
8
- export declare const setOptionsRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const shebangRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const sortExportsRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const sortHeritageClausesRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const sortImportsRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const sortKeysRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const sortNamedImportsRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const sortObjectsRule: RuleModule;
@@ -1,5 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- // ---------------------------------------------------------------------------
3
- // Rule implementation
4
- // ---------------------------------------------------------------------------
5
- export declare const sortTailwindClassesRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const arrayBracketSpacingRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const arrowParensRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const arrowSpacingRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const blockSpacingRule: RuleModule;
@@ -1,10 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- /**
3
- * Enforce consistent brace style for blocks.
4
- * Default: "1tbs" (one true brace style) - opening brace on same line, closing brace on new line.
5
- *
6
- * Detects violations like:
7
- * - Closing brace on same line as next block (else, catch, finally, etc.)
8
- * - Opening brace on new line instead of same line
9
- */
10
- export declare const braceStyle: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const commaDangleRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const commaSpacingRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const commaStyleRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const computedPropertySpacingRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const consistentChainingRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const consistentListNewlineRule: RuleModule;
@@ -1,5 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- // Additional pass: detect unnecessary braces around a single simple statement in else blocks
3
- // This is a very light heuristic to satisfy style-edge-cases expectations.
4
- export declare function _internal_detectUnnecessaryElseBraces(text: string, _filePath: string): Array<{ line: number, column: number, message: string }>;
5
- export declare const curlyRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const dotLocationRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const functionCallSpacingRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const generatorStarSpacingRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const ifNewlineRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const indentBinaryOpsRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const indentUnindentRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const keySpacingRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const keywordSpacingRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const linesBetweenClassMembersRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const maxStatementsPerLineRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const multilineTernaryRule: RuleModule;
@@ -1,2 +0,0 @@
1
- import type { RuleModule } from '../../types';
2
- export declare const newParensRule: RuleModule;