Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
4081a22
chore: add .npmrc for npm security best practices
jliermann Oct 29, 2026
795e345
chore: replaced outdated eslint-plugin-react
jliermann Oct 29, 2026
177115a
chore: migrate eslint configuration to ES module syntax
jliermann Oct 29, 2026
070958e
chore: remove unnecessary pattern from ESLint config for content tests
jliermann Oct 29, 2026
fd676a3
chore: remove deprecated components
jliermann Oct 29, 2026
cb70e03
fix: improve React key handling
jliermann Oct 29, 2026
32dc60d
fix: update key handling in ElnCard component for subDisc mapping
jliermann Oct 29, 2026
84457c4
chore: implement abort controller for fetch requests and refactor res…
jliermann Oct 29, 2026
121733b
refactor: avoid unused declarations
jliermann Oct 29, 2026
7642ccf
chore: renew visual baseline
jliermann Oct 29, 2026
3092783
Merge remote-tracking branch 'origin/main' into chore/eslint-react
jliermann Oct 29, 2026
7f251e0
chore: remove unused React import statements in Lbe.js, RepoButton.js…
jliermann Oct 29, 2026
4a63855
fix: improve key handling and attribute order
jliermann Oct 29, 2026
5eda1e6
chore: remove unused ShortenButtons component
jliermann Oct 29, 2026
02eda8d
fix: improve key handling in LbeBlock and LbeBody components
jliermann Oct 29, 2026
849d14a
fix: update key handling in ButtonFilters for subdisciplines and lice…
jliermann Oct 29, 2026
1a25786
fix: improve key handling in Features and FilterSection components
jliermann Oct 29, 2026
8f81ae8
fix: rename toggle function for clarity in Authors component
jliermann Oct 29, 2026
5904b9d
fix: improve key handling in LbeBlock component for unique identifica…
jliermann Oct 29, 2026
3d93255
fix: remove duplicate entry for Chemotion Repository in lbe.json
jliermann Oct 29, 2026
9233479
refactor: simplify initial state handling in Lbe component
jliermann Oct 29, 2026
ca42581
fix: update Details component to use contentClassName prop for styling
jliermann Oct 29, 2026
c2802a6
refactor: remove unused useEffect import in Lbe component
jliermann Oct 29, 2026
5912eb8
chore: rename eslint.config.js to eslint.config.mjs to make js type e…
jliermann Oct 29, 2026
df082a5
Update key prop in FeatureButton mapping
jliermann Oct 29, 2026
5bfbc21
Fix dataset filter hydration
Copilot Oct 29, 2026
25bc2d3
Avoid effect state update warning
Copilot Oct 29, 2026
7be25dd
Document trusted Husky setup
Copilot Oct 29, 2026
6728896
chore: make sure the husky pre-commit is not disabled
jliermann Oct 29, 2026
c6d9dda
format: prettier
jliermann Oct 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# npm security best practices
# Source: https://github.com/lirantal/npm-security-best-practices

# SECURITY: do not run any lifecycle scripts (postinstall) etc
# ignore-scripts=true

# SECURITY: reject git-source dependencies (git+ssh:// etc)
allow-git=none

# SECURITY: block packages newer than 14 days
min-release-age=14
46 changes: 22 additions & 24 deletions eslint.config.js → eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
const js = require("@eslint/js");
const react = require("eslint-plugin-react");
const reactHooks = require("eslint-plugin-react-hooks");
const tseslint = require("typescript-eslint");
const globals = require("globals");
const eslintConfigPrettier = require("eslint-config-prettier");
import eslintJs from "@eslint/js";
import eslintReact from "@eslint-react/eslint-plugin";
import tseslint from "typescript-eslint";
import globals from "globals";
import eslintConfigPrettier from "eslint-config-prettier";
import { defineConfig } from "eslint/config";

module.exports = [
export default defineConfig([
{
ignores: [
"build/**",
Expand All @@ -23,6 +23,14 @@ module.exports = [
// React components and other browser-side JS/JSX under src/
{
files: ["src/**/*.{js,jsx}"],

// Extend recommended rule sets from:
// 1. ESLint JS's recommended rules
// 2. ESLint React's recommended rules
extends: [
eslintJs.configs.recommended,
eslintReact.configs.recommended,
],
languageOptions: {
ecmaVersion: "latest",
sourceType: "module",
Expand All @@ -36,15 +44,10 @@ module.exports = [
ecmaFeatures: { jsx: true },
},
},
plugins: { react, "react-hooks": reactHooks },
plugins: { react: eslintReact },
rules: {
...js.configs.recommended.rules,
...react.configs.recommended.rules,
// Downgraded to warnings: existing code is not yet fully compliant
"react-hooks/rules-of-hooks": "warn",
"react-hooks/exhaustive-deps": "warn",
"react/react-in-jsx-scope": "off", // not needed with React 19 / new JSX transform
"react/prop-types": "off",
...eslintJs.configs.recommended.rules,
"@eslint-react/no-missing-key": "warn",
},
settings: {
react: { version: "detect" },
Expand All @@ -53,19 +56,14 @@ module.exports = [

// Node-based CommonJS scripts (config files, content validation tooling)
{
files: [
"tests/content/**/*.js",
"*.config.js",
"sidebars.js",
"copyright.js",
],
files: ["tests/content/**/*.js", "sidebars.js", "copyright.js"],
languageOptions: {
ecmaVersion: "latest",
sourceType: "commonjs",
globals: globals.node,
},
rules: {
...js.configs.recommended.rules,
...eslintJs.configs.recommended.rules,
},
},

Expand All @@ -78,7 +76,7 @@ module.exports = [
globals: globals.node,
},
rules: {
...js.configs.recommended.rules,
...eslintJs.configs.recommended.rules,
},
},

Expand All @@ -89,4 +87,4 @@ module.exports = [
})),

eslintConfigPrettier,
];
]);
Loading
Loading