From 6cd7e7546ee5139ca27d780343bce9f17099639c Mon Sep 17 00:00:00 2001 From: tate Date: Tue, 3 Oct 2023 16:32:05 +1100 Subject: [PATCH] lint issues --- .eslintrc.json | 12 +- .prettierrc.json | 16 +- .vscode/settings.json | 4 +- package.json | 32 +- pnpm-lock.yaml | 2010 ++++++++++------- src/components/@atoms/BaseLink.tsx | 3 +- .../@atoms/NameDetailItem/NameDetailItem.tsx | 8 +- .../@atoms/NameDetailItem/TaggedNameItem.tsx | 2 +- .../PlusMinusControl/PlusMinusControl.tsx | 2 +- .../@atoms/TypographyWithAnimatedEllipses.tsx | 2 +- .../@molecules/Accordion/Accordion.tsx | 7 +- .../AvatarWithLink/AvatarWithLink.tsx | 2 +- .../@molecules/BurnFuses/BurnFusesContent.tsx | 2 +- .../ConfirmationDialogView.tsx | 2 +- .../@molecules/DisabledButtonWithTooltip.tsx | 1 - src/components/@molecules/DogFood.tsx | 67 +- .../EditResolver/EditResolverWarnings.tsx | 6 +- .../@molecules/Hamburger/LanguageMenu.tsx | 2 +- .../@molecules/Hamburger/MainMenu.tsx | 4 +- .../LegacyDropdown/LegacyDropdown.tsx | 29 +- .../@molecules/NFTTemplate/NFTTemplate.tsx | 4 +- .../@molecules/NameListView/NameListView.tsx | 2 + .../NameTableHeader/NameTableHeader.tsx | 2 +- .../ProfileEditor/Avatar/AvatarCrop.tsx | 2 +- .../ProfileEditor/Avatar/AvatarNFT.tsx | 2 +- .../ProfileEditor/options/accountsOptions.tsx | 41 +- .../@molecules/RecordInput/RecordInput.tsx | 2 +- .../@molecules/SearchInput/SearchInput.tsx | 8 +- .../@molecules/SearchInput/SearchInputBox.tsx | 2 +- .../@molecules/SearchInput/SearchResult.tsx | 4 +- .../DynamicLoadingContext.tsx | 2 +- .../TransactionDialogManager.tsx | 6 +- .../TransactionDialogManager/stage/Intro.tsx | 2 +- .../stage/TransactionStageModal.tsx | 3 +- src/components/AvatarWithZorb.tsx | 2 +- src/components/ConnectButton.tsx | 2 +- src/components/Header.tsx | 4 +- src/components/NFTWithPlaceholder.tsx | 3 +- src/components/Outlink.tsx | 3 +- src/components/ProfileSnippet.tsx | 51 +- src/components/TabBar.tsx | 10 +- .../pages/import/[name]/AddTextRecord.tsx | 5 +- .../pages/import/[name]/ClaimComplete.tsx | 2 +- .../pages/import/[name]/ClaimDomain.tsx | 4 +- .../pages/import/[name]/DNSClaim.tsx | 2 +- .../pages/import/[name]/EnableDNSSEC.tsx | 2 +- src/components/pages/profile/NameSnippet.tsx | 5 - .../pages/profile/ProfileDetails.tsx | 13 +- .../[name]/registration/Registration.tsx | 15 +- .../[name]/registration/steps/Complete.tsx | 2 +- .../[name]/registration/steps/Info.tsx | 2 +- .../registration/steps/Pricing/Pricing.tsx | 2 +- .../steps/Pricing/TemporaryPremium.tsx | 27 +- .../steps/Profile/AddProfileRecordView.tsx | 4 +- .../steps/Profile/OptionGroup.tsx | 2 +- .../registration/steps/Profile/Profile.tsx | 4 +- .../steps/Profile/ProfileRecordInput.tsx | 2 +- .../steps/Profile/profileRecordUtils.ts | 2 +- .../registration/steps/Transactions.tsx | 4 +- .../registration/useMoonpayRegistration.ts | 2 +- .../profile/[name]/tabs/MoreTab/Fuses.tsx | 2 +- .../MoreTab/Miscellaneous/EarnifiDialog.tsx | 4 +- .../profile/[name]/tabs/MoreTab/Ownership.tsx | 4 +- .../profile/[name]/tabs/MoreTab/Resolver.tsx | 3 +- .../[name]/tabs/MoreTab/Token/Token.tsx | 4 +- .../tabs/MoreTab/Token/UnwrapButton.tsx | 2 +- .../[name]/tabs/MoreTab/Token/WrapButton.tsx | 2 +- .../pages/profile/[name]/tabs/ProfileTab.tsx | 2 +- .../pages/profile/[name]/tabs/RecordsTab.tsx | 2 +- .../pages/profile/[name]/tabs/SubnamesTab.tsx | 2 +- .../pages/profile/settings/DevSection.tsx | 4 +- .../pages/profile/settings/PrimarySection.tsx | 2 +- .../TransactionSection/TransactionSection.tsx | 2 +- src/constants/resolverAddressData.ts | 2 + .../abilities/utils/getDeleteAbilities.ts | 8 +- src/hooks/abilities/utils/getEditAbilities.ts | 6 +- .../abilities/utils/getReclaimAbilities.ts | 2 +- src/hooks/abilities/utils/getSendAbilities.ts | 2 +- src/hooks/account/useWalletClient.ts | 59 +- src/hooks/chain/useBlockTimestamp.ts | 1 + src/hooks/chain/useContractAddress.ts | 3 +- src/hooks/chain/useGasPrice.ts | 2 +- src/hooks/ensjs/dns/useDnsImportData.ts | 26 +- src/hooks/ensjs/dns/useDnsOwner.ts | 26 +- src/hooks/ensjs/public/useAddressRecord.ts | 20 +- src/hooks/ensjs/public/useExpiry.ts | 32 +- src/hooks/ensjs/public/useOwner.ts | 20 +- src/hooks/ensjs/public/usePrice.ts | 20 +- src/hooks/ensjs/public/usePrimaryName.ts | 6 +- src/hooks/ensjs/public/useRecords.ts | 2 +- src/hooks/ensjs/public/useResolver.ts | 4 +- .../ensjs/public/useSupportedInterfaces.ts | 7 +- src/hooks/ensjs/public/useWrapperData.ts | 42 +- src/hooks/ensjs/subgraph/useDecodedName.ts | 4 +- src/hooks/ensjs/subgraph/useNameHistory.ts | 34 +- .../ensjs/subgraph/useNamesForAddress.ts | 5 +- src/hooks/ensjs/subgraph/useSubgraphClient.ts | 1 + .../ensjs/subgraph/useSubgraphRecords.ts | 4 +- src/hooks/ensjs/subgraph/useSubnames.ts | 2 +- src/hooks/errors/useGlobalErrorFunc.ts | 2 - src/hooks/fuses/useFusesSetDates.ts | 11 +- .../useEstimateGasLimitForTransactions.ts | 72 +- .../gasEstimation/useEstimateRegistration.ts | 19 +- .../index.ts | 2 +- src/hooks/resolver/useResolverStatus.ts | 2 +- src/hooks/resolver/useResolverType.ts | 1 - .../transactions/TransactionStoreContext.tsx | 2 +- src/hooks/transactions/transactionStore.ts | 4 - .../transactions/useAddRecentTransaction.ts | 2 +- .../transactions/useRecentTransactions.ts | 2 +- src/hooks/useAdvancedEditor.ts | 11 +- src/hooks/useGetSegmentLength.ts | 2 +- src/hooks/useHasSubnames.ts | 2 +- src/hooks/useNftImage.ts | 3 +- src/hooks/useProfileActions.ts | 4 +- src/hooks/useProfileEditor.tsx | 2 +- src/hooks/useQueryKeyFactory.ts | 3 +- src/hooks/useResolverExists.ts | 2 +- src/hooks/useResolverHasInterfaces.ts | 81 +- src/layouts/Basic.tsx | 8 +- src/layouts/Content.tsx | 2 +- src/pages/404.tsx | 8 +- src/pages/_app.tsx | 12 +- src/pages/address.tsx | 27 +- src/pages/index.tsx | 10 +- src/pages/legacyfavourites.tsx | 3 +- src/pages/legal/[slug].tsx | 3 +- src/pages/my/names.tsx | 2 +- src/test-utils.tsx | 6 +- src/transaction-flow/TransactionLoader.tsx | 12 +- .../AdvancedEditor/AdvancedEditor-flow.tsx | 7 +- .../DeleteSubnameNotParentWarning-flow.tsx | 2 +- .../input/ExtendNames/ExtendNames-flow.tsx | 12 +- .../ProfileEditor/ProfileEditor-flow.tsx | 4 +- .../views/MigrateProfileSelectorView.tsx.tsx | 2 +- .../views/ResolverNotNameWrapperAwareView.tsx | 2 +- .../views/TransferOrResetProfileView.tsx | 2 +- .../UpdateResolverOrResetProfileView.tsx | 2 +- .../views/RevokeChangeFusesView.tsx | 2 +- .../RevokePermissions/views/SetExpiryView.tsx | 4 +- .../SelectPrimaryName-flow.tsx | 15 +- .../TaggedNameItemWithFuseCheck.tsx | 7 +- src/transaction-flow/input/SendName-flow.tsx | 92 +- .../TransferProfile/TransferProfile-flow.tsx | 4 +- .../UnknownLabels/UnknownLabels-flow.tsx | 2 +- .../UnknownLabels/views/UnknownLabelsForm.tsx | 4 +- .../transaction/approveNameWrapper.ts | 11 +- src/transaction-flow/transaction/burnFuses.ts | 5 +- .../transaction/changePermissions.ts | 10 +- .../transaction/commitName.ts | 7 +- .../transaction/createSubname.ts | 3 +- .../transaction/deleteSubname.ts | 3 +- .../transaction/extendNames.ts | 18 +- .../transaction/importDNSSECName.ts | 4 +- .../transaction/migrateProfile.ts | 33 +- .../migrateProfileWithEthAddress.ts | 39 +- .../transaction/migrateProfileWithReset.ts | 29 +- .../transaction/registerName.ts | 10 +- .../transaction/resetPrimaryName.ts | 5 +- .../transaction/resetProfile.ts | 5 +- .../transaction/setPrimaryName.ts | 5 +- .../transaction/syncManager.ts | 5 +- .../transaction/testSendName.ts | 11 +- .../transaction/transferController.ts | 5 +- .../transaction/transferName.ts | 18 +- .../transaction/transferSubname.ts | 5 +- .../transaction/unwrapName.ts | 12 +- .../transaction/updateEthAddress.ts | 11 +- .../transaction/updateProfile.ts | 4 +- .../transaction/updateProfileRecords.ts | 5 +- .../transaction/updateResolver.ts | 5 +- src/transaction-flow/transaction/wrapName.ts | 3 +- src/transaction-flow/types.ts | 9 +- src/utils/BreakpointProvider.tsx | 13 +- .../GlobalErrorProvider.tsx | 4 +- .../GlobalErrorProvider/useHasSlowQueries.ts | 41 +- .../useSyncExternalStore.ts | 3 +- .../SyncProvider/SyncDroppedTransaction.tsx | 4 +- src/utils/SyncProvider/SyncProvider.tsx | 2 +- src/utils/editor.ts | 2 +- src/utils/getDefaultWallets.ts | 2 +- src/utils/query.ts | 1 + src/utils/records.ts | 19 +- src/utils/utils.ts | 2 +- 184 files changed, 2105 insertions(+), 1599 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 88e01a292..44e41b19c 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -26,7 +26,15 @@ "parserOptions": { "project": "./tsconfig.json" }, - "ignorePatterns": ["next.config.js", "jest.config.js", "deploy/**/*", "src/**/*.test.tsx", "src/**/*.test.ts"], + "ignorePatterns": [ + "next.config.js", + "jest.config.js", + "deploy/**/*", + "src/**/*.test.tsx", + "src/**/*.test.ts", + "e2e/**/*" /* TODO(tate): remove */, + "playwright/**/*" /* TODO(tate): remove */ + ], "rules": { "react/react-in-jsx-scope": "off", "react/jsx-props-no-spreading": "off", @@ -51,7 +59,7 @@ { "selector": "*[value=/\\b(0x)?[a-f0-9]{64}\\b/i]", "message": "No private keys allowed" - } + } ], "prettier/prettier": "error", "import/prefer-default-export": "off", diff --git a/.prettierrc.json b/.prettierrc.json index eea70ed0d..69982352e 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -6,8 +6,16 @@ "singleQuote": true, "tabWidth": 2, "trailingComma": "all", - "importOrder": ["@app/test-utils", "", "^@ensdomains/(.*)$", "^@app/(.*)$", "^[./]"], - "importOrderSeparation": true, - "importOrderSortSpecifiers": true, - "plugins": ["@trivago/prettier-plugin-sort-imports"] + "importOrder": [ + "@app/test-utils", + "", + "", + "", + "^@ensdomains/(.*)$", + "", + "^@app/(.*)$", + "", + "^[./]" + ], + "plugins": ["@ianvs/prettier-plugin-sort-imports"] } diff --git a/.vscode/settings.json b/.vscode/settings.json index f8909fc48..17fed33cd 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,7 +3,6 @@ "**/.yarn": true, "**/.pnp.*": true }, - "eslint.nodePath": ".yarn/sdks", "typescript.tsdk": "node_modules/typescript/lib", "typescript.enablePromptUseWorkspaceTsdk": true, "eslint.format.enable": true, @@ -14,7 +13,8 @@ "stylelint.configFile": ".stylelintrc.json", "stylelint.validate": ["css", "typescriptreact"], "editor.defaultFormatter": "esbenp.prettier-vscode", - "prettier.prettierPath": "node_modules/prettier/index.js", + "prettier.prettierPath": "./node_modules/prettier/index.cjs", + "prettier.configPath": "./.prettierrc.json", "[svg]": { "editor.defaultFormatter": "jock.svg" }, diff --git a/package.json b/package.json index e1e6ab6d5..91c77843b 100644 --- a/package.json +++ b/package.json @@ -99,8 +99,6 @@ "wagmi": "1.3.10" }, "peerDependencies": { - "@typescript-eslint/eslint-plugin": "*", - "@typescript-eslint/parser": "*", "react": "*", "react-dom": "*" }, @@ -109,6 +107,7 @@ "@cloudflare/workers-types": "^3.14.1", "@ensdomains/buffer": "^0.1.0", "@ensdomains/ens-test-env": "^0.3.8", + "@ianvs/prettier-plugin-sort-imports": "^4.1.0", "@next/bundle-analyzer": "^13.4.19", "@nomiclabs/hardhat-ethers": "npm:hardhat-deploy-ethers@^0.3.0-beta.13", "@openzeppelin/contracts": "^4.7.3", @@ -118,7 +117,6 @@ "@testing-library/react": "^14.0.0", "@testing-library/react-hooks": "^8.0.1", "@testing-library/user-event": "^14.4.3", - "@trivago/prettier-plugin-sort-imports": "^3.3.0", "@types/glob": "^7.2.0", "@types/jest": "^28.1.8", "@types/lodash": "^4.14.184", @@ -131,28 +129,28 @@ "@types/styled-components": "5.1.23", "@types/testing-library__jest-dom": "^5.14.5", "@types/use-sync-external-store": "^0.0.3", - "@typescript-eslint/eslint-plugin": "^6.4.0", - "@typescript-eslint/parser": "^6.4.0", + "@typescript-eslint/eslint-plugin": "^6.7.4", + "@typescript-eslint/parser": "^6.7.4", "@wagmi/core-cjs": "npm:@wagmi/core@1.3.9-cjs", "babel-jest": "^27.5.1", "babel-loader": "^8.2.5", "canvas": "^2.9.3", "concurrently": "^7.3.0", "dotenv": "^16.0.1", - "eslint": "8.40.0", + "eslint": "8.50.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-base": "^15.0.0", - "eslint-config-airbnb-typescript": "^17.0.0", + "eslint-config-airbnb-typescript": "^17.1.0", "eslint-config-next": "^13.4.19", - "eslint-config-prettier": "^8.5.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^25.7.0", - "eslint-plugin-jsx-a11y": "^6.6.1", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-react": "^7.31.1", + "eslint-config-prettier": "^9.0.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jest": "^27.4.2", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-testing-library": "^4.12.4", + "eslint-plugin-testing-library": "^6.0.2", "ethers": "^5.7.2", "ganache": "^7.4.1", "graphql-request": "5.1.0", @@ -174,10 +172,10 @@ "node-fetch-commonjs": "^3.1.1", "polyfill-crypto.getrandomvalues": "^1.0.0", "postcss-scss": "^4.0.4", - "prettier": "2.8.8", + "prettier": "3.0.3", "sitemap": "^7.1.1", "stylelint": "14.11.0", - "stylelint-config-prettier": "^9.0.3", + "stylelint-config-prettier": "^9.0.5", "stylelint-config-standard-scss": "^5.0.0", "stylelint-config-styled-components": "^0.1.1", "stylelint-processor-styled-components": "^1.10.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fd415bcd1..aead540fe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,6 +35,7 @@ importers: '@ensdomains/ens-test-env': ^0.3.8 '@ensdomains/ensjs': 3.0.0-beta.7 '@ensdomains/thorin': 0.6.42 + '@ianvs/prettier-plugin-sort-imports': ^4.1.0 '@metamask/inpage-provider': ^8.1.0 '@metamask/mobile-provider': ^2.1.0 '@metamask/post-message-stream': ^6.1.2 @@ -55,7 +56,6 @@ importers: '@testing-library/react': ^14.0.0 '@testing-library/react-hooks': ^8.0.1 '@testing-library/user-event': ^14.4.3 - '@trivago/prettier-plugin-sort-imports': ^3.3.0 '@types/glob': ^7.2.0 '@types/jest': ^28.1.8 '@types/lodash': ^4.14.184 @@ -68,8 +68,8 @@ importers: '@types/styled-components': 5.1.23 '@types/testing-library__jest-dom': ^5.14.5 '@types/use-sync-external-store': ^0.0.3 - '@typescript-eslint/eslint-plugin': ^6.4.0 - '@typescript-eslint/parser': ^6.4.0 + '@typescript-eslint/eslint-plugin': ^6.7.4 + '@typescript-eslint/parser': ^6.7.4 '@wagmi/core': 1.3.9 '@wagmi/core-cjs': npm:@wagmi/core@1.3.9-cjs '@web3modal/standalone': ^2.4.3 @@ -80,20 +80,20 @@ importers: concurrently: ^7.3.0 dns-packet: ^5.4.0 dotenv: ^16.0.1 - eslint: 8.40.0 + eslint: 8.50.0 eslint-config-airbnb: ^19.0.4 eslint-config-airbnb-base: ^15.0.0 - eslint-config-airbnb-typescript: ^17.0.0 + eslint-config-airbnb-typescript: ^17.1.0 eslint-config-next: ^13.4.19 - eslint-config-prettier: ^8.5.0 - eslint-import-resolver-node: ^0.3.6 - eslint-plugin-import: ^2.26.0 - eslint-plugin-jest: ^25.7.0 - eslint-plugin-jsx-a11y: ^6.6.1 - eslint-plugin-prettier: ^4.2.1 - eslint-plugin-react: ^7.31.1 + eslint-config-prettier: ^9.0.0 + eslint-import-resolver-node: ^0.3.9 + eslint-plugin-import: ^2.28.1 + eslint-plugin-jest: ^27.4.2 + eslint-plugin-jsx-a11y: ^6.7.1 + eslint-plugin-prettier: ^5.0.0 + eslint-plugin-react: ^7.33.2 eslint-plugin-react-hooks: ^4.6.0 - eslint-plugin-testing-library: ^4.12.4 + eslint-plugin-testing-library: ^6.0.2 ethers: ^5.7.2 ganache: ^7.4.1 glob: ^8.0.3 @@ -126,7 +126,7 @@ importers: p-memoize: ^7.1.1 polyfill-crypto.getrandomvalues: ^1.0.0 postcss-scss: ^4.0.4 - prettier: 2.8.8 + prettier: 3.0.3 react: ^18.2.0 react-confetti: ^6.1.0 react-dom: ^18.2.0 @@ -141,7 +141,7 @@ importers: sitemap: ^7.1.1 styled-components: ^5.3.5 stylelint: 14.11.0 - stylelint-config-prettier: ^9.0.3 + stylelint-config-prettier: ^9.0.5 stylelint-config-standard-scss: ^5.0.0 stylelint-config-styled-components: ^0.1.1 stylelint-processor-styled-components: ^1.10.0 @@ -214,6 +214,7 @@ importers: '@cloudflare/workers-types': 3.16.0 '@ensdomains/buffer': 0.1.0_hardhat@2.11.2 '@ensdomains/ens-test-env': 0.3.8 + '@ianvs/prettier-plugin-sort-imports': 4.1.0_prettier@3.0.3 '@next/bundle-analyzer': 13.4.19 '@nomiclabs/hardhat-ethers': /hardhat-deploy-ethers/0.3.0-beta.13_vf54o5zygcw7cr76twqof3t24a '@openzeppelin/contracts': 4.7.3 @@ -223,7 +224,6 @@ importers: '@testing-library/react': 14.0.0_biqbaboplfbrettd7655fr4n2y '@testing-library/react-hooks': 8.0.1_vnxzf5c44dqo4vncfl2mrh2gwm '@testing-library/user-event': 14.4.3 - '@trivago/prettier-plugin-sort-imports': 3.3.0_prettier@2.8.8 '@types/glob': 7.2.0 '@types/jest': 28.1.8 '@types/lodash': 4.14.186 @@ -236,28 +236,28 @@ importers: '@types/styled-components': 5.1.23 '@types/testing-library__jest-dom': 5.14.5 '@types/use-sync-external-store': 0.0.3 - '@typescript-eslint/eslint-plugin': 6.4.0_6xyo25vqo4dr5kbllg5hzwoxiq - '@typescript-eslint/parser': 6.4.0_uci2wugtwpizkleuwbfwoxrp4q + '@typescript-eslint/eslint-plugin': 6.7.4_guxi2snvfa5crx362if2oanle4 + '@typescript-eslint/parser': 6.7.4_loebgezstcsvd2poh2d55fifke '@wagmi/core-cjs': /@wagmi/core/1.3.9-cjs_a4aksva6lqbrzeyqnzwxlpt44m babel-jest: 27.5.1 babel-loader: 8.2.5 canvas: 2.10.1 concurrently: 7.4.0 dotenv: 16.0.3 - eslint: 8.40.0 - eslint-config-airbnb: 19.0.4_t3pn7eipnd2qxg5ixa3gfmgeju - eslint-config-airbnb-base: 15.0.0_lw64bwrfdlvteab5a4bczvvhwa - eslint-config-airbnb-typescript: 17.0.0_vdhlykdhvjoo4fr4c3xx3t4bwm - eslint-config-next: 13.4.19_uci2wugtwpizkleuwbfwoxrp4q - eslint-config-prettier: 8.5.0_eslint@8.40.0 - eslint-import-resolver-node: 0.3.6 - eslint-plugin-import: 2.26.0_teivguz2a5ebl7wcdrfteaffdu - eslint-plugin-jest: 25.7.0_qr5eawmrjz3i5thgixgsqbtyru - eslint-plugin-jsx-a11y: 6.6.1_eslint@8.40.0 - eslint-plugin-prettier: 4.2.1_vhbggrrdii5cyge62u7selwuu4 - eslint-plugin-react: 7.31.8_eslint@8.40.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.40.0 - eslint-plugin-testing-library: 4.12.4_uci2wugtwpizkleuwbfwoxrp4q + eslint: 8.50.0 + eslint-config-airbnb: 19.0.4_guzvj7gquc25zefilzm6da3qvu + eslint-config-airbnb-base: 15.0.0_mc36sq7crv2v5vtlozlclqwu5e + eslint-config-airbnb-typescript: 17.1.0_fwsuazv5pgoz2k7mdjirunpzam + eslint-config-next: 13.4.19_loebgezstcsvd2poh2d55fifke + eslint-config-prettier: 9.0.0_eslint@8.50.0 + eslint-import-resolver-node: 0.3.9 + eslint-plugin-import: 2.28.1_4nytrgfpfmroylhx7ogxfohaye + eslint-plugin-jest: 27.4.2_heageztkagfqs436e2a3iij4vm + eslint-plugin-jsx-a11y: 6.7.1_eslint@8.50.0 + eslint-plugin-prettier: 5.0.0_aqgyrhchy2rsdk3dpe2whc44ye + eslint-plugin-react: 7.33.2_eslint@8.50.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.50.0 + eslint-plugin-testing-library: 6.0.2_loebgezstcsvd2poh2d55fifke ethers: 5.7.2 ganache: 7.4.3 graphql-request: 5.1.0 @@ -279,10 +279,10 @@ importers: node-fetch-commonjs: 3.2.4 polyfill-crypto.getrandomvalues: 1.0.0 postcss-scss: 4.0.5 - prettier: 2.8.8 + prettier: 3.0.3 sitemap: 7.1.1 stylelint: 14.11.0 - stylelint-config-prettier: 9.0.3_stylelint@14.11.0 + stylelint-config-prettier: 9.0.5_stylelint@14.11.0 stylelint-config-standard-scss: 5.0.0_stylelint@14.11.0 stylelint-config-styled-components: 0.1.1 stylelint-processor-styled-components: 1.10.0 @@ -298,6 +298,11 @@ importers: packages: + /@aashutoshrathi/word-wrap/1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + /@adobe/css-tools/4.0.1: resolution: {integrity: sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==} dev: true @@ -327,65 +332,56 @@ packages: resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} engines: {node: '>=6.9.0'} - /@babel/core/7.17.8: - resolution: {integrity: sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==} + /@babel/core/7.21.3: + resolution: {integrity: sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.0 '@babel/code-frame': 7.22.13 - '@babel/generator': 7.21.3 - '@babel/helper-compilation-targets': 7.19.3_@babel+core@7.17.8 - '@babel/helper-module-transforms': 7.19.0 - '@babel/helpers': 7.19.0 - '@babel/parser': 7.21.3 - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.3 - '@babel/types': 7.21.3 + '@babel/generator': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.0_@babel+core@7.21.3 + '@babel/helpers': 7.23.1 + '@babel/parser': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.0 + '@babel/types': 7.23.0 convert-source-map: 1.8.0 debug: 4.3.4 gensync: 1.0.0-beta.2 - json5: 2.2.1 - semver: 6.3.0 + json5: 2.2.3 + semver: 6.3.1 transitivePeerDependencies: - supports-color - dev: true + dev: false - /@babel/core/7.21.3: - resolution: {integrity: sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==} + /@babel/core/7.23.0: + resolution: {integrity: sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.0 '@babel/code-frame': 7.22.13 - '@babel/generator': 7.21.3 - '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.3 - '@babel/helper-module-transforms': 7.21.2 - '@babel/helpers': 7.21.0 - '@babel/parser': 7.21.3 - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.3 - '@babel/types': 7.21.3 - convert-source-map: 1.8.0 + '@babel/generator': 7.23.0 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.0_@babel+core@7.23.0 + '@babel/helpers': 7.23.1 + '@babel/parser': 7.23.0 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.0 + '@babel/types': 7.23.0 + convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 json5: 2.2.3 - semver: 6.3.0 + semver: 6.3.1 transitivePeerDependencies: - supports-color - /@babel/generator/7.17.7: - resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==} + /@babel/generator/7.23.0: + resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.3 - jsesc: 2.5.2 - source-map: 0.5.7 - dev: true - - /@babel/generator/7.21.3: - resolution: {integrity: sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 '@jridgewell/gen-mapping': 0.3.2 '@jridgewell/trace-mapping': 0.3.19 jsesc: 2.5.2 @@ -394,49 +390,23 @@ packages: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 dev: false /@babel/helper-annotate-as-pure/7.22.5: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 dev: false /@babel/helper-builder-binary-assignment-operator-visitor/7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 dev: false - /@babel/helper-compilation-targets/7.19.3_@babel+core@7.17.8: - resolution: {integrity: sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.17.8 - '@babel/helper-validator-option': 7.22.15 - browserslist: 4.21.10 - semver: 6.3.1 - dev: true - - /@babel/helper-compilation-targets/7.20.7_@babel+core@7.21.3: - resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.22.9 - '@babel/core': 7.21.3 - '@babel/helper-validator-option': 7.22.15 - browserslist: 4.21.4 - lru-cache: 5.1.1 - semver: 6.3.1 - /@babel/helper-compilation-targets/7.22.15: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} @@ -446,7 +416,6 @@ packages: browserslist: 4.21.10 lru-cache: 5.1.1 semver: 6.3.1 - dev: false /@babel/helper-create-class-features-plugin/7.22.15_@babel+core@7.21.3: resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} @@ -456,8 +425,8 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.22.15 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-replace-supers': 7.22.9_@babel+core@7.21.3 @@ -499,116 +468,80 @@ packages: '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4 lodash.debounce: 4.0.8 - resolve: 1.22.1 + resolve: 1.22.6 transitivePeerDependencies: - supports-color dev: false - /@babel/helper-environment-visitor/7.18.9: - resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} - engines: {node: '>=6.9.0'} - - /@babel/helper-environment-visitor/7.22.5: - resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} + /@babel/helper-environment-visitor/7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} - /@babel/helper-function-name/7.21.0: - resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} + /@babel/helper-function-name/7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.22.15 - - /@babel/helper-function-name/7.22.5: - resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.22.15 - dev: false - - /@babel/helper-hoist-variables/7.18.6: - resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 /@babel/helper-hoist-variables/7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.15 - dev: false + '@babel/types': 7.23.0 /@babel/helper-member-expression-to-functions/7.22.15: resolution: {integrity: sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 dev: false /@babel/helper-module-imports/7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 + dev: false /@babel/helper-module-imports/7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 - /@babel/helper-module-transforms/7.19.0: - resolution: {integrity: sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==} + /@babel/helper-module-transforms/7.23.0_@babel+core@7.21.3: + resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: - '@babel/helper-environment-visitor': 7.22.5 + '@babel/core': 7.21.3 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.15 - '@babel/template': 7.22.15 - '@babel/traverse': 7.21.3 - '@babel/types': 7.22.15 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-module-transforms/7.21.2: - resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-simple-access': 7.20.2 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/helper-validator-identifier': 7.22.15 - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.3 - '@babel/types': 7.22.15 - transitivePeerDependencies: - - supports-color + '@babel/helper-validator-identifier': 7.22.20 + dev: false - /@babel/helper-module-transforms/7.22.15_@babel+core@7.21.3: - resolution: {integrity: sha512-l1UiX4UyHSFsYt17iQ3Se5pQQZZHa22zyIXURmvkmLCD4t/aU+dvNWHatKac/D9Vm9UES7nvIqHs4jZqKviUmQ==} + /@babel/helper-module-transforms/7.23.0_@babel+core@7.23.0: + resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.3 - '@babel/helper-environment-visitor': 7.22.5 + '@babel/core': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.15 - dev: false + '@babel/helper-validator-identifier': 7.22.20 /@babel/helper-optimise-call-expression/7.22.5: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 dev: false /@babel/helper-plugin-utils/7.22.5: @@ -623,7 +556,7 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.10 dev: false @@ -634,45 +567,29 @@ packages: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.21.3 - '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.22.15 '@babel/helper-optimise-call-expression': 7.22.5 dev: false - /@babel/helper-simple-access/7.20.2: - resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.15 - /@babel/helper-simple-access/7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 /@babel/helper-skip-transparent-expression-wrappers/7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 dev: false - /@babel/helper-split-export-declaration/7.18.6: - resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.15 - /@babel/helper-split-export-declaration/7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.15 - - /@babel/helper-string-parser/7.19.4: - resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} - engines: {node: '>=6.9.0'} + '@babel/types': 7.23.0 /@babel/helper-string-parser/7.22.5: resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} @@ -681,11 +598,11 @@ packages: /@babel/helper-validator-identifier/7.22.15: resolution: {integrity: sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==} engines: {node: '>=6.9.0'} + dev: true - /@babel/helper-validator-option/7.18.6: - resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} + /@babel/helper-validator-identifier/7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - dev: false /@babel/helper-validator-option/7.22.15: resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} @@ -695,29 +612,18 @@ packages: resolution: {integrity: sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-function-name': 7.22.5 + '@babel/helper-function-name': 7.23.0 '@babel/template': 7.22.15 - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 dev: false - /@babel/helpers/7.19.0: - resolution: {integrity: sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==} + /@babel/helpers/7.23.1: + resolution: {integrity: sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.21.3 - '@babel/types': 7.22.15 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helpers/7.21.0: - resolution: {integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.20.7 - '@babel/traverse': 7.21.3 - '@babel/types': 7.22.15 + '@babel/traverse': 7.23.0 + '@babel/types': 7.23.0 transitivePeerDependencies: - supports-color @@ -725,39 +631,32 @@ packages: resolution: {integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.22.15 + '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser/7.17.8: - resolution: {integrity: sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.21.3 - dev: true - /@babel/parser/7.19.3: resolution: {integrity: sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 dev: true - /@babel/parser/7.21.3: - resolution: {integrity: sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==} + /@babel/parser/7.22.15: + resolution: {integrity: sha512-RWmQ/sklUN9BvGGpCDgSubhHWfAx24XDTDObup4ffvxaYsptOg2P3KG0j+1eWKLxpkX0j0uHxmpq2Z1SP/VhxA==} engines: {node: '>=6.0.0'} hasBin: true dependencies: '@babel/types': 7.22.15 + dev: true - /@babel/parser/7.22.15: - resolution: {integrity: sha512-RWmQ/sklUN9BvGGpCDgSubhHWfAx24XDTDObup4ffvxaYsptOg2P3KG0j+1eWKLxpkX0j0uHxmpq2Z1SP/VhxA==} + /@babel/parser/7.23.0: + resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.22.15_@babel+core@7.21.3: resolution: {integrity: sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==} @@ -805,6 +704,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.23.0: + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-bigint/7.8.3: resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} @@ -814,12 +723,12 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.21.3: + /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.23.0: resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -838,6 +747,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.23.0: + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.21.3: resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} @@ -902,6 +821,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.23.0: + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-json-strings/7.8.3: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} @@ -918,6 +847,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.23.0: + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-jsx/7.22.5_@babel+core@7.21.3: resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} @@ -927,6 +866,17 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-syntax-jsx/7.22.5_@babel+core@7.23.0: + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-logical-assignment-operators/7.10.4: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} @@ -943,6 +893,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.23.0: + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} @@ -959,6 +919,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.23.0: + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-numeric-separator/7.10.4: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} @@ -975,6 +945,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.23.0: + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-object-rest-spread/7.8.3: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} @@ -991,6 +971,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.23.0: + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-optional-catch-binding/7.8.3: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} @@ -1007,6 +997,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.23.0: + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-optional-chaining/7.8.3: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} @@ -1023,6 +1023,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.23.0: + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.21.3: resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} @@ -1051,14 +1061,25 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.23.0: + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true - /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.21.3: + /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.23.0: resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -1100,7 +1121,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.21.3 - '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-remap-async-to-generator': 7.22.9_@babel+core@7.21.3 '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.21.3 @@ -1170,8 +1191,8 @@ packages: '@babel/core': 7.21.3 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-replace-supers': 7.22.9_@babel+core@7.21.3 @@ -1272,7 +1293,7 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-function-name': 7.22.5 + '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 dev: false @@ -1325,7 +1346,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.21.3 - '@babel/helper-module-transforms': 7.22.15_@babel+core@7.21.3 + '@babel/helper-module-transforms': 7.23.0_@babel+core@7.21.3 '@babel/helper-plugin-utils': 7.22.5 dev: false @@ -1336,7 +1357,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.21.3 - '@babel/helper-module-transforms': 7.22.15_@babel+core@7.21.3 + '@babel/helper-module-transforms': 7.23.0_@babel+core@7.21.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: false @@ -1349,9 +1370,9 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.22.15_@babel+core@7.21.3 + '@babel/helper-module-transforms': 7.23.0_@babel+core@7.21.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-identifier': 7.22.15 + '@babel/helper-validator-identifier': 7.22.20 dev: false /@babel/plugin-transform-modules-umd/7.22.5_@babel+core@7.21.3: @@ -1361,7 +1382,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.21.3 - '@babel/helper-module-transforms': 7.22.15_@babel+core@7.21.3 + '@babel/helper-module-transforms': 7.23.0_@babel+core@7.21.3 '@babel/helper-plugin-utils': 7.22.5 dev: false @@ -1541,7 +1562,7 @@ packages: '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.21.3 - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 dev: false /@babel/plugin-transform-react-pure-annotations/7.18.6_@babel+core@7.21.3: @@ -1764,7 +1785,7 @@ packages: '@babel/plugin-transform-unicode-regex': 7.22.5_@babel+core@7.21.3 '@babel/plugin-transform-unicode-sets-regex': 7.22.5_@babel+core@7.21.3 '@babel/preset-modules': 0.1.6-no-external-plugins_@babel+core@7.21.3 - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 babel-plugin-polyfill-corejs2: 0.4.5_@babel+core@7.21.3 babel-plugin-polyfill-corejs3: 0.8.3_@babel+core@7.21.3 babel-plugin-polyfill-regenerator: 0.5.2_@babel+core@7.21.3 @@ -1781,7 +1802,7 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 esutils: 2.0.3 dev: false @@ -1793,7 +1814,7 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.18.6 + '@babel/helper-validator-option': 7.22.15 '@babel/plugin-transform-react-display-name': 7.18.6_@babel+core@7.21.3 '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.21.3 '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.21.3 @@ -1818,129 +1839,94 @@ packages: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: false - /@babel/runtime-corejs3/7.19.1: - resolution: {integrity: sha512-j2vJGnkopRzH+ykJ8h68wrHnEUmtK//E723jjixiAl/PPf6FhqY/vYRcMVlNydRKQjQsTsYEjpx+DZMIvnGk/g==} - engines: {node: '>=6.9.0'} - dependencies: - core-js-pure: 3.25.5 - regenerator-runtime: 0.13.9 - dev: true - /@babel/runtime/7.19.0: resolution: {integrity: sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.9 - /@babel/template/7.20.7: - resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} + /@babel/runtime/7.23.1: + resolution: {integrity: sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.13 - '@babel/parser': 7.21.3 - '@babel/types': 7.22.15 + regenerator-runtime: 0.14.0 /@babel/template/7.22.15: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/parser': 7.22.15 - '@babel/types': 7.22.15 - - /@babel/traverse/7.17.3: - resolution: {integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.22.13 - '@babel/generator': 7.21.3 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.21.0 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.21.3 - '@babel/types': 7.21.3 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 /@babel/traverse/7.19.3: resolution: {integrity: sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/generator': 7.21.3 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.21.0 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.21.3 - '@babel/types': 7.22.15 + '@babel/generator': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/traverse/7.21.3: + /@babel/traverse/7.21.3_supports-color@5.5.0: resolution: {integrity: sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/generator': 7.21.3 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.21.0 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.21.3 - '@babel/types': 7.22.15 - debug: 4.3.4 + '@babel/generator': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + debug: 4.3.4_supports-color@5.5.0 globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: false - /@babel/traverse/7.21.3_supports-color@5.5.0: - resolution: {integrity: sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==} + /@babel/traverse/7.23.0: + resolution: {integrity: sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/generator': 7.21.3 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.21.0 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.21.3 - '@babel/types': 7.22.15 - debug: 4.3.4_supports-color@5.5.0 + '@babel/generator': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: false - /@babel/types/7.17.0: - resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} + /@babel/types/7.22.15: + resolution: {integrity: sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA==} engines: {node: '>=6.9.0'} dependencies: + '@babel/helper-string-parser': 7.22.5 '@babel/helper-validator-identifier': 7.22.15 to-fast-properties: 2.0.0 dev: true - /@babel/types/7.21.3: - resolution: {integrity: sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.19.4 - '@babel/helper-validator-identifier': 7.22.15 - to-fast-properties: 2.0.0 - - /@babel/types/7.22.15: - resolution: {integrity: sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA==} + /@babel/types/7.23.0: + resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.22.5 - '@babel/helper-validator-identifier': 7.22.15 + '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 /@bcoe/v8-coverage/0.2.3: @@ -2167,7 +2153,7 @@ packages: /@ensdomains/ensjs/2.1.0: resolution: {integrity: sha512-GRbGPT8Z/OJMDuxs75U/jUNEC0tbL0aj7/L/QQznGYKm/tiasp+ndLOaoULy9kKJFC0TBByqfFliEHDgoLhyog==} dependencies: - '@babel/runtime': 7.19.0 + '@babel/runtime': 7.23.1 '@ensdomains/address-encoder': 0.1.9 '@ensdomains/ens': 0.4.5 '@ensdomains/resolver': 0.2.4 @@ -2448,13 +2434,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils/4.4.0_eslint@8.40.0: + /@eslint-community/eslint-utils/4.4.0_eslint@8.50.0: resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.40.0 + eslint: 8.50.0 eslint-visitor-keys: 3.4.3 dev: true @@ -2480,8 +2466,8 @@ packages: - supports-color dev: true - /@eslint/js/8.40.0: - resolution: {integrity: sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==} + /@eslint/js/8.50.0: + resolution: {integrity: sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -2895,6 +2881,26 @@ packages: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true + /@ianvs/prettier-plugin-sort-imports/4.1.0_prettier@3.0.3: + resolution: {integrity: sha512-IAXeTLU24k6mRPa6mFbW1qZJ/j0m3OeH44wyijWyr+YqqdNtBnfHxAntOAATS9iDfrT01NesKGsdzqnXdDQa/A==} + peerDependencies: + '@vue/compiler-sfc': '>=3.0.0' + prettier: 2 || 3 + peerDependenciesMeta: + '@vue/compiler-sfc': + optional: true + dependencies: + '@babel/core': 7.23.0 + '@babel/generator': 7.23.0 + '@babel/parser': 7.22.15 + '@babel/traverse': 7.23.0 + '@babel/types': 7.22.15 + prettier: 3.0.3 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + /@iarna/toml/2.2.5: resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} dev: true @@ -3112,7 +3118,7 @@ packages: resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.23.0 '@jest/types': 27.5.1 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 @@ -3135,7 +3141,7 @@ packages: resolution: {integrity: sha512-ZqCqEISr58Ce3U+buNFJYUktLJZOggfyvR+bZMaiV1e8B1SIvJbwZMrYz3gx/KAPn9EXmOmN+uB08yLCjWkQQg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.23.0 '@jest/types': 29.6.1 '@jridgewell/trace-mapping': 0.3.19 babel-plugin-istanbul: 6.1.1 @@ -3559,7 +3565,7 @@ packages: '@motionone/easing': 10.15.1 '@motionone/types': 10.15.1 '@motionone/utils': 10.15.1 - tslib: 2.4.1 + tslib: 2.6.2 /@motionone/dom/10.16.2: resolution: {integrity: sha512-bnuHdNbge1FutZXv+k7xub9oPWcF0hsu8y1HTH/qg6av58YI0VufZ3ngfC7p2xhMJMnoh0LXFma2EGTgPeCkeg==} @@ -3569,26 +3575,26 @@ packages: '@motionone/types': 10.15.1 '@motionone/utils': 10.15.1 hey-listen: 1.0.8 - tslib: 2.4.1 + tslib: 2.6.2 /@motionone/easing/10.15.1: resolution: {integrity: sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw==} dependencies: '@motionone/utils': 10.15.1 - tslib: 2.4.1 + tslib: 2.6.2 /@motionone/generators/10.15.1: resolution: {integrity: sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ==} dependencies: '@motionone/types': 10.15.1 '@motionone/utils': 10.15.1 - tslib: 2.4.1 + tslib: 2.6.2 /@motionone/svelte/10.16.2: resolution: {integrity: sha512-38xsroKrfK+aHYhuQlE6eFcGy0EwrB43Q7RGjF73j/kRUTcLNu/LAaKiLLsN5lyqVzCgTBVt4TMT/ShWbTbc5Q==} dependencies: '@motionone/dom': 10.16.2 - tslib: 2.4.1 + tslib: 2.6.2 /@motionone/types/10.15.1: resolution: {integrity: sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA==} @@ -3598,13 +3604,13 @@ packages: dependencies: '@motionone/types': 10.15.1 hey-listen: 1.0.8 - tslib: 2.4.1 + tslib: 2.6.2 /@motionone/vue/10.16.2: resolution: {integrity: sha512-7/dEK/nWQXOkJ70bqb2KyNfSWbNvWqKKq1C8juj+0Mg/AorgD8O5wE3naddK0G+aXuNMqRuc4jlsYHHWHtIzVw==} dependencies: '@motionone/dom': 10.16.2 - tslib: 2.4.1 + tslib: 2.6.2 /@mswjs/cookies/0.2.2: resolution: {integrity: sha512-mlN83YSrcFgk7Dm1Mys40DLssI1KdJji2CMKN8eOlBqsTADYzj2+jWzsANsUTFbxDMWPD5e9bfA1RGqBpS3O1g==} @@ -4116,6 +4122,18 @@ packages: /@pedrouid/environment/1.0.1: resolution: {integrity: sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug==} + /@pkgr/utils/2.4.2: + resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + fast-glob: 3.3.1 + is-glob: 4.0.3 + open: 9.1.0 + picocolors: 1.0.0 + tslib: 2.6.2 + dev: true + /@playwright/test/1.36.2: resolution: {integrity: sha512-2rVZeyPRjxfPH6J0oGJqE8YxiM1IBRyM8hyrXYK7eSiAqmbNhxwcLa7dZ7fy9Kj26V7FYia5fh9XJRq4Dqme+g==} engines: {node: '>=16'} @@ -4543,7 +4561,7 @@ packages: /@solana/web3.js/1.73.3: resolution: {integrity: sha512-vHRMo589XEIpoujpE2sZZ1aMZvfA1ImKfNxobzEFyMb+H5j6mRRUXfdgWD0qJ0sm11e5BcBC7HPeRXJB+7f3Lg==} dependencies: - '@babel/runtime': 7.19.0 + '@babel/runtime': 7.23.1 '@noble/ed25519': 1.7.3 '@noble/hashes': 1.3.2 '@noble/secp256k1': 1.7.1 @@ -4663,101 +4681,101 @@ packages: '@stablelib/random': 1.0.2 '@stablelib/wipe': 1.0.1 - /@svgr/babel-plugin-add-jsx-attribute/8.0.0_@babel+core@7.21.3: + /@svgr/babel-plugin-add-jsx-attribute/8.0.0_@babel+core@7.23.0: resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.23.0 dev: false - /@svgr/babel-plugin-remove-jsx-attribute/8.0.0_@babel+core@7.21.3: + /@svgr/babel-plugin-remove-jsx-attribute/8.0.0_@babel+core@7.23.0: resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.23.0 dev: false - /@svgr/babel-plugin-remove-jsx-empty-expression/8.0.0_@babel+core@7.21.3: + /@svgr/babel-plugin-remove-jsx-empty-expression/8.0.0_@babel+core@7.23.0: resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.23.0 dev: false - /@svgr/babel-plugin-replace-jsx-attribute-value/8.0.0_@babel+core@7.21.3: + /@svgr/babel-plugin-replace-jsx-attribute-value/8.0.0_@babel+core@7.23.0: resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.23.0 dev: false - /@svgr/babel-plugin-svg-dynamic-title/8.0.0_@babel+core@7.21.3: + /@svgr/babel-plugin-svg-dynamic-title/8.0.0_@babel+core@7.23.0: resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.23.0 dev: false - /@svgr/babel-plugin-svg-em-dimensions/8.0.0_@babel+core@7.21.3: + /@svgr/babel-plugin-svg-em-dimensions/8.0.0_@babel+core@7.23.0: resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.23.0 dev: false - /@svgr/babel-plugin-transform-react-native-svg/8.1.0_@babel+core@7.21.3: + /@svgr/babel-plugin-transform-react-native-svg/8.1.0_@babel+core@7.23.0: resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.23.0 dev: false - /@svgr/babel-plugin-transform-svg-component/8.0.0_@babel+core@7.21.3: + /@svgr/babel-plugin-transform-svg-component/8.0.0_@babel+core@7.23.0: resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} engines: {node: '>=12'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.23.0 dev: false - /@svgr/babel-preset/8.1.0_@babel+core@7.21.3: + /@svgr/babel-preset/8.1.0_@babel+core@7.23.0: resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} engines: {node: '>=14'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0_@babel+core@7.21.3 - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0_@babel+core@7.21.3 - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0_@babel+core@7.21.3 - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0_@babel+core@7.21.3 - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0_@babel+core@7.21.3 - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0_@babel+core@7.21.3 - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0_@babel+core@7.21.3 - '@svgr/babel-plugin-transform-svg-component': 8.0.0_@babel+core@7.21.3 + '@babel/core': 7.23.0 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0_@babel+core@7.23.0 + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0_@babel+core@7.23.0 + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0_@babel+core@7.23.0 + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0_@babel+core@7.23.0 + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0_@babel+core@7.23.0 + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0_@babel+core@7.23.0 + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0_@babel+core@7.23.0 + '@svgr/babel-plugin-transform-svg-component': 8.0.0_@babel+core@7.23.0 dev: false /@svgr/core/8.1.0_typescript@5.1.6: resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} engines: {node: '>=14'} dependencies: - '@babel/core': 7.21.3 - '@svgr/babel-preset': 8.1.0_@babel+core@7.21.3 + '@babel/core': 7.23.0 + '@svgr/babel-preset': 8.1.0_@babel+core@7.23.0 camelcase: 6.3.0 cosmiconfig: 8.3.4_typescript@5.1.6 snake-case: 3.0.4 @@ -4770,7 +4788,7 @@ packages: resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} engines: {node: '>=14'} dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 entities: 4.4.0 dev: false @@ -4780,8 +4798,8 @@ packages: peerDependencies: '@svgr/core': '*' dependencies: - '@babel/core': 7.21.3 - '@svgr/babel-preset': 8.1.0_@babel+core@7.21.3 + '@babel/core': 7.23.0 + '@svgr/babel-preset': 8.1.0_@babel+core@7.23.0 '@svgr/core': 8.1.0_typescript@5.1.6 '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 @@ -4823,7 +4841,7 @@ packages: /@swc/helpers/0.5.1: resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} dependencies: - tslib: 2.4.1 + tslib: 2.6.2 /@szmarczak/http-timer/1.1.2: resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} @@ -4889,7 +4907,7 @@ packages: engines: {node: '>=14'} dependencies: '@babel/code-frame': 7.22.13 - '@babel/runtime': 7.19.0 + '@babel/runtime': 7.23.1 '@types/aria-query': 5.0.1 aria-query: 5.1.3 chalk: 4.1.2 @@ -4962,23 +4980,6 @@ packages: engines: {node: '>= 10'} dev: true - /@trivago/prettier-plugin-sort-imports/3.3.0_prettier@2.8.8: - resolution: {integrity: sha512-1y44bVZuIN0RsS3oIiGd5k8Vm3IZXYZnp4VsP2Z/S5L9WAOw43HE2clso66M2S/dDeJ+8sKPqnHsEfh39Vjs3w==} - peerDependencies: - prettier: 2.x - dependencies: - '@babel/core': 7.17.8 - '@babel/generator': 7.17.7 - '@babel/parser': 7.17.8 - '@babel/traverse': 7.17.3 - '@babel/types': 7.17.0 - javascript-natural-sort: 0.7.1 - lodash: 4.17.21 - prettier: 2.8.8 - transitivePeerDependencies: - - supports-color - dev: true - /@truffle/abi-utils/0.3.5: resolution: {integrity: sha512-nGIMNDjl1NhTxI5lSecOWoLFH8A+aDRPrMejke6Cb2ok8FWyTPCaHmlC8S0Kdi/Egp9m3CNI1TYsy9w9Y3E3jA==} dependencies: @@ -5128,8 +5129,8 @@ packages: /@types/babel__core/7.1.19: resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==} dependencies: - '@babel/parser': 7.21.3 - '@babel/types': 7.21.3 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.18.2 @@ -5138,20 +5139,20 @@ packages: /@types/babel__generator/7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 dev: true /@types/babel__template/7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.21.3 - '@babel/types': 7.22.15 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 dev: true /@types/babel__traverse/7.18.2: resolution: {integrity: sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==} dependencies: - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 dev: true /@types/better-sqlite3/7.6.0: @@ -5485,8 +5486,8 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin/6.4.0_6xyo25vqo4dr5kbllg5hzwoxiq: - resolution: {integrity: sha512-62o2Hmc7Gs3p8SLfbXcipjWAa6qk2wZGChXG2JbBtYpwSRmti/9KHLqfbLs9uDigOexG+3PaQ9G2g3201FWLKg==} + /@typescript-eslint/eslint-plugin/6.7.4_guxi2snvfa5crx362if2oanle4: + resolution: {integrity: sha512-DAbgDXwtX+pDkAHwiGhqP3zWUGpW49B7eqmgpPtg+BKJXwdct79ut9+ifqOFPJGClGKSHXn2PTBatCnldJRUoA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -5497,13 +5498,13 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.4.0_uci2wugtwpizkleuwbfwoxrp4q - '@typescript-eslint/scope-manager': 6.4.0 - '@typescript-eslint/type-utils': 6.4.0_uci2wugtwpizkleuwbfwoxrp4q - '@typescript-eslint/utils': 6.4.0_uci2wugtwpizkleuwbfwoxrp4q - '@typescript-eslint/visitor-keys': 6.4.0 + '@typescript-eslint/parser': 6.7.4_loebgezstcsvd2poh2d55fifke + '@typescript-eslint/scope-manager': 6.7.4 + '@typescript-eslint/type-utils': 6.7.4_loebgezstcsvd2poh2d55fifke + '@typescript-eslint/utils': 6.7.4_loebgezstcsvd2poh2d55fifke + '@typescript-eslint/visitor-keys': 6.7.4 debug: 4.3.4 - eslint: 8.40.0 + eslint: 8.50.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 @@ -5514,39 +5515,8 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils/4.33.0_uci2wugtwpizkleuwbfwoxrp4q: - resolution: {integrity: sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: '*' - dependencies: - '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 4.33.0 - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/typescript-estree': 4.33.0_typescript@5.1.6 - eslint: 8.40.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.40.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/experimental-utils/5.39.0_uci2wugtwpizkleuwbfwoxrp4q: - resolution: {integrity: sha512-n5N9kG/oGu2xXhHzsWzn94s6CWoiUj59FPU2dF2IQZxPftw+q6Jm5sV2vj5qTgAElRooHhrgtl2gxBQDCPt6WA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@typescript-eslint/utils': 5.39.0_uci2wugtwpizkleuwbfwoxrp4q - eslint: 8.40.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/parser/6.4.0_uci2wugtwpizkleuwbfwoxrp4q: - resolution: {integrity: sha512-I1Ah1irl033uxjxO9Xql7+biL3YD7w9IU8zF+xlzD/YxY6a4b7DYA08PXUUCbm2sEljwJF6ERFy2kTGAGcNilg==} + /@typescript-eslint/parser/6.7.4_loebgezstcsvd2poh2d55fifke: + resolution: {integrity: sha512-I5zVZFY+cw4IMZUeNCU7Sh2PO5O57F7Lr0uyhgCJmhN/BuTlnc55KxPonR4+EM3GBdfiCyGZye6DgMjtubQkmA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -5555,25 +5525,17 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.4.0 - '@typescript-eslint/types': 6.4.0 - '@typescript-eslint/typescript-estree': 6.4.0_typescript@5.1.6 - '@typescript-eslint/visitor-keys': 6.4.0 + '@typescript-eslint/scope-manager': 6.7.4 + '@typescript-eslint/types': 6.7.4 + '@typescript-eslint/typescript-estree': 6.7.4_typescript@5.1.6 + '@typescript-eslint/visitor-keys': 6.7.4 debug: 4.3.4 - eslint: 8.40.0 + eslint: 8.50.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/4.33.0: - resolution: {integrity: sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dependencies: - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/visitor-keys': 4.33.0 - dev: true - /@typescript-eslint/scope-manager/5.39.0: resolution: {integrity: sha512-/I13vAqmG3dyqMVSZPjsbuNQlYS082Y7OMkwhCfLXYsmlI0ca4nkL7wJ/4gjX70LD4P8Hnw1JywUVVAwepURBw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5582,16 +5544,24 @@ packages: '@typescript-eslint/visitor-keys': 5.39.0 dev: true - /@typescript-eslint/scope-manager/6.4.0: - resolution: {integrity: sha512-TUS7vaKkPWDVvl7GDNHFQMsMruD+zhkd3SdVW0d7b+7Zo+bd/hXJQ8nsiUZMi1jloWo6c9qt3B7Sqo+flC1nig==} + /@typescript-eslint/scope-manager/5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + dev: true + + /@typescript-eslint/scope-manager/6.7.4: + resolution: {integrity: sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.4.0 - '@typescript-eslint/visitor-keys': 6.4.0 + '@typescript-eslint/types': 6.7.4 + '@typescript-eslint/visitor-keys': 6.7.4 dev: true - /@typescript-eslint/type-utils/6.4.0_uci2wugtwpizkleuwbfwoxrp4q: - resolution: {integrity: sha512-TvqrUFFyGY0cX3WgDHcdl2/mMCWCDv/0thTtx/ODMY1QhEiyFtv/OlLaNIiYLwRpAxAtOLOY9SUf1H3Q3dlwAg==} + /@typescript-eslint/type-utils/6.7.4_loebgezstcsvd2poh2d55fifke: + resolution: {integrity: sha512-n+g3zi1QzpcAdHFP9KQF+rEFxMb2KxtnJGID3teA/nxKHOVi3ylKovaqEzGBbVY2pBttU6z85gp0D00ufLzViQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -5600,42 +5570,42 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.4.0_typescript@5.1.6 - '@typescript-eslint/utils': 6.4.0_uci2wugtwpizkleuwbfwoxrp4q + '@typescript-eslint/typescript-estree': 6.7.4_typescript@5.1.6 + '@typescript-eslint/utils': 6.7.4_loebgezstcsvd2poh2d55fifke debug: 4.3.4 - eslint: 8.40.0 + eslint: 8.50.0 ts-api-utils: 1.0.1_typescript@5.1.6 typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/4.33.0: - resolution: {integrity: sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dev: true - /@typescript-eslint/types/5.39.0: resolution: {integrity: sha512-gQMZrnfEBFXK38hYqt8Lkwt8f4U6yq+2H5VDSgP/qiTzC8Nw8JO3OuSUOQ2qW37S/dlwdkHDntkZM6SQhKyPhw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types/6.4.0: - resolution: {integrity: sha512-+FV9kVFrS7w78YtzkIsNSoYsnOtrYVnKWSTVXoL1761CsCRv5wpDOINgsXpxD67YCLZtVQekDDyaxfjVWUJmmg==} + /@typescript-eslint/types/5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@typescript-eslint/types/6.7.4: + resolution: {integrity: sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree/4.33.0_typescript@5.1.6: - resolution: {integrity: sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==} - engines: {node: ^10.12.0 || >=12.0.0} + /@typescript-eslint/typescript-estree/5.39.0_typescript@5.1.6: + resolution: {integrity: sha512-qLFQP0f398sdnogJoLtd43pUgB18Q50QSA+BTE5h3sUxySzbWDpTSdgt4UyxNSozY/oDK2ta6HVAzvGgq8JYnA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/visitor-keys': 4.33.0 + '@typescript-eslint/types': 5.39.0 + '@typescript-eslint/visitor-keys': 5.39.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -5646,8 +5616,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree/5.39.0_typescript@5.1.6: - resolution: {integrity: sha512-qLFQP0f398sdnogJoLtd43pUgB18Q50QSA+BTE5h3sUxySzbWDpTSdgt4UyxNSozY/oDK2ta6HVAzvGgq8JYnA==} + /@typescript-eslint/typescript-estree/5.62.0_typescript@5.1.6: + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -5655,8 +5625,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.39.0 - '@typescript-eslint/visitor-keys': 5.39.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -5667,8 +5637,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree/6.4.0_typescript@5.1.6: - resolution: {integrity: sha512-iDPJArf/K2sxvjOR6skeUCNgHR/tCQXBsa+ee1/clRKr3olZjZ/dSkXPZjG6YkPtnW6p5D1egeEPMCW6Gn4yLA==} + /@typescript-eslint/typescript-estree/6.7.4_typescript@5.1.6: + resolution: {integrity: sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -5676,8 +5646,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.4.0 - '@typescript-eslint/visitor-keys': 6.4.0 + '@typescript-eslint/types': 6.7.4 + '@typescript-eslint/visitor-keys': 6.7.4 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -5688,49 +5658,61 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.39.0_uci2wugtwpizkleuwbfwoxrp4q: + /@typescript-eslint/utils/5.39.0_loebgezstcsvd2poh2d55fifke: resolution: {integrity: sha512-+DnY5jkpOpgj+EBtYPyHRjXampJfC0yUZZzfzLuUWVZvCuKqSdJVC8UhdWipIw7VKNTfwfAPiOWzYkAwuIhiAg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@types/json-schema': 7.0.11 + '@types/json-schema': 7.0.12 '@typescript-eslint/scope-manager': 5.39.0 '@typescript-eslint/types': 5.39.0 '@typescript-eslint/typescript-estree': 5.39.0_typescript@5.1.6 - eslint: 8.40.0 + eslint: 8.50.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.40.0 + eslint-utils: 3.0.0_eslint@8.50.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/utils/6.4.0_uci2wugtwpizkleuwbfwoxrp4q: - resolution: {integrity: sha512-BvvwryBQpECPGo8PwF/y/q+yacg8Hn/2XS+DqL/oRsOPK+RPt29h5Ui5dqOKHDlbXrAeHUTnyG3wZA0KTDxRZw==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/utils/5.62.0_loebgezstcsvd2poh2d55fifke: + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.40.0 + '@eslint-community/eslint-utils': 4.4.0_eslint@8.50.0 '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 6.4.0 - '@typescript-eslint/types': 6.4.0 - '@typescript-eslint/typescript-estree': 6.4.0_typescript@5.1.6 - eslint: 8.40.0 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 + eslint: 8.50.0 + eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/4.33.0: - resolution: {integrity: sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + /@typescript-eslint/utils/6.7.4_loebgezstcsvd2poh2d55fifke: + resolution: {integrity: sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/types': 4.33.0 - eslint-visitor-keys: 2.1.0 + '@eslint-community/eslint-utils': 4.4.0_eslint@8.50.0 + '@types/json-schema': 7.0.12 + '@types/semver': 7.5.0 + '@typescript-eslint/scope-manager': 6.7.4 + '@typescript-eslint/types': 6.7.4 + '@typescript-eslint/typescript-estree': 6.7.4_typescript@5.1.6 + eslint: 8.50.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript dev: true /@typescript-eslint/visitor-keys/5.39.0: @@ -5741,11 +5723,19 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys/6.4.0: - resolution: {integrity: sha512-yJSfyT+uJm+JRDWYRYdCm2i+pmvXJSMtPR9Cq5/XQs4QIgNoLcoRtDdzsLbLsFM/c6um6ohQkg/MLxWvoIndJA==} + /@typescript-eslint/visitor-keys/5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@typescript-eslint/visitor-keys/6.7.4: + resolution: {integrity: sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/types': 6.7.4 eslint-visitor-keys: 3.4.3 dev: true @@ -6661,14 +6651,6 @@ packages: /argparse/2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - /aria-query/4.2.2: - resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==} - engines: {node: '>=6.0'} - dependencies: - '@babel/runtime': 7.19.0 - '@babel/runtime-corejs3': 7.19.1 - dev: true - /aria-query/5.0.2: resolution: {integrity: sha512-eigU3vhqSO+Z8BKDnVLN/ompjhf3pYzecKXz8+whRy+9gZu8n1TCGfwzQUUPnqdHl9ax1Hr9031orZ+UOEYr7Q==} engines: {node: '>=6.0'} @@ -6691,14 +6673,14 @@ packages: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} dev: true - /array-includes/3.1.5: - resolution: {integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==} + /array-includes/3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.4 - get-intrinsic: 1.1.3 + define-properties: 1.2.0 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 is-string: 1.0.7 dev: true @@ -6707,24 +6689,58 @@ packages: engines: {node: '>=8'} dev: true - /array.prototype.flat/1.3.0: - resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} + /array.prototype.findlastindex/1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: true + + /array.prototype.flat/1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.4 + define-properties: 1.2.0 + es-abstract: 1.22.2 es-shim-unscopables: 1.0.0 dev: true - /array.prototype.flatmap/1.3.0: - resolution: {integrity: sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==} + /array.prototype.flatmap/1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.4 + define-properties: 1.2.0 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + dev: true + + /array.prototype.tosorted/1.1.2: + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.2 es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: true + + /arraybuffer.prototype.slice/1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 dev: true /arrify/1.0.1: @@ -6778,7 +6794,7 @@ packages: /async-mutex/0.2.6: resolution: {integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==} dependencies: - tslib: 2.4.1 + tslib: 2.6.2 /async/2.6.4: resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} @@ -6786,6 +6802,12 @@ packages: lodash: 4.17.21 dev: true + /asynciterator.prototype/1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + dependencies: + has-symbols: 1.0.3 + dev: true + /asynckit/0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -6805,8 +6827,8 @@ packages: resolution: {integrity: sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==} dev: true - /axe-core/4.4.3: - resolution: {integrity: sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==} + /axe-core/4.8.2: + resolution: {integrity: sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g==} engines: {node: '>=4'} dev: true @@ -6833,8 +6855,10 @@ packages: - debug dev: true - /axobject-query/2.2.0: - resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==} + /axobject-query/3.2.1: + resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} + dependencies: + dequal: 2.0.3 dev: true /babel-jest/27.5.1: @@ -6855,17 +6879,17 @@ packages: - supports-color dev: true - /babel-jest/29.6.2_@babel+core@7.21.3: + /babel-jest/29.6.2_@babel+core@7.23.0: resolution: {integrity: sha512-BYCzImLos6J3BH/+HvUCHG1dTf2MzmAB4jaVxHV+29RZLjR29XuYTmsf2sdDwkrb+FczkGo3kOhE7ga6sI0P4A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.23.0 '@jest/transform': 29.6.2 '@types/babel__core': 7.1.19 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.5.0_@babel+core@7.21.3 + babel-preset-jest: 29.5.0_@babel+core@7.23.0 chalk: 4.1.2 graceful-fs: 4.2.10 slash: 3.0.0 @@ -6904,7 +6928,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 '@types/babel__core': 7.1.19 '@types/babel__traverse': 7.18.2 dev: true @@ -6914,7 +6938,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.22.15 - '@babel/types': 7.22.15 + '@babel/types': 7.23.0 '@types/babel__core': 7.1.19 '@types/babel__traverse': 7.18.2 dev: true @@ -6961,7 +6985,7 @@ packages: styled-components: '>= 2' dependencies: '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-module-imports': 7.18.6 + '@babel/helper-module-imports': 7.22.15 babel-plugin-syntax-jsx: 6.18.0 lodash: 4.17.21 picomatch: 2.3.1 @@ -6991,24 +7015,24 @@ packages: '@babel/plugin-syntax-top-level-await': 7.14.5 dev: true - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.21.3: + /babel-preset-current-node-syntax/1.0.1_@babel+core@7.23.0: resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.3 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.21.3 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.21.3 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.21.3 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.21.3 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.21.3 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.21.3 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.21.3 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.21.3 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.21.3 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.21.3 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.21.3 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.21.3 + '@babel/core': 7.23.0 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.23.0 + '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.23.0 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.23.0 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.23.0 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.23.0 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.23.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.23.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.23.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.23.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.23.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.23.0 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.23.0 dev: true /babel-preset-jest/27.5.1: @@ -7021,15 +7045,15 @@ packages: babel-preset-current-node-syntax: 1.0.1 dev: true - /babel-preset-jest/29.5.0_@babel+core@7.21.3: + /babel-preset-jest/29.5.0_@babel+core@7.23.0: resolution: {integrity: sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.23.0 babel-plugin-jest-hoist: 29.5.0 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.21.3 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.23.0 dev: true /balanced-match/1.0.2: @@ -7065,6 +7089,11 @@ packages: resolution: {integrity: sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==} engines: {node: '>=0.6'} + /big-integer/1.6.51: + resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} + engines: {node: '>=0.6'} + dev: true + /big.js/5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} dev: true @@ -7165,6 +7194,13 @@ packages: bs58: 4.0.1 text-encoding-utf-8: 1.0.2 + /bplist-parser/0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: '>= 5.10.0'} + dependencies: + big-integer: 1.6.51 + dev: true + /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -7258,16 +7294,6 @@ packages: node-releases: 2.0.13 update-browserslist-db: 1.0.11_browserslist@4.21.10 - /browserslist/4.21.4: - resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001415 - electron-to-chromium: 1.4.272 - node-releases: 2.0.6 - update-browserslist-db: 1.0.9_browserslist@4.21.4 - /bs58/4.0.1: resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} dependencies: @@ -7338,6 +7364,13 @@ packages: semver: 7.5.4 dev: true + /bundle-name/3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} + engines: {node: '>=12'} + dependencies: + run-applescript: 5.0.0 + dev: true + /busboy/1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -7904,7 +7937,6 @@ packages: /convert-source-map/2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - dev: true /cookie-signature/1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} @@ -7940,11 +7972,6 @@ packages: browserslist: 4.21.10 dev: false - /core-js-pure/3.25.5: - resolution: {integrity: sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg==} - requiresBuild: true - dev: true - /core-util-is/1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} dev: true @@ -8372,6 +8399,24 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + /default-browser-id/3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} + engines: {node: '>=12'} + dependencies: + bplist-parser: 0.2.0 + untildify: 4.0.0 + dev: true + + /default-browser/4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} + engines: {node: '>=14.16'} + dependencies: + bundle-name: 3.0.0 + default-browser-id: 3.0.0 + execa: 7.2.0 + titleize: 3.0.0 + dev: true + /defaults/1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: @@ -8387,12 +8432,18 @@ packages: engines: {node: '>=10'} dev: true - /define-properties/1.1.4: - resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} + /define-data-property/1.1.0: + resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} engines: {node: '>= 0.4'} dependencies: + get-intrinsic: 1.2.1 + gopd: 1.0.1 has-property-descriptors: 1.0.0 - object-keys: 1.1.1 + dev: true + + /define-lazy-prop/3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} dev: true /define-properties/1.2.0: @@ -8403,6 +8454,15 @@ packages: object-keys: 1.1.1 dev: true + /define-properties/1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + /delay/5.0.0: resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} engines: {node: '>=10'} @@ -8419,6 +8479,11 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + /dequal/2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: true + /des.js/1.0.1: resolution: {integrity: sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==} dependencies: @@ -8572,7 +8637,7 @@ packages: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 - tslib: 2.4.1 + tslib: 2.6.2 dev: false /dotenv/10.0.0: @@ -8621,9 +8686,6 @@ packages: - debug - utf-8-validate - /electron-to-chromium/1.4.272: - resolution: {integrity: sha512-KS6gPPGNrzpVv9HzFVq+Etd0AjZEPr5pvaTBn2yD6KV4+cKW4I0CJoJNgmTG6gUQPAMZ4wIPtcOuoou3qFAZCA==} - /electron-to-chromium/1.4.508: resolution: {integrity: sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg==} @@ -8721,34 +8783,49 @@ packages: stackframe: 1.3.4 dev: false - /es-abstract/1.20.4: - resolution: {integrity: sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==} + /es-abstract/1.22.2: + resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} engines: {node: '>= 0.4'} dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 es-to-primitive: 1.2.1 - function-bind: 1.1.1 - function.prototype.name: 1.1.5 + function.prototype.name: 1.1.6 get-intrinsic: 1.2.1 get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 has: 1.0.3 has-property-descriptors: 1.0.0 + has-proto: 1.0.1 has-symbols: 1.0.3 internal-slot: 1.0.5 + is-array-buffer: 3.0.2 is-callable: 1.2.7 is-negative-zero: 2.0.2 is-regex: 1.1.4 is-shared-array-buffer: 1.0.2 is-string: 1.0.7 + is-typed-array: 1.1.12 is-weakref: 1.0.2 - object-inspect: 1.12.2 + object-inspect: 1.12.3 object-keys: 1.1.1 object.assign: 4.1.4 - regexp.prototype.flags: 1.5.0 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 safe-regex-test: 1.0.0 - string.prototype.trimend: 1.0.5 - string.prototype.trimstart: 1.0.5 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 unbox-primitive: 1.0.2 + which-typed-array: 1.1.11 dev: true /es-get-iterator/1.1.3: @@ -8765,6 +8842,34 @@ packages: stop-iteration-iterator: 1.0.0 dev: true + /es-iterator-helpers/1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-set-tostringtag: 2.0.1 + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + iterator.prototype: 1.1.2 + safe-array-concat: 1.0.1 + dev: true + + /es-set-tostringtag/2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: true + /es-shim-unscopables/1.0.0: resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} dependencies: @@ -8878,7 +8983,7 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-airbnb-base/15.0.0_lw64bwrfdlvteab5a4bczvvhwa: + /eslint-config-airbnb-base/15.0.0_mc36sq7crv2v5vtlozlclqwu5e: resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: @@ -8886,29 +8991,29 @@ packages: eslint-plugin-import: ^2.25.2 dependencies: confusing-browser-globals: 1.0.11 - eslint: 8.40.0 - eslint-plugin-import: 2.26.0_teivguz2a5ebl7wcdrfteaffdu + eslint: 8.50.0 + eslint-plugin-import: 2.28.1_4nytrgfpfmroylhx7ogxfohaye object.assign: 4.1.4 object.entries: 1.1.5 semver: 6.3.0 dev: true - /eslint-config-airbnb-typescript/17.0.0_vdhlykdhvjoo4fr4c3xx3t4bwm: - resolution: {integrity: sha512-elNiuzD0kPAPTXjFWg+lE24nMdHMtuxgYoD30OyMD6yrW1AhFZPAg27VX7d3tzOErw+dgJTNWfRSDqEcXb4V0g==} + /eslint-config-airbnb-typescript/17.1.0_fwsuazv5pgoz2k7mdjirunpzam: + resolution: {integrity: sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==} peerDependencies: - '@typescript-eslint/eslint-plugin': ^5.13.0 - '@typescript-eslint/parser': ^5.0.0 + '@typescript-eslint/eslint-plugin': ^5.13.0 || ^6.0.0 + '@typescript-eslint/parser': ^5.0.0 || ^6.0.0 eslint: ^7.32.0 || ^8.2.0 eslint-plugin-import: ^2.25.3 dependencies: - '@typescript-eslint/eslint-plugin': 6.4.0_6xyo25vqo4dr5kbllg5hzwoxiq - '@typescript-eslint/parser': 6.4.0_uci2wugtwpizkleuwbfwoxrp4q - eslint: 8.40.0 - eslint-config-airbnb-base: 15.0.0_lw64bwrfdlvteab5a4bczvvhwa - eslint-plugin-import: 2.26.0_teivguz2a5ebl7wcdrfteaffdu + '@typescript-eslint/eslint-plugin': 6.7.4_guxi2snvfa5crx362if2oanle4 + '@typescript-eslint/parser': 6.7.4_loebgezstcsvd2poh2d55fifke + eslint: 8.50.0 + eslint-config-airbnb-base: 15.0.0_mc36sq7crv2v5vtlozlclqwu5e + eslint-plugin-import: 2.28.1_4nytrgfpfmroylhx7ogxfohaye dev: true - /eslint-config-airbnb/19.0.4_t3pn7eipnd2qxg5ixa3gfmgeju: + /eslint-config-airbnb/19.0.4_guzvj7gquc25zefilzm6da3qvu: resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==} engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -8918,17 +9023,17 @@ packages: eslint-plugin-react: ^7.28.0 eslint-plugin-react-hooks: ^4.3.0 dependencies: - eslint: 8.40.0 - eslint-config-airbnb-base: 15.0.0_lw64bwrfdlvteab5a4bczvvhwa - eslint-plugin-import: 2.26.0_teivguz2a5ebl7wcdrfteaffdu - eslint-plugin-jsx-a11y: 6.6.1_eslint@8.40.0 - eslint-plugin-react: 7.31.8_eslint@8.40.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.40.0 + eslint: 8.50.0 + eslint-config-airbnb-base: 15.0.0_mc36sq7crv2v5vtlozlclqwu5e + eslint-plugin-import: 2.28.1_4nytrgfpfmroylhx7ogxfohaye + eslint-plugin-jsx-a11y: 6.7.1_eslint@8.50.0 + eslint-plugin-react: 7.33.2_eslint@8.50.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.50.0 object.assign: 4.1.4 object.entries: 1.1.5 dev: true - /eslint-config-next/13.4.19_uci2wugtwpizkleuwbfwoxrp4q: + /eslint-config-next/13.4.19_loebgezstcsvd2poh2d55fifke: resolution: {integrity: sha512-WE8367sqMnjhWHvR5OivmfwENRQ1ixfNE9hZwQqNCsd+iM3KnuMc1V8Pt6ytgjxjf23D+xbesADv9x3xaKfT3g==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 @@ -8939,39 +9044,40 @@ packages: dependencies: '@next/eslint-plugin-next': 13.4.19 '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/parser': 6.4.0_uci2wugtwpizkleuwbfwoxrp4q - eslint: 8.40.0 - eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 3.6.0_2wxqphpwcinyhumeynd74mwpbq - eslint-plugin-import: 2.26.0_kyhtdw2q2al2k3bkndfvgnwnku - eslint-plugin-jsx-a11y: 6.6.1_eslint@8.40.0 - eslint-plugin-react: 7.31.8_eslint@8.40.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.40.0 + '@typescript-eslint/parser': 6.7.4_loebgezstcsvd2poh2d55fifke + eslint: 8.50.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.0_s2du2rc4ao3us66rgpo7nyhz2u + eslint-plugin-import: 2.28.1_72p22e7pka7ofgulep5ks3m45i + eslint-plugin-jsx-a11y: 6.7.1_eslint@8.50.0 + eslint-plugin-react: 7.33.2_eslint@8.50.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.50.0 typescript: 5.1.6 transitivePeerDependencies: - eslint-import-resolver-webpack - supports-color dev: true - /eslint-config-prettier/8.5.0_eslint@8.40.0: - resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} + /eslint-config-prettier/9.0.0_eslint@8.50.0: + resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.40.0 + eslint: 8.50.0 dev: true - /eslint-import-resolver-node/0.3.6: - resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} + /eslint-import-resolver-node/0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 - resolve: 1.22.1 + is-core-module: 2.13.0 + resolve: 1.22.6 transitivePeerDependencies: - supports-color dev: true - /eslint-import-resolver-typescript/3.6.0_2wxqphpwcinyhumeynd74mwpbq: + /eslint-import-resolver-typescript/3.6.0_s2du2rc4ao3us66rgpo7nyhz2u: resolution: {integrity: sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -8980,12 +9086,12 @@ packages: dependencies: debug: 4.3.4 enhanced-resolve: 5.15.0 - eslint: 8.40.0 - eslint-module-utils: 2.7.4_4qaancrmepsualvwplgnio22di - eslint-plugin-import: 2.26.0_kyhtdw2q2al2k3bkndfvgnwnku + eslint: 8.50.0 + eslint-module-utils: 2.8.0_ljkz64xomn7pmeae2x4634mqqm + eslint-plugin-import: 2.28.1_72p22e7pka7ofgulep5ks3m45i fast-glob: 3.3.1 get-tsconfig: 4.7.0 - is-core-module: 2.11.0 + is-core-module: 2.13.0 is-glob: 4.0.3 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -8994,8 +9100,8 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_4qaancrmepsualvwplgnio22di: - resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} + /eslint-module-utils/2.8.0_2koj2nlfkn7hmvx3bc24wyffmi: + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -9015,17 +9121,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.4.0_uci2wugtwpizkleuwbfwoxrp4q + '@typescript-eslint/parser': 6.7.4_loebgezstcsvd2poh2d55fifke debug: 3.2.7 - eslint: 8.40.0 - eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 3.6.0_2wxqphpwcinyhumeynd74mwpbq + eslint: 8.50.0 + eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils/2.7.4_hbcrnuum7qh3wmnpmvmnmg7m74: - resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} + /eslint-module-utils/2.8.0_ljkz64xomn7pmeae2x4634mqqm: + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -9045,16 +9150,17 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.4.0_uci2wugtwpizkleuwbfwoxrp4q + '@typescript-eslint/parser': 6.7.4_loebgezstcsvd2poh2d55fifke debug: 3.2.7 - eslint: 8.40.0 - eslint-import-resolver-node: 0.3.6 + eslint: 8.50.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.0_s2du2rc4ao3us66rgpo7nyhz2u transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import/2.26.0_kyhtdw2q2al2k3bkndfvgnwnku: - resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} + /eslint-plugin-import/2.28.1_4nytrgfpfmroylhx7ogxfohaye: + resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -9063,29 +9169,33 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.4.0_uci2wugtwpizkleuwbfwoxrp4q - array-includes: 3.1.5 - array.prototype.flat: 1.3.0 - debug: 2.6.9 + '@typescript-eslint/parser': 6.7.4_loebgezstcsvd2poh2d55fifke + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.40.0 - eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_4qaancrmepsualvwplgnio22di + eslint: 8.50.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0_2koj2nlfkn7hmvx3bc24wyffmi has: 1.0.3 - is-core-module: 2.10.0 + is-core-module: 2.13.0 is-glob: 4.0.3 minimatch: 3.1.2 - object.values: 1.1.5 - resolve: 1.22.1 - tsconfig-paths: 3.14.1 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.14.2 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color dev: true - /eslint-plugin-import/2.26.0_teivguz2a5ebl7wcdrfteaffdu: - resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} + /eslint-plugin-import/2.28.1_72p22e7pka7ofgulep5ks3m45i: + resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -9094,33 +9204,37 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.4.0_uci2wugtwpizkleuwbfwoxrp4q - array-includes: 3.1.5 - array.prototype.flat: 1.3.0 - debug: 2.6.9 + '@typescript-eslint/parser': 6.7.4_loebgezstcsvd2poh2d55fifke + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.40.0 - eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_hbcrnuum7qh3wmnpmvmnmg7m74 + eslint: 8.50.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0_ljkz64xomn7pmeae2x4634mqqm has: 1.0.3 - is-core-module: 2.10.0 + is-core-module: 2.13.0 is-glob: 4.0.3 minimatch: 3.1.2 - object.values: 1.1.5 - resolve: 1.22.1 - tsconfig-paths: 3.14.1 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.14.2 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color dev: true - /eslint-plugin-jest/25.7.0_qr5eawmrjz3i5thgixgsqbtyru: - resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /eslint-plugin-jest/27.4.2_heageztkagfqs436e2a3iij4vm: + resolution: {integrity: sha512-3Nfvv3wbq2+PZlRTf2oaAWXWwbdBejFRBR2O8tAO67o+P8zno+QGbcDYaAXODlreXVg+9gvWhKKmG2rgfb8GEg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/eslint-plugin': ^4.0.0 || ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 + eslint: ^7.0.0 || ^8.0.0 jest: '*' peerDependenciesMeta: '@typescript-eslint/eslint-plugin': @@ -9128,94 +9242,103 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.4.0_6xyo25vqo4dr5kbllg5hzwoxiq - '@typescript-eslint/experimental-utils': 5.39.0_uci2wugtwpizkleuwbfwoxrp4q - eslint: 8.40.0 + '@typescript-eslint/eslint-plugin': 6.7.4_guxi2snvfa5crx362if2oanle4 + '@typescript-eslint/utils': 5.39.0_loebgezstcsvd2poh2d55fifke + eslint: 8.50.0 jest: 29.6.2_texb6yekbdrurkf2spvwkwkdam transitivePeerDependencies: - supports-color - typescript dev: true - /eslint-plugin-jsx-a11y/6.6.1_eslint@8.40.0: - resolution: {integrity: sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==} + /eslint-plugin-jsx-a11y/6.7.1_eslint@8.50.0: + resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': 7.19.0 - aria-query: 4.2.2 - array-includes: 3.1.5 + '@babel/runtime': 7.23.1 + aria-query: 5.1.3 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 ast-types-flow: 0.0.7 - axe-core: 4.4.3 - axobject-query: 2.2.0 + axe-core: 4.8.2 + axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.40.0 + eslint: 8.50.0 has: 1.0.3 jsx-ast-utils: 3.3.3 language-tags: 1.0.5 minimatch: 3.1.2 - semver: 6.3.0 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + semver: 6.3.1 dev: true - /eslint-plugin-prettier/4.2.1_vhbggrrdii5cyge62u7selwuu4: - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} + /eslint-plugin-prettier/5.0.0_aqgyrhchy2rsdk3dpe2whc44ye: + resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=7.28.0' + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' eslint-config-prettier: '*' - prettier: '>=2.0.0' + prettier: '>=3.0.0' peerDependenciesMeta: + '@types/eslint': + optional: true eslint-config-prettier: optional: true dependencies: - eslint: 8.40.0 - eslint-config-prettier: 8.5.0_eslint@8.40.0 - prettier: 2.8.8 + eslint: 8.50.0 + eslint-config-prettier: 9.0.0_eslint@8.50.0 + prettier: 3.0.3 prettier-linter-helpers: 1.0.0 + synckit: 0.8.5 dev: true - /eslint-plugin-react-hooks/4.6.0_eslint@8.40.0: + /eslint-plugin-react-hooks/4.6.0_eslint@8.50.0: resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.40.0 + eslint: 8.50.0 dev: true - /eslint-plugin-react/7.31.8_eslint@8.40.0: - resolution: {integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==} + /eslint-plugin-react/7.33.2_eslint@8.50.0: + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - array-includes: 3.1.5 - array.prototype.flatmap: 1.3.0 + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.2 doctrine: 2.1.0 - eslint: 8.40.0 + es-iterator-helpers: 1.0.15 + eslint: 8.50.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.3 minimatch: 3.1.2 - object.entries: 1.1.5 - object.fromentries: 2.0.5 - object.hasown: 1.1.1 - object.values: 1.1.5 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 prop-types: 15.8.1 resolve: 2.0.0-next.4 - semver: 6.3.0 - string.prototype.matchall: 4.0.7 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 dev: true - /eslint-plugin-testing-library/4.12.4_uci2wugtwpizkleuwbfwoxrp4q: - resolution: {integrity: sha512-XZtoeyIZKFTiH8vhwnCaTo/mNrLHoLyufY4kkNg+clzZFeThWPjp+0QfrLam1on1k3JGwiRvoLH/V4QdBaB2oA==} - engines: {node: ^10.12.0 || >=12.0.0, npm: '>=6'} + /eslint-plugin-testing-library/6.0.2_loebgezstcsvd2poh2d55fifke: + resolution: {integrity: sha512-3BV6FWtLbpKFb4Y1obSdt8PC9xSqz6T+7EHB/6pSCXqVjKPoS67ck903feKMKQphd5VhrX+N51yHuVaPa7elsw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} peerDependencies: - eslint: ^7.5.0 + eslint: ^7.5.0 || ^8.0.0 dependencies: - '@typescript-eslint/experimental-utils': 4.33.0_uci2wugtwpizkleuwbfwoxrp4q - eslint: 8.40.0 + '@typescript-eslint/utils': 5.62.0_loebgezstcsvd2poh2d55fifke + eslint: 8.50.0 transitivePeerDependencies: - supports-color - typescript @@ -9237,13 +9360,13 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.40.0: + /eslint-utils/3.0.0_eslint@8.50.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.40.0 + eslint: 8.50.0 eslint-visitor-keys: 2.1.0 dev: true @@ -9257,15 +9380,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.40.0: - resolution: {integrity: sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==} + /eslint/8.50.0: + resolution: {integrity: sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.40.0 + '@eslint-community/eslint-utils': 4.4.0_eslint@8.50.0 '@eslint-community/regexpp': 4.6.2 '@eslint/eslintrc': 2.1.2 - '@eslint/js': 8.40.0 + '@eslint/js': 8.50.0 '@humanwhocodes/config-array': 0.11.11 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -9285,22 +9408,19 @@ packages: find-up: 5.0.0 glob-parent: 6.0.2 globals: 13.21.0 - grapheme-splitter: 1.0.4 + graphemer: 1.4.0 ignore: 5.2.4 - import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-sdsl: 4.4.2 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.1 + optionator: 0.9.3 strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color @@ -9640,6 +9760,21 @@ packages: strip-final-newline: 3.0.0 dev: true + /execa/7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + /exit/0.1.2: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} @@ -10116,8 +10251,18 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.20.4 + define-properties: 1.2.1 + es-abstract: 1.22.2 + functions-have-names: 1.2.3 + dev: true + + /function.prototype.name/1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 functions-have-names: 1.2.3 dev: true @@ -10186,14 +10331,6 @@ packages: resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} dev: true - /get-intrinsic/1.1.3: - resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-symbols: 1.0.3 - dev: true - /get-intrinsic/1.2.1: resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: @@ -10346,6 +10483,13 @@ packages: type-fest: 0.20.2 dev: true + /globalthis/1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: true + /globby/11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -10442,10 +10586,6 @@ packages: /graceful-fs/4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - /grapheme-splitter/1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - dev: true - /graphemer/1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true @@ -10856,6 +10996,11 @@ packages: engines: {node: '>=12.20.0'} dev: true + /human-signals/4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + dev: true + /humanize-ms/1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} dependencies: @@ -11023,15 +11168,6 @@ packages: wrap-ansi: 7.0.0 dev: true - /internal-slot/1.0.3: - resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.1 - has: 1.0.3 - side-channel: 1.0.4 - dev: true - /internal-slot/1.0.5: resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} engines: {node: '>= 0.4'} @@ -11087,6 +11223,13 @@ packages: /is-arrayish/0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + /is-async-function/2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + /is-bigint/1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: @@ -11117,14 +11260,8 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - /is-core-module/2.10.0: - resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} - dependencies: - has: 1.0.3 - dev: true - - /is-core-module/2.11.0: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + /is-core-module/2.13.0: + resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: has: 1.0.3 @@ -11135,11 +11272,29 @@ packages: has-tostringtag: 1.0.0 dev: true + /is-docker/2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + + /is-docker/3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: true + /is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} dev: true + /is-finalizationregistry/1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.2 + dev: true + /is-fullwidth-code-point/1.0.0: resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} engines: {node: '>=0.10.0'} @@ -11178,6 +11333,14 @@ packages: engines: {node: '>=6.5.0', npm: '>=3'} dev: true + /is-inside-container/1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: 3.0.0 + dev: true + /is-interactive/1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} @@ -11326,6 +11489,13 @@ packages: get-intrinsic: 1.2.1 dev: true + /is-wsl/2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + /isarray/1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -11373,8 +11543,8 @@ packages: resolution: {integrity: sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.21.3 - '@babel/parser': 7.21.3 + '@babel/core': 7.23.0 + '@babel/parser': 7.23.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 @@ -11410,8 +11580,14 @@ packages: istanbul-lib-report: 3.0.0 dev: true - /javascript-natural-sort/0.7.1: - resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} + /iterator.prototype/1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.4 + set-function-name: 2.0.1 dev: true /jayson/3.7.0: @@ -11521,11 +11697,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.23.0 '@jest/test-sequencer': 29.6.2 '@jest/types': 29.6.1 '@types/node': 18.15.13 - babel-jest: 29.6.2_@babel+core@7.21.3 + babel-jest: 29.6.2_@babel+core@7.23.0 chalk: 4.1.2 ci-info: 3.8.0 deepmerge: 4.3.1 @@ -11562,11 +11738,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.23.0 '@jest/test-sequencer': 29.6.2 '@jest/types': 29.6.1 '@types/node': 18.8.2 - babel-jest: 29.6.2_@babel+core@7.21.3 + babel-jest: 29.6.2_@babel+core@7.23.0 chalk: 4.1.2 ci-info: 3.8.0 deepmerge: 4.3.1 @@ -11828,7 +12004,7 @@ packages: jest-pnp-resolver: 1.2.2_jest-resolve@29.6.2 jest-util: 29.6.2 jest-validate: 29.6.2 - resolve: 1.22.1 + resolve: 1.22.6 resolve.exports: 2.0.2 slash: 3.0.0 dev: true @@ -11904,15 +12080,15 @@ packages: resolution: {integrity: sha512-1OdjqvqmRdGNvWXr/YZHuyhh5DeaLp1p/F8Tht/MrMw4Kr1Uu/j4lRG+iKl1DAqUJDWxtQBMk41Lnf/JETYBRA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.21.3 - '@babel/generator': 7.21.3 - '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.21.3 - '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.21.3 - '@babel/types': 7.22.15 + '@babel/core': 7.23.0 + '@babel/generator': 7.23.0 + '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.23.0 + '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.23.0 + '@babel/types': 7.23.0 '@jest/expect-utils': 29.6.2 '@jest/transform': 29.6.2 '@jest/types': 29.6.1 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.21.3 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.23.0 chalk: 4.1.2 expect: 29.6.2 graceful-fs: 4.2.10 @@ -12062,10 +12238,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /js-sdsl/4.4.2: - resolution: {integrity: sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w==} - dev: true - /js-sha256/0.9.0: resolution: {integrity: sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==} dev: false @@ -12205,19 +12377,13 @@ packages: /json-stringify-safe/5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - /json5/1.0.1: - resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} + /json5/1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true dependencies: minimist: 1.2.8 dev: true - /json5/2.2.1: - resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} - engines: {node: '>=6'} - hasBin: true - dev: true - /json5/2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -12265,7 +12431,7 @@ packages: resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} engines: {node: '>=4.0'} dependencies: - array-includes: 3.1.5 + array-includes: 3.1.7 object.assign: 4.1.4 dev: true @@ -12451,7 +12617,7 @@ packages: dependencies: big.js: 5.2.2 emojis-list: 3.0.0 - json5: 2.2.1 + json5: 2.2.3 dev: true /localforage/1.10.0: @@ -12540,7 +12706,7 @@ packages: /lower-case/2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: - tslib: 2.4.1 + tslib: 2.6.2 dev: false /lowercase-keys/1.0.1: @@ -12605,7 +12771,7 @@ packages: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} dependencies: - semver: 6.3.0 + semver: 6.3.1 dev: true /make-error/1.3.6: @@ -12670,7 +12836,7 @@ packages: /media-query-parser/2.0.2: resolution: {integrity: sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==} dependencies: - '@babel/runtime': 7.19.0 + '@babel/runtime': 7.23.1 dev: false /media-typer/0.3.0: @@ -12886,10 +13052,6 @@ packages: resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} dev: true - /minimist/1.2.7: - resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} - dev: true - /minimist/1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -13250,7 +13412,7 @@ packages: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: lower-case: 2.0.2 - tslib: 2.4.1 + tslib: 2.6.2 dev: false /node-addon-api/2.0.2: @@ -13315,9 +13477,6 @@ packages: /node-releases/2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} - /node-releases/2.0.6: - resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} - /nofilter/1.0.4: resolution: {integrity: sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==} engines: {node: '>=8'} @@ -13340,7 +13499,7 @@ packages: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.1 + resolve: 1.22.6 semver: 5.7.1 validate-npm-package-license: 3.0.4 dev: true @@ -13350,7 +13509,7 @@ packages: engines: {node: '>=10'} dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.11.0 + is-core-module: 2.13.0 semver: 7.5.4 validate-npm-package-license: 3.0.4 dev: true @@ -13462,12 +13621,16 @@ packages: /object-inspect/1.12.2: resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} + /object-inspect/1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: true + /object-is/1.1.5: resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.4 + define-properties: 1.2.1 dev: true /object-keys/1.1.1: @@ -13480,7 +13643,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.4 + define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 dev: true @@ -13490,33 +13653,51 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.4 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /object.entries/1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 dev: true - /object.fromentries/2.0.5: - resolution: {integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==} + /object.fromentries/2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.4 + define-properties: 1.2.0 + es-abstract: 1.22.2 + dev: true + + /object.groupby/1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 dev: true - /object.hasown/1.1.1: - resolution: {integrity: sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==} + /object.hasown/1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} dependencies: - define-properties: 1.1.4 - es-abstract: 1.20.4 + define-properties: 1.2.0 + es-abstract: 1.22.2 dev: true - /object.values/1.1.5: - resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==} + /object.values/1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.4 + define-properties: 1.2.0 + es-abstract: 1.22.2 dev: true /obliterator/2.0.4: @@ -13558,6 +13739,16 @@ packages: mimic-fn: 4.0.0 dev: true + /open/9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} + engines: {node: '>=14.16'} + dependencies: + default-browser: 4.0.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 2.2.0 + dev: true + /opener/1.5.2: resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true @@ -13575,16 +13766,16 @@ packages: word-wrap: 1.2.3 dev: true - /optionator/0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + /optionator/0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - word-wrap: 1.2.3 dev: true /ora/5.4.1: @@ -14033,9 +14224,9 @@ packages: fast-diff: 1.2.0 dev: true - /prettier/2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} + /prettier/3.0.3: + resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} + engines: {node: '>=14'} hasBin: true dev: true @@ -14309,7 +14500,7 @@ packages: peerDependencies: react: '>=16.13.1' dependencies: - '@babel/runtime': 7.19.0 + '@babel/runtime': 7.23.1 react: 18.2.0 dev: true @@ -14374,7 +14565,7 @@ packages: '@types/react': 18.2.21 react: 18.2.0 react-style-singleton: 2.2.1_gq4reeurwxuj4hvyerswzzqthy - tslib: 2.4.1 + tslib: 2.6.2 dev: false /react-remove-scroll/2.5.4_gq4reeurwxuj4hvyerswzzqthy: @@ -14391,7 +14582,7 @@ packages: react: 18.2.0 react-remove-scroll-bar: 2.3.3_gq4reeurwxuj4hvyerswzzqthy react-style-singleton: 2.2.1_gq4reeurwxuj4hvyerswzzqthy - tslib: 2.4.1 + tslib: 2.6.2 use-callback-ref: 1.3.0_gq4reeurwxuj4hvyerswzzqthy use-sidecar: 1.1.2_gq4reeurwxuj4hvyerswzzqthy dev: false @@ -14410,7 +14601,7 @@ packages: get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 - tslib: 2.4.1 + tslib: 2.6.2 dev: false /react-transition-state/1.1.5_biqbaboplfbrettd7655fr4n2y: @@ -14567,6 +14758,18 @@ packages: strip-indent: 3.0.0 dev: true + /reflect.getprototypeof/1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: true + /regenerate-unicode-properties/10.1.0: resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} engines: {node: '>=4'} @@ -14581,28 +14784,31 @@ packages: /regenerator-runtime/0.13.9: resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} + /regenerator-runtime/0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + /regenerator-transform/0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.19.0 + '@babel/runtime': 7.23.1 dev: false - /regexp.prototype.flags/1.4.3: - resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + /regexp.prototype.flags/1.5.0: + resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 + define-properties: 1.2.1 functions-have-names: 1.2.3 dev: true - /regexp.prototype.flags/1.5.0: - resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + /regexp.prototype.flags/1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - functions-have-names: 1.2.3 + define-properties: 1.2.1 + set-function-name: 2.0.1 dev: true /regexpu-core/5.2.1: @@ -14731,11 +14937,11 @@ packages: path-parse: 1.0.7 dev: true - /resolve/1.22.1: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + /resolve/1.22.6: + resolution: {integrity: sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==} hasBin: true dependencies: - is-core-module: 2.11.0 + is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -14743,7 +14949,7 @@ packages: resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} hasBin: true dependencies: - is-core-module: 2.11.0 + is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -14842,7 +15048,7 @@ packages: /rpc-websockets/7.5.1: resolution: {integrity: sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w==} dependencies: - '@babel/runtime': 7.19.0 + '@babel/runtime': 7.23.1 eventemitter3: 4.0.7 uuid: 8.3.2 ws: 8.13.0_3cxu5zja4e2r5wmvge7mdcljwq @@ -14853,9 +15059,16 @@ packages: /rtl-css-js/1.16.0: resolution: {integrity: sha512-Oc7PnzwIEU4M0K1J4h/7qUUaljXhQ0kCObRsZjxs2HjkpKsnoTMvSmvJ4sqgJZd0zBoEfAyTdnK/jMIYvrjySQ==} dependencies: - '@babel/runtime': 7.19.0 + '@babel/runtime': 7.23.1 dev: false + /run-applescript/5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 + dev: true + /run-async/2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -14886,13 +15099,23 @@ packages: /rxjs/7.5.7: resolution: {integrity: sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==} dependencies: - tslib: 2.4.1 + tslib: 2.6.2 dev: true /rxjs/7.8.0: resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} dependencies: - tslib: 2.4.1 + tslib: 2.6.2 + dev: true + + /safe-array-concat/1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + isarray: 2.0.5 dev: true /safe-buffer/5.1.2: @@ -14949,7 +15172,7 @@ packages: resolution: {integrity: sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==} engines: {node: '>= 12.13.0'} dependencies: - '@types/json-schema': 7.0.11 + '@types/json-schema': 7.0.12 ajv: 8.11.0 ajv-formats: 2.1.1 ajv-keywords: 5.1.0_ajv@8.11.0 @@ -14996,6 +15219,7 @@ packages: /semver/6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true + dev: true /semver/6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} @@ -15082,6 +15306,15 @@ packages: resolution: {integrity: sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==} dev: true + /set-function-name/2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.0 + dev: true + /set-harmonic-interval/1.0.1: resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} engines: {node: '>=6.9'} @@ -15209,7 +15442,7 @@ packages: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} dependencies: dot-case: 3.0.4 - tslib: 2.4.1 + tslib: 2.6.2 dev: false /solc/0.4.26: @@ -15269,11 +15502,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /source-map/0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - dev: true - /source-map/0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} @@ -15481,33 +15709,43 @@ packages: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - /string.prototype.matchall/4.0.7: - resolution: {integrity: sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==} + /string.prototype.matchall/4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} dependencies: call-bind: 1.0.2 - define-properties: 1.1.4 - es-abstract: 1.20.4 - get-intrinsic: 1.1.3 + define-properties: 1.2.0 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 has-symbols: 1.0.3 - internal-slot: 1.0.3 - regexp.prototype.flags: 1.4.3 + internal-slot: 1.0.5 + regexp.prototype.flags: 1.5.0 + set-function-name: 2.0.1 side-channel: 1.0.4 dev: true - /string.prototype.trimend/1.0.5: - resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} + /string.prototype.trim/1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + dev: true + + /string.prototype.trimend/1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.20.4 + define-properties: 1.2.1 + es-abstract: 1.22.2 dev: true - /string.prototype.trimstart/1.0.5: - resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} + /string.prototype.trimstart/1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} dependencies: call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.20.4 + define-properties: 1.2.1 + es-abstract: 1.22.2 dev: true /string_decoder/1.0.3: @@ -15641,12 +15879,12 @@ packages: client-only: 0.0.1 react: 18.2.0 - /stylelint-config-prettier/9.0.3_stylelint@14.11.0: - resolution: {integrity: sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==} + /stylelint-config-prettier/9.0.5_stylelint@14.11.0: + resolution: {integrity: sha512-U44lELgLZhbAD/xy/vncZ2Pq8sh2TnpiPvo38Ifg9+zeioR+LAkHu0i6YORIOxFafZoVg0xqQwex6e6F25S5XA==} engines: {node: '>= 12'} hasBin: true peerDependencies: - stylelint: '>=11.0.0' + stylelint: '>= 11.x < 15' dependencies: stylelint: 14.11.0 dev: true @@ -15876,6 +16114,14 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true + /synckit/0.8.5: + resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/utils': 2.4.2 + tslib: 2.6.2 + dev: true + /table/6.8.0: resolution: {integrity: sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==} engines: {node: '>=10.0.0'} @@ -15990,6 +16236,11 @@ packages: upper-case: 1.1.3 dev: true + /titleize/3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} + engines: {node: '>=12'} + dev: true + /tmp/0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -16124,12 +16375,12 @@ packages: resolution: {integrity: sha512-pefrkcd4lmIVR0LA49Imjf9DYLK8vtWhqBPA3Ya1ir8xCW0O2yjL9dsCVvI7pCodLC5q7smNpEtDR2yVulQxOg==} dev: false - /tsconfig-paths/3.14.1: - resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} + /tsconfig-paths/3.14.2: + resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} dependencies: '@types/json5': 0.0.29 - json5: 1.0.1 - minimist: 1.2.7 + json5: 1.0.2 + minimist: 1.2.8 strip-bom: 3.0.0 dev: true @@ -16138,6 +16389,10 @@ packages: /tslib/2.4.1: resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + dev: false + + /tslib/2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} /tsort/0.0.1: resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} @@ -16249,6 +16504,44 @@ packages: resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} dev: true + /typed-array-buffer/1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length/1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset/1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-length/1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: true + /typedarray-to-buffer/3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} dependencies: @@ -16363,6 +16656,11 @@ packages: engines: {node: '>= 0.8'} dev: true + /untildify/4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + dev: true + /update-browserslist-db/1.0.11_browserslist@4.21.10: resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true @@ -16373,16 +16671,6 @@ packages: escalade: 3.1.1 picocolors: 1.0.0 - /update-browserslist-db/1.0.9_browserslist@4.21.4: - resolution: {integrity: sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.21.4 - escalade: 3.1.1 - picocolors: 1.0.0 - /upper-case-first/1.1.2: resolution: {integrity: sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==} dependencies: @@ -16433,7 +16721,7 @@ packages: dependencies: '@types/react': 18.2.21 react: 18.2.0 - tslib: 2.4.1 + tslib: 2.6.2 dev: false /use-immer/0.7.0_immer@9.0.15+react@18.2.0: @@ -16459,7 +16747,7 @@ packages: '@types/react': 18.2.21 detect-node-es: 1.1.0 react: 18.2.0 - tslib: 2.4.1 + tslib: 2.6.2 dev: false /use-sync-external-store/1.2.0_react@18.2.0: @@ -17426,6 +17714,24 @@ packages: is-symbol: 1.0.4 dev: true + /which-builtin-type/1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.5 + has-tostringtag: 1.0.0 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.11 + dev: true + /which-collection/1.0.1: resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} dependencies: diff --git a/src/components/@atoms/BaseLink.tsx b/src/components/@atoms/BaseLink.tsx index 22379d5b2..29a634c0a 100644 --- a/src/components/@atoms/BaseLink.tsx +++ b/src/components/@atoms/BaseLink.tsx @@ -1,7 +1,8 @@ +import { UrlObject } from 'url' + import Link, { LinkProps } from 'next/link' import { useRouter } from 'next/router' import { PropsWithChildren, useMemo } from 'react' -import { UrlObject } from 'url' import { getDestination } from '@app/routes' diff --git a/src/components/@atoms/NameDetailItem/NameDetailItem.tsx b/src/components/@atoms/NameDetailItem/NameDetailItem.tsx index cba454974..88ef3e989 100644 --- a/src/components/@atoms/NameDetailItem/NameDetailItem.tsx +++ b/src/components/@atoms/NameDetailItem/NameDetailItem.tsx @@ -1,5 +1,6 @@ import { ReactNode } from 'react' import styled, { css } from 'styled-components' +import { useEnsAvatar } from 'wagmi' import { Avatar, mq } from '@ensdomains/thorin' @@ -7,7 +8,6 @@ import CircleTick from '@app/assets/CircleTick.svg' import { useZorb } from '@app/hooks/useZorb' import { checkETH2LDFromName } from '@app/utils/utils' -import { useEnsAvatar } from 'wagmi' import { safeDateObj } from '../../../utils/date' import { ShortExpiry } from '../ExpiryComponents/ExpiryComponents' import { OptionalLink } from '../OptionalLink/OptionalLink' @@ -24,7 +24,9 @@ const NameItemWrapper = styled.div<{ $highlight: boolean; $disabled: boolean }>( padding: ${theme.space['3']} ${theme.space['4']}; gap: ${theme.space['2']}; border-bottom: 1px solid ${theme.colors.border}; - transition: all 0.15s ease-in-out, border 0s; + transition: + all 0.15s ease-in-out, + border 0s; background: ${$highlight ? theme.colors.blueSurface : theme.colors.backgroundPrimary}; cursor: ${$disabled ? 'not-allowed' : 'pointer'}; &:hover { @@ -122,7 +124,6 @@ export const NameDetailItem = ({ name, truncatedName, expiryDate, - network, mode, selected = false, disabled = false, @@ -130,7 +131,6 @@ export const NameDetailItem = ({ children, }: Name & { expiryDate?: Date - network: number mode?: 'view' | 'select' selected?: boolean disabled?: boolean diff --git a/src/components/@atoms/NameDetailItem/TaggedNameItem.tsx b/src/components/@atoms/NameDetailItem/TaggedNameItem.tsx index 7e9cc7405..d613566a0 100644 --- a/src/components/@atoms/NameDetailItem/TaggedNameItem.tsx +++ b/src/components/@atoms/NameDetailItem/TaggedNameItem.tsx @@ -2,7 +2,7 @@ import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' import { NameWithRelation } from '@ensdomains/ensjs/subgraph' -import { Tag, mq } from '@ensdomains/thorin' +import { mq, Tag } from '@ensdomains/thorin' import { validateExpiry } from '@app/utils/utils' diff --git a/src/components/@atoms/PlusMinusControl/PlusMinusControl.tsx b/src/components/@atoms/PlusMinusControl/PlusMinusControl.tsx index 324b056bd..28b2893da 100644 --- a/src/components/@atoms/PlusMinusControl/PlusMinusControl.tsx +++ b/src/components/@atoms/PlusMinusControl/PlusMinusControl.tsx @@ -2,8 +2,8 @@ import { ChangeEventHandler, FocusEvent, ForwardedRef, - InputHTMLAttributes, forwardRef, + InputHTMLAttributes, useCallback, useState, } from 'react' diff --git a/src/components/@atoms/TypographyWithAnimatedEllipses.tsx b/src/components/@atoms/TypographyWithAnimatedEllipses.tsx index 94a695b90..4cc920095 100644 --- a/src/components/@atoms/TypographyWithAnimatedEllipses.tsx +++ b/src/components/@atoms/TypographyWithAnimatedEllipses.tsx @@ -1,4 +1,4 @@ -import styled, { DefaultTheme, css, keyframes } from 'styled-components' +import styled, { css, DefaultTheme, keyframes } from 'styled-components' import { Typography } from '@ensdomains/thorin' diff --git a/src/components/@molecules/Accordion/Accordion.tsx b/src/components/@molecules/Accordion/Accordion.tsx index 4033fa295..d9d6abeb4 100644 --- a/src/components/@molecules/Accordion/Accordion.tsx +++ b/src/components/@molecules/Accordion/Accordion.tsx @@ -75,8 +75,11 @@ const AccordionContainer = styled.div<{ flex-direction: column; width: 100%; height: 100%; - transition: 0.35s all cubic-bezier(1, 0, 0.22, 1.6), 0.3s color ease-in-out, - 0.2s border-radius ease-in-out, 0s border-width 0.1s; + transition: + 0.35s all cubic-bezier(1, 0, 0.22, 1.6), + 0.3s color ease-in-out, + 0.2s border-radius ease-in-out, + 0s border-width 0.1s; border-radius: ${theme.radii['2xLarge']}; diff --git a/src/components/@molecules/AvatarWithLink/AvatarWithLink.tsx b/src/components/@molecules/AvatarWithLink/AvatarWithLink.tsx index 608e500ff..fbe270df5 100644 --- a/src/components/@molecules/AvatarWithLink/AvatarWithLink.tsx +++ b/src/components/@molecules/AvatarWithLink/AvatarWithLink.tsx @@ -1,10 +1,10 @@ import styled, { css } from 'styled-components' +import { useEnsAvatar } from 'wagmi' import { Avatar, UpRightArrowSVG } from '@ensdomains/thorin' import { useZorb } from '@app/hooks/useZorb' import { getDestination } from '@app/routes' -import { useEnsAvatar } from 'wagmi' const Container = styled.a( ({ theme }) => css` diff --git a/src/components/@molecules/BurnFuses/BurnFusesContent.tsx b/src/components/@molecules/BurnFuses/BurnFusesContent.tsx index ca16d91ef..895934566 100644 --- a/src/components/@molecules/BurnFuses/BurnFusesContent.tsx +++ b/src/components/@molecules/BurnFuses/BurnFusesContent.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' import { ChildFuseKeys, ChildFuseReferenceType } from '@ensdomains/ensjs/utils' -import { Button, FlameSVG, Helper, Typography, mq } from '@ensdomains/thorin' +import { Button, FlameSVG, Helper, mq, Typography } from '@ensdomains/thorin' import { Spacer } from '@app/components/@atoms/Spacer' import { CurrentChildFuses } from '@app/types' diff --git a/src/components/@molecules/ConfirmationDialogView/ConfirmationDialogView.tsx b/src/components/@molecules/ConfirmationDialogView/ConfirmationDialogView.tsx index c8f1d33ed..1adad03a1 100644 --- a/src/components/@molecules/ConfirmationDialogView/ConfirmationDialogView.tsx +++ b/src/components/@molecules/ConfirmationDialogView/ConfirmationDialogView.tsx @@ -1,7 +1,7 @@ import { HTMLAttributes } from 'react' import styled, { css } from 'styled-components' -import { Button, Dialog, Typography, mq } from '@ensdomains/thorin' +import { Button, Dialog, mq, Typography } from '@ensdomains/thorin' const Container = styled.div(({ theme }) => [ css` diff --git a/src/components/@molecules/DisabledButtonWithTooltip.tsx b/src/components/@molecules/DisabledButtonWithTooltip.tsx index 8727451a0..2a6222b90 100644 --- a/src/components/@molecules/DisabledButtonWithTooltip.tsx +++ b/src/components/@molecules/DisabledButtonWithTooltip.tsx @@ -32,7 +32,6 @@ export const DisabledButtonWithTooltip = ({ mobileWidth?: number buttonWidth?: ButtonProps['width'] colorStyle?: ButtonProps['colorStyle'] - mobileButtonWidth?: string prefix?: ReactNodeNoStrings }) => { const { shouldShowTooltipIndicator, onSeen } = useTooltipSeenManager(buttonId) diff --git a/src/components/@molecules/DogFood.tsx b/src/components/@molecules/DogFood.tsx index 54c1ae0eb..25a424cc1 100644 --- a/src/components/@molecules/DogFood.tsx +++ b/src/components/@molecules/DogFood.tsx @@ -2,6 +2,7 @@ import { useEffect, useMemo, useState } from 'react' import { useForm } from 'react-hook-form' import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' +import { isAddress } from 'viem' import { useQueryClient } from 'wagmi' import { Input } from '@ensdomains/thorin' @@ -10,9 +11,8 @@ import { Spacer } from '@app/components/@atoms/Spacer' import { useAddressRecord } from '@app/hooks/ensjs/public/useAddressRecord' import useDebouncedCallback from '@app/hooks/useDebouncedCallback' import { useQueryKeys } from '@app/utils/cacheKeyFactory' -import { isAddress } from 'viem' -import { DisplayItems } from './TransactionDialogManager/DisplayItems' +import { DisplayItems } from './TransactionDialogManager/DisplayItems' const InnerContainer = styled.div(() => [ css` @@ -20,21 +20,22 @@ const InnerContainer = styled.div(() => [ `, ]) -export const DogFood = ( - { - register, - watch, - formState, - setValue, - disabled, - validations, - label, - hideLabel, - trigger - // eslint-disable-next-line prettier/prettier - }: Pick>, 'register' | 'watch' | 'formState' | 'setValue' | 'trigger'> - & { label?: string, validations?: any, disabled?: boolean, hideLabel?: boolean }, -) => { +type DogFoodProps = Pick< + ReturnType>, + 'register' | 'watch' | 'formState' | 'setValue' | 'trigger' +> & { label?: string; validations?: any; disabled?: boolean; hideLabel?: boolean } + +export const DogFood = ({ + register, + watch, + formState, + setValue, + disabled, + validations, + label, + hideLabel, + trigger, +}: DogFoodProps) => { const { t } = useTranslation('profile') const queryClient = useQueryClient() @@ -44,10 +45,10 @@ export const DogFood = ( const [ethNameInput, setEthNameInput] = useState('') const throttledSetEthNameInput = useDebouncedCallback(setEthNameInput, 500) useEffect(() => { - throttledSetEthNameInput((inputWatch || '').toLocaleLowerCase()) + throttledSetEthNameInput((inputWatch || '').toLocaleLowerCase()) }, [inputWatch, throttledSetEthNameInput]) - const queryKeyGenerator = useQueryKeys().getAddressRecord + const queryKeyGenerator = useQueryKeys().getAddressRecord const { data: addressRecordData } = useAddressRecord({ enabled: !!ethNameInput?.includes('.'), @@ -60,7 +61,7 @@ export const DogFood = ( // Update react value of address const finalValue = inputWatch?.includes('.') ? ethNameAddress : inputWatch - useEffect(() => { + useEffect(() => { setValue('address', finalValue) if (finalValue) trigger('dogfoodRaw') }, [finalValue, setValue, trigger]) @@ -86,18 +87,22 @@ export const DogFood = ( ? t('errors.invalidAddress') : undefined, hasAddressRecord: async (value) => { - if(value?.includes('.')) { + if (value?.includes('.')) { try { - const result = await queryClient.getQueryData(queryKeyGenerator({ name: value.toLowerCase() })) - if (result) { return undefined } - // eslint-disable-next-line no-empty - } catch (e){ + const result = await queryClient.getQueryData( + queryKeyGenerator({ name: value.toLowerCase() }), + ) + if (result) { + return undefined + } + // eslint-disable-next-line no-empty + } catch (e) { console.error('validation error: ', e) } return 'ENS Name has no address record' - } - }, - ...validations + } + }, + ...validations, }, })} // TODO(tate): remove as any when thorin is updated @@ -106,10 +111,8 @@ export const DogFood = ( /> {!errorMessage && finalValue && !disabled && ( <> - - + + )} diff --git a/src/components/@molecules/EditResolver/EditResolverWarnings.tsx b/src/components/@molecules/EditResolver/EditResolverWarnings.tsx index 6d71c1727..8e3d68443 100644 --- a/src/components/@molecules/EditResolver/EditResolverWarnings.tsx +++ b/src/components/@molecules/EditResolver/EditResolverWarnings.tsx @@ -11,11 +11,7 @@ const EditResolverWarnings = ({ hasWarnings, resolverWarnings }: Props) => { return ( <> -
    - {resolverWarnings?.map((message) => ( -
  • - {message}
  • - ))} -
