From 12269149b0306135f7d5ba348af22ba78f813c4f Mon Sep 17 00:00:00 2001 From: Septs Date: Thu, 14 Apr 2022 17:54:28 +0800 Subject: [PATCH 1/3] chore: improve eslint --- package.json | 4 ++-- packages/.eslintrc.json | 19 ++++++++++++------- .../Settings/components/LanguageSetting.tsx | 10 +++++----- .../dashboard/src/utils/checkLengthExceed.ts | 2 +- .../payload_internal/version-38.encoder.ts | 2 +- .../src/payload_internal/version-38.parser.ts | 2 +- .../src/payload_internal/version-39.ts | 2 +- .../src/payload_internal/version-40.ts | 2 +- .../background/services/crypto/comment.ts | 2 +- packages/mask/src/plugins/ArtBlocks/types.ts | 2 +- .../ITO/SNSAdaptor/ExchangeTokenPanel.tsx | 2 ++ .../src/plugins/ITO/SNSAdaptor/SwapDialog.tsx | 1 + .../mask/src/plugins/Pets/SNSAdaptor/Drag.tsx | 1 + .../Trader/trending/useCurrentDataProvider.ts | 6 +++++- .../src/plugins/UnlockProtocol/Services.ts | 6 +++--- .../twitter.com/injection/PostInspector.tsx | 2 +- packages/mask/src/utils/getTextUILength.ts | 2 +- .../mask/src/utils/type-transform/Payload.ts | 2 +- packages/plugin-infra/src/types.ts | 2 +- .../plugins/example/src/SNSAdaptor/index.tsx | 2 +- packages/shared-base/src/Identifier/type.ts | 1 + .../UI/components/ERC20TokenList/index.tsx | 1 + .../useERC20TokensDetailedFromTokenLists.ts | 1 + pnpm-lock.yaml | 9 ++++----- 24 files changed, 50 insertions(+), 35 deletions(-) diff --git a/package.json b/package.json index f59ab2f12197..556b687e584e 100644 --- a/package.json +++ b/package.json @@ -47,8 +47,8 @@ "lodash-unified": "1.0.2", "react": "18.0.0", "react-dom": "18.0.0", - "ses": "0.15.12", "react-i18next": "^11.16.5", + "ses": "0.15.12", "ts-results": "3.3.0", "web3-core": "1.7.3", "web3-core-method": "1.7.3" @@ -56,7 +56,7 @@ "devDependencies": { "@commitlint/cli": "^16.2.3", "@commitlint/config-conventional": "^16.2.1", - "@dimensiondev/eslint-plugin": "^0.0.1-20220117062517-fd3cb01", + "@dimensiondev/eslint-plugin": "^0.0.2-20220414093950-7d54c58", "@dimensiondev/patch-package": "^6.5.0", "@jest/globals": "^28.0.0-alpha.8", "@magic-works/i18n-codegen": "^0.1.0", diff --git a/packages/.eslintrc.json b/packages/.eslintrc.json index 381d7bb585fb..62fd8727a79a 100644 --- a/packages/.eslintrc.json +++ b/packages/.eslintrc.json @@ -65,15 +65,20 @@ "unicorn/prefer-number-properties": "error", "unicorn/relative-url-style": ["error", "always"], "unicorn/throw-new-error": "error", - "@dimensiondev/no-jsx-template-literal": "error", - "@dimensiondev/no-locale-case": "error", + "@dimensiondev/browser/prefer-location-assign": "error", + "@dimensiondev/jsx/no-class-component": "error", + "@dimensiondev/jsx/no-template-literal": "error", "@dimensiondev/no-number-constructor": "off", - "@dimensiondev/no-simple-string-interpolation": "off", - "@dimensiondev/no-simple-template-literal": "error", - "@dimensiondev/no-unneeded-to-string": "error", "@dimensiondev/prefer-early-return": "error", - "@dimensiondev/prefer-location-assign": "error", - "@dimensiondev/unicode-specific-set": "error", + "@dimensiondev/string/no-interpolation": "off", + "@dimensiondev/array/no-implicit-sort": "error", + "@dimensiondev/string/no-locale-case": "error", + "@dimensiondev/string/no-simple-template-literal": "error", + "@dimensiondev/string/no-unneeded-to-string": "error", + "@dimensiondev/type/no-bigint": "error", + "@dimensiondev/type/no-instanceof-wrapper": "error", + "@dimensiondev/type/no-wrapper-type-reference": "error", + "@dimensiondev/unicode/specific-set": "error", "@typescript-eslint/await-thenable": "error", "@typescript-eslint/no-base-to-string": "off", "@typescript-eslint/no-for-in-array": "error", diff --git a/packages/dashboard/src/pages/Settings/components/LanguageSetting.tsx b/packages/dashboard/src/pages/Settings/components/LanguageSetting.tsx index b42acd393933..d2553cae27e2 100644 --- a/packages/dashboard/src/pages/Settings/components/LanguageSetting.tsx +++ b/packages/dashboard/src/pages/Settings/components/LanguageSetting.tsx @@ -1,4 +1,4 @@ -/* eslint-disable @dimensiondev/unicode-specific-set */ +/* eslint-disable @dimensiondev/unicode/specific-set */ import { MenuItem } from '@mui/material' import { useLanguage } from '../api' import { Services } from '../../../API' @@ -19,10 +19,10 @@ export default function LanguageSetting() { {t.settings_language_auto()} English - 简体中文 - 繁体中文 - 日本語 - 한국인 + 简体中文 + 繁体中文 + 日本語 + 한국인 ) } diff --git a/packages/dashboard/src/utils/checkLengthExceed.ts b/packages/dashboard/src/utils/checkLengthExceed.ts index 6dae8832c2be..ea79788a59ff 100644 --- a/packages/dashboard/src/utils/checkLengthExceed.ts +++ b/packages/dashboard/src/utils/checkLengthExceed.ts @@ -1,4 +1,4 @@ -/* eslint @dimensiondev/unicode-specific-set: ["error", { "only": "code" }] */ +/* eslint @dimensiondev/unicode/specific-set: ["error", { "only": "code" }] */ export const PERSONA_NAME_MAX_LENGTH = 24 export function isPersonaNameLengthValid(value: string) { // Array.from(string).length is not equal to string.length. diff --git a/packages/encryption/src/payload_internal/version-38.encoder.ts b/packages/encryption/src/payload_internal/version-38.encoder.ts index 8b25e1e8ddc8..b58fe2bc478a 100644 --- a/packages/encryption/src/payload_internal/version-38.encoder.ts +++ b/packages/encryption/src/payload_internal/version-38.encoder.ts @@ -1,4 +1,4 @@ -/* eslint @dimensiondev/unicode-specific-set: ["error", { "only": "code" }] */ +/* eslint @dimensiondev/unicode/specific-set: ["error", { "only": "code" }] */ import { encodeText, encodeArrayBuffer } from '@dimensiondev/kit' import { Ok, Option, Result } from 'ts-results' import type { PayloadWellFormed, Signature } from '..' diff --git a/packages/encryption/src/payload_internal/version-38.parser.ts b/packages/encryption/src/payload_internal/version-38.parser.ts index fe06e2a7a306..3145e58c77e6 100644 --- a/packages/encryption/src/payload_internal/version-38.parser.ts +++ b/packages/encryption/src/payload_internal/version-38.parser.ts @@ -1,4 +1,4 @@ -/* eslint @dimensiondev/unicode-specific-set: ["error", { "only": "code" }] */ +/* eslint @dimensiondev/unicode/specific-set: ["error", { "only": "code" }] */ import { EC_Key, PayloadParseResult, EC_KeyCurveEnum, Signature } from '../payload' import { CryptoException, PayloadException } from '../types' import { Result, Ok, Some } from 'ts-results' diff --git a/packages/encryption/src/payload_internal/version-39.ts b/packages/encryption/src/payload_internal/version-39.ts index 2ceca755aab5..7e67c2a668ce 100644 --- a/packages/encryption/src/payload_internal/version-39.ts +++ b/packages/encryption/src/payload_internal/version-39.ts @@ -1,4 +1,4 @@ -/* eslint @dimensiondev/unicode-specific-set: ["error", { "only": "code" }] */ +/* eslint @dimensiondev/unicode/specific-set: ["error", { "only": "code" }] */ import { parse40 } from './version-40' import { PayloadException } from '../types' import type { PayloadParserResult } from '.' diff --git a/packages/encryption/src/payload_internal/version-40.ts b/packages/encryption/src/payload_internal/version-40.ts index f406bde07d47..a8d19b22684a 100644 --- a/packages/encryption/src/payload_internal/version-40.ts +++ b/packages/encryption/src/payload_internal/version-40.ts @@ -1,4 +1,4 @@ -/* eslint @dimensiondev/unicode-specific-set: ["error", { "only": "code" }] */ +/* eslint @dimensiondev/unicode/specific-set: ["error", { "only": "code" }] */ import type { PayloadParseResult, Signature } from '../payload' import { Ok } from 'ts-results' import { PayloadException } from '../types' diff --git a/packages/mask/background/services/crypto/comment.ts b/packages/mask/background/services/crypto/comment.ts index a1f6eccb53d6..2ae8763bc85b 100644 --- a/packages/mask/background/services/crypto/comment.ts +++ b/packages/mask/background/services/crypto/comment.ts @@ -1,7 +1,7 @@ import { encodeArrayBuffer, decodeText, decodeArrayBuffer, encodeText } from '@dimensiondev/kit' import type { AESCryptoKey } from '@masknet/shared-base' -// eslint-disable-next-line @dimensiondev/unicode-specific-set +// eslint-disable-next-line @dimensiondev/unicode/specific-set // * Payload format: 🎶2/4|encrypted_comment:|| export async function encryptComment(postIV: Uint8Array, postContent: string, comment: string): Promise { const key = await getCommentKey(postIV, postContent) diff --git a/packages/mask/src/plugins/ArtBlocks/types.ts b/packages/mask/src/plugins/ArtBlocks/types.ts index a405158b419f..faf62da8a3df 100644 --- a/packages/mask/src/plugins/ArtBlocks/types.ts +++ b/packages/mask/src/plugins/ArtBlocks/types.ts @@ -1,5 +1,5 @@ export interface Token { - tokenId: BigInt + tokenId: bigint contract: Contract project: Project } diff --git a/packages/mask/src/plugins/ITO/SNSAdaptor/ExchangeTokenPanel.tsx b/packages/mask/src/plugins/ITO/SNSAdaptor/ExchangeTokenPanel.tsx index 976730baf092..04c9aea604d3 100644 --- a/packages/mask/src/plugins/ITO/SNSAdaptor/ExchangeTokenPanel.tsx +++ b/packages/mask/src/plugins/ITO/SNSAdaptor/ExchangeTokenPanel.tsx @@ -91,7 +91,9 @@ export function ExchangeTokenPanel(props: ExchangeTokenPanelProps) { isSell, dataIndex, exchangeToken?.address, + // eslint-disable-next-line @dimensiondev/array/no-implicit-sort excludeTokensAddress.sort().join(), + // eslint-disable-next-line @dimensiondev/array/no-implicit-sort selectedTokensAddress.sort().join(), ]) // #endregion diff --git a/packages/mask/src/plugins/ITO/SNSAdaptor/SwapDialog.tsx b/packages/mask/src/plugins/ITO/SNSAdaptor/SwapDialog.tsx index de1be2f70f98..7b46e8eeb7e3 100644 --- a/packages/mask/src/plugins/ITO/SNSAdaptor/SwapDialog.tsx +++ b/packages/mask/src/plugins/ITO/SNSAdaptor/SwapDialog.tsx @@ -159,6 +159,7 @@ export function SwapDialog(props: SwapDialogProps) { pickToken, exchangeTokens .map((x) => x.address) + // eslint-disable-next-line @dimensiondev/array/no-implicit-sort .sort() .join(), ]) diff --git a/packages/mask/src/plugins/Pets/SNSAdaptor/Drag.tsx b/packages/mask/src/plugins/Pets/SNSAdaptor/Drag.tsx index 5ab3a54fd214..86ecf768e47a 100644 --- a/packages/mask/src/plugins/Pets/SNSAdaptor/Drag.tsx +++ b/packages/mask/src/plugins/Pets/SNSAdaptor/Drag.tsx @@ -23,6 +23,7 @@ interface DraggableProps { } // TODO: move to function components +// eslint-disable-next-line @dimensiondev/jsx/no-class-component -- TODO: need refactor class Draggable extends React.PureComponent> { ref = React.createRef() mouseMoveFuc = this.onMouseMove.bind(this) diff --git a/packages/mask/src/plugins/Trader/trending/useCurrentDataProvider.ts b/packages/mask/src/plugins/Trader/trending/useCurrentDataProvider.ts index e97dd79948db..44fc3dce988d 100644 --- a/packages/mask/src/plugins/Trader/trending/useCurrentDataProvider.ts +++ b/packages/mask/src/plugins/Trader/trending/useCurrentDataProvider.ts @@ -13,6 +13,10 @@ export function useCurrentDataProvider(availableDataProviders: DataProvider[]) { setDataProvider( availableDataProviders.includes(currentDataProvider) ? currentDataProvider : availableDataProviders[0], ) - }, [availableDataProviders.sort().join(), currentDataProvider]) + }, [ + // eslint-disable-next-line @dimensiondev/array/no-implicit-sort + availableDataProviders.sort().join(), + currentDataProvider, + ]) return dataProvider } diff --git a/packages/mask/src/plugins/UnlockProtocol/Services.ts b/packages/mask/src/plugins/UnlockProtocol/Services.ts index 8b1de158d263..f18ca77677b2 100644 --- a/packages/mask/src/plugins/UnlockProtocol/Services.ts +++ b/packages/mask/src/plugins/UnlockProtocol/Services.ts @@ -21,7 +21,7 @@ export interface verifyHolderResponse { }[] } -const verifyHolder = async (_lockAddress: String, _holder: String, _chain: number) => { +const verifyHolder = async (_lockAddress: string, _holder: string, _chain: number) => { const query = gql` query keyHolders($address: String!) { keyHolders(where: { address: $address }) { @@ -59,7 +59,7 @@ const verifyActiveLock = (data: { lock: string; address: string; chain: number } }) } -export const verifyPurchase = async (_userAddress: String, _lockAddress: String, _lockChain: number) => { +export const verifyPurchase = async (_userAddress: string, _lockAddress: string, _lockChain: number) => { const query = gql` query locks($address: String!) { locks(where: { address: $address }) { @@ -87,7 +87,7 @@ export const verifyPurchase = async (_userAddress: String, _lockAddress: String, return flag } -export const getLocks = async (_address1: String) => { +export const getLocks = async (_address1: string) => { const query = gql` query lockManager($address: String!) { lockManagers(where: { address: $address }) { diff --git a/packages/mask/src/social-network-adaptor/twitter.com/injection/PostInspector.tsx b/packages/mask/src/social-network-adaptor/twitter.com/injection/PostInspector.tsx index 6ff7a1017d8a..e2fa802ca224 100644 --- a/packages/mask/src/social-network-adaptor/twitter.com/injection/PostInspector.tsx +++ b/packages/mask/src/social-network-adaptor/twitter.com/injection/PostInspector.tsx @@ -1,4 +1,4 @@ -/* eslint @dimensiondev/unicode-specific-set: ["error", { "only": "code" }] */ +/* eslint @dimensiondev/unicode/specific-set: ["error", { "only": "code" }] */ import type { PostInfo } from '@masknet/plugin-infra/content-script' import { injectPostInspectorDefault } from '../../../social-network/defaults/inject/PostInspector' import { twitterEncoding } from '../encoding' diff --git a/packages/mask/src/utils/getTextUILength.ts b/packages/mask/src/utils/getTextUILength.ts index 443dbfed1ecb..21263dbf1884 100644 --- a/packages/mask/src/utils/getTextUILength.ts +++ b/packages/mask/src/utils/getTextUILength.ts @@ -1,4 +1,4 @@ -/* eslint @dimensiondev/unicode-specific-set: ["error", { "only": "code" }] */ +/* eslint @dimensiondev/unicode/specific-set: ["error", { "only": "code" }] */ export function getTextUILength(text: string) { return Array.from(text).reduce((acc, char) => acc + getCharUILength(char), 0) } diff --git a/packages/mask/src/utils/type-transform/Payload.ts b/packages/mask/src/utils/type-transform/Payload.ts index bf634fabf972..f8d042497ccd 100644 --- a/packages/mask/src/utils/type-transform/Payload.ts +++ b/packages/mask/src/utils/type-transform/Payload.ts @@ -1,4 +1,4 @@ -/* eslint @dimensiondev/unicode-specific-set: ["error", { "only": "code" }] */ +/* eslint @dimensiondev/unicode/specific-set: ["error", { "only": "code" }] */ import type { SocialNetwork } from '../../social-network' import { isEnvironment, Environment } from '@dimensiondev/holoflows-kit' import { i18n } from '../../../shared-ui/locales_legacy' diff --git a/packages/plugin-infra/src/types.ts b/packages/plugin-infra/src/types.ts index fe0af63f2f04..23bc79f779c3 100644 --- a/packages/plugin-infra/src/types.ts +++ b/packages/plugin-infra/src/types.ts @@ -1,4 +1,4 @@ -/* eslint @dimensiondev/unicode-specific-set: ["error", { "only": "code" }] */ +/* eslint @dimensiondev/unicode/specific-set: ["error", { "only": "code" }] */ import type React from 'react' import type { Option, Result } from 'ts-results' import type { TypedMessage } from '@masknet/typed-message' diff --git a/packages/plugins/example/src/SNSAdaptor/index.tsx b/packages/plugins/example/src/SNSAdaptor/index.tsx index dfc72962538b..763730feb5f2 100644 --- a/packages/plugins/example/src/SNSAdaptor/index.tsx +++ b/packages/plugins/example/src/SNSAdaptor/index.tsx @@ -1,4 +1,4 @@ -/* eslint @dimensiondev/unicode-specific-set: ["error", { "only": "code" }] */ +/* eslint @dimensiondev/unicode/specific-set: ["error", { "only": "code" }] */ import type { Plugin } from '@masknet/plugin-infra' import { base } from '../base' diff --git a/packages/shared-base/src/Identifier/type.ts b/packages/shared-base/src/Identifier/type.ts index d8260d6c912f..db42e88d8d70 100644 --- a/packages/shared-base/src/Identifier/type.ts +++ b/packages/shared-base/src/Identifier/type.ts @@ -74,6 +74,7 @@ export abstract class Identifier { static IdentifiersToString(a: Identifier[], isOrderImportant = false) { const ax = a.map((x) => x.toText()) if (!isOrderImportant) { + // eslint-disable-next-line @dimensiondev/array/no-implicit-sort ax.sort() } return ax.join(',') diff --git a/packages/shared/src/UI/components/ERC20TokenList/index.tsx b/packages/shared/src/UI/components/ERC20TokenList/index.tsx index c069f6576e80..27f9bf72a36a 100644 --- a/packages/shared/src/UI/components/ERC20TokenList/index.tsx +++ b/packages/shared/src/UI/components/ERC20TokenList/index.tsx @@ -115,6 +115,7 @@ export const ERC20TokenList = memo((props) => { assetsLoading, assets .map((x) => x.token.address) + // eslint-disable-next-line @dimensiondev/array/no-implicit-sort .sort() .join(), ]) diff --git a/packages/web3-shared/evm/hooks/useERC20TokensDetailedFromTokenLists.ts b/packages/web3-shared/evm/hooks/useERC20TokensDetailedFromTokenLists.ts index e516049e2d39..140af65d1544 100644 --- a/packages/web3-shared/evm/hooks/useERC20TokensDetailedFromTokenLists.ts +++ b/packages/web3-shared/evm/hooks/useERC20TokensDetailedFromTokenLists.ts @@ -21,6 +21,7 @@ export function useERC20TokensDetailedFromTokenLists( const { fetchERC20TokensFromTokenLists } = useWeb3Context() const { value: tokensFromList = EMPTY_LIST, ...asyncResult } = useAsyncRetry( async () => (!lists || lists.length === 0 ? [] : fetchERC20TokensFromTokenLists(lists, chainId)), + // eslint-disable-next-line @dimensiondev/array/no-implicit-sort [chainId, lists?.sort().join()], ) // #endregion diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b216d6e08c85..510b9c333db6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,7 +12,7 @@ importers: specifiers: '@commitlint/cli': ^16.2.3 '@commitlint/config-conventional': ^16.2.1 - '@dimensiondev/eslint-plugin': ^0.0.1-20220117062517-fd3cb01 + '@dimensiondev/eslint-plugin': ^0.0.2-20220414093950-7d54c58 '@dimensiondev/kit': 0.0.0-20220228054820-f2378be '@dimensiondev/patch-package': ^6.5.0 '@emotion/cache': ^11.7.1 @@ -91,7 +91,7 @@ importers: devDependencies: '@commitlint/cli': 16.2.3_@swc+core@1.2.165 '@commitlint/config-conventional': 16.2.1 - '@dimensiondev/eslint-plugin': 0.0.1-20220120054224-6673363_eslint@8.13.0 + '@dimensiondev/eslint-plugin': 0.0.2-20220414093950-7d54c58_eslint@8.13.0 '@dimensiondev/patch-package': 6.5.0 '@jest/globals': 28.0.0-alpha.8 '@magic-works/i18n-codegen': 0.1.0_typescript@4.7.0-beta @@ -3965,9 +3965,8 @@ packages: '@msgpack/msgpack': 1.12.2 dev: false - /@dimensiondev/eslint-plugin/0.0.1-20220120054224-6673363_eslint@8.13.0: - resolution: {integrity: sha512-0VZi1Rzc9lYZlMknvgDzXAb9EljAjwaZq1oytNKWMgtIDu/LOWypU3PlG7ZD6+2OoxQM791hJMpgbZj5mBJDag==, tarball: download/@dimensiondev/eslint-plugin/0.0.1-20220120054224-6673363/fc34190ad4aabce475939146dfa3fb52d5071ed0c0478243eafedcb7789b56d0} - engines: {node: '>= 16'} + /@dimensiondev/eslint-plugin/0.0.2-20220414093950-7d54c58_eslint@8.13.0: + resolution: {integrity: sha512-H6ZmwT+mhplwYU0j8bvNmBNp0y5pT6fMfb3OjWiWkhF5W7LKxUy9YZLc6XfsCHC56hPTPq5u/pCjRBtE4Y1qxQ==, tarball: download/@dimensiondev/eslint-plugin/0.0.2-20220414093950-7d54c58/515fb9cbdd7dba3b6da5e0686027b2ec170872dc10618b545a9035dea7a12633} peerDependencies: eslint: '>= 8' dependencies: From 3dcf0573888cff5146909f50fd1374126ce35819 Mon Sep 17 00:00:00 2001 From: Septs Date: Thu, 14 Apr 2022 17:55:55 +0800 Subject: [PATCH 2/3] revert: file --- .../src/pages/Settings/components/LanguageSetting.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/dashboard/src/pages/Settings/components/LanguageSetting.tsx b/packages/dashboard/src/pages/Settings/components/LanguageSetting.tsx index d2553cae27e2..6cbc1cc7350e 100644 --- a/packages/dashboard/src/pages/Settings/components/LanguageSetting.tsx +++ b/packages/dashboard/src/pages/Settings/components/LanguageSetting.tsx @@ -19,10 +19,10 @@ export default function LanguageSetting() { {t.settings_language_auto()} English - 简体中文 - 繁体中文 - 日本語 - 한국인 + 简体中文 + 繁体中文 + 日本語 + 한국인 ) } From ec141051f3bad9da5848f1c34855d1ca30b524be Mon Sep 17 00:00:00 2001 From: Septs Date: Thu, 14 Apr 2022 18:17:50 +0800 Subject: [PATCH 3/3] fix: eslintrc --- packages/.eslintrc.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/.eslintrc.json b/packages/.eslintrc.json index 62fd8727a79a..59db96affdcc 100644 --- a/packages/.eslintrc.json +++ b/packages/.eslintrc.json @@ -65,17 +65,16 @@ "unicorn/prefer-number-properties": "error", "unicorn/relative-url-style": ["error", "always"], "unicorn/throw-new-error": "error", + "@dimensiondev/array/no-implicit-sort": "error", "@dimensiondev/browser/prefer-location-assign": "error", "@dimensiondev/jsx/no-class-component": "error", "@dimensiondev/jsx/no-template-literal": "error", "@dimensiondev/no-number-constructor": "off", "@dimensiondev/prefer-early-return": "error", "@dimensiondev/string/no-interpolation": "off", - "@dimensiondev/array/no-implicit-sort": "error", "@dimensiondev/string/no-locale-case": "error", "@dimensiondev/string/no-simple-template-literal": "error", "@dimensiondev/string/no-unneeded-to-string": "error", - "@dimensiondev/type/no-bigint": "error", "@dimensiondev/type/no-instanceof-wrapper": "error", "@dimensiondev/type/no-wrapper-type-reference": "error", "@dimensiondev/unicode/specific-set": "error",