@enormora/eslint-config-base-with-prettier 0.0.44 → 0.0.45

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/package.json CHANGED
@@ -11,6 +11,7 @@
11
11
  "@eslint-community/eslint-plugin-eslint-comments": "4.8.1",
12
12
  "@eslint/markdown": "8.0.3",
13
13
  "@eslint/plugin-kit": "0.7.3",
14
+ "@eslint/shell": "0.1.2",
14
15
  "@stylistic/eslint-plugin": "5.10.0",
15
16
  "@typescript-eslint/utils": "8.72.1",
16
17
  "eslint-plugin-array-func": "5.1.1",
@@ -57,5 +58,5 @@
57
58
  "./rule-sets/restricted-syntax.js"
58
59
  ],
59
60
  "type": "module",
60
- "version": "0.0.44"
61
+ "version": "0.0.45"
61
62
  }
@@ -0,0 +1,19 @@
1
+ import shellPlugin from '@eslint/shell';
2
+ export const shellConfig = {
3
+ files: ['**/*.sh'],
4
+ language: 'shell/posix',
5
+ plugins: { shell: shellPlugin },
6
+ rules: {
7
+ 'shell/no-backticks': 'error',
8
+ 'shell/no-expansions-in-single-quotes': 'error',
9
+ 'shell/no-ls-iteration': 'error',
10
+ 'shell/no-unquoted-expansions': 'error',
11
+ 'shell/no-unused-vars': 'error',
12
+ 'shell/no-useless-cat': 'error',
13
+ 'shell/no-useless-echo': 'error',
14
+ 'shell/no-variables-in-printf-format': 'error',
15
+ 'shell/require-cd-guard': 'error',
16
+ 'shell/require-read-r': 'error'
17
+ }
18
+ };
19
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../../../configs/presets/base/shell.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAC;AAGxC,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,KAAK,EAAE,CAAE,SAAS,CAAE;IACpB,QAAQ,EAAE,aAAa;IACvB,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;IAC/B,KAAK,EAAE;QACH,oBAAoB,EAAE,OAAO;QAC7B,sCAAsC,EAAE,OAAO;QAC/C,uBAAuB,EAAE,OAAO;QAChC,8BAA8B,EAAE,OAAO;QACvC,sBAAsB,EAAE,OAAO;QAC/B,sBAAsB,EAAE,OAAO;QAC/B,uBAAuB,EAAE,OAAO;QAChC,qCAAqC,EAAE,OAAO;QAC9C,wBAAwB,EAAE,OAAO;QACjC,sBAAsB,EAAE,OAAO;KAClC;CACwB,CAAC"}
@@ -3,6 +3,7 @@ import { baseSharedConfig } from "../base/base-shared.js";
3
3
  import { markdownLintPlugins, markdownLintRules } from "../base/markdown-lint-rules.js";
4
4
  import { packageJsonConfig } from "../base/package-json.js";
5
5
  import { plainTextLanguagePlugin } from "../base/plain-text-language.js";
