From f8fd82a423606baf3573c3e0fecc78a529a21a1c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 22 Dec 2022 23:11:28 +0900 Subject: [PATCH] Bump sass from 1.56.1 to 1.57.1 (#214) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/pre-commit/mirrors-eslint: v8.29.0 → v8.30.0](https://github.com/pre-commit/mirrors-eslint/compare/v8.29.0...v8.30.0) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: fabasoad --- .github/workflows/create-release.yml | 40 +- .pre-commit-config.yaml | 17 +- jest.config.json | 4 +- package.json | 16 +- .../Certificates/CertificateItem.spec.tsx | 6 +- .../Certificates/CertificatesMain.spec.tsx | 10 +- .../Experience/ExperienceMain.spec.tsx | 20 - .../Experience/JobDuration.spec.tsx | 53 +- .../components/Experience/JobPeriod.spec.tsx | 41 +- .../ExperienceMain.spec.tsx.snap | 567 ------------------ .../components/Footer/FooterInfo.spec.tsx | 71 ++- .../components/Footer/FooterLocation.spec.tsx | 21 +- .../components/Footer/FooterSocial.spec.tsx | 36 +- .../__snapshots__/FooterInfo.spec.tsx.snap | 38 -- .../FooterLocation.spec.tsx.snap | 14 - .../__snapshots__/FooterSocial.spec.tsx.snap | 72 --- .../components/controls/DateLocale.spec.tsx | 4 +- .../Certificates/CertificateItem.tsx | 2 +- src/components/Experience/ExperienceMain.tsx | 38 +- src/components/Experience/JobDuration.tsx | 14 +- src/components/Experience/JobPeriod.tsx | 18 +- src/components/controls/DateLocale.tsx | 10 +- src/store/locale/resources/gb.json | 20 +- src/store/locale/resources/jp.json | 20 +- src/store/locale/resources/ru.json | 20 +- src/store/locale/resources/ua.json | 20 +- yarn.lock | 309 +++++++--- 27 files changed, 479 insertions(+), 1022 deletions(-) delete mode 100644 src/__tests__/components/Experience/ExperienceMain.spec.tsx delete mode 100644 src/__tests__/components/Experience/__snapshots__/ExperienceMain.spec.tsx.snap delete mode 100644 src/__tests__/components/Footer/__snapshots__/FooterInfo.spec.tsx.snap delete mode 100644 src/__tests__/components/Footer/__snapshots__/FooterLocation.spec.tsx.snap delete mode 100644 src/__tests__/components/Footer/__snapshots__/FooterSocial.spec.tsx.snap diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 751c33c9..b9bd5fbb 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -7,13 +7,11 @@ on: - 'v*.*.*' jobs: - create_release: - name: Release + deploy: + name: Deploy runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - with: - fetch-depth: 0 - name: Cache node_modules id: yarn-cache uses: actions/cache@v3 @@ -34,38 +32,30 @@ jobs: with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./public - - name: Get latest release tag - id: latest_release - run: | - latest_tag=$(curl --silent "https://api.github.com/repos/${{ github.repository }}/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/') - echo "tag=${latest_tag}" >> $GITHUB_OUTPUT - shell: sh - - name: Get current release tag - id: current_release - run: echo "tag=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT - shell: bash - - name: Build changelog + create-release: + name: Create release + needs: [deploy] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Get changelog id: changelog - run: | - body=$(git log --pretty=oneline ${{ steps.latest_release.outputs.tag }}..${{ steps.current_release.outputs.tag }}) - body="${body//'%'/'%25'}" - body="${body//$'\n'/'%0A'}" - body="${body//$'\r'/'%0D'}" - echo "body=${body}" >> $GITHUB_OUTPUT - shell: bash + uses: simbo/changes-since-last-release-action@v1 - name: Create release uses: softprops/action-gh-release@v1 with: tag_name: ${{ github.ref }} - name: ${{ steps.current_release.outputs.tag }} + name: ${{ github.ref_name }} token: ${{ secrets.GITHUB_TOKEN }} body: | # Changelog - ${{ steps.changelog.outputs.body }} + ${{ steps.changelog.outputs.log }} draft: false prerelease: false - trigger_deployment: + trigger-deployment: name: Trigger deployment to AWS if: ${{ false }} needs: create_release diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9a256c99..ee8a5425 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,6 +12,13 @@ repos: language: system pass_filenames: false verbose: true + - id: eslint + name: Lint + entry: yarn run lint + language: system + pass_filenames: false + verbose: true + stages: ["push"] - id: test name: Unit tests entry: yarn test @@ -37,15 +44,6 @@ repos: hooks: - id: snyk-test stages: ["push"] - # TypeScript - - repo: https://github.com/pre-commit/mirrors-eslint - rev: v8.29.0 - hooks: - - id: eslint - args: ['--fix'] - files: \.[jt]sx?$ - types: [file] - exclude: ^dist/.*\.js$ # Markdown - repo: https://github.com/igorshubovych/markdownlint-cli rev: v0.32.2 @@ -71,4 +69,5 @@ repos: - id: trailing-whitespace ci: autofix_prs: true + autoupdate_schedule: quarterly skip: [build, eslint, test] diff --git a/jest.config.json b/jest.config.json index 5e314a43..169b2dff 100644 --- a/jest.config.json +++ b/jest.config.json @@ -14,8 +14,8 @@ "global": { "branches": 80, "functions": 60, - "lines": 80, - "statements": 80 + "lines": 70, + "statements": 70 } }, "moduleFileExtensions": ["ts", "tsx", "js"], diff --git a/package.json b/package.json index 4611d832..651e0047 100644 --- a/package.json +++ b/package.json @@ -27,8 +27,8 @@ }, "license": "ISC", "devDependencies": { - "@babel/cli": "7.19.3", - "@babel/core": "7.20.5", + "@babel/cli": "7.20.7", + "@babel/core": "7.20.7", "@babel/preset-env": "7.20.2", "@babel/preset-react": "7.18.6", "@babel/preset-typescript": "7.18.6", @@ -39,18 +39,18 @@ "@types/react": "18.0.26", "@types/react-dom": "18.0.9", "@types/react-redux": "7.1.24", - "@typescript-eslint/eslint-plugin": "5.45.0", - "@typescript-eslint/parser": "5.45.0", + "@typescript-eslint/eslint-plugin": "5.47.0", + "@typescript-eslint/parser": "5.47.0", "@wojtekmaj/enzyme-adapter-react-17": "0.8.0", "babel-jest": "29.3.1", "babel-loader": "9.1.0", "babel-plugin-transform-class-properties": "6.24.1", "bootstrap": "5.2.3", - "css-loader": "6.7.2", + "css-loader": "6.7.3", "dotenv": "16.0.3", "enzyme": "3.11.0", "enzyme-to-json": "3.6.2", - "eslint": "8.29.0", + "eslint": "8.30.0", "eslint-config-google": "0.14.0", "eslint-plugin-react": "7.31.11", "express": "4.18.2", @@ -73,7 +73,7 @@ "redux": "4.2.0", "redux-mock-store": "1.5.4", "redux-thunk": "2.4.2", - "sass": "1.56.1", + "sass": "1.57.1", "sass-loader": "13.2.0", "style-loader": "3.3.1", "ts-jest": "27.1.5", @@ -81,7 +81,7 @@ "ts-node": "10.9.1", "typescript": "4.9.4", "webpack": "5.75.0", - "webpack-cli": "5.0.0", + "webpack-cli": "5.0.1", "webpack-dev-server": "4.11.1", "webpack-merge": "5.8.0" }, diff --git a/src/__tests__/components/Certificates/CertificateItem.spec.tsx b/src/__tests__/components/Certificates/CertificateItem.spec.tsx index 68d95985..594d85be 100644 --- a/src/__tests__/components/Certificates/CertificateItem.spec.tsx +++ b/src/__tests__/components/Certificates/CertificateItem.spec.tsx @@ -11,9 +11,9 @@ const mockStore = configureMockStore() const store = mockStore({}) test('should render CertificateItem correctly', () => { - const month = 2 + const monthIndex = 1 const year = 2022 - const issueDate = new Date(year, month - 1, 22) + const issueDate = new Date(year, monthIndex, 22) const issuer: CertificateIssuer = { name: 'certificate-name', img: 'certificate-img' @@ -49,5 +49,5 @@ test('should render CertificateItem correctly', () => { elements = container.getElementsByClassName('card-footer') expect(elements).toHaveLength(1) - expect(elements[0]).toHaveTextContent(`business-card-month-${month} ${year}`) + expect(elements[0]).toHaveTextContent(`business-card-month-${monthIndex} ${year}`) }) diff --git a/src/__tests__/components/Certificates/CertificatesMain.spec.tsx b/src/__tests__/components/Certificates/CertificatesMain.spec.tsx index 7419eb7d..9abfd9c2 100644 --- a/src/__tests__/components/Certificates/CertificatesMain.spec.tsx +++ b/src/__tests__/components/Certificates/CertificatesMain.spec.tsx @@ -42,9 +42,9 @@ test('should render CertificatesMain correctly', () => { expect(aCardLinkElements.item(4)).toHaveAttribute('href', 'https://www.coursera.org/account/accomplishments/verify/MWE43H8YDS') const divCardFooterElements = container.querySelectorAll('div.card-footer') expect(divCardFooterElements).toHaveLength(5) - expect(divCardFooterElements.item(0)).toHaveTextContent('business-card-month-9 2020') - expect(divCardFooterElements.item(1)).toHaveTextContent('business-card-month-5 2020') - expect(divCardFooterElements.item(2)).toHaveTextContent('business-card-month-10 2019') - expect(divCardFooterElements.item(3)).toHaveTextContent('business-card-month-3 2018') - expect(divCardFooterElements.item(4)).toHaveTextContent('business-card-month-5 2015') + expect(divCardFooterElements.item(0)).toHaveTextContent('business-card-month-8 2020') + expect(divCardFooterElements.item(1)).toHaveTextContent('business-card-month-4 2020') + expect(divCardFooterElements.item(2)).toHaveTextContent('business-card-month-9 2019') + expect(divCardFooterElements.item(3)).toHaveTextContent('business-card-month-2 2018') + expect(divCardFooterElements.item(4)).toHaveTextContent('business-card-month-4 2015') }) diff --git a/src/__tests__/components/Experience/ExperienceMain.spec.tsx b/src/__tests__/components/Experience/ExperienceMain.spec.tsx deleted file mode 100644 index 59a8c7c1..00000000 --- a/src/__tests__/components/Experience/ExperienceMain.spec.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/// -import * as React from 'react' -import { shallow } from 'enzyme' -import ExperienceMain from '../../../components/Experience/ExperienceMain' - -jest.mock( - 'react-i18next', - () => ({ - useTranslation: jest.fn().mockImplementation(() => ({ - t: jest.fn().mockImplementation((t) => t) - })) - }) -); - -describe('ExperienceMain component', () => { - test('should render ExperienceMain correctly', () => { - const wrapper = shallow() - expect(wrapper).toMatchSnapshot() - }) -}) diff --git a/src/__tests__/components/Experience/JobDuration.spec.tsx b/src/__tests__/components/Experience/JobDuration.spec.tsx index bbfb1be9..56271de5 100644 --- a/src/__tests__/components/Experience/JobDuration.spec.tsx +++ b/src/__tests__/components/Experience/JobDuration.spec.tsx @@ -6,57 +6,54 @@ import { render } from '@testing-library/react' import JobDuration from '../../../components/Experience/JobDuration' import SupportedLocales from '../../../scripts/SupportedLocales' import { Provider } from 'react-redux' +import DateUtils from '../../../scripts/DateUtils'; const mockStore = configureMockStore() -const fixtures = [{ - code: 'gb', - duration: '3 years 8 months' -}, { - code: 'jp', - duration: '3 年 8 ヶ月' -}, { - code: 'ua', - duration: '3 роки 8 місяців' -}] - -for (const { code, duration } of fixtures) { +for (const code of ['gb', 'jp', 'ua']) { test(`[${code}] should render JobDuration correctly with from and to`, () => { const store = mockStore({ locale: SupportedLocales.getOrDefault(code) }) - const {container} = render( + const fromMonthIndex = 7 + const fromYear = 2018 + const toMonthIndex = 3 + const toYear = 2022 + const { container } = render( ) - expect(container.querySelector('div.job-duration')) - .toHaveTextContent(duration) + expect(container.querySelector('div.job-duration')).toHaveTextContent( + DateUtils.humanize( + new Date(fromYear, fromMonthIndex), + new Date(toYear, toMonthIndex), + code + ) + ) }) test(`[${code}] should render JobDuration correctly with from only`, () => { const store = mockStore({ locale: SupportedLocales.getOrDefault(code) }) - const now = new Date() - const fromMonth = now.getMonth() > 7 - ? now.getMonth() - 8 - : now.getMonth() + 4 - const fromYear = now.getFullYear() - 3 - const {container} = render( + const fromMonthIndex = 5 + const fromYear = 2017 + const { container } = render( ) - expect(container.querySelector('div.job-duration')) - .toHaveTextContent(duration) + expect(container.querySelector('div.job-duration')).toHaveTextContent( + DateUtils.humanize(new Date(fromYear, fromMonthIndex), new Date(), code) + ) }) } diff --git a/src/__tests__/components/Experience/JobPeriod.spec.tsx b/src/__tests__/components/Experience/JobPeriod.spec.tsx index 76f040f1..39a4f08c 100644 --- a/src/__tests__/components/Experience/JobPeriod.spec.tsx +++ b/src/__tests__/components/Experience/JobPeriod.spec.tsx @@ -6,43 +6,50 @@ import { render, screen } from '@testing-library/react' import JobPeriod from '../../../components/Experience/JobPeriod' import { Provider } from 'react-redux' import SupportedLocales from '../../../scripts/SupportedLocales' +import DateUtils from '../../../scripts/DateUtils'; const mockStore = configureMockStore() const fixtures = [{ code: 'gb', - duration: '1 year 3 months', from: 'business-card-month-1 2019', to: 'business-card-month-4 2020' }, { code: 'jp', - duration: '1 年 3 ヶ月', from: '2019business-card-year-singularbusiness-card-month-1', to: '2020business-card-year-singularbusiness-card-month-4' }, { code: 'ua', - duration: '1 рік 3 місяці', from: 'business-card-month-1 2019', to: 'business-card-month-4 2020' }] -for (const { code, duration, from, to } of fixtures) { +for (const { code, from, to } of fixtures) { test(`[${code}] should render JobPeriod correctly with from and to`, () => { const store = mockStore({ locale: SupportedLocales.getOrDefault(code) }) + const fromMonthIndex = 1 + const fromYear = 2019 + const toMonthIndex = 4 + const toYear = 2020 const { container } = render( ) - expect(container.querySelector('div.job-duration')) - .toHaveTextContent(duration) + expect(container.querySelector('div.job-duration')).toHaveTextContent( + DateUtils.humanize( + new Date(fromYear, fromMonthIndex), + new Date(toYear, toMonthIndex), + code + ) + ) expect(screen.getByRole('heading', { level: 4 })) .toHaveTextContent(`${to}-${from}`) }) @@ -51,21 +58,19 @@ for (const { code, duration, from, to } of fixtures) { const store = mockStore({ locale: SupportedLocales.getOrDefault(code) }) - const now = new Date() - const fromMonth = now.getMonth() > 2 - ? now.getMonth() - 3 - : now.getMonth() + 9 - const fromYear = now.getFullYear() - 1 + const fromMonthIndex = 3 + const fromYear = 2016 const { container } = render( ) - expect(container.querySelector('div.job-duration')) - .toHaveTextContent(duration) + expect(container.querySelector('div.job-duration')).toHaveTextContent( + DateUtils.humanize(new Date(fromYear, fromMonthIndex), new Date(), code) + ) expect(screen.queryByRole('heading', { level: 4 })).not.toBeNull() }) } diff --git a/src/__tests__/components/Experience/__snapshots__/ExperienceMain.spec.tsx.snap b/src/__tests__/components/Experience/__snapshots__/ExperienceMain.spec.tsx.snap deleted file mode 100644 index 380826eb..00000000 --- a/src/__tests__/components/Experience/__snapshots__/ExperienceMain.spec.tsx.snap +++ /dev/null @@ -1,567 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`ExperienceMain component should render ExperienceMain correctly 1`] = ` -
- -
-

- business-card-experience-title -

-
-
-
    -
  • - -
    - -
    - - - -
    -
    -
  • -
  • - -
    - -
    - - - -
    -
    -
  • -
  • - -
    - -
    - - - -
    -
    -
  • -
  • - -
    - -
    - - - -
    -
    -
  • -
  • - -
    - -
    - - - -
    -
    -
  • -
  • - -
    - -
    - - - -
    -
    -
  • -
  • - -
    - -
    - - - -
    -
    -
  • -
  • - -
    - -
    - - - -
    -
    -
  • -
  • - -
    - -
    - - - -
    -
    -
  • -
  • - -
    - -
    - - - -
    -
    -
  • -
-
-
-`; diff --git a/src/__tests__/components/Footer/FooterInfo.spec.tsx b/src/__tests__/components/Footer/FooterInfo.spec.tsx index c4923ecd..f516c53e 100644 --- a/src/__tests__/components/Footer/FooterInfo.spec.tsx +++ b/src/__tests__/components/Footer/FooterInfo.spec.tsx @@ -1,22 +1,59 @@ -/// +import '@testing-library/jest-dom' import * as React from 'react' -import { shallow, ShallowWrapper } from 'enzyme' -import FooterInfo from '../../../components/Footer/FooterInfo' -import { useTranslation } from '../../__mocks__/react-i18next' -import { version } from '../../../../package.json' - -let tMock +import { render } from '@testing-library/react' -beforeAll(() => { - tMock = useTranslation().t -}) +import FooterInfo from '../../../components/Footer/FooterInfo' test('should render FooterInfo correctly', () => { - const wrapper: ShallowWrapper = shallow() - expect(wrapper).toMatchSnapshot() - expect(tMock).toHaveBeenCalledTimes(1) - expect(tMock).toHaveBeenCalledWith( - 'business-card-version', - { version } - ) + const { container } = render() + const div = container.querySelector('div') + expect(div).toHaveAttribute('class', 'social d-flex justify-content-center') + const ul = div.querySelector('ul') + expect(ul).toHaveAttribute('class', 'icon-list') + const liElements = ul.querySelectorAll('li') + expect(liElements).toHaveLength(3) + let a = false + let b = false + let c = false + for (const li of liElements) { + if (a) { + const img = li.querySelector('img') + if (img != null) { + expect(img).toHaveAttribute('src', 'https://img.shields.io/static/v1?label=made%20by&message=fabasoad&color=2c3e50&style=for-the-badge&logo=github') + expect(img).toHaveAttribute('alt', 'Made by fabasoad') + a = false + continue + } else if (!b && !c) { + throw new Error(`Expected img inside li element. Actual: ${li.innerHTML}`) + } + } + if (b) { + const a = li.querySelector('a') + if (a != null) { + expect(a).toHaveAttribute('target', '_blank') + expect(a).toHaveAttribute('rel', 'noopener noreferrer') + expect(a).toHaveAttribute('href', 'https://www.bitcoinqrcodemaker.com/?style=bitcoin&address=145HwyQAcv4vrzUumJhu7nWGAVBysX9jJH&prefix=on') + const img = a.querySelector('img') + expect(img).toHaveAttribute('src', 'https://img.shields.io/static/v1?label=bitcoin&message=donate&color=f7931a&style=for-the-badge&logo=bitcoin') + expect(img).toHaveAttribute('alt', 'Donate with Bitcoin') + b = false + continue + } else if (!a && !c) { + throw new Error(`Expected a inside li element. Actual: ${li.innerHTML}`) + } + } + if (c) { + const span = li.querySelector('span') + if (span != null) { + expect(span).toHaveAttribute('class', 'badge rounded-pill bg-secondary') + expect(span).toHaveTextContent('business-card-version') + c = false + } else if (!a && !b) { + throw new Error(`Expected span inside li element. Actual: ${li.innerHTML}`) + } + } + } + if (a || b || c) { + throw new Error('Test failed') + } }) diff --git a/src/__tests__/components/Footer/FooterLocation.spec.tsx b/src/__tests__/components/Footer/FooterLocation.spec.tsx index 1d7a8c72..c57c9ba7 100644 --- a/src/__tests__/components/Footer/FooterLocation.spec.tsx +++ b/src/__tests__/components/Footer/FooterLocation.spec.tsx @@ -1,18 +1,13 @@ -/// +import '@testing-library/jest-dom' import * as React from 'react' -import { shallow, ShallowWrapper } from 'enzyme' -import FooterLocation from '../../../components/Footer/FooterLocation' -import { useTranslation } from '../../__mocks__/react-i18next' - -let tMock +import { render } from '@testing-library/react' -beforeAll(() => { - tMock = useTranslation().t -}) +import FooterLocation from '../../../components/Footer/FooterLocation' test('should render FooterLocation correctly', () => { - const wrapper: ShallowWrapper = shallow() - expect(wrapper).toMatchSnapshot() - expect(tMock).toHaveBeenCalledTimes(1) - expect(tMock).toHaveBeenCalledWith('business-card-contact-city') + const { container } = render() + const div = container.querySelector('div') + expect(div).toHaveAttribute('class', 'col') + expect(div.querySelector('i')).toHaveAttribute('class', 'fa fa-map-marker-alt fa-2x') + expect(div.querySelector('p')).toHaveTextContent('business-card-contact-city') }) diff --git a/src/__tests__/components/Footer/FooterSocial.spec.tsx b/src/__tests__/components/Footer/FooterSocial.spec.tsx index 589dd27f..3b869fa4 100644 --- a/src/__tests__/components/Footer/FooterSocial.spec.tsx +++ b/src/__tests__/components/Footer/FooterSocial.spec.tsx @@ -1,8 +1,34 @@ -/// +import '@testing-library/jest-dom' import * as React from 'react' -import { shallow } from 'enzyme' +import { render, screen } from '@testing-library/react' + import FooterSocial from '../../../components/Footer/FooterSocial' -test('should render FooterSocial correctly', () => - expect(shallow()).toMatchSnapshot() -) +const fixture = new Map([ + ['https://twitter.com/fabasoad', 'fab fa-twitter fa-2x'], + ['https://github.com/fabasoad', 'fab fa-github fa-2x'], + ['https://www.linkedin.com/in/yevhenfabizhevskyi/', 'fab fa-linkedin fa-2x'], + ['https://stackoverflow.com/users/470214/fabasoad', 'fab fa-stack-overflow fa-2x'], + ['https://dev.to/fabasoad', 'fab fa-dev fa-2x'] +]) + +test('should render FooterSocial correctly', () => { + render() + const liElements = screen.getAllByRole('listitem') + expect(liElements).toHaveLength(5) + for (const li of liElements) { + const a = li.querySelector('a') + expect(a).not.toBeNull() + expect(a).toHaveAttribute('class', 'btn') + expect(a).toHaveAttribute('target', '_blank') + expect(a).toHaveAttribute('rel', 'noopener noreferrer') + const href = a.getAttribute('href') + if (fixture.has(href)) { + const i = a.querySelector('i') + expect(i).toHaveAttribute('class', fixture.get(href)) + fixture.delete(href) + } else { + throw new Error(`'href' attribute does not match. expected - one of the [${Array.from(fixture.keys())}] values, actual - ${href}`) + } + } +}) diff --git a/src/__tests__/components/Footer/__snapshots__/FooterInfo.spec.tsx.snap b/src/__tests__/components/Footer/__snapshots__/FooterInfo.spec.tsx.snap deleted file mode 100644 index e8863016..00000000 --- a/src/__tests__/components/Footer/__snapshots__/FooterInfo.spec.tsx.snap +++ /dev/null @@ -1,38 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`should render FooterInfo correctly 1`] = ` -
-
    -
  • - Made by fabasoad -
  • -
  • - - Donate with Bitcoin - -
  • -
  • - - business-card-version - -
  • -
-
-`; diff --git a/src/__tests__/components/Footer/__snapshots__/FooterLocation.spec.tsx.snap b/src/__tests__/components/Footer/__snapshots__/FooterLocation.spec.tsx.snap deleted file mode 100644 index a7d55086..00000000 --- a/src/__tests__/components/Footer/__snapshots__/FooterLocation.spec.tsx.snap +++ /dev/null @@ -1,14 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`should render FooterLocation correctly 1`] = ` -
- -

- business-card-contact-city -

-
-`; diff --git a/src/__tests__/components/Footer/__snapshots__/FooterSocial.spec.tsx.snap b/src/__tests__/components/Footer/__snapshots__/FooterSocial.spec.tsx.snap deleted file mode 100644 index 50a03dc0..00000000 --- a/src/__tests__/components/Footer/__snapshots__/FooterSocial.spec.tsx.snap +++ /dev/null @@ -1,72 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`should render FooterSocial correctly 1`] = ` -
- -
-`; diff --git a/src/__tests__/components/controls/DateLocale.spec.tsx b/src/__tests__/components/controls/DateLocale.spec.tsx index deb5f457..426a8fd9 100644 --- a/src/__tests__/components/controls/DateLocale.spec.tsx +++ b/src/__tests__/components/controls/DateLocale.spec.tsx @@ -7,7 +7,7 @@ import { Locale } from '../../../store/locale/types' test('should render correctly with month, year and non-JP locale', () => { const { container } = render( - + ) expect(container).toHaveTextContent('business-card-month-1 2022') }) @@ -21,7 +21,7 @@ test('should render correctly with year and non-JP locale', () => { test('should render correctly with month, year and JP locale', () => { const { container } = render( - + ) expect(container).toHaveTextContent('2012business-card-year-singularbusiness-card-month-4') }) diff --git a/src/components/Certificates/CertificateItem.tsx b/src/components/Certificates/CertificateItem.tsx index 0aae52b1..9ac95b01 100644 --- a/src/components/Certificates/CertificateItem.tsx +++ b/src/components/Certificates/CertificateItem.tsx @@ -32,7 +32,7 @@ export default function CertificateItem(props: CertificateItemProps) { diff --git a/src/components/Experience/ExperienceMain.tsx b/src/components/Experience/ExperienceMain.tsx index 6a373e9a..fdbdcc56 100644 --- a/src/components/Experience/ExperienceMain.tsx +++ b/src/components/Experience/ExperienceMain.tsx @@ -25,7 +25,7 @@ export default function ExperienceMain() {
  • @@ -51,9 +51,9 @@ export default function ExperienceMain() {
  • @@ -79,9 +79,9 @@ export default function ExperienceMain() {
  • @@ -107,9 +107,9 @@ export default function ExperienceMain() {
  • @@ -135,9 +135,9 @@ export default function ExperienceMain() {
  • @@ -163,9 +163,9 @@ export default function ExperienceMain() {
  • @@ -195,9 +195,9 @@ export default function ExperienceMain() {
  • @@ -227,9 +227,9 @@ export default function ExperienceMain() {
  • @@ -258,9 +258,9 @@ export default function ExperienceMain() {
  • @@ -286,9 +286,9 @@ export default function ExperienceMain() {
  • diff --git a/src/components/Experience/JobDuration.tsx b/src/components/Experience/JobDuration.tsx index d0b68655..2335184f 100644 --- a/src/components/Experience/JobDuration.tsx +++ b/src/components/Experience/JobDuration.tsx @@ -6,27 +6,27 @@ import { AppActions, Locale } from '../../store/locale/types' import { connect } from 'react-redux' interface JobDurationProps { - fromMonth: number + fromMonthIndex: number fromYear: number - toMonth?: number + toMonthIndex?: number toYear?: number } type Props = JobDurationProps & LinkDispatchProps & LinkStateProps const JobDuration: React.FunctionComponent = - ({ fromMonth, fromYear, toMonth, toYear, locale }) => { - const from: Date = new Date(fromYear, fromMonth) - const to: Date = !toYear || !toMonth ? new Date() : new Date(toYear, toMonth) + ({ fromMonthIndex, fromYear, toMonthIndex, toYear, locale }) => { + const from: Date = new Date(fromYear, fromMonthIndex) + const to: Date = !toYear || !toMonthIndex ? new Date() : new Date(toYear, toMonthIndex) return (
    { DateUtils.humanize(from, to, locale.code) }
    ) } JobDuration.defaultProps = { - fromMonth: 0, + fromMonthIndex: 0, fromYear: 0, - toMonth: null, + toMonthIndex: null, toYear: null } diff --git a/src/components/Experience/JobPeriod.tsx b/src/components/Experience/JobPeriod.tsx index 754c8a25..38f0ff7f 100644 --- a/src/components/Experience/JobPeriod.tsx +++ b/src/components/Experience/JobPeriod.tsx @@ -4,26 +4,30 @@ import DateLocale from '../controls/DateLocale' import JobDuration from './JobDuration' interface JobPeriodProps { - fromMonth: number + fromMonthIndex: number fromYear: number - toMonth?: number + toMonthIndex?: number toYear?: number } const JobPeriod: React.FunctionComponent = - ({ fromMonth, fromYear, toMonth, toYear }) => { + ({ fromMonthIndex, fromYear, toMonthIndex, toYear }) => { const { t } = useTranslation() return (
    + fromMonthIndex={fromMonthIndex} + fromYear={fromYear} + toMonthIndex={toMonthIndex} + toYear={toYear} + />

    - {(toMonth && + {(toMonthIndex != undefined && toYear && - ) || + ) ||
    {t('business-card-experience-present')}
    }
    -
    - +

    ) diff --git a/src/components/controls/DateLocale.tsx b/src/components/controls/DateLocale.tsx index da0bfd2d..9994fe32 100644 --- a/src/components/controls/DateLocale.tsx +++ b/src/components/controls/DateLocale.tsx @@ -7,19 +7,19 @@ import { AppState } from '../../store/configureStore' import DigitConverter from '../../scripts/DigitConverter' interface DateProps { - month?: number + monthIndex?: number year: number } type Props = DateProps & LinkDispatchProps & LinkStateProps -export function DateLocale(props: Props) { +export function DateLocale({ locale, monthIndex, year }: Props) { const { t } = useTranslation() const converter = new DigitConverter() - const date: string = props.locale?.code === 'jp' - ? converter.toDoubleByte(props.year.toString()) + t('business-card-year-singular') + (props.month ? t(`business-card-month-${props.month}`) : '') - : (props.month ? t(`business-card-month-${props.month}`) + ' ' : '') + props.year + const date: string = locale?.code === 'jp' + ? converter.toDoubleByte(year.toString()) + t('business-card-year-singular') + (monthIndex != undefined ? t(`business-card-month-${monthIndex}`) : '') + : (monthIndex != undefined ? t(`business-card-month-${monthIndex}`) + ' ' : '') + year return ( <>{date} diff --git a/src/store/locale/resources/gb.json b/src/store/locale/resources/gb.json index 4bc5122f..51888d18 100644 --- a/src/store/locale/resources/gb.json +++ b/src/store/locale/resources/gb.json @@ -150,16 +150,16 @@ "business-card-menu-portfolio": "Portfolio", "business-card-menu-resume": "Resume", "business-card-menu-skills": "Skills", - "business-card-month-1": "Jan", - "business-card-month-10": "Oct", - "business-card-month-2": "Feb", - "business-card-month-3": "Mar", - "business-card-month-4": "Apr", - "business-card-month-5": "May", - "business-card-month-6": "Jun", - "business-card-month-7": "Jul", - "business-card-month-8": "Aug", - "business-card-month-9": "Sep", + "business-card-month-0": "Jan", + "business-card-month-1": "Feb", + "business-card-month-2": "Mar", + "business-card-month-3": "Apr", + "business-card-month-4": "May", + "business-card-month-5": "Jun", + "business-card-month-6": "Jul", + "business-card-month-7": "Aug", + "business-card-month-8": "Sep", + "business-card-month-9": "Oct", "business-card-portfolio-alm-lab-management-subtitle": "Software Engineer - C#/.NET (WinForms)", "business-card-portfolio-alm-lab-management-title": "ALM Lab Management", "business-card-portfolio-alm-robot-subtitle": "Full Stack Development Engineer - Java 8, JavaScript (AngularJS)", diff --git a/src/store/locale/resources/jp.json b/src/store/locale/resources/jp.json index 67287594..79bdbd47 100644 --- a/src/store/locale/resources/jp.json +++ b/src/store/locale/resources/jp.json @@ -150,16 +150,16 @@ "business-card-menu-portfolio": "ポートフォリオ", "business-card-menu-resume": "履歴書", "business-card-menu-skills": "スキル", - "business-card-month-1": "一月", - "business-card-month-10": "十月", - "business-card-month-2": "二月", - "business-card-month-3": "三月", - "business-card-month-4": "四月", - "business-card-month-5": "五月", - "business-card-month-6": "六月", - "business-card-month-7": "七月", - "business-card-month-8": "八月", - "business-card-month-9": "九月", + "business-card-month-0": "一月", + "business-card-month-1": "二月", + "business-card-month-2": "三月", + "business-card-month-3": "四月", + "business-card-month-4": "五月", + "business-card-month-5": "六月", + "business-card-month-6": "七月", + "business-card-month-7": "八月", + "business-card-month-8": "九月", + "business-card-month-9": "十月", "business-card-portfolio-alm-lab-management-subtitle": "ソフトウェアエンジニア - C#/.NET (WinForms)", "business-card-portfolio-alm-lab-management-title": "ALM Lab Management", "business-card-portfolio-alm-robot-subtitle": "フルスタックエンジニア - Java 8, JavaScript (AngularJS)", diff --git a/src/store/locale/resources/ru.json b/src/store/locale/resources/ru.json index 3f5c6e81..6e506a94 100644 --- a/src/store/locale/resources/ru.json +++ b/src/store/locale/resources/ru.json @@ -14,7 +14,6 @@ "business-card-languages-title": "Языки", "business-card-menu-badges": "Бэйджи", "business-card-menu-skills": "Навыки", - "business-card-month-8": "Август", "business-card-version": "Версия {{version}}", "business-card-year-plural": "лет", "business-card-year-singular": "год", @@ -154,15 +153,16 @@ "business-card-menu-experience": "Опыт", "business-card-menu-portfolio": "Портфолио", "business-card-menu-resume": "Резюме", - "business-card-month-1": "Январь", - "business-card-month-10": "Октябрь", - "business-card-month-2": "Февраль", - "business-card-month-3": "Март", - "business-card-month-4": "Апрель", - "business-card-month-5": "Май", - "business-card-month-6": "Июнь", - "business-card-month-7": "Июль", - "business-card-month-9": "Сентябрь", + "business-card-month-0": "Январь", + "business-card-month-1": "Февраль", + "business-card-month-2": "Март", + "business-card-month-3": "Апрель", + "business-card-month-4": "Май", + "business-card-month-5": "Июнь", + "business-card-month-6": "Июль", + "business-card-month-7": "Август", + "business-card-month-8": "Сентябрь", + "business-card-month-9": "Октябрь", "business-card-portfolio-alm-lab-management-subtitle": "Инженер-программист - C#/.NET (WinForms)", "business-card-portfolio-alm-lab-management-title": "ALM Lab Management", "business-card-portfolio-alm-robot-subtitle": "Разработчик программного обеспечения - Java 8, JavaScript (AngularJS)", diff --git a/src/store/locale/resources/ua.json b/src/store/locale/resources/ua.json index fba577a8..3e9a0fcf 100644 --- a/src/store/locale/resources/ua.json +++ b/src/store/locale/resources/ua.json @@ -14,7 +14,6 @@ "business-card-languages-title": "Мови", "business-card-menu-badges": "Бейджі", "business-card-menu-skills": "Навички", - "business-card-month-8": "Серпень", "business-card-version": "Версія {{version}}", "business-card-year-plural": "років", "business-card-year-singular": "рік", @@ -154,15 +153,16 @@ "business-card-menu-experience": "Досвід", "business-card-menu-portfolio": "Портфоліо", "business-card-menu-resume": "Резюме", - "business-card-month-1": "Січень", - "business-card-month-10": "Жовтень", - "business-card-month-2": "Лютий", - "business-card-month-3": "Березень", - "business-card-month-4": "Квітень", - "business-card-month-5": "Травень", - "business-card-month-6": "Червень", - "business-card-month-7": "Липень", - "business-card-month-9": "Вересень", + "business-card-month-0": "Січень", + "business-card-month-1": "Лютий", + "business-card-month-2": "Березень", + "business-card-month-3": "Квітень", + "business-card-month-4": "Травень", + "business-card-month-5": "Червень", + "business-card-month-6": "Липень", + "business-card-month-7": "Серпень", + "business-card-month-8": "Вересень", + "business-card-month-9": "Жовтень", "business-card-portfolio-alm-lab-management-subtitle": "Інженер-програміст - C#/.NET (WinForms)", "business-card-portfolio-alm-lab-management-title": "ALM Lab Management", "business-card-portfolio-alm-robot-subtitle": "Розробник програмного забезпечення - Java 8, JavaScript (AngularJS)", diff --git a/yarn.lock b/yarn.lock index 75e11aec..4910c8a9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,10 +15,10 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/cli@7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.19.3.tgz#55914ed388e658e0b924b3a95da1296267e278e2" - integrity sha512-643/TybmaCAe101m2tSVHi9UKpETXP9c/Ff4mD2tAwkdP6esKIfaauZFc67vGEM6r9fekbEGid+sZhbEnSe3dg== +"@babel/cli@7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.20.7.tgz#8fc12e85c744a1a617680eacb488fab1fcd35b7c" + integrity sha512-WylgcELHB66WwQqItxNILsMlaTd8/SO6SgTTjMp4uCI7P4QyH1r3nqgFmO3BfM4AtfniHgFMH3EpYFj/zynBkQ== dependencies: "@jridgewell/trace-mapping" "^0.3.8" commander "^4.0.1" @@ -38,12 +38,33 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.0", "@babel/compat-data@^7.20.1": +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.0", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.5.tgz#86f172690b093373a933223b4745deeb6049e733" integrity sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g== -"@babel/core@7.20.5", "@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0": +"@babel/core@7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.7.tgz#37072f951bd4d28315445f66e0ec9f6ae0c8c35f" + integrity sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.7" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-module-transforms" "^7.20.7" + "@babel/helpers" "^7.20.7" + "@babel/parser" "^7.20.7" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.1" + semver "^6.3.0" + +"@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.5.tgz#45e2114dc6cd4ab167f81daf7820e8fa1250d113" integrity sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ== @@ -73,6 +94,15 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" +"@babel/generator@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" + integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== + dependencies: + "@babel/types" "^7.20.7" + "@jridgewell/gen-mapping" "^0.3.2" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" @@ -98,6 +128,17 @@ browserslist "^4.21.3" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" + integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.21.3" + lru-cache "^5.1.1" + semver "^6.3.0" + "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.2", "@babel/helper-create-class-features-plugin@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz#327154eedfb12e977baa4ecc72e5806720a85a06" @@ -186,6 +227,20 @@ "@babel/traverse" "^7.20.1" "@babel/types" "^7.20.2" +"@babel/helper-module-transforms@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.7.tgz#7a6c9a1155bef55e914af574153069c9d9470c43" + integrity sha512-FNdu7r67fqMUSVuQpFQGE6BPdhJIhitoxhGzDbAXNcA07uoVG37fOiMk3OSV8rEICuyG6t8LGkd9EE64qIEoIA== + 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.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" + "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" @@ -274,6 +329,15 @@ "@babel/traverse" "^7.20.5" "@babel/types" "^7.20.5" +"@babel/helpers@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce" + integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA== + dependencies: + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" + "@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" @@ -288,6 +352,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8" integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA== +"@babel/parser@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" + integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" @@ -987,6 +1056,15 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" +"@babel/template@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" + integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.20.5", "@babel/traverse@^7.7.2": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.5.tgz#78eb244bea8270fdda1ef9af22a5d5e5b7e57133" @@ -1003,6 +1081,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.7.tgz#114f992fa989a390896ea72db5220780edab509c" + integrity sha512-xueOL5+ZKX2dJbg8z8o4f4uTRTqGDRjilva9D1hiRlayJbTY8jBRL+Ph67IeRTIE439/VifHk+Z4g0SwRtQE0A== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.5.tgz#e206ae370b5393d94dfd1d04cd687cace53efa84" @@ -1012,6 +1106,15 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" +"@babel/types@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" + integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -1029,25 +1132,25 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@eslint/eslintrc@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95" - integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg== +"@eslint/eslintrc@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.0.tgz#8ec64e0df3e7a1971ee1ff5158da87389f167a63" + integrity sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A== dependencies: ajv "^6.12.4" debug "^4.3.2" espree "^9.4.0" - globals "^13.15.0" + globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@humanwhocodes/config-array@^0.11.6": - version "0.11.7" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.7.tgz#38aec044c6c828f6ed51d5d7ae3d9b9faf6dbb0f" - integrity sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw== +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -1937,14 +2040,14 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@5.45.0": - version "5.45.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.45.0.tgz#ffa505cf961d4844d38cfa19dcec4973a6039e41" - integrity sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA== +"@typescript-eslint/eslint-plugin@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.47.0.tgz#dadb79df3b0499699b155839fd6792f16897d910" + integrity sha512-AHZtlXAMGkDmyLuLZsRpH3p4G/1iARIwc/T0vIem2YB+xW6pZaXYXzCBnZSF/5fdM97R9QqZWZ+h3iW10XgevQ== dependencies: - "@typescript-eslint/scope-manager" "5.45.0" - "@typescript-eslint/type-utils" "5.45.0" - "@typescript-eslint/utils" "5.45.0" + "@typescript-eslint/scope-manager" "5.47.0" + "@typescript-eslint/type-utils" "5.47.0" + "@typescript-eslint/utils" "5.47.0" debug "^4.3.4" ignore "^5.2.0" natural-compare-lite "^1.4.0" @@ -1952,72 +2055,72 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@5.45.0": - version "5.45.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.45.0.tgz#b18a5f6b3cf1c2b3e399e9d2df4be40d6b0ddd0e" - integrity sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ== +"@typescript-eslint/parser@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.47.0.tgz#62e83de93499bf4b500528f74bf2e0554e3a6c8d" + integrity sha512-udPU4ckK+R1JWCGdQC4Qa27NtBg7w020ffHqGyAK8pAgOVuNw7YaKXGChk+udh+iiGIJf6/E/0xhVXyPAbsczw== dependencies: - "@typescript-eslint/scope-manager" "5.45.0" - "@typescript-eslint/types" "5.45.0" - "@typescript-eslint/typescript-estree" "5.45.0" + "@typescript-eslint/scope-manager" "5.47.0" + "@typescript-eslint/types" "5.47.0" + "@typescript-eslint/typescript-estree" "5.47.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.45.0": - version "5.45.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.45.0.tgz#7a4ac1bfa9544bff3f620ab85947945938319a96" - integrity sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw== +"@typescript-eslint/scope-manager@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.47.0.tgz#f58144a6b0ff58b996f92172c488813aee9b09df" + integrity sha512-dvJab4bFf7JVvjPuh3sfBUWsiD73aiftKBpWSfi3sUkysDQ4W8x+ZcFpNp7Kgv0weldhpmMOZBjx1wKN8uWvAw== dependencies: - "@typescript-eslint/types" "5.45.0" - "@typescript-eslint/visitor-keys" "5.45.0" + "@typescript-eslint/types" "5.47.0" + "@typescript-eslint/visitor-keys" "5.47.0" -"@typescript-eslint/type-utils@5.45.0": - version "5.45.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.45.0.tgz#aefbc954c40878fcebeabfb77d20d84a3da3a8b2" - integrity sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q== +"@typescript-eslint/type-utils@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.47.0.tgz#2b440979c574e317d3473225ae781f292c99e55d" + integrity sha512-1J+DFFrYoDUXQE1b7QjrNGARZE6uVhBqIvdaXTe5IN+NmEyD68qXR1qX1g2u4voA+nCaelQyG8w30SAOihhEYg== dependencies: - "@typescript-eslint/typescript-estree" "5.45.0" - "@typescript-eslint/utils" "5.45.0" + "@typescript-eslint/typescript-estree" "5.47.0" + "@typescript-eslint/utils" "5.47.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.45.0": - version "5.45.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.45.0.tgz#794760b9037ee4154c09549ef5a96599621109c5" - integrity sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA== +"@typescript-eslint/types@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.47.0.tgz#67490def406eaa023dbbd8da42ee0d0c9b5229d3" + integrity sha512-eslFG0Qy8wpGzDdYKu58CEr3WLkjwC5Usa6XbuV89ce/yN5RITLe1O8e+WFEuxnfftHiJImkkOBADj58ahRxSg== -"@typescript-eslint/typescript-estree@5.45.0": - version "5.45.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz#f70a0d646d7f38c0dfd6936a5e171a77f1e5291d" - integrity sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ== +"@typescript-eslint/typescript-estree@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.0.tgz#ed971a11c5c928646d6ba7fc9dfdd6e997649aca" + integrity sha512-LxfKCG4bsRGq60Sqqu+34QT5qT2TEAHvSCCJ321uBWywgE2dS0LKcu5u+3sMGo+Vy9UmLOhdTw5JHzePV/1y4Q== dependencies: - "@typescript-eslint/types" "5.45.0" - "@typescript-eslint/visitor-keys" "5.45.0" + "@typescript-eslint/types" "5.47.0" + "@typescript-eslint/visitor-keys" "5.47.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.45.0": - version "5.45.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.45.0.tgz#9cca2996eee1b8615485a6918a5c763629c7acf5" - integrity sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA== +"@typescript-eslint/utils@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.47.0.tgz#b5005f7d2696769a1fdc1e00897005a25b3a0ec7" + integrity sha512-U9xcc0N7xINrCdGVPwABjbAKqx4GK67xuMV87toI+HUqgXj26m6RBp9UshEXcTrgCkdGYFzgKLt8kxu49RilDw== dependencies: "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.45.0" - "@typescript-eslint/types" "5.45.0" - "@typescript-eslint/typescript-estree" "5.45.0" + "@typescript-eslint/scope-manager" "5.47.0" + "@typescript-eslint/types" "5.47.0" + "@typescript-eslint/typescript-estree" "5.47.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.45.0": - version "5.45.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz#e0d160e9e7fdb7f8da697a5b78e7a14a22a70528" - integrity sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg== +"@typescript-eslint/visitor-keys@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.0.tgz#4aca4efbdf6209c154df1f7599852d571b80bb45" + integrity sha512-ByPi5iMa6QqDXe/GmT/hR6MZtVPi0SqMQPDx15FczCBXJo/7M8T88xReOALAfpBLm+zxpPfmhuEvPb577JRAEg== dependencies: - "@typescript-eslint/types" "5.45.0" + "@typescript-eslint/types" "5.47.0" eslint-visitor-keys "^3.3.0" "@webassemblyjs/ast@1.11.1": @@ -2141,17 +2244,17 @@ "@webassemblyjs/ast" "1.11.1" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^2.0.0": +"@webpack-cli/configtest@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.0.1.tgz#a69720f6c9bad6aef54a8fa6ba9c3533e7ef4c7f" integrity sha512-njsdJXJSiS2iNbQVS0eT8A/KPnmyH4pv1APj2K0d1wrZcBLw+yppxOy4CGqa0OxDJkzfL/XELDhD8rocnIwB5A== -"@webpack-cli/info@^2.0.0": +"@webpack-cli/info@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.1.tgz#eed745799c910d20081e06e5177c2b2569f166c0" integrity sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA== -"@webpack-cli/serve@^2.0.0": +"@webpack-cli/serve@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.1.tgz#34bdc31727a1889198855913db2f270ace6d7bf8" integrity sha512-0G7tNyS+yW8TdgHwZKlDWYXFA6OJQnoLCQvYKkQP0Q2X205PSQ6RNUj0M+1OB/9gRQaUZ/ccYfaxd0nhaWKfjw== @@ -3092,13 +3195,13 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -css-loader@6.7.2: - version "6.7.2" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.2.tgz#26bc22401b5921686a10fbeba75d124228302304" - integrity sha512-oqGbbVcBJkm8QwmnNzrFrWTnudnRZC+1eXikLJl0n4ljcfotgRifpg2a1lKy8jTrc4/d9A/ap1GFq1jDKG7J+Q== +css-loader@6.7.3: + version "6.7.3" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.3.tgz#1e8799f3ccc5874fdd55461af51137fcc5befbcd" + integrity sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ== dependencies: icss-utils "^5.1.0" - postcss "^8.4.18" + postcss "^8.4.19" postcss-modules-extract-imports "^3.0.0" postcss-modules-local-by-default "^4.0.0" postcss-modules-scope "^3.0.0" @@ -3655,13 +3758,13 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@8.29.0: - version "8.29.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.29.0.tgz#d74a88a20fb44d59c51851625bc4ee8d0ec43f87" - integrity sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg== +eslint@8.30.0: + version "8.30.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.30.0.tgz#83a506125d089eef7c5b5910eeea824273a33f50" + integrity sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ== dependencies: - "@eslint/eslintrc" "^1.3.3" - "@humanwhocodes/config-array" "^0.11.6" + "@eslint/eslintrc" "^1.4.0" + "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" @@ -3680,7 +3783,7 @@ eslint@8.29.0: file-entry-cache "^6.0.1" find-up "^5.0.0" glob-parent "^6.0.2" - globals "^13.15.0" + globals "^13.19.0" grapheme-splitter "^1.0.4" ignore "^5.2.0" import-fresh "^3.0.0" @@ -4112,10 +4215,10 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.15.0: - version "13.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.18.0.tgz#fb224daeeb2bb7d254cd2c640f003528b8d0c1dc" - integrity sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A== +globals@^13.19.0: + version "13.19.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" + integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== dependencies: type-fest "^0.20.2" @@ -5442,6 +5545,13 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -6015,10 +6125,10 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.4.18: - version "8.4.19" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.19.tgz#61178e2add236b17351897c8bcc0b4c8ecab56fc" - integrity sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA== +postcss@^8.4.19: + version "8.4.20" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" + integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -6554,10 +6664,10 @@ sass-loader@13.2.0: klona "^2.0.4" neo-async "^2.6.2" -sass@1.56.1: - version "1.56.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.56.1.tgz#94d3910cd468fd075fa87f5bb17437a0b617d8a7" - integrity sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ== +sass@1.57.1: + version "1.57.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.57.1.tgz#dfafd46eb3ab94817145e8825208ecf7281119b5" + integrity sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -7392,15 +7502,15 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-cli@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.0.0.tgz#bd380a9653e0cd1a08916c4ff1adea17201ef68f" - integrity sha512-AACDTo20yG+xn6HPW5xjbn2Be4KUzQPebWXsDMHwPPyKh9OnTOJgZN2Nc+g/FZKV3ObRTYsGvibAvc+5jAUrVA== +webpack-cli@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.0.1.tgz#95fc0495ac4065e9423a722dec9175560b6f2d9a" + integrity sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^2.0.0" - "@webpack-cli/info" "^2.0.0" - "@webpack-cli/serve" "^2.0.0" + "@webpack-cli/configtest" "^2.0.1" + "@webpack-cli/info" "^2.0.1" + "@webpack-cli/serve" "^2.0.1" colorette "^2.0.14" commander "^9.4.1" cross-spawn "^7.0.3" @@ -7650,6 +7760,11 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"