feat: oxlint

This commit is contained in:
Aaron Reisman
2025-11-26 10:27:56 +07:00
parent e36f4f47f1
commit af58aa3d47
75 changed files with 917 additions and 2879 deletions

1
.husky/pre-commit Normal file
View File

@@ -0,0 +1 @@
pnpm lint-staged

5
.npmrc
View File

@@ -14,8 +14,6 @@ strict-peer-dependencies=false
# Turbo occasionally performs postinstall tasks for optimal performance
# moved to pnpm-workspace.yaml: onlyBuiltDependencies (e.g., allow turbo)
public-hoist-pattern[]=*eslint*
public-hoist-pattern[]=prettier
public-hoist-pattern[]=typescript
# Reproducible installs across CI and dev
@@ -32,3 +30,6 @@ prefer-offline=true
# Ensure workspace protocol is used when adding internal deps
save-workspace-protocol=true
node-linker=isolated
public-hoist-pattern[]=*@plane/*

16
.oxfmtrc.json Normal file
View File

@@ -0,0 +1,16 @@
{
"$schema": "./node_modules/oxfmt/configuration_schema.json",
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"overrides": [
{
"files": [
"packages/codemods/**/*"
],
"options": {
"printWidth": 80
}
}
]
}

208
.oxlintrc.json Normal file
View File

@@ -0,0 +1,208 @@
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"categories": {
"correctness": "error",
"nursery": "warn",
"pedantic": "warn",
"perf": "warn",
"restriction": "error",
"style": "warn",
"suspicious": "error"
},
"env": {
"browser": true,
"es2022": true,
"node": true
},
"ignorePatterns": [
"**/.cache/**",
"**/.next/**",
"**/.turbo/**",
"**/.vite/**",
"**/build/**",
"**/coverage/**",
"**/dist/**",
"**/node_modules/**"
],
"plugins": [
"eslint",
"import",
"jsdoc",
"jsx-a11y",
"node",
"oxc",
"promise",
"react-perf",
"react",
"regex",
"typescript",
"unicorn",
"vitest"
],
"rules": {
"eslint/class-methods-use-this": "warn",
"eslint/default-case": "warn",
"eslint/func-style": "off",
"eslint/id-length": "off",
"eslint/init-declarations": "off",
"eslint/max-lines": "off",
"eslint/max-lines-per-function": "off",
"eslint/max-params": "off",
"eslint/no-alert": "warn",
"eslint/no-bitwise": "warn",
"eslint/no-console": "warn",
"eslint/no-constant-binary-expression": "warn",
"eslint/no-continue": "off",
"eslint/no-div-regex": "warn",
"eslint/no-duplicate-imports": [
"warn",
{
"allowSeparateTypeImports": true
}
],
"eslint/no-empty": "warn",
"eslint/no-empty-function": "warn",
"eslint/no-empty-pattern": "warn",
"eslint/no-eq-null": "warn",
"eslint/no-extra-boolean-cast": "warn",
"eslint/no-magic-numbers": "off",
"eslint/no-new": "warn",
"eslint/no-param-reassign": "warn",
"eslint/no-plusplus": "off",
"eslint/no-ternary": "off",
"eslint/no-undefined": "off",
"eslint/no-unneeded-ternary": "warn",
"eslint/no-unsafe-optional-chaining": "warn",
"eslint/no-unused-expressions": "warn",
"eslint/no-unused-vars": [
"warn",
{
"argsIgnorePattern": "^_",
"varsIgnorePattern": "^_"
}
],
"eslint/no-useless-catch": "warn",
"eslint/no-useless-constructor": "warn",
"eslint/no-useless-escape": "warn",
"eslint/no-void": "warn",
"eslint/preserve-caught-error": "warn",
"eslint/valid-typeof": "warn",
"import/extensions": "warn",
"import/group-exports": "off",
"import/max-dependencies": "off",
"import/no-commonjs": "warn",
"import/no-cycle": "warn",
"import/no-default-export": "off",
"import/no-named-as-default": "warn",
"import/no-named-as-default-member": "warn",
"import/no-named-export": "off",
"import/no-namespace": "off",
"import/no-unassigned-import": "warn",
"import/prefer-default-export": "off",
"import/unambiguous": "warn",
"jsdoc/check-tag-names": "warn",
"jsdoc/empty-tags": "warn",
"jsdoc/no-defaults": "warn",
"jsx-a11y/alt-text": "warn",
"jsx-a11y/anchor-ambiguous-text": "warn",
"jsx-a11y/anchor-is-valid": "warn",
"jsx-a11y/click-events-have-key-events": "warn",
"jsx-a11y/iframe-has-title": "warn",
"jsx-a11y/img-redundant-alt": "warn",
"jsx-a11y/label-has-associated-control": "warn",
"jsx-a11y/mouse-events-have-key-events": "warn",
"jsx-a11y/no-aria-hidden-on-focusable": "warn",
"jsx-a11y/no-autofocus": "warn",
"jsx-a11y/no-redundant-roles": "warn",
"jsx-a11y/prefer-tag-over-role": "warn",
"jsx-a11y/tabindex-no-positive": "warn",
"node/no-process-env": "warn",
"non-nullable-type-assertion-style": "warn",
"oxc/const-comparisons": "warn",
"oxc/no-async-await": "off",
"oxc/no-barrel-file": "warn",
"oxc/no-optional-chaining": "off",
"oxc/no-rest-spread-properties": "off",
"promise/always-return": "warn",
"promise/catch-or-return": "warn",
"react/button-has-type": "warn",
"react/exhaustive-deps": "warn",
"react/iframe-missing-sandbox": "warn",
"react/jsx-filename-extension": [
"error",
{
"extensions": [
".tsx"
]
}
],
"react/jsx-key": "warn",
"react/no-unknown-property": "warn",
"react/only-export-components": [
"warn",
{
"allowExportNames": [
"meta",
"links",
"headers"
]
}
],
"react/react-in-jsx-scope": "off",
"typescript/await-thenable": "warn",
"typescript/consistent-type-definitions": "off",
"typescript/explicit-function-return-type": "off",
"typescript/explicit-module-boundary-types": "off",
"typescript/no-base-to-string": "warn",
"typescript/no-duplicate-enum-values": "warn",
"typescript/no-duplicate-type-constituents": "warn",
"typescript/no-dynamic-delete": "warn",
"typescript/no-explicit-any": "warn",
"typescript/no-floating-promises": "warn",
"typescript/no-for-in-array": "warn",
"typescript/no-misused-spread": "warn",
"typescript/no-non-null-assertion": "warn",
"typescript/no-redundant-type-constituents": "warn",
"typescript/no-require-imports": "warn",
"typescript/no-unnecessary-boolean-literal-compare": "warn",
"typescript/no-unnecessary-template-expression": "warn",
"typescript/no-unnecessary-type-arguments": "warn",
"typescript/no-unnecessary-type-assertion": "warn",
"typescript/no-unsafe-enum-comparison": "warn",
"typescript/no-unsafe-type-assertion": "warn",
"typescript/promise-function-async": "warn",
"typescript/require-array-sort-compare": "warn",
"typescript/restrict-template-expressions": "warn",
"typescript/unbound-method": "warn",
"typescript/use-unknown-in-catch-callback-variable": "warn",
"unicorn/catch-error-name": "off",
"unicorn/consistent-function-scoping": "warn",
"unicorn/no-array-callback-reference": "off",
"unicorn/no-array-for-each": "warn",
"unicorn/no-array-reduce": "off",
"unicorn/no-array-reverse": "warn",
"unicorn/no-array-sort": "warn",
"unicorn/no-empty-file": "warn",
"unicorn/no-instanceof-builtins": "warn",
"unicorn/no-nested-ternery": "off",
"unicorn/no-null": "off",
"unicorn/no-process-exit": "warn",
"unicorn/no-single-promise-in-promise-methods": "warn",
"unicorn/no-useless-fallback-in-spread": "warn",
"unicorn/no-useless-length-check": "warn",
"unicorn/no-useless-spread": "warn",
"unicorn/no-useless-undefined": "off",
"unicorn/prefer-add-event-listener": "warn",
"unicorn/prefer-at": "off",
"unicorn/prefer-modern-math-apis": "warn",
"unicorn/prefer-node-protocol": "warn",
"unicorn/prefer-number-properties": "warn",
"unicorn/require-module-specifiers": "warn"
},
"settings": {
"react": {
"jsxRuntime": "automatic",
"version": "detect"
}
}
}

