refactor: replace ESLint + Prettier with OXC (oxlint + oxfmt) (#5741)

Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
Co-authored-by: Meierschlumpf <63781622+Meierschlumpf@users.noreply.github.com>
This commit is contained in:
authored and GitHub committed 2026-05-27 09:37:44 +02:00
1 parent b4921af60d
commit 605af19cd8
101 files changed
+762 -3384

No files matched your search

+3 -6
View File
@@ -3,9 +3,6 @@ version = 1
[[analyzers]] [[analyzers]]
name = "javascript" name = "javascript"
[analyzers.meta] [analyzers.meta]
plugins = ["react"] plugins = ["react"]
environment = ["nodejs"] environment = ["nodejs"]
[[transformers]]
name = "prettier"
+33 -1
View File
@@ -24,6 +24,38 @@ env:
TURBO_SCM_HEAD: ${{ github.sha }} TURBO_SCM_HEAD: ${{ github.sha }}
jobs: jobs:
lint-format-autofix:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
timeout-minutes: 5
permissions:
contents: write
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
ref: ${{ github.head_ref }}
- name: Setup
uses: ./tooling/github/setup
- name: Get changed files
id: changed
run: |
FILES=$(git diff --name-only --diff-filter=ACMR origin/${{ github.base_ref }}...HEAD -- '*.ts' '*.tsx' '*.js' '*.jsx' | tr '\n' ' ')
echo "files=$FILES" >> $GITHUB_OUTPUT
- name: Auto-fix lint + format
if: steps.changed.outputs.files != ''
run: |
pnpm exec oxlint --fix ${{ steps.changed.outputs.files }} || true
pnpm exec oxfmt --write ${{ steps.changed.outputs.files }}
- name: Commit fixes
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "style: auto-fix lint and format"
lint: lint:
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 10 timeout-minutes: 10
@@ -54,7 +86,7 @@ jobs:
uses: ./tooling/github/setup uses: ./tooling/github/setup
- name: Format - name: Format
run: pnpm turbo format --affected --continue -- --cache --cache-location node_modules/.cache/.prettiercache run: pnpm turbo format --affected --continue
typecheck: typecheck:
runs-on: ubuntu-latest runs-on: ubuntu-latest
+7
View File
@@ -0,0 +1,7 @@
{
"$schema": "./node_modules/oxfmt/configuration_schema.json",
"printWidth": 120,
"endOfLine": "lf",
"sortPackageJson": true,
"ignorePatterns": ["**/*.cjs", "**/lang/**", "static-data/**", "CHANGELOG.md"]
}
+37
View File
@@ -0,0 +1,37 @@
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"plugins": ["eslint", "typescript", "unicorn", "oxc", "react", "import", "jsx-a11y"],
"categories": {
"correctness": "error",
"suspicious": "warn",
"pedantic": "off",
"perf": "off",
"style": "off",
"restriction": "off",
"nursery": "off"
},
"rules": {
"eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_", "varsIgnorePattern": "^_" }],
"typescript/consistent-type-imports": ["warn", { "prefer": "type-imports", "fixStyle": "separate-type-imports" }],
"typescript/no-non-null-assertion": "error",
"import/consistent-type-specifier-style": ["error", "prefer-top-level"],
"unicorn/no-new-array": "warn",
"unicorn/no-useless-spread": "warn",
"unicorn/no-useless-length-check": "warn",
"unicorn/no-useless-fallback-in-spread": "warn",
"jsx-a11y/prefer-tag-over-role": "warn",
"oxc/const-comparisons": "warn",
"react-hooks/exhaustive-deps": "warn",
"react/no-children-prop": "warn",
"jsx-a11y/no-autofocus": "warn",
"jsx-a11y/img-redundant-alt": "warn",
"react/react-in-jsx-scope": "off"
},
"options": {
"reportUnusedDisableDirectives": "off"
},
"ignorePatterns": ["**/*.config.js", "**/*.config.mjs", "**/*.cjs", "**/lang/*.d.json.ts", ".next/**"],
"settings": {
"react": { "version": "19" }
}
}
-1
View File
@@ -31,6 +31,5 @@ scopeRangeRegex: "(?:const|let|var)\\s+t\\s*=\\s*(?:await\\s+)?(?:getScopedI18n|
# refactorTemplates: # refactorTemplates:
# - i18n.get("$1") # - i18n.get("$1")
# If set to true, only enables this custom framework (will disable all built-in frameworks) # If set to true, only enables this custom framework (will disable all built-in frameworks)
monopoly: true monopoly: true
+5 -15
View File
@@ -15,9 +15,7 @@
"request": "launch", "request": "launch",
"command": "pnpm docker:dev", "command": "pnpm docker:dev",
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}",
"skipFiles": [ "skipFiles": ["<node_internals>/**"]
"<node_internals>/**"
]
}, },
{ {
"name": "lint fix", "name": "lint fix",
@@ -25,9 +23,7 @@
"request": "launch", "request": "launch",
"command": "pnpm lint:fix", "command": "pnpm lint:fix",
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}",
"skipFiles": [ "skipFiles": ["<node_internals>/**"]
"<node_internals>/**"
]
}, },
{ {
"name": "format fix", "name": "format fix",
@@ -35,9 +31,7 @@
"request": "launch", "request": "launch",
"command": "pnpm format:fix", "command": "pnpm format:fix",
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}",
"skipFiles": [ "skipFiles": ["<node_internals>/**"]
"<node_internals>/**"
]
}, },
{ {
"name": "db push", "name": "db push",
@@ -69,9 +63,7 @@
"request": "launch", "request": "launch",
"command": "pnpm test", "command": "pnpm test",
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}",
"skipFiles": [ "skipFiles": ["<node_internals>/**"]
"<node_internals>/**"
]
}, },
{ {
"name": "test ui", "name": "test ui",
@@ -79,9 +71,7 @@
"request": "launch", "request": "launch",
"command": "pnpm test:ui", "command": "pnpm test:ui",
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}",
"skipFiles": [ "skipFiles": ["<node_internals>/**"]
"<node_internals>/**"
]
} }
] ]
} }
+3 -14
View File
@@ -1,13 +1,6 @@
{ {
"eslint.workingDirectories": [
{
"mode": "auto"
}
],
"eslint.experimental.useFlatConfig": true,
"typescript.tsdk": "node_modules\\typescript\\lib", "typescript.tsdk": "node_modules\\typescript\\lib",
"js/ts.implicitProjectConfig.experimentalDecorators": true, "js/ts.implicitProjectConfig.experimentalDecorators": true,
"prettier.configPath": "./tooling/prettier/index.mjs",
"cSpell.words": [ "cSpell.words": [
"ajnart", "ajnart",
"cqmin", "cqmin",
@@ -34,11 +27,7 @@
], ],
"i18n-ally.dirStructure": "auto", "i18n-ally.dirStructure": "auto",
"i18n-ally.displayLanguage": "en", "i18n-ally.displayLanguage": "en",
"i18n-ally.enabledFrameworks": [ "i18n-ally.enabledFrameworks": ["custom"],
"custom" "i18n-ally.localesPaths": ["packages/translation/src/lang"],
], "i18n-ally.keystyle": "nested"
"i18n-ally.localesPaths": [
"packages/translation/src/lang",
],
"i18n-ally.keystyle": "nested",
} }
-30
View File
@@ -1,30 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
import nextjsConfig from "@homarr/eslint-config/nextjs";
import reactConfig from "@homarr/eslint-config/react";
/** @type {import('typescript-eslint').Config} */
export default [
{
ignores: [".next/**"],
},
...baseConfig,
...reactConfig,
...nextjsConfig,
{
files: ["public/sw.js"],
languageOptions: {
globals: {
self: "readonly",
clients: "readonly",
skipWaiting: "readonly",
importScripts: "readonly",
caches: "readonly",
fetch: "readonly",
},
},
rules: {
"@typescript-eslint/no-unsafe-call": "off",
"@typescript-eslint/no-unsafe-member-access": "off",
},
},
];
+2 -7
View File
@@ -7,13 +7,12 @@
"build": "pnpm with-env next build", "build": "pnpm with-env next build",
"clean": "git clean -xdf .next .turbo node_modules", "clean": "git clean -xdf .next .turbo node_modules",
"dev": "pnpm with-env next dev", "dev": "pnpm with-env next dev",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"start": "pnpm with-env next start", "start": "pnpm with-env next start",
"typecheck": "tsc --noEmit", "typecheck": "tsc --noEmit",
"with-env": "dotenv -e ../../.env --" "with-env": "dotenv -e ../../.env --"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@dnd-kit/core": "catalog:", "@dnd-kit/core": "catalog:",
"@dnd-kit/modifiers": "catalog:", "@dnd-kit/modifiers": "catalog:",
@@ -92,8 +91,6 @@
"zod": "catalog:" "zod": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"@types/chroma-js": "catalog:", "@types/chroma-js": "catalog:",
"@types/node": "catalog:", "@types/node": "catalog:",
@@ -102,9 +99,7 @@
"@types/react-dom": "catalog:", "@types/react-dom": "catalog:",
"@types/swagger-ui-react": "catalog:", "@types/swagger-ui-react": "catalog:",
"concurrently": "catalog:", "concurrently": "catalog:",
"eslint": "catalog:",
"node-loader": "catalog:", "node-loader": "catalog:",
"prettier": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
@@ -44,6 +44,7 @@ export const BoardBackgroundVideo = () => {
muted muted
loop loop
playsInline playsInline
aria-hidden="true"
style={{ style={{
position: "fixed", position: "fixed",
width: "100vw", width: "100vw",
-9
View File
@@ -1,9 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [
{
ignores: ["tasks.cjs"],
},
...baseConfig,
];
+4 -9
View File
@@ -4,20 +4,19 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"main": "./src/main.ts",
"types": "./src/main.ts",
"exports": { "exports": {
".": "./src/main.ts" ".": "./src/main.ts"
}, },
"main": "./src/main.ts",
"types": "./src/main.ts",
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"dev": "pnpm with-env tsx ./src/main.ts", "dev": "pnpm with-env tsx ./src/main.ts",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit", "typecheck": "tsc --noEmit",
"with-env": "dotenv -e ../../.env --" "with-env": "dotenv -e ../../.env --"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/analytics": "workspace:^0.1.0", "@homarr/analytics": "workspace:^0.1.0",
"@homarr/auth": "workspace:^0.1.0", "@homarr/auth": "workspace:^0.1.0",
@@ -43,14 +42,10 @@
"undici": "catalog:" "undici": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"@types/node": "catalog:", "@types/node": "catalog:",
"dotenv-cli": "catalog:", "dotenv-cli": "catalog:",
"esbuild": "catalog:", "esbuild": "catalog:",
"eslint": "catalog:",
"prettier": "catalog:",
"tsx": "catalog:", "tsx": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
-9
View File
@@ -1,9 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [
{
ignores: ["wssServer.cjs"],
},
...baseConfig,
];
+4 -9
View File
@@ -4,20 +4,19 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"main": "./src/main.ts",
"types": "./src/main.ts",
"exports": { "exports": {
".": "./src/main.ts" ".": "./src/main.ts"
}, },
"main": "./src/main.ts",
"types": "./src/main.ts",
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"dev": "pnpm with-env tsx ./src/main.ts", "dev": "pnpm with-env tsx ./src/main.ts",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit", "typecheck": "tsc --noEmit",
"with-env": "dotenv -e ../../.env --" "with-env": "dotenv -e ../../.env --"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/api": "workspace:^0.1.0", "@homarr/api": "workspace:^0.1.0",
"@homarr/auth": "workspace:^0.1.0", "@homarr/auth": "workspace:^0.1.0",
@@ -32,13 +31,9 @@
"ws": "catalog:" "ws": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"@types/ws": "catalog:", "@types/ws": "catalog:",
"esbuild": "catalog:", "esbuild": "catalog:",
"eslint": "catalog:",
"prettier": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
+1 -1
View File
@@ -4,11 +4,11 @@
"dependencies": { "dependencies": {
"better-sqlite3": "^12.10.0" "better-sqlite3": "^12.10.0"
}, },
"packageManager": "pnpm@10.33.4",
"engines": { "engines": {
"node": ">=24.15.0", "node": ">=24.15.0",
"pnpm": ">=10.33.4" "pnpm": ">=10.33.4"
}, },
"packageManager": "pnpm@10.33.4",
"pnpm": { "pnpm": {
"onlyBuiltDependencies": [ "onlyBuiltDependencies": [
"better-sqlite3" "better-sqlite3"
+7 -9
View File
@@ -17,12 +17,11 @@
"db:studio": "pnpm -F db studio", "db:studio": "pnpm -F db studio",
"dev": "pnpm -F nextjs dev", "dev": "pnpm -F nextjs dev",
"docker:dev": "docker compose -f ./development/development.docker-compose.yml up", "docker:dev": "docker compose -f ./development/development.docker-compose.yml up",
"format": "turbo format --continue -- --cache --cache-location node_modules/.cache/.prettiercache", "format": "turbo format --continue",
"format:fix": "turbo format --continue -- --write --cache --cache-location node_modules/.cache/.prettiercache", "format:fix": "turbo format --continue -- --write",
"lint": "turbo lint --continue -- --cache --cache-location node_modules/.cache/.eslintcache", "lint": "turbo lint --continue",
"lint:fix": "turbo lint --continue -- --fix --cache --cache-location node_modules/.cache/.eslintcache", "lint:fix": "turbo lint --continue -- --fix",
"lint:ws": "pnpm dlx sherif@latest", "lint:ws": "pnpm dlx sherif@latest",
"package:new": "turbo gen init",
"release": "semantic-release", "release": "semantic-release",
"scripts:update-bug-report-template": "tsx ./scripts/update-bug-report-template.mts", "scripts:update-bug-report-template": "tsx ./scripts/update-bug-report-template.mts",
"scripts:update-readme-integrations": "tsx ./scripts/update-integration-list.mts", "scripts:update-readme-integrations": "tsx ./scripts/update-integration-list.mts",
@@ -33,9 +32,7 @@
"typecheck": "turbo typecheck", "typecheck": "turbo typecheck",
"with-env": "dotenv -e .env --" "with-env": "dotenv -e .env --"
}, },
"prettier": "@homarr/prettier-config",
"devDependencies": { "devDependencies": {
"@homarr/prettier-config": "workspace:^0.1.0",
"@playwright/test": "catalog:", "@playwright/test": "catalog:",
"@semantic-release/changelog": "catalog:", "@semantic-release/changelog": "catalog:",
"@semantic-release/commit-analyzer": "catalog:", "@semantic-release/commit-analyzer": "catalog:",
@@ -52,7 +49,8 @@
"cross-env": "catalog:", "cross-env": "catalog:",
"jsdom": "catalog:", "jsdom": "catalog:",
"json5": "catalog:", "json5": "catalog:",
"prettier": "catalog:", "oxfmt": "catalog:",
"oxlint": "catalog:",
"semantic-release": "catalog:", "semantic-release": "catalog:",
"testcontainers": "catalog:", "testcontainers": "catalog:",
"turbo": "catalog:", "turbo": "catalog:",
@@ -60,11 +58,11 @@
"vite-tsconfig-paths": "catalog:", "vite-tsconfig-paths": "catalog:",
"vitest": "catalog:" "vitest": "catalog:"
}, },
"packageManager": "pnpm@10.33.4",
"engines": { "engines": {
"node": ">=24.15.0", "node": ">=24.15.0",
"pnpm": ">=10.33.4" "pnpm": ">=10.33.4"
}, },
"packageManager": "pnpm@10.33.4",
"pnpm": { "pnpm": {
"onlyBuiltDependencies": [ "onlyBuiltDependencies": [
"@tree-sitter-grammars/tree-sitter-yaml", "@tree-sitter-grammars/tree-sitter-yaml",
-4
View File
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+5 -9
View File
@@ -4,9 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -14,13 +11,15 @@
] ]
} }
}, },
"exports": {
".": "./index.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/auth": "workspace:^0.1.0", "@homarr/auth": "workspace:^0.1.0",
"@homarr/common": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0",
@@ -32,10 +31,7 @@
"superjson": "catalog:" "superjson": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-4
View File
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+4 -9
View File
@@ -4,6 +4,8 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"main": "./src/index.ts",
"types": "./src/index.ts",
"exports": { "exports": {
".": "./src/index.ts", ".": "./src/index.ts",
"./client": "./src/client.ts", "./client": "./src/client.ts",
@@ -12,15 +14,12 @@
"./shared": "./src/shared.ts", "./shared": "./src/shared.ts",
"./open-api": "./src/open-api.ts" "./open-api": "./src/open-api.ts"
}, },
"main": "./index.ts",
"types": "./index.ts",
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/auth": "workspace:^0.1.0", "@homarr/auth": "workspace:^0.1.0",
"@homarr/common": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0",
@@ -55,11 +54,7 @@
"zod": "catalog:" "zod": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"prettier": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-4
View File
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+4 -9
View File
@@ -4,6 +4,8 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"main": "./index.ts",
"types": "./index.ts",
"exports": { "exports": {
".": "./index.ts", ".": "./index.ts",
"./next": "./next.ts", "./next": "./next.ts",
@@ -14,15 +16,12 @@
"./shared": "./shared.ts", "./shared": "./shared.ts",
"./env": "./env.ts" "./env": "./env.ts"
}, },
"main": "./index.ts",
"types": "./index.ts",
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@auth/core": "catalog:", "@auth/core": "catalog:",
"@auth/drizzle-adapter": "catalog:", "@auth/drizzle-adapter": "catalog:",
@@ -41,13 +40,9 @@
"zod": "catalog:" "zod": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"@types/bcrypt": "catalog:", "@types/bcrypt": "catalog:",
"@types/cookies": "catalog:", "@types/cookies": "catalog:",
"eslint": "catalog:",
"prettier": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-9
View File
@@ -1,9 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [
{
ignores: [],
},
...baseConfig,
];
+7 -11
View File
@@ -4,11 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
"./context": "./src/context.tsx",
"./updater": "./src/updater.ts",
"./edit-mode": "./src/edit-mode.tsx"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -16,23 +11,24 @@
] ]
} }
}, },
"exports": {
"./context": "./src/context.tsx",
"./updater": "./src/updater.ts",
"./edit-mode": "./src/edit-mode.tsx"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/api": "workspace:^0.1.0", "@homarr/api": "workspace:^0.1.0",
"react": "catalog:", "react": "catalog:",
"react-dom": "catalog:" "react-dom": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-9
View File
@@ -1,9 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [
{
ignores: [],
},
...baseConfig,
];
+5 -9
View File
@@ -4,9 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -14,16 +11,18 @@
] ]
} }
}, },
"exports": {
".": "./index.ts"
},
"scripts": { "scripts": {
"build": "esbuild src/index.ts --bundle --platform=node --outfile=cli.cjs --external:bcrypt --external:cpu-features --loader:.html=text --loader:.node=text", "build": "esbuild src/index.ts --bundle --platform=node --outfile=cli.cjs --external:bcrypt --external:cpu-features --loader:.html=text --loader:.node=text",
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"run": "pnpm with-env node cli.cjs", "run": "pnpm with-env node cli.cjs",
"typecheck": "tsc --noEmit", "typecheck": "tsc --noEmit",
"with-env": "dotenv -e .env --" "with-env": "dotenv -e .env --"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@drizzle-team/brocli": "catalog:", "@drizzle-team/brocli": "catalog:",
"@homarr/auth": "workspace:^0.1.0", "@homarr/auth": "workspace:^0.1.0",
@@ -33,11 +32,8 @@
"dotenv": "catalog:" "dotenv": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"esbuild": "catalog:", "esbuild": "catalog:",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-4
View File
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+9 -13
View File
@@ -4,13 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts",
"./types": "./src/types.ts",
"./server": "./src/server.ts",
"./client": "./src/client.ts",
"./env": "./env.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -18,13 +11,19 @@
] ]
} }
}, },
"exports": {
".": "./index.ts",
"./types": "./src/types.ts",
"./server": "./src/server.ts",
"./client": "./src/client.ts",
"./env": "./env.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/core": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0",
"@paralleldrive/cuid2": "catalog:", "@paralleldrive/cuid2": "catalog:",
@@ -39,10 +38,7 @@
"zod-validation-error": "catalog:" "zod-validation-error": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-4
View File
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+9 -13
View File
@@ -4,6 +4,13 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"typesVersions": {
"*": {
"*": [
"src/*"
]
}
},
"exports": { "exports": {
"./infrastructure/redis": "./src/infrastructure/redis/client.ts", "./infrastructure/redis": "./src/infrastructure/redis/client.ts",
"./infrastructure/env": "./src/infrastructure/env/index.ts", "./infrastructure/env": "./src/infrastructure/env/index.ts",
@@ -22,20 +29,12 @@
"./infrastructure/http": "./src/infrastructure/http/index.ts", "./infrastructure/http": "./src/infrastructure/http/index.ts",
"./infrastructure/http/timeout": "./src/infrastructure/http/timeout.ts" "./infrastructure/http/timeout": "./src/infrastructure/http/timeout.ts"
}, },
"typesVersions": {
"*": {
"*": [
"src/*"
]
}
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@t3-oss/env-nextjs": "catalog:", "@t3-oss/env-nextjs": "catalog:",
"better-sqlite3": "catalog:", "better-sqlite3": "catalog:",
@@ -49,12 +48,9 @@
"zod": "catalog:" "zod": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"@types/better-sqlite3": "catalog:", "@types/better-sqlite3": "catalog:",
"@types/pg": "catalog:", "@types/pg": "catalog:",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
@@ -1,9 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [
{
ignores: [],
},
...baseConfig,
];
+6 -10
View File
@@ -4,10 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts",
"./publisher": "./src/publisher.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -15,21 +11,21 @@
] ]
} }
}, },
"exports": {
".": "./index.ts",
"./publisher": "./src/publisher.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/redis": "workspace:^0.1.0" "@homarr/redis": "workspace:^0.1.0"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-9
View File
@@ -1,9 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [
{
ignores: [],
},
...baseConfig,
];
+7 -11
View File
@@ -4,11 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts",
"./expressions": "./src/expressions.ts",
"./logger": "./src/logger.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -16,13 +11,17 @@
] ]
} }
}, },
"exports": {
".": "./index.ts",
"./expressions": "./src/expressions.ts",
"./logger": "./src/logger.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/common": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0",
"@homarr/core": "workspace:^", "@homarr/core": "workspace:^",
@@ -30,10 +29,7 @@
"croner": "catalog:" "croner": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-9
View File
@@ -1,9 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [
{
ignores: [],
},
...baseConfig,
];
+6 -10
View File
@@ -4,10 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts",
"./job-manager": "./src/job-manager.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -15,13 +11,16 @@
] ]
} }
}, },
"exports": {
".": "./index.ts",
"./job-manager": "./src/job-manager.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/analytics": "workspace:^0.1.0", "@homarr/analytics": "workspace:^0.1.0",
"@homarr/auth": "workspace:^0.1.0", "@homarr/auth": "workspace:^0.1.0",
@@ -43,10 +42,7 @@
"zod": "catalog:" "zod": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-4
View File
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+4 -9
View File
@@ -4,6 +4,8 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"main": "./index.ts",
"types": "./index.ts",
"exports": { "exports": {
".": "./index.ts", ".": "./index.ts",
"./collection": "./collection.ts", "./collection": "./collection.ts",
@@ -12,16 +14,14 @@
"./queries": "./queries/index.ts", "./queries": "./queries/index.ts",
"./validationSchemas": "./validationSchemas.ts" "./validationSchemas": "./validationSchemas.ts"
}, },
"main": "./index.ts",
"types": "./index.ts",
"scripts": { "scripts": {
"build": "pnpm run build:sqlite && pnpm run build:mysql && pnpm run build:postgresql", "build": "pnpm run build:sqlite && pnpm run build:mysql && pnpm run build:postgresql",
"build:mysql": "esbuild migrations/mysql/migrate.ts --bundle --platform=node --outfile=migrations/mysql/migrate.cjs", "build:mysql": "esbuild migrations/mysql/migrate.ts --bundle --platform=node --outfile=migrations/mysql/migrate.cjs",
"build:postgresql": "esbuild migrations/postgresql/migrate.ts --bundle --platform=node --outfile=migrations/postgresql/migrate.cjs", "build:postgresql": "esbuild migrations/postgresql/migrate.ts --bundle --platform=node --outfile=migrations/postgresql/migrate.cjs",
"build:sqlite": "esbuild migrations/sqlite/migrate.ts --bundle --platform=node --outfile=migrations/sqlite/migrate.cjs", "build:sqlite": "esbuild migrations/sqlite/migrate.ts --bundle --platform=node --outfile=migrations/sqlite/migrate.cjs",
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"migration:custom": "pnpm with-env tsx ./migrations/custom/run-custom.ts", "migration:custom": "pnpm with-env tsx ./migrations/custom/run-custom.ts",
"migration:mysql:drop": "pnpm with-env drizzle-kit drop --config ./configs/mysql.config.ts", "migration:mysql:drop": "pnpm with-env drizzle-kit drop --config ./configs/mysql.config.ts",
"migration:mysql:generate": "pnpm with-env drizzle-kit generate --config ./configs/mysql.config.ts", "migration:mysql:generate": "pnpm with-env drizzle-kit generate --config ./configs/mysql.config.ts",
@@ -42,7 +42,6 @@
"typecheck": "tsc --noEmit", "typecheck": "tsc --noEmit",
"with-env": "dotenv -e ../../.env --" "with-env": "dotenv -e ../../.env --"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@auth/core": "catalog:", "@auth/core": "catalog:",
"@homarr/common": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0",
@@ -63,15 +62,11 @@
"superjson": "catalog:" "superjson": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"@types/better-sqlite3": "catalog:", "@types/better-sqlite3": "catalog:",
"@types/pg": "catalog:", "@types/pg": "catalog:",
"dotenv-cli": "catalog:", "dotenv-cli": "catalog:",
"esbuild": "catalog:", "esbuild": "catalog:",
"eslint": "catalog:",
"prettier": "catalog:",
"tsx": "catalog:", "tsx": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
-4
View File
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+5 -9
View File
@@ -4,9 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -14,24 +11,23 @@
] ]
} }
}, },
"exports": {
".": "./index.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"postinstall": "tsx ./src/docs/codegen.ts", "postinstall": "tsx ./src/docs/codegen.ts",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/common": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0",
"fast-xml-parser": "catalog:", "fast-xml-parser": "catalog:",
"zod": "catalog:" "zod": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"tsx": "catalog:", "tsx": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
-9
View File
@@ -1,9 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [
{
ignores: [],
},
...baseConfig,
];
+7 -11
View File
@@ -4,11 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts",
"./shared": "./src/shared.ts",
"./env": "./src/env.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -16,24 +11,25 @@
] ]
} }
}, },
"exports": {
".": "./index.ts",
"./shared": "./src/shared.ts",
"./env": "./src/env.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/common": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0",
"@homarr/core": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0",
"dockerode": "catalog:" "dockerode": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"@types/dockerode": "catalog:", "@types/dockerode": "catalog:",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-4
View File
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+6 -10
View File
@@ -4,10 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts",
"./types": "./src/types.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -15,13 +11,16 @@
] ]
} }
}, },
"exports": {
".": "./index.ts",
"./types": "./src/types.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/common": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0",
"@homarr/translation": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0",
@@ -31,10 +30,7 @@
"zod": "catalog:" "zod": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+5 -9
View File
@@ -4,9 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -14,13 +11,15 @@
] ]
} }
}, },
"exports": {
".": "./index.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/api": "workspace:^0.1.0", "@homarr/api": "workspace:^0.1.0",
"@homarr/auth": "workspace:^0.1.0", "@homarr/auth": "workspace:^0.1.0",
@@ -35,10 +34,7 @@
"zod": "catalog:" "zod": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-4
View File
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+6 -10
View File
@@ -4,10 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts",
"./local": "./src/local.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -15,23 +11,23 @@
] ]
} }
}, },
"exports": {
".": "./index.ts",
"./local": "./src/local.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/common": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0",
"@homarr/core": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0",
"@homarr/db": "workspace:^0.1.0" "@homarr/db": "workspace:^0.1.0"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-4
View File
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+5 -9
View File
@@ -4,9 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./src/index.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -14,13 +11,15 @@
] ]
} }
}, },
"exports": {
".": "./src/index.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/common": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0",
"@homarr/core": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0",
@@ -28,11 +27,8 @@
"bcrypt": "catalog:" "bcrypt": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"@types/bcrypt": "catalog:", "@types/bcrypt": "catalog:",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-4
View File
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+8 -12
View File
@@ -4,12 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts",
"./test-connection": "./src/base/test-connection/index.ts",
"./client": "./src/client.ts",
"./types": "./src/types.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -17,13 +11,18 @@
] ]
} }
}, },
"exports": {
".": "./index.ts",
"./test-connection": "./src/base/test-connection/index.ts",
"./client": "./src/client.ts",
"./types": "./src/types.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@ctrl/deluge": "catalog:", "@ctrl/deluge": "catalog:",
"@ctrl/qbittorrent": "catalog:", "@ctrl/qbittorrent": "catalog:",
@@ -52,12 +51,9 @@
"zod": "catalog:" "zod": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"@types/node-unifi": "catalog:", "@types/node-unifi": "catalog:",
"@types/xml2js": "catalog:", "@types/xml2js": "catalog:",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
@@ -1,9 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [
{
ignores: [],
},
...baseConfig,
];
+5 -9
View File
@@ -4,9 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -14,13 +11,15 @@
] ]
} }
}, },
"exports": {
".": "./index.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/api": "workspace:^0.1.0", "@homarr/api": "workspace:^0.1.0",
"@homarr/common": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0",
@@ -42,10 +41,7 @@
"zod": "catalog:" "zod": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-5
View File
@@ -1,5 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
import reactConfig from "@homarr/eslint-config/react";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig, ...reactConfig];
+5 -9
View File
@@ -4,9 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -14,13 +11,15 @@
] ]
} }
}, },
"exports": {
".": "./index.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/translation": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0",
"@homarr/ui": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0",
@@ -29,10 +28,7 @@
"react": "catalog:" "react": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-4
View File
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+6 -10
View File
@@ -4,10 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts",
"./styles.css": "./src/styles.css"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -15,23 +11,23 @@
] ]
} }
}, },
"exports": {
".": "./index.ts",
"./styles.css": "./src/styles.css"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/ui": "workspace:^0.1.0", "@homarr/ui": "workspace:^0.1.0",
"@mantine/notifications": "catalog:", "@mantine/notifications": "catalog:",
"@tabler/icons-react": "catalog:" "@tabler/icons-react": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-9
View File
@@ -1,9 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [
{
ignores: [],
},
...baseConfig,
];
+9 -13
View File
@@ -4,13 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts",
"./analyse": "./src/analyse/index.ts",
"./components": "./src/components/index.ts",
"./import": "./src/import/index.ts",
"./shared": "./src/shared.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -18,13 +11,19 @@
] ]
} }
}, },
"exports": {
".": "./index.ts",
"./analyse": "./src/analyse/index.ts",
"./components": "./src/components/index.ts",
"./import": "./src/import/index.ts",
"./shared": "./src/shared.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/common": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0",
"@homarr/core": "workspace:^0.1.0", "@homarr/core": "workspace:^0.1.0",
@@ -48,11 +47,8 @@
"zod-form-data": "catalog:" "zod-form-data": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"@types/adm-zip": "catalog:", "@types/adm-zip": "catalog:",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-9
View File
@@ -1,9 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [
{
ignores: [],
},
...baseConfig,
];
+5 -9
View File
@@ -4,9 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -14,22 +11,21 @@
] ]
} }
}, },
"exports": {
".": "./index.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/common": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0",
"zod": "catalog:" "zod": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-4
View File
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+5 -9
View File
@@ -4,9 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -14,22 +11,21 @@
] ]
} }
}, },
"exports": {
".": "./index.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/common": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0",
"@homarr/core": "workspace:^0.1.0" "@homarr/core": "workspace:^0.1.0"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-4
View File
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+5 -9
View File
@@ -4,9 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -14,13 +11,15 @@
] ]
} }
}, },
"exports": {
".": "./index.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/common": "workspace:^", "@homarr/common": "workspace:^",
"@homarr/core": "workspace:^", "@homarr/core": "workspace:^",
@@ -30,10 +29,7 @@
"superjson": "catalog:" "superjson": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
@@ -1,9 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [
{
ignores: [],
},
...baseConfig,
];
+5 -9
View File
@@ -4,9 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
"./*": "./src/*.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -14,13 +11,15 @@
] ]
} }
}, },
"exports": {
"./*": "./src/*.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@extractus/feed-extractor": "catalog:", "@extractus/feed-extractor": "catalog:",
"@homarr/common": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0",
@@ -37,10 +36,7 @@
"zod": "catalog:" "zod": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+5 -9
View File
@@ -4,9 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -14,22 +11,21 @@
] ]
} }
}, },
"exports": {
".": "./index.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/definitions": "workspace:^0.1.0", "@homarr/definitions": "workspace:^0.1.0",
"@homarr/translation": "workspace:^0.1.0" "@homarr/translation": "workspace:^0.1.0"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-9
View File
@@ -1,9 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [
{
ignores: [],
},
...baseConfig,
];
+6 -10
View File
@@ -4,10 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts",
"./creator": "./src/creator.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -15,13 +11,16 @@
] ]
} }
}, },
"exports": {
".": "./index.ts",
"./creator": "./src/creator.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/db": "workspace:^0.1.0", "@homarr/db": "workspace:^0.1.0",
"@homarr/server-settings": "workspace:^0.1.0", "@homarr/server-settings": "workspace:^0.1.0",
@@ -31,10 +30,7 @@
"react-dom": "catalog:" "react-dom": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-5
View File
@@ -1,5 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
import reactConfig from "@homarr/eslint-config/react";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig, ...reactConfig];
+6 -10
View File
@@ -4,10 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts",
"./styles.css": "./src/styles.css"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -15,13 +11,16 @@
] ]
} }
}, },
"exports": {
".": "./index.ts",
"./styles.css": "./src/styles.css"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/api": "workspace:^0.1.0", "@homarr/api": "workspace:^0.1.0",
"@homarr/auth": "workspace:^0.1.0", "@homarr/auth": "workspace:^0.1.0",
@@ -44,10 +43,7 @@
"use-deep-compare-effect": "catalog:" "use-deep-compare-effect": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-4
View File
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+9 -13
View File
@@ -4,6 +4,13 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"typesVersions": {
"*": {
"*": [
"src/*"
]
}
},
"exports": { "exports": {
".": "./index.ts", ".": "./index.ts",
"./client": "./src/client/index.ts", "./client": "./src/client/index.ts",
@@ -12,20 +19,12 @@
"./request": "./src/request.ts", "./request": "./src/request.ts",
"./dayjs": "./src/dayjs.ts" "./dayjs": "./src/dayjs.ts"
}, },
"typesVersions": {
"*": {
"*": [
"src/*"
]
}
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/common": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0",
"@homarr/definitions": "workspace:^0.1.0", "@homarr/definitions": "workspace:^0.1.0",
@@ -38,10 +37,7 @@
"react-dom": "catalog:" "react-dom": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-5
View File
@@ -1,5 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
import reactConfig from "@homarr/eslint-config/react";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig, ...reactConfig];
+8 -12
View File
@@ -4,12 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts",
"./styles.css": "./src/styles.css",
"./hooks": "./src/hooks/index.ts",
"./icons": "./src/icons/index.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -17,13 +11,18 @@
] ]
} }
}, },
"exports": {
".": "./index.ts",
"./styles.css": "./src/styles.css",
"./hooks": "./src/hooks/index.ts",
"./icons": "./src/icons/index.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/common": "workspace:^0.1.0", "@homarr/common": "workspace:^0.1.0",
"@homarr/definitions": "workspace:^0.1.0", "@homarr/definitions": "workspace:^0.1.0",
@@ -42,12 +41,9 @@
"svgson": "catalog:" "svgson": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"@types/crypto-js": "catalog:", "@types/crypto-js": "catalog:",
"@types/css-modules": "catalog:", "@types/css-modules": "catalog:",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-4
View File
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
+5 -9
View File
@@ -4,9 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
"./*": "./src/*.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -14,13 +11,15 @@
] ]
} }
}, },
"exports": {
"./*": "./src/*.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@homarr/definitions": "workspace:^0.1.0", "@homarr/definitions": "workspace:^0.1.0",
"@homarr/translation": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0",
@@ -28,10 +27,7 @@
"zod-form-data": "catalog:" "zod-form-data": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
-5
View File
@@ -1,5 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
import reactConfig from "@homarr/eslint-config/react";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig, ...reactConfig];
+8 -12
View File
@@ -4,12 +4,6 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"type": "module", "type": "module",
"exports": {
".": "./index.ts",
"./errors": "./src/errors/component.tsx",
"./modals": "./src/modals/index.ts",
"./prefetch": "./src/prefetch.ts"
},
"typesVersions": { "typesVersions": {
"*": { "*": {
"*": [ "*": [
@@ -17,13 +11,18 @@
] ]
} }
}, },
"exports": {
".": "./index.ts",
"./errors": "./src/errors/component.tsx",
"./modals": "./src/modals/index.ts",
"./prefetch": "./src/prefetch.ts"
},
"scripts": { "scripts": {
"clean": "rm -rf .turbo node_modules", "clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore", "format": "oxfmt --check .",
"lint": "eslint", "lint": "oxlint",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"prettier": "@homarr/prettier-config",
"dependencies": { "dependencies": {
"@dnd-kit/core": "catalog:", "@dnd-kit/core": "catalog:",
"@dnd-kit/sortable": "catalog:", "@dnd-kit/sortable": "catalog:",
@@ -82,11 +81,8 @@
"zod": "catalog:" "zod": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0",
"@types/video.js": "catalog:", "@types/video.js": "catalog:",
"eslint": "catalog:",
"typescript": "catalog:" "typescript": "catalog:"
} }
} }
+438 -2304
View File
File diff suppressed because it is too large. Load diff
+2 -13
View File
@@ -13,12 +13,10 @@ catalog:
"@dnd-kit/sortable": ^10.0.0 "@dnd-kit/sortable": ^10.0.0
"@dnd-kit/utilities": ^3.2.2 "@dnd-kit/utilities": ^3.2.2
"@drizzle-team/brocli": ^0.12.0 "@drizzle-team/brocli": ^0.12.0
"@eslint/js": 10.0.1
"@extractus/feed-extractor": 7.2.1 "@extractus/feed-extractor": 7.2.1
"@gitbeaker/rest": ^43.8.0 "@gitbeaker/rest": ^43.8.0
"@homarr/gridstack": ^1.12.0 "@homarr/gridstack": ^1.12.0
"@homarr/node-unifi": ^2.6.0 "@homarr/node-unifi": ^2.6.0
"@ianvs/prettier-plugin-sort-imports": ^4.7.1
"@immich/sdk": ^2.7.5 "@immich/sdk": ^2.7.5
"@jellyfin/sdk": ^0.13.0 "@jellyfin/sdk": ^0.13.0
"@kubernetes/client-node": ^1.4.0 "@kubernetes/client-node": ^1.4.0
@@ -33,7 +31,6 @@ catalog:
"@mantine/notifications": ^8.3.18 "@mantine/notifications": ^8.3.18
"@mantine/spotlight": ^8.3.18 "@mantine/spotlight": ^8.3.18
"@mantine/tiptap": ^8.3.18 "@mantine/tiptap": ^8.3.18
"@next/eslint-plugin-next": 16.2.6
"@octokit/auth-app": ^8.2.0 "@octokit/auth-app": ^8.2.0
"@paralleldrive/cuid2": ^3.3.0 "@paralleldrive/cuid2": ^3.3.0
"@playwright/test": ^1.60.0 "@playwright/test": ^1.60.0
@@ -121,13 +118,6 @@ catalog:
drizzle-orm: ^0.45.2 drizzle-orm: ^0.45.2
drizzle-zod: ^0.8.3 drizzle-zod: ^0.8.3
esbuild: ^0.28.0 esbuild: ^0.28.0
eslint: ^10.4.0
eslint-config-prettier: ^10.1.8
eslint-config-turbo: ^2.9.14
eslint-plugin-import: ^2.32.0
eslint-plugin-jsx-a11y: ^6.10.2
eslint-plugin-react: ^7.37.5
eslint-plugin-react-hooks: ^6.1.1
fast-xml-parser: ^5.8.0 fast-xml-parser: ^5.8.0
fastify: ^5.8.5 fastify: ^5.8.5
flag-icons: ^7.5.0 flag-icons: ^7.5.0
@@ -149,10 +139,10 @@ catalog:
next-intl: 4.12.0 next-intl: 4.12.0
node-loader: ^2.1.0 node-loader: ^2.1.0
octokit: ^5.0.5 octokit: ^5.0.5
oxfmt: ^0.49.0
oxlint: ^1.64.0
pg: ^8.21.0 pg: ^8.21.0
postcss-preset-mantine: ^1.18.0 postcss-preset-mantine: ^1.18.0
prettier: ^3.8.3
prettier-plugin-packagejson: ^3.0.2
prismjs: ^1.30.0 prismjs: ^1.30.0
proxmox-api: 1.1.1 proxmox-api: 1.1.1
react: 19.2.6 react: 19.2.6
@@ -175,7 +165,6 @@ catalog:
tsx: 4.20.4 tsx: 4.20.4
turbo: ^2.9.14 turbo: ^2.9.14
typescript: ^5.9.3 typescript: ^5.9.3
typescript-eslint: ^8.58.2
undici: 7.24.6 undici: 7.24.6
use-deep-compare-effect: ^1.8.1 use-deep-compare-effect: ^1.8.1
video.js: ^8.23.7 video.js: ^8.23.7
+13 -13
View File
@@ -1,28 +1,28 @@
import {readFile, writeFile} from 'fs/promises'; import { readFile, writeFile } from "fs/promises";
import {integrationDefs} from '../packages/definitions/src/integration'; import { integrationDefs } from "../packages/definitions/src/integration";
const FILE = 'docs/README.md'; const FILE = "docs/README.md";
const MAX_COLUMNS_PER_ROW = 7; const MAX_COLUMNS_PER_ROW = 7;
async function updateIntegrationList() { async function updateIntegrationList() {
// Read current README content // Read current README content
const content = await readFile(FILE, 'utf8'); const content = await readFile(FILE, "utf8");
// Define markers // Define markers
const startMarker = '<!-- AUTO_GENERATE_INTEGRATION_LIST_START -->'; const startMarker = "<!-- AUTO_GENERATE_INTEGRATION_LIST_START -->";
const endMarker = '<!-- AUTO_GENERATE_INTEGRATION_LIST_END -->'; const endMarker = "<!-- AUTO_GENERATE_INTEGRATION_LIST_END -->";
// Find the section to replace // Find the section to replace
const startIndex = content.indexOf(startMarker); const startIndex = content.indexOf(startMarker);
const endIndex = content.indexOf(endMarker); const endIndex = content.indexOf(endMarker);
if (startIndex === -1 || endIndex === -1) { if (startIndex === -1 || endIndex === -1) {
throw new Error('Could not find markers in README.md'); throw new Error("Could not find markers in README.md");
} }
// Generate the new integration list // Generate the new integration list
const integrations = Object.values(integrationDefs) const integrations = Object.values(integrationDefs)
.filter(def => def.name !== 'Mock') .filter((def) => def.name !== "Mock")
.sort((a, b) => a.name.localeCompare(b.name)); .sort((a, b) => a.name.localeCompare(b.name));
const tableRows: string[] = []; const tableRows: string[] = [];
let currentRow: string[] = []; let currentRow: string[] = [];
@@ -32,19 +32,19 @@ async function updateIntegrationList() {
<a href="${integration.documentationUrl}" target="_blank" rel="noreferrer noopener"> <a href="${integration.documentationUrl}" target="_blank" rel="noreferrer noopener">
<img src="${integration.iconUrl}" alt="${integration.name}" width="90" height="90" /> <img src="${integration.iconUrl}" alt="${integration.name}" width="90" height="90" />
<br/> <br/>
<p align="center">${integration.name.replaceAll(' ', '<br/>')}</p> <p align="center">${integration.name.replaceAll(" ", "<br/>")}</p>
</a> </a>
</td>`); </td>`);
if (currentRow.length === MAX_COLUMNS_PER_ROW) { if (currentRow.length === MAX_COLUMNS_PER_ROW) {
tableRows.push(`<tr>${currentRow.join('\n')}</tr>`); tableRows.push(`<tr>${currentRow.join("\n")}</tr>`);
currentRow = []; currentRow = [];
} }
}); });
// Add remaining items if any // Add remaining items if any
if (currentRow.length > 0) { if (currentRow.length > 0) {
tableRows.push(`<tr>${currentRow.join('\n')}</tr>`); tableRows.push(`<tr>${currentRow.join("\n")}</tr>`);
} }
// Create the new content // Create the new content
@@ -53,7 +53,7 @@ async function updateIntegrationList() {
<div align="center"> <div align="center">
<table> <table>
<tbody> <tbody>
${tableRows.join('\n')} ${tableRows.join("\n")}
</tbody> </tbody>
</table> </table>
</div> </div>
@@ -64,7 +64,7 @@ ${endMarker}`;
const newContent = content.slice(0, startIndex) + newSection + content.slice(endIndex + endMarker.length); const newContent = content.slice(0, startIndex) + newSection + content.slice(endIndex + endMarker.length);
// Write the updated content back to the file // Write the updated content back to the file
await writeFile(FILE, newContent, 'utf8'); await writeFile(FILE, newContent, "utf8");
} }
updateIntegrationList().catch(console.error); updateIntegrationList().catch(console.error);
-94
View File
@@ -1,94 +0,0 @@
import eslint from "@eslint/js";
import importPlugin from "eslint-plugin-import";
import { defineConfig } from "eslint/config";
import tseslint from "typescript-eslint";
export default defineConfig(
{
// Globally ignored files
ignores: ["**/*.config.js", "**/*.cjs", "**/lang/*.d.json.ts"],
},
{
files: ["**/*.js", "**/*.ts", "**/*.tsx"],
plugins: {
import: importPlugin,
},
extends: [
eslint.configs.recommended,
...tseslint.configs.recommended,
...tseslint.configs.recommendedTypeChecked,
...tseslint.configs.stylisticTypeChecked,
],
rules: {
"@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_", varsIgnorePattern: "^_" }],
"@typescript-eslint/consistent-type-imports": [
"warn",
{ prefer: "type-imports", fixStyle: "separate-type-imports" },
],
"@typescript-eslint/no-misused-promises": [2, { checksVoidReturn: { attributes: false } }],
"@typescript-eslint/no-unnecessary-condition": [
"error",
{
allowConstantLoopConditions: true,
},
],
"@typescript-eslint/no-non-null-assertion": "error",
"import/consistent-type-specifier-style": ["error", "prefer-top-level"],
"id-length": [
"warn",
{
min: 3,
exceptions: ["_", "i", "z", "t", "id", "db", "fs"], // _ for unused variables, i for index, z for zod, t for translation
properties: "never", // This allows for example the use of <Grid.Col span={{ sm: 12, md: 6 }}> as sm and md would be too short
},
],
"no-restricted-syntax": [
"error",
{
selector: "FunctionDeclaration[async=false][id.name=/Async$/]",
message: "Function ending in 'Async' must be declared async",
},
{
selector:
"FunctionDeclaration[async=true][id.name=/^[a-z].*$/][id.name=/ ^(?!generateMetadata$)[a-z].*$/][id.name!=/Async$/]",
message: "Async function name must end in 'Async' (function declaration)",
},
{
selector: "MethodDefinition[value.async=false][key.name=/Async$/]",
message: "Method ending in 'Async' must be declared async",
},
{
selector: "MethodDefinition[value.async=true][key.name!=/Async$/]",
message: "Async method name must end in 'Async'",
},
{
selector: "Property[value.type=/FunctionExpression$/][value.async=false][key.name=/Async$/]",
message: "Function ending in 'Async' must be declared async",
},
{
selector:
"Property[value.type=/FunctionExpression$/][value.async=true][key.name!=/^on(Success|Settled)$/][key.name!=/Async$/]",
message: "Async function name must end in 'Async' (property)",
},
{
selector: "VariableDeclarator[init.type=/FunctionExpression$/][init.async=false][id.name=/Async$/]",
message: "Function ending in 'Async' must be declared async",
},
{
selector:
"VariableDeclarator[init.type=/FunctionExpression$/][init.async=true][id.name=/^[a-z].*$/][id.name!=/Async$/]",
message: "Async function name must end in 'Async' (variable declarator)",
},
{
// \\u002F is the unicode escape for / and is used because of https://github.com/estools/esquery/issues/68
selector: "Literal[value=/^https:\\u002F\\u002Fhomarr\\.dev\\u002F.*$/]",
message: "Links to 'https://homarr.dev/' should be used with createDocumentationLink method",
},
],
},
},
{
linterOptions: { reportUnusedDisableDirectives: true },
languageOptions: { parserOptions: { project: true } },
},
);
-4
View File
@@ -1,4 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [...baseConfig];
-17
View File
@@ -1,17 +0,0 @@
import nextPlugin from "@next/eslint-plugin-next";
/** @type {Awaited<import('typescript-eslint').Config>} */
export default [
{
files: ["**/*.ts", "**/*.tsx"],
plugins: {
"@next/next": nextPlugin,
},
rules: {
...nextPlugin.configs.recommended.rules,
...nextPlugin.configs["core-web-vitals"].rules,
// TypeError: context.getAncestors is not a function
"@next/next/no-duplicate-head": "off",
},
},
];
-36
View File
@@ -1,36 +0,0 @@
{
"name": "@homarr/eslint-config",
"version": "0.2.0",
"private": true,
"license": "Apache-2.0",
"type": "module",
"exports": {
"./base": "./base.js",
"./nextjs": "./nextjs.js",
"./react": "./react.js"
},
"scripts": {
"clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore",
"lint": "eslint",
"typecheck": "tsc --noEmit"
},
"prettier": "@homarr/prettier-config",
"dependencies": {
"@next/eslint-plugin-next": "catalog:",
"eslint-config-prettier": "catalog:",
"eslint-config-turbo": "catalog:",
"eslint-plugin-import": "catalog:",
"eslint-plugin-jsx-a11y": "catalog:",
"eslint-plugin-react": "catalog:",
"eslint-plugin-react-hooks": "catalog:",
"typescript-eslint": "catalog:"
},
"devDependencies": {
"@eslint/js": "catalog:",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "catalog:",
"typescript": "catalog:"
}
}
-24
View File
@@ -1,24 +0,0 @@
/// <reference types="./types.d.ts" />
import reactPlugin from "eslint-plugin-react";
import hooksPlugin from "eslint-plugin-react-hooks";
/** @type {Awaited<import('typescript-eslint').Config>} */
export default [
{
files: ["**/*.ts", "**/*.tsx"],
plugins: {
react: reactPlugin,
"react-hooks": hooksPlugin,
},
rules: {
...reactPlugin.configs["jsx-runtime"].rules,
...hooksPlugin.configs.recommended.rules,
},
languageOptions: {
globals: {
React: "writable",
},
},
},
];
-8
View File
@@ -1,8 +0,0 @@
{
"extends": "@homarr/tsconfig/base.json",
"compilerOptions": {
"tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json"
},
"include": ["."],
"exclude": ["node_modules"]
}
-13
View File
@@ -1,13 +0,0 @@
declare module "eslint-plugin-react-hooks" {
import type { Linter, Rule } from "eslint";
export const configs: {
recommended: {
rules: {
"rules-of-hooks": Linter.RuleEntry;
"exhaustive-deps": Linter.RuleEntry;
};
};
};
export const rules: Record<string, Rule.RuleModule>;
}
-32
View File
@@ -1,32 +0,0 @@
/** @typedef {import("prettier").Config} PrettierConfig */
/** @typedef {import("@ianvs/prettier-plugin-sort-imports").PluginConfig} SortImportsConfig */
/** @type { PrettierConfig | SortImportsConfig } */
const config = {
plugins: ["@ianvs/prettier-plugin-sort-imports", "prettier-plugin-packagejson"],
importOrder: [
"^(react/(.*)$)|^react$",
"^(next/(.*)$)|^(next$)",
"<THIRD_PARTY_MODULES>",
"",
"^@homarr/(.*)$",
"",
"^~/",
"^[../]",
"^[./]",
],
importOrderParserPlugins: ["typescript", "jsx", "decorators-legacy"],
printWidth: 120,
importOrderTypeScriptVersion: "4.4.0",
overrides: [
{
files: "*.json.hbs",
options: {
parser: "json",
},
},
],
endOfLine: "lf",
};
export default config;
-21
View File
@@ -1,21 +0,0 @@
{
"name": "@homarr/prettier-config",
"version": "0.1.0",
"private": true,
"main": "index.mjs",
"scripts": {
"clean": "rm -rf .turbo node_modules",
"format": "prettier --check . --ignore-path ../../.gitignore",
"typecheck": "tsc --noEmit"
},
"prettier": "@homarr/prettier-config",
"dependencies": {
"@ianvs/prettier-plugin-sort-imports": "catalog:",
"prettier": "catalog:"
},
"devDependencies": {
"@homarr/tsconfig": "workspace:^0.1.0",
"prettier-plugin-packagejson": "catalog:",
"typescript": "catalog:"
}
}
-8
View File
@@ -1,8 +0,0 @@
{
"extends": "@homarr/tsconfig/base.json",
"compilerOptions": {
"tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json"
},
"include": ["."],
"exclude": ["node_modules"]
}
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "@homarr/tsconfig", "name": "@homarr/tsconfig",
"private": true,
"version": "0.1.0", "version": "0.1.0",
"private": true,
"files": [ "files": [
"base.json" "base.json"
] ]
+1 -3
View File
@@ -22,13 +22,11 @@
}, },
"format": { "format": {
"inputs": ["$TURBO_DEFAULT$"], "inputs": ["$TURBO_DEFAULT$"],
"outputs": ["node_modules/.cache/.prettiercache"],
"outputLogs": "new-only" "outputLogs": "new-only"
}, },
"lint": { "lint": {
"dependsOn": ["^topo"], "dependsOn": ["^topo"],
"inputs": ["$TURBO_DEFAULT$"], "inputs": ["$TURBO_DEFAULT$"]
"outputs": ["node_modules/.cache/.eslintcache"]
}, },
"typecheck": { "typecheck": {
"dependsOn": ["^topo"], "dependsOn": ["^topo"],
-94
View File
@@ -1,94 +0,0 @@
import { execSync } from "node:child_process";
import type { PlopTypes } from "@turbo/gen";
interface PackageJson {
name: string;
scripts: Record<string, string>;
dependencies: Record<string, string>;
devDependencies: Record<string, string>;
}
export default function generator(plop: PlopTypes.NodePlopAPI): void {
plop.setGenerator("init", {
description: "Generate a new package for the homarr Monorepo",
prompts: [
{
type: "input",
name: "name",
message: "What is the name of the package? (You can skip the `@homarr/` prefix)",
},
{
type: "input",
name: "deps",
message: "Enter a space separated list of dependencies you would like to install",
},
],
actions: [
(answers) => {
if ("name" in answers && typeof answers.name === "string") {
if (answers.name.startsWith("@homarr/")) {
answers.name = answers.name.replace("@homarr/", "");
}
}
return "Config sanitized";
},
{
type: "add",
path: "packages/{{ name }}/eslint.config.js",
templateFile: "templates/eslint.config.js.hbs",
},
{
type: "add",
path: "packages/{{ name }}/package.json",
templateFile: "templates/package.json.hbs",
},
{
type: "add",
path: "packages/{{ name }}/tsconfig.json",
templateFile: "templates/tsconfig.json.hbs",
},
{
type: "add",
path: "packages/{{ name }}/index.ts",
template: "export * from './src';",
},
{
type: "add",
path: "packages/{{ name }}/src/index.ts",
template: "export const name = '{{ name }}';",
},
{
type: "modify",
path: "packages/{{ name }}/package.json",
async transform(content, answers) {
if ("deps" in answers && typeof answers.deps === "string") {
const pkg = JSON.parse(content) as PackageJson;
for (const dep of answers.deps.split(" ").filter(Boolean)) {
const version = await fetch(`https://registry.npmjs.org/-/package/${dep}/dist-tags`)
.then((res) => res.json())
.then((json) => json.latest);
if (!pkg.dependencies) pkg.dependencies = {};
pkg.dependencies[dep] = `^${version}`;
}
return JSON.stringify(pkg, null, 2);
}
return content;
},
},
async (answers) => {
/**
* Install deps and format everything
*/
if ("name" in answers && typeof answers.name === "string") {
// execSync("pnpm dlx sherif@latest --fix", {
// stdio: "inherit",
// });
execSync("pnpm i", { stdio: "inherit" });
execSync(`pnpm prettier --write packages/${answers.name}/** --list-different`);
return "Package scaffolded";
}
return "Package not scaffolded";
},
],
});
}
@@ -1,9 +0,0 @@
import baseConfig from "@homarr/eslint-config/base";
/** @type {import('typescript-eslint').Config} */
export default [
{
ignores: [],
},
...baseConfig,
];
@@ -1,31 +0,0 @@
{
"name": "@homarr/{{name}}",
"private": true,
"version": "0.1.0",
"type": "module",
"exports": {
".": "./index.ts"
},
"typesVersions": {
"*": {
"*": [
"src/*"
]
}
},
"license": "MIT",
"scripts": {
"clean": "rm -rf .turbo node_modules",
"lint": "eslint",
"format": "prettier --check . --ignore-path ../../.gitignore",
"typecheck": "tsc --noEmit"
},
"devDependencies": {
"@homarr/eslint-config": "workspace:^0.2.0",
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"eslint": "^9.19.0",
"typescript": "^5.7.3"
},
"prettier": "@homarr/prettier-config"
}
Loaded 100 of 101 files, more files were not shown because too many files have changed in this diff. Show more