Skip to content

Modernize#137

Draft
JoshTheWanderer wants to merge 15 commits into
mainfrom
modernize
Draft

Modernize#137
JoshTheWanderer wants to merge 15 commits into
mainfrom
modernize

Conversation

@JoshTheWanderer
Copy link
Copy Markdown
Member

@JoshTheWanderer JoshTheWanderer commented Apr 23, 2026

No description provided.

@JoshTheWanderer JoshTheWanderer changed the title Modernize: Node LTS + framework-agnostic styling/link (#82) Modernize Apr 23, 2026
Swap Sass for plain CSS modules, expose 18 theme values as
CSS custom properties on .next-pagination, and add a linkComponent
prop so consumers can inject a custom/wrapped next/link.

Refs #82

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 23, 2026

MegaLinter analysis: Error

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ ACTION actionlint 1 0 0 0.03s
✅ CSS stylelint 2 0 0 1.59s
✅ EDITORCONFIG editorconfig-checker 27 0 0 0.03s
✅ JSON jsonlint 4 0 0 0.13s
✅ JSON npm-package-json-lint yes no no 0.45s
✅ JSON prettier 4 0 0 0.78s
❌ JSON v8r 4 1 0 222.12s
⚠️ MARKDOWN markdownlint 1 15 0 0.5s
⚠️ MARKDOWN markdown-table-formatter 1 1 0 0.25s
✅ REPOSITORY checkov yes no no 17.66s
⚠️ REPOSITORY gitleaks yes 2 no 134.44s
✅ REPOSITORY git_diff yes no no 0.02s
✅ REPOSITORY secretlint yes no no 1.04s
✅ REPOSITORY syft yes no no 6.21s
✅ REPOSITORY trivy-sbom yes no no 2.85s
❌ REPOSITORY trufflehog yes 1 no 1.67s
⚠️ YAML prettier 1 1 3 1.84s
✅ YAML yamllint 1 0 0 0.75s

Detailed Issues

❌ REPOSITORY / trufflehog - 1 error
trufflehog: error: flag 'exclude-paths' cannot be repeated, try --help
❌ JSON / v8r - 1 error
ℹ No config file found
ℹ Pre-warming the cache
✖ Failed fetching https://json.schemastore.org/jscpd.json
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Service Unavailable</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Service Unavailable</h2>
<hr><p>HTTP Error 503. The service is unavailable.</p>
</BODY></HTML>
⚠️ REPOSITORY / gitleaks - 2 errors
○
    │╲
    │ ○
    ○ ░
    ░    gitleaks

Finding:     ...c7d97ac9cc2dc41c4","previewModeSigningKey":"REDACTED","previewModeEncrypt...
Secret:      REDACTED
RuleID:      generic-api-key
Entropy:     3.889819
File:        prerender-manifest.json
Line:        1
Commit:      HIDDEN_BY_MEGALINTERAuthor:      Gavyn McKenzie
Email:       gavyn@etchapps.com
Date:        2020-05-14T14:14:09Z
Fingerprint: 04df8d1917926edb28e87599b3003e401c529959:prerender-manifest.json:generic-api-key:1
Link:        https://github.com/etchteam/next-pagination/blob/04df8d1917926edb28e87599b3003e401c529959/prerender-manifest.json#L1

Finding:     ...74ce1dc9d04ec38c4","previewModeEncryptionKey":"REDACTED"}}
Secret:      REDACTED
RuleID:      generic-api-key
Entropy:     3.858720
File:        prerender-manifest.json
Line:        1
Commit:      HIDDEN_BY_MEGALINTERAuthor:      Gavyn McKenzie
Email:       gavyn@etchapps.com
Date:        2020-05-14T14:14:09Z
Fingerprint: 04df8d1917926edb28e87599b3003e401c529959:prerender-manifest.json:generic-api-key:1
Link:        https://github.com/etchteam/next-pagination/blob/04df8d1917926edb28e87599b3003e401c529959/prerender-manifest.json#L1

12:26PM INF 256 commits scanned.
12:26PM INF scanned ~57745200 bytes (57.75 MB) in 2m14s
12:26PM WRN leaks found: 2
⚠️ MARKDOWN / markdown-table-formatter - 1 error
1 files contain markdown tables to format:
- README.md
⚠️ MARKDOWN / markdownlint - 15 errors
README.md:62:42 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:62:130 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:63:42 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:63:130 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:64:42 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:64:130 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:65:42 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:65:130 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:66:42 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:66:130 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:67:42 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:67:130 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:68:42 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:68:143 error MD060/table-column-style Table column style [Table pipe does not align with header for style "aligned"]
README.md:85 error MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
⚠️ YAML / prettier - 1 error
Checking formatting...
[warn] jsxBracketSameLine is deprecated.
[warn] .github/workflows/ci.yml
[warn] Code style issues found in the above file. Run Prettier with --write to fix.

See detailed reports in MegaLinter artifacts
Set VALIDATE_ALL_CODEBASE: true in mega-linter.yml to validate all sources, not only the diff

MegaLinter is graciously provided by OX Security
Show us your support by starring ⭐ the repository

JoshTheWanderer and others added 13 commits April 23, 2026 19:15
allows us to ditch react-scripts, which is unmaintained and outdated
Next.js, Jest and Stylelint all resolve `.mjs` config variants. The
`jest.style-mock` helper is loaded at runtime without a JS transform, so
it stays CommonJS via the `.cjs` extension.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replaces the legacy `.eslintrc` + `.eslintignore` pair with
`eslint.config.mjs` using `@etchteam/eslint-config/nextjs`. Adds
`stylelint` alongside so the repo has first-class lint scripts, and
bumps the dev dependency set to match eslint 9 and the Next.js 16 peer.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Auto-fixable changes from the new config (import-order sort, readonly
props, prettier) plus one behavioural fix in `src/index.tsx`: swap the
`useEffect` hydration guard for `router.isReady` to silence
`react-hooks/set-state-in-effect` and drop the cascading render.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Move `stylelint` and `@etchteam/stylelint-config` to devDependencies
  (they are tooling, not runtime consumers)
- Move `prop-types` to dependencies so published consumers resolve it
  for `Icon.propTypes`
- Delete `src/react-app-env.d.ts`; `react-scripts` is no longer a dep
  and the file's directive was silently disabled by prettier

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Narrows `lint:css` to the source globs (excluding `dist/` and example
build output) and runs `stylelint --fix` across the CSS/SCSS modules.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Catches regressions that only surface when the example consumes the
built package (e.g. broken `next.config.mjs`, peer-dep drift).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- `npm ci` against the example lockfile so drift fails CI instead of
  silently mutating the lockfile
- Cache both lockfiles so example deps aren't re-downloaded each run
- Assert the exported `index.html` exists — catches a next export that
  succeeds while emitting zero pages

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Set top-level permissions to none and grant minimum per job. Pin all
actions to commit SHAs (checkout v6.0.2, setup-node v6.4.0, megalinter
v9.4.0) and switch to `npm ci --no-scripts` to skip lifecycle scripts
during dependency install.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ci: harden workflow permissions and pin actions
@sonarqubecloud
Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant