pickier 0.1.26 → 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.
- package/dist/bin/cli.js +7921 -2628
- package/dist/src/index.js +6536 -1534
- package/dist/utils.d.ts +15 -21
- package/package.json +4 -4
- package/dist/ast.d.ts +0 -13
- package/dist/plugins/eslint.d.ts +0 -2
- package/dist/plugins/general.d.ts +0 -2
- package/dist/plugins/index.d.ts +0 -2
- package/dist/plugins/lockfile.d.ts +0 -22
- package/dist/plugins/markdown.d.ts +0 -2
- package/dist/plugins/node.d.ts +0 -2
- package/dist/plugins/perfectionist.d.ts +0 -6
- package/dist/plugins/pickier.d.ts +0 -2
- package/dist/plugins/publint.d.ts +0 -10
- package/dist/plugins/quality.d.ts +0 -2
- package/dist/plugins/regexp.d.ts +0 -2
- package/dist/plugins/shell.d.ts +0 -2
- package/dist/plugins/spell.d.ts +0 -3
- package/dist/plugins/style.d.ts +0 -2
- package/dist/plugins/ts.d.ts +0 -2
- package/dist/plugins/unused-imports.d.ts +0 -6
- package/dist/plugins/utils.d.ts +0 -4
- package/dist/rules/general/_template-tracking.d.ts +0 -31
- package/dist/rules/general/array-callback-return.d.ts +0 -2
- package/dist/rules/general/constructor-super.d.ts +0 -2
- package/dist/rules/general/for-direction.d.ts +0 -2
- package/dist/rules/general/getter-return.d.ts +0 -2
- package/dist/rules/general/no-async-promise-executor.d.ts +0 -2
- package/dist/rules/general/no-compare-neg-zero.d.ts +0 -2
- package/dist/rules/general/no-cond-assign.d.ts +0 -2
- package/dist/rules/general/no-const-assign.d.ts +0 -2
- package/dist/rules/general/no-constant-condition.d.ts +0 -2
- package/dist/rules/general/no-constructor-return.d.ts +0 -2
- package/dist/rules/general/no-dupe-class-members.d.ts +0 -2
- package/dist/rules/general/no-dupe-keys.d.ts +0 -2
- package/dist/rules/general/no-duplicate-case.d.ts +0 -2
- package/dist/rules/general/no-empty-pattern.d.ts +0 -2
- package/dist/rules/general/no-fallthrough.d.ts +0 -2
- package/dist/rules/general/no-irregular-whitespace.d.ts +0 -2
- package/dist/rules/general/no-loss-of-precision.d.ts +0 -2
- package/dist/rules/general/no-new.d.ts +0 -13
- package/dist/rules/general/no-promise-executor-return.d.ts +0 -2
- package/dist/rules/general/no-redeclare.d.ts +0 -2
- package/dist/rules/general/no-regex-spaces.d.ts +0 -10
- package/dist/rules/general/no-self-assign.d.ts +0 -2
- package/dist/rules/general/no-self-compare.d.ts +0 -2
- package/dist/rules/general/no-sparse-arrays.d.ts +0 -2
- package/dist/rules/general/no-undef.d.ts +0 -2
- package/dist/rules/general/no-unreachable.d.ts +0 -2
- package/dist/rules/general/no-unsafe-negation.d.ts +0 -2
- package/dist/rules/general/no-unused-vars.d.ts +0 -2
- package/dist/rules/general/no-useless-catch.d.ts +0 -2
- package/dist/rules/general/prefer-const.d.ts +0 -2
- package/dist/rules/general/prefer-object-spread.d.ts +0 -2
- package/dist/rules/general/prefer-template.d.ts +0 -2
- package/dist/rules/general/use-isnan.d.ts +0 -2
- package/dist/rules/general/valid-typeof.d.ts +0 -2
- package/dist/rules/imports/first.d.ts +0 -2
- package/dist/rules/imports/import-dedupe.d.ts +0 -2
- package/dist/rules/imports/named.d.ts +0 -2
- package/dist/rules/imports/no-cycle.d.ts +0 -2
- package/dist/rules/imports/no-duplicate-imports.d.ts +0 -2
- package/dist/rules/imports/no-import-dist.d.ts +0 -2
- package/dist/rules/imports/no-import-node-modules-by-path.d.ts +0 -2
- package/dist/rules/imports/no-unresolved.d.ts +0 -2
- package/dist/rules/lockfile/index.d.ts +0 -6
- package/dist/rules/lockfile/parser.d.ts +0 -79
- package/dist/rules/lockfile/validate-host.d.ts +0 -18
- package/dist/rules/lockfile/validate-https.d.ts +0 -14
- package/dist/rules/lockfile/validate-integrity.d.ts +0 -19
- package/dist/rules/lockfile/validate-package-names.d.ts +0 -23
- package/dist/rules/lockfile/validate-scheme.d.ts +0 -17
- package/dist/rules/markdown/_fence-tracking.d.ts +0 -32
- package/dist/rules/markdown/_shared.d.ts +0 -9
- package/dist/rules/markdown/blanks-around-fences.d.ts +0 -5
- package/dist/rules/markdown/blanks-around-headings.d.ts +0 -5
- package/dist/rules/markdown/blanks-around-lists.d.ts +0 -5
- package/dist/rules/markdown/blanks-around-tables.d.ts +0 -5
- package/dist/rules/markdown/code-block-style.d.ts +0 -5
- package/dist/rules/markdown/code-fence-style.d.ts +0 -5
- package/dist/rules/markdown/commands-show-output.d.ts +0 -5
- package/dist/rules/markdown/descriptive-link-text.d.ts +0 -5
- package/dist/rules/markdown/emphasis-style.d.ts +0 -5
- package/dist/rules/markdown/fenced-code-language.d.ts +0 -5
- package/dist/rules/markdown/first-line-heading.d.ts +0 -5
- package/dist/rules/markdown/heading-increment.d.ts +0 -5
- package/dist/rules/markdown/heading-start-left.d.ts +0 -5
- package/dist/rules/markdown/heading-style.d.ts +0 -5
- package/dist/rules/markdown/hr-style.d.ts +0 -5
- package/dist/rules/markdown/line-length.d.ts +0 -5
- package/dist/rules/markdown/link-fragments.d.ts +0 -5
- package/dist/rules/markdown/link-image-reference-definitions.d.ts +0 -5
- package/dist/rules/markdown/link-image-style.d.ts +0 -5
- package/dist/rules/markdown/list-indent.d.ts +0 -5
- package/dist/rules/markdown/list-marker-space.d.ts +0 -5
- package/dist/rules/markdown/no-alt-text.d.ts +0 -5
- package/dist/rules/markdown/no-bare-urls.d.ts +0 -5
- package/dist/rules/markdown/no-blanks-blockquote.d.ts +0 -5
- package/dist/rules/markdown/no-duplicate-heading.d.ts +0 -10
- package/dist/rules/markdown/no-emphasis-as-heading.d.ts +0 -9
- package/dist/rules/markdown/no-empty-links.d.ts +0 -5
- package/dist/rules/markdown/no-hard-tabs.d.ts +0 -5
- package/dist/rules/markdown/no-inline-html.d.ts +0 -5
- package/dist/rules/markdown/no-missing-space-atx.d.ts +0 -5
- package/dist/rules/markdown/no-missing-space-closed-atx.d.ts +0 -5
- package/dist/rules/markdown/no-multiple-blanks.d.ts +0 -5
- package/dist/rules/markdown/no-multiple-space-atx.d.ts +0 -5
- package/dist/rules/markdown/no-multiple-space-blockquote.d.ts +0 -5
- package/dist/rules/markdown/no-multiple-space-closed-atx.d.ts +0 -5
- package/dist/rules/markdown/no-reversed-links.d.ts +0 -5
- package/dist/rules/markdown/no-space-in-code.d.ts +0 -5
- package/dist/rules/markdown/no-space-in-emphasis.d.ts +0 -5
- package/dist/rules/markdown/no-space-in-links.d.ts +0 -5
- package/dist/rules/markdown/no-trailing-punctuation.d.ts +0 -5
- package/dist/rules/markdown/no-trailing-spaces.d.ts +0 -5
- package/dist/rules/markdown/ol-prefix.d.ts +0 -5
- package/dist/rules/markdown/proper-names.d.ts +0 -5
- package/dist/rules/markdown/reference-links-images.d.ts +0 -14
- package/dist/rules/markdown/required-headings.d.ts +0 -5
- package/dist/rules/markdown/single-title.d.ts +0 -5
- package/dist/rules/markdown/single-trailing-newline.d.ts +0 -5
- package/dist/rules/markdown/strong-style.d.ts +0 -5
- package/dist/rules/markdown/table-column-count.d.ts +0 -5
- package/dist/rules/markdown/table-column-style.d.ts +0 -5
- package/dist/rules/markdown/table-pipe-style.d.ts +0 -5
- package/dist/rules/markdown/ul-indent.d.ts +0 -14
- package/dist/rules/markdown/ul-style.d.ts +0 -5
- package/dist/rules/node/prefer-global-buffer.d.ts +0 -9
- package/dist/rules/node/prefer-global-process.d.ts +0 -9
- package/dist/rules/publint/bin-file-not-executable.d.ts +0 -2
- package/dist/rules/publint/deprecated-field-jsnext.d.ts +0 -2
- package/dist/rules/publint/exports-default-should-be-last.d.ts +0 -2
- package/dist/rules/publint/exports-fallback-array-use.d.ts +0 -2
- package/dist/rules/publint/exports-missing-root-entrypoint.d.ts +0 -2
- package/dist/rules/publint/exports-module-should-be-esm.d.ts +0 -2
- package/dist/rules/publint/exports-module-should-precede-require.d.ts +0 -2
- package/dist/rules/publint/exports-types-should-be-first.d.ts +0 -2
- package/dist/rules/publint/exports-value-invalid.d.ts +0 -2
- package/dist/rules/publint/field-invalid-value-type.d.ts +0 -2
- package/dist/rules/publint/file-does-not-exist.d.ts +0 -2
- package/dist/rules/publint/file-invalid-format.d.ts +0 -2
- package/dist/rules/publint/has-module-but-no-exports.d.ts +0 -2
- package/dist/rules/publint/imports-default-should-be-last.d.ts +0 -2
- package/dist/rules/publint/imports-key-invalid.d.ts +0 -2
- package/dist/rules/publint/imports-module-should-precede-require.d.ts +0 -2
- package/dist/rules/publint/imports-value-invalid.d.ts +0 -2
- package/dist/rules/publint/index.d.ts +0 -22
- package/dist/rules/publint/local-dependency.d.ts +0 -2
- package/dist/rules/publint/module-should-be-esm.d.ts +0 -2
- package/dist/rules/publint/use-type.d.ts +0 -2
- package/dist/rules/publint/utils.d.ts +0 -73
- package/dist/rules/quality/complexity.d.ts +0 -2
- package/dist/rules/quality/default-case.d.ts +0 -2
- package/dist/rules/quality/eqeqeq.d.ts +0 -2
- package/dist/rules/quality/max-depth.d.ts +0 -2
- package/dist/rules/quality/max-lines-per-function.d.ts +0 -2
- package/dist/rules/quality/no-alert.d.ts +0 -2
- package/dist/rules/quality/no-await-in-loop.d.ts +0 -2
- package/dist/rules/quality/no-caller.d.ts +0 -2
- package/dist/rules/quality/no-case-declarations.d.ts +0 -2
- package/dist/rules/quality/no-else-return.d.ts +0 -2
- package/dist/rules/quality/no-empty-function.d.ts +0 -2
- package/dist/rules/quality/no-empty.d.ts +0 -2
- package/dist/rules/quality/no-eval.d.ts +0 -2
- package/dist/rules/quality/no-extend-native.d.ts +0 -2
- package/dist/rules/quality/no-extra-boolean-cast.d.ts +0 -2
- package/dist/rules/quality/no-global-assign.d.ts +0 -2
- package/dist/rules/quality/no-implied-eval.d.ts +0 -2
- package/dist/rules/quality/no-iterator.d.ts +0 -2
- package/dist/rules/quality/no-lonely-if.d.ts +0 -2
- package/dist/rules/quality/no-new-func.d.ts +0 -2
- package/dist/rules/quality/no-new-wrappers.d.ts +0 -2
- package/dist/rules/quality/no-new.d.ts +0 -2
- package/dist/rules/quality/no-octal.d.ts +0 -2
- package/dist/rules/quality/no-param-reassign.d.ts +0 -2
- package/dist/rules/quality/no-proto.d.ts +0 -2
- package/dist/rules/quality/no-return-assign.d.ts +0 -2
- package/dist/rules/quality/no-sequences.d.ts +0 -2
- package/dist/rules/quality/no-shadow.d.ts +0 -2
- package/dist/rules/quality/no-throw-literal.d.ts +0 -2
- package/dist/rules/quality/no-use-before-define.d.ts +0 -2
- package/dist/rules/quality/no-useless-call.d.ts +0 -2
- package/dist/rules/quality/no-useless-concat.d.ts +0 -2
- package/dist/rules/quality/no-useless-escape.d.ts +0 -2
- package/dist/rules/quality/no-useless-rename.d.ts +0 -2
- package/dist/rules/quality/no-useless-return.d.ts +0 -2
- package/dist/rules/quality/no-var.d.ts +0 -2
- package/dist/rules/quality/no-with.d.ts +0 -2
- package/dist/rules/quality/prefer-arrow-callback.d.ts +0 -2
- package/dist/rules/quality/require-await.d.ts +0 -2
- package/dist/rules/regexp/no-super-linear-backtracking.d.ts +0 -2
- package/dist/rules/regexp/no-unused-capturing-group.d.ts +0 -2
- package/dist/rules/regexp/no-useless-lazy.d.ts +0 -9
- package/dist/rules/shell/_shared.d.ts +0 -24
- package/dist/rules/shell/command-substitution.d.ts +0 -6
- package/dist/rules/shell/consistent-case-terminators.d.ts +0 -9
- package/dist/rules/shell/function-style.d.ts +0 -6
- package/dist/rules/shell/heredoc-indent.d.ts +0 -7
- package/dist/rules/shell/indent.d.ts +0 -2
- package/dist/rules/shell/keyword-spacing.d.ts +0 -10
- package/dist/rules/shell/no-broken-redirect.d.ts +0 -7
- package/dist/rules/shell/no-cd-without-check.d.ts +0 -6
- package/dist/rules/shell/no-eval.d.ts +0 -6
- package/dist/rules/shell/no-exit-in-subshell.d.ts +0 -7
- package/dist/rules/shell/no-ls-parsing.d.ts +0 -7
- package/dist/rules/shell/no-trailing-semicolons.d.ts +0 -6
- package/dist/rules/shell/no-trailing-whitespace.d.ts +0 -5
- package/dist/rules/shell/no-useless-cat.d.ts +0 -6
- package/dist/rules/shell/no-variable-in-single-quotes.d.ts +0 -7
- package/dist/rules/shell/operator-spacing.d.ts +0 -11
- package/dist/rules/shell/prefer-double-brackets.d.ts +0 -6
- package/dist/rules/shell/prefer-printf.d.ts +0 -6
- package/dist/rules/shell/quote-variables.d.ts +0 -2
- package/dist/rules/shell/set-options.d.ts +0 -8
- package/dist/rules/shell/shebang.d.ts +0 -2
- package/dist/rules/sort/exports.d.ts +0 -2
- package/dist/rules/sort/heritage-clauses.d.ts +0 -2
- package/dist/rules/sort/imports.d.ts +0 -2
- package/dist/rules/sort/keys.d.ts +0 -2
- package/dist/rules/sort/named-imports.d.ts +0 -2
- package/dist/rules/sort/objects.d.ts +0 -2
- package/dist/rules/sort/tailwind-classes.d.ts +0 -5
- package/dist/rules/style/array-bracket-spacing.d.ts +0 -2
- package/dist/rules/style/arrow-parens.d.ts +0 -2
- package/dist/rules/style/arrow-spacing.d.ts +0 -2
- package/dist/rules/style/block-spacing.d.ts +0 -2
- package/dist/rules/style/brace-style.d.ts +0 -10
- package/dist/rules/style/comma-dangle.d.ts +0 -2
- package/dist/rules/style/comma-spacing.d.ts +0 -2
- package/dist/rules/style/comma-style.d.ts +0 -2
- package/dist/rules/style/computed-property-spacing.d.ts +0 -2
- package/dist/rules/style/consistent-chaining.d.ts +0 -2
- package/dist/rules/style/consistent-list-newline.d.ts +0 -2
- package/dist/rules/style/curly.d.ts +0 -5
- package/dist/rules/style/dot-location.d.ts +0 -2
- package/dist/rules/style/function-call-spacing.d.ts +0 -2
- package/dist/rules/style/generator-star-spacing.d.ts +0 -2
- package/dist/rules/style/if-newline.d.ts +0 -2
- package/dist/rules/style/indent-binary-ops.d.ts +0 -2
- package/dist/rules/style/indent-unindent.d.ts +0 -2
- package/dist/rules/style/key-spacing.d.ts +0 -2
- package/dist/rules/style/keyword-spacing.d.ts +0 -2
- package/dist/rules/style/lines-between-class-members.d.ts +0 -2
- package/dist/rules/style/max-statements-per-line.d.ts +0 -2
- package/dist/rules/style/multiline-ternary.d.ts +0 -2
- package/dist/rules/style/new-parens.d.ts +0 -2
- package/dist/rules/style/no-extra-parens.d.ts +0 -2
- package/dist/rules/style/no-floating-decimal.d.ts +0 -2
- package/dist/rules/style/no-mixed-operators.d.ts +0 -2
- package/dist/rules/style/no-mixed-spaces-and-tabs.d.ts +0 -2
- package/dist/rules/style/no-multi-spaces.d.ts +0 -10
- package/dist/rules/style/no-multiple-empty-lines.d.ts +0 -9
- package/dist/rules/style/no-tabs.d.ts +0 -2
- package/dist/rules/style/no-trailing-spaces.d.ts +0 -9
- package/dist/rules/style/no-whitespace-before-property.d.ts +0 -2
- package/dist/rules/style/object-curly-spacing.d.ts +0 -2
- package/dist/rules/style/operator-linebreak.d.ts +0 -2
- package/dist/rules/style/padded-blocks.d.ts +0 -2
- package/dist/rules/style/quote-props.d.ts +0 -2
- package/dist/rules/style/rest-spread-spacing.d.ts +0 -2
- package/dist/rules/style/semi-spacing.d.ts +0 -2
- package/dist/rules/style/space-before-blocks.d.ts +0 -2
- package/dist/rules/style/space-before-function-paren.d.ts +0 -2
- package/dist/rules/style/space-in-parens.d.ts +0 -2
- package/dist/rules/style/space-infix-ops.d.ts +0 -2
- package/dist/rules/style/space-unary-ops.d.ts +0 -2
- package/dist/rules/style/spaced-comment.d.ts +0 -2
- package/dist/rules/style/switch-colon-spacing.d.ts +0 -2
- package/dist/rules/style/template-curly-spacing.d.ts +0 -2
- package/dist/rules/style/template-tag-spacing.d.ts +0 -2
- package/dist/rules/style/top-level-function.d.ts +0 -6
- package/dist/rules/style/wrap-iife.d.ts +0 -2
- package/dist/rules/style/yield-star-spacing.d.ts +0 -2
- package/dist/rules/ts/member-delimiter-style.d.ts +0 -4
- package/dist/rules/ts/no-explicit-any.d.ts +0 -2
- package/dist/rules/ts/no-floating-promises.d.ts +0 -2
- package/dist/rules/ts/no-misused-promises.d.ts +0 -2
- package/dist/rules/ts/no-require-imports.d.ts +0 -2
- package/dist/rules/ts/no-top-level-await.d.ts +0 -4
- package/dist/rules/ts/no-ts-export-equal.d.ts +0 -2
- package/dist/rules/ts/no-unsafe-assignment.d.ts +0 -2
- package/dist/rules/ts/prefer-nullish-coalescing.d.ts +0 -2
- package/dist/rules/ts/prefer-optional-chain.d.ts +0 -2
- package/dist/rules/ts/type-annotation-spacing.d.ts +0 -2
- package/dist/rules/ts/type-generic-spacing.d.ts +0 -2
- 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,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,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,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,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,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,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,5 +0,0 @@
|
|
|
1
|
-
import type { RuleModule } from '../../types';
|
|
2
|
-
// ---------------------------------------------------------------------------
|
|
3
|
-
// Rule implementation
|
|
4
|
-
// ---------------------------------------------------------------------------
|
|
5
|
-
export declare const sortTailwindClassesRule: 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,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;
|