2
.prettierignore Normal file
View File

@@ -0,0 +1,2 @@
# oxfmt uses .prettierignore for ignore patterns
pnpm-lock.yaml

View File

@@ -1,6 +0,0 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"plugins": ["@prettier/plugin-oxc"]
}

View File

@@ -91,7 +91,7 @@ If you would like to _implement_ it, an issue with your proposal must be submitt
To ensure consistency throughout the source code, please keep these rules in mind as you are working:
- All features or bug fixes must be tested by one or more specs (unit-tests).
- We use [Eslint default rule guide](https://eslint.org/docs/rules/), with minor changes. An automated formatter is available using prettier.
- We lint with [Oxlint](https://oxc.rs/docs/guide/tools/oxlint.html) using the shared `.oxlintrc.json` in the repo root and format with [Oxfmt](https://oxc.rs/docs/guide/usage/formatter).
## Ways to contribute
@@ -187,18 +187,19 @@ Adding a new language involves several steps to ensure it integrates seamlessly
Add the new language to the TLanguage type in the language definitions file:
```ts
// packages/i18n/src/types/language.ts
export type TLanguage = "en" | "fr" | "your-lang";
// packages/i18n/src/types/language.ts
export type TLanguage = "en" | "fr" | "your-lang";
```
1. **Add language configuration**
Include the new language in the list of supported languages:
```ts
// packages/i18n/src/constants/language.ts
export const SUPPORTED_LANGUAGES: ILanguageOption[] = [
{ label: "English", value: "en" },
{ label: "Your Language", value: "your-lang" }
];
// packages/i18n/src/constants/language.ts
export const SUPPORTED_LANGUAGES: ILanguageOption[] = [
{ label: "English", value: "en" },
{ label: "Your Language", value: "your-lang" },
];
```
2. **Create translation files**
@@ -210,6 +211,7 @@ Adding a new language involves several steps to ensure it integrates seamlessly
3. **Update import logic**
Modify the language import logic to include your new language:
```ts
private importLanguageFile(language: TLanguage): Promise<any> {
switch (language) {

View File

@@ -1,18 +0,0 @@
module.exports = {
root: true,
extends: ["@plane/eslint-config/next.js"],
ignorePatterns: ["build/**", "dist/**", ".vite/**"],
rules: {
"import/no-duplicates": ["error", { "prefer-inline": false }],
"import/consistent-type-specifier-style": ["error", "prefer-top-level"],
"@typescript-eslint/no-import-type-side-effects": "error",
"@typescript-eslint/consistent-type-imports": [
"error",
{
prefer: "type-imports",
fixStyle: "separate-type-imports",
disallowTypeAnnotations: false,
},
],
},
};

View File

@@ -1,6 +0,0 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"plugins": ["@prettier/plugin-oxc"]
}

View File

@@ -11,11 +11,11 @@
"preview": "react-router build && serve -s build/client -l 3001",
"start": "serve -s build/client -l 3001",
"clean": "rm -rf .turbo && rm -rf .next && rm -rf node_modules && rm -rf dist && rm -rf build",
"check:lint": "eslint . --max-warnings 19",
"check:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json",
"check:types": "react-router typegen && tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
"fix:format": "prettier --write \"**/*.{ts,tsx,md,json,css,scss}\""
"check:format": "pnpm exec oxfmt --check .",
"fix:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json --fix",
"fix:format": "pnpm exec oxfmt ."
},
"dependencies": {
"@bprogress/core": "catalog:",
@@ -48,10 +48,8 @@
"uuid": "catalog:"
},
"devDependencies": {
"@plane/eslint-config": "workspace:*",
"@plane/tailwind-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@prettier/plugin-oxc": "0.0.4",
"@react-router/dev": "catalog:",
"@types/lodash-es": "catalog:",
"@types/node": "catalog:",

View File

@@ -1,14 +1,13 @@
{
"extends": "@plane/typescript-config/react-router.json",
"compilerOptions": {
"baseUrl": ".",
"rootDirs": [".", "./.react-router/types"],
"types": ["node", "vite/client"],
"paths": {
"@/app/*": ["app/*"],
"@/*": ["core/*"],
"@/plane-admin/*": ["ce/*"],
"@/styles/*": ["styles/*"]
"@/app/*": ["./app/*"],
"@/*": ["./core/*"],
"@/plane-admin/*": ["./ce/*"],
"@/styles/*": ["./styles/*"]
},
"strictNullChecks": true
},

View File

@@ -1,4 +0,0 @@
module.exports = {
root: true,
extends: ["@plane/eslint-config/server.js"],
};

View File

@@ -1,6 +0,0 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"plugins": ["@prettier/plugin-oxc"]
}

View File

@@ -10,11 +10,11 @@
"build": "tsc --noEmit && tsdown",
"dev": "tsdown --watch --onSuccess \"node --env-file=.env dist/start.js\"",
"start": "node --env-file=.env dist/start.js",
"check:lint": "eslint . --max-warnings 10",
"check:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json",
"check:types": "tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
"fix:format": "prettier --write \"**/*.{ts,tsx,md,json,css,scss}\"",
"check:format": "pnpm exec oxfmt --check .",
"fix:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json --fix",
"fix:format": "pnpm exec oxfmt .",
"clean": "rm -rf .turbo && rm -rf .next && rm -rf node_modules && rm -rf dist"
},
"author": "Plane Software Inc.",
@@ -49,9 +49,7 @@
"zod": "^3.25.76"
},
"devDependencies": {
"@plane/eslint-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@prettier/plugin-oxc": "0.0.4",
"@types/compression": "1.8.1",
"@types/cors": "^2.8.17",
"@types/express": "4.17.23",

View File

@@ -7,7 +7,6 @@
"target": "ES2015",
"outDir": "./dist",
"rootDir": ".",
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"],
"@/plane-live/*": ["./src/ce/*"]

View File

@@ -1,18 +0,0 @@
module.exports = {
root: true,
extends: ["@plane/eslint-config/next.js"],
ignorePatterns: ["build/**", "dist/**", ".vite/**"],
rules: {
"import/no-duplicates": ["error", { "prefer-inline": false }],
"import/consistent-type-specifier-style": ["error", "prefer-top-level"],
"@typescript-eslint/no-import-type-side-effects": "error",
"@typescript-eslint/consistent-type-imports": [
"error",
{
prefer: "type-imports",
fixStyle: "separate-type-imports",
disallowTypeAnnotations: false,
},
],
},
};

View File

@@ -1,6 +0,0 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"plugins": ["@prettier/plugin-oxc"]
}

View File

@@ -10,11 +10,11 @@
"preview": "react-router build && PORT=3002 react-router-serve ./build/server/index.js",
"start": "PORT=3002 react-router-serve ./build/server/index.js",
"clean": "rm -rf .turbo && rm -rf .next && rm -rf .react-router && rm -rf node_modules && rm -rf dist && rm -rf build",
"check:lint": "eslint . --max-warnings 28",
"check:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json",
"check:types": "react-router typegen && tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
"fix:format": "prettier --write \"**/*.{ts,tsx,md,json,css,scss}\""
"check:format": "pnpm exec oxfmt --check .",
"fix:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json --fix",
"fix:format": "pnpm exec oxfmt ."
},
"dependencies": {
"@bprogress/core": "catalog:",
@@ -52,10 +52,8 @@
"uuid": "catalog:"
},
"devDependencies": {
"@plane/eslint-config": "workspace:*",
"@plane/tailwind-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@prettier/plugin-oxc": "0.0.4",
"@react-router/dev": "catalog:",
"@types/lodash-es": "catalog:",
"@types/node": "catalog:",

View File

@@ -1,15 +1,14 @@
{
"extends": "@plane/typescript-config/react-router.json",
"compilerOptions": {
"baseUrl": ".",
"rootDirs": [".", "./.react-router/types"],
"types": ["node", "vite/client"],
"paths": {
"@/app/*": ["app/*"],
"@/*": ["core/*"],
"@/helpers/*": ["helpers/*"],
"@/styles/*": ["styles/*"],
"@/plane-web/*": ["ce/*"]
"@/app/*": ["./app/*"],
"@/*": ["./core/*"],
"@/helpers/*": ["./helpers/*"],
"@/styles/*": ["./styles/*"],
"@/plane-web/*": ["./ce/*"]
},
"strictNullChecks": true
},

View File

@@ -1,18 +0,0 @@
module.exports = {
root: true,
extends: ["@plane/eslint-config/next.js"],
ignorePatterns: ["build/**", "dist/**", ".vite/**"],
rules: {
"import/no-duplicates": ["error", { "prefer-inline": false }],
"import/consistent-type-specifier-style": ["error", "prefer-top-level"],
"@typescript-eslint/no-import-type-side-effects": "error",
"@typescript-eslint/consistent-type-imports": [
"error",
{
prefer: "type-imports",
fixStyle: "separate-type-imports",
disallowTypeAnnotations: false,
},
],
},
};

View File

@@ -7,3 +7,4 @@ dist/
build/
node_modules
pnpm-lock.yaml
public/

View File

@@ -1,6 +0,0 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"plugins": ["@prettier/plugin-oxc"]
}

View File

@@ -10,11 +10,11 @@
"preview": "react-router build && serve -s build/client -l 3000",
"start": "serve -s build/client -l 3000",
"clean": "rm -rf .turbo && rm -rf .next && rm -rf .react-router && rm -rf node_modules && rm -rf dist && rm -rf build",
"check:lint": "eslint . --max-warnings 934",
"check:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json",
"check:types": "react-router typegen && tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
"fix:format": "prettier --write \"**/*.{ts,tsx,md,json,css,scss}\""
"check:format": "pnpm exec oxfmt --check .",
"fix:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json --fix",
"fix:format": "pnpm exec oxfmt ."
},
"dependencies": {
"@atlaskit/pragmatic-drag-and-drop": "catalog:",
@@ -76,10 +76,8 @@
"uuid": "catalog:"
},
"devDependencies": {
"@plane/eslint-config": "workspace:*",
"@plane/tailwind-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@prettier/plugin-oxc": "0.0.4",
"@react-router/dev": "catalog:",
"@types/lodash-es": "catalog:",
"@types/node": "catalog:",
@@ -87,7 +85,6 @@
"@types/react-color": "^3.0.6",
"@types/react-dom": "catalog:",
"dotenv": "^16.4.5",
"prettier": "^3.2.5",
"typescript": "catalog:",
"vite": "catalog:",
"vite-tsconfig-paths": "^5.1.4"

View File

@@ -1,3 +1,2 @@
// eslint-disable-next-line @typescript-eslint/no-require-imports
module.exports = require("@plane/tailwind-config/postcss.config.js");

View File

@@ -5,4 +5,3 @@ const sharedConfig = require("@plane/tailwind-config/tailwind.config.js");
module.exports = {
presets: [sharedConfig],
};

View File

@@ -1,15 +1,14 @@
{
"extends": "@plane/typescript-config/react-router.json",
"compilerOptions": {
"baseUrl": ".",
"rootDirs": [".", "./.react-router/types"],
"types": ["node", "vite/client"],
"paths": {
"@/app/*": ["app/*"],
"@/*": ["core/*"],
"@/helpers/*": ["helpers/*"],
"@/styles/*": ["styles/*"],
"@/plane-web/*": ["ce/*"]
"@/app/*": ["./app/*"],
"@/*": ["./core/*"],
"@/helpers/*": ["./helpers/*"],
"@/styles/*": ["./styles/*"],
"@/plane-web/*": ["./ce/*"]
},
"strictNullChecks": true
},

View File

@@ -12,16 +12,28 @@
"clean": "turbo run clean && rm -rf .turbo && rm -rf .next && rm -rf node_modules && rm -rf dist",
"fix": "turbo run fix",
"fix:format": "turbo run fix:format",
"fix:lint": "turbo run fix:lint",
"check": "turbo run check",
"check:lint": "turbo run check:lint",
"check:format": "turbo run check:format",
"check:types": "turbo run check:types"
"check:types": "turbo run check:types",
"lint": "pnpm exec oxlint apps/ packages/ --config .oxlintrc.json --type-aware --tsconfig tsconfig.oxlint.json",
"prepare": "husky"
},
"devDependencies": {
"@prettier/plugin-oxc": "0.0.4",
"prettier": "^3.6.2",
"husky": "^9.1.7",
"lint-staged": "^16.2.7",
"oxfmt": "^0.14.0",
"oxlint": "^1.29.0",
"oxlint-tsgolint": "^0.8.1",
"turbo": "2.6.1"
},
"lint-staged": {
"*.{js,ts,tsx,mjs,jsx}": [
"pnpm exec oxfmt",
"pnpm exec oxlint --fix --config .oxlintrc.json --type-aware --tsconfig tsconfig.oxlint.json"
]
},
"pnpm": {
"overrides": {
"glob": "11.1.0",

View File

@@ -1,5 +0,0 @@
{
"printWidth": 80,
"tabWidth": 2,
"trailingComma": "es5"
}

View File

@@ -1,4 +0,0 @@
module.exports = {
root: true,
extends: ["@plane/eslint-config/library.js"],
};

View File

@@ -1,6 +0,0 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"plugins": ["@prettier/plugin-oxc"]
}

View File

@@ -7,20 +7,18 @@
"scripts": {
"dev": "tsdown --watch",
"build": "tsdown",
"check:lint": "eslint . --max-warnings 0",
"check:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json",
"check:types": "tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
"fix:format": "prettier --write \"**/*.{ts,tsx,md,json,css,scss}\"",
"check:format": "pnpm exec oxfmt --check .",
"fix:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json --fix",
"fix:format": "pnpm exec oxfmt .",
"clean": "rm -rf .turbo && rm -rf .next && rm -rf node_modules && rm -rf dist"
},
"dependencies": {
"@plane/types": "workspace:*"
},
"devDependencies": {
"@plane/eslint-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@prettier/plugin-oxc": "0.0.4",
"@types/node": "catalog:",
"@types/react": "catalog:",
"tsdown": "catalog:",

View File

@@ -1,4 +0,0 @@
module.exports = {
root: true,
extends: ["@plane/eslint-config/library.js"],
};

View File

@@ -1,6 +0,0 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"plugins": ["@prettier/plugin-oxc"]
}

View File

@@ -12,17 +12,15 @@
"scripts": {
"build": "tsdown",
"dev": "tsdown --watch",
"check:lint": "eslint . --max-warnings 2",
"check:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json",
"check:types": "tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
"fix:format": "prettier --write \"**/*.{ts,tsx,md,json,css,scss}\"",
"check:format": "pnpm exec oxfmt --check .",
"fix:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json --fix",
"fix:format": "pnpm exec oxfmt .",
"clean": "rm -rf .turbo && rm -rf .next && rm -rf node_modules && rm -rf dist"
},
"devDependencies": {
"@plane/eslint-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@prettier/plugin-oxc": "0.0.4",
"@types/express": "4.17.23",
"@types/node": "catalog:",
"@types/ws": "^8.5.10",

View File

@@ -5,10 +5,9 @@
"emitDecoratorMetadata": true,
"lib": ["ES2020"],
"rootDir": ".",
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
"@/*": ["./src/*"],
},
},
"include": ["./src", "./*.ts"],
"exclude": ["dist", "build", "node_modules"]

View File

@@ -1,4 +0,0 @@
module.exports = {
root: true,
extends: ["@plane/eslint-config/library.js"],
};

View File

@@ -1,6 +0,0 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"plugins": ["@prettier/plugin-oxc"]
}

View File

@@ -18,11 +18,11 @@
"scripts": {
"build": "tsc && tsdown",
"dev": "tsdown --watch",
"check:lint": "eslint . --max-warnings 30",
"check:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json",
"check:types": "tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
"fix:format": "prettier --write \"**/*.{ts,tsx,md,json,css,scss}\"",
"check:format": "pnpm exec oxfmt --check .",
"fix:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json --fix",
"fix:format": "pnpm exec oxfmt .",
"clean": "rm -rf .turbo && rm -rf .next && rm -rf node_modules && rm -rf dist"
},
"peerDependencies": {
@@ -77,10 +77,8 @@
"yjs": "^13.6.20"
},
"devDependencies": {
"@plane/eslint-config": "workspace:*",
"@plane/tailwind-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@prettier/plugin-oxc": "0.0.4",
"@types/node": "catalog:",
"@types/react": "catalog:",
"@types/react-dom": "catalog:",

View File

@@ -1,7 +1,6 @@
{
"extends": "@plane/typescript-config/react-library.json",
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/core/*"],
"@/styles/*": ["./src/styles/*"],

View File

@@ -1,92 +0,0 @@
const { resolve } = require("node:path");
const project = resolve(process.cwd(), "tsconfig.json");
/** @type {import("eslint").Linter.Config} */
module.exports = {
extends: ["prettier", "plugin:@typescript-eslint/recommended"],
parser: "@typescript-eslint/parser",
plugins: ["react", "react-hooks", "@typescript-eslint", "import"],
globals: {
React: true,
JSX: true,
},
env: {
node: true,
browser: true,
},
settings: {
"import/resolver": {
typescript: {
project,
},
},
},
rules: {
"no-useless-escape": "off",
"prefer-const": "error",
"no-irregular-whitespace": "error",
"no-trailing-spaces": "error",
"import/no-duplicates": ["error", { considerQueryString: true }],
"no-useless-catch": "warn",
"no-case-declarations": "error",
"no-undef": "error",
"no-unreachable": "error",
"arrow-body-style": ["error", "as-needed"],
"@next/next/no-html-link-for-pages": "off",
"@next/next/no-img-element": "off",
"react/jsx-key": "error",
"react/self-closing-comp": ["error", { component: true, html: true }],
"react/jsx-boolean-value": "error",
"react/jsx-no-duplicate-props": "error",
"react-hooks/exhaustive-deps": "warn",
"import/consistent-type-specifier-style": ["error", "prefer-top-level"],
"@typescript-eslint/no-import-type-side-effects": "error",
"@typescript-eslint/consistent-type-imports": [
"error",
{
prefer: "type-imports",
fixStyle: "separate-type-imports",
disallowTypeAnnotations: false,
},
],
"@typescript-eslint/no-unused-expressions": "warn",
"@typescript-eslint/no-unused-vars": [
"warn",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_",
caughtErrorsIgnorePattern: "^_",
},
],
"@typescript-eslint/no-explicit-any": "warn",
"@typescript-eslint/no-useless-empty-export": "error",
"@typescript-eslint/prefer-ts-expect-error": "warn",
"import/order": [
"warn",
{
groups: ["builtin", "external", "internal", "parent", "sibling"],
pathGroups: [
{
pattern: "@plane/**",
group: "external",
position: "after",
},
{
pattern: "@/**",
group: "internal",
position: "before",
},
],
pathGroupsExcludedImportTypes: ["builtin", "internal", "react"],
alphabetize: {
order: "asc",
caseInsensitive: true,
},
},
],
},
ignorePatterns: [".*.js", "node_modules/", "dist/"],
};

View File

@@ -1,116 +0,0 @@
const { resolve } = require("node:path");
const project = resolve(process.cwd(), "tsconfig.json");
module.exports = {
extends: ["next", "prettier", "plugin:@typescript-eslint/recommended"],
parser: "@typescript-eslint/parser",
plugins: ["react", "@typescript-eslint", "import"],
globals: {
React: "readonly",
JSX: "readonly",
},
env: {
node: true,
browser: true,
},
settings: {
"import/resolver": {
typescript: {
project,
},
},
},
ignorePatterns: [".*.js", "node_modules/"],
rules: {
"no-useless-escape": "off",
"prefer-const": "error",
"no-irregular-whitespace": "error",
"no-trailing-spaces": "error",
"import/no-duplicates": ["error", { considerQueryString: true }],
"no-useless-catch": "warn",
"no-case-declarations": "error",
"no-undef": "error",
"no-unreachable": "error",
"arrow-body-style": ["error", "as-needed"],
"@next/next/no-html-link-for-pages": "off",
"@next/next/no-img-element": "off",
"react/jsx-key": "error",
"react/self-closing-comp": ["error", { component: true, html: true }],
"react/jsx-boolean-value": "error",
"react/jsx-no-duplicate-props": "error",
"react-hooks/exhaustive-deps": "warn",
"import/consistent-type-specifier-style": ["error", "prefer-top-level"],
"@typescript-eslint/no-import-type-side-effects": "error",
"@typescript-eslint/consistent-type-imports": [
"error",
{
prefer: "type-imports",
fixStyle: "separate-type-imports",
disallowTypeAnnotations: false,
},
],
"@typescript-eslint/no-unused-expressions": "warn",
"@typescript-eslint/no-unused-vars": [
"warn",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_",
caughtErrorsIgnorePattern: "^_",
},
],
"@typescript-eslint/no-explicit-any": "warn",
"@typescript-eslint/no-useless-empty-export": "error",
"@typescript-eslint/prefer-ts-expect-error": "warn",
"@typescript-eslint/naming-convention": [
"warn",
{
selector: "variable",
format: ["camelCase", "snake_case", "UPPER_CASE", "PascalCase"],
leadingUnderscore: "allow",
},
],
"import/order": [
"warn",
{
groups: ["builtin", "external", "internal", "parent", "sibling"],
pathGroups: [
{
pattern: "react",
group: "external",
position: "before",
},
{
pattern: "lucide-react",
group: "external",
position: "after",
},
{
pattern: "@headlessui/**",
group: "external",
position: "after",
},
{
pattern: "@plane/**",
group: "external",
position: "after",
},
{
pattern: "@/**",
group: "internal",
},
{
pattern: "public/**",
group: "internal",
position: "after",
},
],
pathGroupsExcludedImportTypes: ["builtin", "internal", "react"],
alphabetize: {
order: "asc",
caseInsensitive: true,
},
},
],
},
};

View File

@@ -1,23 +0,0 @@
{
"name": "@plane/eslint-config",
"private": true,
"version": "1.1.0",
"license": "AGPL-3.0",
"files": [
"library.js",
"next.js",
"server.js"
],
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^8.45.0",
"@typescript-eslint/parser": "^8.45.0",
"eslint": "8.57.1",
"eslint-config-next": "^14.1.0",
"eslint-config-prettier": "^10.1.8",
"eslint-config-turbo": "^2.5.8",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^6.1.1",
"typescript": "catalog:"
}
}

View File

@@ -1,69 +0,0 @@
const { resolve } = require("node:path");
const project = resolve(process.cwd(), "tsconfig.json");
module.exports = {
extends: ["prettier", "plugin:@typescript-eslint/recommended"],
parser: "@typescript-eslint/parser",
env: {
node: true,
es6: true,
},
plugins: ["@typescript-eslint", "import"],
settings: {
"import/resolver": {
typescript: {
project,
},
},
},
ignorePatterns: [".*.js", "node_modules/"],
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
},
rules: {
"@typescript-eslint/no-explicit-any": "warn",
"@typescript-eslint/no-unused-vars": [
"warn",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_",
caughtErrorsIgnorePattern: "^_",
},
],
"import/no-duplicates": ["error", { considerQueryString: true }],
"import/order": [
"warn",
{
groups: ["builtin", "external", "internal", "parent", "sibling"],
pathGroups: [
{
pattern: "@plane/**",
group: "external",
position: "after",
},
{
pattern: "@/**",
group: "internal",
position: "before",
},
],
pathGroupsExcludedImportTypes: ["builtin", "internal", "react"],
alphabetize: {
order: "asc",
caseInsensitive: true,
},
},
],
"import/consistent-type-specifier-style": ["error", "prefer-top-level"],
"@typescript-eslint/no-import-type-side-effects": "error",
"@typescript-eslint/consistent-type-imports": [
"error",
{
prefer: "type-imports",
fixStyle: "separate-type-imports",
disallowTypeAnnotations: false,
},
],
},
};

View File

@@ -1,4 +0,0 @@
module.exports = {
root: true,
extends: ["@plane/eslint-config/library.js"],
};

View File

@@ -1,6 +0,0 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"plugins": ["@prettier/plugin-oxc"]
}

View File

@@ -15,20 +15,18 @@
"scripts": {
"build": "tsdown",
"dev": "tsdown --watch",
"check:lint": "eslint . --max-warnings 6",
"check:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json",
"check:types": "tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
"fix:format": "prettier --write \"**/*.{ts,tsx,md,json,css,scss}\"",
"check:format": "pnpm exec oxfmt --check .",
"fix:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json --fix",
"fix:format": "pnpm exec oxfmt .",
"clean": "rm -rf .turbo && rm -rf .next && rm -rf node_modules && rm -rf dist"
},
"dependencies": {
"react": "catalog:"
},
"devDependencies": {
"@plane/eslint-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@prettier/plugin-oxc": "0.0.4",
"@types/node": "catalog:",
"@types/react": "catalog:",
"tsdown": "catalog:",

View File

@@ -1,4 +0,0 @@
module.exports = {
root: true,
extends: ["@plane/eslint-config/library.js"],
};

View File

@@ -1,6 +0,0 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"plugins": ["@prettier/plugin-oxc"]
}

View File

@@ -15,11 +15,11 @@
"scripts": {
"dev": "tsdown --watch",
"build": "tsdown",
"check:lint": "eslint . --max-warnings 2",
"check:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json",
"check:types": "tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
"fix:format": "prettier --write \"**/*.{ts,tsx,md,json,css,scss}\"",
"check:format": "pnpm exec oxfmt --check .",
"fix:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json --fix",
"fix:format": "pnpm exec oxfmt .",
"clean": "rm -rf .turbo && rm -rf .next && rm -rf node_modules && rm -rf dist"
},
"dependencies": {
@@ -31,9 +31,7 @@
"react": "catalog:"
},
"devDependencies": {
"@plane/eslint-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@prettier/plugin-oxc": "0.0.4",
"@types/lodash-es": "catalog:",
"@types/node": "catalog:",
"@types/react": "catalog:",

View File

@@ -1,4 +0,0 @@
module.exports = {
root: true,
extends: ["@plane/eslint-config/library.js"],
};

View File

@@ -1,6 +0,0 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"plugins": ["@prettier/plugin-oxc"]
}

View File

@@ -12,11 +12,11 @@
"scripts": {
"build": "tsdown",
"dev": "tsdown --watch",
"check:lint": "eslint . --max-warnings 0",
"check:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json",
"check:types": "tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
"fix:format": "prettier --write \"**/*.{ts,tsx,md,json,css,scss}\"",
"check:format": "pnpm exec oxfmt --check .",
"fix:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json --fix",
"fix:format": "pnpm exec oxfmt .",
"clean": "rm -rf .turbo && rm -rf .next && rm -rf node_modules && rm -rf dist"
},
"dependencies": {
@@ -24,9 +24,7 @@
"winston": "^3.17.0"
},
"devDependencies": {
"@plane/eslint-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@prettier/plugin-oxc": "0.0.4",
"@types/express": "4.17.23",
"@types/node": "catalog:",
"tsdown": "catalog:",

View File

@@ -1,7 +1,6 @@
{
"extends": "@plane/typescript-config/node-library.json",
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}

View File

@@ -1,29 +0,0 @@
module.exports = {
root: true,
extends: ["@plane/eslint-config/library.js", "plugin:storybook/recommended"],
rules: {
"import/order": [
"warn",
{
groups: ["builtin", "external", "internal", "parent", "sibling"],
pathGroups: [
{
pattern: "react",
group: "external",
position: "before",
},
{
pattern: "@plane/**",
group: "external",
position: "after",
},
],
pathGroupsExcludedImportTypes: ["builtin", "internal", "react"],
alphabetize: {
order: "asc",
caseInsensitive: true,
},
},
],
},
};

View File

@@ -1,6 +0,0 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"plugins": ["@prettier/plugin-oxc"]
}

View File

@@ -7,11 +7,11 @@
"scripts": {
"dev": "tsdown --watch",
"build": "tsdown",
"check:lint": "eslint . --max-warnings 7",
"check:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json",
"check:types": "tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
"fix:format": "prettier --write \"**/*.{ts,tsx,md,json,css,scss}\"",
"check:format": "pnpm exec oxfmt --check .",
"fix:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json --fix",
"fix:format": "pnpm exec oxfmt .",
"clean": "rm -rf .turbo && rm -rf .next && rm -rf node_modules && rm -rf dist",
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build"
@@ -79,16 +79,13 @@
"use-font-face-observer": "^1.3.0"
},
"devDependencies": {
"@plane/eslint-config": "workspace:*",
"@plane/tailwind-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@prettier/plugin-oxc": "0.0.4",
"@storybook/addon-designs": "10.0.2",
"@storybook/addon-docs": "9.1.10",
"@storybook/react-vite": "9.1.10",
"@types/react": "catalog:",
"@types/react-dom": "catalog:",
"eslint-plugin-storybook": "9.1.10",
"storybook": "9.1.10",
"tsdown": "catalog:",
"typescript": "catalog:"

View File

@@ -1,4 +0,0 @@
module.exports = {
root: true,
extends: ["@plane/eslint-config/library.js"],
};

View File

@@ -1,6 +0,0 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"plugins": ["@prettier/plugin-oxc"]
}

View File

@@ -14,11 +14,11 @@
"scripts": {
"build": "tsdown",
"dev": "tsdown --watch",
"check:lint": "eslint . --max-warnings 62",
"check:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json",
"check:types": "tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
"fix:format": "prettier --write \"**/*.{ts,tsx,md,json,css,scss}\"",
"check:format": "pnpm exec oxfmt --check .",
"fix:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json --fix",
"fix:format": "pnpm exec oxfmt .",
"clean": "rm -rf .turbo && rm -rf .next && rm -rf node_modules && rm -rf dist"
},
"dependencies": {
@@ -28,9 +28,7 @@
"file-type": "^21.0.0"
},
"devDependencies": {
"@plane/eslint-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@prettier/plugin-oxc": "0.0.4",
"tsdown": "catalog:",
"typescript": "catalog:"
},

View File

@@ -1,4 +0,0 @@
module.exports = {
root: true,
extends: ["@plane/eslint-config/library.js"],
};

View File

@@ -1,6 +0,0 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"plugins": ["@prettier/plugin-oxc"]
}

View File

@@ -7,11 +7,11 @@
"main": "./src/index.ts",
"types": "./src/index.ts",
"scripts": {
"check:lint": "eslint . --max-warnings 4",
"check:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json",
"check:types": "tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
"fix:format": "prettier --write \"**/*.{ts,tsx,md,json,css,scss}\"",
"check:format": "pnpm exec oxfmt --check .",
"fix:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json --fix",
"fix:format": "pnpm exec oxfmt .",
"clean": "rm -rf .turbo && rm -rf .next && rm -rf node_modules && rm -rf dist"
},
"dependencies": {
@@ -25,9 +25,7 @@
"zod": "^3.22.2"
},
"devDependencies": {
"@plane/eslint-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@prettier/plugin-oxc": "0.0.4",
"@types/lodash-es": "catalog:",
"@types/node": "catalog:",
"typescript": "catalog:"

View File

@@ -1,4 +0,0 @@
module.exports = {
root: true,
extends: ["@plane/eslint-config/library.js"],
};

View File

@@ -1,6 +0,0 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"plugins": ["@prettier/plugin-oxc"]
}

View File

@@ -11,11 +11,11 @@
"scripts": {
"dev": "tsdown --watch",
"build": "tsdown",
"check:lint": "eslint . --max-warnings 36",
"check:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json",
"check:types": "tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
"fix:format": "prettier --write \"**/*.{ts,tsx,md,json,css,scss}\"",
"check:format": "pnpm exec oxfmt --check .",
"fix:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json --fix",
"fix:format": "pnpm exec oxfmt .",
"clean": "rm -rf .turbo && rm -rf .next && rm -rf node_modules && rm -rf dist"
},
"peerDependencies": {
@@ -23,9 +23,7 @@
"react-dom": "catalog:"
},
"devDependencies": {
"@plane/eslint-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@prettier/plugin-oxc": "0.0.4",
"@types/node": "catalog:",
"@types/react": "catalog:",
"@types/react-dom": "catalog:",

View File

@@ -2,11 +2,7 @@
"$schema": "https://json.schemastore.org/tsconfig",
"compilerOptions": {
"target": "esnext",
"lib": [
"es2023",
"DOM",
"DOM.Iterable"
],
"lib": ["es2023", "DOM", "DOM.Iterable"],
"moduleDetection": "force",
"module": "preserve",
"moduleResolution": "bundler",
@@ -19,6 +15,9 @@
"isolatedModules": true,
"skipLibCheck": true,
"strict": true,
"noEmit": true
"noEmit": true,
"incremental": true,
"composite": true,
"tsBuildInfoFile": ".turbo/tsconfig.tsbuildinfo"
}
}

View File

@@ -1,4 +0,0 @@
module.exports = {
root: true,
extends: ["@plane/eslint-config/library.js"],
};

View File

@@ -1,6 +0,0 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"plugins": ["@prettier/plugin-oxc"]
}

View File

@@ -22,11 +22,11 @@
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build",
"postcss": "postcss styles/globals.css -o styles/output.css --watch",
"check:lint": "eslint . --max-warnings 94",
"check:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json",
"check:types": "tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
"fix:format": "prettier --write \"**/*.{ts,tsx,md,json,css,scss}\"",
"check:format": "pnpm exec oxfmt --check .",
"fix:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json --fix",
"fix:format": "pnpm exec oxfmt .",
"clean": "rm -rf .turbo && rm -rf .next && rm -rf node_modules && rm -rf dist"
},
"peerDependencies": {
@@ -57,10 +57,8 @@
},
"devDependencies": {
"@chromatic-com/storybook": "^1.4.0",
"@plane/eslint-config": "workspace:*",
"@plane/tailwind-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@prettier/plugin-oxc": "0.0.4",
"@storybook/addon-essentials": "^8.1.1",
"@storybook/addon-interactions": "^8.1.1",
"@storybook/addon-links": "^8.1.1",

View File

@@ -1,4 +0,0 @@
module.exports = {
root: true,
extends: ["@plane/eslint-config/library.js"],
};

View File

@@ -1,6 +0,0 @@
{
"printWidth": 120,
"tabWidth": 2,
"trailingComma": "es5",
"plugins": ["@prettier/plugin-oxc"]
}

View File

@@ -15,11 +15,11 @@
"scripts": {
"build": "tsdown",
"dev": "tsdown --watch",
"check:lint": "eslint . --max-warnings 20",
"check:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json",
"check:types": "tsc --noEmit",
"check:format": "prettier --check \"**/*.{ts,tsx,md,json,css,scss}\"",
"fix:lint": "eslint . --fix",
"fix:format": "prettier --write \"**/*.{ts,tsx,md,json,css,scss}\"",
"check:format": "pnpm exec oxfmt --check .",
"fix:lint": "pnpm exec oxlint . --config ../../.oxlintrc.json --type-aware --tsconfig ../../tsconfig.oxlint.json --fix",
"fix:format": "pnpm exec oxfmt .",
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
},
"dependencies": {
@@ -43,9 +43,7 @@
"uuid": "catalog:"
},
"devDependencies": {
"@plane/eslint-config": "workspace:*",
"@plane/typescript-config": "workspace:*",
"@prettier/plugin-oxc": "0.0.4",
"@types/hast": "^3.0.4",
"@types/lodash-es": "catalog:",
"@types/mdast": "^4.0.4",

2651
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

22
tsconfig.oxlint.json Normal file
View File

@@ -0,0 +1,22 @@
{
"files": [],
"references": [
{ "path": "./apps/admin/tsconfig.json" },
{ "path": "./apps/live/tsconfig.json" },
{ "path": "./apps/space/tsconfig.json" },
{ "path": "./apps/web/tsconfig.json" },
{ "path": "./packages/codemods/tsconfig.json" },
{ "path": "./packages/constants/tsconfig.json" },
{ "path": "./packages/decorators/tsconfig.json" },
{ "path": "./packages/editor/tsconfig.json" },
{ "path": "./packages/hooks/tsconfig.json" },
{ "path": "./packages/i18n/tsconfig.json" },
{ "path": "./packages/logger/tsconfig.json" },
{ "path": "./packages/propel/tsconfig.json" },
{ "path": "./packages/services/tsconfig.json" },
{ "path": "./packages/shared-state/tsconfig.json" },
{ "path": "./packages/types/tsconfig.json" },
{ "path": "./packages/ui/tsconfig.json" },
{ "path": "./packages/utils/tsconfig.json" }
]
}

View File

@@ -26,34 +26,71 @@
"VITE_SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE",
"VITE_APP_VERSION"
],
"globalDependencies": ["pnpm-lock.yaml", "pnpm-workspace.yaml", ".npmrc"],
"globalDependencies": [
"pnpm-lock.yaml",
"pnpm-workspace.yaml",
".npmrc"
],
"tasks": {
"build": {
"dependsOn": ["^build"],
"outputs": ["dist/**", "build/**"]
"dependsOn": [
"^build"
],
"outputs": [
"dist/**",
"build/**"
]
},
"build-storybook": {
"dependsOn": ["^build"],
"outputs": ["storybook-static/**"]
"dependsOn": [
"^build"
],
"outputs": [
"storybook-static/**"
]
},
"dev": {
"dependsOn": ["^build"],
"dependsOn": [
"^build"
],
"cache": false,
"persistent": true
},
"check:types": {
"dependsOn": ["^build"],
"dependsOn": [
"^build"
],
"cache": false
},
"check:lint": {
"oxlint": {
"cache": false,
"inputs": ["**/*", "!**/build/**", "!**/dist/**"]
"inputs": [
"**/*.{js,ts,tsx,mjs,jsx}",
"!**/node_modules/**",
"!**/build/**",
"!**/dist/**"
]
},
"check:lint": {
"dependsOn": [
"oxlint"
],
"cache": false,
"inputs": [
"**/*.{js,ts,tsx,mjs,jsx}",
"!**/build/**",
"!**/dist/**"
]
},
"check:format": {
"cache": false
},
"check": {
"dependsOn": ["check:format", "check:lint", "check:types"],
"dependsOn": [
"check:format",
"check:lint",
"check:types"
],
"cache": false
},
"fix:lint": {
@@ -63,11 +100,16 @@
"cache": false
},
"fix": {
"dependsOn": ["fix:format", "fix:lint"],
"dependsOn": [
"fix:format",
"fix:lint"
],
"cache": false
},
"test": {
"dependsOn": ["^build"],
"dependsOn": [
"^build"
],
"outputs": []
},
"start": {