Compare commits
3 Commits
copilot/bu
...
copilot/up
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ec63b5e903 | ||
|
|
3ec42bf207 | ||
|
|
c4193d52d3 |
@@ -1,96 +0,0 @@
|
|||||||
# Logs
|
|
||||||
logs
|
|
||||||
*.log
|
|
||||||
npm-debug.log*
|
|
||||||
yarn-debug.log*
|
|
||||||
yarn-error.log*
|
|
||||||
|
|
||||||
# Runtime data
|
|
||||||
pids
|
|
||||||
*.pid
|
|
||||||
*.seed
|
|
||||||
*.pid.lock
|
|
||||||
|
|
||||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
|
||||||
lib-cov
|
|
||||||
|
|
||||||
# Coverage directory used by tools like istanbul
|
|
||||||
coverage
|
|
||||||
|
|
||||||
# nyc test coverage
|
|
||||||
.nyc_output
|
|
||||||
|
|
||||||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
|
||||||
.grunt
|
|
||||||
|
|
||||||
# Bower dependency directory (https://bower.io/)
|
|
||||||
bower_components
|
|
||||||
|
|
||||||
# node-waf configuration
|
|
||||||
.lock-wscript
|
|
||||||
|
|
||||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
|
||||||
build/Release
|
|
||||||
|
|
||||||
# Dependency directories and management
|
|
||||||
node_modules/
|
|
||||||
jspm_packages/
|
|
||||||
package.json
|
|
||||||
package-lock.json
|
|
||||||
|
|
||||||
# TypeScript v1 declaration files
|
|
||||||
typings/
|
|
||||||
|
|
||||||
# Optional npm cache directory
|
|
||||||
.npm
|
|
||||||
|
|
||||||
# Optional eslint cache
|
|
||||||
.eslintcache
|
|
||||||
|
|
||||||
# Optional REPL history
|
|
||||||
.node_repl_history
|
|
||||||
|
|
||||||
# Output of 'npm pack'
|
|
||||||
*.tgz
|
|
||||||
|
|
||||||
# Yarn Integrity file
|
|
||||||
.yarn-integrity
|
|
||||||
|
|
||||||
# next.js build output
|
|
||||||
.next
|
|
||||||
|
|
||||||
# Webpack-built output
|
|
||||||
/dist
|
|
||||||
|
|
||||||
# Extension archives
|
|
||||||
/build
|
|
||||||
|
|
||||||
# VsCode
|
|
||||||
.vscode/*
|
|
||||||
!.vscode/launch.json
|
|
||||||
!.vscode/tasks.json
|
|
||||||
|
|
||||||
# macOS
|
|
||||||
.DS_Store
|
|
||||||
|
|
||||||
# Terraform
|
|
||||||
.terraform
|
|
||||||
|
|
||||||
# development dependencies
|
|
||||||
.dev/vue-devtools
|
|
||||||
.dev/browser-profiles
|
|
||||||
|
|
||||||
# IntelliJ
|
|
||||||
.idea
|
|
||||||
|
|
||||||
# Sylelint IntelliJ Plugin Requirement
|
|
||||||
.stylelintrc.json
|
|
||||||
|
|
||||||
# Local environment settings
|
|
||||||
.env.local
|
|
||||||
|
|
||||||
*.svg
|
|
||||||
|
|
||||||
config
|
|
||||||
.eslintrc.js
|
|
||||||
!.storybook
|
|
||||||
232
.eslintrc.cjs
232
.eslintrc.cjs
@@ -1,232 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
root: true,
|
|
||||||
env: {
|
|
||||||
browser: true,
|
|
||||||
es6: true,
|
|
||||||
node: true,
|
|
||||||
webextensions: true,
|
|
||||||
},
|
|
||||||
ignorePatterns: ['*.html', 'tsconfig.json'],
|
|
||||||
extends: [
|
|
||||||
'eslint:recommended',
|
|
||||||
'plugin:@typescript-eslint/recommended',
|
|
||||||
'plugin:react/recommended',
|
|
||||||
'plugin:react-hooks/recommended',
|
|
||||||
'plugin:storybook/recommended',
|
|
||||||
'airbnb-base',
|
|
||||||
'airbnb/rules/react',
|
|
||||||
'airbnb-typescript',
|
|
||||||
'@unocss',
|
|
||||||
'prettier',
|
|
||||||
],
|
|
||||||
plugins: [
|
|
||||||
'import',
|
|
||||||
'import-essentials',
|
|
||||||
'jsdoc',
|
|
||||||
'eslint-plugin-tsdoc',
|
|
||||||
'react-prefer-function-component',
|
|
||||||
'@typescript-eslint',
|
|
||||||
'simple-import-sort',
|
|
||||||
],
|
|
||||||
globals: {
|
|
||||||
Atomics: 'readonly',
|
|
||||||
SharedArrayBuffer: 'readonly',
|
|
||||||
debugger: true,
|
|
||||||
browser: true,
|
|
||||||
context: true,
|
|
||||||
JSX: true,
|
|
||||||
},
|
|
||||||
parser: '@typescript-eslint/parser',
|
|
||||||
parserOptions: {
|
|
||||||
project: './tsconfig.json',
|
|
||||||
ecmaVersion: 2022,
|
|
||||||
sourceType: 'module',
|
|
||||||
ecmaFeatures: {
|
|
||||||
jsx: true,
|
|
||||||
modules: true,
|
|
||||||
experimentalObjectRestSpread: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
settings: {
|
|
||||||
react: {
|
|
||||||
version: 'detect',
|
|
||||||
},
|
|
||||||
jsdoc: {
|
|
||||||
mode: 'typescript',
|
|
||||||
},
|
|
||||||
'import/parsers': {
|
|
||||||
'@typescript-eslint/parser': ['.ts', '.tsx'],
|
|
||||||
},
|
|
||||||
'import/resolver': {
|
|
||||||
typescript: {
|
|
||||||
alwaysTryTypes: true,
|
|
||||||
project: './tsconfig.json',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
rules: {
|
|
||||||
'prefer-const': [
|
|
||||||
'off',
|
|
||||||
{
|
|
||||||
destructuring: 'any',
|
|
||||||
ignoreReadBeforeAssign: false,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'no-plusplus': 'off',
|
|
||||||
'no-inner-declarations': 'off',
|
|
||||||
'sort-imports': 'off',
|
|
||||||
'no-case-declarations': 'off',
|
|
||||||
'no-unreachable': 'warn',
|
|
||||||
'no-constant-condition': 'error',
|
|
||||||
'space-before-function-paren': 'off',
|
|
||||||
'no-undef': 'off',
|
|
||||||
'no-return-await': 'off',
|
|
||||||
'@typescript-eslint/return-await': 'off',
|
|
||||||
'@typescript-eslint/no-shadow': ['off'],
|
|
||||||
'@typescript-eslint/no-use-before-define': ['off'],
|
|
||||||
'class-methods-use-this': 'off',
|
|
||||||
'react-hooks/exhaustive-deps': 'warn',
|
|
||||||
'@typescript-eslint/lines-between-class-members': 'off',
|
|
||||||
'no-param-reassign': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
props: false,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'no-console': 'off',
|
|
||||||
'consistent-return': 'off',
|
|
||||||
'react/destructuring-assignment': 'off',
|
|
||||||
'import/prefer-default-export': 'off',
|
|
||||||
'no-promise-executor-return': 'off',
|
|
||||||
'import/no-cycle': 'off',
|
|
||||||
'import/no-extraneous-dependencies': 'off',
|
|
||||||
'react/jsx-props-no-spreading': 'off',
|
|
||||||
'react/jsx-no-useless-fragment': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
allowExpressions: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'keyword-spacing': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
before: true,
|
|
||||||
after: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'no-continue': 'off',
|
|
||||||
'space-before-blocks': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
functions: 'always',
|
|
||||||
keywords: 'always',
|
|
||||||
classes: 'always',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'react/jsx-filename-extension': [
|
|
||||||
1,
|
|
||||||
{
|
|
||||||
extensions: ['.tsx'],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'react/no-deprecated': 'warn',
|
|
||||||
'react/prop-types': 'off',
|
|
||||||
'react-prefer-function-component/react-prefer-function-component': [
|
|
||||||
'warn',
|
|
||||||
{
|
|
||||||
allowComponentDidCatch: false,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'react/function-component-definition': 'off',
|
|
||||||
'react/button-has-type': 'off',
|
|
||||||
'jsdoc/require-param-type': 'off',
|
|
||||||
'jsdoc/require-returns-type': 'off',
|
|
||||||
'jsdoc/newline-after-description': 'off',
|
|
||||||
'react/require-default-props': 'off',
|
|
||||||
'jsdoc/require-jsdoc': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
enableFixer: false,
|
|
||||||
publicOnly: true,
|
|
||||||
checkConstructors: false,
|
|
||||||
require: {
|
|
||||||
ArrowFunctionExpression: true,
|
|
||||||
ClassDeclaration: true,
|
|
||||||
ClassExpression: true,
|
|
||||||
FunctionExpression: true,
|
|
||||||
},
|
|
||||||
contexts: [
|
|
||||||
'MethodDefinition:not([key.name="componentDidMount"]):not([key.name="render"])',
|
|
||||||
'ArrowFunctionExpression',
|
|
||||||
'ClassDeclaration',
|
|
||||||
'ClassExpression',
|
|
||||||
'ClassProperty:not([key.name="state"]):not([key.name="componentDidMount"])',
|
|
||||||
'FunctionDeclaration',
|
|
||||||
'FunctionExpression',
|
|
||||||
'TSDeclareFunction',
|
|
||||||
'TSEnumDeclaration',
|
|
||||||
'TSInterfaceDeclaration',
|
|
||||||
'TSMethodSignature',
|
|
||||||
'TSModuleDeclaration',
|
|
||||||
'TSTypeAliasDeclaration',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'tsdoc/syntax': 'error',
|
|
||||||
'@typescript-eslint/no-explicit-any': 'error',
|
|
||||||
'@typescript-eslint/no-unused-vars': [
|
|
||||||
'warn',
|
|
||||||
{
|
|
||||||
argsIgnorePattern: '^_',
|
|
||||||
varsIgnorePattern: '^_',
|
|
||||||
caughtErrorsIgnorePattern: '^_',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'@typescript-eslint/naming-convention': 'off',
|
|
||||||
'@typescript-eslint/space-before-function-paren': 'off',
|
|
||||||
'@typescript-eslint/ban-ts-comment': 'off',
|
|
||||||
'@typescript-eslint/no-empty-interface': 'warn',
|
|
||||||
'import/no-restricted-paths': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
zones: [
|
|
||||||
{
|
|
||||||
target: './src/background',
|
|
||||||
from: './src/views',
|
|
||||||
message:
|
|
||||||
'You cannot import into the `background` directory from the `views` directory (i.e. content script files) because it will break the build!',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
target: './src/views',
|
|
||||||
from: './src/background',
|
|
||||||
message:
|
|
||||||
'You cannot import into the `views` directory from the `background` directory (i.e. background script files) because it will break the build!',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
target: './src/shared',
|
|
||||||
from: './',
|
|
||||||
except: ['./src/shared', './node_modules'],
|
|
||||||
message: 'You cannot import into `shared` from an external directory.',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'import/extensions': 'off',
|
|
||||||
'no-restricted-syntax': [
|
|
||||||
'error',
|
|
||||||
'ForInStatement',
|
|
||||||
'LabeledStatement',
|
|
||||||
'WithStatement',
|
|
||||||
{
|
|
||||||
selector: 'TSEnumDeclaration',
|
|
||||||
message: "Don't declare enums",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
'@typescript-eslint/consistent-type-exports': 'error',
|
|
||||||
'@typescript-eslint/consistent-type-imports': 'error',
|
|
||||||
'simple-import-sort/imports': 'error',
|
|
||||||
'simple-import-sort/exports': 'error',
|
|
||||||
'import-essentials/restrict-import-depth': 'error',
|
|
||||||
'import-essentials/check-path-alias': 'error',
|
|
||||||
},
|
|
||||||
};
|
|
||||||
257
eslint.config.mjs
Normal file
257
eslint.config.mjs
Normal file
@@ -0,0 +1,257 @@
|
|||||||
|
import { fixupConfigRules } from '@eslint/compat';
|
||||||
|
import { FlatCompat } from '@eslint/eslintrc';
|
||||||
|
import js from '@eslint/js';
|
||||||
|
import importEssentials from 'eslint-plugin-import-essentials';
|
||||||
|
import jsdoc from 'eslint-plugin-jsdoc';
|
||||||
|
import reactPreferFunction from 'eslint-plugin-react-prefer-function-component';
|
||||||
|
import simpleImportSort from 'eslint-plugin-simple-import-sort';
|
||||||
|
import tsdoc from 'eslint-plugin-tsdoc';
|
||||||
|
import unocss from '@unocss/eslint-config/flat';
|
||||||
|
import path from 'node:path';
|
||||||
|
import { fileURLToPath } from 'node:url';
|
||||||
|
|
||||||
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
|
const __dirname = path.dirname(__filename);
|
||||||
|
|
||||||
|
const compat = new FlatCompat({
|
||||||
|
baseDirectory: __dirname,
|
||||||
|
recommendedConfig: js.configs.recommended,
|
||||||
|
});
|
||||||
|
|
||||||
|
export default [
|
||||||
|
{
|
||||||
|
ignores: ['*.html', 'tsconfig.json', 'dist/**', 'build/**', 'node_modules/**'],
|
||||||
|
},
|
||||||
|
js.configs.recommended,
|
||||||
|
...fixupConfigRules(
|
||||||
|
compat.extends(
|
||||||
|
'plugin:@typescript-eslint/recommended',
|
||||||
|
'plugin:react/recommended',
|
||||||
|
'plugin:react-hooks/recommended',
|
||||||
|
'plugin:storybook/recommended',
|
||||||
|
'airbnb-base',
|
||||||
|
'airbnb/rules/react',
|
||||||
|
'airbnb-typescript',
|
||||||
|
'prettier'
|
||||||
|
)
|
||||||
|
),
|
||||||
|
unocss,
|
||||||
|
{
|
||||||
|
plugins: {
|
||||||
|
'import-essentials': importEssentials,
|
||||||
|
jsdoc,
|
||||||
|
tsdoc,
|
||||||
|
'react-prefer-function-component': reactPreferFunction,
|
||||||
|
'simple-import-sort': simpleImportSort,
|
||||||
|
},
|
||||||
|
|
||||||
|
languageOptions: {
|
||||||
|
globals: {
|
||||||
|
Atomics: 'readonly',
|
||||||
|
SharedArrayBuffer: 'readonly',
|
||||||
|
debugger: true,
|
||||||
|
browser: true,
|
||||||
|
context: true,
|
||||||
|
JSX: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
ecmaVersion: 2022,
|
||||||
|
sourceType: 'module',
|
||||||
|
|
||||||
|
parserOptions: {
|
||||||
|
project: './tsconfig.json',
|
||||||
|
ecmaFeatures: {
|
||||||
|
jsx: true,
|
||||||
|
modules: true,
|
||||||
|
experimentalObjectRestSpread: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
settings: {
|
||||||
|
react: {
|
||||||
|
version: 'detect',
|
||||||
|
},
|
||||||
|
jsdoc: {
|
||||||
|
mode: 'typescript',
|
||||||
|
},
|
||||||
|
'import/parsers': {
|
||||||
|
'@typescript-eslint/parser': ['.ts', '.tsx'],
|
||||||
|
},
|
||||||
|
'import/resolver': {
|
||||||
|
typescript: {
|
||||||
|
alwaysTryTypes: true,
|
||||||
|
project: './tsconfig.json',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
rules: {
|
||||||
|
// Disable rules removed in @typescript-eslint v8
|
||||||
|
'@typescript-eslint/no-throw-literal': 'off',
|
||||||
|
'prefer-const': [
|
||||||
|
'off',
|
||||||
|
{
|
||||||
|
destructuring: 'any',
|
||||||
|
ignoreReadBeforeAssign: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'no-plusplus': 'off',
|
||||||
|
'no-inner-declarations': 'off',
|
||||||
|
'sort-imports': 'off',
|
||||||
|
'no-case-declarations': 'off',
|
||||||
|
'no-unreachable': 'warn',
|
||||||
|
'no-constant-condition': 'error',
|
||||||
|
'space-before-function-paren': 'off',
|
||||||
|
'no-undef': 'off',
|
||||||
|
'no-return-await': 'off',
|
||||||
|
'@typescript-eslint/return-await': 'off',
|
||||||
|
'@typescript-eslint/no-shadow': ['off'],
|
||||||
|
'@typescript-eslint/no-use-before-define': ['off'],
|
||||||
|
'class-methods-use-this': 'off',
|
||||||
|
'react-hooks/exhaustive-deps': 'warn',
|
||||||
|
'@typescript-eslint/lines-between-class-members': 'off',
|
||||||
|
'no-param-reassign': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
props: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'no-console': 'off',
|
||||||
|
'consistent-return': 'off',
|
||||||
|
'react/destructuring-assignment': 'off',
|
||||||
|
'import/prefer-default-export': 'off',
|
||||||
|
'no-promise-executor-return': 'off',
|
||||||
|
'import/no-cycle': 'off',
|
||||||
|
'import/no-extraneous-dependencies': 'off',
|
||||||
|
'react/jsx-props-no-spreading': 'off',
|
||||||
|
'react/jsx-no-useless-fragment': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
allowExpressions: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'keyword-spacing': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
before: true,
|
||||||
|
after: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'no-continue': 'off',
|
||||||
|
'space-before-blocks': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
functions: 'always',
|
||||||
|
keywords: 'always',
|
||||||
|
classes: 'always',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'react/jsx-filename-extension': [
|
||||||
|
1,
|
||||||
|
{
|
||||||
|
extensions: ['.tsx'],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'react/no-deprecated': 'warn',
|
||||||
|
'react/prop-types': 'off',
|
||||||
|
'react-prefer-function-component/react-prefer-function-component': [
|
||||||
|
'warn',
|
||||||
|
{
|
||||||
|
allowComponentDidCatch: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'react/function-component-definition': 'off',
|
||||||
|
'react/button-has-type': 'off',
|
||||||
|
'jsdoc/require-param-type': 'off',
|
||||||
|
'jsdoc/require-returns-type': 'off',
|
||||||
|
'jsdoc/newline-after-description': 'off',
|
||||||
|
'react/require-default-props': 'off',
|
||||||
|
'jsdoc/require-jsdoc': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
enableFixer: false,
|
||||||
|
publicOnly: true,
|
||||||
|
checkConstructors: false,
|
||||||
|
require: {
|
||||||
|
ArrowFunctionExpression: true,
|
||||||
|
ClassDeclaration: true,
|
||||||
|
ClassExpression: true,
|
||||||
|
FunctionExpression: true,
|
||||||
|
},
|
||||||
|
contexts: [
|
||||||
|
'MethodDefinition:not([key.name="componentDidMount"]):not([key.name="render"])',
|
||||||
|
'ArrowFunctionExpression',
|
||||||
|
'ClassDeclaration',
|
||||||
|
'ClassExpression',
|
||||||
|
'ClassProperty:not([key.name="state"]):not([key.name="componentDidMount"])',
|
||||||
|
'FunctionDeclaration',
|
||||||
|
'FunctionExpression',
|
||||||
|
'TSDeclareFunction',
|
||||||
|
'TSEnumDeclaration',
|
||||||
|
'TSInterfaceDeclaration',
|
||||||
|
'TSMethodSignature',
|
||||||
|
'TSModuleDeclaration',
|
||||||
|
'TSTypeAliasDeclaration',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'tsdoc/syntax': 'error',
|
||||||
|
'@typescript-eslint/no-explicit-any': 'error',
|
||||||
|
'@typescript-eslint/no-unused-vars': [
|
||||||
|
'warn',
|
||||||
|
{
|
||||||
|
argsIgnorePattern: '^_',
|
||||||
|
varsIgnorePattern: '^_',
|
||||||
|
caughtErrorsIgnorePattern: '^_',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'@typescript-eslint/naming-convention': 'off',
|
||||||
|
'@typescript-eslint/space-before-function-paren': 'off',
|
||||||
|
'@typescript-eslint/ban-ts-comment': 'off',
|
||||||
|
'@typescript-eslint/no-empty-interface': 'warn',
|
||||||
|
'import/no-restricted-paths': [
|
||||||
|
'error',
|
||||||
|
{
|
||||||
|
zones: [
|
||||||
|
{
|
||||||
|
target: './src/background',
|
||||||
|
from: './src/views',
|
||||||
|
message:
|
||||||
|
'You cannot import into the `background` directory from the `views` directory (i.e. content script files) because it will break the build!',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
target: './src/views',
|
||||||
|
from: './src/background',
|
||||||
|
message:
|
||||||
|
'You cannot import into the `views` directory from the `background` directory (i.e. background script files) because it will break the build!',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
target: './src/shared',
|
||||||
|
from: './',
|
||||||
|
except: ['./src/shared', './node_modules'],
|
||||||
|
message: 'You cannot import into `shared` from an external directory.',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'import/extensions': 'off',
|
||||||
|
'no-restricted-syntax': [
|
||||||
|
'error',
|
||||||
|
'ForInStatement',
|
||||||
|
'LabeledStatement',
|
||||||
|
'WithStatement',
|
||||||
|
{
|
||||||
|
selector: 'TSEnumDeclaration',
|
||||||
|
message: "Don't declare enums",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'@typescript-eslint/consistent-type-exports': 'error',
|
||||||
|
'@typescript-eslint/consistent-type-imports': 'error',
|
||||||
|
'simple-import-sort/imports': 'error',
|
||||||
|
'simple-import-sort/exports': 'error',
|
||||||
|
'import-essentials/restrict-import-depth': 'error',
|
||||||
|
'import-essentials/check-path-alias': 'error',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
29
package.json
29
package.json
@@ -15,8 +15,8 @@
|
|||||||
"zip:to-publish": "SENTRY_ENV='production' pnpm zip",
|
"zip:to-publish": "SENTRY_ENV='production' pnpm zip",
|
||||||
"prettier": "prettier src --check",
|
"prettier": "prettier src --check",
|
||||||
"prettier:fix": "prettier src --write",
|
"prettier:fix": "prettier src --write",
|
||||||
"lint": "eslint src --ext ts,tsx --report-unused-disable-directives",
|
"lint": "eslint src --report-unused-disable-directives",
|
||||||
"lint:fix": "eslint src --ext ts,tsx --report-unused-disable-directives --fix",
|
"lint:fix": "eslint src --report-unused-disable-directives --fix",
|
||||||
"check-types": "tsc --noEmit",
|
"check-types": "tsc --noEmit",
|
||||||
"test": "vitest",
|
"test": "vitest",
|
||||||
"test:ui": "vitest --ui",
|
"test:ui": "vitest --ui",
|
||||||
@@ -67,6 +67,9 @@
|
|||||||
"@commitlint/config-conventional": "^19.7.1",
|
"@commitlint/config-conventional": "^19.7.1",
|
||||||
"@commitlint/types": "^19.5.0",
|
"@commitlint/types": "^19.5.0",
|
||||||
"@crxjs/vite-plugin": "2.0.0-beta.21",
|
"@crxjs/vite-plugin": "2.0.0-beta.21",
|
||||||
|
"@eslint/compat": "^2.0.0",
|
||||||
|
"@eslint/eslintrc": "^3.3.1",
|
||||||
|
"@eslint/js": "^9.39.1",
|
||||||
"@iconify-json/bi": "^1.2.2",
|
"@iconify-json/bi": "^1.2.2",
|
||||||
"@iconify-json/ic": "^1.2.2",
|
"@iconify-json/ic": "^1.2.2",
|
||||||
"@iconify-json/iconoir": "^1.2.7",
|
"@iconify-json/iconoir": "^1.2.7",
|
||||||
@@ -96,8 +99,8 @@
|
|||||||
"@types/semantic-release": "^20.0.6",
|
"@types/semantic-release": "^20.0.6",
|
||||||
"@types/semver": "^7.5.8",
|
"@types/semver": "^7.5.8",
|
||||||
"@types/sql.js": "^1.4.9",
|
"@types/sql.js": "^1.4.9",
|
||||||
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
"@typescript-eslint/eslint-plugin": "^8.47.0",
|
||||||
"@typescript-eslint/parser": "^7.18.0",
|
"@typescript-eslint/parser": "^8.47.0",
|
||||||
"@unocss/eslint-config": "^0.63.6",
|
"@unocss/eslint-config": "^0.63.6",
|
||||||
"@unocss/postcss": "^0.63.6",
|
"@unocss/postcss": "^0.63.6",
|
||||||
"@unocss/preset-uno": "^0.63.6",
|
"@unocss/preset-uno": "^0.63.6",
|
||||||
@@ -114,29 +117,29 @@
|
|||||||
"cssnano-preset-advanced": "^7.0.6",
|
"cssnano-preset-advanced": "^7.0.6",
|
||||||
"dotenv": "^16.4.7",
|
"dotenv": "^16.4.7",
|
||||||
"es-module-lexer": "^1.6.0",
|
"es-module-lexer": "^1.6.0",
|
||||||
"eslint": "^8.57.1",
|
"eslint": "^9.39.1",
|
||||||
"eslint-config-airbnb": "^19.0.4",
|
"eslint-config-airbnb": "^19.0.4",
|
||||||
"eslint-config-airbnb-base": "^15.0.0",
|
"eslint-config-airbnb-base": "^15.0.0",
|
||||||
"eslint-config-airbnb-typescript": "^18.0.0",
|
"eslint-config-airbnb-typescript": "^18.0.0",
|
||||||
"eslint-config-prettier": "^9.1.0",
|
"eslint-config-prettier": "^10.1.8",
|
||||||
"eslint-import-resolver-typescript": "^3.8.3",
|
"eslint-import-resolver-typescript": "^4.4.4",
|
||||||
"eslint-plugin-import": "^2.31.0",
|
"eslint-plugin-import": "^2.32.0",
|
||||||
"eslint-plugin-import-essentials": "^0.2.1",
|
"eslint-plugin-import-essentials": "^0.2.1",
|
||||||
"eslint-plugin-jsdoc": "^50.6.3",
|
"eslint-plugin-jsdoc": "^61.2.1",
|
||||||
"eslint-plugin-prettier": "^5.2.3",
|
"eslint-plugin-prettier": "^5.2.3",
|
||||||
"eslint-plugin-react": "^7.37.4",
|
"eslint-plugin-react": "^7.37.5",
|
||||||
"eslint-plugin-react-hooks": "^4.6.2",
|
"eslint-plugin-react-hooks": "^7.0.1",
|
||||||
"eslint-plugin-react-prefer-function-component": "^3.4.0",
|
"eslint-plugin-react-prefer-function-component": "^3.4.0",
|
||||||
"eslint-plugin-react-refresh": "^0.4.19",
|
"eslint-plugin-react-refresh": "^0.4.19",
|
||||||
"eslint-plugin-simple-import-sort": "^12.1.1",
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
||||||
"eslint-plugin-storybook": "^0.9.0",
|
"eslint-plugin-storybook": "^10.0.8",
|
||||||
"eslint-plugin-tsdoc": "^0.3.0",
|
"eslint-plugin-tsdoc": "^0.3.0",
|
||||||
"gulp": "^5.0.0",
|
"gulp": "^5.0.0",
|
||||||
"gulp-execa": "^7.0.1",
|
"gulp-execa": "^7.0.1",
|
||||||
"gulp-zip": "^6.1.0",
|
"gulp-zip": "^6.1.0",
|
||||||
"path": "^0.12.7",
|
"path": "^0.12.7",
|
||||||
"postcss": "^8.5.3",
|
"postcss": "^8.5.3",
|
||||||
"prettier": "^3.5.2",
|
"prettier": "^3.6.2",
|
||||||
"react-dev-utils": "^12.0.1",
|
"react-dev-utils": "^12.0.1",
|
||||||
"semantic-release": "^24.2.3",
|
"semantic-release": "^24.2.3",
|
||||||
"storybook": "^8.6.0",
|
"storybook": "^8.6.0",
|
||||||
|
|||||||
1717
pnpm-lock.yaml
generated
1717
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user