diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 7654442..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "env": { - "browser": true, - "es2021": true, - "node": true - }, - "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"], - "overrides": [], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": "latest", - "sourceType": "module" - }, - "plugins": ["@typescript-eslint", "simple-import-sort"], - "rules": { - "@typescript-eslint/ban-ts-comment": "off", - "@typescript-eslint/ban-types": "warn", - "@typescript-eslint/no-empty-function": "off", - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-unused-vars": [ - "warn", - { - "argsIgnorePattern": "^_", - "varsIgnorePattern": "^_", - "caughtErrorsIgnorePattern": "^_" - } - ], - "@typescript-eslint/no-non-null-assertion": "off", - "linebreak-style": ["error", "unix"], - "no-empty": "warn", - "no-empty-function": "off", - "no-empty-pattern": "warn", - "react/react-in-jsx-scope": "off", - "simple-import-sort/imports": [ - "warn", - { - "groups": [["^\\w"], ["^@\\w+"], ["^@/"], ["^\\."]] - } - ] - } -} diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 9aa805f..0000000 --- a/.prettierrc +++ /dev/null @@ -1,11 +0,0 @@ -{ - "semi": false, - "arrowParens": "avoid", - "trailingComma": "all", - "jsxSingleQuote": false, - "printWidth": 100, - "singleAttributePerLine": true, - "bracketSameLine": true, - "useTabs": true, - "tabWidth": 4 -} \ No newline at end of file diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..7d5fd83 --- /dev/null +++ b/biome.json @@ -0,0 +1,137 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.8.3/schema.json", + "formatter": { + "enabled": true, + "formatWithErrors": false, + "indentStyle": "tab", + "indentWidth": 4, + "lineEnding": "lf", + "lineWidth": 100, + "attributePosition": "auto" + }, + "organizeImports": { "enabled": true }, + "linter": { + "enabled": true, + "rules": { + "recommended": false, + "complexity": { + "noBannedTypes": "warn", + "noExtraBooleanCast": "error", + "noMultipleSpacesInRegularExpressionLiterals": "error", + "noUselessCatch": "error", + "noUselessThisAlias": "error", + "noUselessTypeConstraint": "error", + "noWith": "error" + }, + "correctness": { + "noConstAssign": "error", + "noConstantCondition": "error", + "noEmptyCharacterClassInRegex": "error", + "noEmptyPattern": "warn", + "noGlobalObjectCalls": "error", + "noInvalidConstructorSuper": "error", + "noInvalidNewBuiltin": "error", + "noNonoctalDecimalEscape": "error", + "noPrecisionLoss": "error", + "noSelfAssign": "error", + "noSetterReturn": "error", + "noSwitchDeclarations": "error", + "noUndeclaredVariables": "error", + "noUnreachable": "error", + "noUnreachableSuper": "error", + "noUnsafeFinally": "error", + "noUnsafeOptionalChaining": "error", + "noUnusedLabels": "error", + "noUnusedPrivateClassMembers": "error", + "noUnusedVariables": "error", + "useArrayLiterals": "off", + "useIsNan": "error", + "useValidForDirection": "error", + "useYield": "error" + }, + "style": { + "noNamespace": "error", + "noNonNullAssertion": "off", + "useAsConstAssertion": "error", + "useBlockStatements": "off" + }, + "suspicious": { + "noAssignInExpressions": "error", + "noAsyncPromiseExecutor": "error", + "noCatchAssign": "error", + "noClassAssign": "error", + "noCompareNegZero": "error", + "noControlCharactersInRegex": "error", + "noDebugger": "error", + "noDuplicateCase": "error", + "noDuplicateClassMembers": "error", + "noDuplicateObjectKeys": "error", + "noDuplicateParameters": "error", + "noEmptyBlockStatements": "error", + "noExplicitAny": "off", + "noExtraNonNullAssertion": "error", + "noFallthroughSwitchClause": "error", + "noFunctionAssign": "error", + "noGlobalAssign": "error", + "noImportAssign": "error", + "noMisleadingCharacterClass": "error", + "noMisleadingInstantiator": "error", + "noPrototypeBuiltins": "error", + "noRedeclare": "error", + "noShadowRestrictedNames": "error", + "noUnsafeDeclarationMerging": "error", + "noUnsafeNegation": "error", + "useGetterReturn": "error", + "useValidTypeof": "error" + } + } + }, + "javascript": { + "formatter": { + "jsxQuoteStyle": "double", + "quoteProperties": "asNeeded", + "trailingCommas": "all", + "semicolons": "asNeeded", + "arrowParentheses": "asNeeded", + "bracketSpacing": true, + "bracketSameLine": false, + "quoteStyle": "double", + "attributePosition": "auto" + } + }, + "overrides": [ + { + "include": ["*.ts", "*.tsx", "*.mts", "*.cts"], + "linter": { + "rules": { + "correctness": { + "noConstAssign": "off", + "noGlobalObjectCalls": "off", + "noInvalidConstructorSuper": "off", + "noInvalidNewBuiltin": "off", + "noNewSymbol": "off", + "noSetterReturn": "off", + "noUndeclaredVariables": "off", + "noUnreachable": "off", + "noUnreachableSuper": "off" + }, + "style": { + "noArguments": "error", + "noVar": "error", + "useConst": "error" + }, + "suspicious": { + "noDuplicateClassMembers": "off", + "noDuplicateObjectKeys": "off", + "noDuplicateParameters": "off", + "noFunctionAssign": "off", + "noImportAssign": "off", + "noRedeclare": "off", + "noUnsafeNegation": "off", + "useGetterReturn": "off" + } + } + } + } + ] +} diff --git a/bun.lockb b/bun.lockb index 5f0fac4..a57375b 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/package.json b/package.json index 420cda1..faeb83e 100644 --- a/package.json +++ b/package.json @@ -5,9 +5,7 @@ "main": "./dist/cjs/index.js", "module": "./dist/esm/index.js", "types": "./dist/types/index.d.ts", - "files": [ - "dist" - ], + "files": ["dist"], "author": "zS1L3NT (http://www.zectan.com)", "license": "GPL-3.0", "repository": { @@ -24,28 +22,18 @@ }, "scripts": { "build": "tsup src/index.ts --dts --format cjs,esm --clean --out-dir dist", - "clean": "tsc --noEmit && eslint src --fix && prettier src --write && rm tsconfig.tsbuildinfo" + "lint": "tsc --noEmit && rm tsconfig.tsbuildinfo ; biome format --write" }, "dependencies": { - "arktype": "1.0.29-alpha", - "axios": "^0.27.2", - "tough-cookie": "^4.1.2" + "@biomejs/biome": "1.8.3", + "axios": "^1.7.2", + "tough-cookie": "^4.1.4" }, "devDependencies": { - "@types/tough-cookie": "^4.0.2", - "@typescript-eslint/eslint-plugin": "latest", - "@typescript-eslint/parser": "latest", - "bun-types": "^1.0.18-1", - "eslint": "latest", - "eslint-config-prettier": "latest", - "eslint-plugin-simple-import-sort": "latest", - "prettier": "latest", - "tsup": "^8.0.2", - "typescript": "latest" + "@types/tough-cookie": "^4.0.5", + "bun-types": "^1.1.18", + "tsup": "^8.1.0", + "typescript": "5.1" }, - "keywords": [ - "youtube", - "music", - "api" - ] + "keywords": ["youtube", "music", "api"] } diff --git a/tsconfig.json b/tsconfig.json index aa8361c..0e97510 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -30,12 +30,13 @@ "allowUnusedLabels": true, "resolveJsonModule": true, "forceConsistentCasingInFileNames": true, + "exactOptionalPropertyTypes": true, /** Other */ // "noEmit": false, // "allowJs": true, // "jsx": "react-jsx", - // "skipLibCheck": true, + "skipLibCheck": true // "isolatedModules": true, // "incremental": true },