Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
16 changes: 12 additions & 4 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@
import eslint from "@eslint/js";
import nextPlugin from "@next/eslint-plugin-next";
import eslintConfigPrettier from "eslint-config-prettier";
import importPlugin from "eslint-plugin-import";
import { createTypeScriptImportResolver } from "eslint-import-resolver-typescript";
import { importX } from "eslint-plugin-import-x";
import jsxA11y from "eslint-plugin-jsx-a11y";
import noRelativeImportPathsPlugin from "eslint-plugin-no-relative-import-paths";
import reactPlugin from "eslint-plugin-react";
import reactCompiler from "eslint-plugin-react-compiler";
// eslint-disable-next-line import-x/default
import hooksPlugin from "eslint-plugin-react-hooks";
import tseslint from "typescript-eslint";

Expand All @@ -17,29 +19,35 @@ export default tseslint.config(
reactPlugin.configs.flat.recommended,
reactPlugin.configs.flat["jsx-runtime"],
jsxA11y.flatConfigs.recommended,
importPlugin.flatConfigs.typescript,
importX.flatConfigs.recommended,
importX.flatConfigs.typescript,
{
files: ["**/*.{js,jsx,mjs,cjs,ts,tsx}"],
plugins: {
"@next/next": nextPlugin,
"react-hooks": hooksPlugin,
"no-relative-import-paths": noRelativeImportPathsPlugin,
import: importPlugin,
"react-compiler": reactCompiler,
},
settings: {
react: {
version: "detect",
},
"import-x/resolver-next": [
createTypeScriptImportResolver({
project: "tsconfig.json",
}),
],
},
rules: {
...nextPlugin.configs.recommended.rules,
...nextPlugin.configs["core-web-vitals"].rules,
...hooksPlugin.configs.recommended.rules,
"no-relative-import-paths/no-relative-import-paths": "error",
"react-compiler/react-compiler": "error",
"import-x/no-named-as-default-member": "off",
/** @see https://medium.com/weekly-webtips/how-to-sort-imports-like-a-pro-in-typescript-4ee8afd7258a */
"import/order": [
"import-x/order": [
"error",
{
groups: [
Expand Down
1 change: 1 addition & 0 deletions next-env.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
/// <reference path="./.next/types/routes.d.ts" />

// NOTE: This file should not be edited
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
4 changes: 2 additions & 2 deletions next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const withSerwist = withSerwistInit({
});

export default withSerwist({
reactStrictMode: true,
typedRoutes: true,
staticPageGenerationTimeout: 120,
...(global.process.env["BUILD_STANDALONE"] === "true" ? { output: "standalone" } : {}),
async redirects() {
Expand All @@ -29,7 +29,7 @@ export default withSerwist({
remotePatterns: [
{
protocol: "https",
hostname: new URL(global.process.env["NEXT_PUBLIC_CONFIG_HOST"]!).hostname,
hostname: new URL(global.process.env["NEXT_PUBLIC_CONFIG_HOST"] ?? "").hostname,
},
{
protocol: "https",
Expand Down
56 changes: 29 additions & 27 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
"prod": "run-s build start",
"prettier": "prettier --write '**/*.{js,mjs,ts,tsx,md,json,yaml,css}' --ignore-path=.gitignore",
"prettier:check": "prettier --check '**/*.{js,mjs,ts,tsx,md,json,yaml,css}' --ignore-path=.gitignore",
"lint": "next lint --ignore-path=.gitignore",
"lint:fix": "next lint --fix --ignore-path=.gitignore",
"lint": "eslint --ignore-pattern '.next/*' --ignore-pattern 'next-env.d.ts' --ignore-pattern 'public/sw.js'",
"lint:fix": "eslint --fix --ignore-pattern '.next/*' --ignore-pattern 'next-env.d.ts' --ignore-pattern 'public/sw.js'",
"typecheck": "tsc --noEmit",
"check": "run-p prettier:check lint typecheck",
"fix": "run-s prettier lint:fix",
Expand All @@ -20,50 +20,52 @@
"dependencies": {
"@emotion/cache": "^11.14.0",
"@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.0",
"@khmyznikov/pwa-install": "^0.5.4",
"@emotion/styled": "^11.14.1",
"@khmyznikov/pwa-install": "^0.5.8",
"@mui/icons-material": "^6.4.2",
"@mui/material": "^6.4.2",
"@mui/material-nextjs": "^6.4.2",
"@mui/x-date-pickers": "^7.28.3",
"@serwist/next": "^9.0.13",
"@serwist/next": "^9.1.1",
"js-cookie": "^3.0.5",
"jwt-decode": "^4.0.0",
"luxon": "^3.6.1",
"next": "15.3.0",
"react": "^19.1.0",
"luxon": "^3.7.1",
"next": "15.5.2",
"react": "^19.1.1",
"react-device-detect": "^2.2.3",
"react-dom": "^19.1.0",
"react-dom": "^19.1.1",
"react-dropzone": "^14.3.8",
"react-oauth2-code-pkce": "^1.23.0",
"react-snowfall": "^2.2.0",
"react-oauth2-code-pkce": "^1.23.1",
"react-snowfall": "^2.3.0",
"react-swipeable-views": "^0.14.0",
"sharp": "^0.34.1",
"swr": "^2.3.3",
"zustand": "^5.0.3"
"sharp": "^0.34.3",
"swr": "^2.3.6",
"zustand": "^5.0.8"
},
"devDependencies": {
"@eslint/js": "^9.24.0",
"@next/eslint-plugin-next": "^15.3.0",
"@eslint/js": "^9.34.0",
"@next/eslint-plugin-next": "^15.5.2",
"@tsconfig/next": "^2.0.3",
"@tsconfig/strictest": "^2.0.5",
"@types/js-cookie": "^3.0.6",
"@types/luxon": "^3.6.2",
"@types/node": "^22.14.1",
"@types/react": "^19.1.2",
"@types/react-dom": "^19.1.2",
"@types/luxon": "^3.7.1",
"@types/node": "^24.3.0",
"@types/react": "^19.1.12",
"@types/react-dom": "^19.1.9",
"@types/react-swipeable-views": "^0.13.6",
"eslint-config-prettier": "^10.1.2",
"eslint-plugin-import": "^2.31.0",
"eslint": "^9.34.0",
"eslint-config-prettier": "^10.1.8",
"eslint-import-resolver-typescript": "^4.4.4",
"eslint-plugin-import-x": "^4.16.1",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-no-relative-import-paths": "^1.6.1",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-compiler": "19.0.0-beta-ebf51a3-20250411",
"eslint-plugin-react-compiler": "19.1.0-rc.2",
"eslint-plugin-react-hooks": "^5.2.0",
"npm-run-all": "^4.1.5",
"prettier": "^3.5.3",
"serwist": "^9.0.13",
"typescript": "^5.8.3",
"typescript-eslint": "^8.30.1"
"prettier": "^3.6.2",
"serwist": "^9.1.1",
"typescript": "^5.9.2",
"typescript-eslint": "^8.41.0"
}
}
Loading