Files
podman-login/eslint.config.mjs
Chris BrownandClaude Opus 4.6 e7e52dfd80 Upgrade dependencies, modernize tooling, and fix logout bug
Bug fix:
- Fix registryLogout() using module-scoped `registry` variable (always
  undefined in the post step) instead of `stateHelper.registry` when
  cleaning up Docker config credentials

Dependency upgrades:
- @actions/core 1.x -> 3.x, @actions/exec 1.x -> 3.x, @actions/io 1.x -> 3.x
- @aws-sdk/client-ecr 3.535 -> 3.1094
- @vercel/ncc 0.38 -> 0.44
- @types/node 20 -> 22
- TypeScript 5.x -> 6.0.3
- Remove unused @aws-sdk/util-base64 dependency

Tooling modernization:
- Migrate ESLint 8 (EOL) -> 10 with flat config (eslint.config.mjs)
- Replace legacy @redhat-actions/eslint-config, @typescript-eslint/parser,
  and @typescript-eslint/eslint-plugin with unified typescript-eslint v8
- Inline tsconfig settings, replacing @redhat-actions/tsconfig shared config
- Enable esModuleInterop, update target to es2022
- Migrate from deprecated moduleResolution "node" to "bundler"
- Add private: true to package.json (not published to npm)
- Update engines.node from "20" to ">=20" to match node24 runtime

Resolves all 7 npm audit vulnerabilities (brace-expansion, fast-xml-builder,
fast-xml-parser, js-yaml, undici) and eliminates deprecation warnings
(inflight, rimraf@3, glob@7, @humanwhocodes/*).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-24 10:44:55 +01:00

46 lines
1.6 KiB
JavaScript

import js from "@eslint/js";
import tseslint from "typescript-eslint";
export default tseslint.config(
{
ignores: [
"dist/",
"out/",
"node_modules/",
],
},
js.configs.recommended,
...tseslint.configs.recommendedTypeChecked,
{
languageOptions: {
parserOptions: {
projectService: {
allowDefaultProject: ["eslint.config.mjs"],
},
tsconfigRootDir: import.meta.dirname,
},
},
rules: {
// Match existing code style
"no-console": "error",
eqeqeq: ["error", "smart"],
curly: "error",
// TypeScript rules matching the original config
"@typescript-eslint/explicit-function-return-type": ["error", { allowExpressions: true }],
"@typescript-eslint/no-floating-promises": "error",
"@typescript-eslint/no-inferrable-types": ["error", { ignoreParameters: true }],
"@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }],
"@typescript-eslint/no-require-imports": "error",
// Relax rules that conflict with existing code patterns
"@typescript-eslint/no-base-to-string": "off",
"@typescript-eslint/no-unsafe-argument": "off",
"@typescript-eslint/no-unsafe-assignment": "off",
"@typescript-eslint/no-unsafe-call": "off",
"@typescript-eslint/no-unsafe-member-access": "off",
"@typescript-eslint/no-unsafe-return": "off",
},
},
);