+
    {resolverWarnings?.map((message) =>
  • - {message}
  • )}
diff --git a/src/components/@molecules/Hamburger/LanguageMenu.tsx b/src/components/@molecules/Hamburger/LanguageMenu.tsx index 98aab13df..47e99552e 100644 --- a/src/components/@molecules/Hamburger/LanguageMenu.tsx +++ b/src/components/@molecules/Hamburger/LanguageMenu.tsx @@ -3,7 +3,7 @@ import { useMemo } from 'react' import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' -import { CheckCircleSVG, LanguageSVG, LeftArrowSVG, Typography, mq } from '@ensdomains/thorin' +import { CheckCircleSVG, LanguageSVG, LeftArrowSVG, mq, Typography } from '@ensdomains/thorin' const Container = styled.div( ({ theme }) => css` diff --git a/src/components/@molecules/Hamburger/MainMenu.tsx b/src/components/@molecules/Hamburger/MainMenu.tsx index f96fcb2bc..4940761d3 100644 --- a/src/components/@molecules/Hamburger/MainMenu.tsx +++ b/src/components/@molecules/Hamburger/MainMenu.tsx @@ -5,11 +5,11 @@ import styled, { css } from 'styled-components' import { CurrencyToggle, LanguageSVG, + mq, RightChevronSVG, Spinner, Typography, WalletSVG, - mq, } from '@ensdomains/thorin' import SocialDiscord from '@app/assets/social/SocialDiscord.svg' @@ -25,8 +25,8 @@ import { SocialIcon } from '@app/components/SocialIcon' import { useChainName } from '@app/hooks/chain/useChainName' import { useGasPrice } from '@app/hooks/chain/useGasPrice' import { routes } from '@app/routes' -import { useGraphOutOfSync } from '@app/utils/SyncProvider/SyncProvider' import { makeDisplay } from '@app/utils/currency' +import { useGraphOutOfSync } from '@app/utils/SyncProvider/SyncProvider' import useUserConfig from '@app/utils/useUserConfig' const Container = styled.div( diff --git a/src/components/@molecules/LegacyDropdown/LegacyDropdown.tsx b/src/components/@molecules/LegacyDropdown/LegacyDropdown.tsx index ec00ff136..8850bc7db 100644 --- a/src/components/@molecules/LegacyDropdown/LegacyDropdown.tsx +++ b/src/components/@molecules/LegacyDropdown/LegacyDropdown.tsx @@ -1,9 +1,9 @@ import { Children, - ComponentProps, - ReactElement, cloneElement, + ComponentProps, isValidElement, + ReactElement, useCallback, useEffect, useRef, @@ -108,12 +108,17 @@ const DropdownMenuContainer = styled.div( ${() => { if ($opened) { return css` - transition: all 0.35s cubic-bezier(1, 0, 0.22, 1.6), width 0s linear, + transition: + all 0.35s cubic-bezier(1, 0, 0.22, 1.6), + width 0s linear, z-index 0s linear 0.35s; ` } return css` - transition: all 0.35s cubic-bezier(1, 0, 0.22, 1.6), width 0s linear, z-index 0s linear 0s; + transition: + all 0.35s cubic-bezier(1, 0, 0.22, 1.6), + width 0s linear, + z-index 0s linear 0s; ` }} @@ -361,11 +366,11 @@ const InnerMenuButton = styled.button( if ($open) return css` border-${$direction === 'down' ? 'top' : 'bottom'}-left-radius: ${ - theme.radii.almostExtraLarge - }; + theme.radii.almostExtraLarge + }; border-${$direction === 'down' ? 'top' : 'bottom'}-right-radius: ${ - theme.radii.almostExtraLarge - }; + theme.radii.almostExtraLarge + }; border-${$direction === 'down' ? 'bottom' : 'top'}-left-radius: none; border-${$direction === 'down' ? 'bottom' : 'top'}-right-radius: none; border-${$direction === 'down' ? 'bottom' : 'top'}-width: 0; @@ -382,8 +387,12 @@ const InnerMenuButton = styled.button( return css` color: ${theme.colors.textSecondary}; border-radius: ${theme.radii.almostExtraLarge}; - transition: 0.35s all cubic-bezier(1, 0, 0.22, 1.6), 0.15s color ease-in-out, - 0s border-width 0.15s, 0.15s border-color ease-in-out, 0s padding linear; + transition: + 0.35s all cubic-bezier(1, 0, 0.22, 1.6), + 0.15s color ease-in-out, + 0s border-width 0.15s, + 0.15s border-color ease-in-out, + 0s padding linear; &:hover { border-color: ${theme.colors.border}; diff --git a/src/components/@molecules/NFTTemplate/NFTTemplate.tsx b/src/components/@molecules/NFTTemplate/NFTTemplate.tsx index f7462fd8d..44380539b 100644 --- a/src/components/@molecules/NFTTemplate/NFTTemplate.tsx +++ b/src/components/@molecules/NFTTemplate/NFTTemplate.tsx @@ -47,7 +47,9 @@ const Text = styled.text( font-variant-numeric: tabular-nums; font-weight: bold; font-variant-ligatures: none; - font-feature-settings: 'ss01' on, 'ss03' on; + font-feature-settings: + 'ss01' on, + 'ss03' on; line-height: 34px; `, ) diff --git a/src/components/@molecules/NameListView/NameListView.tsx b/src/components/@molecules/NameListView/NameListView.tsx index a77d3dbf9..b7b444d08 100644 --- a/src/components/@molecules/NameListView/NameListView.tsx +++ b/src/components/@molecules/NameListView/NameListView.tsx @@ -105,10 +105,12 @@ export const NameListView = ({ address, isSelf, setError, setLoading }: NameList useEffect(() => { setError?.(isError) + // eslint-disable-next-line react-hooks/exhaustive-deps }, [isError]) useEffect(() => { setLoading?.(isNamesLoading) + // eslint-disable-next-line react-hooks/exhaustive-deps }, [isNamesLoading]) const { usePreparedDataInput, getTransactionFlowStage } = useTransactionFlow() diff --git a/src/components/@molecules/NameTableHeader/NameTableHeader.tsx b/src/components/@molecules/NameTableHeader/NameTableHeader.tsx index 0ca626ec1..1c4479a40 100644 --- a/src/components/@molecules/NameTableHeader/NameTableHeader.tsx +++ b/src/components/@molecules/NameTableHeader/NameTableHeader.tsx @@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' import { GetNamesForAddressParameters } from '@ensdomains/ensjs/subgraph' -import { Input, MagnifyingGlassSimpleSVG, Select, mq } from '@ensdomains/thorin' +import { Input, MagnifyingGlassSimpleSVG, mq, Select } from '@ensdomains/thorin' import DownDirectionSVG from '@app/assets/SortAscending.svg' import UpDirectionSVG from '@app/assets/SortDescending.svg' diff --git a/src/components/@molecules/ProfileEditor/Avatar/AvatarCrop.tsx b/src/components/@molecules/ProfileEditor/Avatar/AvatarCrop.tsx index f0b21ea92..68b2f3a37 100644 --- a/src/components/@molecules/ProfileEditor/Avatar/AvatarCrop.tsx +++ b/src/components/@molecules/ProfileEditor/Avatar/AvatarCrop.tsx @@ -3,7 +3,7 @@ import { useCallback, useEffect, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' -import { Button, Dialog, Slider, mq } from '@ensdomains/thorin' +import { Button, Dialog, mq, Slider } from '@ensdomains/thorin' import CropBorderSVG from '@app/assets/CropBorder.svg' import CropFrameSVG from '@app/assets/CropFrame.svg' diff --git a/src/components/@molecules/ProfileEditor/Avatar/AvatarNFT.tsx b/src/components/@molecules/ProfileEditor/Avatar/AvatarNFT.tsx index e5fa10565..1962cbad4 100644 --- a/src/components/@molecules/ProfileEditor/Avatar/AvatarNFT.tsx +++ b/src/components/@molecules/ProfileEditor/Avatar/AvatarNFT.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' import { useAccount, useInfiniteQuery } from 'wagmi' -import { Button, Dialog, Heading, Input, Typography, mq } from '@ensdomains/thorin' +import { Button, Dialog, Heading, Input, mq, Typography } from '@ensdomains/thorin' import MagnifyingGlassSVG from '@app/assets/MagnifyingGlass.svg' import { InnerDialog } from '@app/components/@atoms/InnerDialog' diff --git a/src/components/@molecules/ProfileEditor/options/accountsOptions.tsx b/src/components/@molecules/ProfileEditor/options/accountsOptions.tsx index c7cb4e068..41d891a8a 100644 --- a/src/components/@molecules/ProfileEditor/options/accountsOptions.tsx +++ b/src/components/@molecules/ProfileEditor/options/accountsOptions.tsx @@ -16,24 +16,27 @@ const IconWrapper = styled.div( `, ) -const accountsOptions = supportedTexts.reduce((list, account) => { - const socialData = getSocialData(account, '') - if (!socialData) return list - return [ - ...list, - { - value: formSafeKey(account), - label: socialData.label, - prefix: ( - - - - ), - }, - ] -}, [] as ComponentProps['options']) +const accountsOptions = supportedTexts.reduce( + (list, account) => { + const socialData = getSocialData(account, '') + if (!socialData) return list + return [ + ...list, + { + value: formSafeKey(account), + label: socialData.label, + prefix: ( + + + + ), + }, + ] + }, + [] as ComponentProps['options'], +) export default accountsOptions diff --git a/src/components/@molecules/RecordInput/RecordInput.tsx b/src/components/@molecules/RecordInput/RecordInput.tsx index 725a075a9..6fad8be7d 100644 --- a/src/components/@molecules/RecordInput/RecordInput.tsx +++ b/src/components/@molecules/RecordInput/RecordInput.tsx @@ -1,4 +1,4 @@ -import { ComponentProps, ReactNode, Ref, forwardRef } from 'react' +import { ComponentProps, forwardRef, ReactNode, Ref } from 'react' import styled, { css } from 'styled-components' import { CrossSVG, Input } from '@ensdomains/thorin' diff --git a/src/components/@molecules/SearchInput/SearchInput.tsx b/src/components/@molecules/SearchInput/SearchInput.tsx index 99f1c6fdb..c7937502d 100644 --- a/src/components/@molecules/SearchInput/SearchInput.tsx +++ b/src/components/@molecules/SearchInput/SearchInput.tsx @@ -17,11 +17,11 @@ import { GetPriceReturnType, GetWrapperDataReturnType, } from '@ensdomains/ensjs/public' -import { BackdropSurface, Portal, Typography, mq } from '@ensdomains/thorin' +import { BackdropSurface, mq, Portal, Typography } from '@ensdomains/thorin' import { useLocalStorage } from '@app/hooks/useLocalStorage' import { useRouterWithHistory } from '@app/hooks/useRouterWithHistory' -import { ValidationResult, useValidate, validate } from '@app/hooks/useValidate' +import { useValidate, validate, ValidationResult } from '@app/hooks/useValidate' import { useElementSize } from '@app/hooks/useWindowSize' import { useBreakpoint } from '@app/utils/BreakpointProvider' import { useQueryKeys } from '@app/utils/cacheKeyFactory' @@ -66,7 +66,9 @@ const SearchResultsContainer = styled.div<{ opacity: 0; z-index: 1000; transform: translateY(-${theme.space['2']}); - transition: 0.35s all cubic-bezier(1, 0, 0.22, 1.6), 0s border-color linear 0s, + transition: + 0.35s all cubic-bezier(1, 0, 0.22, 1.6), + 0s border-color linear 0s, 0s width linear 0s; ${$state === 'entered' diff --git a/src/components/@molecules/SearchInput/SearchInputBox.tsx b/src/components/@molecules/SearchInput/SearchInputBox.tsx index 87618bb7b..71fdb637d 100644 --- a/src/components/@molecules/SearchInput/SearchInputBox.tsx +++ b/src/components/@molecules/SearchInput/SearchInputBox.tsx @@ -3,7 +3,7 @@ /* eslint-disable jsx-a11y/no-static-element-interactions */ /* eslint-disable jsx-a11y/interactive-supports-focus */ -import { Dispatch, ForwardedRef, MouseEvent, SetStateAction, forwardRef } from 'react' +import { Dispatch, ForwardedRef, forwardRef, MouseEvent, SetStateAction } from 'react' import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' diff --git a/src/components/@molecules/SearchInput/SearchResult.tsx b/src/components/@molecules/SearchInput/SearchResult.tsx index 68f80fdf5..6d47f6555 100644 --- a/src/components/@molecules/SearchInput/SearchResult.tsx +++ b/src/components/@molecules/SearchInput/SearchResult.tsx @@ -6,6 +6,8 @@ import { forwardRef, useCallback, useEffect, useMemo, useRef } from 'react' import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' +import { Address } from 'viem' +import { useEnsAvatar } from 'wagmi' import { Avatar, Spinner, Tag, Typography } from '@ensdomains/thorin' @@ -15,8 +17,6 @@ import useBeautifiedName from '@app/hooks/useBeautifiedName' import { useZorb } from '@app/hooks/useZorb' import type { RegistrationStatus } from '@app/utils/registrationStatus' import { shortenAddress } from '@app/utils/utils' -import { Address } from 'viem' -import { useEnsAvatar } from 'wagmi' const SearchItem = styled.div<{ $selected?: boolean diff --git a/src/components/@molecules/TransactionDialogManager/DynamicLoadingContext.tsx b/src/components/@molecules/TransactionDialogManager/DynamicLoadingContext.tsx index 341f6a148..79fc35bc2 100644 --- a/src/components/@molecules/TransactionDialogManager/DynamicLoadingContext.tsx +++ b/src/components/@molecules/TransactionDialogManager/DynamicLoadingContext.tsx @@ -1,4 +1,4 @@ -import { Dispatch, SetStateAction, createContext } from 'react' +import { createContext, Dispatch, SetStateAction } from 'react' const DynamicLoadingContext = createContext>>(() => {}) diff --git a/src/components/@molecules/TransactionDialogManager/TransactionDialogManager.tsx b/src/components/@molecules/TransactionDialogManager/TransactionDialogManager.tsx index 816655beb..7d95e569d 100644 --- a/src/components/@molecules/TransactionDialogManager/TransactionDialogManager.tsx +++ b/src/components/@molecules/TransactionDialogManager/TransactionDialogManager.tsx @@ -4,7 +4,7 @@ import { Dispatch, useCallback, useEffect, useMemo } from 'react' import { useTranslation } from 'react-i18next' import usePrevious from 'react-use/lib/usePrevious' -import { WagmiConfig, useAccount } from 'wagmi' +import { useAccount, WagmiConfig } from 'wagmi' import { Dialog } from '@ensdomains/thorin' @@ -113,7 +113,9 @@ export const TransactionDialogManager = ({ diff --git a/src/components/@molecules/TransactionDialogManager/stage/TransactionStageModal.tsx b/src/components/@molecules/TransactionDialogManager/stage/TransactionStageModal.tsx index 88e1a9a78..9179a530f 100644 --- a/src/components/@molecules/TransactionDialogManager/stage/TransactionStageModal.tsx +++ b/src/components/@molecules/TransactionDialogManager/stage/TransactionStageModal.tsx @@ -28,7 +28,7 @@ import { useAddRecentTransaction } from '@app/hooks/transactions/useAddRecentTra import { useRecentTransactions } from '@app/hooks/transactions/useRecentTransactions' import { useIsSafeApp } from '@app/hooks/useIsSafeApp' import { usePublicClient } from '@app/hooks/usePublicClient' -import { TransactionName, createTransactionRequest } from '@app/transaction-flow/transaction' +import { createTransactionRequest, TransactionName } from '@app/transaction-flow/transaction' import { GetUniqueTransactionParameters, ManagedDialogProps, @@ -410,6 +410,7 @@ export const TransactionStageModal = ({ currentStep, transaction, }), + // eslint-disable-next-line react-hooks/exhaustive-deps [txKey, currentStep, transaction?.name, transaction?.data], ) diff --git a/src/components/AvatarWithZorb.tsx b/src/components/AvatarWithZorb.tsx index 7c92b861a..fd33c187a 100644 --- a/src/components/AvatarWithZorb.tsx +++ b/src/components/AvatarWithZorb.tsx @@ -2,7 +2,7 @@ import { ComponentProps, useEffect, useState } from 'react' import styled, { css } from 'styled-components' import { useEnsAvatar } from 'wagmi' -import { Avatar, Space, mq } from '@ensdomains/thorin' +import { Avatar, mq, Space } from '@ensdomains/thorin' import { useZorb } from '@app/hooks/useZorb' import { QuerySpace } from '@app/types' diff --git a/src/components/ConnectButton.tsx b/src/components/ConnectButton.tsx index bedac5d4e..37b2fc3d3 100644 --- a/src/components/ConnectButton.tsx +++ b/src/components/ConnectButton.tsx @@ -11,9 +11,9 @@ import { CogSVG, CopySVG, ExitSVG, + mq, PersonSVG, Profile, - mq, } from '@ensdomains/thorin' import { DropdownItem } from '@ensdomains/thorin/dist/types/components/molecules/Dropdown/Dropdown' diff --git a/src/components/Header.tsx b/src/components/Header.tsx index c13956f95..43b564366 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -71,7 +71,9 @@ const RouteContainer = styled.div<{ $state: TransitionState }>( justify-content: flex-end; flex-gap: ${theme.space['1']}; gap: ${theme.space['1']}; - transition: transform 0.15s ease-in-out, opacity 0.15s ease-in-out; + transition: + transform 0.15s ease-in-out, + opacity 0.15s ease-in-out; position: absolute; right: 0; top: 0; diff --git a/src/components/NFTWithPlaceholder.tsx b/src/components/NFTWithPlaceholder.tsx index 025207247..84bd4c0ca 100644 --- a/src/components/NFTWithPlaceholder.tsx +++ b/src/components/NFTWithPlaceholder.tsx @@ -1,8 +1,7 @@ import { ComponentProps } from 'react' import styled, { css } from 'styled-components' - - import { useEnsAvatar } from 'wagmi' + import NFTTemplate from './@molecules/NFTTemplate/NFTTemplate' const StyledNftBox = styled.div( diff --git a/src/components/Outlink.tsx b/src/components/Outlink.tsx index 322274c4d..a4011cf85 100644 --- a/src/components/Outlink.tsx +++ b/src/components/Outlink.tsx @@ -1,7 +1,8 @@ +import type { UrlObject } from 'url' + import Link from 'next/link' import { ComponentProps } from 'react' import styled, { css } from 'styled-components' -import type { UrlObject } from 'url' import { Typography } from '@ensdomains/thorin' diff --git a/src/components/ProfileSnippet.tsx b/src/components/ProfileSnippet.tsx index 8d71595d2..d66d3fc7d 100644 --- a/src/components/ProfileSnippet.tsx +++ b/src/components/ProfileSnippet.tsx @@ -2,7 +2,7 @@ import { useMemo } from 'react' import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' -import { Button, NametagSVG, Tag, Typography, mq } from '@ensdomains/thorin' +import { Button, mq, NametagSVG, Tag, Typography } from '@ensdomains/thorin' import FastForwardSVG from '@app/assets/FastForward.svg' import useBeautifiedName from '@app/hooks/useBeautifiedName' @@ -12,31 +12,30 @@ import { useTransactionFlow } from '../transaction-flow/TransactionFlowProvider' import { NameAvatar } from './AvatarWithZorb' const Container = styled.div<{ $banner?: string }>( - ({ theme, $banner }) => - css` - width: 100%; - padding: ${theme.space['4']}; - padding-top: ${theme.space['18']}; - background-image: ${$banner ? `url(${$banner})` : theme.colors.gradients.blue}; - background-repeat: no-repeat; - background-attachment: scroll; - background-size: 100% ${theme.space['28']}; - background-position-y: -1px; // for overlap with border i think - background-color: ${theme.colors.background}; - border-radius: ${theme.radii['2xLarge']}; - border: ${theme.space.px} solid ${theme.colors.border}; - display: flex; - flex-direction: column; - align-items: flex-start; - justify-content: center; - gap: ${theme.space['4']}; - flex-gap: ${theme.space['4']}; + ({ theme, $banner }) => css` + width: 100%; + padding: ${theme.space['4']}; + padding-top: ${theme.space['18']}; + background-image: ${$banner ? `url(${$banner})` : theme.colors.gradients.blue}; + background-repeat: no-repeat; + background-attachment: scroll; + background-size: 100% ${theme.space['28']}; + background-position-y: -1px; // for overlap with border i think + background-color: ${theme.colors.background}; + border-radius: ${theme.radii['2xLarge']}; + border: ${theme.space.px} solid ${theme.colors.border}; + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: center; + gap: ${theme.space['4']}; + flex-gap: ${theme.space['4']}; - ${mq.sm.min(css` - padding: ${theme.space['6']}; - padding-top: ${theme.space['12']}; - `)} - `, + ${mq.sm.min(css` + padding: ${theme.space['6']}; + padding-top: ${theme.space['12']}; + `)} + `, ) const DetailStack = styled.div( @@ -158,7 +157,6 @@ export const ProfileSnippet = ({ name, getTextRecord, button, - network, canEdit, isPrimary, children, @@ -168,7 +166,6 @@ export const ProfileSnippet = ({ button?: 'viewProfile' | 'extend' | 'register' canEdit?: boolean isPrimary?: boolean - network: number children?: React.ReactNode }) => { const router = useRouterWithHistory() diff --git a/src/components/TabBar.tsx b/src/components/TabBar.tsx index 5484cd346..888d354ee 100644 --- a/src/components/TabBar.tsx +++ b/src/components/TabBar.tsx @@ -4,7 +4,7 @@ import { Dispatch, SetStateAction, useEffect, useState } from 'react' import styled, { css } from 'styled-components' import { useEnsAvatar } from 'wagmi' -import { CrossSVG, LeftChevronSVG, PersonSVG, mq } from '@ensdomains/thorin' +import { CrossSVG, LeftChevronSVG, mq, PersonSVG } from '@ensdomains/thorin' import { useAccountSafely } from '@app/hooks/account/useAccountSafely' import { usePrimaryName } from '@app/hooks/ensjs/public/usePrimaryName' @@ -71,11 +71,9 @@ const TabWrapper = styled.div( ${theme.colors.backgroundSecondary} 60% ); padding: ${theme.space['4']}; - ${mq.sm.min( - css` - display: none; - `, - )} + ${mq.sm.min(css` + display: none; + `)} `, ) diff --git a/src/components/pages/import/[name]/AddTextRecord.tsx b/src/components/pages/import/[name]/AddTextRecord.tsx index 7e2eb5de3..052c5b5c6 100644 --- a/src/components/pages/import/[name]/AddTextRecord.tsx +++ b/src/components/pages/import/[name]/AddTextRecord.tsx @@ -1,6 +1,7 @@ import { Dispatch, SetStateAction, useState } from 'react' import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' +import { isAddress } from 'viem' import { useAccount } from 'wagmi' import { DNSProver } from '@ensdomains/dnsprovejs' @@ -13,9 +14,8 @@ import { useCopied } from '@app/hooks/useCopied' import { useBreakpoint } from '@app/utils/BreakpointProvider' import { shortenAddress } from '@app/utils/utils' -import { isAddress } from 'viem' -import { Steps } from './Steps' import { AlignedDropdown, ButtonContainer, CheckButton } from './shared' +import { Steps } from './Steps' import { DNS_OVER_HTTP_ENDPOINT, getDnsOwner } from './utils' const HelperLinks = [ @@ -167,7 +167,6 @@ export const AddTextRecord = ({ } else { // Out of sync setSyncWarning(true) - return } } catch (e) { console.error('_ens check error: ', e) diff --git a/src/components/pages/import/[name]/ClaimComplete.tsx b/src/components/pages/import/[name]/ClaimComplete.tsx index a8107c91b..ba757ec2c 100644 --- a/src/components/pages/import/[name]/ClaimComplete.tsx +++ b/src/components/pages/import/[name]/ClaimComplete.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next' import useWindowSize from 'react-use/lib/useWindowSize' import styled, { css } from 'styled-components' -import { Typography, mq } from '@ensdomains/thorin' +import { mq, Typography } from '@ensdomains/thorin' import { Spacer } from '@app/components/@atoms/Spacer' import NFTTemplate from '@app/components/@molecules/NFTTemplate/NFTTemplate' diff --git a/src/components/pages/import/[name]/ClaimDomain.tsx b/src/components/pages/import/[name]/ClaimDomain.tsx index 5b9bf9393..a5d9758ed 100644 --- a/src/components/pages/import/[name]/ClaimDomain.tsx +++ b/src/components/pages/import/[name]/ClaimDomain.tsx @@ -14,21 +14,21 @@ import { useDnsImportData } from '@app/hooks/ensjs/dns/useDnsImportData' import { useEstimateGasLimitForTransaction } from '@app/hooks/gasEstimation/useEstimateGasLimitForTransactions' import { useRecentTransactions } from '@app/hooks/transactions/useRecentTransactions' import { usePublicClient } from '@app/hooks/usePublicClient' +import { makeTransactionItem } from '@app/transaction-flow/transaction' import { CreateTransactionFlow, useTransactionFlow, } from '@app/transaction-flow/TransactionFlowProvider' -import { makeTransactionItem } from '@app/transaction-flow/transaction' import { PublicClientWithChain } from '@app/types' import { shortenAddress } from '@app/utils/utils' -import { Steps } from './Steps' import { ButtonContainer, CheckButton, hasPendingTransaction, shouldShowSuccessPage, } from './shared' +import { Steps } from './Steps' const Container = styled.div` text-align: center; diff --git a/src/components/pages/import/[name]/DNSClaim.tsx b/src/components/pages/import/[name]/DNSClaim.tsx index f4719d63d..b7e35f14d 100644 --- a/src/components/pages/import/[name]/DNSClaim.tsx +++ b/src/components/pages/import/[name]/DNSClaim.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' import { useAccount } from 'wagmi' -import { Card, Spinner, Typography, mq } from '@ensdomains/thorin' +import { Card, mq, Spinner, Typography } from '@ensdomains/thorin' import { Spacer } from '@app/components/@atoms/Spacer' import Hamburger from '@app/components/@molecules/Hamburger/Hamburger' diff --git a/src/components/pages/import/[name]/EnableDNSSEC.tsx b/src/components/pages/import/[name]/EnableDNSSEC.tsx index 524f59eec..b166c849c 100644 --- a/src/components/pages/import/[name]/EnableDNSSEC.tsx +++ b/src/components/pages/import/[name]/EnableDNSSEC.tsx @@ -7,8 +7,8 @@ import { Helper, Typography } from '@ensdomains/thorin' import { Spacer } from '@app/components/@atoms/Spacer' import { Outlink } from '@app/components/Outlink' -import { Steps } from './Steps' import { AlignedDropdown, ButtonContainer, CheckButton } from './shared' +import { Steps } from './Steps' import { isDnsSecEnabled } from './utils' const HelperLinks = [ diff --git a/src/components/pages/profile/NameSnippet.tsx b/src/components/pages/profile/NameSnippet.tsx index be01dffe0..ae087fc76 100644 --- a/src/components/pages/profile/NameSnippet.tsx +++ b/src/components/pages/profile/NameSnippet.tsx @@ -131,7 +131,6 @@ export const NameDetailSnippet = ({ name, expiryDate, ownerData, - network, showButton, dnsOwner, isCached, @@ -141,7 +140,6 @@ export const NameDetailSnippet = ({ expiryDate?: Date | null ownerData: NonNullable wrapperData: GetWrapperDataReturnType - network: number showButton?: boolean dnsOwner?: Address isCached?: boolean @@ -201,7 +199,6 @@ export const NameDetailSnippet = ({ export const NameSnippet = ({ name, - network, expiryDate, ownerData, showButton, @@ -210,7 +207,6 @@ export const NameSnippet = ({ wrapperData, }: { name: string - network: number expiryDate?: Date | null ownerData: NonNullable wrapperData: GetWrapperDataReturnType @@ -227,7 +223,6 @@ export const NameSnippet = ({ wrapperData={wrapperData} expiryDate={expiryDate} ownerData={ownerData} - network={network} showButton={showButton} dnsOwner={dnsOwner} /> diff --git a/src/components/pages/profile/ProfileDetails.tsx b/src/components/pages/profile/ProfileDetails.tsx index 7049c1814..4ea250f18 100644 --- a/src/components/pages/profile/ProfileDetails.tsx +++ b/src/components/pages/profile/ProfileDetails.tsx @@ -1,7 +1,7 @@ import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' -import { Button, Helper, Typography, mq } from '@ensdomains/thorin' +import { Button, Helper, mq, Typography } from '@ensdomains/thorin' import { CacheableComponent } from '@app/components/@atoms/CacheableComponent' import { DisabledButtonWithTooltip } from '@app/components/@molecules/DisabledButtonWithTooltip' @@ -21,12 +21,11 @@ import { } from './ProfileButton' const ProfileInfoBox = styled(CacheableComponent)( - ({ theme }) => - css` - background-color: ${theme.colors.background}; - border-radius: ${theme.radii['2xLarge']}; - border: ${theme.space.px} solid ${theme.colors.border}; - `, + ({ theme }) => css` + background-color: ${theme.colors.background}; + border-radius: ${theme.radii['2xLarge']}; + border: ${theme.space.px} solid ${theme.colors.border}; + `, ) const Stack = styled.div( diff --git a/src/components/pages/profile/[name]/registration/Registration.tsx b/src/components/pages/profile/[name]/registration/Registration.tsx index 0177deeba..a558cc982 100644 --- a/src/components/pages/profile/[name]/registration/Registration.tsx +++ b/src/components/pages/profile/[name]/registration/Registration.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' import { useAccount } from 'wagmi' -import { Dialog, Helper, Typography, mq } from '@ensdomains/thorin' +import { Dialog, Helper, mq, Typography } from '@ensdomains/thorin' import { BaseLinkWithHistory } from '@app/components/@atoms/BaseLink' import { InnerDialog } from '@app/components/@atoms/InnerDialog' @@ -82,13 +82,12 @@ const StyledInnerDialog = styled(InnerDialog)(({ theme }) => [ ]) const MoonPayHeader = styled.div( - ({ theme }) => - css` - width: 100%; - background-color: ${theme.colors.greySurface}; - color: ${theme.colors.greyPrimary}; - padding: ${theme.space['4']}; - `, + ({ theme }) => css` + width: 100%; + background-color: ${theme.colors.greySurface}; + color: ${theme.colors.greyPrimary}; + padding: ${theme.space['4']}; + `, ) const MoonPayIFrame = styled.iframe( diff --git a/src/components/pages/profile/[name]/registration/steps/Complete.tsx b/src/components/pages/profile/[name]/registration/steps/Complete.tsx index e2d672540..e0c4b20ec 100644 --- a/src/components/pages/profile/[name]/registration/steps/Complete.tsx +++ b/src/components/pages/profile/[name]/registration/steps/Complete.tsx @@ -7,7 +7,7 @@ import { decodeEventLog } from 'viem' import { useAccount } from 'wagmi' import { tokenise } from '@ensdomains/ensjs/utils' -import { Button, Typography, mq } from '@ensdomains/thorin' +import { Button, mq, Typography } from '@ensdomains/thorin' import { Invoice } from '@app/components/@atoms/Invoice/Invoice' import MobileFullWidth from '@app/components/@atoms/MobileFullWidth' diff --git a/src/components/pages/profile/[name]/registration/steps/Info.tsx b/src/components/pages/profile/[name]/registration/steps/Info.tsx index 6268fa98c..b6dc35a0d 100644 --- a/src/components/pages/profile/[name]/registration/steps/Info.tsx +++ b/src/components/pages/profile/[name]/registration/steps/Info.tsx @@ -1,7 +1,7 @@ import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' -import { Button, Heading, Typography, mq } from '@ensdomains/thorin' +import { Button, Heading, mq, Typography } from '@ensdomains/thorin' import MobileFullWidth from '@app/components/@atoms/MobileFullWidth' import { Card } from '@app/components/Card' diff --git a/src/components/pages/profile/[name]/registration/steps/Pricing/Pricing.tsx b/src/components/pages/profile/[name]/registration/steps/Pricing/Pricing.tsx index 54bc48136..edb22dc38 100644 --- a/src/components/pages/profile/[name]/registration/steps/Pricing/Pricing.tsx +++ b/src/components/pages/profile/[name]/registration/steps/Pricing/Pricing.tsx @@ -10,11 +10,11 @@ import { Field, Heading, Helper, + mq, RadioButton, RadioButtonGroup, Toggle, Typography, - mq, } from '@ensdomains/thorin' import MoonpayLogo from '@app/assets/MoonpayLogo.svg' diff --git a/src/components/pages/profile/[name]/registration/steps/Pricing/TemporaryPremium.tsx b/src/components/pages/profile/[name]/registration/steps/Pricing/TemporaryPremium.tsx index cd517b093..73b69bd43 100644 --- a/src/components/pages/profile/[name]/registration/steps/Pricing/TemporaryPremium.tsx +++ b/src/components/pages/profile/[name]/registration/steps/Pricing/TemporaryPremium.tsx @@ -10,9 +10,9 @@ import { useState, } from 'react' import { useTranslation } from 'react-i18next' -import styled, { DefaultTheme, css } from 'styled-components' +import styled, { css, DefaultTheme } from 'styled-components' -import { Button, Dropdown, Helper, Input, Typography, mq } from '@ensdomains/thorin' +import { Button, Dropdown, Helper, Input, mq, Typography } from '@ensdomains/thorin' import CalendarSVG from '@app/assets/Calendar.svg' import MobileFullWidth from '@app/components/@atoms/MobileFullWidth' @@ -68,18 +68,17 @@ const Container = styled.div( const dotStyle = ({ name, extraY = '0px', color }: { name: string; extraY?: string; color: string }) => - ({ theme }: { theme: DefaultTheme }) => - css` - content: ''; - width: ${theme.space['3']}; - height: ${theme.space['3']}; - background: ${color}; - border-radius: ${theme.radii.full}; - - position: absolute; - left: calc(var(--premium-chart-${name}-x) - ${theme.space['1.5']}); - top: calc(var(--premium-chart-${name}-y) - ${extraY} - ${theme.space['1.5']}); - ` + ({ theme }: { theme: DefaultTheme }) => css` + content: ''; + width: ${theme.space['3']}; + height: ${theme.space['3']}; + background: ${color}; + border-radius: ${theme.radii.full}; + + position: absolute; + left: calc(var(--premium-chart-${name}-x) - ${theme.space['1.5']}); + top: calc(var(--premium-chart-${name}-y) - ${extraY} - ${theme.space['1.5']}); + ` const ChartContainer = styled.div( ({ theme }) => css` diff --git a/src/components/pages/profile/[name]/registration/steps/Profile/AddProfileRecordView.tsx b/src/components/pages/profile/[name]/registration/steps/Profile/AddProfileRecordView.tsx index 614afe3d9..a62d550cd 100644 --- a/src/components/pages/profile/[name]/registration/steps/Profile/AddProfileRecordView.tsx +++ b/src/components/pages/profile/[name]/registration/steps/Profile/AddProfileRecordView.tsx @@ -3,14 +3,14 @@ import { Control, useWatch } from 'react-hook-form' import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' -import { Button, Dialog, Input, MagnifyingGlassSimpleSVG, ScrollBox, mq } from '@ensdomains/thorin' +import { Button, Dialog, Input, MagnifyingGlassSimpleSVG, mq, ScrollBox } from '@ensdomains/thorin' import DismissDialogButton from '@app/components/@atoms/DismissDialogButton/DismissDialogButton' import { Spacer } from '@app/components/@atoms/Spacer' import { + grouped as options, ProfileRecord, ProfileRecordGroup, - grouped as options, } from '@app/constants/profileRecordOptions' import { ProfileEditorForm } from '@app/hooks/useProfileEditorForm' diff --git a/src/components/pages/profile/[name]/registration/steps/Profile/OptionGroup.tsx b/src/components/pages/profile/[name]/registration/steps/Profile/OptionGroup.tsx index f43607dfc..455323c41 100644 --- a/src/components/pages/profile/[name]/registration/steps/Profile/OptionGroup.tsx +++ b/src/components/pages/profile/[name]/registration/steps/Profile/OptionGroup.tsx @@ -1,4 +1,4 @@ -import { PropsWithChildren, forwardRef } from 'react' +import { forwardRef, PropsWithChildren } from 'react' type Props = PropsWithChildren<{}> export const OptionGroup = forwardRef( diff --git a/src/components/pages/profile/[name]/registration/steps/Profile/Profile.tsx b/src/components/pages/profile/[name]/registration/steps/Profile/Profile.tsx index bca98b1a7..79f0992c9 100644 --- a/src/components/pages/profile/[name]/registration/steps/Profile/Profile.tsx +++ b/src/components/pages/profile/[name]/registration/steps/Profile/Profile.tsx @@ -5,7 +5,7 @@ import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' import { useAccount } from 'wagmi' -import { Button, Dialog, PlusSVG, Typography, mq } from '@ensdomains/thorin' +import { Button, Dialog, mq, PlusSVG, Typography } from '@ensdomains/thorin' import { ConfirmationDialogView } from '@app/components/@molecules/ConfirmationDialogView/ConfirmationDialogView' import { AvatarClickType } from '@app/components/@molecules/ProfileEditor/Avatar/AvatarButton' @@ -20,8 +20,8 @@ import { AddProfileRecordView } from './AddProfileRecordView' import { CustomProfileRecordInput } from './CustomProfileRecordInput' import { ProfileRecordInput } from './ProfileRecordInput' import { ProfileRecordTextarea } from './ProfileRecordTextarea' -import { WrappedAvatarButton } from './WrappedAvatarButton' import { profileEditorFormToProfileRecords } from './profileRecordUtils' +import { WrappedAvatarButton } from './WrappedAvatarButton' const StyledCard = styled.form(({ theme }) => [ css` diff --git a/src/components/pages/profile/[name]/registration/steps/Profile/ProfileRecordInput.tsx b/src/components/pages/profile/[name]/registration/steps/Profile/ProfileRecordInput.tsx index 9f09794a0..5a9600dcb 100644 --- a/src/components/pages/profile/[name]/registration/steps/Profile/ProfileRecordInput.tsx +++ b/src/components/pages/profile/[name]/registration/steps/Profile/ProfileRecordInput.tsx @@ -1,4 +1,4 @@ -import { ComponentProps, FocusEvent, ReactNode, Ref, RefObject, forwardRef, useMemo } from 'react' +import { ComponentProps, FocusEvent, forwardRef, ReactNode, Ref, RefObject, useMemo } from 'react' import styled, { css, useTheme } from 'styled-components' import { CrossSVG, Input } from '@ensdomains/thorin' diff --git a/src/components/pages/profile/[name]/registration/steps/Profile/profileRecordUtils.ts b/src/components/pages/profile/[name]/registration/steps/Profile/profileRecordUtils.ts index 65ab51e8b..3596a6ea0 100644 --- a/src/components/pages/profile/[name]/registration/steps/Profile/profileRecordUtils.ts +++ b/src/components/pages/profile/[name]/registration/steps/Profile/profileRecordUtils.ts @@ -1,6 +1,6 @@ import { stringToHex } from 'viem' -import { RecordOptions, getInternalCodec, getProtocolType } from '@ensdomains/ensjs/utils' +import { getInternalCodec, getProtocolType, RecordOptions } from '@ensdomains/ensjs/utils' import { ProfileRecord, ProfileRecordGroup, sortValues } from '@app/constants/profileRecordOptions' import supportedGeneralRecordKeys from '@app/constants/supportedGeneralRecordKeys.json' diff --git a/src/components/pages/profile/[name]/registration/steps/Transactions.tsx b/src/components/pages/profile/[name]/registration/steps/Transactions.tsx index 9a41c9cb9..7333f0c54 100644 --- a/src/components/pages/profile/[name]/registration/steps/Transactions.tsx +++ b/src/components/pages/profile/[name]/registration/steps/Transactions.tsx @@ -9,17 +9,17 @@ import { CountdownCircle, Dialog, Heading, + mq, Spinner, Typography, - mq, } from '@ensdomains/thorin' import { InnerDialog } from '@app/components/@atoms/InnerDialog' import MobileFullWidth from '@app/components/@atoms/MobileFullWidth' import { Card } from '@app/components/Card' import useRegistrationParams from '@app/hooks/useRegistrationParams' -import { useTransactionFlow } from '@app/transaction-flow/TransactionFlowProvider' import { makeTransactionItem } from '@app/transaction-flow/transaction' +import { useTransactionFlow } from '@app/transaction-flow/TransactionFlowProvider' import { RegistrationReducerDataItem } from '../types' diff --git a/src/components/pages/profile/[name]/registration/useMoonpayRegistration.ts b/src/components/pages/profile/[name]/registration/useMoonpayRegistration.ts index 4d85bc144..fb15167bd 100644 --- a/src/components/pages/profile/[name]/registration/useMoonpayRegistration.ts +++ b/src/components/pages/profile/[name]/registration/useMoonpayRegistration.ts @@ -1,5 +1,5 @@ import { useState } from 'react' -import { type Address, labelhash } from 'viem' +import { labelhash, type Address } from 'viem' import { useMutation, useQuery } from 'wagmi' import { useAccountSafely } from '@app/hooks/account/useAccountSafely' diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/Fuses.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/Fuses.tsx index 7f3ac9b0d..00f16257d 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/Fuses.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/Fuses.tsx @@ -2,7 +2,7 @@ import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' import { UserSettableFuses } from '@ensdomains/ensjs/utils' -import { Helper, Typography, mq } from '@ensdomains/thorin' +import { Helper, mq, Typography } from '@ensdomains/thorin' import { cacheableComponentStyles } from '@app/components/@atoms/CacheableComponent' import { Spacer } from '@app/components/@atoms/Spacer' diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/Miscellaneous/EarnifiDialog.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/Miscellaneous/EarnifiDialog.tsx index 6e6478594..86087728f 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/Miscellaneous/EarnifiDialog.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/Miscellaneous/EarnifiDialog.tsx @@ -2,9 +2,9 @@ import { ComponentProps, useRef } from 'react' import { useForm } from 'react-hook-form' import { Trans, useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' -import { P, match } from 'ts-pattern' +import { match, P } from 'ts-pattern' -import { Button, Dialog, Input, Typography, mq } from '@ensdomains/thorin' +import { Button, Dialog, Input, mq, Typography } from '@ensdomains/thorin' import { InnerDialog } from '@app/components/@atoms/InnerDialog' import { Spacer } from '@app/components/@atoms/Spacer' diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/Ownership.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/Ownership.tsx index 1123b6242..3424deb80 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/Ownership.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/Ownership.tsx @@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' import { useAccount, useQueryClient } from 'wagmi' -import { Button, Helper, Tag, Typography, mq } from '@ensdomains/thorin' +import { Button, Helper, mq, Tag, Typography } from '@ensdomains/thorin' import AeroplaneSVG from '@app/assets/Aeroplane.svg' import { BaseLinkWithHistory } from '@app/components/@atoms/BaseLink' @@ -13,9 +13,9 @@ import { AvatarWithZorb } from '@app/components/AvatarWithZorb' import { useDnsImportData } from '@app/hooks/ensjs/dns/useDnsImportData' import { usePrimaryName } from '@app/hooks/ensjs/public/usePrimaryName' import { useOwners } from '@app/hooks/useOwners' -import { useTransactionFlow } from '@app/transaction-flow/TransactionFlowProvider' import { makeIntroItem } from '@app/transaction-flow/intro' import { makeTransactionItem } from '@app/transaction-flow/transaction' +import { useTransactionFlow } from '@app/transaction-flow/TransactionFlowProvider' import { OwnerItem } from '@app/types' import { shortenAddress } from '@app/utils/utils' diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/Resolver.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/Resolver.tsx index 7abf51dae..f5632183f 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/Resolver.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/Resolver.tsx @@ -1,7 +1,7 @@ import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' -import { Skeleton, Tag, Typography, mq } from '@ensdomains/thorin' +import { mq, Skeleton, Tag, Typography } from '@ensdomains/thorin' import { cacheableComponentStyles } from '@app/components/@atoms/CacheableComponent' import { DisabledButtonWithTooltip } from '@app/components/@molecules/DisabledButtonWithTooltip' @@ -78,7 +78,6 @@ const Resolver = ({ isCachedData, }: { name: string - isWrapped: boolean canEditResolver: boolean canEdit: boolean resolverAddress: string | undefined diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/Token/Token.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/Token/Token.tsx index 3129811b9..9456fa406 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/Token/Token.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/Token/Token.tsx @@ -3,13 +3,12 @@ import styled, { css } from 'styled-components' import { labelhash, namehash } from 'viem' import { GetOwnerReturnType, GetWrapperDataReturnType } from '@ensdomains/ensjs/public' -import { Tag, Typography, mq } from '@ensdomains/thorin' +import { mq, Tag, Typography } from '@ensdomains/thorin' import { CacheableComponent } from '@app/components/@atoms/CacheableComponent' import { NFTWithPlaceholder } from '@app/components/NFTWithPlaceholder' import { Outlink } from '@app/components/Outlink' import RecordItem from '@app/components/RecordItem' -import { useChainId } from '@app/hooks/chain/useChainId' import { useChainName } from '@app/hooks/chain/useChainName' import { useContractAddress } from '@app/hooks/chain/useContractAddress' import { useFusesStates } from '@app/hooks/fuses/useFusesStates' @@ -118,7 +117,6 @@ const NftBox = styled(NFTWithPlaceholder)( const Token = ({ name, isWrapped, canBeWrapped, wrapperData, ownerData, profile }: Props) => { const { t } = useTranslation('profile') - const network = useChainId() const networkName = useChainName() const { wrapperData: parentWrapperData, isCachedData: isParentBasicCachedData } = diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/Token/UnwrapButton.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/Token/UnwrapButton.tsx index 687b95250..4989a8185 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/Token/UnwrapButton.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/Token/UnwrapButton.tsx @@ -4,8 +4,8 @@ import { GetOwnerReturnType } from '@ensdomains/ensjs/public' import { useAccountSafely } from '@app/hooks/account/useAccountSafely' import { NameWrapperState } from '@app/hooks/fuses/useFusesStates' -import { useTransactionFlow } from '@app/transaction-flow/TransactionFlowProvider' import { makeTransactionItem } from '@app/transaction-flow/transaction' +import { useTransactionFlow } from '@app/transaction-flow/TransactionFlowProvider' import BaseWrapButton from './BaseWrapButton' diff --git a/src/components/pages/profile/[name]/tabs/MoreTab/Token/WrapButton.tsx b/src/components/pages/profile/[name]/tabs/MoreTab/Token/WrapButton.tsx index 8fedbb070..e6dedf787 100644 --- a/src/components/pages/profile/[name]/tabs/MoreTab/Token/WrapButton.tsx +++ b/src/components/pages/profile/[name]/tabs/MoreTab/Token/WrapButton.tsx @@ -7,9 +7,9 @@ import { useAccountSafely } from '@app/hooks/account/useAccountSafely' import { useHasGlobalError } from '@app/hooks/errors/useHasGlobalError' import { useResolverStatus } from '@app/hooks/resolver/useResolverStatus' import { useWrapperApprovedForAll } from '@app/hooks/useWrapperApprovedForAll' -import { useTransactionFlow } from '@app/transaction-flow/TransactionFlowProvider' import { makeIntroItem } from '@app/transaction-flow/intro' import { makeTransactionItem } from '@app/transaction-flow/transaction' +import { useTransactionFlow } from '@app/transaction-flow/TransactionFlowProvider' import { GenericTransaction, TransactionFlowItem } from '@app/transaction-flow/types' import { Profile } from '@app/types' diff --git a/src/components/pages/profile/[name]/tabs/ProfileTab.tsx b/src/components/pages/profile/[name]/tabs/ProfileTab.tsx index b24e3b866..2d62d9ecf 100644 --- a/src/components/pages/profile/[name]/tabs/ProfileTab.tsx +++ b/src/components/pages/profile/[name]/tabs/ProfileTab.tsx @@ -6,8 +6,8 @@ import { useAccount } from 'wagmi' import { Helper } from '@ensdomains/thorin' import { Outlink } from '@app/components/Outlink' -import { ProfileSnippet } from '@app/components/ProfileSnippet' import { ProfileDetails } from '@app/components/pages/profile/ProfileDetails' +import { ProfileSnippet } from '@app/components/ProfileSnippet' import { useAbilities } from '@app/hooks/abilities/useAbilities' import { useChainId } from '@app/hooks/chain/useChainId' import { usePrimaryName } from '@app/hooks/ensjs/public/usePrimaryName' diff --git a/src/components/pages/profile/[name]/tabs/RecordsTab.tsx b/src/components/pages/profile/[name]/tabs/RecordsTab.tsx index 8518ca08e..93d9d516b 100644 --- a/src/components/pages/profile/[name]/tabs/RecordsTab.tsx +++ b/src/components/pages/profile/[name]/tabs/RecordsTab.tsx @@ -2,7 +2,7 @@ import { useMemo } from 'react' import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' -import { Button, Typography, mq } from '@ensdomains/thorin' +import { Button, mq, Typography } from '@ensdomains/thorin' import { cacheableComponentStyles } from '@app/components/@atoms/CacheableComponent' import { DisabledButtonWithTooltip } from '@app/components/@molecules/DisabledButtonWithTooltip' diff --git a/src/components/pages/profile/[name]/tabs/SubnamesTab.tsx b/src/components/pages/profile/[name]/tabs/SubnamesTab.tsx index 893cfb5a0..b0e0234d2 100644 --- a/src/components/pages/profile/[name]/tabs/SubnamesTab.tsx +++ b/src/components/pages/profile/[name]/tabs/SubnamesTab.tsx @@ -4,7 +4,7 @@ import styled, { css } from 'styled-components' import { useAccount } from 'wagmi' import { GetSubnamesParameters } from '@ensdomains/ensjs/subgraph' -import { Button, PlusSVG, Spinner, Typography, mq } from '@ensdomains/thorin' +import { Button, mq, PlusSVG, Spinner, Typography } from '@ensdomains/thorin' import { DisabledButtonWithTooltip } from '@app/components/@molecules/DisabledButtonWithTooltip' import { diff --git a/src/components/pages/profile/settings/DevSection.tsx b/src/components/pages/profile/settings/DevSection.tsx index 2946ecc88..274843312 100644 --- a/src/components/pages/profile/settings/DevSection.tsx +++ b/src/components/pages/profile/settings/DevSection.tsx @@ -8,9 +8,9 @@ import { Button } from '@ensdomains/thorin' import { useAddRecentTransaction } from '@app/hooks/transactions/useAddRecentTransaction' import { usePublicClient } from '@app/hooks/usePublicClient' -import { useTransactionFlow } from '@app/transaction-flow/TransactionFlowProvider' import { DetailedSwitch } from '@app/transaction-flow/input/ProfileEditor/components/DetailedSwitch' import { makeTransactionItem } from '@app/transaction-flow/transaction' +import { useTransactionFlow } from '@app/transaction-flow/TransactionFlowProvider' import { SectionContainer } from './Section' @@ -45,7 +45,7 @@ const useLocalStorageString = (key: string, defaultValue = '') => { export const DevSection = () => { const publicClient = usePublicClient() - const testClient = useMemo(() => ({ ...publicClient, mode: 'anvil' } as const), [publicClient]) + const testClient = useMemo(() => ({ ...publicClient, mode: 'anvil' }) as const, [publicClient]) const addTransaction = useAddRecentTransaction() const { createTransactionFlow } = useTransactionFlow() diff --git a/src/components/pages/profile/settings/PrimarySection.tsx b/src/components/pages/profile/settings/PrimarySection.tsx index c25690681..1435fc59f 100644 --- a/src/components/pages/profile/settings/PrimarySection.tsx +++ b/src/components/pages/profile/settings/PrimarySection.tsx @@ -1,7 +1,7 @@ import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' -import { Button, Card, CrossSVG, PersonPlusSVG, Skeleton, Typography, mq } from '@ensdomains/thorin' +import { Button, Card, CrossSVG, mq, PersonPlusSVG, Skeleton, Typography } from '@ensdomains/thorin' import { AvatarWithLink } from '@app/components/@molecules/AvatarWithLink/AvatarWithLink' import { DisabledButtonWithTooltip } from '@app/components/@molecules/DisabledButtonWithTooltip' diff --git a/src/components/pages/profile/settings/TransactionSection/TransactionSection.tsx b/src/components/pages/profile/settings/TransactionSection/TransactionSection.tsx index f32846200..013aa29cf 100644 --- a/src/components/pages/profile/settings/TransactionSection/TransactionSection.tsx +++ b/src/components/pages/profile/settings/TransactionSection/TransactionSection.tsx @@ -2,7 +2,7 @@ import { useEffect, useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' -import { Button, Spinner, Typography, mq } from '@ensdomains/thorin' +import { Button, mq, Spinner, Typography } from '@ensdomains/thorin' import { Card } from '@app/components/Card' import { Outlink } from '@app/components/Outlink' diff --git a/src/constants/resolverAddressData.ts b/src/constants/resolverAddressData.ts index 1c1aa56a5..3363bd75e 100644 --- a/src/constants/resolverAddressData.ts +++ b/src/constants/resolverAddressData.ts @@ -17,6 +17,7 @@ type KnownResolverData = { // ordered by recency export const KNOWN_RESOLVER_DATA: KnownResolverData = { + /* eslint-disable @typescript-eslint/naming-convention */ '1': [ { address: '0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63', @@ -334,6 +335,7 @@ export const KNOWN_RESOLVER_DATA: KnownResolverData = { ], } : {}), + /* eslint-enable @typescript-eslint/naming-convention */ } export const getKnownResolverData = ({ diff --git a/src/hooks/abilities/utils/getDeleteAbilities.ts b/src/hooks/abilities/utils/getDeleteAbilities.ts index b33fd9284..039303bfe 100644 --- a/src/hooks/abilities/utils/getDeleteAbilities.ts +++ b/src/hooks/abilities/utils/getDeleteAbilities.ts @@ -1,5 +1,5 @@ import { TFunction } from 'i18next' -import { P, match } from 'ts-pattern' +import { match, P } from 'ts-pattern' import type { useBasicName } from '@app/hooks/useBasicName' import { checkSubname } from '@app/utils/utils' @@ -146,7 +146,7 @@ export const getDeleteAbilities = ({ isParentOwner: parentOwner === address, ...(hasSubnames ? { canDeleteError: t('errors.hasSubnames') } : {}), ...(fuses.CANNOT_TRANSFER ? { canDeleteError: t('errors.permissionRevoked') } : {}), - } as DeleteAbilities), + }) as DeleteAbilities, ) .with( DELETE_INFO.wrappedSubname.owner.pattern(address), @@ -158,7 +158,7 @@ export const getDeleteAbilities = ({ isParentOwner: parentOwner === address, isPCCBurned: false, ...(hasSubnames ? { canDeleteError: t('errors.hasSubnames') } : {}), - } as DeleteAbilities), + }) as DeleteAbilities, ) .with( DELETE_INFO.wrappedSubname.parent.pattern(address), @@ -173,7 +173,7 @@ export const getDeleteAbilities = ({ isParentOwner: true, isPCCBurned: false, ...(hasSubnames ? { canDeleteError: t('errors.hasSubnames') } : {}), - } as DeleteAbilities), + }) as DeleteAbilities, ) .with( DELETE_INFO.unwrappedSubname.ownerOrParent.pattern, diff --git a/src/hooks/abilities/utils/getEditAbilities.ts b/src/hooks/abilities/utils/getEditAbilities.ts index d6e6576a8..84b9225a0 100644 --- a/src/hooks/abilities/utils/getEditAbilities.ts +++ b/src/hooks/abilities/utils/getEditAbilities.ts @@ -1,4 +1,4 @@ -import { P, match } from 'ts-pattern' +import { match, P } from 'ts-pattern' import type { useBasicName } from '@app/hooks/useBasicName' @@ -18,14 +18,14 @@ const PATTERNS = { child: P.select('fuses'), }, }, - } as const), + }) as const, unwrappedNameOwner: (address?: string) => ({ ownerData: { ownershipLevel: P.not('nameWrapper'), owner: P.when((owner) => owner === address), }, - } as const), + }) as const, } as const export const getEditAbilities = ({ diff --git a/src/hooks/abilities/utils/getReclaimAbilities.ts b/src/hooks/abilities/utils/getReclaimAbilities.ts index b07e78b60..fb41285c9 100644 --- a/src/hooks/abilities/utils/getReclaimAbilities.ts +++ b/src/hooks/abilities/utils/getReclaimAbilities.ts @@ -1,4 +1,4 @@ -import { P, match } from 'ts-pattern' +import { match, P } from 'ts-pattern' import type { useBasicName } from '@app/hooks/useBasicName' diff --git a/src/hooks/abilities/utils/getSendAbilities.ts b/src/hooks/abilities/utils/getSendAbilities.ts index 9324e7106..794a445a4 100644 --- a/src/hooks/abilities/utils/getSendAbilities.ts +++ b/src/hooks/abilities/utils/getSendAbilities.ts @@ -1,4 +1,4 @@ -import { P, match } from 'ts-pattern' +import { match, P } from 'ts-pattern' import { checkETH2LDFromName, checkSubname } from '@app/utils/utils' diff --git a/src/hooks/account/useWalletClient.ts b/src/hooks/account/useWalletClient.ts index 580b5f237..ff738ddbf 100644 --- a/src/hooks/account/useWalletClient.ts +++ b/src/hooks/account/useWalletClient.ts @@ -1,15 +1,52 @@ -import { useWalletClient as useWalletClient_ } from 'wagmi'; +import { QueryObserverResult } from '@tanstack/react-query' +import { GetWalletClientArgs } from '@wagmi/core' +import { useWalletClient as useWalletClient_ } from 'wagmi' -import { QueryConfig, WalletClientWithAccount } from '@app/types'; -import { QueryObserverResult } from '@tanstack/react-query'; -import { GetWalletClientArgs } from '@wagmi/core'; +import { QueryConfig, WalletClientWithAccount } from '@app/types' -type UseWalletClientConfig = Omit, 'cacheTime' | 'staleTime' | 'enabled'> & GetWalletClientArgs; +type UseWalletClientConfig = Omit< + QueryConfig, + 'cacheTime' | 'staleTime' | 'enabled' +> & + GetWalletClientArgs -type UseQueryResult = Pick, 'data' | 'error' | 'fetchStatus' | 'isError' | 'isFetched' | 'isFetchedAfterMount' | 'isFetching' | 'isLoading' | 'isRefetching' | 'isSuccess' | 'refetch'> & { - isIdle: boolean; - status: 'idle' | 'loading' | 'success' | 'error'; - internal: Pick; -}; +type UseQueryResult = Pick< + QueryObserverResult, + | 'data' + | 'error' + | 'fetchStatus' + | 'isError' + | 'isFetched' + | 'isFetchedAfterMount' + | 'isFetching' + | 'isLoading' + | 'isRefetching' + | 'isSuccess' + | 'refetch' +> & { + isIdle: boolean + status: 'idle' | 'loading' | 'success' | 'error' + internal: Pick< + QueryObserverResult, + | 'dataUpdatedAt' + | 'errorUpdatedAt' + | 'failureCount' + | 'isLoadingError' + | 'isPaused' + | 'isPlaceholderData' + | 'isPreviousData' + | 'isRefetchError' + | 'isStale' + | 'remove' + > +} -export const useWalletClientWithAccount = useWalletClient_ as ({ chainId, suspense, onError, onSettled, onSuccess, }?: UseWalletClientConfig) => UseQueryResult \ No newline at end of file +export const useWalletClientWithAccount = useWalletClient_ as < + TWalletClient extends WalletClientWithAccount, +>({ + chainId, + suspense, + onError, + onSettled, + onSuccess, +}?: UseWalletClientConfig) => UseQueryResult diff --git a/src/hooks/chain/useBlockTimestamp.ts b/src/hooks/chain/useBlockTimestamp.ts index 2e747dad7..51889557a 100644 --- a/src/hooks/chain/useBlockTimestamp.ts +++ b/src/hooks/chain/useBlockTimestamp.ts @@ -1,6 +1,7 @@ import { useQuery } from 'wagmi' import { useQueryKeys } from '@app/utils/cacheKeyFactory' + import { usePublicClient } from '../usePublicClient' type UseBlockTimestampParameters = { diff --git a/src/hooks/chain/useContractAddress.ts b/src/hooks/chain/useContractAddress.ts index 59ba975c9..83d504298 100644 --- a/src/hooks/chain/useContractAddress.ts +++ b/src/hooks/chain/useContractAddress.ts @@ -1,10 +1,11 @@ import { getChainContractAddress } from '@ensdomains/ensjs/contracts' + import { usePublicClient } from '../usePublicClient' type UseContractAddressParameters = Omit['0'], 'client'> export const useContractAddress = (params: UseContractAddressParameters) => { const publicClient = usePublicClient() - + return getChainContractAddress({ client: publicClient, ...params }) } diff --git a/src/hooks/chain/useGasPrice.ts b/src/hooks/chain/useGasPrice.ts index 7a25b193d..f4db07c5b 100644 --- a/src/hooks/chain/useGasPrice.ts +++ b/src/hooks/chain/useGasPrice.ts @@ -3,7 +3,7 @@ import { useFeeData } from 'wagmi' export const useGasPrice = () => { const { data, isLoading, isFetching } = useFeeData({ watch: true }) - const gasPrice = data ? data?.lastBaseFeePerGas! + data?.maxPriorityFeePerGas! : undefined + const gasPrice = data ? data.lastBaseFeePerGas! + data.maxPriorityFeePerGas! : undefined return { gasPrice, isLoading, isFetching } } diff --git a/src/hooks/ensjs/dns/useDnsImportData.ts b/src/hooks/ensjs/dns/useDnsImportData.ts index 1dbcafe64..f5f247cdb 100644 --- a/src/hooks/ensjs/dns/useDnsImportData.ts +++ b/src/hooks/ensjs/dns/useDnsImportData.ts @@ -1,24 +1,34 @@ import { useQuery } from 'wagmi' -import { useQueryKeys } from '@app/utils/cacheKeyFactory' +import { getDnsImportData, GetDnsImportDataParameters } from '@ensdomains/ensjs/dns' import { usePublicClient } from '@app/hooks/usePublicClient' -import { GetDnsImportDataParameters, getDnsImportData } from '@ensdomains/ensjs/dns' +import { useQueryKeys } from '@app/utils/cacheKeyFactory' type UseDnsImportDataParameters = GetDnsImportDataParameters & { enabled?: boolean } -export const useDnsImportData = ( - { enabled = true, ...params }: TParams, -) => { +export const useDnsImportData = ({ + enabled = true, + ...params +}: TParams) => { const publicClient = usePublicClient() const queryKeys = useQueryKeys() - const { data, status, isFetchedAfterMount, isFetched, ...rest } = useQuery(queryKeys.getDnsImportData(params), ({ queryKey: [params] }) => getDnsImportData(publicClient, params), { - enabled: enabled && !!params.name && !params.name?.endsWith('.eth') && params.name !== 'eth' && params.name !== '[root]', - }) + const { data, status, isFetchedAfterMount, isFetched, ...rest } = useQuery( + queryKeys.getDnsImportData(params), + ({ queryKey: [queryParams] }) => getDnsImportData(publicClient, queryParams), + { + enabled: + enabled && + !!params.name && + !params.name?.endsWith('.eth') && + params.name !== 'eth' && + params.name !== '[root]', + }, + ) return { data, diff --git a/src/hooks/ensjs/dns/useDnsOwner.ts b/src/hooks/ensjs/dns/useDnsOwner.ts index cf52cfe19..4257e5eb7 100644 --- a/src/hooks/ensjs/dns/useDnsOwner.ts +++ b/src/hooks/ensjs/dns/useDnsOwner.ts @@ -1,21 +1,31 @@ import { useQuery } from 'wagmi' -import { useQueryKeys } from '@app/utils/cacheKeyFactory' +import { getDnsOwner, GetDnsOwnerParameters } from '@ensdomains/ensjs/dns' -import { GetDnsOwnerParameters, getDnsOwner } from '@ensdomains/ensjs/dns' +import { useQueryKeys } from '@app/utils/cacheKeyFactory' type UseDnsOwnerParameters = GetDnsOwnerParameters & { enabled?: boolean } -export const useDnsOwner = ( - { enabled = true, ...params }: TParams, -) => { +export const useDnsOwner = ({ + enabled = true, + ...params +}: TParams) => { const queryKeys = useQueryKeys() - const { data, status, isFetchedAfterMount, isFetched, ...rest } = useQuery(queryKeys.getDnsOwner(params), ({ queryKey: [params] }) => getDnsOwner(params), { - enabled: enabled && !!params.name && !params.name?.endsWith('.eth') && params.name !== 'eth' && params.name !== '[root]', - }) + const { data, status, isFetchedAfterMount, isFetched, ...rest } = useQuery( + queryKeys.getDnsOwner(params), + ({ queryKey: [queryParams] }) => getDnsOwner(queryParams), + { + enabled: + enabled && + !!params.name && + !params.name?.endsWith('.eth') && + params.name !== 'eth' && + params.name !== '[root]', + }, + ) return { data, diff --git a/src/hooks/ensjs/public/useAddressRecord.ts b/src/hooks/ensjs/public/useAddressRecord.ts index 26620538d..1ce135f74 100644 --- a/src/hooks/ensjs/public/useAddressRecord.ts +++ b/src/hooks/ensjs/public/useAddressRecord.ts @@ -1,24 +1,30 @@ import { useQuery } from 'wagmi' +import { getAddressRecord, GetAddressRecordParameters } from '@ensdomains/ensjs/public' + import { useQueryKeys } from '@app/utils/cacheKeyFactory' -import { GetAddressRecordParameters, getAddressRecord } from '@ensdomains/ensjs/public' import { usePublicClient } from '../../usePublicClient' type UseAddressRecordParameters = GetAddressRecordParameters & { enabled?: boolean } -export const useAddressRecord = ( - { enabled = true, ...params }: TParams, -) => { +export const useAddressRecord = ({ + enabled = true, + ...params +}: TParams) => { const publicClient = usePublicClient() const queryKeys = useQueryKeys() - const { data, status, isFetchedAfterMount, isFetched, ...rest } = useQuery(queryKeys.getAddressRecord(params), ({ queryKey: [params] }) => getAddressRecord(publicClient, params), { - enabled: enabled && !!params.name, - }) + const { data, status, isFetchedAfterMount, isFetched, ...rest } = useQuery( + queryKeys.getAddressRecord(params), + ({ queryKey: [queryParams] }) => getAddressRecord(publicClient, queryParams), + { + enabled: enabled && !!params.name, + }, + ) return { data, diff --git a/src/hooks/ensjs/public/useExpiry.ts b/src/hooks/ensjs/public/useExpiry.ts index dbd5ba76b..3140e371c 100644 --- a/src/hooks/ensjs/public/useExpiry.ts +++ b/src/hooks/ensjs/public/useExpiry.ts @@ -1,31 +1,43 @@ +import { useMemo } from 'react' import { useQuery } from 'wagmi' +import { getExpiry, GetExpiryParameters } from '@ensdomains/ensjs/public' + import { useQueryKeys } from '@app/utils/cacheKeyFactory' -import { GetExpiryParameters, getExpiry } from '@ensdomains/ensjs/public' -import { useMemo } from 'react' import { usePublicClient } from '../../usePublicClient' type UseExpiryParameters = GetExpiryParameters & { enabled?: boolean } -export const useExpiry = ( - { enabled = true, ...params }: TParams, -) => { +export const useExpiry = ({ + enabled = true, + ...params +}: TParams) => { const publicClient = usePublicClient() const queryKeys = useQueryKeys() - const { data: data_, status, isFetchedAfterMount, isFetched, ...rest } = useQuery(queryKeys.getExpiry(params), ({ queryKey: [params] }) => getExpiry(publicClient, params), { - enabled: enabled && !!params.name, - }) + const { + data: data_, + status, + isFetchedAfterMount, + isFetched, + ...rest + } = useQuery( + queryKeys.getExpiry(params), + ({ queryKey: [queryParams] }) => getExpiry(publicClient, queryParams), + { + enabled: enabled && !!params.name, + }, + ) const data = useMemo(() => { if (!data_) return undefined - const { expiry, ...rest } = data_ + const { expiry, ...remainingData } = data_ return { - ...rest, + ...remainingData, expiry: { ...expiry, date: new Date(expiry.date), diff --git a/src/hooks/ensjs/public/useOwner.ts b/src/hooks/ensjs/public/useOwner.ts index 9f738f1e9..3f4e12022 100644 --- a/src/hooks/ensjs/public/useOwner.ts +++ b/src/hooks/ensjs/public/useOwner.ts @@ -1,24 +1,30 @@ import { useQuery } from 'wagmi' +import { getOwner, GetOwnerParameters } from '@ensdomains/ensjs/public' + import { useQueryKeys } from '@app/utils/cacheKeyFactory' -import { GetOwnerParameters, getOwner } from '@ensdomains/ensjs/public' import { usePublicClient } from '../../usePublicClient' type UseOwnerParameters = GetOwnerParameters & { enabled?: boolean } -export const useOwner = ( - { enabled = true, ...params }: TParams, -) => { +export const useOwner = ({ + enabled = true, + ...params +}: TParams) => { const publicClient = usePublicClient() const queryKeys = useQueryKeys() - const { data, status, isFetchedAfterMount, isFetched, ...rest } = useQuery(queryKeys.getOwner(params), ({ queryKey: [params] }) => getOwner(publicClient, params), { - enabled: enabled && !!params.name, - }) + const { data, status, isFetchedAfterMount, isFetched, ...rest } = useQuery( + queryKeys.getOwner(params), + ({ queryKey: [queryParams] }) => getOwner(publicClient, queryParams), + { + enabled: enabled && !!params.name, + }, + ) return { data, diff --git a/src/hooks/ensjs/public/usePrice.ts b/src/hooks/ensjs/public/usePrice.ts index e52e1944e..3055e85eb 100644 --- a/src/hooks/ensjs/public/usePrice.ts +++ b/src/hooks/ensjs/public/usePrice.ts @@ -1,24 +1,30 @@ import { useQuery } from 'wagmi' +import { getPrice, GetPriceParameters } from '@ensdomains/ensjs/public' + import { useQueryKeys } from '@app/utils/cacheKeyFactory' -import { GetPriceParameters, getPrice } from '@ensdomains/ensjs/public' import { usePublicClient } from '../../usePublicClient' type UsePriceParameters = GetPriceParameters & { enabled?: boolean } -export const usePrice = ( - { enabled = true, ...params }: TParams, -) => { +export const usePrice = ({ + enabled = true, + ...params +}: TParams) => { const publicClient = usePublicClient() const queryKeys = useQueryKeys() - const { data, status, isFetchedAfterMount, isFetched, ...rest } = useQuery(queryKeys.getPrice(params), ({ queryKey: [params] }) => getPrice(publicClient, params), { - enabled: enabled && !!params.nameOrNames, - }) + const { data, status, isFetchedAfterMount, isFetched, ...rest } = useQuery( + queryKeys.getPrice(params), + ({ queryKey: [queryParams] }) => getPrice(publicClient, queryParams), + { + enabled: enabled && !!params.nameOrNames, + }, + ) return { data, diff --git a/src/hooks/ensjs/public/usePrimaryName.ts b/src/hooks/ensjs/public/usePrimaryName.ts index a9921245b..3e8eda7e2 100644 --- a/src/hooks/ensjs/public/usePrimaryName.ts +++ b/src/hooks/ensjs/public/usePrimaryName.ts @@ -3,7 +3,7 @@ import { getPublicClient } from '@wagmi/core' import type { Address } from 'viem' import { useQuery } from 'wagmi' -import { GetNameParameters, GetNameReturnType, getName } from '@ensdomains/ensjs/public' +import { getName, GetNameParameters, GetNameReturnType } from '@ensdomains/ensjs/public' import { useQueryKeyFactory } from '@app/hooks/useQueryKeyFactory' import { CreateQueryKey, PublicClientWithChain, QueryConfig } from '@app/types' @@ -14,7 +14,9 @@ type UsePrimaryNameParameters = Omit & { allowMismatch?: boolean } -type UsePrimaryNameConfig = QueryConfig +type UsePrimaryNameReturnType = (NonNullable & { beautifiedName: string }) | null + +type UsePrimaryNameConfig = QueryConfig type QueryKey = CreateQueryKey diff --git a/src/hooks/ensjs/public/useRecords.ts b/src/hooks/ensjs/public/useRecords.ts index 3a2a83806..6b93a76f9 100644 --- a/src/hooks/ensjs/public/useRecords.ts +++ b/src/hooks/ensjs/public/useRecords.ts @@ -2,7 +2,7 @@ import { QueryFunctionContext } from '@tanstack/react-query' import { getPublicClient } from '@wagmi/core' import { useQuery } from 'wagmi' -import { GetRecordsParameters, GetRecordsReturnType, getRecords } from '@ensdomains/ensjs/public' +import { getRecords, GetRecordsParameters, GetRecordsReturnType } from '@ensdomains/ensjs/public' import { useQueryKeyFactory } from '@app/hooks/useQueryKeyFactory' import { CreateQueryKey, PartialBy, PublicClientWithChain, QueryConfig } from '@app/types' diff --git a/src/hooks/ensjs/public/useResolver.ts b/src/hooks/ensjs/public/useResolver.ts index 169bf4e02..32a3628ee 100644 --- a/src/hooks/ensjs/public/useResolver.ts +++ b/src/hooks/ensjs/public/useResolver.ts @@ -1,6 +1,6 @@ import { useQuery } from 'wagmi' -import { GetResolverParameters, getResolver } from '@ensdomains/ensjs/public' +import { getResolver, GetResolverParameters } from '@ensdomains/ensjs/public' import { useQueryKeys } from '@app/utils/cacheKeyFactory' @@ -20,7 +20,7 @@ export const useResolver = ({ const { data, status, isFetchedAfterMount, isFetched, ...rest } = useQuery( queryKeys.getResolver(params), - ({ queryKey: [params] }) => getResolver(publicClient, params), + ({ queryKey: [queryParams] }) => getResolver(publicClient, queryParams), { enabled: enabled && !!params.name, }, diff --git a/src/hooks/ensjs/public/useSupportedInterfaces.ts b/src/hooks/ensjs/public/useSupportedInterfaces.ts index 954a12ca0..3579a0b1e 100644 --- a/src/hooks/ensjs/public/useSupportedInterfaces.ts +++ b/src/hooks/ensjs/public/useSupportedInterfaces.ts @@ -1,7 +1,7 @@ import { Hex } from 'viem' import { useQuery } from 'wagmi' -import { GetSupportedInterfacesParameters, getSupportedInterfaces } from '@ensdomains/ensjs/public' +import { getSupportedInterfaces, GetSupportedInterfacesParameters } from '@ensdomains/ensjs/public' import { useQueryKeys } from '@app/utils/cacheKeyFactory' @@ -14,7 +14,8 @@ type UseSupportedInterfacesParameters = export const useSupportedInterfaces = < TInterfaces extends readonly Hex[], - TParams extends UseSupportedInterfacesParameters = UseSupportedInterfacesParameters, + TParams extends + UseSupportedInterfacesParameters = UseSupportedInterfacesParameters, >({ enabled = true, ...params @@ -25,7 +26,7 @@ export const useSupportedInterfaces = < const { data, status, isFetchedAfterMount, isFetched, ...rest } = useQuery( queryKeys.getSupportedInterfaces(params), - ({ queryKey: [params] }) => getSupportedInterfaces(publicClient, params), + ({ queryKey: [queryParams] }) => getSupportedInterfaces(publicClient, queryParams), { enabled: enabled && !!params.address && params.interfaces.length > 0, }, diff --git a/src/hooks/ensjs/public/useWrapperData.ts b/src/hooks/ensjs/public/useWrapperData.ts index d8c2db820..81f72913f 100644 --- a/src/hooks/ensjs/public/useWrapperData.ts +++ b/src/hooks/ensjs/public/useWrapperData.ts @@ -1,35 +1,49 @@ +import { useMemo } from 'react' import { useQuery } from 'wagmi' +import { getWrapperData, GetWrapperDataParameters } from '@ensdomains/ensjs/public' + import { useQueryKeys } from '@app/utils/cacheKeyFactory' -import { GetWrapperDataParameters, getWrapperData } from '@ensdomains/ensjs/public' -import { useMemo } from 'react' import { usePublicClient } from '../../usePublicClient' type UseWrapperDataParameters = GetWrapperDataParameters & { enabled?: boolean } -export const useWrapperData = ( - { enabled = true, ...params }: TParams, -) => { +export const useWrapperData = ({ + enabled = true, + ...params +}: TParams) => { const publicClient = usePublicClient() const queryKeys = useQueryKeys() - const { data: data_, status, isFetchedAfterMount, isFetched, ...rest } = useQuery(queryKeys.getWrapperData(params), ({ queryKey: [params] }) => getWrapperData(publicClient, params), { - enabled: enabled && !!params.name, - }) + const { + data: data_, + status, + isFetchedAfterMount, + isFetched, + ...rest + } = useQuery( + queryKeys.getWrapperData(params), + ({ queryKey: [queryParams] }) => getWrapperData(publicClient, queryParams), + { + enabled: enabled && !!params.name, + }, + ) const data = useMemo(() => { if (!data_) return undefined - const { expiry, ...rest } = data_ + const { expiry, ...remainingData } = data_ return { - ...rest, - expiry: expiry ? { - ...expiry, - date: new Date(expiry.date), - } : null + ...remainingData, + expiry: expiry + ? { + ...expiry, + date: new Date(expiry.date), + } + : null, } }, [data_]) diff --git a/src/hooks/ensjs/subgraph/useDecodedName.ts b/src/hooks/ensjs/subgraph/useDecodedName.ts index 78fdb11fb..0724edb25 100644 --- a/src/hooks/ensjs/subgraph/useDecodedName.ts +++ b/src/hooks/ensjs/subgraph/useDecodedName.ts @@ -1,7 +1,7 @@ import { useMemo } from 'react' import { useQuery } from 'wagmi' -import { GetDecodedNameParameters, getDecodedName } from '@ensdomains/ensjs/subgraph' +import { getDecodedName, GetDecodedNameParameters } from '@ensdomains/ensjs/subgraph' import { checkIsDecrypted } from '@ensdomains/ensjs/utils' import { useQueryKeys } from '@app/utils/cacheKeyFactory' @@ -22,7 +22,7 @@ export const useDecodedName = ({ enabled = true, ...params }: UseDecodedNamePara const { data, status, isFetched, isFetchedAfterMount, ...rest } = useQuery( useQueryKeys().getDecodedName(params as GetDecodedNameParameters), - ({ queryKey: [params] }) => getDecodedName(publicClient, params), + ({ queryKey: [queryParams] }) => getDecodedName(publicClient, queryParams), { enabled: enabled && nameIsEncrypted && !!params.name, }, diff --git a/src/hooks/ensjs/subgraph/useNameHistory.ts b/src/hooks/ensjs/subgraph/useNameHistory.ts index e42acbfe2..81e7442ad 100644 --- a/src/hooks/ensjs/subgraph/useNameHistory.ts +++ b/src/hooks/ensjs/subgraph/useNameHistory.ts @@ -1,29 +1,27 @@ -import { useQueryKeys } from "@app/utils/cacheKeyFactory" -import { GetNameHistoryParameters, getNameHistory } from "@ensdomains/ensjs/subgraph" -import { useQuery } from "wagmi" -import { usePublicClient } from "../../usePublicClient" +import { useQuery } from 'wagmi' + +import { getNameHistory, GetNameHistoryParameters } from '@ensdomains/ensjs/subgraph' + +import { useQueryKeys } from '@app/utils/cacheKeyFactory' + +import { usePublicClient } from '../../usePublicClient' type UseNameHistoryParameters = GetNameHistoryParameters & { enabled?: boolean } -export const useNameHistory = ({ - enabled = true, - ...params -}: UseNameHistoryParameters) => { +export const useNameHistory = ({ enabled = true, ...params }: UseNameHistoryParameters) => { const publicClient = usePublicClient() const queryKeys = useQueryKeys() - const { - data, - status, - isFetched, - isFetchedAfterMount, - ...rest - } = useQuery(queryKeys.getNameHistory(params), ({ queryKey: [params] }) => getNameHistory(publicClient, params), { - enabled: enabled && !!params.name, - }) + const { data, status, isFetched, isFetchedAfterMount, ...rest } = useQuery( + queryKeys.getNameHistory(params), + ({ queryKey: [queryParams] }) => getNameHistory(publicClient, queryParams), + { + enabled: enabled && !!params.name, + }, + ) return { data, @@ -33,4 +31,4 @@ export const useNameHistory = ({ isCachedData: status === 'success' && isFetched && !isFetchedAfterMount, ...rest, } -} \ No newline at end of file +} diff --git a/src/hooks/ensjs/subgraph/useNamesForAddress.ts b/src/hooks/ensjs/subgraph/useNamesForAddress.ts index 5a6783e1f..a1529c25a 100644 --- a/src/hooks/ensjs/subgraph/useNamesForAddress.ts +++ b/src/hooks/ensjs/subgraph/useNamesForAddress.ts @@ -2,9 +2,9 @@ import { useEffect, useMemo, useState } from 'react' import { useInfiniteQuery } from 'wagmi' import { + getNamesForAddress, GetNamesForAddressParameters, GetNamesForAddressReturnType, - getNamesForAddress, } from '@ensdomains/ensjs/subgraph' import { useQueryKeys } from '@app/utils/cacheKeyFactory' @@ -52,7 +52,8 @@ export const useNamesForAddress = ({ enabled = true, ...params }: UseNamesForAdd params.filter?.searchString && isFetching ? unfilteredPages.filter((x) => x.labelName?.includes(params.filter!.searchString!)) : infiniteData, - [unfilteredPages, params.filter?.searchString, infiniteData], + // eslint-disable-next-line react-hooks/exhaustive-deps + [isFetching, unfilteredPages, params.filter?.searchString, infiniteData], ) const nameCount = infiniteDataWithFetchingFill.length || 0 diff --git a/src/hooks/ensjs/subgraph/useSubgraphClient.ts b/src/hooks/ensjs/subgraph/useSubgraphClient.ts index 1e9355315..45f4eaa85 100644 --- a/src/hooks/ensjs/subgraph/useSubgraphClient.ts +++ b/src/hooks/ensjs/subgraph/useSubgraphClient.ts @@ -6,5 +6,6 @@ import { usePublicClient } from '@app/hooks/usePublicClient' export const useSubgraphClient = () => { const publicClient = usePublicClient() + // eslint-disable-next-line react-hooks/exhaustive-deps return useMemo(() => createSubgraphClient({ client: publicClient }), [publicClient.chain.id]) } diff --git a/src/hooks/ensjs/subgraph/useSubgraphRecords.ts b/src/hooks/ensjs/subgraph/useSubgraphRecords.ts index d2a2dadd7..ba1b07cfa 100644 --- a/src/hooks/ensjs/subgraph/useSubgraphRecords.ts +++ b/src/hooks/ensjs/subgraph/useSubgraphRecords.ts @@ -1,6 +1,6 @@ import { useQuery } from 'wagmi' -import { GetSubgraphRecordsParameters, getSubgraphRecords } from '@ensdomains/ensjs/subgraph' +import { getSubgraphRecords, GetSubgraphRecordsParameters } from '@ensdomains/ensjs/subgraph' import { useQueryKeys } from '@app/utils/cacheKeyFactory' @@ -19,7 +19,7 @@ export const useSubgraphRecords = ({ enabled = true, ...params }: UseSubgraphRec const { data, status, isFetched, isFetchedAfterMount, ...rest } = useQuery( queryKeys.getSubgraphRecords({ ...params, name: params.name! }), - ({ queryKey: [params] }) => getSubgraphRecords(publicClient, params), + ({ queryKey: [queryParams] }) => getSubgraphRecords(publicClient, queryParams), { enabled: enabled && !!params.name, }, diff --git a/src/hooks/ensjs/subgraph/useSubnames.ts b/src/hooks/ensjs/subgraph/useSubnames.ts index fc358fc4d..f01eb5386 100644 --- a/src/hooks/ensjs/subgraph/useSubnames.ts +++ b/src/hooks/ensjs/subgraph/useSubnames.ts @@ -1,7 +1,7 @@ import { useMemo } from 'react' import { useInfiniteQuery } from 'wagmi' -import { GetSubnamesParameters, getSubnames } from '@ensdomains/ensjs/subgraph' +import { getSubnames, GetSubnamesParameters } from '@ensdomains/ensjs/subgraph' import { useQueryKeys } from '@app/utils/cacheKeyFactory' diff --git a/src/hooks/errors/useGlobalErrorFunc.ts b/src/hooks/errors/useGlobalErrorFunc.ts index c26299182..35e86b277 100644 --- a/src/hooks/errors/useGlobalErrorFunc.ts +++ b/src/hooks/errors/useGlobalErrorFunc.ts @@ -1,5 +1,3 @@ -type BaseFunc = (...args: any[]) => Promise - // TODO (tate): reimplement export const useGlobalErrorFunc = () => { diff --git a/src/hooks/fuses/useFusesSetDates.ts b/src/hooks/fuses/useFusesSetDates.ts index 651775813..6924a8da8 100644 --- a/src/hooks/fuses/useFusesSetDates.ts +++ b/src/hooks/fuses/useFusesSetDates.ts @@ -1,8 +1,8 @@ import { QueryClient, QueryFunctionContext, - UseQueryResult, useQueries, + UseQueryResult, } from '@tanstack/react-query' import { Context, createContext, useMemo } from 'react' import { Address, BlockTag, GetBlockParameters, GetBlockReturnType } from 'viem' @@ -10,7 +10,7 @@ import { useQueryClient } from 'wagmi' import { ChainWithEns } from '@ensdomains/ensjs/contracts' import { GetNameHistoryReturnType } from '@ensdomains/ensjs/subgraph' -import { ChildFuseKeys, ParentFuseKeys, decodeFuses } from '@ensdomains/ensjs/utils' +import { ChildFuseKeys, decodeFuses, ParentFuseKeys } from '@ensdomains/ensjs/utils' import { AnyFuseKey, PublicClientWithChain } from '@app/types' import { useQueryKeys } from '@app/utils/cacheKeyFactory' @@ -60,7 +60,7 @@ const generateQueryArray = ( queryKey: queryKeyFn.getBlock({ blockNumber }), queryFn: getBlockQueryFn(publicClient), staleTime: Infinity, - } as const), + }) as const, ) } @@ -77,7 +77,8 @@ const generateFuseSetBlocks = (nameHistory: GetNameHistoryReturnType | undefined switch (reference.type) { case 'NameWrapped': hasWrappedEvent = true - case 'FusesSet': + // eslint-disable-next-line no-fallthrough + case 'FusesSet': { const decodedFuses = decodeFuses(reference.fuses) const burnedParentFuses = ParentFuseKeys.filter((key) => decodedFuses.parent[key]) const burnedChildFuses = ChildFuseKeys.filter((key) => decodedFuses.child[key]) @@ -87,6 +88,7 @@ const generateFuseSetBlocks = (nameHistory: GetNameHistoryReturnType | undefined ) blocksNeeded.add(BigInt(reference.blockNumber)) break + } default: break } @@ -116,6 +118,7 @@ const generateMatchedFuseBlockData = ({ // don't allow incomplete data to be returned if (!blockData) { hasIncompleteData = true + // eslint-disable-next-line no-continue continue } if (blockData.isLoading) hasLoadingBlocks = true diff --git a/src/hooks/gasEstimation/useEstimateGasLimitForTransactions.ts b/src/hooks/gasEstimation/useEstimateGasLimitForTransactions.ts index 3ac14ab81..77d90f83d 100644 --- a/src/hooks/gasEstimation/useEstimateGasLimitForTransactions.ts +++ b/src/hooks/gasEstimation/useEstimateGasLimitForTransactions.ts @@ -1,56 +1,69 @@ import { useMemo } from 'react' +import { formatEther, parseAccount } from 'viem/utils' import { useQuery } from 'wagmi' import { + createTransactionRequest, TransactionData, TransactionItem, TransactionName, TransactionParameters, - createTransactionRequest } from '@app/transaction-flow/transaction' import { useQueryKeys } from '@app/utils/cacheKeyFactory' import { fetchTenderlyEstimate } from '@app/utils/tenderly' -import { formatEther, parseAccount } from 'viem/utils' import { useWalletClientWithAccount } from '../account/useWalletClient' import { useGasPrice } from '../chain/useGasPrice' import { usePublicClient } from '../usePublicClient' -type GetEstimateWithConfigParameters = TransactionParameters & { - name: TName -} +type GetEstimateWithConfigParameters = + TransactionParameters & { + name: TName + } -export const fetchEstimateWithConfig = - async ({ publicClient, walletClient, data, name }: GetEstimateWithConfigParameters) => { - const transactionRequest = await createTransactionRequest({ publicClient, walletClient, data, name }) +export const fetchEstimateWithConfig = async ({ + publicClient, + walletClient, + data, + name, +}: GetEstimateWithConfigParameters) => { + const transactionRequest = await createTransactionRequest({ + publicClient, + walletClient, + data, + name, + }) - let gasLimit: bigint + let gasLimit: bigint - try { - gasLimit = await publicClient.estimateGas({ ...transactionRequest, account: walletClient.account }) - } catch (e: unknown) { - if (name !== 'extendNames') throw e - const { names, duration } = data as TransactionData<'extendNames'> - const fetchedEstimate = await fetchTenderlyEstimate({ - type: 'extension', - networkId: publicClient.chain.id, - labels: names.map((name) => name.split('.')[0]), - duration, - from: parseAccount(walletClient.account).address, - }) + try { + gasLimit = await publicClient.estimateGas({ + ...transactionRequest, + account: walletClient.account, + }) + } catch (e: unknown) { + if (name !== 'extendNames') throw e + const { names, duration } = data as TransactionData<'extendNames'> + const fetchedEstimate = await fetchTenderlyEstimate({ + type: 'extension', + networkId: publicClient.chain.id, + labels: names.map((n) => n.split('.')[0]), + duration, + from: parseAccount(walletClient.account).address, + }) - gasLimit = BigInt(fetchedEstimate) - } + gasLimit = BigInt(fetchedEstimate) + } - return { - name, - gasLimit, - } + return { + name, + gasLimit, } +} export const useEstimateGasLimitForTransaction = ({ transaction, - enabled = true + enabled = true, }: { transaction: TransactionItem enabled?: boolean @@ -62,7 +75,8 @@ export const useEstimateGasLimitForTransaction = const { data, isLoading, isFetching, ...rest } = useQuery( useQueryKeys().estimateGasLimitForTransaction(transaction), - ({ queryKey: [params] }) => fetchEstimateWithConfig({ ...params, publicClient, walletClient: walletClient! }), + ({ queryKey: [params] }) => + fetchEstimateWithConfig({ ...params, publicClient, walletClient: walletClient! }), { enabled: enabled && !!walletClient && !isWalletClientLoading, onError: console.error, diff --git a/src/hooks/gasEstimation/useEstimateRegistration.ts b/src/hooks/gasEstimation/useEstimateRegistration.ts index bd09638c1..6185795e7 100644 --- a/src/hooks/gasEstimation/useEstimateRegistration.ts +++ b/src/hooks/gasEstimation/useEstimateRegistration.ts @@ -4,7 +4,7 @@ import { useQuery } from 'wagmi' import { formatsByCoinType, formatsByName } from '@ensdomains/address-encoder' import { getChainContractAddress } from '@ensdomains/ensjs/contracts' -import { RegistrationParameters, makeRegistrationTuple } from '@ensdomains/ensjs/utils' +import { makeRegistrationTuple, RegistrationParameters } from '@ensdomains/ensjs/utils' import { RegistrationReducerDataItem } from '@app/components/pages/profile/[name]/registration/types' import { PublicClientWithChain } from '@app/types' @@ -129,13 +129,16 @@ export const useEstimateFullRegistration = ({ registrationData, }) - const requiredRegistrationParameters = { - name, - owner, - fuses, - records, - reverseRecord, - } + const requiredRegistrationParameters = useMemo( + () => ({ + name, + owner, + fuses, + records, + reverseRecord, + }), + [name, owner, fuses, records, reverseRecord], + ) const { data: gasUsed, diff --git a/src/hooks/primary/useGetPrimaryNameTransactionFlowItem/index.ts b/src/hooks/primary/useGetPrimaryNameTransactionFlowItem/index.ts index 415b5177c..3391d479d 100644 --- a/src/hooks/primary/useGetPrimaryNameTransactionFlowItem/index.ts +++ b/src/hooks/primary/useGetPrimaryNameTransactionFlowItem/index.ts @@ -11,11 +11,11 @@ import { GenericTransaction, TransactionFlowItem } from '@app/transaction-flow/t import { emptyAddress } from '@app/utils/constants' import { - IntroType, checkRequiresSetPrimaryNameTransaction, checkRequiresUpdateEthAddressTransaction, checkRequiresUpdateResolverTransaction, getIntroTranslation, + IntroType, } from './utils' type Inputs = { diff --git a/src/hooks/resolver/useResolverStatus.ts b/src/hooks/resolver/useResolverStatus.ts index 25660461c..bff54aa3b 100644 --- a/src/hooks/resolver/useResolverStatus.ts +++ b/src/hooks/resolver/useResolverStatus.ts @@ -8,9 +8,9 @@ import { useProfile } from '@app/hooks/useProfile' import { emptyAddress } from '@app/utils/constants' import { profileHasRecords } from '@app/utils/profile' import { - RecordMatch, checkProfileRecordsContains, checkProfileRecordsEqual, + RecordMatch, } from '@app/utils/records' import { getResolverWrapperAwareness } from '@app/utils/utils' diff --git a/src/hooks/resolver/useResolverType.ts b/src/hooks/resolver/useResolverType.ts index 22cc7cce6..d4bbfe6ed 100644 --- a/src/hooks/resolver/useResolverType.ts +++ b/src/hooks/resolver/useResolverType.ts @@ -69,7 +69,6 @@ export const useResolverType = ({ name, enabled: enabled_ = true }: UseResolverT return { type: 'outdated', isWildcard, tone: 'redSecondary' } as const if (knownResolverData.tag === 'latest') return { type: 'latest', isWildcard, tone: 'greenSecondary' } as const - return }, [resolverAddress, isWrapped, enabled, chainId, isLoading, isWildcard]) return { data, isLoading, isFetching, isError } diff --git a/src/hooks/transactions/TransactionStoreContext.tsx b/src/hooks/transactions/TransactionStoreContext.tsx index 51de3885e..f1bd8b4bf 100644 --- a/src/hooks/transactions/TransactionStoreContext.tsx +++ b/src/hooks/transactions/TransactionStoreContext.tsx @@ -2,7 +2,7 @@ import React, { createContext, useContext, useEffect, useState } from 'react' import { useAccount } from 'wagmi' import { useChainId } from '../chain/useChainId' -import { TransactionStore, createTransactionStore } from './transactionStore' +import { createTransactionStore, TransactionStore } from './transactionStore' // Only allow a single instance of the store to exist at once // so that multiple RainbowKitProvider instances can share the same store. diff --git a/src/hooks/transactions/transactionStore.ts b/src/hooks/transactions/transactionStore.ts index bb3cfd3e5..b757dbf31 100644 --- a/src/hooks/transactions/transactionStore.ts +++ b/src/hooks/transactions/transactionStore.ts @@ -122,10 +122,6 @@ export function etherscanDataToMinedData(etherscanMinedData: EtherscanMinedData) } } -class ReplacedOrCancelledError extends Error { - public name = 'ReplacedOrCancelledError' -} - const transactionHashRegex = /^0x([A-Fa-f0-9]{64})$/ function validateTransaction(transaction: NewTransaction): string[] { diff --git a/src/hooks/transactions/useAddRecentTransaction.ts b/src/hooks/transactions/useAddRecentTransaction.ts index 857ab821f..e236a541a 100644 --- a/src/hooks/transactions/useAddRecentTransaction.ts +++ b/src/hooks/transactions/useAddRecentTransaction.ts @@ -2,8 +2,8 @@ import { useCallback } from 'react' import { useAccount } from 'wagmi' import { useChainId } from '../chain/useChainId' -import { useTransactionStore } from './TransactionStoreContext' import { NewTransaction } from './transactionStore' +import { useTransactionStore } from './TransactionStoreContext' export function useAddRecentTransaction(): (transaction: NewTransaction) => void { const store = useTransactionStore() diff --git a/src/hooks/transactions/useRecentTransactions.ts b/src/hooks/transactions/useRecentTransactions.ts index 114c41cd9..f28083e69 100644 --- a/src/hooks/transactions/useRecentTransactions.ts +++ b/src/hooks/transactions/useRecentTransactions.ts @@ -2,8 +2,8 @@ import { useEffect, useState } from 'react' import { useAccount } from 'wagmi' import { useChainId } from '../chain/useChainId' -import { useTransactionStore } from './TransactionStoreContext' import type { Transaction } from './transactionStore' +import { useTransactionStore } from './TransactionStoreContext' export function useRecentTransactions(): Transaction[] { const store = useTransactionStore() diff --git a/src/hooks/useAdvancedEditor.ts b/src/hooks/useAdvancedEditor.ts index be027328b..dab67e75d 100644 --- a/src/hooks/useAdvancedEditor.ts +++ b/src/hooks/useAdvancedEditor.ts @@ -1,9 +1,9 @@ import { useEffect, useState } from 'react' import { useForm } from 'react-hook-form' import { useTranslation } from 'react-i18next' -import { Pattern, match } from 'ts-pattern' +import { match, Pattern } from 'ts-pattern' -import { RecordOptions, encodeAbi } from '@ensdomains/ensjs/utils' +import { encodeAbi, RecordOptions } from '@ensdomains/ensjs/utils' import { textOptions } from '@app/components/@molecules/AdvancedEditor/textOptions' import addressOptions from '@app/components/@molecules/ProfileEditor/options/addressOptions' @@ -239,11 +239,8 @@ const useAdvancedEditor = ({ profile, isLoading, overwrites, callback }: Props) const contentHash = dirtyFields.other?.contentHash const abi = await match(dirtyFields.other?.abi?.data) - .with('', () => ({ encodedData: null, contentType: 0 } as const)) - .with( - Pattern.string, - async (data) => await encodeAbi({ encodeAs: 'json', data: JSON.parse(data) }), - ) + .with('', () => ({ encodedData: null, contentType: 0 }) as const) + .with(Pattern.string, async (data) => encodeAbi({ encodeAs: 'json', data: JSON.parse(data) })) .otherwise(() => undefined) const records: RecordOptions = { diff --git a/src/hooks/useGetSegmentLength.ts b/src/hooks/useGetSegmentLength.ts index 592fffadd..917e797f6 100644 --- a/src/hooks/useGetSegmentLength.ts +++ b/src/hooks/useGetSegmentLength.ts @@ -10,7 +10,7 @@ export const useGetSegmentLength = () => { console.warn('Intl.Segmenter is not supported, loading polyfill') ;(async () => { const { createIntlSegmenterPolyfill } = await import('intl-segmenter-polyfill/dist/bundled') - ;(window.Intl.Segmenter as typeof Intl['Segmenter']) = + ;(window.Intl.Segmenter as (typeof Intl)['Segmenter']) = (await createIntlSegmenterPolyfill()) as any setLoading(false) })() diff --git a/src/hooks/useHasSubnames.ts b/src/hooks/useHasSubnames.ts index e398f47d2..bb8dcaafd 100644 --- a/src/hooks/useHasSubnames.ts +++ b/src/hooks/useHasSubnames.ts @@ -1,6 +1,6 @@ import { useQuery } from 'wagmi' -import { Name, getSubnames } from '@ensdomains/ensjs/subgraph' +import { getSubnames, Name } from '@ensdomains/ensjs/subgraph' import { useQueryKeys } from '@app/utils/cacheKeyFactory' diff --git a/src/hooks/useNftImage.ts b/src/hooks/useNftImage.ts index 8a574f7ef..5e0974b34 100644 --- a/src/hooks/useNftImage.ts +++ b/src/hooks/useNftImage.ts @@ -46,8 +46,7 @@ export const useNftImage = ({ name, enabled = true }: UseNftImageParameters) => return useQuery( queryKeys.getNftImage({ name, registrarAddress, chainName }), - ({ queryKey: [{ name, chainName, registrarAddress }] }) => - fetchImg(ensNftImageUrl({ name: name!, chainName, registrarAddress })), + ({ queryKey: [params] }) => fetchImg(ensNftImageUrl({ ...params, name: params.name! })), { enabled: enabled && !!name, }, diff --git a/src/hooks/useProfileActions.ts b/src/hooks/useProfileActions.ts index 65ccc1830..16e4d2571 100644 --- a/src/hooks/useProfileActions.ts +++ b/src/hooks/useProfileActions.ts @@ -3,9 +3,9 @@ import { useTranslation } from 'react-i18next' import { checkIsDecrypted } from '@ensdomains/ensjs/utils' -import { useTransactionFlow } from '@app/transaction-flow/TransactionFlowProvider' import { makeIntroItem } from '@app/transaction-flow/intro' import { makeTransactionItem } from '@app/transaction-flow/transaction' +import { useTransactionFlow } from '@app/transaction-flow/TransactionFlowProvider' import { GenericTransaction } from '@app/transaction-flow/types' import { checkAvailablePrimaryName } from '@app/utils/checkAvailablePrimaryName' import { nameParts } from '@app/utils/name' @@ -281,6 +281,6 @@ export const useProfileActions = ({ name, enabled = true }: Props) => { return { profileActions, - isLoading: isLoading, + isLoading, } } diff --git a/src/hooks/useProfileEditor.tsx b/src/hooks/useProfileEditor.tsx index d5e980de7..1b1b51106 100644 --- a/src/hooks/useProfileEditor.tsx +++ b/src/hooks/useProfileEditor.tsx @@ -2,7 +2,7 @@ import React, { ComponentProps, useEffect, useState } from 'react' import { useForm } from 'react-hook-form' import { useTranslation } from 'react-i18next' -import { RecordOptions, getInternalCodec, getProtocolType } from '@ensdomains/ensjs/utils' +import { getInternalCodec, getProtocolType, RecordOptions } from '@ensdomains/ensjs/utils' import accountsOptions from '@app/components/@molecules/ProfileEditor/options/accountsOptions' import addressOptions from '@app/components/@molecules/ProfileEditor/options/addressOptions' diff --git a/src/hooks/useQueryKeyFactory.ts b/src/hooks/useQueryKeyFactory.ts index fd7e068dc..134d17102 100644 --- a/src/hooks/useQueryKeyFactory.ts +++ b/src/hooks/useQueryKeyFactory.ts @@ -42,7 +42,6 @@ export function useQueryKeyFactory = { - interfaceNames: TInterfaceNames - resolverAddress: Address +type UseResolverHasInterfacesParameters = + { + interfaceNames: TInterfaceNames + resolverAddress: Address - enabled?: boolean -} + enabled?: boolean + } -const getResolverInterfaceErrors = ({ interfaceNames, hasInterfaces }: { interfaceNames: TInterfaceNames; hasInterfaces: boolean[] | undefined }) => { +const getResolverInterfaceErrors = < + TInterfaceName extends string, + const TInterfaceNames extends readonly TInterfaceName[], +>({ + interfaceNames, + hasInterfaces, +}: { + interfaceNames: TInterfaceNames + hasInterfaces: boolean[] | undefined +}) => { if (!hasInterfaces) return [] - return interfaceNames.reduce((prev, curr, i) => { - const hasInterface = hasInterfaces[i] - if (!hasInterface) - return [...prev, `Address does not support ${curr} interface`] as const - return prev - }, [] as readonly (`Address does not support ${TInterfaceName} interface`)[]) + return interfaceNames.reduce( + (prev, curr, i) => { + const hasInterface = hasInterfaces[i] + if (!hasInterface) return [...prev, `Address does not support ${curr} interface`] as const + return prev + }, + [] as readonly `Address does not support ${TInterfaceName} interface`[], + ) } type GetInterfaceIds = { - -readonly [K in keyof TInterfaceNames]: typeof RESOLVER_INTERFACE_IDS[TInterfaceNames[K]] + -readonly [K in keyof TInterfaceNames]: (typeof RESOLVER_INTERFACE_IDS)[TInterfaceNames[K]] } type ArrayToUnion = T[number] -export const useResolverHasInterfaces = >({ +export const useResolverHasInterfaces = < + const TInterfaceNames extends readonly ResolverInterfaceName[], + TInterfaceIds extends GetInterfaceIds, +>({ enabled: enabled_ = true, interfaceNames, resolverAddress, }: UseResolverHasInterfacesParameters) => { const chainId = useChainId() - const interfaceIds = useMemo(() => interfaceNames.map((name) => RESOLVER_INTERFACE_IDS[name]) as TInterfaceIds, [interfaceNames]) + const interfaceIds = useMemo( + () => interfaceNames.map((name) => RESOLVER_INTERFACE_IDS[name]) as TInterfaceIds, + [interfaceNames], + ) - const knownResolverData = useMemo(() => getKnownResolverData({ chainId, resolverAddress }), [chainId, resolverAddress]) + const knownResolverData = useMemo( + () => getKnownResolverData({ chainId, resolverAddress }), + [chainId, resolverAddress], + ) const enabled = enabled_ && !!resolverAddress && interfaceNames.length > 0 && !knownResolverData - const { data: data_, isLoading, isFetching, status } = useSupportedInterfaces>({ address: resolverAddress, interfaces: interfaceIds, enabled }) + const { + data: data_, + isLoading, + isFetching, + status, + } = useSupportedInterfaces>({ + address: resolverAddress, + interfaces: interfaceIds, + enabled, + }) const data = useMemo(() => { if (!knownResolverData) return data_ - return interfaceIds.map((interfaceId) => knownResolverData.supportedInterfaces.includes(interfaceId)) as GetSupportedInterfacesReturnType + return interfaceIds.map((interfaceId) => + knownResolverData.supportedInterfaces.includes(interfaceId), + ) as GetSupportedInterfacesReturnType }, [knownResolverData, data_, interfaceIds]) - const errors = getResolverInterfaceErrors, TInterfaceNames>({ interfaceNames, hasInterfaces: data }) + const errors = getResolverInterfaceErrors, TInterfaceNames>({ + interfaceNames, + hasInterfaces: data, + }) return { data, @@ -60,4 +97,4 @@ export const useResolverHasInterfaces = 0 ? errors : undefined, } -} \ No newline at end of file +} diff --git a/src/layouts/Basic.tsx b/src/layouts/Basic.tsx index 76dfbc4ac..405251ae1 100644 --- a/src/layouts/Basic.tsx +++ b/src/layouts/Basic.tsx @@ -51,11 +51,9 @@ const ContentWrapper = styled.div( const BottomPlaceholder = styled.div( ({ theme }) => css` height: ${theme.space['14']}; - ${mq.sm.min( - css` - height: ${theme.space['12']}; - `, - )} + ${mq.sm.min(css` + height: ${theme.space['12']}; + `)} `, ) diff --git a/src/layouts/Content.tsx b/src/layouts/Content.tsx index 44a6cab19..627ade6cd 100644 --- a/src/layouts/Content.tsx +++ b/src/layouts/Content.tsx @@ -2,7 +2,7 @@ import Head from 'next/head' import { ComponentProps, ReactNode, useCallback, useEffect, useRef, useState } from 'react' import styled, { css } from 'styled-components' -import { Banner, Button, Skeleton, Typography, mq } from '@ensdomains/thorin' +import { Banner, Button, mq, Skeleton, Typography } from '@ensdomains/thorin' import Hamburger from '@app/components/@molecules/Hamburger/Hamburger' import { IconCopyAnimated } from '@app/components/IconCopyAnimated' diff --git a/src/pages/404.tsx b/src/pages/404.tsx index b06f86dfd..b154c3ed8 100644 --- a/src/pages/404.tsx +++ b/src/pages/404.tsx @@ -29,11 +29,9 @@ const LogoAndLanguage = styled.div( const StyledLeadingHeading = styled(LeadingHeading)( () => css` - ${mq.sm.min( - css` - display: none; - `, - )} + ${mq.sm.min(css` + display: none; + `)} `, ) diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index eadb04c1a..867bcd729 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -1,11 +1,13 @@ -import { RainbowKitProvider, Theme, lightTheme } from '@rainbow-me/rainbowkit' +import { lightTheme, RainbowKitProvider, Theme } from '@rainbow-me/rainbowkit' + import '@rainbow-me/rainbowkit/styles.css' + import { NextPage } from 'next' import type { AppProps } from 'next/app' import { ReactElement, ReactNode } from 'react' import { I18nextProvider } from 'react-i18next' import { IntercomProvider } from 'react-use-intercom' -import { ThemeProvider, createGlobalStyle, keyframes } from 'styled-components' +import { createGlobalStyle, keyframes, ThemeProvider } from 'styled-components' import { WagmiConfig } from 'wagmi' import { ThorinGlobalStyles, lightTheme as thorinLightTheme } from '@ensdomains/thorin' @@ -14,17 +16,19 @@ import { Notifications } from '@app/components/Notifications' import { TransactionStoreProvider } from '@app/hooks/transactions/TransactionStoreContext' import { Basic } from '@app/layouts/Basic' import { TransactionFlowProvider } from '@app/transaction-flow/TransactionFlowProvider' +import { setupAnalytics } from '@app/utils/analytics' import { BreakpointProvider } from '@app/utils/BreakpointProvider' import { GlobalErrorProvider } from '@app/utils/GlobalErrorProvider/GlobalErrorProvider' +import { chains, wagmiConfig } from '@app/utils/query' import { SyncDroppedTransaction } from '@app/utils/SyncProvider/SyncDroppedTransaction' import { SyncProvider } from '@app/utils/SyncProvider/SyncProvider' -import { setupAnalytics } from '@app/utils/analytics' -import { chains, wagmiConfig } from '@app/utils/query' import i18n from '../i18n' + import '../styles.css' // @ts-ignore: Unreachable code error +// eslint-disable-next-line no-extend-native, func-names BigInt.prototype.toJSON = function () { return this.toString() } diff --git a/src/pages/address.tsx b/src/pages/address.tsx index 79f85dbf5..1593c228b 100644 --- a/src/pages/address.tsx +++ b/src/pages/address.tsx @@ -5,16 +5,14 @@ import styled, { css } from 'styled-components' import { Address } from 'viem' import { NameListView } from '@app/components/@molecules/NameListView/NameListView' -import { ProfileSnippet } from '@app/components/ProfileSnippet' import NoProfileSnippet from '@app/components/address/NoProfileSnippet' -import { TabWrapper } from '@app/components/pages/profile/TabWrapper' +import { ProfileSnippet } from '@app/components/ProfileSnippet' import { usePrimaryProfile } from '@app/hooks/usePrimaryProfile' import { Content } from '@app/layouts/Content' import { ContentGrid } from '@app/layouts/ContentGrid' import { shortenAddress } from '@app/utils/utils' import { useAccountSafely } from '../hooks/account/useAccountSafely' -import { useChainId } from '../hooks/chain/useChainId' const DetailsContainer = styled.div( ({ theme }) => css` @@ -24,27 +22,6 @@ const DetailsContainer = styled.div( `, ) -const TabWrapperWithButtons = styled(TabWrapper)( - ({ theme }) => css` - display: flex; - flex-direction: column; - align-items: normal; - justify-content: flex-start; - width: 100%; - max-width: 100%; - background: ${theme.colors.backgroundPrimary}; - `, -) - -const EmptyDetailContainer = styled.div( - ({ theme }) => css` - padding: ${theme.space['4']}; - display: flex; - justify-content: center; - align-items: center; - `, -) - const Page = () => { const { t } = useTranslation('address') const router = useRouter() @@ -52,7 +29,6 @@ const Page = () => { const { address: _address } = useAccountSafely() const address = query.address as Address - const chainId = useChainId() const isSelf = _address === address const { data: primaryProfile, isLoading: isPrimaryProfileLoading } = usePrimaryProfile({ @@ -81,7 +57,6 @@ const Page = () => { {primaryProfile?.name ? ( diff --git a/src/pages/index.tsx b/src/pages/index.tsx index b464a4630..73e5e4ba8 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -2,7 +2,7 @@ import Head from 'next/head' import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' -import { Typography, mq } from '@ensdomains/thorin' +import { mq, Typography } from '@ensdomains/thorin' import FaucetBanner from '@app/components/@molecules/FaucetBanner' import Hamburger from '@app/components/@molecules/Hamburger/Hamburger' @@ -80,11 +80,9 @@ const LogoAndLanguage = styled.div( const StyledLeadingHeading = styled(LeadingHeading)( () => css` - ${mq.sm.min( - css` - display: none; - `, - )} + ${mq.sm.min(css` + display: none; + `)} `, ) diff --git a/src/pages/legacyfavourites.tsx b/src/pages/legacyfavourites.tsx index c7bf1236a..0192df3ec 100644 --- a/src/pages/legacyfavourites.tsx +++ b/src/pages/legacyfavourites.tsx @@ -1,6 +1,6 @@ import { ReactElement, useEffect, useState } from 'react' import styled, { css } from 'styled-components' -import { P, match } from 'ts-pattern' +import { match, P } from 'ts-pattern' import { truncateFormat } from '@ensdomains/ensjs/utils' import { Helper, Typography } from '@ensdomains/thorin' @@ -20,6 +20,7 @@ const Container = styled.div( `, ) +// eslint-disable-next-line react/no-unused-prop-types type Favourite = { name: string; expiry: Date } type Favourites = Favourite[] diff --git a/src/pages/legal/[slug].tsx b/src/pages/legal/[slug].tsx index e0c81ee88..b5b94b230 100644 --- a/src/pages/legal/[slug].tsx +++ b/src/pages/legal/[slug].tsx @@ -1,9 +1,10 @@ /* stylelint-disable no-descending-specificity */ import { readFileSync } from 'fs' +import path from 'path' + import { glob } from 'glob' import Markdown from 'markdown-to-jsx' import { GetStaticPropsContext } from 'next' -import path from 'path' import { ReactElement } from 'react' import styled, { css } from 'styled-components' diff --git a/src/pages/my/names.tsx b/src/pages/my/names.tsx index d87c1665e..e6ce788c8 100644 --- a/src/pages/my/names.tsx +++ b/src/pages/my/names.tsx @@ -20,7 +20,7 @@ export default function Page() { return ( {{ - trailing: , + trailing: , }} ) diff --git a/src/test-utils.tsx b/src/test-utils.tsx index 9fa090fd1..27a24de42 100644 --- a/src/test-utils.tsx +++ b/src/test-utils.tsx @@ -1,6 +1,6 @@ /* eslint-disable import/no-extraneous-dependencies */ import { QueryClient, QueryClientProvider } from '@tanstack/react-query' -import { RenderHookOptions, RenderOptions, render, renderHook } from '@testing-library/react' +import { render, renderHook, RenderHookOptions, RenderOptions } from '@testing-library/react' import userEvent from '@testing-library/user-event' import { MockConnector } from '@wagmi/core/connectors/mock' import React, { FC, ReactElement } from 'react' @@ -8,9 +8,9 @@ import { ThemeProvider } from 'styled-components' import { createPublicClient, createWalletClient, http } from 'viem' import { privateKeyToAccount } from 'viem/accounts' import { mainnet } from 'viem/chains' -import { WagmiConfig, createConfig } from 'wagmi' +import { createConfig, WagmiConfig } from 'wagmi' -import { ThorinGlobalStyles, lightTheme } from '@ensdomains/thorin' +import { lightTheme, ThorinGlobalStyles } from '@ensdomains/thorin' import { DeepPartial } from './types' diff --git a/src/transaction-flow/TransactionLoader.tsx b/src/transaction-flow/TransactionLoader.tsx index 6ac2b3f85..84e619933 100644 --- a/src/transaction-flow/TransactionLoader.tsx +++ b/src/transaction-flow/TransactionLoader.tsx @@ -1,6 +1,6 @@ import styled, { css } from 'styled-components' -import { Spinner, mq } from '@ensdomains/thorin' +import { mq, Spinner } from '@ensdomains/thorin' const Container = styled.div( ({ theme }) => css` @@ -10,12 +10,10 @@ const Container = styled.div( padding: ${theme.space[4]}; width: 100%; - ${mq.sm.min( - css` - width: calc(80vw - 2 * ${theme.space['6']}); - max-width: ${theme.space['128']}; - `, - )} + ${mq.sm.min(css` + width: calc(80vw - 2 * ${theme.space['6']}); + max-width: ${theme.space['128']}; + `)} `, ) diff --git a/src/transaction-flow/input/AdvancedEditor/AdvancedEditor-flow.tsx b/src/transaction-flow/input/AdvancedEditor/AdvancedEditor-flow.tsx index d83e7ed42..12ce10fa4 100644 --- a/src/transaction-flow/input/AdvancedEditor/AdvancedEditor-flow.tsx +++ b/src/transaction-flow/input/AdvancedEditor/AdvancedEditor-flow.tsx @@ -10,7 +10,7 @@ import AdvancedEditorContent from '@app/components/@molecules/AdvancedEditor/Adv import AdvancedEditorTabs from '@app/components/@molecules/AdvancedEditor/AdvancedEditorTabs' import useAdvancedEditor from '@app/hooks/useAdvancedEditor' import { useProfile } from '@app/hooks/useProfile' -import { TransactionItem, makeTransactionItem } from '@app/transaction-flow/transaction' +import { makeTransactionItem, TransactionItem } from '@app/transaction-flow/transaction' import type { TransactionDialogPassthrough } from '@app/transaction-flow/types' const Container = styled.form(({ theme }) => [ @@ -38,7 +38,10 @@ const NameContainer = styled.div(({ theme }) => [ line-height: 45px; vertical-align: middle; text-align: center; - font-feature-settings: 'ss01' on, 'ss03' on, 'ss04' on; + font-feature-settings: + 'ss01' on, + 'ss03' on, + 'ss04' on; font-weight: ${theme.fontWeights.bold}; font-size: ${theme.space['6']}; white-space: nowrap; diff --git a/src/transaction-flow/input/DeleteSubnameNotParentWarning/DeleteSubnameNotParentWarning-flow.tsx b/src/transaction-flow/input/DeleteSubnameNotParentWarning/DeleteSubnameNotParentWarning-flow.tsx index 7b689b001..c92d2349b 100644 --- a/src/transaction-flow/input/DeleteSubnameNotParentWarning/DeleteSubnameNotParentWarning-flow.tsx +++ b/src/transaction-flow/input/DeleteSubnameNotParentWarning/DeleteSubnameNotParentWarning-flow.tsx @@ -7,8 +7,8 @@ import { Button, Dialog, mq } from '@ensdomains/thorin' import { usePrimaryNameOrAddress } from '@app/hooks/reverseRecord/usePrimaryNameOrAddress' import { useOwners } from '@app/hooks/useOwners' import { useParentBasicName } from '@app/hooks/useParentBasicName' -import TransactionLoader from '@app/transaction-flow/TransactionLoader' import { makeTransactionItem } from '@app/transaction-flow/transaction' +import TransactionLoader from '@app/transaction-flow/TransactionLoader' import { TransactionDialogPassthrough } from '@app/transaction-flow/types' import { CenterAlignedTypography } from '../RevokePermissions/components/CenterAlignedTypography' diff --git a/src/transaction-flow/input/ExtendNames/ExtendNames-flow.tsx b/src/transaction-flow/input/ExtendNames/ExtendNames-flow.tsx index 16c5cb5dd..523472f39 100644 --- a/src/transaction-flow/input/ExtendNames/ExtendNames-flow.tsx +++ b/src/transaction-flow/input/ExtendNames/ExtendNames-flow.tsx @@ -3,7 +3,7 @@ import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' import { useAccount, useBalance, useEnsAvatar } from 'wagmi' -import { Avatar, Button, CurrencyToggle, Dialog, Helper, ScrollBox, mq } from '@ensdomains/thorin' +import { Avatar, Button, CurrencyToggle, Dialog, Helper, mq, ScrollBox } from '@ensdomains/thorin' import { CacheableComponent } from '@app/components/@atoms/CacheableComponent' import { Invoice, InvoiceItem } from '@app/components/@atoms/Invoice/Invoice' @@ -32,12 +32,10 @@ const Container = styled.form( align-items: center; gap: ${theme.space['4']}; - ${mq.sm.min( - css` - width: calc(80vw - 2 * ${theme.space['6']}); - max-width: ${theme.space['128']}; - `, - )} + ${mq.sm.min(css` + width: calc(80vw - 2 * ${theme.space['6']}); + max-width: ${theme.space['128']}; + `)} `, ) diff --git a/src/transaction-flow/input/ProfileEditor/ProfileEditor-flow.tsx b/src/transaction-flow/input/ProfileEditor/ProfileEditor-flow.tsx index 0071a108f..0bf0132c5 100644 --- a/src/transaction-flow/input/ProfileEditor/ProfileEditor-flow.tsx +++ b/src/transaction-flow/input/ProfileEditor/ProfileEditor-flow.tsx @@ -4,7 +4,7 @@ import { Control, useWatch } from 'react-hook-form' import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' -import { Button, Dialog, PlusSVG, ScrollBox, mq } from '@ensdomains/thorin' +import { Button, Dialog, mq, PlusSVG, ScrollBox } from '@ensdomains/thorin' import { DisabledButtonWithTooltip } from '@app/components/@molecules/DisabledButtonWithTooltip' import { AvatarViewManager } from '@app/components/@molecules/ProfileEditor/Avatar/AvatarViewManager' @@ -24,8 +24,8 @@ import { useResolverStatus } from '@app/hooks/resolver/useResolverStatus' import { useIsWrapped } from '@app/hooks/useIsWrapped' import { useProfile } from '@app/hooks/useProfile' import { ProfileEditorForm, useProfileEditorForm } from '@app/hooks/useProfileEditorForm' +import { makeTransactionItem, TransactionItem } from '@app/transaction-flow/transaction' import TransactionLoader from '@app/transaction-flow/TransactionLoader' -import { TransactionItem, makeTransactionItem } from '@app/transaction-flow/transaction' import type { TransactionDialogPassthrough } from '@app/transaction-flow/types' import { getResolverWrapperAwareness } from '@app/utils/utils' diff --git a/src/transaction-flow/input/ProfileEditor/views/MigrateProfileSelectorView.tsx.tsx b/src/transaction-flow/input/ProfileEditor/views/MigrateProfileSelectorView.tsx.tsx index e1c15bc05..0edbb9359 100644 --- a/src/transaction-flow/input/ProfileEditor/views/MigrateProfileSelectorView.tsx.tsx +++ b/src/transaction-flow/input/ProfileEditor/views/MigrateProfileSelectorView.tsx.tsx @@ -4,10 +4,10 @@ import { Address } from 'viem' import { Button, Dialog, RadioButton, ScrollBox, Typography } from '@ensdomains/thorin' -import type { SelectedProfile } from '../ResolverWarningOverlay' import { CenteredTypography } from '../components/CenteredTypography' import { ProfileBlurb } from '../components/ProfileBlurb' import { StyledInnerDialog } from '../components/StyledInnerDialog' +import type { SelectedProfile } from '../ResolverWarningOverlay' const ContentContainer = styled.div( ({ theme }) => css` diff --git a/src/transaction-flow/input/ProfileEditor/views/ResolverNotNameWrapperAwareView.tsx b/src/transaction-flow/input/ProfileEditor/views/ResolverNotNameWrapperAwareView.tsx index 24ef02f6a..6e83c36ae 100644 --- a/src/transaction-flow/input/ProfileEditor/views/ResolverNotNameWrapperAwareView.tsx +++ b/src/transaction-flow/input/ProfileEditor/views/ResolverNotNameWrapperAwareView.tsx @@ -5,11 +5,11 @@ import { Button, Dialog } from '@ensdomains/thorin' import { Outlink } from '@app/components/Outlink' import { getSupportLink } from '@app/utils/supportLinks' -import type { SelectedProfile } from '../ResolverWarningOverlay' import { CenteredTypography } from '../components/CenteredTypography' import { ContentContainer } from '../components/ContentContainer' import { DetailedSwitch } from '../components/DetailedSwitch' import { StyledInnerDialog } from '../components/StyledInnerDialog' +import type { SelectedProfile } from '../ResolverWarningOverlay' type Props = { selected: SelectedProfile diff --git a/src/transaction-flow/input/ProfileEditor/views/TransferOrResetProfileView.tsx b/src/transaction-flow/input/ProfileEditor/views/TransferOrResetProfileView.tsx index df790e9bb..249cf236b 100644 --- a/src/transaction-flow/input/ProfileEditor/views/TransferOrResetProfileView.tsx +++ b/src/transaction-flow/input/ProfileEditor/views/TransferOrResetProfileView.tsx @@ -2,10 +2,10 @@ import { useTranslation } from 'react-i18next' import { Button, Dialog } from '@ensdomains/thorin' -import type { SelectedProfile } from '../ResolverWarningOverlay' import { CenteredTypography } from '../components/CenteredTypography' import { DetailedSwitch } from '../components/DetailedSwitch' import { StyledInnerDialog } from '../components/StyledInnerDialog' +import type { SelectedProfile } from '../ResolverWarningOverlay' type Props = { selected: SelectedProfile diff --git a/src/transaction-flow/input/ProfileEditor/views/UpdateResolverOrResetProfileView.tsx b/src/transaction-flow/input/ProfileEditor/views/UpdateResolverOrResetProfileView.tsx index 0e29969a6..5ac244cf0 100644 --- a/src/transaction-flow/input/ProfileEditor/views/UpdateResolverOrResetProfileView.tsx +++ b/src/transaction-flow/input/ProfileEditor/views/UpdateResolverOrResetProfileView.tsx @@ -3,10 +3,10 @@ import { useTranslation } from 'react-i18next' import { Button, Dialog } from '@ensdomains/thorin' -import type { SelectedProfile } from '../ResolverWarningOverlay' import { CenteredTypography } from '../components/CenteredTypography' import { DetailedSwitch } from '../components/DetailedSwitch' import { StyledInnerDialog } from '../components/StyledInnerDialog' +import type { SelectedProfile } from '../ResolverWarningOverlay' type Props = { selected: SelectedProfile diff --git a/src/transaction-flow/input/RevokePermissions/views/RevokeChangeFusesView.tsx b/src/transaction-flow/input/RevokePermissions/views/RevokeChangeFusesView.tsx index 088345c2e..2f3c20b1e 100644 --- a/src/transaction-flow/input/RevokePermissions/views/RevokeChangeFusesView.tsx +++ b/src/transaction-flow/input/RevokePermissions/views/RevokeChangeFusesView.tsx @@ -3,8 +3,8 @@ import { useTranslation } from 'react-i18next' import { CheckboxRow, Dialog } from '@ensdomains/thorin' -import type { FormData } from '../RevokePermissions-flow' import { CenterAlignedTypography } from '../components/CenterAlignedTypography' +import type { FormData } from '../RevokePermissions-flow' type Props = { register: UseFormRegister diff --git a/src/transaction-flow/input/RevokePermissions/views/SetExpiryView.tsx b/src/transaction-flow/input/RevokePermissions/views/SetExpiryView.tsx index 15782e1fd..d644f13d4 100644 --- a/src/transaction-flow/input/RevokePermissions/views/SetExpiryView.tsx +++ b/src/transaction-flow/input/RevokePermissions/views/SetExpiryView.tsx @@ -2,8 +2,8 @@ import { Control, UseFormGetValues, UseFormRegister, - UseFormTrigger, useFormState, + UseFormTrigger, useWatch, } from 'react-hook-form' import { Trans, useTranslation } from 'react-i18next' @@ -13,8 +13,8 @@ import { Dialog, Input, RadioButton, Typography } from '@ensdomains/thorin' import { dateTimeLocalToDate, dateToDateTimeLocal, stripDateMs } from '@app/utils/datetime-local' -import type { FormData } from '../RevokePermissions-flow' import { CenterAlignedTypography } from '../components/CenterAlignedTypography' +import type { FormData } from '../RevokePermissions-flow' type Props = { name: string diff --git a/src/transaction-flow/input/SelectPrimaryName/SelectPrimaryName-flow.tsx b/src/transaction-flow/input/SelectPrimaryName/SelectPrimaryName-flow.tsx index 19eb6d4d9..05f4b291d 100644 --- a/src/transaction-flow/input/SelectPrimaryName/SelectPrimaryName-flow.tsx +++ b/src/transaction-flow/input/SelectPrimaryName/SelectPrimaryName-flow.tsx @@ -1,13 +1,13 @@ import { useRef, useState } from 'react' -import { UseFormReturn, useForm, useWatch } from 'react-hook-form' +import { useForm, UseFormReturn, useWatch } from 'react-hook-form' import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' import { Address, labelhash } from 'viem' import { useMutation, useQueryClient } from 'wagmi' -import { Name, getDecodedName } from '@ensdomains/ensjs/subgraph' +import { getDecodedName, Name } from '@ensdomains/ensjs/subgraph' import { decodeLabelhash, isEncodedLabelhash, saveName } from '@ensdomains/ensjs/utils' -import { Button, Dialog, Heading, Typography, mq } from '@ensdomains/thorin' +import { Button, Dialog, Heading, mq, Typography } from '@ensdomains/thorin' import { InnerDialog } from '@app/components/@atoms/InnerDialog' import { @@ -25,9 +25,9 @@ import { useIsWrapped } from '@app/hooks/useIsWrapped' import { useProfile } from '@app/hooks/useProfile' import { usePublicClient } from '@app/hooks/usePublicClient' import { + nameToFormData, UnknownLabelsForm, FormData as UnknownLabelsFormData, - nameToFormData, } from '@app/transaction-flow/input/UnknownLabels/views/UnknownLabelsForm' import { TransactionDialogPassthrough } from '@app/transaction-flow/types' import { useQueryKeys } from '@app/utils/cacheKeyFactory' @@ -81,10 +81,9 @@ const LoadingContainer = styled(InnerDialog)( ) const HeaderWrapper = styled.div( - ({ theme }) => - css` - margin: 0 -${theme.space['4']}; - `, + ({ theme }) => css` + margin: 0 -${theme.space['4']}; + `, ) const ContentContainer = styled.form(({ theme }) => [ diff --git a/src/transaction-flow/input/SelectPrimaryName/components/TaggedNameItemWithFuseCheck.tsx b/src/transaction-flow/input/SelectPrimaryName/components/TaggedNameItemWithFuseCheck.tsx index 95c6c3049..e1f08ce22 100644 --- a/src/transaction-flow/input/SelectPrimaryName/components/TaggedNameItemWithFuseCheck.tsx +++ b/src/transaction-flow/input/SelectPrimaryName/components/TaggedNameItemWithFuseCheck.tsx @@ -5,12 +5,11 @@ import { useResolverStatus } from '@app/hooks/resolver/useResolverStatus' type Props = ComponentProps export const TaggedNameItemWithFuseCheck = (props: Props) => { + const { relation, fuses, name } = props const skip = - props.relation?.resolvedAddress || - !props.relation?.wrappedOwner || - !props.fuses?.child.CANNOT_SET_RESOLVER + relation?.resolvedAddress || !relation?.wrappedOwner || !fuses?.child.CANNOT_SET_RESOLVER - const resolverStatus = useResolverStatus({ name: props.name!, enabled: !skip }) + const resolverStatus = useResolverStatus({ name: name!, enabled: !skip }) const isFuseCheckSuccess = useMemo(() => { if (skip) return true diff --git a/src/transaction-flow/input/SendName-flow.tsx b/src/transaction-flow/input/SendName-flow.tsx index 08521e273..7545011ba 100644 --- a/src/transaction-flow/input/SendName-flow.tsx +++ b/src/transaction-flow/input/SendName-flow.tsx @@ -1,8 +1,3 @@ -import styled, { css } from 'styled-components' - -import { mq } from '@ensdomains/thorin' - -import { useBasicName } from '@app/hooks/useBasicName' import { TransactionDialogPassthrough } from '@app/transaction-flow/types' type Data = { @@ -10,61 +5,62 @@ type Data = { type?: 'manager' | 'owner' } -type FormData = { - managerChoice: string - ownerChoice: string - dogfoodRaw: string - address: string -} +// type FormData = { +// managerChoice: string +// ownerChoice: string +// dogfoodRaw: string +// address: string +// } export type Props = { data: Data } & TransactionDialogPassthrough -type BasicNameData = ReturnType +// type BasicNameData = ReturnType -const SwitchBox = styled.div( - ({ theme }) => css` - display: flex; - align-items: center; - justify-content: flex-end; - gap: ${theme.space['4']}; - padding: 20px; - width: 100%; - border-radius: ${theme.radii.extraLarge}; - border: ${theme.borderWidths.px} ${theme.borderStyles.solid} ${theme.colors.border}; - `, -) +// const SwitchBox = styled.div( +// ({ theme }) => css` +// display: flex; +// align-items: center; +// justify-content: flex-end; +// gap: ${theme.space['4']}; +// padding: 20px; +// width: 100%; +// border-radius: ${theme.radii.extraLarge}; +// border: ${theme.borderWidths.px} ${theme.borderStyles.solid} ${theme.colors.border}; +// `, +// ) -const TextContainer = styled.div` - display: flex; - flex-direction: column; - flex: 1; -` +// const TextContainer = styled.div` +// display: flex; +// flex-direction: column; +// flex: 1; +// ` -const Form = styled.form( - () => css` - width: 100%; - `, -) +// const Form = styled.form( +// () => css` +// width: 100%; +// `, +// ) -const InnerContainer = styled.div(({ theme }) => [ - css` - width: 100%; - `, - mq.sm.min(css` - width: calc(80vw - 2 * ${theme.space['6']}); - max-width: 510px; - `), -]) +// const InnerContainer = styled.div(({ theme }) => [ +// css` +// width: 100%; +// `, +// mq.sm.min(css` +// width: calc(80vw - 2 * ${theme.space['6']}); +// max-width: 510px; +// `), +// ]) -const FooterContainer = styled.div` - display: flex; - align-items: center; - justify-content: center; -` +// const FooterContainer = styled.div` +// display: flex; +// align-items: center; +// justify-content: center; +// ` // TODO (tate): readd from refactor +// eslint-disable-next-line @typescript-eslint/no-unused-vars export const SendName = ({ data, dispatch, onDismiss }: Props) => { return null } diff --git a/src/transaction-flow/input/TransferProfile/TransferProfile-flow.tsx b/src/transaction-flow/input/TransferProfile/TransferProfile-flow.tsx index c3eb062f9..068eac2e3 100644 --- a/src/transaction-flow/input/TransferProfile/TransferProfile-flow.tsx +++ b/src/transaction-flow/input/TransferProfile/TransferProfile-flow.tsx @@ -26,8 +26,8 @@ const TransferProfile = ({ data, dispatch }: Props) => { const updateResolverTransaction = makeTransactionItem('updateResolver', { name: data.name, - resolverAddress: resolverAddress, - oldResolverAddress: oldResolverAddress, + resolverAddress, + oldResolverAddress, contract: data.isWrapped ? 'nameWrapper' : 'registry', }) diff --git a/src/transaction-flow/input/UnknownLabels/UnknownLabels-flow.tsx b/src/transaction-flow/input/UnknownLabels/UnknownLabels-flow.tsx index f49540be8..29a46ec73 100644 --- a/src/transaction-flow/input/UnknownLabels/UnknownLabels-flow.tsx +++ b/src/transaction-flow/input/UnknownLabels/UnknownLabels-flow.tsx @@ -7,7 +7,7 @@ import { saveName } from '@ensdomains/ensjs/utils' import { useQueryKeys } from '@app/utils/cacheKeyFactory' import { TransactionDialogPassthrough, TransactionFlowItem } from '../../types' -import { FormData, UnknownLabelsForm, nameToFormData } from './views/UnknownLabelsForm' +import { FormData, nameToFormData, UnknownLabelsForm } from './views/UnknownLabelsForm' type Data = { name: string diff --git a/src/transaction-flow/input/UnknownLabels/views/UnknownLabelsForm.tsx b/src/transaction-flow/input/UnknownLabels/views/UnknownLabelsForm.tsx index 268f989da..dfa4d8ac1 100644 --- a/src/transaction-flow/input/UnknownLabels/views/UnknownLabelsForm.tsx +++ b/src/transaction-flow/input/UnknownLabels/views/UnknownLabelsForm.tsx @@ -1,11 +1,11 @@ import { forwardRef } from 'react' -import { UseFormReturn, useFieldArray } from 'react-hook-form' +import { useFieldArray, UseFormReturn } from 'react-hook-form' import { useTranslation } from 'react-i18next' import styled, { css } from 'styled-components' import { labelhash } from 'viem' import { decodeLabelhash, isEncodedLabelhash, validateName } from '@ensdomains/ensjs/utils' -import { Button, Dialog, Input, Typography, mq } from '@ensdomains/thorin' +import { Button, Dialog, Input, mq, Typography } from '@ensdomains/thorin' import { isLabelTooLong } from '@app/utils/utils' diff --git a/src/transaction-flow/transaction/approveNameWrapper.ts b/src/transaction-flow/transaction/approveNameWrapper.ts index 38df56c2d..3cc4b7550 100644 --- a/src/transaction-flow/transaction/approveNameWrapper.ts +++ b/src/transaction-flow/transaction/approveNameWrapper.ts @@ -3,11 +3,7 @@ import { Address, encodeFunctionData } from 'viem' import { getChainContractAddress } from '@ensdomains/ensjs/contracts' -import { - Transaction, - TransactionDisplayItem, - TransactionFunctionParameters -} from '@app/types' +import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' type Data = { address: Address } @@ -51,10 +47,7 @@ const registrySetApprovalForAllSnippet = [ }, ] as const -const transaction = async ({ - publicClient, - data, -}: TransactionFunctionParameters) => { +const transaction = async ({ publicClient, data }: TransactionFunctionParameters) => { return { to: getChainContractAddress({ client: publicClient, diff --git a/src/transaction-flow/transaction/burnFuses.ts b/src/transaction-flow/transaction/burnFuses.ts index 372003e0b..fba7aba99 100644 --- a/src/transaction-flow/transaction/burnFuses.ts +++ b/src/transaction-flow/transaction/burnFuses.ts @@ -31,10 +31,7 @@ const displayItems = ( }, ] -const transaction = ({ - walletClient, - data, -}: TransactionFunctionParameters) => { +const transaction = ({ walletClient, data }: TransactionFunctionParameters) => { return setFuses.makeFunctionData(walletClient, { name: data.name, fuses: { diff --git a/src/transaction-flow/transaction/changePermissions.ts b/src/transaction-flow/transaction/changePermissions.ts index 7e6173e69..5eb533211 100644 --- a/src/transaction-flow/transaction/changePermissions.ts +++ b/src/transaction-flow/transaction/changePermissions.ts @@ -1,10 +1,11 @@ /* eslint-disable @typescript-eslint/no-redeclare */ import type { TFunction } from 'react-i18next' -import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' import { ChildFuseReferenceType, ParentFuseReferenceType } from '@ensdomains/ensjs/utils' import { setChildFuses, setFuses } from '@ensdomains/ensjs/wallet' +import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' + type WithSetChildFuses = { contract: 'setChildFuses' fuses: { @@ -82,10 +83,7 @@ const displayItems = ( ] } -const transaction = ({ - walletClient, - data, -}: TransactionFunctionParameters) => { +const transaction = ({ walletClient, data }: TransactionFunctionParameters) => { const { contract } = data if (contract === 'setChildFuses') { return setChildFuses.makeFunctionData(walletClient, { @@ -105,7 +103,7 @@ const transaction = ({ name: data.name, fuses: { named: data.fuses, - } + }, }) } diff --git a/src/transaction-flow/transaction/commitName.ts b/src/transaction-flow/transaction/commitName.ts index 013b1c7d3..271f735d4 100644 --- a/src/transaction-flow/transaction/commitName.ts +++ b/src/transaction-flow/transaction/commitName.ts @@ -26,11 +26,8 @@ const displayItems = ( }, ] -const transaction = async ({ - walletClient, - data, -}: TransactionFunctionParameters) => { +const transaction = async ({ walletClient, data }: TransactionFunctionParameters) => { return commitName.makeFunctionData(walletClient, data) } -export default { displayItems, transaction } satisfies Transaction \ No newline at end of file +export default { displayItems, transaction } satisfies Transaction diff --git a/src/transaction-flow/transaction/createSubname.ts b/src/transaction-flow/transaction/createSubname.ts index 5f0ccf333..12cab455a 100644 --- a/src/transaction-flow/transaction/createSubname.ts +++ b/src/transaction-flow/transaction/createSubname.ts @@ -1,8 +1,9 @@ import type { TFunction } from 'react-i18next' -import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' import { createSubname } from '@ensdomains/ensjs/wallet' +import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' + type Data = { parent: string label: string diff --git a/src/transaction-flow/transaction/deleteSubname.ts b/src/transaction-flow/transaction/deleteSubname.ts index 230214fc6..bdae077e9 100644 --- a/src/transaction-flow/transaction/deleteSubname.ts +++ b/src/transaction-flow/transaction/deleteSubname.ts @@ -1,8 +1,9 @@ import type { TFunction } from 'react-i18next' -import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' import { deleteSubname } from '@ensdomains/ensjs/wallet' +import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' + type Data = { name: string contract: 'nameWrapper' | 'registry' diff --git a/src/transaction-flow/transaction/extendNames.ts b/src/transaction-flow/transaction/extendNames.ts index 57c493b34..8928db911 100644 --- a/src/transaction-flow/transaction/extendNames.ts +++ b/src/transaction-flow/transaction/extendNames.ts @@ -1,10 +1,16 @@ import type { TFunction } from 'react-i18next' -import { HelperProps, Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' -import { makeDisplay } from '@app/utils/currency' - import { getPrice } from '@ensdomains/ensjs/public' import { renewNames } from '@ensdomains/ensjs/wallet' + +import { + HelperProps, + Transaction, + TransactionDisplayItem, + TransactionFunctionParameters, +} from '@app/types' +import { makeDisplay } from '@app/utils/currency' + import { calculateValueWithBuffer, secondsToYears } from '../../utils/utils' type Data = { @@ -53,7 +59,11 @@ const helper = (data: Data, t: TFunction<'translation', undefined>): HelperProps } } -const transaction = async ({ publicClient, walletClient, data }: TransactionFunctionParameters) => { +const transaction = async ({ + publicClient, + walletClient, + data, +}: TransactionFunctionParameters) => { const { names, duration } = data const price = await getPrice(publicClient, { nameOrNames: names, diff --git a/src/transaction-flow/transaction/importDNSSECName.ts b/src/transaction-flow/transaction/importDNSSECName.ts index 2479d2f55..769a22a45 100644 --- a/src/transaction-flow/transaction/importDNSSECName.ts +++ b/src/transaction-flow/transaction/importDNSSECName.ts @@ -1,9 +1,9 @@ import type { TFunction } from 'react-i18next' +import { Address } from 'viem' import { GetDnsImportDataReturnType, importDnsName } from '@ensdomains/ensjs/dns' import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' -import { Address } from 'viem' type Data = { name: string @@ -26,7 +26,7 @@ const displayItems = ( }, ] -const transaction = ({ walletClient, data }: TransactionFunctionParameters) => +const transaction = ({ walletClient, data }: TransactionFunctionParameters) => importDnsName.makeFunctionData(walletClient, data) export default { diff --git a/src/transaction-flow/transaction/migrateProfile.ts b/src/transaction-flow/transaction/migrateProfile.ts index 9b669d282..fe48f84ce 100644 --- a/src/transaction-flow/transaction/migrateProfile.ts +++ b/src/transaction-flow/transaction/migrateProfile.ts @@ -1,13 +1,13 @@ import type { TFunction } from 'react-i18next' - -import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' -import { profileRecordsToKeyValue } from '@app/utils/records' +import type { Address } from 'viem' import { getChainContractAddress } from '@ensdomains/ensjs/contracts' import { getRecords } from '@ensdomains/ensjs/public' import { getSubgraphRecords } from '@ensdomains/ensjs/subgraph' import { setRecords } from '@ensdomains/ensjs/wallet' -import type { Address } from 'viem' + +import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' +import { profileRecordsToKeyValue } from '@app/utils/records' type Data = { name: string @@ -33,22 +33,31 @@ const displayItems = ( }, ] -const transaction = async ({ publicClient, walletClient, data }: TransactionFunctionParameters) => { +const transaction = async ({ + publicClient, + walletClient, + data, +}: TransactionFunctionParameters) => { const subgraphRecords = await getSubgraphRecords(publicClient, data) if (!subgraphRecords) throw new Error('No subgraph records found') - const profile = await getRecords(publicClient, { + const profile = await getRecords(publicClient, { name: data.name, records: { ...subgraphRecords, abi: true, contentHash: true, }, - resolver: data.resolverAddress ? { - address: data.resolverAddress, - fallbackOnly: false, - } : undefined - }) - const resolverAddress = getChainContractAddress({ client: publicClient, contract: 'ensPublicResolver' }) + resolver: data.resolverAddress + ? { + address: data.resolverAddress, + fallbackOnly: false, + } + : undefined, + }) + const resolverAddress = getChainContractAddress({ + client: publicClient, + contract: 'ensPublicResolver', + }) if (!profile) throw new Error('No profile found') const records = await profileRecordsToKeyValue(profile) return setRecords.makeFunctionData(walletClient, { diff --git a/src/transaction-flow/transaction/migrateProfileWithEthAddress.ts b/src/transaction-flow/transaction/migrateProfileWithEthAddress.ts index 71455bd21..c33bd8380 100644 --- a/src/transaction-flow/transaction/migrateProfileWithEthAddress.ts +++ b/src/transaction-flow/transaction/migrateProfileWithEthAddress.ts @@ -1,12 +1,13 @@ import type { TFunction } from 'react-i18next' +import { Address } from 'viem' -import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' -import { makeProfileRecordsWithEthRecordItem, profileRecordsToKeyValue } from '@app/utils/records' import { getChainContractAddress } from '@ensdomains/ensjs/contracts' import { getRecords } from '@ensdomains/ensjs/public' import { getSubgraphRecords } from '@ensdomains/ensjs/subgraph' import { setRecords } from '@ensdomains/ensjs/wallet' -import { Address } from 'viem' + +import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' +import { makeProfileRecordsWithEthRecordItem, profileRecordsToKeyValue } from '@app/utils/records' type Data = { name: string @@ -33,14 +34,15 @@ const displayItems = ( }, ] -const transaction = async ( - { - publicClient, - walletClient, - data, - }: TransactionFunctionParameters, -) => { - const subgraphRecords = await getSubgraphRecords(publicClient, { name: data.name, resolverAddress: data.resolverAddress }) +const transaction = async ({ + publicClient, + walletClient, + data, +}: TransactionFunctionParameters) => { + const subgraphRecords = await getSubgraphRecords(publicClient, { + name: data.name, + resolverAddress: data.resolverAddress, + }) const profile = await getRecords(publicClient, { name: data.name, records: { @@ -48,12 +50,17 @@ const transaction = async ( abi: true, contentHash: true, }, - resolver: data.resolverAddress ? { - address: data.resolverAddress, - fallbackOnly: false, - } : undefined + resolver: data.resolverAddress + ? { + address: data.resolverAddress, + fallbackOnly: false, + } + : undefined, + }) + const latestResolverAddress = getChainContractAddress({ + client: publicClient, + contract: 'ensPublicResolver', }) - const latestResolverAddress = getChainContractAddress({ client: publicClient, contract: 'ensPublicResolver' }) const profileRecords = makeProfileRecordsWithEthRecordItem(profile, data.ethAddress) const records = await profileRecordsToKeyValue(profileRecords) diff --git a/src/transaction-flow/transaction/migrateProfileWithReset.ts b/src/transaction-flow/transaction/migrateProfileWithReset.ts index a130c3e1e..a0f07874c 100644 --- a/src/transaction-flow/transaction/migrateProfileWithReset.ts +++ b/src/transaction-flow/transaction/migrateProfileWithReset.ts @@ -1,13 +1,13 @@ import type { TFunction } from 'react-i18next' +import { Address } from 'viem' -import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' - -import { profileRecordsToKeyValue } from '@app/utils/records' import { getChainContractAddress } from '@ensdomains/ensjs/contracts' import { getRecords } from '@ensdomains/ensjs/public' import { getSubgraphRecords } from '@ensdomains/ensjs/subgraph' import { setRecords } from '@ensdomains/ensjs/wallet' -import { Address } from 'viem' + +import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' +import { profileRecordsToKeyValue } from '@app/utils/records' type Data = { name: string @@ -32,7 +32,11 @@ const displayItems = ({ name }: Data, t: TFunction): TransactionDisplayItem[] => ] } -const transaction = async ({ publicClient, walletClient, data }: TransactionFunctionParameters) => { +const transaction = async ({ + publicClient, + walletClient, + data, +}: TransactionFunctionParameters) => { const subgraphRecords = await getSubgraphRecords(publicClient, { name: data.name }) const profile = await getRecords(publicClient, { name: data.name, @@ -41,14 +45,19 @@ const transaction = async ({ publicClient, walletClient, data }: TransactionFunc abi: true, contentHash: true, }, - resolver: data.resolverAddress ? { - address: data.resolverAddress, - fallbackOnly: false, - } : undefined + resolver: data.resolverAddress + ? { + address: data.resolverAddress, + fallbackOnly: false, + } + : undefined, }) const profileRecords = profileRecordsToKeyValue(profile) - const latestResolverAddress = getChainContractAddress({ client: publicClient, contract: 'ensPublicResolver' }) + const latestResolverAddress = getChainContractAddress({ + client: publicClient, + contract: 'ensPublicResolver', + }) return setRecords.makeFunctionData(walletClient, { name: data.name, diff --git a/src/transaction-flow/transaction/registerName.ts b/src/transaction-flow/transaction/registerName.ts index c50555970..7052ca263 100644 --- a/src/transaction-flow/transaction/registerName.ts +++ b/src/transaction-flow/transaction/registerName.ts @@ -1,11 +1,11 @@ import type { TFunction } from 'react-i18next' +import { getPrice } from '@ensdomains/ensjs/public' import { RegistrationParameters } from '@ensdomains/ensjs/utils' +import { registerName } from '@ensdomains/ensjs/wallet' import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' import { calculateValueWithBuffer, secondsToYears } from '@app/utils/utils' -import { getPrice } from '@ensdomains/ensjs/public' -import { registerName } from '@ensdomains/ensjs/wallet' type Data = RegistrationParameters @@ -30,7 +30,11 @@ const displayItems = ( }, ] -const transaction = async ({ publicClient, walletClient, data }: TransactionFunctionParameters) => { +const transaction = async ({ + publicClient, + walletClient, + data, +}: TransactionFunctionParameters) => { const price = await getPrice(publicClient, { nameOrNames: data.name, duration: data.duration }) const value = price.base + price.premium const valueWithBuffer = calculateValueWithBuffer(value) diff --git a/src/transaction-flow/transaction/resetPrimaryName.ts b/src/transaction-flow/transaction/resetPrimaryName.ts index 48910e87c..3d913db5d 100644 --- a/src/transaction-flow/transaction/resetPrimaryName.ts +++ b/src/transaction-flow/transaction/resetPrimaryName.ts @@ -1,8 +1,9 @@ import type { TFunction } from 'react-i18next' +import { Address } from 'viem' -import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' import { setPrimaryName } from '@ensdomains/ensjs/wallet' -import { Address } from 'viem' + +import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' type Data = { address: Address diff --git a/src/transaction-flow/transaction/resetProfile.ts b/src/transaction-flow/transaction/resetProfile.ts index 59aa21347..4b2f6dae9 100644 --- a/src/transaction-flow/transaction/resetProfile.ts +++ b/src/transaction-flow/transaction/resetProfile.ts @@ -1,8 +1,9 @@ import type { TFunction } from 'i18next' +import type { Address } from 'viem' -import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' import { clearRecords } from '@ensdomains/ensjs/wallet' -import type { Address } from 'viem' + +import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' type Data = { name: string diff --git a/src/transaction-flow/transaction/setPrimaryName.ts b/src/transaction-flow/transaction/setPrimaryName.ts index d09383b92..a795685ef 100644 --- a/src/transaction-flow/transaction/setPrimaryName.ts +++ b/src/transaction-flow/transaction/setPrimaryName.ts @@ -1,8 +1,9 @@ import type { TFunction } from 'react-i18next' +import type { Address } from 'viem' -import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' import { setPrimaryName } from '@ensdomains/ensjs/wallet' -import type { Address } from 'viem' + +import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' type Data = { name: string diff --git a/src/transaction-flow/transaction/syncManager.ts b/src/transaction-flow/transaction/syncManager.ts index 8021bee8e..a1950f645 100644 --- a/src/transaction-flow/transaction/syncManager.ts +++ b/src/transaction-flow/transaction/syncManager.ts @@ -1,8 +1,9 @@ import type { TFunction } from 'react-i18next' +import { Address } from 'viem' -import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' import { GetDnsImportDataReturnType, importDnsName } from '@ensdomains/ensjs/dns' -import { Address } from 'viem' + +import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' type Data = { name: string diff --git a/src/transaction-flow/transaction/testSendName.ts b/src/transaction-flow/transaction/testSendName.ts index cc6b2b9cf..7e18386c3 100644 --- a/src/transaction-flow/transaction/testSendName.ts +++ b/src/transaction-flow/transaction/testSendName.ts @@ -5,6 +5,7 @@ import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters type Data = {} const displayItems = ( + // eslint-disable-next-line no-empty-pattern {}: Data, t: TFunction<'translation', undefined>, ): TransactionDisplayItem[] => [ @@ -28,9 +29,11 @@ const displayItems = ( }, ] -const transaction = async ({}: TransactionFunctionParameters) => ({ - to: '0x0000000000000000000000000000000000000000', - data: '0x', -} as const) +// eslint-disable-next-line no-empty-pattern +const transaction = async ({}: TransactionFunctionParameters) => + ({ + to: '0x0000000000000000000000000000000000000000', + data: '0x', + }) as const export default { displayItems, transaction } satisfies Transaction diff --git a/src/transaction-flow/transaction/transferController.ts b/src/transaction-flow/transaction/transferController.ts index bcbba9679..bb782f895 100644 --- a/src/transaction-flow/transaction/transferController.ts +++ b/src/transaction-flow/transaction/transferController.ts @@ -1,8 +1,9 @@ import type { TFunction } from 'react-i18next' +import type { Address } from 'viem' -import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' import { transferName } from '@ensdomains/ensjs/wallet' -import type { Address } from 'viem' + +import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' type Data = { name: string diff --git a/src/transaction-flow/transaction/transferName.ts b/src/transaction-flow/transaction/transferName.ts index 17e7705f8..08726a56d 100644 --- a/src/transaction-flow/transaction/transferName.ts +++ b/src/transaction-flow/transaction/transferName.ts @@ -1,8 +1,9 @@ import type { TFunction } from 'react-i18next' +import type { Address } from 'viem' -import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' import { transferName } from '@ensdomains/ensjs/wallet' -import type { Address } from 'viem' + +import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' type RegistrarData = { contract: 'registrar' @@ -43,10 +44,15 @@ const displayItems = ( ] const transaction = ({ walletClient, data }: TransactionFunctionParameters) => { - return transferName.makeFunctionData(walletClient, data.contract === 'registrar' ? data : { - ...data, - asParent: false, - }) + return transferName.makeFunctionData( + walletClient, + data.contract === 'registrar' + ? data + : { + ...data, + asParent: false, + }, + ) } export default { diff --git a/src/transaction-flow/transaction/transferSubname.ts b/src/transaction-flow/transaction/transferSubname.ts index 0a8d42015..e75071852 100644 --- a/src/transaction-flow/transaction/transferSubname.ts +++ b/src/transaction-flow/transaction/transferSubname.ts @@ -1,8 +1,9 @@ import type { TFunction } from 'react-i18next' +import type { Address } from 'viem' -import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' import { transferName } from '@ensdomains/ensjs/wallet' -import type { Address } from 'viem' + +import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' type Data = { name: string diff --git a/src/transaction-flow/transaction/unwrapName.ts b/src/transaction-flow/transaction/unwrapName.ts index b7500a02f..953e158d6 100644 --- a/src/transaction-flow/transaction/unwrapName.ts +++ b/src/transaction-flow/transaction/unwrapName.ts @@ -1,8 +1,9 @@ import type { TFunction } from 'react-i18next' +import { unwrapName } from '@ensdomains/ensjs/wallet' + import type { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' import { checkETH2LDFromName } from '@app/utils/utils' -import { unwrapName } from '@ensdomains/ensjs/wallet' type Data = { name: string @@ -24,9 +25,14 @@ const displayItems = ( ] const transaction = async ({ walletClient, data }: TransactionFunctionParameters) => { - const address = walletClient.account.address + const { address } = walletClient.account - if (checkETH2LDFromName(data.name)) return unwrapName.makeFunctionData(walletClient, { name: data.name, newOwnerAddress: address, newRegistrantAddress: address }) + if (checkETH2LDFromName(data.name)) + return unwrapName.makeFunctionData(walletClient, { + name: data.name, + newOwnerAddress: address, + newRegistrantAddress: address, + }) return unwrapName.makeFunctionData(walletClient, { name: data.name, newOwnerAddress: address, diff --git a/src/transaction-flow/transaction/updateEthAddress.ts b/src/transaction-flow/transaction/updateEthAddress.ts index 964a5ff40..ba87f8c13 100644 --- a/src/transaction-flow/transaction/updateEthAddress.ts +++ b/src/transaction-flow/transaction/updateEthAddress.ts @@ -1,10 +1,11 @@ import type { TFunction } from 'react-i18next' +import { Address } from 'viem' -import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' import { getChainContractAddress } from '@ensdomains/ensjs/contracts' import { getResolver } from '@ensdomains/ensjs/public' import { setAddressRecord } from '@ensdomains/ensjs/wallet' -import { Address } from 'viem' + +import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' type Data = { name: string @@ -34,7 +35,11 @@ const displayItems = ( }, ] -const transaction = async ({ publicClient, walletClient, data }: TransactionFunctionParameters) => { +const transaction = async ({ + publicClient, + walletClient, + data, +}: TransactionFunctionParameters) => { const resolverAddress = data?.latestResolver ? getChainContractAddress({ client: publicClient, contract: 'ensPublicResolver' }) : await getResolver(publicClient, { name: data.name }) diff --git a/src/transaction-flow/transaction/updateProfile.ts b/src/transaction-flow/transaction/updateProfile.ts index 02fd4b2da..95b95f7db 100644 --- a/src/transaction-flow/transaction/updateProfile.ts +++ b/src/transaction-flow/transaction/updateProfile.ts @@ -1,11 +1,11 @@ import type { TFunction } from 'i18next' +import type { Address } from 'viem' import type { RecordOptions } from '@ensdomains/ensjs/utils' +import { setRecords } from '@ensdomains/ensjs/wallet' import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' -import { setRecords } from '@ensdomains/ensjs/wallet' -import type { Address } from 'viem' import { recordOptionsToToupleList } from '../../utils/records' type Data = { diff --git a/src/transaction-flow/transaction/updateProfileRecords.ts b/src/transaction-flow/transaction/updateProfileRecords.ts index aca48bd3d..56c8c9c7f 100644 --- a/src/transaction-flow/transaction/updateProfileRecords.ts +++ b/src/transaction-flow/transaction/updateProfileRecords.ts @@ -1,4 +1,7 @@ import type { TFunction } from 'i18next' +import { Address } from 'viem' + +import { setRecords } from '@ensdomains/ensjs/wallet' import { getProfileRecordsDiff, @@ -7,8 +10,6 @@ import { import { ProfileRecord } from '@app/constants/profileRecordOptions' import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' import { recordOptionsToToupleList } from '@app/utils/records' -import { setRecords } from '@ensdomains/ensjs/wallet' -import { Address } from 'viem' type Data = { name: string diff --git a/src/transaction-flow/transaction/updateResolver.ts b/src/transaction-flow/transaction/updateResolver.ts index 4e79275f9..cf55ddb36 100644 --- a/src/transaction-flow/transaction/updateResolver.ts +++ b/src/transaction-flow/transaction/updateResolver.ts @@ -1,9 +1,10 @@ import type { TFunction } from 'react-i18next' +import { Address } from 'viem' + +import { setResolver } from '@ensdomains/ensjs/wallet' import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' -import { setResolver } from '@ensdomains/ensjs/wallet' -import { Address } from 'viem' import { shortenAddress } from '../../utils/utils' type Data = { diff --git a/src/transaction-flow/transaction/wrapName.ts b/src/transaction-flow/transaction/wrapName.ts index 1c97601ef..207d617cf 100644 --- a/src/transaction-flow/transaction/wrapName.ts +++ b/src/transaction-flow/transaction/wrapName.ts @@ -1,8 +1,9 @@ import type { TFunction } from 'react-i18next' -import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' import { wrapName } from '@ensdomains/ensjs/wallet' +import { Transaction, TransactionDisplayItem, TransactionFunctionParameters } from '@app/types' + type Data = { name: string } diff --git a/src/transaction-flow/types.ts b/src/transaction-flow/types.ts index 1a3930c9a..c2c33da42 100644 --- a/src/transaction-flow/types.ts +++ b/src/transaction-flow/types.ts @@ -10,10 +10,10 @@ import { MinedData, TransactionDisplayItem } from '@app/types' import type { DataInputComponent } from './input' import type { IntroComponentName } from './intro' import type { + makeTransactionItem, TransactionData, TransactionItem, TransactionName, - makeTransactionItem, } from './transaction' export type TransactionFlowStage = 'input' | 'intro' | 'transaction' @@ -177,14 +177,9 @@ export type GetUniqueTransactionParameters = Pick } -export type UniqueTransaction< - TName extends TransactionName = TransactionName, - TData extends TransactionData = TransactionData, -> = { +export type UniqueTransaction = { key: string step: number name: TName data: TransactionData } - -type d334 = TransactionData<'approveNameWrapper'> diff --git a/src/utils/BreakpointProvider.tsx b/src/utils/BreakpointProvider.tsx index cf44390f8..e2cdc4188 100644 --- a/src/utils/BreakpointProvider.tsx +++ b/src/utils/BreakpointProvider.tsx @@ -29,10 +29,13 @@ const BreakpointProvider = ({ let isAttached = false const handleQueryListener = () => { - const updatedMatches = keys.reduce((acc, media) => { - acc[media] = !!(mediaQueryLists[media] && mediaQueryLists[media]?.matches) - return acc - }, {} as Record) + const updatedMatches = keys.reduce( + (acc, media) => { + acc[media] = !!(mediaQueryLists[media] && mediaQueryLists[media]?.matches) + return acc + }, + {} as Record, + ) setQueryMatch(updatedMatches) } @@ -76,4 +79,4 @@ function useBreakpoint() { } return context } -export { useBreakpoint, BreakpointProvider } +export { BreakpointProvider, useBreakpoint } diff --git a/src/utils/GlobalErrorProvider/GlobalErrorProvider.tsx b/src/utils/GlobalErrorProvider/GlobalErrorProvider.tsx index 1da4c88de..589a3ba68 100644 --- a/src/utils/GlobalErrorProvider/GlobalErrorProvider.tsx +++ b/src/utils/GlobalErrorProvider/GlobalErrorProvider.tsx @@ -1,5 +1,5 @@ -import { QueryKey, hashQueryKey } from '@tanstack/react-query' -import { Dispatch, Reducer, createContext, useContext, useReducer } from 'react' +import { hashQueryKey, QueryKey } from '@tanstack/react-query' +import { createContext, Dispatch, Reducer, useContext, useReducer } from 'react' import { useTranslation } from 'react-i18next' import { useQueryClient } from 'wagmi' diff --git a/src/utils/GlobalErrorProvider/useHasSlowQueries.ts b/src/utils/GlobalErrorProvider/useHasSlowQueries.ts index 0aaf3b3ff..4a8a19cb3 100644 --- a/src/utils/GlobalErrorProvider/useHasSlowQueries.ts +++ b/src/utils/GlobalErrorProvider/useHasSlowQueries.ts @@ -1,30 +1,29 @@ -import { QueryCache } from '@tanstack/react-query' +import type { GlobalErrorDispatch, GlobalErrorState } from './GlobalErrorProvider' -import { GlobalErrorDispatch, GlobalErrorState } from './GlobalErrorProvider' +// const SLOW_THRESHOLD = 5000 -const SLOW_THRESHOLD = 5000 +// const getSlowQueries = (queryCache: QueryCache) => { +// const queries = queryCache.getAll() +// const slowQueries: any[] = [] -const getSlowQueries = (queryCache: QueryCache) => { - const queries = queryCache.getAll() - const slowQueries: any[] = [] +// queries.forEach((query) => { +// const elapsedTime = Date.now() - query.state.dataUpdatedAt - queries.forEach((query) => { - const elapsedTime = Date.now() - query.state.dataUpdatedAt +// if ( +// elapsedTime > SLOW_THRESHOLD && +// query.state.status === 'loading' && +// query.getObserversCount() > 0 +// ) { +// console.log(query) +// slowQueries.push(query) +// } +// }) - if ( - elapsedTime > SLOW_THRESHOLD && - query.state.status === 'loading' && - query.getObserversCount() > 0 - ) { - console.log(query) - slowQueries.push(query) - } - }) +// return slowQueries +// } - return slowQueries -} - -export const useHasSlowQueries = (state: GlobalErrorState, dispatch: GlobalErrorDispatch) => { +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export const useHasSlowQueries = (_state: GlobalErrorState, _dispatch: GlobalErrorDispatch) => { return null // const { t } = useTranslation('common') diff --git a/src/utils/GlobalErrorProvider/useSyncExternalStore.ts b/src/utils/GlobalErrorProvider/useSyncExternalStore.ts index b0c93402b..bfd05a9df 100644 --- a/src/utils/GlobalErrorProvider/useSyncExternalStore.ts +++ b/src/utils/GlobalErrorProvider/useSyncExternalStore.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line import/extensions import * as pkg from 'use-sync-external-store/shim/index.js' -export const useSyncExternalStore = pkg.useSyncExternalStore +export const { useSyncExternalStore } = pkg diff --git a/src/utils/SyncProvider/SyncDroppedTransaction.tsx b/src/utils/SyncProvider/SyncDroppedTransaction.tsx index 28bf06365..20c4cc9e8 100644 --- a/src/utils/SyncProvider/SyncDroppedTransaction.tsx +++ b/src/utils/SyncProvider/SyncDroppedTransaction.tsx @@ -1,14 +1,14 @@ /* eslint-disable no-await-in-loop */ import { useEffect, useRef } from 'react' -import { type Address, TransactionNotFoundError } from 'viem' +import { TransactionNotFoundError, type Address } from 'viem' import { useAccountSafely } from '@app/hooks/account/useAccountSafely' -import { useTransactionStore } from '@app/hooks/transactions/TransactionStoreContext' import type { EtherscanMinedData, Transaction, TransactionStore, } from '@app/hooks/transactions/transactionStore' +import { useTransactionStore } from '@app/hooks/transactions/TransactionStoreContext' import { useRecentTransactions } from '@app/hooks/transactions/useRecentTransactions' import { usePublicClient } from '@app/hooks/usePublicClient' import { PublicClientWithChain } from '@app/types' diff --git a/src/utils/SyncProvider/SyncProvider.tsx b/src/utils/SyncProvider/SyncProvider.tsx index 0caaf0bce..a92f3336c 100644 --- a/src/utils/SyncProvider/SyncProvider.tsx +++ b/src/utils/SyncProvider/SyncProvider.tsx @@ -9,8 +9,8 @@ import { Transaction } from '@app/hooks/transactions/transactionStore' import { useRecentTransactions } from '@app/hooks/transactions/useRecentTransactions' import { useRegisterNameCallback } from '@app/hooks/transactions/useRegisterNameCallback' -import { debugSubgraphIndexingErrors } from '../GlobalErrorProvider/useSubgraphMetaSync' import { useQueryKeys } from '../cacheKeyFactory' +import { debugSubgraphIndexingErrors } from '../GlobalErrorProvider/useSubgraphMetaSync' export type UpdateCallback = (transaction: Transaction) => void type AddCallback = (key: string, callback: UpdateCallback) => void diff --git a/src/utils/editor.ts b/src/utils/editor.ts index d97c08a0b..40be6d9f0 100644 --- a/src/utils/editor.ts +++ b/src/utils/editor.ts @@ -91,7 +91,7 @@ export const convertProfileToProfileFormObject = (profile: Profile): ProfileForm ) || { general: {}, accounts: {}, other: {} } let website = '' - const contentHash = profile.contentHash + const { contentHash } = profile if (contentHash) { if (typeof contentHash === 'string') { website = contentHash diff --git a/src/utils/getDefaultWallets.ts b/src/utils/getDefaultWallets.ts index c8bf4c63e..a32e949b7 100644 --- a/src/utils/getDefaultWallets.ts +++ b/src/utils/getDefaultWallets.ts @@ -1,4 +1,4 @@ -import { Chain, WalletList, connectorsForWallets } from '@rainbow-me/rainbowkit' +import { Chain, connectorsForWallets, WalletList } from '@rainbow-me/rainbowkit' import { argentWallet, braveWallet, diff --git a/src/utils/query.ts b/src/utils/query.ts index 398e261f8..400c5e81f 100644 --- a/src/utils/query.ts +++ b/src/utils/query.ts @@ -1,4 +1,5 @@ import '@rainbow-me/rainbowkit/styles.css' + import { DefaultOptions, QueryClient } from '@tanstack/react-query' import { ChainProviderFn, configureChains, createConfig } from 'wagmi' import { goerli, localhost, mainnet, sepolia } from 'wagmi/chains' diff --git a/src/utils/records.ts b/src/utils/records.ts index ec118d86b..333cf2920 100644 --- a/src/utils/records.ts +++ b/src/utils/records.ts @@ -1,10 +1,10 @@ import { Address } from 'viem' import { - DecodedContentHash, - RecordOptions, contentTypeToEncodeAs, + DecodedContentHash, encodeAbi, + RecordOptions, } from '@ensdomains/ensjs/utils' import { AddressRecord, Profile, TextRecord } from '@app/types' @@ -56,12 +56,15 @@ const checkRecordsEqual = >(keyFn: (item: TMatchObject) => string) => (a: TMatchObject[] = [], b: TMatchObject[] = []): boolean => { return Object.values( - [...a, ...b].reduce((acc, item) => { - const key = keyFn(item) - if (acc[key]) acc[key] += 1 - else acc[key] = 1 - return acc - }, {} as Record), + [...a, ...b].reduce( + (acc, item) => { + const key = keyFn(item) + if (acc[key]) acc[key] += 1 + else acc[key] = 1 + return acc + }, + {} as Record, + ), ).every((count) => count === 2) } diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 0bdd35956..8d595149c 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -1,4 +1,4 @@ -import { type Address, toBytes } from 'viem' +import { toBytes, type Address } from 'viem' import { Eth2ldName } from '@ensdomains/ensjs/dist/types/types' import { DecodedFuses } from '@ensdomains/ensjs/utils'