diff --git a/.github/common-actions/install/action.yml b/.github/common-actions/install/action.yml index 1cbcf6d61..809315335 100644 --- a/.github/common-actions/install/action.yml +++ b/.github/common-actions/install/action.yml @@ -16,6 +16,12 @@ runs: registry-url: "https://registry.npmjs.org" cache: "pnpm" + - name: Setup Git User + shell: bash + run: | + git config --global user.email "devops+ghbob@interlay.io" + git config --global user.name "gobob-xyz" + - name: Install dependencies shell: bash run: pnpm install \ No newline at end of file diff --git a/.storybook/main.ts b/.storybook/main.ts index 1f63cb859..c9746e33e 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -1,6 +1,6 @@ import type { StorybookConfig } from '@storybook/react-vite'; - -import { join, dirname } from 'path'; +import { mergeConfig } from "vite" +import { join, dirname, resolve } from 'path'; /** * This function is used to resolve the absolute path of a package. @@ -10,7 +10,7 @@ function getAbsolutePath(value: string): any { return dirname(require.resolve(join(value, 'package.json'))); } const config: StorybookConfig = { - stories: ['../packages/components/src/**/*.stories.@(js|jsx|mjs|ts|tsx)', '../packages/icons/src/stories/*.stories.@(js|jsx|mjs|ts|tsx)'], + stories: ['../packages/components/src/**/*.stories.@(js|jsx|mjs|ts|tsx)', '../packages/icons/**/src/stories/*.stories.@(js|jsx|mjs|ts|tsx)'], addons: [ getAbsolutePath('@storybook/addon-links'), getAbsolutePath('@storybook/addon-essentials'), @@ -26,6 +26,22 @@ const config: StorybookConfig = { }, core: { disableTelemetry: true - } + }, + async viteFinal(config) { + // Merge custom configuration into the default config + return mergeConfig(config, { + resolve: { + alias: [ + { + find: /\@just_testing13\/icon$/, + replacement: resolve( + __dirname, + "../packages/icons/core/src", + ), + }, + ], + }, + }) + }, }; export default config; diff --git a/package.json b/package.json index 5e2f6bf3c..2ee38c170 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,8 @@ "@storybook/react": "^7.4.0", "@storybook/react-vite": "^7.4.0", "@storybook/testing-library": "^0.2.0", + "@swc/core": "^1.3.84", + "@swc/jest": "^0.2.29", "@types/react": "^18.2.21", "@types/react-dom": "^18.2.7", "@types/styled-components": "^5.1.26", @@ -50,13 +52,15 @@ "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-unused-imports": "^3.0.0", + "jest": "^29.7.0", "prettier": "^3.0.3", "react": "^18.2.0", "react-dom": "^18.2.0", "storybook": "^7.4.0", "tsup": "^7.2.0", "turbo": "latest", - "typescript": ">=3.0.0" + "typescript": ">=3.0.0", + "vite": "^4.4.9" }, "pnpm": { "overrides": { diff --git a/packages/icons/coin/src/stories/index.stories.tsx b/packages/icons/coin/src/stories/index.stories.tsx index 7b4ce1561..7e711e23c 100644 --- a/packages/icons/coin/src/stories/index.stories.tsx +++ b/packages/icons/coin/src/stories/index.stories.tsx @@ -1,54 +1,56 @@ import { Meta, StoryObj } from '@storybook/react'; -import { Icon, IconProps } from '@just_testing13/icon'; -import * as SVGS from '../'; +import { Icon, IconProps } from '..'; +import * as SVGS from '..'; -export const Default: StoryObj = { +export default { + title: 'Icons/Coins', + component: Icon, + decorators: [ + (Story) => ( +
+ +
+ ) + ] +} as Meta; + +export const Coins: StoryObj = { args: { size: 'md' }, render: (args) => ( <> - {Object.entries(SVGS).map(([key, Comp]) => ( -
- - key !== 'Icon') + .map(([key, Comp]) => ( +
- {key} - -
- ))} + + + {key} + +
+ ))} ) }; - -export default { - title: 'Icons/Coin', - component: Icon, - decorators: [ - (Story) => ( -
- -
- ) - ] -} as Meta; diff --git a/packages/icons/common/src/stories/index.stories.tsx b/packages/icons/common/src/stories/index.stories.tsx index 19b08f8e1..db181abf4 100644 --- a/packages/icons/common/src/stories/index.stories.tsx +++ b/packages/icons/common/src/stories/index.stories.tsx @@ -1,54 +1,56 @@ import { Meta, StoryObj } from '@storybook/react'; -import { Icon, IconProps } from '@just_testing13/icon'; -import * as SVGS from '../'; +import { Icon, IconProps } from '..'; +import * as SVGS from '..'; -export const Default: StoryObj = { +export default { + title: 'Icons/Common', + component: Icon, + decorators: [ + (Story) => ( +
+ +
+ ) + ] +} as Meta; + +export const Common: StoryObj = { args: { size: 'md' }, render: (args) => ( <> - {Object.entries(SVGS).map(([key, Comp]) => ( -
- - key !== 'Icon') + .map(([key, Comp]) => ( +
- {key} - -
- ))} + + + {key} + +
+ ))} ) }; - -export default { - title: 'Icons/Common', - component: Icon, - decorators: [ - (Story) => ( -
- -
- ) - ] -} as Meta; diff --git a/packages/icons2/coin/package.json b/packages/icons2/coin/package.json deleted file mode 100644 index 1992d99ce..000000000 --- a/packages/icons2/coin/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "@just_testing13/coin-icons", - "version": "0.0.0", - "main": "src/index.ts", - "files": [ - "dist" - ], - "license": "MIT", - "sideEffects": false, - "scripts": { - "lint": "eslint .", - "lint:fix": "eslint . --ext ts,tsx --fix", - "build": "tsup src/index.ts --dts", - "prepack": "clean-package", - "postpack": "clean-package restore" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - }, - "devDependencies": { - "clean-package": "^2.2.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" - }, - "dependencies": { - "@just_testing13/theme": "workspace:*" - }, - "clean-package": "../../../clean-package.config.json" -} diff --git a/packages/icons2/coin/src/Icon.tsx b/packages/icons2/coin/src/Icon.tsx deleted file mode 100644 index acf1bdd94..000000000 --- a/packages/icons2/coin/src/Icon.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import type { Colors } from '@just_testing13/theme'; - -import styled from 'styled-components'; -import { theme, resolveColor } from '@just_testing13/theme'; -import { SVGAttributes, forwardRef } from 'react'; - -type IconSize = keyof typeof theme.icon.sizes; - -type StyledIconProps = { - $size: IconSize; - $color?: Colors; -}; - -const StyledIcon = styled.svg` - color: ${({ $color }) => resolveColor($color)}; - width: ${({ $size }) => theme.icon.sizes[$size]}; - height: ${({ $size }) => theme.icon.sizes[$size]}; - display: inline-block; - user-select: none; - flex-shrink: 0; - overflow: hidden; -`; - -type Props = { - size?: IconSize; - color?: Colors; -}; - -type NativeAttrs = Omit, keyof Props>; - -type IconProps = Props & NativeAttrs; - -const Icon = forwardRef( - ({ size = 'md', color = 'primary', ...props }, ref): JSX.Element => ( - - ) -); - -Icon.displayName = 'Icon'; - -export { Icon }; -export type { IconProps, IconSize }; diff --git a/packages/icons2/coin/src/common/BTC.tsx b/packages/icons2/coin/src/common/BTC.tsx deleted file mode 100644 index f6638496a..000000000 --- a/packages/icons2/coin/src/common/BTC.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../Icon'; - -const BTC = forwardRef((props, ref) => ( - - BTC - - - -)); - -BTC.displayName = 'BTC'; - -export { BTC }; diff --git a/packages/icons2/coin/src/common/ETH.tsx b/packages/icons2/coin/src/common/ETH.tsx deleted file mode 100644 index 9344b1f60..000000000 --- a/packages/icons2/coin/src/common/ETH.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../Icon'; - -const ETH = forwardRef((props, ref) => ( - - ETH - - - - - - - - - - - - - - - - - - - - - - - - -)); - -ETH.displayName = 'ETH'; - -export { ETH }; diff --git a/packages/icons2/coin/src/common/USDT.tsx b/packages/icons2/coin/src/common/USDT.tsx deleted file mode 100644 index 7115a574f..000000000 --- a/packages/icons2/coin/src/common/USDT.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../Icon'; - -const USDT = forwardRef((props, ref) => ( - - USDT - - - -)); - -USDT.displayName = 'USDT'; - -export { USDT }; diff --git a/packages/icons2/coin/src/common/index.ts b/packages/icons2/coin/src/common/index.ts deleted file mode 100644 index be97eadae..000000000 --- a/packages/icons2/coin/src/common/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { BTC } from './BTC'; -export { ETH } from './ETH'; -export { USDT } from './USDT'; diff --git a/packages/icons2/coin/src/polkadot/AUSD.tsx b/packages/icons2/coin/src/polkadot/AUSD.tsx deleted file mode 100644 index 5d723d1bb..000000000 --- a/packages/icons2/coin/src/polkadot/AUSD.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const AUSD = forwardRef((props, ref) => ( - - AUSD - - - - - - - - - - - - - - - - - - - - -)); - -AUSD.displayName = 'AUSD'; - -export { AUSD }; diff --git a/packages/icons2/coin/src/polkadot/DOT.tsx b/packages/icons2/coin/src/polkadot/DOT.tsx deleted file mode 100644 index 589a255da..000000000 --- a/packages/icons2/coin/src/polkadot/DOT.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const DOT = forwardRef((props, ref) => ( - - DOT - - - - - - - - - - - -)); - -DOT.displayName = 'DOT'; - -export { DOT }; diff --git a/packages/icons2/coin/src/polkadot/IBTC.tsx b/packages/icons2/coin/src/polkadot/IBTC.tsx deleted file mode 100644 index bdc2292dd..000000000 --- a/packages/icons2/coin/src/polkadot/IBTC.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const IBTC = forwardRef((props, ref) => ( - - IBTC - - - - - - - - - - - - - - - - - -)); - -IBTC.displayName = 'IBTC'; - -export { IBTC }; diff --git a/packages/icons2/coin/src/polkadot/INTR.tsx b/packages/icons2/coin/src/polkadot/INTR.tsx deleted file mode 100644 index d7cc5d515..000000000 --- a/packages/icons2/coin/src/polkadot/INTR.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const INTR = forwardRef((props, ref) => ( - - INTR - - - - - - - - - - - - - - - -)); - -INTR.displayName = 'INTR'; - -export { INTR }; diff --git a/packages/icons2/coin/src/polkadot/KAR.tsx b/packages/icons2/coin/src/polkadot/KAR.tsx deleted file mode 100644 index 2417b7b07..000000000 --- a/packages/icons2/coin/src/polkadot/KAR.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const KAR = forwardRef((props, ref) => ( - - KAR - - - - - - - - - - - - - - - - - - - -)); - -KAR.displayName = 'KAR'; - -export { KAR }; diff --git a/packages/icons2/coin/src/polkadot/KBTC.tsx b/packages/icons2/coin/src/polkadot/KBTC.tsx deleted file mode 100644 index 097f4b45b..000000000 --- a/packages/icons2/coin/src/polkadot/KBTC.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const KBTC = forwardRef((props, ref) => ( - - KBTC - - - - - - - - - - - - - - - - - - - - - - - - -)); - -KBTC.displayName = 'KBTC'; - -export { KBTC }; diff --git a/packages/icons2/coin/src/polkadot/KINT.tsx b/packages/icons2/coin/src/polkadot/KINT.tsx deleted file mode 100644 index 67ef105bc..000000000 --- a/packages/icons2/coin/src/polkadot/KINT.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const KINT = forwardRef((props, ref) => ( - - KINT - - - - - - - - - - - - - - - - - - - - - - -)); - -KINT.displayName = 'KINT'; - -export { KINT }; diff --git a/packages/icons2/coin/src/polkadot/KSM.tsx b/packages/icons2/coin/src/polkadot/KSM.tsx deleted file mode 100644 index 1421d1802..000000000 --- a/packages/icons2/coin/src/polkadot/KSM.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const KSM = forwardRef((props, ref) => ( - - KSM - - - - - - - - - - -)); - -KSM.displayName = 'KSM'; - -export { KSM }; diff --git a/packages/icons2/coin/src/polkadot/LDOT.tsx b/packages/icons2/coin/src/polkadot/LDOT.tsx deleted file mode 100644 index 75b28c983..000000000 --- a/packages/icons2/coin/src/polkadot/LDOT.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const LDOT = forwardRef((props, ref) => ( - - LDOT - - - - - - - - - - - - - - - - - -)); - -LDOT.displayName = 'LDOT'; - -export { LDOT }; diff --git a/packages/icons2/coin/src/polkadot/LKSM.tsx b/packages/icons2/coin/src/polkadot/LKSM.tsx deleted file mode 100644 index 01bb9e69f..000000000 --- a/packages/icons2/coin/src/polkadot/LKSM.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const LKSM = forwardRef((props, ref) => ( - - LKSM - - - - - - - - -)); - -LKSM.displayName = 'LKSM'; - -export { LKSM }; diff --git a/packages/icons2/coin/src/polkadot/LSKSM.tsx b/packages/icons2/coin/src/polkadot/LSKSM.tsx deleted file mode 100644 index 2af1468fb..000000000 --- a/packages/icons2/coin/src/polkadot/LSKSM.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const LSKSM = forwardRef((props, ref) => ( - - LSKSM - - - - - - - - - - - - - - -)); - -LSKSM.displayName = 'LSKSM'; - -export { LSKSM }; diff --git a/packages/icons2/coin/src/polkadot/MOVR.tsx b/packages/icons2/coin/src/polkadot/MOVR.tsx deleted file mode 100644 index 67d4ef199..000000000 --- a/packages/icons2/coin/src/polkadot/MOVR.tsx +++ /dev/null @@ -1,191 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const MOVR = forwardRef((props, ref) => ( - - MOVR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -)); - -MOVR.displayName = 'MOVR'; - -export { MOVR }; diff --git a/packages/icons2/coin/src/polkadot/SKSM.tsx b/packages/icons2/coin/src/polkadot/SKSM.tsx deleted file mode 100644 index 2f6bb35f0..000000000 --- a/packages/icons2/coin/src/polkadot/SKSM.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const SKSM = forwardRef((props, ref) => ( - - SKSM - - - - - - - - - - - - - - -)); - -SKSM.displayName = 'SKSM'; - -export { SKSM }; diff --git a/packages/icons2/coin/src/polkadot/VKSM.tsx b/packages/icons2/coin/src/polkadot/VKSM.tsx deleted file mode 100644 index b2e2f7348..000000000 --- a/packages/icons2/coin/src/polkadot/VKSM.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const VKSM = forwardRef((props, ref) => ( - - VKSM - - - - - - - - - - - - - - -)); - -VKSM.displayName = 'VKSM'; - -export { VKSM }; diff --git a/packages/icons2/coin/src/polkadot/index.ts b/packages/icons2/coin/src/polkadot/index.ts deleted file mode 100644 index 410793e16..000000000 --- a/packages/icons2/coin/src/polkadot/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -export { AUSD } from './AUSD'; -export { DOT } from './DOT'; -export { IBTC } from './IBTC'; -export { INTR } from './INTR'; -export { KAR } from './KAR'; -export { KBTC } from './KBTC'; -export { KINT } from './KINT'; -export { KSM } from './KSM'; -export { LDOT } from './LDOT'; -export { LKSM } from './LKSM'; -export { LSKSM } from './LSKSM'; -export { MOVR } from './MOVR'; -export { qDOT } from './qDOT'; -export { qIBTC } from './qIBTC'; -export { qINTR } from './qINTR'; -export { qKBTC } from './qKBTC'; -export { qKINT } from './qKINT'; -export { qKSM } from './qKSM'; -export { qMOVR } from './qMOVR'; -export { qUSDT } from './qUSDT'; -export { SKSM } from './SKSM'; -export { VKSM } from './VKSM'; diff --git a/packages/icons2/coin/src/polkadot/qDOT.tsx b/packages/icons2/coin/src/polkadot/qDOT.tsx deleted file mode 100644 index 4cf5b4556..000000000 --- a/packages/icons2/coin/src/polkadot/qDOT.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const qDOT = forwardRef((props, ref) => ( - - qDOT - - - - - - - - - - - - - - - - - - - - -)); - -qDOT.displayName = 'qDOT'; - -export { qDOT }; diff --git a/packages/icons2/coin/src/polkadot/qIBTC.tsx b/packages/icons2/coin/src/polkadot/qIBTC.tsx deleted file mode 100644 index cbe8f2f26..000000000 --- a/packages/icons2/coin/src/polkadot/qIBTC.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const qIBTC = forwardRef((props, ref) => ( - - qIBTC - - - - - - - - - - - - - - - - - -)); - -qIBTC.displayName = 'qIBTC'; - -export { qIBTC }; diff --git a/packages/icons2/coin/src/polkadot/qINTR.tsx b/packages/icons2/coin/src/polkadot/qINTR.tsx deleted file mode 100644 index 3e289205b..000000000 --- a/packages/icons2/coin/src/polkadot/qINTR.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const qINTR = forwardRef((props, ref) => ( - - qINTR - - - - - - - - - - - - - - - -)); - -qINTR.displayName = 'qINTR'; - -export { qINTR }; diff --git a/packages/icons2/coin/src/polkadot/qKBTC.tsx b/packages/icons2/coin/src/polkadot/qKBTC.tsx deleted file mode 100644 index 27f660c90..000000000 --- a/packages/icons2/coin/src/polkadot/qKBTC.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const qKBTC = forwardRef((props, ref) => ( - - qKBTC - - - - - - - - - - - - - - - - - - - - - - - - -)); - -qKBTC.displayName = 'qKBTC'; - -export { qKBTC }; diff --git a/packages/icons2/coin/src/polkadot/qKINT.tsx b/packages/icons2/coin/src/polkadot/qKINT.tsx deleted file mode 100644 index 195b80ad4..000000000 --- a/packages/icons2/coin/src/polkadot/qKINT.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const qKINT = forwardRef((props, ref) => ( - - qKINT - - - - - - - - - - - - - - - - - - - - - - -)); - -qKINT.displayName = 'qKINT'; - -export { qKINT }; diff --git a/packages/icons2/coin/src/polkadot/qKSM.tsx b/packages/icons2/coin/src/polkadot/qKSM.tsx deleted file mode 100644 index 887f04111..000000000 --- a/packages/icons2/coin/src/polkadot/qKSM.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const qKSM = forwardRef((props, ref) => ( - - qKSM - - - - - - - - - - -)); - -qKSM.displayName = 'qKSM'; - -export { qKSM }; diff --git a/packages/icons2/coin/src/polkadot/qMOVR.tsx b/packages/icons2/coin/src/polkadot/qMOVR.tsx deleted file mode 100644 index 19bca704b..000000000 --- a/packages/icons2/coin/src/polkadot/qMOVR.tsx +++ /dev/null @@ -1,191 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const qMOVR = forwardRef((props, ref) => ( - - qMOVR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -)); - -qMOVR.displayName = 'qMOVR'; - -export { qMOVR }; diff --git a/packages/icons2/coin/src/polkadot/qUSDT.tsx b/packages/icons2/coin/src/polkadot/qUSDT.tsx deleted file mode 100644 index ec05cde52..000000000 --- a/packages/icons2/coin/src/polkadot/qUSDT.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../../Icon'; - -const qUSDT = forwardRef((props, ref) => ( - - qUSDT - - - - - - - - - - -)); - -qUSDT.displayName = 'qUSDT'; - -export { qUSDT }; diff --git a/packages/icons2/coin/src/stories/coin.stories.tsx b/packages/icons2/coin/src/stories/coin.stories.tsx deleted file mode 100644 index b4245dbf9..000000000 --- a/packages/icons2/coin/src/stories/coin.stories.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; - -import * as SVGS from '../svg/coin'; -import { Icon, IconProps } from '../Icon'; - -export const Default: StoryObj = { - args: { - size: 'md' - }, - render: (args) => ( - <> - {Object.entries(SVGS).map(([key, Comp]) => ( -
- - - {key} - -
- ))} - - ) -}; - -export default { - title: 'Icons/Coin', - component: Icon, - decorators: [ - (Story) => ( -
- -
- ) - ] -} as Meta; diff --git a/packages/icons2/coin/src/stories/common.stories.tsx b/packages/icons2/coin/src/stories/common.stories.tsx deleted file mode 100644 index dbfcd4454..000000000 --- a/packages/icons2/coin/src/stories/common.stories.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { Meta, StoryObj } from '@storybook/react'; - -import * as SVGS from '../svg/common'; -import { Icon, IconProps } from '../Icon'; - -export const Default: StoryObj = { - args: { - size: 'md' - }, - render: (args) => ( - <> - {Object.entries(SVGS).map(([key, Comp]) => ( -
- - - {key} - -
- ))} - - ) -}; - -export default { - title: 'Icons/Common', - component: Icon, - decorators: [ - (Story) => ( -
- -
- ) - ] -} as Meta; diff --git a/packages/icons2/coin/tsconfig.json b/packages/icons2/coin/tsconfig.json deleted file mode 100644 index f61004816..000000000 --- a/packages/icons2/coin/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../../tsconfig.json", - "compilerOptions": { "baseUrl": ".", "declaration": false }, - "include": ["src"] -} diff --git a/packages/icons2/coin/tsup.config.ts b/packages/icons2/coin/tsup.config.ts deleted file mode 100644 index fd2bba042..000000000 --- a/packages/icons2/coin/tsup.config.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { defineConfig } from 'tsup'; - -export default defineConfig({ - clean: true, - target: 'es2019', - format: ['cjs', 'esm'], - banner: { js: '"use client";' } -}); diff --git a/packages/icons2/common/package.json b/packages/icons2/common/package.json deleted file mode 100644 index e38a27fb4..000000000 --- a/packages/icons2/common/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "@just_testing13/icons", - "version": "0.1.3", - "main": "src/index.ts", - "files": [ - "dist" - ], - "license": "MIT", - "sideEffects": false, - "scripts": { - "lint": "eslint .", - "lint:fix": "eslint . --ext ts,tsx --fix", - "build": "tsup src/index.ts --dts", - "prepack": "clean-package", - "postpack": "clean-package restore" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18" - }, - "devDependencies": { - "clean-package": "^2.2.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" - }, - "dependencies": { - "@just_testing13/icons-core": "workspace:*" - }, - "clean-package": "../../../clean-package.config.json" -} diff --git a/packages/icons2/common/src/ArrowPathRoundedSquare.tsx b/packages/icons2/common/src/ArrowPathRoundedSquare.tsx deleted file mode 100644 index 217778d15..000000000 --- a/packages/icons2/common/src/ArrowPathRoundedSquare.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const ArrowPathRoundedSquare = forwardRef((props, ref) => ( - - - -)); - -ArrowPathRoundedSquare.displayName = 'ArrowPathRoundedSquare'; - -export { ArrowPathRoundedSquare }; diff --git a/packages/icons2/common/src/ArrowRight.tsx b/packages/icons2/common/src/ArrowRight.tsx deleted file mode 100644 index 8ce3e9fd2..000000000 --- a/packages/icons2/common/src/ArrowRight.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const ArrowRight = forwardRef((props, ref) => ( - - - -)); - -ArrowRight.displayName = 'ArrowRight'; - -export { ArrowRight }; diff --git a/packages/icons2/common/src/ArrowRightCircle.tsx b/packages/icons2/common/src/ArrowRightCircle.tsx deleted file mode 100644 index b0368029d..000000000 --- a/packages/icons2/common/src/ArrowRightCircle.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const ArrowRightCircle = forwardRef((props, ref) => ( - - - -)); - -ArrowRightCircle.displayName = 'ArrowRightCircle'; - -export { ArrowRightCircle }; diff --git a/packages/icons2/common/src/ArrowTopRightOnSquare.tsx b/packages/icons2/common/src/ArrowTopRightOnSquare.tsx deleted file mode 100644 index f0f95950c..000000000 --- a/packages/icons2/common/src/ArrowTopRightOnSquare.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const ArrowTopRightOnSquare = forwardRef((props, ref) => ( - - - -)); - -ArrowTopRightOnSquare.displayName = 'ArrowTopRightOnSquare'; - -export { ArrowTopRightOnSquare }; diff --git a/packages/icons2/common/src/ArrowsUpDown.tsx b/packages/icons2/common/src/ArrowsUpDown.tsx deleted file mode 100644 index 5578fa6e3..000000000 --- a/packages/icons2/common/src/ArrowsUpDown.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const ArrowsUpDown = forwardRef((props, ref) => ( - - - -)); - -ArrowsUpDown.displayName = 'ArrowsUpDown'; - -export { ArrowsUpDown }; diff --git a/packages/icons2/common/src/CheckCircle.tsx b/packages/icons2/common/src/CheckCircle.tsx deleted file mode 100644 index 6e22a96a3..000000000 --- a/packages/icons2/common/src/CheckCircle.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const CheckCircle = forwardRef((props, ref) => ( - - - -)); - -CheckCircle.displayName = 'CheckCircle'; - -export { CheckCircle }; diff --git a/packages/icons2/common/src/ChevronDown.tsx b/packages/icons2/common/src/ChevronDown.tsx deleted file mode 100644 index 6f9801e20..000000000 --- a/packages/icons2/common/src/ChevronDown.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const ChevronDown = forwardRef((props, ref) => ( - - - -)); - -ChevronDown.displayName = 'ChevronDown'; - -export { ChevronDown }; diff --git a/packages/icons2/common/src/ChevronRight.tsx b/packages/icons2/common/src/ChevronRight.tsx deleted file mode 100644 index 5561743b2..000000000 --- a/packages/icons2/common/src/ChevronRight.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const ChevronRight = forwardRef((props, ref) => ( - - - -)); - -ChevronRight.displayName = 'ChevronRight'; - -export { ChevronRight }; diff --git a/packages/icons2/common/src/Cog.tsx b/packages/icons2/common/src/Cog.tsx deleted file mode 100644 index 9b0781086..000000000 --- a/packages/icons2/common/src/Cog.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const Cog = forwardRef((props, ref) => ( - - - - -)); - -Cog.displayName = 'Cog'; - -export { Cog }; diff --git a/packages/icons2/common/src/DocumentDuplicate.tsx b/packages/icons2/common/src/DocumentDuplicate.tsx deleted file mode 100644 index 2c3957229..000000000 --- a/packages/icons2/common/src/DocumentDuplicate.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const DocumentDuplicate = forwardRef((props, ref) => ( - - - -)); - -DocumentDuplicate.displayName = 'DocumentDuplicate'; - -export { DocumentDuplicate }; diff --git a/packages/icons2/common/src/InformationCircle.tsx b/packages/icons2/common/src/InformationCircle.tsx deleted file mode 100644 index 2785c23ea..000000000 --- a/packages/icons2/common/src/InformationCircle.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const InformationCircle = forwardRef((props, ref) => ( - - - -)); - -InformationCircle.displayName = 'InformationCircle'; - -export { InformationCircle }; diff --git a/packages/icons2/common/src/ListBullet.tsx b/packages/icons2/common/src/ListBullet.tsx deleted file mode 100644 index 7a76280ae..000000000 --- a/packages/icons2/common/src/ListBullet.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const ListBullet = forwardRef((props, ref) => ( - - - -)); - -ListBullet.displayName = 'ListBullet'; - -export { ListBullet }; diff --git a/packages/icons2/common/src/PencilSquare.tsx b/packages/icons2/common/src/PencilSquare.tsx deleted file mode 100644 index f027fb8ea..000000000 --- a/packages/icons2/common/src/PencilSquare.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const PencilSquare = forwardRef((props, ref) => ( - - - -)); - -PencilSquare.displayName = 'PencilSquare'; - -export { PencilSquare }; diff --git a/packages/icons2/common/src/PlusCircle.tsx b/packages/icons2/common/src/PlusCircle.tsx deleted file mode 100644 index 460ee4022..000000000 --- a/packages/icons2/common/src/PlusCircle.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const PlusCircle = forwardRef((props, ref) => ( - - - -)); - -PlusCircle.displayName = 'PlusCircle'; - -export { PlusCircle }; diff --git a/packages/icons2/common/src/PresentationChartBar.tsx b/packages/icons2/common/src/PresentationChartBar.tsx deleted file mode 100644 index 5e5782348..000000000 --- a/packages/icons2/common/src/PresentationChartBar.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const PresentationChartBar = forwardRef((props, ref) => ( - - - -)); - -PresentationChartBar.displayName = 'PresentationChartBar'; - -export { PresentationChartBar }; diff --git a/packages/icons2/common/src/Warning.tsx b/packages/icons2/common/src/Warning.tsx deleted file mode 100644 index 3349ea124..000000000 --- a/packages/icons2/common/src/Warning.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const Warning = forwardRef((props, ref) => ( - - - -)); - -Warning.displayName = 'Warning'; - -export { Warning }; diff --git a/packages/icons2/common/src/XCircle.tsx b/packages/icons2/common/src/XCircle.tsx deleted file mode 100644 index 5c573969c..000000000 --- a/packages/icons2/common/src/XCircle.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const XCircle = forwardRef((props, ref) => ( - - - -)); - -XCircle.displayName = 'XCircle'; - -export { XCircle }; diff --git a/packages/icons2/common/src/XMark.tsx b/packages/icons2/common/src/XMark.tsx deleted file mode 100644 index 831d122f4..000000000 --- a/packages/icons2/common/src/XMark.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { forwardRef } from 'react'; - -import { Icon, IconProps } from '../../Icon'; - -const XMark = forwardRef((props, ref) => ( - - - -)); - -XMark.displayName = 'XMark'; - -export { XMark }; diff --git a/packages/icons2/common/src/index.ts b/packages/icons2/common/src/index.ts deleted file mode 100644 index 94ef00075..000000000 --- a/packages/icons2/common/src/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -export { ArrowPathRoundedSquare } from './ArrowPathRoundedSquare'; -export { ArrowRight } from './ArrowRight'; -export { ArrowRightCircle } from './ArrowRightCircle'; -export { ArrowsUpDown } from './ArrowsUpDown'; -export { ArrowTopRightOnSquare } from './ArrowTopRightOnSquare'; -export { CheckCircle } from './CheckCircle'; -export { ChevronDown } from './ChevronDown'; -export { ChevronRight } from './ChevronRight'; -export { Cog } from './Cog'; -export { DocumentDuplicate } from './DocumentDuplicate'; -export { InformationCircle } from './InformationCircle'; -export { ListBullet } from './ListBullet'; -export { PencilSquare } from './PencilSquare'; -export { PlusCircle } from './PlusCircle'; -export { PresentationChartBar } from './PresentationChartBar'; -export { Warning } from './Warning'; -export { XCircle } from './XCircle'; -export { XMark } from './XMark'; diff --git a/packages/icons2/common/tsconfig.json b/packages/icons2/common/tsconfig.json deleted file mode 100644 index f61004816..000000000 --- a/packages/icons2/common/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../../tsconfig.json", - "compilerOptions": { "baseUrl": ".", "declaration": false }, - "include": ["src"] -} diff --git a/packages/icons2/common/tsup.config.ts b/packages/icons2/common/tsup.config.ts deleted file mode 100644 index fd2bba042..000000000 --- a/packages/icons2/common/tsup.config.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { defineConfig } from 'tsup'; - -export default defineConfig({ - clean: true, - target: 'es2019', - format: ['cjs', 'esm'], - banner: { js: '"use client";' } -}); diff --git a/packages/icons2/core/package.json b/packages/icons2/core/package.json deleted file mode 100644 index d25bc5bdc..000000000 --- a/packages/icons2/core/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "@just_testing13/icon", - "version": "0.0.0", - "main": "src/index.ts", - "files": [ - "dist" - ], - "license": "MIT", - "sideEffects": false, - "scripts": { - "lint": "eslint .", - "lint:fix": "eslint . --ext ts,tsx --fix" - }, - "peerDependencies": { - "react": ">=18", - "react-dom": ">=18", - "styled-components": ">=6.0.0" - }, - "devDependencies": { - "@types/styled-components": "^5.1.26", - "clean-package": "^2.2.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "styled-components": "^6.0.7" - }, - "dependencies": { - "@just_testing13/theme": "workspace:*" - } -} diff --git a/packages/icons2/core/src/index.tsx b/packages/icons2/core/src/index.tsx deleted file mode 100644 index acf1bdd94..000000000 --- a/packages/icons2/core/src/index.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import type { Colors } from '@just_testing13/theme'; - -import styled from 'styled-components'; -import { theme, resolveColor } from '@just_testing13/theme'; -import { SVGAttributes, forwardRef } from 'react'; - -type IconSize = keyof typeof theme.icon.sizes; - -type StyledIconProps = { - $size: IconSize; - $color?: Colors; -}; - -const StyledIcon = styled.svg` - color: ${({ $color }) => resolveColor($color)}; - width: ${({ $size }) => theme.icon.sizes[$size]}; - height: ${({ $size }) => theme.icon.sizes[$size]}; - display: inline-block; - user-select: none; - flex-shrink: 0; - overflow: hidden; -`; - -type Props = { - size?: IconSize; - color?: Colors; -}; - -type NativeAttrs = Omit, keyof Props>; - -type IconProps = Props & NativeAttrs; - -const Icon = forwardRef( - ({ size = 'md', color = 'primary', ...props }, ref): JSX.Element => ( - - ) -); - -Icon.displayName = 'Icon'; - -export { Icon }; -export type { IconProps, IconSize }; diff --git a/packages/icons2/core/tsconfig.json b/packages/icons2/core/tsconfig.json deleted file mode 100644 index f61004816..000000000 --- a/packages/icons2/core/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../../tsconfig.json", - "compilerOptions": { "baseUrl": ".", "declaration": false }, - "include": ["src"] -} diff --git a/packages/icons2/core/tsup.config.ts b/packages/icons2/core/tsup.config.ts deleted file mode 100644 index fd2bba042..000000000 --- a/packages/icons2/core/tsup.config.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { defineConfig } from 'tsup'; - -export default defineConfig({ - clean: true, - target: 'es2019', - format: ['cjs', 'esm'], - banner: { js: '"use client";' } -}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 93062bc9d..ebc25864d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,6 +42,12 @@ importers: '@storybook/testing-library': specifier: ^0.2.0 version: 0.2.0 + '@swc/core': + specifier: ^1.3.84 + version: 1.3.84 + '@swc/jest': + specifier: ^0.2.29 + version: 0.2.29(@swc/core@1.3.84) '@types/react': specifier: ^18.2.21 version: 18.2.21 @@ -74,7 +80,7 @@ importers: version: 9.0.0(eslint@8.48.0) eslint-config-react-app: specifier: ^7.0.1 - version: 7.0.1(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.15)(eslint@8.48.0)(typescript@5.2.2) + version: 7.0.1(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.15)(eslint@8.48.0)(jest@29.7.0)(typescript@5.2.2) eslint-plugin-import: specifier: ^2.28.1 version: 2.28.1(@typescript-eslint/parser@6.6.0)(eslint@8.48.0) @@ -96,6 +102,9 @@ importers: eslint-plugin-unused-imports: specifier: ^3.0.0 version: 3.0.0(@typescript-eslint/eslint-plugin@6.6.0)(eslint@8.48.0) + jest: + specifier: ^29.7.0 + version: 29.7.0 prettier: specifier: ^3.0.3 version: 3.0.3 @@ -110,13 +119,16 @@ importers: version: 7.4.0 tsup: specifier: ^7.2.0 - version: 7.2.0(typescript@5.2.2) + version: 7.2.0(@swc/core@1.3.84)(typescript@5.2.2) turbo: specifier: latest version: 1.10.13 typescript: specifier: '>=3.0.0' version: 5.2.2 + vite: + specifier: ^4.4.9 + version: 4.4.9 packages/components: dependencies: @@ -828,6 +840,15 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.22.15): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.15): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: @@ -2488,6 +2509,156 @@ packages: engines: {node: '>=8'} dev: true + /@jest/console@29.7.0: + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.5.9 + chalk: 4.1.2 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + dev: true + + /@jest/core@29.7.0: + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.5.9 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.8.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@20.5.9) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /@jest/create-cache-key-function@27.5.1: + resolution: {integrity: sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': 27.5.1 + dev: true + + /@jest/environment@29.7.0: + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.5.9 + jest-mock: 29.7.0 + dev: true + + /@jest/expect-utils@29.7.0: + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.6.3 + dev: true + + /@jest/expect@29.7.0: + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + expect: 29.7.0 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/fake-timers@29.7.0: + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 20.5.9 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 + dev: true + + /@jest/globals@29.7.0: + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/types': 29.6.3 + jest-mock: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/reporters@29.7.0: + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.19 + '@types/node': 20.5.9 + chalk: 4.1.2 + collect-v8-coverage: 1.0.2 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-instrument: 6.0.0 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.6 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.1.0 + transitivePeerDependencies: + - supports-color + dev: true + /@jest/schemas@29.6.3: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2495,6 +2666,35 @@ packages: '@sinclair/typebox': 0.27.8 dev: true + /@jest/source-map@29.6.3: + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jridgewell/trace-mapping': 0.3.19 + callsites: 3.1.0 + graceful-fs: 4.2.11 + dev: true + + /@jest/test-result@29.7.0: + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': 29.7.0 + '@jest/types': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.4 + collect-v8-coverage: 1.0.2 + dev: true + + /@jest/test-sequencer@29.7.0: + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.7.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + slash: 3.0.0 + dev: true + /@jest/transform@29.6.4: resolution: {integrity: sha512-8thgRSiXUqtr/pPGY/OsyHuMjGyhVnWrFAwoxmIemlBuiMyU1WFs0tXoNxzcr4A4uErs/ABre76SGmrr5ab/AA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2518,6 +2718,29 @@ packages: - supports-color dev: true + /@jest/transform@29.7.0: + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.22.15 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.19 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.5 + pirates: 4.0.6 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: true + /@jest/types@27.5.1: resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -4150,6 +4373,18 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true + /@sinonjs/commons@3.0.0: + resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==} + dependencies: + type-detect: 4.0.8 + dev: true + + /@sinonjs/fake-timers@10.3.0: + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + dependencies: + '@sinonjs/commons': 3.0.0 + dev: true + /@storybook/addon-actions@7.4.0(@types/react-dom@18.2.7)(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-0lHLLUlrGE7CBFrfmAXrBKu7fUIsiQlnNekuE3cIAjSgVR481bJEzYHUUoMATqpPC4GGErBdP1CZxVDDwWV8jA==} peerDependencies: @@ -5066,6 +5301,120 @@ packages: file-system-cache: 2.3.0 dev: true + /@swc/core-darwin-arm64@1.3.84: + resolution: {integrity: sha512-mqK0buOo+toF2HoJ/gWj2ApZbvbIiNq3mMwSTHCYJHlQFQfoTWnl9aaD5GSO4wfNFVYfEZ1R259o5uv5NlVtoA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-x64@1.3.84: + resolution: {integrity: sha512-cyuQZz62C43EDZqtnptUTlfDvAjgG3qu139m5zsfIK6ltXA5inKFbDWV3a/M5c18dFzA2Xh21Q46XZezmtQ9Tg==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm-gnueabihf@1.3.84: + resolution: {integrity: sha512-dmt/ECQrp3ZPWnK27p4E4xRIRHOoJhgGvxC5t5YaWzN20KcxE9ykEY2oLGSoeceM/A+4D11aRYGwF/EM7yOkvA==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-gnu@1.3.84: + resolution: {integrity: sha512-PgVfrI3NVg2z/oeg3GWLb9rFLMqidbdPwVH5nRyHVP2RX/BWP6qfnYfG+gJv4qrKzIldb9TyCGH7y8VWctKLxw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-musl@1.3.84: + resolution: {integrity: sha512-hcuEa8/vin4Ns0P+FpcDHQ4f3jmhgGKQhqw0w+TovPSVTIXr+nrFQ2AGhs9nAxS6tSQ77C53Eb5YRpK8ToFo1A==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-gnu@1.3.84: + resolution: {integrity: sha512-IvyimSbwGdu21jBBEqR1Up8Jhvl8kIAf1k3e5Oy8oRfgojdUfmW1EIwgGdoUeyQ1VHlfquiWaRGfsnHQUKl35g==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-musl@1.3.84: + resolution: {integrity: sha512-hdgVU/O5ufDCe+p5RtCjU7PRNwd0WM+eWJS+GNY4QWL6O8y2VLM+i4+6YzwSUjeBk0xd+1YElMxbqz7r5tSZhw==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-arm64-msvc@1.3.84: + resolution: {integrity: sha512-rzH6k2BF0BFOFhUTD+bh0oCiUCZjFfDfoZoYNN/CM0qbtjAcFH21hzMh/EH8ZaXq8k/iQmUNNa5MPNPZ4SOMNw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-ia32-msvc@1.3.84: + resolution: {integrity: sha512-Y+Dk7VLLVwwsAzoDmjkNW/sTmSPl9PGr4Mj1nhc5A2NNxZ+hz4SxFMclacDI03SC5ikK8Qh6WOoE/+nwUDa3uA==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-x64-msvc@1.3.84: + resolution: {integrity: sha512-WmpaosqCWMX7DArLdU8AJcj96hy0PKlYh1DaMVikSrrDHbJm2dZ8rd27IK3qUB8DgPkrDYHmLAKNZ+z3gWXgRQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core@1.3.84: + resolution: {integrity: sha512-UPKUiDwG7HOdPfOb1VFeEJ76JDgU2w80JLewzx6tb0fk9TIjhr9yxKBzPbzc/QpjGHDu5iaEuNeZcu27u4j63g==} + engines: {node: '>=10'} + requiresBuild: true + peerDependencies: + '@swc/helpers': ^0.5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true + dependencies: + '@swc/types': 0.1.4 + optionalDependencies: + '@swc/core-darwin-arm64': 1.3.84 + '@swc/core-darwin-x64': 1.3.84 + '@swc/core-linux-arm-gnueabihf': 1.3.84 + '@swc/core-linux-arm64-gnu': 1.3.84 + '@swc/core-linux-arm64-musl': 1.3.84 + '@swc/core-linux-x64-gnu': 1.3.84 + '@swc/core-linux-x64-musl': 1.3.84 + '@swc/core-win32-arm64-msvc': 1.3.84 + '@swc/core-win32-ia32-msvc': 1.3.84 + '@swc/core-win32-x64-msvc': 1.3.84 + dev: true + /@swc/helpers@0.4.14: resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} dependencies: @@ -5085,6 +5434,21 @@ packages: tslib: 2.6.2 dev: false + /@swc/jest@0.2.29(@swc/core@1.3.84): + resolution: {integrity: sha512-8reh5RvHBsSikDC3WGCd5ZTd2BXKkyOdK7QwynrCH58jk2cQFhhHhFBg/jvnWZehUQe/EoOImLENc9/DwbBFow==} + engines: {npm: '>= 7.0.0'} + peerDependencies: + '@swc/core': '*' + dependencies: + '@jest/create-cache-key-function': 27.5.1 + '@swc/core': 1.3.84 + jsonc-parser: 3.2.0 + dev: true + + /@swc/types@0.1.4: + resolution: {integrity: sha512-z/G02d+59gyyUb7KYhKi9jOhicek6QD2oMaotUyG+lUkybpXoV49dY9bj7Ah5Q+y7knK2jU67UTX9FyfGzaxQg==} + dev: true + /@testing-library/dom@9.3.1: resolution: {integrity: sha512-0DGPd9AR3+iDTjGoMpxIkAsUihHZ3Ai6CneU6bRRrffXMgzCdlNk43jTrD2/5LT6CBb3MWTP8v510JzYtahD2w==} engines: {node: '>=14'} @@ -5295,7 +5659,7 @@ packages: /@types/node-fetch@2.6.4: resolution: {integrity: sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==} dependencies: - '@types/node': 16.18.48 + '@types/node': 20.5.9 form-data: 3.0.1 dev: true @@ -5386,6 +5750,10 @@ packages: '@types/node': 20.5.9 dev: true + /@types/stack-utils@2.0.1: + resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} + dev: true + /@types/styled-components@5.1.26: resolution: {integrity: sha512-KuKJ9Z6xb93uJiIyxo/+ksS7yLjS1KzG6iv5i78dhVg/X3u5t1H7juRWqVmodIdz6wGVaIApo1u01kmFRdJHVw==} dependencies: @@ -5816,6 +6184,13 @@ packages: engines: {node: '>=6'} dev: true + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -6052,6 +6427,24 @@ packages: '@babel/core': 7.22.15 dev: true + /babel-jest@29.7.0(@babel/core@7.22.15): + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.22.15 + '@jest/transform': 29.7.0 + '@types/babel__core': 7.20.1 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.6.3(@babel/core@7.22.15) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /babel-plugin-istanbul@6.1.1: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} @@ -6065,6 +6458,16 @@ packages: - supports-color dev: true + /babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.22.15 + '@types/babel__core': 7.20.1 + '@types/babel__traverse': 7.20.1 + dev: true + /babel-plugin-macros@3.1.0: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} @@ -6114,12 +6517,43 @@ packages: resolution: {integrity: sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==} dev: true - /babel-preset-react-app@10.0.1: - resolution: {integrity: sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==} + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.22.15): + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.22.15 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.22.15) - '@babel/plugin-proposal-decorators': 7.22.15(@babel/core@7.22.15) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.15) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.22.15) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.15) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.15) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.15) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.15) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.15) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.15) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.15) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.15) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.15) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.15) + dev: true + + /babel-preset-jest@29.6.3(@babel/core@7.22.15): + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.15 + babel-plugin-jest-hoist: 29.6.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.15) + dev: true + + /babel-preset-react-app@10.0.1: + resolution: {integrity: sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==} + dependencies: + '@babel/core': 7.22.15 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.22.15) + '@babel/plugin-proposal-decorators': 7.22.15(@babel/core@7.22.15) '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.22.15) '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.22.15) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.22.15) @@ -6350,6 +6784,11 @@ packages: engines: {node: '>=6'} dev: true + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: true + /camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} dev: true @@ -6375,6 +6814,11 @@ packages: supports-color: 7.2.0 dev: true + /char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + dev: true + /chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true @@ -6408,6 +6852,10 @@ packages: engines: {node: '>=8'} dev: true + /cjs-module-lexer@1.2.3: + resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} + dev: true + /clean-package@2.2.0: resolution: {integrity: sha512-vLv8kRqvh4smPDpqAYFPLEijTppAd/cfCz4yBcUGoVl/JKu6ZWKhlo+G/cAmwlSa29RudfBeuyiNEzas8bTwEQ==} hasBin: true @@ -6485,6 +6933,15 @@ packages: engines: {node: '>=6'} dev: false + /co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: true + + /collect-v8-coverage@1.0.2: + resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + dev: true + /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -6625,6 +7082,25 @@ packages: yaml: 1.10.2 dev: true + /create-jest@29.7.0: + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@20.5.9) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + /cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} dependencies: @@ -6740,6 +7216,15 @@ packages: engines: {node: '>=0.10.0'} dev: true + /dedent@1.5.1: + resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + dev: true + /deep-equal@2.2.2: resolution: {integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==} dependencies: @@ -6767,6 +7252,11 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: true + /default-browser-id@3.0.0: resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} engines: {node: '>=12'} @@ -6852,6 +7342,11 @@ packages: engines: {node: '>=8'} dev: true + /detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + dev: true + /detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} dev: true @@ -6873,6 +7368,11 @@ packages: - supports-color dev: true + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -6956,6 +7456,11 @@ packages: resolution: {integrity: sha512-1W8wRbYlQE4ph7eoj3TJ+uqwO6+xvAE/L+KGU7WTQQvX3tnSIGZAb90MTsMoJqzntamiwJhBAj4WZmygXhsOUg==} dev: true + /emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} + engines: {node: '>=12'} + dev: true + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true @@ -7160,6 +7665,11 @@ packages: engines: {node: '>=0.8.0'} dev: true + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true + /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -7245,7 +7755,7 @@ packages: eslint: 8.48.0 dev: true - /eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.15)(eslint@8.48.0)(typescript@5.2.2): + /eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.15)(eslint@8.48.0)(jest@29.7.0)(typescript@5.2.2): resolution: {integrity: sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -7265,7 +7775,7 @@ packages: eslint: 8.48.0 eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.22.5)(@babel/plugin-transform-react-jsx@7.22.15)(eslint@8.48.0) eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint@8.48.0) - eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.48.0)(typescript@5.2.2) + eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.48.0)(jest@29.7.0)(typescript@5.2.2) eslint-plugin-jsx-a11y: 6.7.1(eslint@8.48.0) eslint-plugin-react: 7.33.2(eslint@8.48.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.48.0) @@ -7433,7 +7943,7 @@ packages: - supports-color dev: true - /eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.48.0)(typescript@5.2.2): + /eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.48.0)(jest@29.7.0)(typescript@5.2.2): resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} peerDependencies: @@ -7449,6 +7959,7 @@ packages: '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.48.0)(typescript@5.2.2) '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.48.0)(typescript@5.2.2) eslint: 8.48.0 + jest: 29.7.0 transitivePeerDependencies: - supports-color - typescript @@ -7741,6 +8252,22 @@ packages: strip-final-newline: 3.0.0 dev: true + /exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + dev: true + + /expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + dev: true + /express@4.18.2: resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} engines: {node: '>= 0.10.0'} @@ -8423,6 +8950,15 @@ packages: resolve-from: 4.0.0 dev: true + /import-local@3.1.0: + resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + engines: {node: '>=8'} + hasBin: true + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + dev: true + /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -8587,6 +9123,11 @@ packages: engines: {node: '>=8'} dev: true + /is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + dev: true + /is-generator-function@1.0.10: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} @@ -8805,6 +9346,19 @@ packages: - supports-color dev: true + /istanbul-lib-instrument@6.0.0: + resolution: {integrity: sha512-x58orMzEVfzPUKqlbLd1hXCnySCxKdDKa6Rjg97CwuLLRI4g3FHTdnExu1OqffVFay6zeMW+T6/DowFLndWnIw==} + engines: {node: '>=10'} + dependencies: + '@babel/core': 7.22.15 + '@babel/parser': 7.22.16 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + /istanbul-lib-report@3.0.1: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} @@ -8814,6 +9368,17 @@ packages: supports-color: 7.2.0 dev: true + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + dependencies: + debug: 4.3.4 + istanbul-lib-coverage: 3.2.0 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + /istanbul-reports@3.1.6: resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} engines: {node: '>=8'} @@ -8851,6 +9416,157 @@ packages: minimatch: 3.1.2 dev: true + /jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + execa: 5.1.1 + jest-util: 29.7.0 + p-limit: 3.1.0 + dev: true + + /jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.5.9 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.5.1 + is-generator-fn: 2.1.0 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + p-limit: 3.1.0 + pretty-format: 29.7.0 + pure-rand: 6.0.3 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + dev: true + + /jest-cli@29.7.0: + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + chalk: 4.1.2 + create-jest: 29.7.0 + exit: 0.1.2 + import-local: 3.1.0 + jest-config: 29.7.0(@types/node@20.5.9) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + + /jest-config@29.7.0(@types/node@20.5.9): + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.22.15 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.5.9 + babel-jest: 29.7.0(@babel/core@7.22.15) + chalk: 4.1.2 + ci-info: 3.8.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + dev: true + + /jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + detect-newline: 3.1.0 + dev: true + + /jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + jest-get-type: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 + dev: true + + /jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.5.9 + jest-mock: 29.7.0 + jest-util: 29.7.0 + dev: true + + /jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + /jest-haste-map@29.6.4: resolution: {integrity: sha512-12Ad+VNTDHxKf7k+M65sviyynRoZYuL1/GTuhEVb8RYsNSNln71nANRb/faSyWvx0j+gHcivChXHIoMJrGYjog==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8870,6 +9586,58 @@ packages: fsevents: 2.3.3 dev: true + /jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.6 + '@types/node': 20.5.9 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.5 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/code-frame': 7.22.13 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 + dev: true + /jest-mock@27.5.1: resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -8878,11 +9646,144 @@ packages: '@types/node': 20.5.9 dev: true + /jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.5.9 + jest-util: 29.7.0 + dev: true + + /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + dependencies: + jest-resolve: 29.7.0 + dev: true + /jest-regex-util@29.6.3: resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true + /jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-regex-util: 29.6.3 + jest-snapshot: 29.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + resolve: 1.22.4 + resolve.exports: 2.0.2 + slash: 3.0.0 + dev: true + + /jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.5.9 + chalk: 4.1.2 + emittery: 0.13.1 + graceful-fs: 4.2.11 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 + '@jest/source-map': 29.6.3 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.5.9 + chalk: 4.1.2 + cjs-module-lexer: 1.2.3 + collect-v8-coverage: 1.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.22.15 + '@babel/generator': 7.22.15 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.15) + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.15) + '@babel/types': 7.22.15 + '@jest/expect-utils': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.15) + chalk: 4.1.2 + expect: 29.7.0 + graceful-fs: 4.2.11 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + natural-compare: 1.4.0 + pretty-format: 29.7.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + /jest-util@29.6.3: resolution: {integrity: sha512-QUjna/xSy4B32fzcKTSz1w7YYzgiHrjjJjevdRf61HYk998R5vVMMNmrHESYZVDS5DSWs+1srPLPKxXPkeSDOA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8895,6 +9796,44 @@ packages: picomatch: 2.3.1 dev: true + /jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.5.9 + chalk: 4.1.2 + ci-info: 3.8.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + dev: true + + /jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 + dev: true + + /jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.5.9 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 29.7.0 + string-length: 4.0.2 + dev: true + /jest-worker@29.6.4: resolution: {integrity: sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8905,6 +9844,37 @@ packages: supports-color: 8.1.1 dev: true + /jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@types/node': 20.5.9 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + + /jest@29.7.0: + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.7.0 + '@jest/types': 29.6.3 + import-local: 3.1.0 + jest-cli: 29.7.0 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + /joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} @@ -8998,6 +9968,10 @@ packages: hasBin: true dev: true + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + /jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: @@ -9971,6 +10945,15 @@ packages: react-is: 17.0.2 dev: true + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.1.0 + dev: true + /pretty-hrtime@1.0.3: resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} engines: {node: '>= 0.8'} @@ -10068,6 +11051,10 @@ packages: - utf-8-validate dev: true + /pure-rand@6.0.3: + resolution: {integrity: sha512-KddyFewCsO0j3+np81IQ+SweXLDnDQTs5s67BOnrYmYe/yNmUhttQyGsYzy8yUnoljGAQ9sl38YB4vH8ur7Y+w==} + dev: true + /qs@6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} @@ -10448,6 +11435,13 @@ packages: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} dev: true + /resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -10458,6 +11452,11 @@ packages: engines: {node: '>=8'} dev: true + /resolve.exports@2.0.2: + resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + engines: {node: '>=10'} + dev: true + /resolve@1.22.4: resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} hasBin: true @@ -10731,6 +11730,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + /source-map-support@0.5.13: + resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + /source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: @@ -10787,6 +11793,13 @@ packages: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} dev: true + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 2.0.0 + dev: true + /statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -10825,6 +11838,14 @@ packages: mixme: 0.5.9 dev: true + /string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + dev: true + /string-natural-compare@3.0.1: resolution: {integrity: sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==} dev: true @@ -10916,6 +11937,11 @@ packages: engines: {node: '>=4'} dev: true + /strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true + /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -11224,7 +12250,7 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsup@7.2.0(typescript@5.2.2): + /tsup@7.2.0(@swc/core@1.3.84)(typescript@5.2.2): resolution: {integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==} engines: {node: '>=16.14'} hasBin: true @@ -11240,6 +12266,7 @@ packages: typescript: optional: true dependencies: + '@swc/core': 1.3.84 bundle-require: 4.0.1(esbuild@0.18.20) cac: 6.7.14 chokidar: 3.5.3 @@ -11355,6 +12382,11 @@ packages: prelude-ls: 1.2.1 dev: true + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + /type-fest@0.13.1: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} engines: {node: '>=10'} @@ -11370,6 +12402,11 @@ packages: engines: {node: '>=10'} dev: true + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + /type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'}