6
+ import { shellConfig } from "../base/shell.js";
6
7
  const baseJsConfig = {
7
8
  files: ['**/*.{js,cjs,mjs,jsx,ts,cts,mts,tsx,vue}'],
8
9
  ...baseSharedConfig,
@@ -54,7 +55,8 @@ export const baseWithPrettierConfig = [
54
55
  packageJsonConfig,
55
56
  prettierPackageJsonConfig,
56
57
  markdownConfig,
57
- prettierYamlConfig
58
+ prettierYamlConfig,
59
+ shellConfig
58
60
  ];
59
61
  /* eslint-disable no-barrel-files/no-barrel-files -- expose cspell helper as public API so consumers can spread or call it when customizing */
60
62
  export { withCspellWords } from "../base/cspell-config.js";
@@ -1 +1 @@
1
- {"version":3,"file":"base-with-prettier.js","sourceRoot":"","sources":["../../../../../configs/presets/base-with-prettier/base-with-prettier.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,MAAM,YAAY,GAAG;IACjB,KAAK,EAAE,CAAE,0CAA0C,CAAE;IACrD,GAAG,gBAAgB;IACnB,OAAO,EAAE;QACL,GAAG,gBAAgB,CAAC,OAAO;QAC3B,QAAQ,EAAE,cAAc;KAC3B;IACD,KAAK,EAAE;QACH,GAAG,gBAAgB,CAAC,KAAK;QAEzB,mBAAmB,EAAE,OAAO;QAE5B,gGAAgG;QAChG,mCAAmC,EAAE,KAAK;KAC7C;CACJ,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACvB,KAAK,EAAE,CAAE,WAAW,CAAE;IACtB,OAAO,EAAE,CAAE,iBAAiB,CAAE;IAC9B,QAAQ,EAAE,gBAAgB;IAC1B,OAAO,EAAE,EAAE,YAAY,EAAE,uBAAuB,EAAE,QAAQ,EAAE,cAAc,EAAE;IAC5E,KAAK,EAAE,EAAE,mBAAmB,EAAE,OAAO,EAAE;CAC1C,CAAC;AAEF,MAAM,yBAAyB,GAAG;IAC9B,KAAK,EAAE,CAAE,iBAAiB,CAAE;IAC5B,OAAO,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE;IACrC,KAAK,EAAE,EAAE,mBAAmB,EAAE,OAAO,EAAE;CAC1C,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACvB,KAAK,EAAE,CAAE,iBAAiB,CAAE;IAC5B,QAAQ,EAAE,gBAAgB;IAC1B,OAAO,EAAE,EAAE,YAAY,EAAE,uBAAuB,EAAE,QAAQ,EAAE,cAAc,EAAE;IAC5E,KAAK,EAAE,EAAE,mBAAmB,EAAE,OAAO,EAAE;CAC1C,CAAC;AAEF,MAAM,cAAc,GAAG;IACnB,KAAK,EAAE,CAAE,SAAS,CAAE;IACpB,OAAO,EAAE;QACL,GAAG,mBAAmB;QACtB,QAAQ,EAAE,cAAc;KAC3B;IACD,+EAA+E;IAC/E,QAAQ,EAAE,qBAAqB;IAC/B,KAAK,EAAE;QACH,mBAAmB,EAAE,OAAO;QAE5B,GAAG,iBAAiB;KACvB;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,YAAY;IACZ,kBAAkB;IAClB,iBAAiB;IACjB,yBAAyB;IACzB,cAAc;IACd,kBAAkB;CACS,CAAC;AAEhC,8IAA8I;AAC9I,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,+EAA+E"}
1
+ {"version":3,"file":"base-with-prettier.js","sourceRoot":"","sources":["../../../../../configs/presets/base-with-prettier/base-with-prettier.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,YAAY,GAAG;IACjB,KAAK,EAAE,CAAE,0CAA0C,CAAE;IACrD,GAAG,gBAAgB;IACnB,OAAO,EAAE;QACL,GAAG,gBAAgB,CAAC,OAAO;QAC3B,QAAQ,EAAE,cAAc;KAC3B;IACD,KAAK,EAAE;QACH,GAAG,gBAAgB,CAAC,KAAK;QAEzB,mBAAmB,EAAE,OAAO;QAE5B,gGAAgG;QAChG,mCAAmC,EAAE,KAAK;KAC7C;CACJ,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACvB,KAAK,EAAE,CAAE,WAAW,CAAE;IACtB,OAAO,EAAE,CAAE,iBAAiB,CAAE;IAC9B,QAAQ,EAAE,gBAAgB;IAC1B,OAAO,EAAE,EAAE,YAAY,EAAE,uBAAuB,EAAE,QAAQ,EAAE,cAAc,EAAE;IAC5E,KAAK,EAAE,EAAE,mBAAmB,EAAE,OAAO,EAAE;CAC1C,CAAC;AAEF,MAAM,yBAAyB,GAAG;IAC9B,KAAK,EAAE,CAAE,iBAAiB,CAAE;IAC5B,OAAO,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE;IACrC,KAAK,EAAE,EAAE,mBAAmB,EAAE,OAAO,EAAE;CAC1C,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACvB,KAAK,EAAE,CAAE,iBAAiB,CAAE;IAC5B,QAAQ,EAAE,gBAAgB;IAC1B,OAAO,EAAE,EAAE,YAAY,EAAE,uBAAuB,EAAE,QAAQ,EAAE,cAAc,EAAE;IAC5E,KAAK,EAAE,EAAE,mBAAmB,EAAE,OAAO,EAAE;CAC1C,CAAC;AAEF,MAAM,cAAc,GAAG;IACnB,KAAK,EAAE,CAAE,SAAS,CAAE;IACpB,OAAO,EAAE;QACL,GAAG,mBAAmB;QACtB,QAAQ,EAAE,cAAc;KAC3B;IACD,+EAA+E;IAC/E,QAAQ,EAAE,qBAAqB;IAC/B,KAAK,EAAE;QACH,mBAAmB,EAAE,OAAO;QAE5B,GAAG,iBAAiB;KACvB;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,YAAY;IACZ,kBAAkB;IAClB,iBAAiB;IACjB,yBAAyB;IACzB,cAAc;IACd,kBAAkB;IAClB,WAAW;CACgB,CAAC;AAEhC,8IAA8I;AAC9I,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,+EAA+E"}
package/readme.md CHANGED
@@ -59,6 +59,18 @@ additionally enabling the semantic markdown linters.
59
59
  | package.json | `**/package.json` | `package-json/*`, `json-schema-validator/no-invalid` |
60
60
  | Markdown | `**/*.md` | `prettier/prettier`, `markdown/*`, `markdown-links/*`, `markdown-preferences/*`, `unicorn/*` |
61
61
  | YAML | `**/*.{yml,yaml}` | `prettier/prettier` |
62
+ | Shell | `**/*.sh` | `shell/*` (POSIX) |
63
+
64
+ ### Shell scripts
65
+
66
+ `.sh` files use the same POSIX shell linting as the regular base preset, with explicitly configured rules from
67
+ [`@eslint/shell`](https://github.com/eslint/shell). All shell rules report errors. Shell formatting is not included,
68
+ and these rules do not replace the full ShellCheck rule set.
69
+
70
+ The configured dialect controls parsing, regardless of the shebang. Apply
71
+ [`@enormora/eslint-config-bash`](../bash/bash.md) after this preset for Bash scripts. It switches `.sh` to Bash and
72
+ adds `.bash` files. Narrow its `files` patterns when mixing dialects. Extensionless scripts require an explicit
73
+ `files` pattern.
62
74
 
63
75
  ### Linting hidden directories
64
76
 
@@ -16,9 +16,9 @@
16
16
  "component": {
17
17
  "type": "library",
18
18
  "name": "@enormora/eslint-config-base-with-prettier",
19
- "version": "0.0.44",
20
- "bom-ref": "pkg:npm/@enormora/eslint-config-base-with-prettier@0.0.44",
21
- "purl": "pkg:npm/@enormora/eslint-config-base-with-prettier@0.0.44"
19
+ "version": "0.0.45",
20
+ "bom-ref": "pkg:npm/@enormora/eslint-config-base-with-prettier@0.0.45",
21
+ "purl": "pkg:npm/@enormora/eslint-config-base-with-prettier@0.0.45"
22
22
  }
23
23
  },
24
24
  "components": [
@@ -74,6 +74,19 @@
74
74
  ],
75
75
  "purl": "pkg:npm/@eslint/plugin-kit@0.7.3"
76
76
  },
77
+ {
78
+ "type": "library",
79
+ "name": "@eslint/shell",
80
+ "version": "0.1.2",
81
+ "bom-ref": "pkg:npm/@eslint/shell@0.1.2",
82
+ "scope": "required",
83
+ "licenses": [
84
+ {
85
+ "expression": "Apache-2.0"
86
+ }
87
+ ],
88
+ "purl": "pkg:npm/@eslint/shell@0.1.2"
89
+ },
77
90
  {
78
91
  "type": "library",
79
92
  "name": "@stylistic/eslint-plugin",
@@ -327,12 +340,13 @@
327
340
  "ref": "pkg:npm/@cspell/eslint-plugin@10.4.0"
328
341
  },
329
342
  {
330
- "ref": "pkg:npm/@enormora/eslint-config-base-with-prettier@0.0.44",
343
+ "ref": "pkg:npm/@enormora/eslint-config-base-with-prettier@0.0.45",
331
344
  "dependsOn": [
332
345
  "pkg:npm/@cspell/eslint-plugin@10.4.0",
333
346
  "pkg:npm/@eslint-community/eslint-plugin-eslint-comments@4.8.1",
334
347
  "pkg:npm/@eslint/markdown@8.0.3",
335
348
  "pkg:npm/@eslint/plugin-kit@0.7.3",
349
+ "pkg:npm/@eslint/shell@0.1.2",
336
350
  "pkg:npm/@stylistic/eslint-plugin@5.10.0",
337
351
  "pkg:npm/@typescript-eslint/utils@8.72.1",
338
352
  "pkg:npm/eslint-plugin-array-func@5.1.1",
@@ -363,6 +377,9 @@
363
377
  {
364
378
  "ref": "pkg:npm/@eslint/plugin-kit@0.7.3"
365
379
  },
380
+ {
381
+ "ref": "pkg:npm/@eslint/shell@0.1.2"
382
+ },
366
383
  {
367
384
  "ref": "pkg:npm/@stylistic/eslint-plugin@5.10.0"
368
385
  },